wingdi.h 118 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the w64 mingw-runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER within this package.
  5. */
  6. #ifndef _WINGDI_
  7. #define _WINGDI_
  8. #define WINGDIAPI DECLSPEC_IMPORT
  9. #define WINSPOOLAPI DECLSPEC_IMPORT
  10. #ifdef __cplusplus
  11. extern "C" {
  12. #endif
  13. #ifndef WINVER
  14. #define WINVER 0x0502
  15. #endif
  16. #ifndef NOGDI
  17. #ifndef NORASTEROPS
  18. #define R2_BLACK 1
  19. #define R2_NOTMERGEPEN 2
  20. #define R2_MASKNOTPEN 3
  21. #define R2_NOTCOPYPEN 4
  22. #define R2_MASKPENNOT 5
  23. #define R2_NOT 6
  24. #define R2_XORPEN 7
  25. #define R2_NOTMASKPEN 8
  26. #define R2_MASKPEN 9
  27. #define R2_NOTXORPEN 10
  28. #define R2_NOP 11
  29. #define R2_MERGENOTPEN 12
  30. #define R2_COPYPEN 13
  31. #define R2_MERGEPENNOT 14
  32. #define R2_MERGEPEN 15
  33. #define R2_WHITE 16
  34. #define R2_LAST 16
  35. #define SRCCOPY (DWORD)0x00CC0020
  36. #define SRCPAINT (DWORD)0x00EE0086
  37. #define SRCAND (DWORD)0x008800C6
  38. #define SRCINVERT (DWORD)0x00660046
  39. #define SRCERASE (DWORD)0x00440328
  40. #define NOTSRCCOPY (DWORD)0x00330008
  41. #define NOTSRCERASE (DWORD)0x001100A6
  42. #define MERGECOPY (DWORD)0x00C000CA
  43. #define MERGEPAINT (DWORD)0x00BB0226
  44. #define PATCOPY (DWORD)0x00F00021
  45. #define PATPAINT (DWORD)0x00FB0A09
  46. #define PATINVERT (DWORD)0x005A0049
  47. #define DSTINVERT (DWORD)0x00550009
  48. #define BLACKNESS (DWORD)0x00000042
  49. #define WHITENESS (DWORD)0x00FF0062
  50. #define NOMIRRORBITMAP (DWORD)0x80000000
  51. #define CAPTUREBLT (DWORD)0x40000000
  52. #define MAKEROP4(fore,back) (DWORD)((((back) << 8) & 0xFF000000) | (fore))
  53. #endif
  54. #define GDI_ERROR (0xFFFFFFFFL)
  55. #define HGDI_ERROR (LongToHandle(0xFFFFFFFFL))
  56. #define ERROR 0
  57. #define NULLREGION 1
  58. #define SIMPLEREGION 2
  59. #define COMPLEXREGION 3
  60. #define RGN_ERROR ERROR
  61. #define RGN_AND 1
  62. #define RGN_OR 2
  63. #define RGN_XOR 3
  64. #define RGN_DIFF 4
  65. #define RGN_COPY 5
  66. #define RGN_MIN RGN_AND
  67. #define RGN_MAX RGN_COPY
  68. #define BLACKONWHITE 1
  69. #define WHITEONBLACK 2
  70. #define COLORONCOLOR 3
  71. #define HALFTONE 4
  72. #define MAXSTRETCHBLTMODE 4
  73. #define STRETCH_ANDSCANS BLACKONWHITE
  74. #define STRETCH_ORSCANS WHITEONBLACK
  75. #define STRETCH_DELETESCANS COLORONCOLOR
  76. #define STRETCH_HALFTONE HALFTONE
  77. #define ALTERNATE 1
  78. #define WINDING 2
  79. #define POLYFILL_LAST 2
  80. #define LAYOUT_RTL 0x00000001
  81. #define LAYOUT_BTT 0x00000002
  82. #define LAYOUT_VBH 0x00000004
  83. #define LAYOUT_ORIENTATIONMASK (LAYOUT_RTL | LAYOUT_BTT | LAYOUT_VBH)
  84. #define LAYOUT_BITMAPORIENTATIONPRESERVED 0x00000008
  85. #define TA_NOUPDATECP 0
  86. #define TA_UPDATECP 1
  87. #define TA_LEFT 0
  88. #define TA_RIGHT 2
  89. #define TA_CENTER 6
  90. #define TA_TOP 0
  91. #define TA_BOTTOM 8
  92. #define TA_BASELINE 24
  93. #define TA_RTLREADING 256
  94. #define TA_MASK (TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLREADING)
  95. #define VTA_BASELINE TA_BASELINE
  96. #define VTA_LEFT TA_BOTTOM
  97. #define VTA_RIGHT TA_TOP
  98. #define VTA_CENTER TA_CENTER
  99. #define VTA_BOTTOM TA_RIGHT
  100. #define VTA_TOP TA_LEFT
  101. #define ETO_OPAQUE 0x0002
  102. #define ETO_CLIPPED 0x0004
  103. #define ETO_GLYPH_INDEX 0x0010
  104. #define ETO_RTLREADING 0x0080
  105. #define ETO_NUMERICSLOCAL 0x0400
  106. #define ETO_NUMERICSLATIN 0x0800
  107. #define ETO_IGNORELANGUAGE 0x1000
  108. #define ETO_PDY 0x2000
  109. #define ASPECT_FILTERING 0x0001
  110. #define DCB_RESET 0x0001
  111. #define DCB_ACCUMULATE 0x0002
  112. #define DCB_DIRTY DCB_ACCUMULATE
  113. #define DCB_SET (DCB_RESET | DCB_ACCUMULATE)
  114. #define DCB_ENABLE 0x0004
  115. #define DCB_DISABLE 0x0008
  116. #ifndef NOMETAFILE
  117. #define META_SETBKCOLOR 0x0201
  118. #define META_SETBKMODE 0x0102
  119. #define META_SETMAPMODE 0x0103
  120. #define META_SETROP2 0x0104
  121. #define META_SETRELABS 0x0105
  122. #define META_SETPOLYFILLMODE 0x0106
  123. #define META_SETSTRETCHBLTMODE 0x0107
  124. #define META_SETTEXTCHAREXTRA 0x0108
  125. #define META_SETTEXTCOLOR 0x0209
  126. #define META_SETTEXTJUSTIFICATION 0x020A
  127. #define META_SETWINDOWORG 0x020B
  128. #define META_SETWINDOWEXT 0x020C
  129. #define META_SETVIEWPORTORG 0x020D
  130. #define META_SETVIEWPORTEXT 0x020E
  131. #define META_OFFSETWINDOWORG 0x020F
  132. #define META_SCALEWINDOWEXT 0x0410
  133. #define META_OFFSETVIEWPORTORG 0x0211
  134. #define META_SCALEVIEWPORTEXT 0x0412
  135. #define META_LINETO 0x0213
  136. #define META_MOVETO 0x0214
  137. #define META_EXCLUDECLIPRECT 0x0415
  138. #define META_INTERSECTCLIPRECT 0x0416
  139. #define META_ARC 0x0817
  140. #define META_ELLIPSE 0x0418
  141. #define META_FLOODFILL 0x0419
  142. #define META_PIE 0x081A
  143. #define META_RECTANGLE 0x041B
  144. #define META_ROUNDRECT 0x061C
  145. #define META_PATBLT 0x061D
  146. #define META_SAVEDC 0x001E
  147. #define META_SETPIXEL 0x041F
  148. #define META_OFFSETCLIPRGN 0x0220
  149. #define META_TEXTOUT 0x0521
  150. #define META_BITBLT 0x0922
  151. #define META_STRETCHBLT 0x0B23
  152. #define META_POLYGON 0x0324
  153. #define META_POLYLINE 0x0325
  154. #define META_ESCAPE 0x0626
  155. #define META_RESTOREDC 0x0127
  156. #define META_FILLREGION 0x0228
  157. #define META_FRAMEREGION 0x0429
  158. #define META_INVERTREGION 0x012A
  159. #define META_PAINTREGION 0x012B
  160. #define META_SELECTCLIPREGION 0x012C
  161. #define META_SELECTOBJECT 0x012D
  162. #define META_SETTEXTALIGN 0x012E
  163. #define META_CHORD 0x0830
  164. #define META_SETMAPPERFLAGS 0x0231
  165. #define META_EXTTEXTOUT 0x0a32
  166. #define META_SETDIBTODEV 0x0d33
  167. #define META_SELECTPALETTE 0x0234
  168. #define META_REALIZEPALETTE 0x0035
  169. #define META_ANIMATEPALETTE 0x0436
  170. #define META_SETPALENTRIES 0x0037
  171. #define META_POLYPOLYGON 0x0538
  172. #define META_RESIZEPALETTE 0x0139
  173. #define META_DIBBITBLT 0x0940
  174. #define META_DIBSTRETCHBLT 0x0b41
  175. #define META_DIBCREATEPATTERNBRUSH 0x0142
  176. #define META_STRETCHDIB 0x0f43
  177. #define META_EXTFLOODFILL 0x0548
  178. #define META_SETLAYOUT 0x0149
  179. #define META_DELETEOBJECT 0x01f0
  180. #define META_CREATEPALETTE 0x00f7
  181. #define META_CREATEPATTERNBRUSH 0x01F9
  182. #define META_CREATEPENINDIRECT 0x02FA
  183. #define META_CREATEFONTINDIRECT 0x02FB
  184. #define META_CREATEBRUSHINDIRECT 0x02FC
  185. #define META_CREATEREGION 0x06FF
  186. typedef struct _DRAWPATRECT {
  187. POINT ptPosition;
  188. POINT ptSize;
  189. WORD wStyle;
  190. WORD wPattern;
  191. } DRAWPATRECT,*PDRAWPATRECT;
  192. #endif
  193. #define NEWFRAME 1
  194. #define ABORTDOC 2
  195. #define NEXTBAND 3
  196. #define SETCOLORTABLE 4
  197. #define GETCOLORTABLE 5
  198. #define FLUSHOUTPUT 6
  199. #define DRAFTMODE 7
  200. #define QUERYESCSUPPORT 8
  201. #define SETABORTPROC 9
  202. #define STARTDOC 10
  203. #define ENDDOC 11
  204. #define GETPHYSPAGESIZE 12
  205. #define GETPRINTINGOFFSET 13
  206. #define GETSCALINGFACTOR 14
  207. #define MFCOMMENT 15
  208. #define GETPENWIDTH 16
  209. #define SETCOPYCOUNT 17
  210. #define SELECTPAPERSOURCE 18
  211. #define DEVICEDATA 19
  212. #define PASSTHROUGH 19
  213. #define GETTECHNOLGY 20
  214. #define GETTECHNOLOGY 20
  215. #define SETLINECAP 21
  216. #define SETLINEJOIN 22
  217. #define SETMITERLIMIT 23
  218. #define BANDINFO 24
  219. #define DRAWPATTERNRECT 25
  220. #define GETVECTORPENSIZE 26
  221. #define GETVECTORBRUSHSIZE 27
  222. #define ENABLEDUPLEX 28
  223. #define GETSETPAPERBINS 29
  224. #define GETSETPRINTORIENT 30
  225. #define ENUMPAPERBINS 31
  226. #define SETDIBSCALING 32
  227. #define EPSPRINTING 33
  228. #define ENUMPAPERMETRICS 34
  229. #define GETSETPAPERMETRICS 35
  230. #define POSTSCRIPT_DATA 37
  231. #define POSTSCRIPT_IGNORE 38
  232. #define MOUSETRAILS 39
  233. #define GETDEVICEUNITS 42
  234. #define GETEXTENDEDTEXTMETRICS 256
  235. #define GETEXTENTTABLE 257
  236. #define GETPAIRKERNTABLE 258
  237. #define GETTRACKKERNTABLE 259
  238. #define EXTTEXTOUT 512
  239. #define GETFACENAME 513
  240. #define DOWNLOADFACE 514
  241. #define ENABLERELATIVEWIDTHS 768
  242. #define ENABLEPAIRKERNING 769
  243. #define SETKERNTRACK 770
  244. #define SETALLJUSTVALUES 771
  245. #define SETCHARSET 772
  246. #define STRETCHBLT 2048
  247. #define METAFILE_DRIVER 2049
  248. #define GETSETSCREENPARAMS 3072
  249. #define QUERYDIBSUPPORT 3073
  250. #define BEGIN_PATH 4096
  251. #define CLIP_TO_PATH 4097
  252. #define END_PATH 4098
  253. #define EXT_DEVICE_CAPS 4099
  254. #define RESTORE_CTM 4100
  255. #define SAVE_CTM 4101
  256. #define SET_ARC_DIRECTION 4102
  257. #define SET_BACKGROUND_COLOR 4103
  258. #define SET_POLY_MODE 4104
  259. #define SET_SCREEN_ANGLE 4105
  260. #define SET_SPREAD 4106
  261. #define TRANSFORM_CTM 4107
  262. #define SET_CLIP_BOX 4108
  263. #define SET_BOUNDS 4109
  264. #define SET_MIRROR_MODE 4110
  265. #define OPENCHANNEL 4110
  266. #define DOWNLOADHEADER 4111
  267. #define CLOSECHANNEL 4112
  268. #define POSTSCRIPT_PASSTHROUGH 4115
  269. #define ENCAPSULATED_POSTSCRIPT 4116
  270. #define POSTSCRIPT_IDENTIFY 4117
  271. #define POSTSCRIPT_INJECTION 4118
  272. #define CHECKJPEGFORMAT 4119
  273. #define CHECKPNGFORMAT 4120
  274. #define GET_PS_FEATURESETTING 4121
  275. #define SPCLPASSTHROUGH2 4568
  276. #define PSIDENT_GDICENTRIC 0
  277. #define PSIDENT_PSCENTRIC 1
  278. typedef struct _PSINJECTDATA {
  279. DWORD DataBytes;
  280. WORD InjectionPoint;
  281. WORD PageNumber;
  282. } PSINJECTDATA,*PPSINJECTDATA;
  283. #define PSINJECT_BEGINSTREAM 1
  284. #define PSINJECT_PSADOBE 2
  285. #define PSINJECT_PAGESATEND 3
  286. #define PSINJECT_PAGES 4
  287. #define PSINJECT_DOCNEEDEDRES 5
  288. #define PSINJECT_DOCSUPPLIEDRES 6
  289. #define PSINJECT_PAGEORDER 7
  290. #define PSINJECT_ORIENTATION 8
  291. #define PSINJECT_BOUNDINGBOX 9
  292. #define PSINJECT_DOCUMENTPROCESSCOLORS 10
  293. #define PSINJECT_COMMENTS 11
  294. #define PSINJECT_BEGINDEFAULTS 12
  295. #define PSINJECT_ENDDEFAULTS 13
  296. #define PSINJECT_BEGINPROLOG 14
  297. #define PSINJECT_ENDPROLOG 15
  298. #define PSINJECT_BEGINSETUP 16
  299. #define PSINJECT_ENDSETUP 17
  300. #define PSINJECT_TRAILER 18
  301. #define PSINJECT_EOF 19
  302. #define PSINJECT_ENDSTREAM 20
  303. #define PSINJECT_DOCUMENTPROCESSCOLORSATEND 21
  304. #define PSINJECT_PAGENUMBER 100
  305. #define PSINJECT_BEGINPAGESETUP 101
  306. #define PSINJECT_ENDPAGESETUP 102
  307. #define PSINJECT_PAGETRAILER 103
  308. #define PSINJECT_PLATECOLOR 104
  309. #define PSINJECT_SHOWPAGE 105
  310. #define PSINJECT_PAGEBBOX 106
  311. #define PSINJECT_ENDPAGECOMMENTS 107
  312. #define PSINJECT_VMSAVE 200
  313. #define PSINJECT_VMRESTORE 201
  314. #define FEATURESETTING_NUP 0
  315. #define FEATURESETTING_OUTPUT 1
  316. #define FEATURESETTING_PSLEVEL 2
  317. #define FEATURESETTING_CUSTPAPER 3
  318. #define FEATURESETTING_MIRROR 4
  319. #define FEATURESETTING_NEGATIVE 5
  320. #define FEATURESETTING_PROTOCOL 6
  321. #define FEATURESETTING_PRIVATE_BEGIN 0x1000
  322. #define FEATURESETTING_PRIVATE_END 0x1FFF
  323. typedef struct _PSFEATURE_OUTPUT {
  324. WINBOOL bPageIndependent;
  325. WINBOOL bSetPageDevice;
  326. } PSFEATURE_OUTPUT,*PPSFEATURE_OUTPUT;
  327. typedef struct _PSFEATURE_CUSTPAPER {
  328. LONG lOrientation;
  329. LONG lWidth;
  330. LONG lHeight;
  331. LONG lWidthOffset;
  332. LONG lHeightOffset;
  333. } PSFEATURE_CUSTPAPER,*PPSFEATURE_CUSTPAPER;
  334. #define PSPROTOCOL_ASCII 0
  335. #define PSPROTOCOL_BCP 1
  336. #define PSPROTOCOL_TBCP 2
  337. #define PSPROTOCOL_BINARY 3
  338. #define QDI_SETDIBITS 1
  339. #define QDI_GETDIBITS 2
  340. #define QDI_DIBTOSCREEN 4
  341. #define QDI_STRETCHDIB 8
  342. #define SP_NOTREPORTED 0x4000
  343. #define SP_ERROR (-1)
  344. #define SP_APPABORT (-2)
  345. #define SP_USERABORT (-3)
  346. #define SP_OUTOFDISK (-4)
  347. #define SP_OUTOFMEMORY (-5)
  348. #define PR_JOBSTATUS 0x0000
  349. #define OBJ_PEN 1
  350. #define OBJ_BRUSH 2
  351. #define OBJ_DC 3
  352. #define OBJ_METADC 4
  353. #define OBJ_PAL 5
  354. #define OBJ_FONT 6
  355. #define OBJ_BITMAP 7
  356. #define OBJ_REGION 8
  357. #define OBJ_METAFILE 9
  358. #define OBJ_MEMDC 10
  359. #define OBJ_EXTPEN 11
  360. #define OBJ_ENHMETADC 12
  361. #define OBJ_ENHMETAFILE 13
  362. #define OBJ_COLORSPACE 14
  363. #define MWT_IDENTITY 1
  364. #define MWT_LEFTMULTIPLY 2
  365. #define MWT_RIGHTMULTIPLY 3
  366. #define MWT_MIN MWT_IDENTITY
  367. #define MWT_MAX MWT_RIGHTMULTIPLY
  368. #define _XFORM_
  369. typedef struct tagXFORM {
  370. FLOAT eM11;
  371. FLOAT eM12;
  372. FLOAT eM21;
  373. FLOAT eM22;
  374. FLOAT eDx;
  375. FLOAT eDy;
  376. } XFORM,*PXFORM,*LPXFORM;
  377. typedef struct tagBITMAP {
  378. LONG bmType;
  379. LONG bmWidth;
  380. LONG bmHeight;
  381. LONG bmWidthBytes;
  382. WORD bmPlanes;
  383. WORD bmBitsPixel;
  384. LPVOID bmBits;
  385. } BITMAP,*PBITMAP,*NPBITMAP,*LPBITMAP;
  386. #include <pshpack1.h>
  387. typedef struct tagRGBTRIPLE {
  388. BYTE rgbtBlue;
  389. BYTE rgbtGreen;
  390. BYTE rgbtRed;
  391. } RGBTRIPLE;
  392. #include <poppack.h>
  393. typedef struct tagRGBQUAD {
  394. BYTE rgbBlue;
  395. BYTE rgbGreen;
  396. BYTE rgbRed;
  397. BYTE rgbReserved;
  398. } RGBQUAD;
  399. typedef RGBQUAD *LPRGBQUAD;
  400. #define CS_ENABLE 0x00000001L
  401. #define CS_DISABLE 0x00000002L
  402. #define CS_DELETE_TRANSFORM 0x00000003L
  403. //!__TINYC__: #define LCS_SIGNATURE 'PSOC'
  404. //!__TINYC__: #define LCS_sRGB 'sRGB'
  405. //!__TINYC__: #define LCS_WINDOWS_COLOR_SPACE 'Win '
  406. typedef LONG LCSCSTYPE;
  407. #define LCS_CALIBRATED_RGB 0x00000000L
  408. typedef LONG LCSGAMUTMATCH;
  409. #define LCS_GM_BUSINESS 0x00000001L
  410. #define LCS_GM_GRAPHICS 0x00000002L
  411. #define LCS_GM_IMAGES 0x00000004L
  412. #define LCS_GM_ABS_COLORIMETRIC 0x00000008L
  413. #define CM_OUT_OF_GAMUT 255
  414. #define CM_IN_GAMUT 0
  415. #define ICM_ADDPROFILE 1
  416. #define ICM_DELETEPROFILE 2
  417. #define ICM_QUERYPROFILE 3
  418. #define ICM_SETDEFAULTPROFILE 4
  419. #define ICM_REGISTERICMATCHER 5
  420. #define ICM_UNREGISTERICMATCHER 6
  421. #define ICM_QUERYMATCH 7
  422. #define GetKValue(cmyk) ((BYTE)(cmyk))
  423. #define GetYValue(cmyk) ((BYTE)((cmyk)>> 8))
  424. #define GetMValue(cmyk) ((BYTE)((cmyk)>>16))
  425. #define GetCValue(cmyk) ((BYTE)((cmyk)>>24))
  426. #define CMYK(c,m,y,k) ((COLORREF)((((BYTE)(k)|((WORD)((BYTE)(y))<<8))|(((DWORD)(BYTE)(m))<<16))|(((DWORD)(BYTE)(c))<<24)))
  427. typedef long FXPT16DOT16,*LPFXPT16DOT16;
  428. typedef long FXPT2DOT30,*LPFXPT2DOT30;
  429. typedef struct tagCIEXYZ {
  430. FXPT2DOT30 ciexyzX;
  431. FXPT2DOT30 ciexyzY;
  432. FXPT2DOT30 ciexyzZ;
  433. } CIEXYZ;
  434. typedef CIEXYZ *LPCIEXYZ;
  435. typedef struct tagICEXYZTRIPLE {
  436. CIEXYZ ciexyzRed;
  437. CIEXYZ ciexyzGreen;
  438. CIEXYZ ciexyzBlue;
  439. } CIEXYZTRIPLE;
  440. typedef CIEXYZTRIPLE *LPCIEXYZTRIPLE;
  441. typedef struct tagLOGCOLORSPACEA {
  442. DWORD lcsSignature;
  443. DWORD lcsVersion;
  444. DWORD lcsSize;
  445. LCSCSTYPE lcsCSType;
  446. LCSGAMUTMATCH lcsIntent;
  447. CIEXYZTRIPLE lcsEndpoints;
  448. DWORD lcsGammaRed;
  449. DWORD lcsGammaGreen;
  450. DWORD lcsGammaBlue;
  451. CHAR lcsFilename[MAX_PATH];
  452. } LOGCOLORSPACEA,*LPLOGCOLORSPACEA;
  453. typedef struct tagLOGCOLORSPACEW {
  454. DWORD lcsSignature;
  455. DWORD lcsVersion;
  456. DWORD lcsSize;
  457. LCSCSTYPE lcsCSType;
  458. LCSGAMUTMATCH lcsIntent;
  459. CIEXYZTRIPLE lcsEndpoints;
  460. DWORD lcsGammaRed;
  461. DWORD lcsGammaGreen;
  462. DWORD lcsGammaBlue;
  463. WCHAR lcsFilename[MAX_PATH];
  464. } LOGCOLORSPACEW,*LPLOGCOLORSPACEW;
  465. #ifdef UNICODE
  466. typedef LOGCOLORSPACEW LOGCOLORSPACE;
  467. typedef LPLOGCOLORSPACEW LPLOGCOLORSPACE;
  468. #else
  469. typedef LOGCOLORSPACEA LOGCOLORSPACE;
  470. typedef LPLOGCOLORSPACEA LPLOGCOLORSPACE;
  471. #endif
  472. typedef struct tagBITMAPCOREHEADER {
  473. DWORD bcSize;
  474. WORD bcWidth;
  475. WORD bcHeight;
  476. WORD bcPlanes;
  477. WORD bcBitCount;
  478. } BITMAPCOREHEADER,*LPBITMAPCOREHEADER,*PBITMAPCOREHEADER;
  479. typedef struct tagBITMAPINFOHEADER {
  480. DWORD biSize;
  481. LONG biWidth;
  482. LONG biHeight;
  483. WORD biPlanes;
  484. WORD biBitCount;
  485. DWORD biCompression;
  486. DWORD biSizeImage;
  487. LONG biXPelsPerMeter;
  488. LONG biYPelsPerMeter;
  489. DWORD biClrUsed;
  490. DWORD biClrImportant;
  491. } BITMAPINFOHEADER,*LPBITMAPINFOHEADER,*PBITMAPINFOHEADER;
  492. typedef struct {
  493. DWORD bV4Size;
  494. LONG bV4Width;
  495. LONG bV4Height;
  496. WORD bV4Planes;
  497. WORD bV4BitCount;
  498. DWORD bV4V4Compression;
  499. DWORD bV4SizeImage;
  500. LONG bV4XPelsPerMeter;
  501. LONG bV4YPelsPerMeter;
  502. DWORD bV4ClrUsed;
  503. DWORD bV4ClrImportant;
  504. DWORD bV4RedMask;
  505. DWORD bV4GreenMask;
  506. DWORD bV4BlueMask;
  507. DWORD bV4AlphaMask;
  508. DWORD bV4CSType;
  509. CIEXYZTRIPLE bV4Endpoints;
  510. DWORD bV4GammaRed;
  511. DWORD bV4GammaGreen;
  512. DWORD bV4GammaBlue;
  513. } BITMAPV4HEADER,*LPBITMAPV4HEADER,*PBITMAPV4HEADER;
  514. typedef struct {
  515. DWORD bV5Size;
  516. LONG bV5Width;
  517. LONG bV5Height;
  518. WORD bV5Planes;
  519. WORD bV5BitCount;
  520. DWORD bV5Compression;
  521. DWORD bV5SizeImage;
  522. LONG bV5XPelsPerMeter;
  523. LONG bV5YPelsPerMeter;
  524. DWORD bV5ClrUsed;
  525. DWORD bV5ClrImportant;
  526. DWORD bV5RedMask;
  527. DWORD bV5GreenMask;
  528. DWORD bV5BlueMask;
  529. DWORD bV5AlphaMask;
  530. DWORD bV5CSType;
  531. CIEXYZTRIPLE bV5Endpoints;
  532. DWORD bV5GammaRed;
  533. DWORD bV5GammaGreen;
  534. DWORD bV5GammaBlue;
  535. DWORD bV5Intent;
  536. DWORD bV5ProfileData;
  537. DWORD bV5ProfileSize;
  538. DWORD bV5Reserved;
  539. } BITMAPV5HEADER,*LPBITMAPV5HEADER,*PBITMAPV5HEADER;
  540. //!__TINYC__: #define PROFILE_LINKED 'LINK'
  541. //!__TINYC__: #define PROFILE_EMBEDDED 'MBED'
  542. #define BI_RGB 0L
  543. #define BI_RLE8 1L
  544. #define BI_RLE4 2L
  545. #define BI_BITFIELDS 3L
  546. #define BI_JPEG 4L
  547. #define BI_PNG 5L
  548. typedef struct tagBITMAPINFO {
  549. BITMAPINFOHEADER bmiHeader;
  550. RGBQUAD bmiColors[1];
  551. } BITMAPINFO,*LPBITMAPINFO,*PBITMAPINFO;
  552. typedef struct tagBITMAPCOREINFO {
  553. BITMAPCOREHEADER bmciHeader;
  554. RGBTRIPLE bmciColors[1];
  555. } BITMAPCOREINFO,*LPBITMAPCOREINFO,*PBITMAPCOREINFO;
  556. #include <pshpack2.h>
  557. typedef struct tagBITMAPFILEHEADER {
  558. WORD bfType;
  559. DWORD bfSize;
  560. WORD bfReserved1;
  561. WORD bfReserved2;
  562. DWORD bfOffBits;
  563. } BITMAPFILEHEADER,*LPBITMAPFILEHEADER,*PBITMAPFILEHEADER;
  564. #include <poppack.h>
  565. #define MAKEPOINTS(l) (*((POINTS *)&(l)))
  566. #ifndef NOFONTSIG
  567. typedef struct tagFONTSIGNATURE {
  568. DWORD fsUsb[4];
  569. DWORD fsCsb[2];
  570. } FONTSIGNATURE,*PFONTSIGNATURE,*LPFONTSIGNATURE;
  571. typedef struct tagCHARSETINFO {
  572. UINT ciCharset;
  573. UINT ciACP;
  574. FONTSIGNATURE fs;
  575. } CHARSETINFO,*PCHARSETINFO,*NPCHARSETINFO,*LPCHARSETINFO;
  576. #define TCI_SRCCHARSET 1
  577. #define TCI_SRCCODEPAGE 2
  578. #define TCI_SRCFONTSIG 3
  579. #define TCI_SRCLOCALE 0x1000
  580. typedef struct tagLOCALESIGNATURE {
  581. DWORD lsUsb[4];
  582. DWORD lsCsbDefault[2];
  583. DWORD lsCsbSupported[2];
  584. } LOCALESIGNATURE,*PLOCALESIGNATURE,*LPLOCALESIGNATURE;
  585. #endif
  586. #ifndef NOMETAFILE
  587. typedef struct tagHANDLETABLE {
  588. HGDIOBJ objectHandle[1];
  589. } HANDLETABLE,*PHANDLETABLE,*LPHANDLETABLE;
  590. typedef struct tagMETARECORD {
  591. DWORD rdSize;
  592. WORD rdFunction;
  593. WORD rdParm[1];
  594. } METARECORD;
  595. typedef struct tagMETARECORD UNALIGNED *PMETARECORD;
  596. typedef struct tagMETARECORD UNALIGNED *LPMETARECORD;
  597. typedef struct tagMETAFILEPICT {
  598. LONG mm;
  599. LONG xExt;
  600. LONG yExt;
  601. HMETAFILE hMF;
  602. } METAFILEPICT,*LPMETAFILEPICT;
  603. #include <pshpack2.h>
  604. typedef struct tagMETAHEADER {
  605. WORD mtType;
  606. WORD mtHeaderSize;
  607. WORD mtVersion;
  608. DWORD mtSize;
  609. WORD mtNoObjects;
  610. DWORD mtMaxRecord;
  611. WORD mtNoParameters;
  612. } METAHEADER;
  613. typedef struct tagMETAHEADER UNALIGNED *PMETAHEADER;
  614. typedef struct tagMETAHEADER UNALIGNED *LPMETAHEADER;
  615. #include <poppack.h>
  616. typedef struct tagENHMETARECORD {
  617. DWORD iType;
  618. DWORD nSize;
  619. DWORD dParm[1];
  620. } ENHMETARECORD,*PENHMETARECORD,*LPENHMETARECORD;
  621. typedef struct tagENHMETAHEADER {
  622. DWORD iType;
  623. DWORD nSize;
  624. RECTL rclBounds;
  625. RECTL rclFrame;
  626. DWORD dSignature;
  627. DWORD nVersion;
  628. DWORD nBytes;
  629. DWORD nRecords;
  630. WORD nHandles;
  631. WORD sReserved;
  632. DWORD nDescription;
  633. DWORD offDescription;
  634. DWORD nPalEntries;
  635. SIZEL szlDevice;
  636. SIZEL szlMillimeters;
  637. DWORD cbPixelFormat;
  638. DWORD offPixelFormat;
  639. DWORD bOpenGL;
  640. SIZEL szlMicrometers;
  641. } ENHMETAHEADER,*PENHMETAHEADER,*LPENHMETAHEADER;
  642. #endif
  643. #ifndef NOTEXTMETRIC
  644. #define TMPF_FIXED_PITCH 0x01
  645. #define TMPF_VECTOR 0x02
  646. #define TMPF_DEVICE 0x08
  647. #define TMPF_TRUETYPE 0x04
  648. #ifdef UNICODE
  649. typedef WCHAR BCHAR;
  650. #else
  651. typedef BYTE BCHAR;
  652. #endif
  653. #ifndef _TEXTMETRIC_DEFINED
  654. #define _TEXTMETRIC_DEFINED
  655. typedef struct tagTEXTMETRICA {
  656. LONG tmHeight;
  657. LONG tmAscent;
  658. LONG tmDescent;
  659. LONG tmInternalLeading;
  660. LONG tmExternalLeading;
  661. LONG tmAveCharWidth;
  662. LONG tmMaxCharWidth;
  663. LONG tmWeight;
  664. LONG tmOverhang;
  665. LONG tmDigitizedAspectX;
  666. LONG tmDigitizedAspectY;
  667. BYTE tmFirstChar;
  668. BYTE tmLastChar;
  669. BYTE tmDefaultChar;
  670. BYTE tmBreakChar;
  671. BYTE tmItalic;
  672. BYTE tmUnderlined;
  673. BYTE tmStruckOut;
  674. BYTE tmPitchAndFamily;
  675. BYTE tmCharSet;
  676. } TEXTMETRICA,*PTEXTMETRICA,*NPTEXTMETRICA,*LPTEXTMETRICA;
  677. typedef struct tagTEXTMETRICW {
  678. LONG tmHeight;
  679. LONG tmAscent;
  680. LONG tmDescent;
  681. LONG tmInternalLeading;
  682. LONG tmExternalLeading;
  683. LONG tmAveCharWidth;
  684. LONG tmMaxCharWidth;
  685. LONG tmWeight;
  686. LONG tmOverhang;
  687. LONG tmDigitizedAspectX;
  688. LONG tmDigitizedAspectY;
  689. WCHAR tmFirstChar;
  690. WCHAR tmLastChar;
  691. WCHAR tmDefaultChar;
  692. WCHAR tmBreakChar;
  693. BYTE tmItalic;
  694. BYTE tmUnderlined;
  695. BYTE tmStruckOut;
  696. BYTE tmPitchAndFamily;
  697. BYTE tmCharSet;
  698. } TEXTMETRICW,*PTEXTMETRICW,*NPTEXTMETRICW,*LPTEXTMETRICW;
  699. #ifdef UNICODE
  700. typedef TEXTMETRICW TEXTMETRIC;
  701. typedef PTEXTMETRICW PTEXTMETRIC;
  702. typedef NPTEXTMETRICW NPTEXTMETRIC;
  703. typedef LPTEXTMETRICW LPTEXTMETRIC;
  704. #else
  705. typedef TEXTMETRICA TEXTMETRIC;
  706. typedef PTEXTMETRICA PTEXTMETRIC;
  707. typedef NPTEXTMETRICA NPTEXTMETRIC;
  708. typedef LPTEXTMETRICA LPTEXTMETRIC;
  709. #endif
  710. #endif
  711. #define NTM_REGULAR 0x00000040L
  712. #define NTM_BOLD 0x00000020L
  713. #define NTM_ITALIC 0x00000001L
  714. #define NTM_NONNEGATIVE_AC 0x00010000
  715. #define NTM_PS_OPENTYPE 0x00020000
  716. #define NTM_TT_OPENTYPE 0x00040000
  717. #define NTM_MULTIPLEMASTER 0x00080000
  718. #define NTM_TYPE1 0x00100000
  719. #define NTM_DSIG 0x00200000
  720. #include <pshpack4.h>
  721. typedef struct tagNEWTEXTMETRICA {
  722. LONG tmHeight;
  723. LONG tmAscent;
  724. LONG tmDescent;
  725. LONG tmInternalLeading;
  726. LONG tmExternalLeading;
  727. LONG tmAveCharWidth;
  728. LONG tmMaxCharWidth;
  729. LONG tmWeight;
  730. LONG tmOverhang;
  731. LONG tmDigitizedAspectX;
  732. LONG tmDigitizedAspectY;
  733. BYTE tmFirstChar;
  734. BYTE tmLastChar;
  735. BYTE tmDefaultChar;
  736. BYTE tmBreakChar;
  737. BYTE tmItalic;
  738. BYTE tmUnderlined;
  739. BYTE tmStruckOut;
  740. BYTE tmPitchAndFamily;
  741. BYTE tmCharSet;
  742. DWORD ntmFlags;
  743. UINT ntmSizeEM;
  744. UINT ntmCellHeight;
  745. UINT ntmAvgWidth;
  746. } NEWTEXTMETRICA,*PNEWTEXTMETRICA,*NPNEWTEXTMETRICA,*LPNEWTEXTMETRICA;
  747. typedef struct tagNEWTEXTMETRICW {
  748. LONG tmHeight;
  749. LONG tmAscent;
  750. LONG tmDescent;
  751. LONG tmInternalLeading;
  752. LONG tmExternalLeading;
  753. LONG tmAveCharWidth;
  754. LONG tmMaxCharWidth;
  755. LONG tmWeight;
  756. LONG tmOverhang;
  757. LONG tmDigitizedAspectX;
  758. LONG tmDigitizedAspectY;
  759. WCHAR tmFirstChar;
  760. WCHAR tmLastChar;
  761. WCHAR tmDefaultChar;
  762. WCHAR tmBreakChar;
  763. BYTE tmItalic;
  764. BYTE tmUnderlined;
  765. BYTE tmStruckOut;
  766. BYTE tmPitchAndFamily;
  767. BYTE tmCharSet;
  768. DWORD ntmFlags;
  769. UINT ntmSizeEM;
  770. UINT ntmCellHeight;
  771. UINT ntmAvgWidth;
  772. } NEWTEXTMETRICW,*PNEWTEXTMETRICW,*NPNEWTEXTMETRICW,*LPNEWTEXTMETRICW;
  773. #ifdef UNICODE
  774. typedef NEWTEXTMETRICW NEWTEXTMETRIC;
  775. typedef PNEWTEXTMETRICW PNEWTEXTMETRIC;
  776. typedef NPNEWTEXTMETRICW NPNEWTEXTMETRIC;
  777. typedef LPNEWTEXTMETRICW LPNEWTEXTMETRIC;
  778. #else
  779. typedef NEWTEXTMETRICA NEWTEXTMETRIC;
  780. typedef PNEWTEXTMETRICA PNEWTEXTMETRIC;
  781. typedef NPNEWTEXTMETRICA NPNEWTEXTMETRIC;
  782. typedef LPNEWTEXTMETRICA LPNEWTEXTMETRIC;
  783. #endif
  784. #include <poppack.h>
  785. typedef struct tagNEWTEXTMETRICEXA {
  786. NEWTEXTMETRICA ntmTm;
  787. FONTSIGNATURE ntmFontSig;
  788. } NEWTEXTMETRICEXA;
  789. typedef struct tagNEWTEXTMETRICEXW {
  790. NEWTEXTMETRICW ntmTm;
  791. FONTSIGNATURE ntmFontSig;
  792. } NEWTEXTMETRICEXW;
  793. #ifdef UNICODE
  794. typedef NEWTEXTMETRICEXW NEWTEXTMETRICEX;
  795. #else
  796. typedef NEWTEXTMETRICEXA NEWTEXTMETRICEX;
  797. #endif
  798. #endif
  799. typedef struct tagPELARRAY {
  800. LONG paXCount;
  801. LONG paYCount;
  802. LONG paXExt;
  803. LONG paYExt;
  804. BYTE paRGBs;
  805. } PELARRAY,*PPELARRAY,*NPPELARRAY,*LPPELARRAY;
  806. typedef struct tagLOGBRUSH {
  807. UINT lbStyle;
  808. COLORREF lbColor;
  809. ULONG_PTR lbHatch;
  810. } LOGBRUSH,*PLOGBRUSH,*NPLOGBRUSH,*LPLOGBRUSH;
  811. typedef struct tagLOGBRUSH32 {
  812. UINT lbStyle;
  813. COLORREF lbColor;
  814. ULONG lbHatch;
  815. } LOGBRUSH32,*PLOGBRUSH32,*NPLOGBRUSH32,*LPLOGBRUSH32;
  816. typedef LOGBRUSH PATTERN;
  817. typedef PATTERN *PPATTERN;
  818. typedef PATTERN *NPPATTERN;
  819. typedef PATTERN *LPPATTERN;
  820. typedef struct tagLOGPEN {
  821. UINT lopnStyle;
  822. POINT lopnWidth;
  823. COLORREF lopnColor;
  824. } LOGPEN,*PLOGPEN,*NPLOGPEN,*LPLOGPEN;
  825. typedef struct tagEXTLOGPEN {
  826. DWORD elpPenStyle;
  827. DWORD elpWidth;
  828. UINT elpBrushStyle;
  829. COLORREF elpColor;
  830. ULONG_PTR elpHatch;
  831. DWORD elpNumEntries;
  832. DWORD elpStyleEntry[1];
  833. } EXTLOGPEN,*PEXTLOGPEN,*NPEXTLOGPEN,*LPEXTLOGPEN;
  834. #ifndef _PALETTEENTRY_DEFINED
  835. #define _PALETTEENTRY_DEFINED
  836. typedef struct tagPALETTEENTRY {
  837. BYTE peRed;
  838. BYTE peGreen;
  839. BYTE peBlue;
  840. BYTE peFlags;
  841. } PALETTEENTRY,*PPALETTEENTRY,*LPPALETTEENTRY;
  842. #endif
  843. #ifndef _LOGPALETTE_DEFINED
  844. #define _LOGPALETTE_DEFINED
  845. typedef struct tagLOGPALETTE {
  846. WORD palVersion;
  847. WORD palNumEntries;
  848. PALETTEENTRY palPalEntry[1];
  849. } LOGPALETTE,*PLOGPALETTE,*NPLOGPALETTE,*LPLOGPALETTE;
  850. #endif
  851. #define LF_FACESIZE 32
  852. typedef struct tagLOGFONTA {
  853. LONG lfHeight;
  854. LONG lfWidth;
  855. LONG lfEscapement;
  856. LONG lfOrientation;
  857. LONG lfWeight;
  858. BYTE lfItalic;
  859. BYTE lfUnderline;
  860. BYTE lfStrikeOut;
  861. BYTE lfCharSet;
  862. BYTE lfOutPrecision;
  863. BYTE lfClipPrecision;
  864. BYTE lfQuality;
  865. BYTE lfPitchAndFamily;
  866. CHAR lfFaceName[LF_FACESIZE];
  867. } LOGFONTA,*PLOGFONTA,*NPLOGFONTA,*LPLOGFONTA;
  868. typedef struct tagLOGFONTW {
  869. LONG lfHeight;
  870. LONG lfWidth;
  871. LONG lfEscapement;
  872. LONG lfOrientation;
  873. LONG lfWeight;
  874. BYTE lfItalic;
  875. BYTE lfUnderline;
  876. BYTE lfStrikeOut;
  877. BYTE lfCharSet;
  878. BYTE lfOutPrecision;
  879. BYTE lfClipPrecision;
  880. BYTE lfQuality;
  881. BYTE lfPitchAndFamily;
  882. WCHAR lfFaceName[LF_FACESIZE];
  883. } LOGFONTW,*PLOGFONTW,*NPLOGFONTW,*LPLOGFONTW;
  884. #ifdef UNICODE
  885. typedef LOGFONTW LOGFONT;
  886. typedef PLOGFONTW PLOGFONT;
  887. typedef NPLOGFONTW NPLOGFONT;
  888. typedef LPLOGFONTW LPLOGFONT;
  889. #else
  890. typedef LOGFONTA LOGFONT;
  891. typedef PLOGFONTA PLOGFONT;
  892. typedef NPLOGFONTA NPLOGFONT;
  893. typedef LPLOGFONTA LPLOGFONT;
  894. #endif
  895. #define LF_FULLFACESIZE 64
  896. typedef struct tagENUMLOGFONTA {
  897. LOGFONTA elfLogFont;
  898. BYTE elfFullName[LF_FULLFACESIZE];
  899. BYTE elfStyle[LF_FACESIZE];
  900. } ENUMLOGFONTA,*LPENUMLOGFONTA;
  901. typedef struct tagENUMLOGFONTW {
  902. LOGFONTW elfLogFont;
  903. WCHAR elfFullName[LF_FULLFACESIZE];
  904. WCHAR elfStyle[LF_FACESIZE];
  905. } ENUMLOGFONTW,*LPENUMLOGFONTW;
  906. #ifdef UNICODE
  907. typedef ENUMLOGFONTW ENUMLOGFONT;
  908. typedef LPENUMLOGFONTW LPENUMLOGFONT;
  909. #else
  910. typedef ENUMLOGFONTA ENUMLOGFONT;
  911. typedef LPENUMLOGFONTA LPENUMLOGFONT;
  912. #endif
  913. typedef struct tagENUMLOGFONTEXA {
  914. LOGFONTA elfLogFont;
  915. BYTE elfFullName[LF_FULLFACESIZE];
  916. BYTE elfStyle[LF_FACESIZE];
  917. BYTE elfScript[LF_FACESIZE];
  918. } ENUMLOGFONTEXA,*LPENUMLOGFONTEXA;
  919. typedef struct tagENUMLOGFONTEXW {
  920. LOGFONTW elfLogFont;
  921. WCHAR elfFullName[LF_FULLFACESIZE];
  922. WCHAR elfStyle[LF_FACESIZE];
  923. WCHAR elfScript[LF_FACESIZE];
  924. } ENUMLOGFONTEXW,*LPENUMLOGFONTEXW;
  925. #ifdef UNICODE
  926. typedef ENUMLOGFONTEXW ENUMLOGFONTEX;
  927. typedef LPENUMLOGFONTEXW LPENUMLOGFONTEX;
  928. #else
  929. typedef ENUMLOGFONTEXA ENUMLOGFONTEX;
  930. typedef LPENUMLOGFONTEXA LPENUMLOGFONTEX;
  931. #endif
  932. #define OUT_DEFAULT_PRECIS 0
  933. #define OUT_STRING_PRECIS 1
  934. #define OUT_CHARACTER_PRECIS 2
  935. #define OUT_STROKE_PRECIS 3
  936. #define OUT_TT_PRECIS 4
  937. #define OUT_DEVICE_PRECIS 5
  938. #define OUT_RASTER_PRECIS 6
  939. #define OUT_TT_ONLY_PRECIS 7
  940. #define OUT_OUTLINE_PRECIS 8
  941. #define OUT_SCREEN_OUTLINE_PRECIS 9
  942. #define OUT_PS_ONLY_PRECIS 10
  943. #define CLIP_DEFAULT_PRECIS 0
  944. #define CLIP_CHARACTER_PRECIS 1
  945. #define CLIP_STROKE_PRECIS 2
  946. #define CLIP_MASK 0xf
  947. #define CLIP_LH_ANGLES (1<<4)
  948. #define CLIP_TT_ALWAYS (2<<4)
  949. #define CLIP_DFA_DISABLE (4<<4)
  950. #define CLIP_EMBEDDED (8<<4)
  951. #define DEFAULT_QUALITY 0
  952. #define DRAFT_QUALITY 1
  953. #define PROOF_QUALITY 2
  954. #define NONANTIALIASED_QUALITY 3
  955. #define ANTIALIASED_QUALITY 4
  956. #define CLEARTYPE_QUALITY 5
  957. #define CLEARTYPE_NATURAL_QUALITY 6
  958. #define DEFAULT_PITCH 0
  959. #define FIXED_PITCH 1
  960. #define VARIABLE_PITCH 2
  961. #define MONO_FONT 8
  962. #define ANSI_CHARSET 0
  963. #define DEFAULT_CHARSET 1
  964. #define SYMBOL_CHARSET 2
  965. #define SHIFTJIS_CHARSET 128
  966. #define HANGEUL_CHARSET 129
  967. #define HANGUL_CHARSET 129
  968. #define GB2312_CHARSET 134
  969. #define CHINESEBIG5_CHARSET 136
  970. #define OEM_CHARSET 255
  971. #define JOHAB_CHARSET 130
  972. #define HEBREW_CHARSET 177
  973. #define ARABIC_CHARSET 178
  974. #define GREEK_CHARSET 161
  975. #define TURKISH_CHARSET 162
  976. #define VIETNAMESE_CHARSET 163
  977. #define THAI_CHARSET 222
  978. #define EASTEUROPE_CHARSET 238
  979. #define RUSSIAN_CHARSET 204
  980. #define MAC_CHARSET 77
  981. #define BALTIC_CHARSET 186
  982. #define FS_LATIN1 0x00000001L
  983. #define FS_LATIN2 0x00000002L
  984. #define FS_CYRILLIC 0x00000004L
  985. #define FS_GREEK 0x00000008L
  986. #define FS_TURKISH 0x00000010L
  987. #define FS_HEBREW 0x00000020L
  988. #define FS_ARABIC 0x00000040L
  989. #define FS_BALTIC 0x00000080L
  990. #define FS_VIETNAMESE 0x00000100L
  991. #define FS_THAI 0x00010000L
  992. #define FS_JISJAPAN 0x00020000L
  993. #define FS_CHINESESIMP 0x00040000L
  994. #define FS_WANSUNG 0x00080000L
  995. #define FS_CHINESETRAD 0x00100000L
  996. #define FS_JOHAB 0x00200000L
  997. #define FS_SYMBOL 0x80000000L
  998. #define FF_DONTCARE (0<<4)
  999. #define FF_ROMAN (1<<4)
  1000. #define FF_SWISS (2<<4)
  1001. #define FF_MODERN (3<<4)
  1002. #define FF_SCRIPT (4<<4)
  1003. #define FF_DECORATIVE (5<<4)
  1004. #define FW_DONTCARE 0
  1005. #define FW_THIN 100
  1006. #define FW_EXTRALIGHT 200
  1007. #define FW_LIGHT 300
  1008. #define FW_NORMAL 400
  1009. #define FW_MEDIUM 500
  1010. #define FW_SEMIBOLD 600
  1011. #define FW_BOLD 700
  1012. #define FW_EXTRABOLD 800
  1013. #define FW_HEAVY 900
  1014. #define FW_ULTRALIGHT FW_EXTRALIGHT
  1015. #define FW_REGULAR FW_NORMAL
  1016. #define FW_DEMIBOLD FW_SEMIBOLD
  1017. #define FW_ULTRABOLD FW_EXTRABOLD
  1018. #define FW_BLACK FW_HEAVY
  1019. #define PANOSE_COUNT 10
  1020. #define PAN_FAMILYTYPE_INDEX 0
  1021. #define PAN_SERIFSTYLE_INDEX 1
  1022. #define PAN_WEIGHT_INDEX 2
  1023. #define PAN_PROPORTION_INDEX 3
  1024. #define PAN_CONTRAST_INDEX 4
  1025. #define PAN_STROKEVARIATION_INDEX 5
  1026. #define PAN_ARMSTYLE_INDEX 6
  1027. #define PAN_LETTERFORM_INDEX 7
  1028. #define PAN_MIDLINE_INDEX 8
  1029. #define PAN_XHEIGHT_INDEX 9
  1030. #define PAN_CULTURE_LATIN 0
  1031. typedef struct tagPANOSE {
  1032. BYTE bFamilyType;
  1033. BYTE bSerifStyle;
  1034. BYTE bWeight;
  1035. BYTE bProportion;
  1036. BYTE bContrast;
  1037. BYTE bStrokeVariation;
  1038. BYTE bArmStyle;
  1039. BYTE bLetterform;
  1040. BYTE bMidline;
  1041. BYTE bXHeight;
  1042. } PANOSE,*LPPANOSE;
  1043. #define PAN_ANY 0
  1044. #define PAN_NO_FIT 1
  1045. #define PAN_FAMILY_TEXT_DISPLAY 2
  1046. #define PAN_FAMILY_SCRIPT 3
  1047. #define PAN_FAMILY_DECORATIVE 4
  1048. #define PAN_FAMILY_PICTORIAL 5
  1049. #define PAN_SERIF_COVE 2
  1050. #define PAN_SERIF_OBTUSE_COVE 3
  1051. #define PAN_SERIF_SQUARE_COVE 4
  1052. #define PAN_SERIF_OBTUSE_SQUARE_COVE 5
  1053. #define PAN_SERIF_SQUARE 6
  1054. #define PAN_SERIF_THIN 7
  1055. #define PAN_SERIF_BONE 8
  1056. #define PAN_SERIF_EXAGGERATED 9
  1057. #define PAN_SERIF_TRIANGLE 10
  1058. #define PAN_SERIF_NORMAL_SANS 11
  1059. #define PAN_SERIF_OBTUSE_SANS 12
  1060. #define PAN_SERIF_PERP_SANS 13
  1061. #define PAN_SERIF_FLARED 14
  1062. #define PAN_SERIF_ROUNDED 15
  1063. #define PAN_WEIGHT_VERY_LIGHT 2
  1064. #define PAN_WEIGHT_LIGHT 3
  1065. #define PAN_WEIGHT_THIN 4
  1066. #define PAN_WEIGHT_BOOK 5
  1067. #define PAN_WEIGHT_MEDIUM 6
  1068. #define PAN_WEIGHT_DEMI 7
  1069. #define PAN_WEIGHT_BOLD 8
  1070. #define PAN_WEIGHT_HEAVY 9
  1071. #define PAN_WEIGHT_BLACK 10
  1072. #define PAN_WEIGHT_NORD 11
  1073. #define PAN_PROP_OLD_STYLE 2
  1074. #define PAN_PROP_MODERN 3
  1075. #define PAN_PROP_EVEN_WIDTH 4
  1076. #define PAN_PROP_EXPANDED 5
  1077. #define PAN_PROP_CONDENSED 6
  1078. #define PAN_PROP_VERY_EXPANDED 7
  1079. #define PAN_PROP_VERY_CONDENSED 8
  1080. #define PAN_PROP_MONOSPACED 9
  1081. #define PAN_CONTRAST_NONE 2
  1082. #define PAN_CONTRAST_VERY_LOW 3
  1083. #define PAN_CONTRAST_LOW 4
  1084. #define PAN_CONTRAST_MEDIUM_LOW 5
  1085. #define PAN_CONTRAST_MEDIUM 6
  1086. #define PAN_CONTRAST_MEDIUM_HIGH 7
  1087. #define PAN_CONTRAST_HIGH 8
  1088. #define PAN_CONTRAST_VERY_HIGH 9
  1089. #define PAN_STROKE_GRADUAL_DIAG 2
  1090. #define PAN_STROKE_GRADUAL_TRAN 3
  1091. #define PAN_STROKE_GRADUAL_VERT 4
  1092. #define PAN_STROKE_GRADUAL_HORZ 5
  1093. #define PAN_STROKE_RAPID_VERT 6
  1094. #define PAN_STROKE_RAPID_HORZ 7
  1095. #define PAN_STROKE_INSTANT_VERT 8
  1096. #define PAN_STRAIGHT_ARMS_HORZ 2
  1097. #define PAN_STRAIGHT_ARMS_WEDGE 3
  1098. #define PAN_STRAIGHT_ARMS_VERT 4
  1099. #define PAN_STRAIGHT_ARMS_SINGLE_SERIF 5
  1100. #define PAN_STRAIGHT_ARMS_DOUBLE_SERIF 6
  1101. #define PAN_BENT_ARMS_HORZ 7
  1102. #define PAN_BENT_ARMS_WEDGE 8
  1103. #define PAN_BENT_ARMS_VERT 9
  1104. #define PAN_BENT_ARMS_SINGLE_SERIF 10
  1105. #define PAN_BENT_ARMS_DOUBLE_SERIF 11
  1106. #define PAN_LETT_NORMAL_CONTACT 2
  1107. #define PAN_LETT_NORMAL_WEIGHTED 3
  1108. #define PAN_LETT_NORMAL_BOXED 4
  1109. #define PAN_LETT_NORMAL_FLATTENED 5
  1110. #define PAN_LETT_NORMAL_ROUNDED 6
  1111. #define PAN_LETT_NORMAL_OFF_CENTER 7
  1112. #define PAN_LETT_NORMAL_SQUARE 8
  1113. #define PAN_LETT_OBLIQUE_CONTACT 9
  1114. #define PAN_LETT_OBLIQUE_WEIGHTED 10
  1115. #define PAN_LETT_OBLIQUE_BOXED 11
  1116. #define PAN_LETT_OBLIQUE_FLATTENED 12
  1117. #define PAN_LETT_OBLIQUE_ROUNDED 13
  1118. #define PAN_LETT_OBLIQUE_OFF_CENTER 14
  1119. #define PAN_LETT_OBLIQUE_SQUARE 15
  1120. #define PAN_MIDLINE_STANDARD_TRIMMED 2
  1121. #define PAN_MIDLINE_STANDARD_POINTED 3
  1122. #define PAN_MIDLINE_STANDARD_SERIFED 4
  1123. #define PAN_MIDLINE_HIGH_TRIMMED 5
  1124. #define PAN_MIDLINE_HIGH_POINTED 6
  1125. #define PAN_MIDLINE_HIGH_SERIFED 7
  1126. #define PAN_MIDLINE_CONSTANT_TRIMMED 8
  1127. #define PAN_MIDLINE_CONSTANT_POINTED 9
  1128. #define PAN_MIDLINE_CONSTANT_SERIFED 10
  1129. #define PAN_MIDLINE_LOW_TRIMMED 11
  1130. #define PAN_MIDLINE_LOW_POINTED 12
  1131. #define PAN_MIDLINE_LOW_SERIFED 13
  1132. #define PAN_XHEIGHT_CONSTANT_SMALL 2
  1133. #define PAN_XHEIGHT_CONSTANT_STD 3
  1134. #define PAN_XHEIGHT_CONSTANT_LARGE 4
  1135. #define PAN_XHEIGHT_DUCKING_SMALL 5
  1136. #define PAN_XHEIGHT_DUCKING_STD 6
  1137. #define PAN_XHEIGHT_DUCKING_LARGE 7
  1138. #define ELF_VENDOR_SIZE 4
  1139. typedef struct tagEXTLOGFONTA {
  1140. LOGFONTA elfLogFont;
  1141. BYTE elfFullName[LF_FULLFACESIZE];
  1142. BYTE elfStyle[LF_FACESIZE];
  1143. DWORD elfVersion;
  1144. DWORD elfStyleSize;
  1145. DWORD elfMatch;
  1146. DWORD elfReserved;
  1147. BYTE elfVendorId[ELF_VENDOR_SIZE];
  1148. DWORD elfCulture;
  1149. PANOSE elfPanose;
  1150. } EXTLOGFONTA,*PEXTLOGFONTA,*NPEXTLOGFONTA,*LPEXTLOGFONTA;
  1151. typedef struct tagEXTLOGFONTW {
  1152. LOGFONTW elfLogFont;
  1153. WCHAR elfFullName[LF_FULLFACESIZE];
  1154. WCHAR elfStyle[LF_FACESIZE];
  1155. DWORD elfVersion;
  1156. DWORD elfStyleSize;
  1157. DWORD elfMatch;
  1158. DWORD elfReserved;
  1159. BYTE elfVendorId[ELF_VENDOR_SIZE];
  1160. DWORD elfCulture;
  1161. PANOSE elfPanose;
  1162. } EXTLOGFONTW,*PEXTLOGFONTW,*NPEXTLOGFONTW,*LPEXTLOGFONTW;
  1163. #ifdef UNICODE
  1164. typedef EXTLOGFONTW EXTLOGFONT;
  1165. typedef PEXTLOGFONTW PEXTLOGFONT;
  1166. typedef NPEXTLOGFONTW NPEXTLOGFONT;
  1167. typedef LPEXTLOGFONTW LPEXTLOGFONT;
  1168. #else
  1169. typedef EXTLOGFONTA EXTLOGFONT;
  1170. typedef PEXTLOGFONTA PEXTLOGFONT;
  1171. typedef NPEXTLOGFONTA NPEXTLOGFONT;
  1172. typedef LPEXTLOGFONTA LPEXTLOGFONT;
  1173. #endif
  1174. #define ELF_VERSION 0
  1175. #define ELF_CULTURE_LATIN 0
  1176. #define RASTER_FONTTYPE 0x0001
  1177. #define DEVICE_FONTTYPE 0x002
  1178. #define TRUETYPE_FONTTYPE 0x004
  1179. #define RGB(r,g,b) ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8))|(((DWORD)(BYTE)(b))<<16)))
  1180. #define PALETTERGB(r,g,b) (0x02000000 | RGB(r,g,b))
  1181. #define PALETTEINDEX(i) ((COLORREF)(0x01000000 | (DWORD)(WORD)(i)))
  1182. #define PC_RESERVED 0x01
  1183. #define PC_EXPLICIT 0x02
  1184. #define PC_NOCOLLAPSE 0x04
  1185. #define GetRValue(rgb) (LOBYTE(rgb))
  1186. #define GetGValue(rgb) (LOBYTE(((WORD)(rgb)) >> 8))
  1187. #define GetBValue(rgb) (LOBYTE((rgb)>>16))
  1188. #define TRANSPARENT 1
  1189. #define OPAQUE 2
  1190. #define BKMODE_LAST 2
  1191. #define GM_COMPATIBLE 1
  1192. #define GM_ADVANCED 2
  1193. #define GM_LAST 2
  1194. #define PT_CLOSEFIGURE 0x01
  1195. #define PT_LINETO 0x02
  1196. #define PT_BEZIERTO 0x04
  1197. #define PT_MOVETO 0x06
  1198. #define MM_TEXT 1
  1199. #define MM_LOMETRIC 2
  1200. #define MM_HIMETRIC 3
  1201. #define MM_LOENGLISH 4
  1202. #define MM_HIENGLISH 5
  1203. #define MM_TWIPS 6
  1204. #define MM_ISOTROPIC 7
  1205. #define MM_ANISOTROPIC 8
  1206. #define MM_MIN MM_TEXT
  1207. #define MM_MAX MM_ANISOTROPIC
  1208. #define MM_MAX_FIXEDSCALE MM_TWIPS
  1209. #define ABSOLUTE 1
  1210. #define RELATIVE 2
  1211. #define WHITE_BRUSH 0
  1212. #define LTGRAY_BRUSH 1
  1213. #define GRAY_BRUSH 2
  1214. #define DKGRAY_BRUSH 3
  1215. #define BLACK_BRUSH 4
  1216. #define NULL_BRUSH 5
  1217. #define HOLLOW_BRUSH NULL_BRUSH
  1218. #define WHITE_PEN 6
  1219. #define BLACK_PEN 7
  1220. #define NULL_PEN 8
  1221. #define OEM_FIXED_FONT 10
  1222. #define ANSI_FIXED_FONT 11
  1223. #define ANSI_VAR_FONT 12
  1224. #define SYSTEM_FONT 13
  1225. #define DEVICE_DEFAULT_FONT 14
  1226. #define DEFAULT_PALETTE 15
  1227. #define SYSTEM_FIXED_FONT 16
  1228. #define DEFAULT_GUI_FONT 17
  1229. #define DC_BRUSH 18
  1230. #define DC_PEN 19
  1231. #define STOCK_LAST 19
  1232. #define CLR_INVALID 0xFFFFFFFF
  1233. #define BS_SOLID 0
  1234. #define BS_NULL 1
  1235. #define BS_HOLLOW BS_NULL
  1236. #define BS_HATCHED 2
  1237. #define BS_PATTERN 3
  1238. #define BS_INDEXED 4
  1239. #define BS_DIBPATTERN 5
  1240. #define BS_DIBPATTERNPT 6
  1241. #define BS_PATTERN8X8 7
  1242. #define BS_DIBPATTERN8X8 8
  1243. #define BS_MONOPATTERN 9
  1244. #define HS_HORIZONTAL 0
  1245. #define HS_VERTICAL 1
  1246. #define HS_FDIAGONAL 2
  1247. #define HS_BDIAGONAL 3
  1248. #define HS_CROSS 4
  1249. #define HS_DIAGCROSS 5
  1250. #define PS_SOLID 0
  1251. #define PS_DASH 1
  1252. #define PS_DOT 2
  1253. #define PS_DASHDOT 3
  1254. #define PS_DASHDOTDOT 4
  1255. #define PS_NULL 5
  1256. #define PS_INSIDEFRAME 6
  1257. #define PS_USERSTYLE 7
  1258. #define PS_ALTERNATE 8
  1259. #define PS_STYLE_MASK 0x0000000F
  1260. #define PS_ENDCAP_ROUND 0x00000000
  1261. #define PS_ENDCAP_SQUARE 0x00000100
  1262. #define PS_ENDCAP_FLAT 0x00000200
  1263. #define PS_ENDCAP_MASK 0x00000F00
  1264. #define PS_JOIN_ROUND 0x00000000
  1265. #define PS_JOIN_BEVEL 0x00001000
  1266. #define PS_JOIN_MITER 0x00002000
  1267. #define PS_JOIN_MASK 0x0000F000
  1268. #define PS_COSMETIC 0x00000000
  1269. #define PS_GEOMETRIC 0x00010000
  1270. #define PS_TYPE_MASK 0x000F0000
  1271. #define AD_COUNTERCLOCKWISE 1
  1272. #define AD_CLOCKWISE 2
  1273. #define DRIVERVERSION 0
  1274. #define TECHNOLOGY 2
  1275. #define HORZSIZE 4
  1276. #define VERTSIZE 6
  1277. #define HORZRES 8
  1278. #define VERTRES 10
  1279. #define BITSPIXEL 12
  1280. #define PLANES 14
  1281. #define NUMBRUSHES 16
  1282. #define NUMPENS 18
  1283. #define NUMMARKERS 20
  1284. #define NUMFONTS 22
  1285. #define NUMCOLORS 24
  1286. #define PDEVICESIZE 26
  1287. #define CURVECAPS 28
  1288. #define LINECAPS 30
  1289. #define POLYGONALCAPS 32
  1290. #define TEXTCAPS 34
  1291. #define CLIPCAPS 36
  1292. #define RASTERCAPS 38
  1293. #define ASPECTX 40
  1294. #define ASPECTY 42
  1295. #define ASPECTXY 44
  1296. #define LOGPIXELSX 88
  1297. #define LOGPIXELSY 90
  1298. #define SIZEPALETTE 104
  1299. #define NUMRESERVED 106
  1300. #define COLORRES 108
  1301. #define PHYSICALWIDTH 110
  1302. #define PHYSICALHEIGHT 111
  1303. #define PHYSICALOFFSETX 112
  1304. #define PHYSICALOFFSETY 113
  1305. #define SCALINGFACTORX 114
  1306. #define SCALINGFACTORY 115
  1307. #define VREFRESH 116
  1308. #define DESKTOPVERTRES 117
  1309. #define DESKTOPHORZRES 118
  1310. #define BLTALIGNMENT 119
  1311. #define SHADEBLENDCAPS 120
  1312. #define COLORMGMTCAPS 121
  1313. #ifndef NOGDICAPMASKS
  1314. #define DT_PLOTTER 0
  1315. #define DT_RASDISPLAY 1
  1316. #define DT_RASPRINTER 2
  1317. #define DT_RASCAMERA 3
  1318. #define DT_CHARSTREAM 4
  1319. #define DT_METAFILE 5
  1320. #define DT_DISPFILE 6
  1321. #define CC_NONE 0
  1322. #define CC_CIRCLES 1
  1323. #define CC_PIE 2
  1324. #define CC_CHORD 4
  1325. #define CC_ELLIPSES 8
  1326. #define CC_WIDE 16
  1327. #define CC_STYLED 32
  1328. #define CC_WIDESTYLED 64
  1329. #define CC_INTERIORS 128
  1330. #define CC_ROUNDRECT 256
  1331. #define LC_NONE 0
  1332. #define LC_POLYLINE 2
  1333. #define LC_MARKER 4
  1334. #define LC_POLYMARKER 8
  1335. #define LC_WIDE 16
  1336. #define LC_STYLED 32
  1337. #define LC_WIDESTYLED 64
  1338. #define LC_INTERIORS 128
  1339. #define PC_NONE 0
  1340. #define PC_POLYGON 1
  1341. #define PC_RECTANGLE 2
  1342. #define PC_WINDPOLYGON 4
  1343. #define PC_TRAPEZOID 4
  1344. #define PC_SCANLINE 8
  1345. #define PC_WIDE 16
  1346. #define PC_STYLED 32
  1347. #define PC_WIDESTYLED 64
  1348. #define PC_INTERIORS 128
  1349. #define PC_POLYPOLYGON 256
  1350. #define PC_PATHS 512
  1351. #define CP_NONE 0
  1352. #define CP_RECTANGLE 1
  1353. #define CP_REGION 2
  1354. #define TC_OP_CHARACTER 0x00000001
  1355. #define TC_OP_STROKE 0x00000002
  1356. #define TC_CP_STROKE 0x00000004
  1357. #define TC_CR_90 0x00000008
  1358. #define TC_CR_ANY 0x00000010
  1359. #define TC_SF_X_YINDEP 0x00000020
  1360. #define TC_SA_DOUBLE 0x00000040
  1361. #define TC_SA_INTEGER 0x00000080
  1362. #define TC_SA_CONTIN 0x00000100
  1363. #define TC_EA_DOUBLE 0x00000200
  1364. #define TC_IA_ABLE 0x00000400
  1365. #define TC_UA_ABLE 0x00000800
  1366. #define TC_SO_ABLE 0x00001000
  1367. #define TC_RA_ABLE 0x00002000
  1368. #define TC_VA_ABLE 0x00004000
  1369. #define TC_RESERVED 0x00008000
  1370. #define TC_SCROLLBLT 0x00010000
  1371. #endif
  1372. #define RC_NONE
  1373. #define RC_BITBLT 1
  1374. #define RC_BANDING 2
  1375. #define RC_SCALING 4
  1376. #define RC_BITMAP64 8
  1377. #define RC_GDI20_OUTPUT 0x0010
  1378. #define RC_GDI20_STATE 0x0020
  1379. #define RC_SAVEBITMAP 0x0040
  1380. #define RC_DI_BITMAP 0x0080
  1381. #define RC_PALETTE 0x0100
  1382. #define RC_DIBTODEV 0x0200
  1383. #define RC_BIGFONT 0x0400
  1384. #define RC_STRETCHBLT 0x0800
  1385. #define RC_FLOODFILL 0x1000
  1386. #define RC_STRETCHDIB 0x2000
  1387. #define RC_OP_DX_OUTPUT 0x4000
  1388. #define RC_DEVBITS 0x8000
  1389. #define SB_NONE 0x00000000
  1390. #define SB_CONST_ALPHA 0x00000001
  1391. #define SB_PIXEL_ALPHA 0x00000002
  1392. #define SB_PREMULT_ALPHA 0x00000004
  1393. #define SB_GRAD_RECT 0x00000010
  1394. #define SB_GRAD_TRI 0x00000020
  1395. #define CM_NONE 0x00000000
  1396. #define CM_DEVICE_ICM 0x00000001
  1397. #define CM_GAMMA_RAMP 0x00000002
  1398. #define CM_CMYK_COLOR 0x00000004
  1399. #define DIB_RGB_COLORS 0
  1400. #define DIB_PAL_COLORS 1
  1401. #define SYSPAL_ERROR 0
  1402. #define SYSPAL_STATIC 1
  1403. #define SYSPAL_NOSTATIC 2
  1404. #define SYSPAL_NOSTATIC256 3
  1405. #define CBM_INIT 0x04L
  1406. #define FLOODFILLBORDER 0
  1407. #define FLOODFILLSURFACE 1
  1408. #define CCHDEVICENAME 32
  1409. #define CCHFORMNAME 32
  1410. typedef struct _devicemodeA {
  1411. BYTE dmDeviceName[CCHDEVICENAME];
  1412. WORD dmSpecVersion;
  1413. WORD dmDriverVersion;
  1414. WORD dmSize;
  1415. WORD dmDriverExtra;
  1416. DWORD dmFields;
  1417. union {
  1418. struct {
  1419. short dmOrientation;
  1420. short dmPaperSize;
  1421. short dmPaperLength;
  1422. short dmPaperWidth;
  1423. short dmScale;
  1424. short dmCopies;
  1425. short dmDefaultSource;
  1426. short dmPrintQuality;
  1427. };
  1428. struct {
  1429. POINTL dmPosition;
  1430. DWORD dmDisplayOrientation;
  1431. DWORD dmDisplayFixedOutput;
  1432. };
  1433. };
  1434. short dmColor;
  1435. short dmDuplex;
  1436. short dmYResolution;
  1437. short dmTTOption;
  1438. short dmCollate;
  1439. BYTE dmFormName[CCHFORMNAME];
  1440. WORD dmLogPixels;
  1441. DWORD dmBitsPerPel;
  1442. DWORD dmPelsWidth;
  1443. DWORD dmPelsHeight;
  1444. union {
  1445. DWORD dmDisplayFlags;
  1446. DWORD dmNup;
  1447. };
  1448. DWORD dmDisplayFrequency;
  1449. DWORD dmICMMethod;
  1450. DWORD dmICMIntent;
  1451. DWORD dmMediaType;
  1452. DWORD dmDitherType;
  1453. DWORD dmReserved1;
  1454. DWORD dmReserved2;
  1455. DWORD dmPanningWidth;
  1456. DWORD dmPanningHeight;
  1457. } DEVMODEA,*PDEVMODEA,*NPDEVMODEA,*LPDEVMODEA;
  1458. typedef struct _devicemodeW {
  1459. WCHAR dmDeviceName[CCHDEVICENAME];
  1460. WORD dmSpecVersion;
  1461. WORD dmDriverVersion;
  1462. WORD dmSize;
  1463. WORD dmDriverExtra;
  1464. DWORD dmFields;
  1465. union {
  1466. struct {
  1467. short dmOrientation;
  1468. short dmPaperSize;
  1469. short dmPaperLength;
  1470. short dmPaperWidth;
  1471. short dmScale;
  1472. short dmCopies;
  1473. short dmDefaultSource;
  1474. short dmPrintQuality;
  1475. };
  1476. struct {
  1477. POINTL dmPosition;
  1478. DWORD dmDisplayOrientation;
  1479. DWORD dmDisplayFixedOutput;
  1480. };
  1481. };
  1482. short dmColor;
  1483. short dmDuplex;
  1484. short dmYResolution;
  1485. short dmTTOption;
  1486. short dmCollate;
  1487. WCHAR dmFormName[CCHFORMNAME];
  1488. WORD dmLogPixels;
  1489. DWORD dmBitsPerPel;
  1490. DWORD dmPelsWidth;
  1491. DWORD dmPelsHeight;
  1492. union {
  1493. DWORD dmDisplayFlags;
  1494. DWORD dmNup;
  1495. };
  1496. DWORD dmDisplayFrequency;
  1497. DWORD dmICMMethod;
  1498. DWORD dmICMIntent;
  1499. DWORD dmMediaType;
  1500. DWORD dmDitherType;
  1501. DWORD dmReserved1;
  1502. DWORD dmReserved2;
  1503. DWORD dmPanningWidth;
  1504. DWORD dmPanningHeight;
  1505. } DEVMODEW,*PDEVMODEW,*NPDEVMODEW,*LPDEVMODEW;
  1506. #ifdef UNICODE
  1507. typedef DEVMODEW DEVMODE;
  1508. typedef PDEVMODEW PDEVMODE;
  1509. typedef NPDEVMODEW NPDEVMODE;
  1510. typedef LPDEVMODEW LPDEVMODE;
  1511. #else
  1512. typedef DEVMODEA DEVMODE;
  1513. typedef PDEVMODEA PDEVMODE;
  1514. typedef NPDEVMODEA NPDEVMODE;
  1515. typedef LPDEVMODEA LPDEVMODE;
  1516. #endif
  1517. #define DM_SPECVERSION 0x0401
  1518. #define DM_ORIENTATION 0x00000001L
  1519. #define DM_PAPERSIZE 0x00000002L
  1520. #define DM_PAPERLENGTH 0x00000004L
  1521. #define DM_PAPERWIDTH 0x00000008L
  1522. #define DM_SCALE 0x00000010L
  1523. #define DM_POSITION 0x00000020L
  1524. #define DM_NUP 0x00000040L
  1525. #define DM_DISPLAYORIENTATION 0x00000080L
  1526. #define DM_COPIES 0x00000100L
  1527. #define DM_DEFAULTSOURCE 0x00000200L
  1528. #define DM_PRINTQUALITY 0x00000400L
  1529. #define DM_COLOR 0x00000800L
  1530. #define DM_DUPLEX 0x00001000L
  1531. #define DM_YRESOLUTION 0x00002000L
  1532. #define DM_TTOPTION 0x00004000L
  1533. #define DM_COLLATE 0x00008000L
  1534. #define DM_FORMNAME 0x00010000L
  1535. #define DM_LOGPIXELS 0x00020000L
  1536. #define DM_BITSPERPEL 0x00040000L
  1537. #define DM_PELSWIDTH 0x00080000L
  1538. #define DM_PELSHEIGHT 0x00100000L
  1539. #define DM_DISPLAYFLAGS 0x00200000L
  1540. #define DM_DISPLAYFREQUENCY 0x00400000L
  1541. #define DM_ICMMETHOD 0x00800000L
  1542. #define DM_ICMINTENT 0x01000000L
  1543. #define DM_MEDIATYPE 0x02000000L
  1544. #define DM_DITHERTYPE 0x04000000L
  1545. #define DM_PANNINGWIDTH 0x08000000L
  1546. #define DM_PANNINGHEIGHT 0x10000000L
  1547. #define DM_DISPLAYFIXEDOUTPUT 0x20000000L
  1548. #define DMORIENT_PORTRAIT 1
  1549. #define DMORIENT_LANDSCAPE 2
  1550. #define DMPAPER_FIRST DMPAPER_LETTER
  1551. #define DMPAPER_LETTER 1
  1552. #define DMPAPER_LETTERSMALL 2
  1553. #define DMPAPER_TABLOID 3
  1554. #define DMPAPER_LEDGER 4
  1555. #define DMPAPER_LEGAL 5
  1556. #define DMPAPER_STATEMENT 6
  1557. #define DMPAPER_EXECUTIVE 7
  1558. #define DMPAPER_A3 8
  1559. #define DMPAPER_A4 9
  1560. #define DMPAPER_A4SMALL 10
  1561. #define DMPAPER_A5 11
  1562. #define DMPAPER_B4 12
  1563. #define DMPAPER_B5 13
  1564. #define DMPAPER_FOLIO 14
  1565. #define DMPAPER_QUARTO 15
  1566. #define DMPAPER_10X14 16
  1567. #define DMPAPER_11X17 17
  1568. #define DMPAPER_NOTE 18
  1569. #define DMPAPER_ENV_9 19
  1570. #define DMPAPER_ENV_10 20
  1571. #define DMPAPER_ENV_11 21
  1572. #define DMPAPER_ENV_12 22
  1573. #define DMPAPER_ENV_14 23
  1574. #define DMPAPER_CSHEET 24
  1575. #define DMPAPER_DSHEET 25
  1576. #define DMPAPER_ESHEET 26
  1577. #define DMPAPER_ENV_DL 27
  1578. #define DMPAPER_ENV_C5 28
  1579. #define DMPAPER_ENV_C3 29
  1580. #define DMPAPER_ENV_C4 30
  1581. #define DMPAPER_ENV_C6 31
  1582. #define DMPAPER_ENV_C65 32
  1583. #define DMPAPER_ENV_B4 33
  1584. #define DMPAPER_ENV_B5 34
  1585. #define DMPAPER_ENV_B6 35
  1586. #define DMPAPER_ENV_ITALY 36
  1587. #define DMPAPER_ENV_MONARCH 37
  1588. #define DMPAPER_ENV_PERSONAL 38
  1589. #define DMPAPER_FANFOLD_US 39
  1590. #define DMPAPER_FANFOLD_STD_GERMAN 40
  1591. #define DMPAPER_FANFOLD_LGL_GERMAN 41
  1592. #define DMPAPER_ISO_B4 42
  1593. #define DMPAPER_JAPANESE_POSTCARD 43
  1594. #define DMPAPER_9X11 44
  1595. #define DMPAPER_10X11 45
  1596. #define DMPAPER_15X11 46
  1597. #define DMPAPER_ENV_INVITE 47
  1598. #define DMPAPER_RESERVED_48 48
  1599. #define DMPAPER_RESERVED_49 49
  1600. #define DMPAPER_LETTER_EXTRA 50
  1601. #define DMPAPER_LEGAL_EXTRA 51
  1602. #define DMPAPER_TABLOID_EXTRA 52
  1603. #define DMPAPER_A4_EXTRA 53
  1604. #define DMPAPER_LETTER_TRANSVERSE 54
  1605. #define DMPAPER_A4_TRANSVERSE 55
  1606. #define DMPAPER_LETTER_EXTRA_TRANSVERSE 56
  1607. #define DMPAPER_A_PLUS 57
  1608. #define DMPAPER_B_PLUS 58
  1609. #define DMPAPER_LETTER_PLUS 59
  1610. #define DMPAPER_A4_PLUS 60
  1611. #define DMPAPER_A5_TRANSVERSE 61
  1612. #define DMPAPER_B5_TRANSVERSE 62
  1613. #define DMPAPER_A3_EXTRA 63
  1614. #define DMPAPER_A5_EXTRA 64
  1615. #define DMPAPER_B5_EXTRA 65
  1616. #define DMPAPER_A2 66
  1617. #define DMPAPER_A3_TRANSVERSE 67
  1618. #define DMPAPER_A3_EXTRA_TRANSVERSE 68
  1619. #define DMPAPER_DBL_JAPANESE_POSTCARD 69
  1620. #define DMPAPER_A6 70
  1621. #define DMPAPER_JENV_KAKU2 71
  1622. #define DMPAPER_JENV_KAKU3 72
  1623. #define DMPAPER_JENV_CHOU3 73
  1624. #define DMPAPER_JENV_CHOU4 74
  1625. #define DMPAPER_LETTER_ROTATED 75
  1626. #define DMPAPER_A3_ROTATED 76
  1627. #define DMPAPER_A4_ROTATED 77
  1628. #define DMPAPER_A5_ROTATED 78
  1629. #define DMPAPER_B4_JIS_ROTATED 79
  1630. #define DMPAPER_B5_JIS_ROTATED 80
  1631. #define DMPAPER_JAPANESE_POSTCARD_ROTATED 81
  1632. #define DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED 82
  1633. #define DMPAPER_A6_ROTATED 83
  1634. #define DMPAPER_JENV_KAKU2_ROTATED 84
  1635. #define DMPAPER_JENV_KAKU3_ROTATED 85
  1636. #define DMPAPER_JENV_CHOU3_ROTATED 86
  1637. #define DMPAPER_JENV_CHOU4_ROTATED 87
  1638. #define DMPAPER_B6_JIS 88
  1639. #define DMPAPER_B6_JIS_ROTATED 89
  1640. #define DMPAPER_12X11 90
  1641. #define DMPAPER_JENV_YOU4 91
  1642. #define DMPAPER_JENV_YOU4_ROTATED 92
  1643. #define DMPAPER_P16K 93
  1644. #define DMPAPER_P32K 94
  1645. #define DMPAPER_P32KBIG 95
  1646. #define DMPAPER_PENV_1 96
  1647. #define DMPAPER_PENV_2 97
  1648. #define DMPAPER_PENV_3 98
  1649. #define DMPAPER_PENV_4 99
  1650. #define DMPAPER_PENV_5 100
  1651. #define DMPAPER_PENV_6 101
  1652. #define DMPAPER_PENV_7 102
  1653. #define DMPAPER_PENV_8 103
  1654. #define DMPAPER_PENV_9 104
  1655. #define DMPAPER_PENV_10 105
  1656. #define DMPAPER_P16K_ROTATED 106
  1657. #define DMPAPER_P32K_ROTATED 107
  1658. #define DMPAPER_P32KBIG_ROTATED 108
  1659. #define DMPAPER_PENV_1_ROTATED 109
  1660. #define DMPAPER_PENV_2_ROTATED 110
  1661. #define DMPAPER_PENV_3_ROTATED 111
  1662. #define DMPAPER_PENV_4_ROTATED 112
  1663. #define DMPAPER_PENV_5_ROTATED 113
  1664. #define DMPAPER_PENV_6_ROTATED 114
  1665. #define DMPAPER_PENV_7_ROTATED 115
  1666. #define DMPAPER_PENV_8_ROTATED 116
  1667. #define DMPAPER_PENV_9_ROTATED 117
  1668. #define DMPAPER_PENV_10_ROTATED 118
  1669. #define DMPAPER_LAST DMPAPER_PENV_10_ROTATED
  1670. #define DMPAPER_USER 256
  1671. #define DMBIN_FIRST DMBIN_UPPER
  1672. #define DMBIN_UPPER 1
  1673. #define DMBIN_ONLYONE 1
  1674. #define DMBIN_LOWER 2
  1675. #define DMBIN_MIDDLE 3
  1676. #define DMBIN_MANUAL 4
  1677. #define DMBIN_ENVELOPE 5
  1678. #define DMBIN_ENVMANUAL 6
  1679. #define DMBIN_AUTO 7
  1680. #define DMBIN_TRACTOR 8
  1681. #define DMBIN_SMALLFMT 9
  1682. #define DMBIN_LARGEFMT 10
  1683. #define DMBIN_LARGECAPACITY 11
  1684. #define DMBIN_CASSETTE 14
  1685. #define DMBIN_FORMSOURCE 15
  1686. #define DMBIN_LAST DMBIN_FORMSOURCE
  1687. #define DMBIN_USER 256
  1688. #define DMRES_DRAFT (-1)
  1689. #define DMRES_LOW (-2)
  1690. #define DMRES_MEDIUM (-3)
  1691. #define DMRES_HIGH (-4)
  1692. #define DMCOLOR_MONOCHROME 1
  1693. #define DMCOLOR_COLOR 2
  1694. #define DMDUP_SIMPLEX 1
  1695. #define DMDUP_VERTICAL 2
  1696. #define DMDUP_HORIZONTAL 3
  1697. #define DMTT_BITMAP 1
  1698. #define DMTT_DOWNLOAD 2
  1699. #define DMTT_SUBDEV 3
  1700. #define DMTT_DOWNLOAD_OUTLINE 4
  1701. #define DMCOLLATE_FALSE 0
  1702. #define DMCOLLATE_TRUE 1
  1703. #define DMDO_DEFAULT 0
  1704. #define DMDO_90 1
  1705. #define DMDO_180 2
  1706. #define DMDO_270 3
  1707. #define DMDFO_DEFAULT 0
  1708. #define DMDFO_STRETCH 1
  1709. #define DMDFO_CENTER 2
  1710. #define DMDISPLAYFLAGS_TEXTMODE 0x00000004
  1711. #define DMNUP_SYSTEM 1
  1712. #define DMNUP_ONEUP 2
  1713. #define DMICMMETHOD_NONE 1
  1714. #define DMICMMETHOD_SYSTEM 2
  1715. #define DMICMMETHOD_DRIVER 3
  1716. #define DMICMMETHOD_DEVICE 4
  1717. #define DMICMMETHOD_USER 256
  1718. #define DMICM_SATURATE 1
  1719. #define DMICM_CONTRAST 2
  1720. #define DMICM_COLORIMETRIC 3
  1721. #define DMICM_ABS_COLORIMETRIC 4
  1722. #define DMICM_USER 256
  1723. #define DMMEDIA_STANDARD 1
  1724. #define DMMEDIA_TRANSPARENCY 2
  1725. #define DMMEDIA_GLOSSY 3
  1726. #define DMMEDIA_USER 256
  1727. #define DMDITHER_NONE 1
  1728. #define DMDITHER_COARSE 2
  1729. #define DMDITHER_FINE 3
  1730. #define DMDITHER_LINEART 4
  1731. #define DMDITHER_ERRORDIFFUSION 5
  1732. #define DMDITHER_RESERVED6 6
  1733. #define DMDITHER_RESERVED7 7
  1734. #define DMDITHER_RESERVED8 8
  1735. #define DMDITHER_RESERVED9 9
  1736. #define DMDITHER_GRAYSCALE 10
  1737. #define DMDITHER_USER 256
  1738. typedef struct _DISPLAY_DEVICEA {
  1739. DWORD cb;
  1740. CHAR DeviceName[32];
  1741. CHAR DeviceString[128];
  1742. DWORD StateFlags;
  1743. CHAR DeviceID[128];
  1744. CHAR DeviceKey[128];
  1745. } DISPLAY_DEVICEA,*PDISPLAY_DEVICEA,*LPDISPLAY_DEVICEA;
  1746. typedef struct _DISPLAY_DEVICEW {
  1747. DWORD cb;
  1748. WCHAR DeviceName[32];
  1749. WCHAR DeviceString[128];
  1750. DWORD StateFlags;
  1751. WCHAR DeviceID[128];
  1752. WCHAR DeviceKey[128];
  1753. } DISPLAY_DEVICEW,*PDISPLAY_DEVICEW,*LPDISPLAY_DEVICEW;
  1754. #ifdef UNICODE
  1755. typedef DISPLAY_DEVICEW DISPLAY_DEVICE;
  1756. typedef PDISPLAY_DEVICEW PDISPLAY_DEVICE;
  1757. typedef LPDISPLAY_DEVICEW LPDISPLAY_DEVICE;
  1758. #else
  1759. typedef DISPLAY_DEVICEA DISPLAY_DEVICE;
  1760. typedef PDISPLAY_DEVICEA PDISPLAY_DEVICE;
  1761. typedef LPDISPLAY_DEVICEA LPDISPLAY_DEVICE;
  1762. #endif
  1763. #define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP 0x00000001
  1764. #define DISPLAY_DEVICE_MULTI_DRIVER 0x00000002
  1765. #define DISPLAY_DEVICE_PRIMARY_DEVICE 0x00000004
  1766. #define DISPLAY_DEVICE_MIRRORING_DRIVER 0x00000008
  1767. #define DISPLAY_DEVICE_VGA_COMPATIBLE 0x00000010
  1768. #define DISPLAY_DEVICE_REMOVABLE 0x00000020
  1769. #define DISPLAY_DEVICE_MODESPRUNED 0x08000000
  1770. #define DISPLAY_DEVICE_REMOTE 0x04000000
  1771. #define DISPLAY_DEVICE_DISCONNECT 0x02000000
  1772. #define DISPLAY_DEVICE_ACTIVE 0x00000001
  1773. #define DISPLAY_DEVICE_ATTACHED 0x00000002
  1774. #define RDH_RECTANGLES 1
  1775. typedef struct _RGNDATAHEADER {
  1776. DWORD dwSize;
  1777. DWORD iType;
  1778. DWORD nCount;
  1779. DWORD nRgnSize;
  1780. RECT rcBound;
  1781. } RGNDATAHEADER,*PRGNDATAHEADER;
  1782. typedef struct _RGNDATA {
  1783. RGNDATAHEADER rdh;
  1784. char Buffer[1];
  1785. } RGNDATA,*PRGNDATA,*NPRGNDATA,*LPRGNDATA;
  1786. #define SYSRGN 4
  1787. typedef struct _ABC {
  1788. int abcA;
  1789. UINT abcB;
  1790. int abcC;
  1791. } ABC,*PABC,*NPABC,*LPABC;
  1792. typedef struct _ABCFLOAT {
  1793. FLOAT abcfA;
  1794. FLOAT abcfB;
  1795. FLOAT abcfC;
  1796. } ABCFLOAT,*PABCFLOAT,*NPABCFLOAT,*LPABCFLOAT;
  1797. #ifndef NOTEXTMETRIC
  1798. typedef struct _OUTLINETEXTMETRICA {
  1799. UINT otmSize;
  1800. TEXTMETRICA otmTextMetrics;
  1801. BYTE otmFiller;
  1802. PANOSE otmPanoseNumber;
  1803. UINT otmfsSelection;
  1804. UINT otmfsType;
  1805. int otmsCharSlopeRise;
  1806. int otmsCharSlopeRun;
  1807. int otmItalicAngle;
  1808. UINT otmEMSquare;
  1809. int otmAscent;
  1810. int otmDescent;
  1811. UINT otmLineGap;
  1812. UINT otmsCapEmHeight;
  1813. UINT otmsXHeight;
  1814. RECT otmrcFontBox;
  1815. int otmMacAscent;
  1816. int otmMacDescent;
  1817. UINT otmMacLineGap;
  1818. UINT otmusMinimumPPEM;
  1819. POINT otmptSubscriptSize;
  1820. POINT otmptSubscriptOffset;
  1821. POINT otmptSuperscriptSize;
  1822. POINT otmptSuperscriptOffset;
  1823. UINT otmsStrikeoutSize;
  1824. int otmsStrikeoutPosition;
  1825. int otmsUnderscoreSize;
  1826. int otmsUnderscorePosition;
  1827. PSTR otmpFamilyName;
  1828. PSTR otmpFaceName;
  1829. PSTR otmpStyleName;
  1830. PSTR otmpFullName;
  1831. } OUTLINETEXTMETRICA,*POUTLINETEXTMETRICA,*NPOUTLINETEXTMETRICA,*LPOUTLINETEXTMETRICA;
  1832. typedef struct _OUTLINETEXTMETRICW {
  1833. UINT otmSize;
  1834. TEXTMETRICW otmTextMetrics;
  1835. BYTE otmFiller;
  1836. PANOSE otmPanoseNumber;
  1837. UINT otmfsSelection;
  1838. UINT otmfsType;
  1839. int otmsCharSlopeRise;
  1840. int otmsCharSlopeRun;
  1841. int otmItalicAngle;
  1842. UINT otmEMSquare;
  1843. int otmAscent;
  1844. int otmDescent;
  1845. UINT otmLineGap;
  1846. UINT otmsCapEmHeight;
  1847. UINT otmsXHeight;
  1848. RECT otmrcFontBox;
  1849. int otmMacAscent;
  1850. int otmMacDescent;
  1851. UINT otmMacLineGap;
  1852. UINT otmusMinimumPPEM;
  1853. POINT otmptSubscriptSize;
  1854. POINT otmptSubscriptOffset;
  1855. POINT otmptSuperscriptSize;
  1856. POINT otmptSuperscriptOffset;
  1857. UINT otmsStrikeoutSize;
  1858. int otmsStrikeoutPosition;
  1859. int otmsUnderscoreSize;
  1860. int otmsUnderscorePosition;
  1861. PSTR otmpFamilyName;
  1862. PSTR otmpFaceName;
  1863. PSTR otmpStyleName;
  1864. PSTR otmpFullName;
  1865. } OUTLINETEXTMETRICW,*POUTLINETEXTMETRICW,*NPOUTLINETEXTMETRICW,*LPOUTLINETEXTMETRICW;
  1866. #ifdef UNICODE
  1867. typedef OUTLINETEXTMETRICW OUTLINETEXTMETRIC;
  1868. typedef POUTLINETEXTMETRICW POUTLINETEXTMETRIC;
  1869. typedef NPOUTLINETEXTMETRICW NPOUTLINETEXTMETRIC;
  1870. typedef LPOUTLINETEXTMETRICW LPOUTLINETEXTMETRIC;
  1871. #else
  1872. typedef OUTLINETEXTMETRICA OUTLINETEXTMETRIC;
  1873. typedef POUTLINETEXTMETRICA POUTLINETEXTMETRIC;
  1874. typedef NPOUTLINETEXTMETRICA NPOUTLINETEXTMETRIC;
  1875. typedef LPOUTLINETEXTMETRICA LPOUTLINETEXTMETRIC;
  1876. #endif
  1877. #endif
  1878. typedef struct tagPOLYTEXTA {
  1879. int x;
  1880. int y;
  1881. UINT n;
  1882. LPCSTR lpstr;
  1883. UINT uiFlags;
  1884. RECT rcl;
  1885. int *pdx;
  1886. } POLYTEXTA,*PPOLYTEXTA,*NPPOLYTEXTA,*LPPOLYTEXTA;
  1887. typedef struct tagPOLYTEXTW {
  1888. int x;
  1889. int y;
  1890. UINT n;
  1891. LPCWSTR lpstr;
  1892. UINT uiFlags;
  1893. RECT rcl;
  1894. int *pdx;
  1895. } POLYTEXTW,*PPOLYTEXTW,*NPPOLYTEXTW,*LPPOLYTEXTW;
  1896. #ifdef UNICODE
  1897. typedef POLYTEXTW POLYTEXT;
  1898. typedef PPOLYTEXTW PPOLYTEXT;
  1899. typedef NPPOLYTEXTW NPPOLYTEXT;
  1900. typedef LPPOLYTEXTW LPPOLYTEXT;
  1901. #else
  1902. typedef POLYTEXTA POLYTEXT;
  1903. typedef PPOLYTEXTA PPOLYTEXT;
  1904. typedef NPPOLYTEXTA NPPOLYTEXT;
  1905. typedef LPPOLYTEXTA LPPOLYTEXT;
  1906. #endif
  1907. typedef struct _FIXED {
  1908. WORD fract;
  1909. short value;
  1910. } FIXED;
  1911. typedef struct _MAT2 {
  1912. FIXED eM11;
  1913. FIXED eM12;
  1914. FIXED eM21;
  1915. FIXED eM22;
  1916. } MAT2,*LPMAT2;
  1917. typedef struct _GLYPHMETRICS {
  1918. UINT gmBlackBoxX;
  1919. UINT gmBlackBoxY;
  1920. POINT gmptGlyphOrigin;
  1921. short gmCellIncX;
  1922. short gmCellIncY;
  1923. } GLYPHMETRICS,*LPGLYPHMETRICS;
  1924. #define GGO_METRICS 0
  1925. #define GGO_BITMAP 1
  1926. #define GGO_NATIVE 2
  1927. #define GGO_BEZIER 3
  1928. #define GGO_GRAY2_BITMAP 4
  1929. #define GGO_GRAY4_BITMAP 5
  1930. #define GGO_GRAY8_BITMAP 6
  1931. #define GGO_GLYPH_INDEX 0x0080
  1932. #define GGO_UNHINTED 0x0100
  1933. #define TT_POLYGON_TYPE 24
  1934. #define TT_PRIM_LINE 1
  1935. #define TT_PRIM_QSPLINE 2
  1936. #define TT_PRIM_CSPLINE 3
  1937. typedef struct tagPOINTFX {
  1938. FIXED x;
  1939. FIXED y;
  1940. } POINTFX,*LPPOINTFX;
  1941. typedef struct tagTTPOLYCURVE {
  1942. WORD wType;
  1943. WORD cpfx;
  1944. POINTFX apfx[1];
  1945. } TTPOLYCURVE,*LPTTPOLYCURVE;
  1946. typedef struct tagTTPOLYGONHEADER {
  1947. DWORD cb;
  1948. DWORD dwType;
  1949. POINTFX pfxStart;
  1950. } TTPOLYGONHEADER,*LPTTPOLYGONHEADER;
  1951. #define GCP_DBCS 0x0001
  1952. #define GCP_REORDER 0x0002
  1953. #define GCP_USEKERNING 0x0008
  1954. #define GCP_GLYPHSHAPE 0x0010
  1955. #define GCP_LIGATE 0x0020
  1956. #define GCP_DIACRITIC 0x0100
  1957. #define GCP_KASHIDA 0x0400
  1958. #define GCP_ERROR 0x8000
  1959. #define FLI_MASK 0x103B
  1960. #define GCP_JUSTIFY 0x00010000L
  1961. #define FLI_GLYPHS 0x00040000L
  1962. #define GCP_CLASSIN 0x00080000L
  1963. #define GCP_MAXEXTENT 0x00100000L
  1964. #define GCP_JUSTIFYIN 0x00200000L
  1965. #define GCP_DISPLAYZWG 0x00400000L
  1966. #define GCP_SYMSWAPOFF 0x00800000L
  1967. #define GCP_NUMERICOVERRIDE 0x01000000L
  1968. #define GCP_NEUTRALOVERRIDE 0x02000000L
  1969. #define GCP_NUMERICSLATIN 0x04000000L
  1970. #define GCP_NUMERICSLOCAL 0x08000000L
  1971. #define GCPCLASS_LATIN 1
  1972. #define GCPCLASS_HEBREW 2
  1973. #define GCPCLASS_ARABIC 2
  1974. #define GCPCLASS_NEUTRAL 3
  1975. #define GCPCLASS_LOCALNUMBER 4
  1976. #define GCPCLASS_LATINNUMBER 5
  1977. #define GCPCLASS_LATINNUMERICTERMINATOR 6
  1978. #define GCPCLASS_LATINNUMERICSEPARATOR 7
  1979. #define GCPCLASS_NUMERICSEPARATOR 8
  1980. #define GCPCLASS_PREBOUNDLTR 0x80
  1981. #define GCPCLASS_PREBOUNDRTL 0x40
  1982. #define GCPCLASS_POSTBOUNDLTR 0x20
  1983. #define GCPCLASS_POSTBOUNDRTL 0x10
  1984. #define GCPGLYPH_LINKBEFORE 0x8000
  1985. #define GCPGLYPH_LINKAFTER 0x4000
  1986. typedef struct tagGCP_RESULTSA {
  1987. DWORD lStructSize;
  1988. LPSTR lpOutString;
  1989. UINT *lpOrder;
  1990. int *lpDx;
  1991. int *lpCaretPos;
  1992. LPSTR lpClass;
  1993. LPWSTR lpGlyphs;
  1994. UINT nGlyphs;
  1995. int nMaxFit;
  1996. } GCP_RESULTSA,*LPGCP_RESULTSA;
  1997. typedef struct tagGCP_RESULTSW {
  1998. DWORD lStructSize;
  1999. LPWSTR lpOutString;
  2000. UINT *lpOrder;
  2001. int *lpDx;
  2002. int *lpCaretPos;
  2003. LPSTR lpClass;
  2004. LPWSTR lpGlyphs;
  2005. UINT nGlyphs;
  2006. int nMaxFit;
  2007. } GCP_RESULTSW,*LPGCP_RESULTSW;
  2008. #ifdef UNICODE
  2009. typedef GCP_RESULTSW GCP_RESULTS;
  2010. typedef LPGCP_RESULTSW LPGCP_RESULTS;
  2011. #else
  2012. typedef GCP_RESULTSA GCP_RESULTS;
  2013. typedef LPGCP_RESULTSA LPGCP_RESULTS;
  2014. #endif
  2015. typedef struct _RASTERIZER_STATUS {
  2016. short nSize;
  2017. short wFlags;
  2018. short nLanguageID;
  2019. } RASTERIZER_STATUS,*LPRASTERIZER_STATUS;
  2020. #define TT_AVAILABLE 0x0001
  2021. #define TT_ENABLED 0x0002
  2022. typedef struct tagPIXELFORMATDESCRIPTOR {
  2023. WORD nSize;
  2024. WORD nVersion;
  2025. DWORD dwFlags;
  2026. BYTE iPixelType;
  2027. BYTE cColorBits;
  2028. BYTE cRedBits;
  2029. BYTE cRedShift;
  2030. BYTE cGreenBits;
  2031. BYTE cGreenShift;
  2032. BYTE cBlueBits;
  2033. BYTE cBlueShift;
  2034. BYTE cAlphaBits;
  2035. BYTE cAlphaShift;
  2036. BYTE cAccumBits;
  2037. BYTE cAccumRedBits;
  2038. BYTE cAccumGreenBits;
  2039. BYTE cAccumBlueBits;
  2040. BYTE cAccumAlphaBits;
  2041. BYTE cDepthBits;
  2042. BYTE cStencilBits;
  2043. BYTE cAuxBuffers;
  2044. BYTE iLayerType;
  2045. BYTE bReserved;
  2046. DWORD dwLayerMask;
  2047. DWORD dwVisibleMask;
  2048. DWORD dwDamageMask;
  2049. } PIXELFORMATDESCRIPTOR,*PPIXELFORMATDESCRIPTOR,*LPPIXELFORMATDESCRIPTOR;
  2050. #define PFD_TYPE_RGBA 0
  2051. #define PFD_TYPE_COLORINDEX 1
  2052. #define PFD_MAIN_PLANE 0
  2053. #define PFD_OVERLAY_PLANE 1
  2054. #define PFD_UNDERLAY_PLANE (-1)
  2055. #define PFD_DOUBLEBUFFER 0x00000001
  2056. #define PFD_STEREO 0x00000002
  2057. #define PFD_DRAW_TO_WINDOW 0x00000004
  2058. #define PFD_DRAW_TO_BITMAP 0x00000008
  2059. #define PFD_SUPPORT_GDI 0x00000010
  2060. #define PFD_SUPPORT_OPENGL 0x00000020
  2061. #define PFD_GENERIC_FORMAT 0x00000040
  2062. #define PFD_NEED_PALETTE 0x00000080
  2063. #define PFD_NEED_SYSTEM_PALETTE 0x00000100
  2064. #define PFD_SWAP_EXCHANGE 0x00000200
  2065. #define PFD_SWAP_COPY 0x00000400
  2066. #define PFD_SWAP_LAYER_BUFFERS 0x00000800
  2067. #define PFD_GENERIC_ACCELERATED 0x00001000
  2068. #define PFD_SUPPORT_DIRECTDRAW 0x00002000
  2069. #define PFD_DEPTH_DONTCARE 0x20000000
  2070. #define PFD_DOUBLEBUFFER_DONTCARE 0x40000000
  2071. #define PFD_STEREO_DONTCARE 0x80000000
  2072. #ifndef NOTEXTMETRIC
  2073. typedef int (CALLBACK *OLDFONTENUMPROCA)(CONST LOGFONTA *,CONST TEXTMETRICA *,DWORD,LPARAM);
  2074. typedef int (CALLBACK *OLDFONTENUMPROCW)(CONST LOGFONTW *,CONST TEXTMETRICW *,DWORD,LPARAM);
  2075. #ifdef UNICODE
  2076. #define OLDFONTENUMPROC OLDFONTENUMPROCW
  2077. #else
  2078. #define OLDFONTENUMPROC OLDFONTENUMPROCA
  2079. #endif
  2080. #else
  2081. typedef int (CALLBACK *OLDFONTENUMPROCA)(CONST LOGFONTA *,CONST VOID *,DWORD,LPARAM);
  2082. typedef int (CALLBACK *OLDFONTENUMPROCW)(CONST LOGFONTW *,CONST VOID *,DWORD,LPARAM);
  2083. #ifdef UNICODE
  2084. #define OLDFONTENUMPROC OLDFONTENUMPROCW
  2085. #else
  2086. #define OLDFONTENUMPROC OLDFONTENUMPROCA
  2087. #endif
  2088. #endif
  2089. typedef OLDFONTENUMPROCA FONTENUMPROCA;
  2090. typedef OLDFONTENUMPROCW FONTENUMPROCW;
  2091. #ifdef UNICODE
  2092. typedef FONTENUMPROCW FONTENUMPROC;
  2093. #else
  2094. typedef FONTENUMPROCA FONTENUMPROC;
  2095. #endif
  2096. typedef int (CALLBACK *GOBJENUMPROC)(LPVOID,LPARAM);
  2097. typedef VOID (CALLBACK *LINEDDAPROC)(int,int,LPARAM);
  2098. #ifdef UNICODE
  2099. #define AddFontResource AddFontResourceW
  2100. #define CopyMetaFile CopyMetaFileW
  2101. #define CreateDC CreateDCW
  2102. #define CreateFontIndirect CreateFontIndirectW
  2103. #define CreateFont CreateFontW
  2104. #define CreateIC CreateICW
  2105. #define CreateMetaFile CreateMetaFileW
  2106. #define CreateScalableFontResource CreateScalableFontResourceW
  2107. #else
  2108. #define AddFontResource AddFontResourceA
  2109. #define CopyMetaFile CopyMetaFileA
  2110. #define CreateDC CreateDCA
  2111. #define CreateFontIndirect CreateFontIndirectA
  2112. #define CreateFont CreateFontA
  2113. #define CreateIC CreateICA
  2114. #define CreateMetaFile CreateMetaFileA
  2115. #define CreateScalableFontResource CreateScalableFontResourceA
  2116. #endif
  2117. WINGDIAPI int WINAPI AddFontResourceA(LPCSTR);
  2118. WINGDIAPI int WINAPI AddFontResourceW(LPCWSTR);
  2119. WINGDIAPI WINBOOL WINAPI AnimatePalette(HPALETTE hPal,UINT iStartIndex,UINT cEntries,CONST PALETTEENTRY *ppe);
  2120. WINGDIAPI WINBOOL WINAPI Arc(HDC hdc,int x1,int y1,int x2,int y2,int x3,int y3,int x4,int y4);
  2121. WINGDIAPI WINBOOL WINAPI BitBlt(HDC hdc,int x,int y,int cx,int cy,HDC hdcSrc,int x1,int y1,DWORD rop);
  2122. WINGDIAPI WINBOOL WINAPI CancelDC(HDC hdc);
  2123. WINGDIAPI WINBOOL WINAPI Chord(HDC hdc,int x1,int y1,int x2,int y2,int x3,int y3,int x4,int y4);
  2124. WINGDIAPI int WINAPI ChoosePixelFormat(HDC hdc,CONST PIXELFORMATDESCRIPTOR *ppfd);
  2125. WINGDIAPI HMETAFILE WINAPI CloseMetaFile(HDC hdc);
  2126. WINGDIAPI int WINAPI CombineRgn(HRGN hrgnDst,HRGN hrgnSrc1,HRGN hrgnSrc2,int iMode);
  2127. WINGDIAPI HMETAFILE WINAPI CopyMetaFileA(HMETAFILE,LPCSTR);
  2128. WINGDIAPI HMETAFILE WINAPI CopyMetaFileW(HMETAFILE,LPCWSTR);
  2129. WINGDIAPI HBITMAP WINAPI CreateBitmap(int nWidth,int nHeight,UINT nPlanes,UINT nBitCount,CONST VOID *lpBits);
  2130. WINGDIAPI HBITMAP WINAPI CreateBitmapIndirect(CONST BITMAP *pbm);
  2131. WINGDIAPI HBRUSH WINAPI CreateBrushIndirect(CONST LOGBRUSH *plbrush);
  2132. WINGDIAPI HBITMAP WINAPI CreateCompatibleBitmap(HDC hdc,int cx,int cy);
  2133. WINGDIAPI HBITMAP WINAPI CreateDiscardableBitmap(HDC hdc,int cx,int cy);
  2134. WINGDIAPI HDC WINAPI CreateCompatibleDC(HDC hdc);
  2135. WINGDIAPI HDC WINAPI CreateDCA(LPCSTR pwszDriver,LPCSTR pwszDevice,LPCSTR pszPort,CONST DEVMODEA *pdm);
  2136. WINGDIAPI HDC WINAPI CreateDCW(LPCWSTR pwszDriver,LPCWSTR pwszDevice,LPCWSTR pszPort,CONST DEVMODEW *pdm);
  2137. WINGDIAPI HBITMAP WINAPI CreateDIBitmap(HDC hdc,CONST BITMAPINFOHEADER *pbmih,DWORD flInit,CONST VOID *pjBits,CONST BITMAPINFO *pbmi,UINT iUsage);
  2138. WINGDIAPI HBRUSH WINAPI CreateDIBPatternBrush(HGLOBAL h,UINT iUsage);
  2139. WINGDIAPI HBRUSH WINAPI CreateDIBPatternBrushPt(CONST VOID *lpPackedDIB,UINT iUsage);
  2140. WINGDIAPI HRGN WINAPI CreateEllipticRgn(int x1,int y1,int x2,int y2);
  2141. WINGDIAPI HRGN WINAPI CreateEllipticRgnIndirect(CONST RECT *lprect);
  2142. WINGDIAPI HFONT WINAPI CreateFontIndirectA(CONST LOGFONTA *lplf);
  2143. WINGDIAPI HFONT WINAPI CreateFontIndirectW(CONST LOGFONTW *lplf);
  2144. WINGDIAPI HFONT WINAPI CreateFontA(int cHeight,int cWidth,int cEscapement,int cOrientation,int cWeight,DWORD bItalic,DWORD bUnderline,DWORD bStrikeOut,DWORD iCharSet,DWORD iOutPrecision,DWORD iClipPrecision,DWORD iQuality,DWORD iPitchAndFamily,LPCSTR pszFaceName);
  2145. WINGDIAPI HFONT WINAPI CreateFontW(int cHeight,int cWidth,int cEscapement,int cOrientation,int cWeight,DWORD bItalic,DWORD bUnderline,DWORD bStrikeOut,DWORD iCharSet,DWORD iOutPrecision,DWORD iClipPrecision,DWORD iQuality,DWORD iPitchAndFamily,LPCWSTR pszFaceName);
  2146. WINGDIAPI HBRUSH WINAPI CreateHatchBrush(int iHatch,COLORREF color);
  2147. WINGDIAPI HDC WINAPI CreateICA(LPCSTR pszDriver,LPCSTR pszDevice,LPCSTR pszPort,CONST DEVMODEA *pdm);
  2148. WINGDIAPI HDC WINAPI CreateICW(LPCWSTR pszDriver,LPCWSTR pszDevice,LPCWSTR pszPort,CONST DEVMODEW *pdm);
  2149. WINGDIAPI HDC WINAPI CreateMetaFileA(LPCSTR pszFile);
  2150. WINGDIAPI HDC WINAPI CreateMetaFileW(LPCWSTR pszFile);
  2151. WINGDIAPI HPALETTE WINAPI CreatePalette(CONST LOGPALETTE *plpal);
  2152. WINGDIAPI HPEN WINAPI CreatePen(int iStyle,int cWidth,COLORREF color);
  2153. WINGDIAPI HPEN WINAPI CreatePenIndirect(CONST LOGPEN *plpen);
  2154. WINGDIAPI HRGN WINAPI CreatePolyPolygonRgn(CONST POINT *pptl,CONST INT *pc,int cPoly,int iMode);
  2155. WINGDIAPI HBRUSH WINAPI CreatePatternBrush(HBITMAP hbm);
  2156. WINGDIAPI HRGN WINAPI CreateRectRgn(int x1,int y1,int x2,int y2);
  2157. WINGDIAPI HRGN WINAPI CreateRectRgnIndirect(CONST RECT *lprect);
  2158. WINGDIAPI HRGN WINAPI CreateRoundRectRgn(int x1,int y1,int x2,int y2,int w,int h);
  2159. WINGDIAPI WINBOOL WINAPI CreateScalableFontResourceA(DWORD fdwHidden,LPCSTR lpszFont,LPCSTR lpszFile,LPCSTR lpszPath);
  2160. WINGDIAPI WINBOOL WINAPI CreateScalableFontResourceW(DWORD fdwHidden,LPCWSTR lpszFont,LPCWSTR lpszFile,LPCWSTR lpszPath);
  2161. WINGDIAPI HBRUSH WINAPI CreateSolidBrush(COLORREF color);
  2162. WINGDIAPI WINBOOL WINAPI DeleteDC(HDC hdc);
  2163. WINGDIAPI WINBOOL WINAPI DeleteMetaFile(HMETAFILE hmf);
  2164. WINGDIAPI WINBOOL WINAPI DeleteObject(HGDIOBJ ho);
  2165. WINGDIAPI int WINAPI DescribePixelFormat(HDC hdc,int iPixelFormat,UINT nBytes,LPPIXELFORMATDESCRIPTOR ppfd);
  2166. typedef UINT (CALLBACK *LPFNDEVMODE)(HWND,HMODULE,LPDEVMODE,LPSTR,LPSTR,LPDEVMODE,LPSTR,UINT);
  2167. typedef DWORD (CALLBACK *LPFNDEVCAPS)(LPSTR,LPSTR,UINT,LPSTR,LPDEVMODE);
  2168. #define DM_UPDATE 1
  2169. #define DM_COPY 2
  2170. #define DM_PROMPT 4
  2171. #define DM_MODIFY 8
  2172. #define DM_IN_BUFFER DM_MODIFY
  2173. #define DM_IN_PROMPT DM_PROMPT
  2174. #define DM_OUT_BUFFER DM_COPY
  2175. #define DM_OUT_DEFAULT DM_UPDATE
  2176. #define DC_FIELDS 1
  2177. #define DC_PAPERS 2
  2178. #define DC_PAPERSIZE 3
  2179. #define DC_MINEXTENT 4
  2180. #define DC_MAXEXTENT 5
  2181. #define DC_BINS 6
  2182. #define DC_DUPLEX 7
  2183. #define DC_SIZE 8
  2184. #define DC_EXTRA 9
  2185. #define DC_VERSION 10
  2186. #define DC_DRIVER 11
  2187. #define DC_BINNAMES 12
  2188. #define DC_ENUMRESOLUTIONS 13
  2189. #define DC_FILEDEPENDENCIES 14
  2190. #define DC_TRUETYPE 15
  2191. #define DC_PAPERNAMES 16
  2192. #define DC_ORIENTATION 17
  2193. #define DC_COPIES 18
  2194. #define DC_BINADJUST 19
  2195. #define DC_EMF_COMPLIANT 20
  2196. #define DC_DATATYPE_PRODUCED 21
  2197. #define DC_COLLATE 22
  2198. #define DC_MANUFACTURER 23
  2199. #define DC_MODEL 24
  2200. #define DC_PERSONALITY 25
  2201. #define DC_PRINTRATE 26
  2202. #define DC_PRINTRATEUNIT 27
  2203. #define PRINTRATEUNIT_PPM 1
  2204. #define PRINTRATEUNIT_CPS 2
  2205. #define PRINTRATEUNIT_LPM 3
  2206. #define PRINTRATEUNIT_IPM 4
  2207. #define DC_PRINTERMEM 28
  2208. #define DC_MEDIAREADY 29
  2209. #define DC_STAPLE 30
  2210. #define DC_PRINTRATEPPM 31
  2211. #define DC_COLORDEVICE 32
  2212. #define DC_NUP 33
  2213. #define DC_MEDIATYPENAMES 34
  2214. #define DC_MEDIATYPES 35
  2215. #define DCTT_BITMAP 0x0000001L
  2216. #define DCTT_DOWNLOAD 0x0000002L
  2217. #define DCTT_SUBDEV 0x0000004L
  2218. #define DCTT_DOWNLOAD_OUTLINE 0x0000008L
  2219. #define DCBA_FACEUPNONE 0x0000
  2220. #define DCBA_FACEUPCENTER 0x0001
  2221. #define DCBA_FACEUPLEFT 0x0002
  2222. #define DCBA_FACEUPRIGHT 0x0003
  2223. #define DCBA_FACEDOWNNONE 0x0100
  2224. #define DCBA_FACEDOWNCENTER 0x0101
  2225. #define DCBA_FACEDOWNLEFT 0x0102
  2226. #define DCBA_FACEDOWNRIGHT 0x0103
  2227. #ifdef UNICODE
  2228. #define DeviceCapabilities DeviceCapabilitiesW
  2229. #define EnumFontFamiliesEx EnumFontFamiliesExW
  2230. #define EnumFontFamilies EnumFontFamiliesW
  2231. #define EnumFonts EnumFontsW
  2232. #define GetCharWidth GetCharWidthW
  2233. #define GetCharWidth32 GetCharWidth32W
  2234. #define GetCharWidthFloat GetCharWidthFloatW
  2235. #define GetCharABCWidths GetCharABCWidthsW
  2236. #define GetCharABCWidthsFloat GetCharABCWidthsFloatW
  2237. #define GetGlyphOutline GetGlyphOutlineW
  2238. #define GetMetaFile GetMetaFileW
  2239. #else
  2240. #define DeviceCapabilities DeviceCapabilitiesA
  2241. #define EnumFontFamiliesEx EnumFontFamiliesExA
  2242. #define EnumFontFamilies EnumFontFamiliesA
  2243. #define EnumFonts EnumFontsA
  2244. #define GetCharWidth GetCharWidthA
  2245. #define GetCharWidth32 GetCharWidth32A
  2246. #define GetCharWidthFloat GetCharWidthFloatA
  2247. #define GetCharABCWidths GetCharABCWidthsA
  2248. #define GetCharABCWidthsFloat GetCharABCWidthsFloatA
  2249. #define GetGlyphOutline GetGlyphOutlineA
  2250. #define GetMetaFile GetMetaFileA
  2251. #endif
  2252. WINSPOOLAPI int WINAPI DeviceCapabilitiesA(LPCSTR pDevice,LPCSTR pPort,WORD fwCapability,LPSTR pOutput,CONST DEVMODEA *pDevMode);
  2253. WINSPOOLAPI int WINAPI DeviceCapabilitiesW(LPCWSTR pDevice,LPCWSTR pPort,WORD fwCapability,LPWSTR pOutput,CONST DEVMODEW *pDevMode);
  2254. WINGDIAPI int WINAPI DrawEscape(HDC hdc,int iEscape,int cjIn,LPCSTR lpIn);
  2255. WINGDIAPI WINBOOL WINAPI Ellipse(HDC hdc,int left,int top,int right,int bottom);
  2256. WINGDIAPI int WINAPI EnumFontFamiliesExA(HDC hdc,LPLOGFONTA lpLogfont,FONTENUMPROCA lpProc,LPARAM lParam,DWORD dwFlags);
  2257. WINGDIAPI int WINAPI EnumFontFamiliesExW(HDC hdc,LPLOGFONTW lpLogfont,FONTENUMPROCW lpProc,LPARAM lParam,DWORD dwFlags);
  2258. WINGDIAPI int WINAPI EnumFontFamiliesA(HDC hdc,LPCSTR lpLogfont,FONTENUMPROCA lpProc,LPARAM lParam);
  2259. WINGDIAPI int WINAPI EnumFontFamiliesW(HDC hdc,LPCWSTR lpLogfont,FONTENUMPROCW lpProc,LPARAM lParam);
  2260. WINGDIAPI int WINAPI EnumFontsA(HDC hdc,LPCSTR lpLogfont,FONTENUMPROCA lpProc,LPARAM lParam);
  2261. WINGDIAPI int WINAPI EnumFontsW(HDC hdc,LPCWSTR lpLogfont,FONTENUMPROCW lpProc,LPARAM lParam);
  2262. WINGDIAPI int WINAPI EnumObjects(HDC hdc,int nType,GOBJENUMPROC lpFunc,LPARAM lParam);
  2263. WINGDIAPI WINBOOL WINAPI EqualRgn(HRGN hrgn1,HRGN hrgn2);
  2264. WINGDIAPI int WINAPI Escape(HDC hdc,int iEscape,int cjIn,LPCSTR pvIn,LPVOID pvOut);
  2265. WINGDIAPI int WINAPI ExtEscape(HDC hdc,int iEscape,int cjInput,LPCSTR lpInData,int cjOutput,LPSTR lpOutData);
  2266. WINGDIAPI int WINAPI ExcludeClipRect(HDC hdc,int left,int top,int right,int bottom);
  2267. WINGDIAPI HRGN WINAPI ExtCreateRegion(CONST XFORM *lpx,DWORD nCount,CONST RGNDATA *lpData);
  2268. WINGDIAPI WINBOOL WINAPI ExtFloodFill(HDC hdc,int x,int y,COLORREF color,UINT type);
  2269. WINGDIAPI WINBOOL WINAPI FillRgn(HDC hdc,HRGN hrgn,HBRUSH hbr);
  2270. WINGDIAPI WINBOOL WINAPI FloodFill(HDC hdc,int x,int y,COLORREF color);
  2271. WINGDIAPI WINBOOL WINAPI FrameRgn(HDC hdc,HRGN hrgn,HBRUSH hbr,int w,int h);
  2272. WINGDIAPI int WINAPI GetROP2(HDC hdc);
  2273. WINGDIAPI WINBOOL WINAPI GetAspectRatioFilterEx(HDC hdc,LPSIZE lpsize);
  2274. WINGDIAPI COLORREF WINAPI GetBkColor(HDC hdc);
  2275. WINGDIAPI COLORREF WINAPI GetDCBrushColor(HDC hdc);
  2276. WINGDIAPI COLORREF WINAPI GetDCPenColor(HDC hdc);
  2277. WINGDIAPI int WINAPI GetBkMode(HDC hdc);
  2278. WINGDIAPI LONG WINAPI GetBitmapBits(HBITMAP hbit,LONG cb,LPVOID lpvBits);
  2279. WINGDIAPI WINBOOL WINAPI GetBitmapDimensionEx(HBITMAP hbit,LPSIZE lpsize);
  2280. WINGDIAPI UINT WINAPI GetBoundsRect(HDC hdc,LPRECT lprect,UINT flags);
  2281. WINGDIAPI WINBOOL WINAPI GetBrushOrgEx(HDC hdc,LPPOINT lppt);
  2282. WINGDIAPI WINBOOL WINAPI GetCharWidthA(HDC hdc,UINT iFirst,UINT iLast,LPINT lpBuffer);
  2283. WINGDIAPI WINBOOL WINAPI GetCharWidthW(HDC hdc,UINT iFirst,UINT iLast,LPINT lpBuffer);
  2284. WINGDIAPI WINBOOL WINAPI GetCharWidth32A(HDC hdc,UINT iFirst,UINT iLast,LPINT lpBuffer);
  2285. WINGDIAPI WINBOOL WINAPI GetCharWidth32W(HDC hdc,UINT iFirst,UINT iLast,LPINT lpBuffer);
  2286. WINGDIAPI WINBOOL WINAPI GetCharWidthFloatA(HDC hdc,UINT iFirst,UINT iLast,PFLOAT lpBuffer);
  2287. WINGDIAPI WINBOOL WINAPI GetCharWidthFloatW(HDC hdc,UINT iFirst,UINT iLast,PFLOAT lpBuffer);
  2288. WINGDIAPI WINBOOL WINAPI GetCharABCWidthsA(HDC hdc,UINT wFirst,UINT wLast,LPABC lpABC);
  2289. WINGDIAPI WINBOOL WINAPI GetCharABCWidthsW(HDC hdc,UINT wFirst,UINT wLast,LPABC lpABC);
  2290. WINGDIAPI WINBOOL WINAPI GetCharABCWidthsFloatA(HDC hdc,UINT iFirst,UINT iLast,LPABCFLOAT lpABC);
  2291. WINGDIAPI WINBOOL WINAPI GetCharABCWidthsFloatW(HDC hdc,UINT iFirst,UINT iLast,LPABCFLOAT lpABC);
  2292. WINGDIAPI int WINAPI GetClipBox(HDC hdc,LPRECT lprect);
  2293. WINGDIAPI int WINAPI GetClipRgn(HDC hdc,HRGN hrgn);
  2294. WINGDIAPI int WINAPI GetMetaRgn(HDC hdc,HRGN hrgn);
  2295. WINGDIAPI HGDIOBJ WINAPI GetCurrentObject(HDC hdc,UINT type);
  2296. WINGDIAPI WINBOOL WINAPI GetCurrentPositionEx(HDC hdc,LPPOINT lppt);
  2297. WINGDIAPI int WINAPI GetDeviceCaps(HDC hdc,int index);
  2298. WINGDIAPI int WINAPI GetDIBits(HDC hdc,HBITMAP hbm,UINT start,UINT cLines,LPVOID lpvBits,LPBITMAPINFO lpbmi,UINT usage);
  2299. WINGDIAPI DWORD WINAPI GetFontData (HDC hdc,DWORD dwTable,DWORD dwOffset,PVOID pvBuffer,DWORD cjBuffer);
  2300. WINGDIAPI DWORD WINAPI GetGlyphOutlineA(HDC hdc,UINT uChar,UINT fuFormat,LPGLYPHMETRICS lpgm,DWORD cjBuffer,LPVOID pvBuffer,CONST MAT2 *lpmat2);
  2301. WINGDIAPI DWORD WINAPI GetGlyphOutlineW(HDC hdc,UINT uChar,UINT fuFormat,LPGLYPHMETRICS lpgm,DWORD cjBuffer,LPVOID pvBuffer,CONST MAT2 *lpmat2);
  2302. WINGDIAPI int WINAPI GetGraphicsMode(HDC hdc);
  2303. WINGDIAPI int WINAPI GetMapMode(HDC hdc);
  2304. WINGDIAPI UINT WINAPI GetMetaFileBitsEx(HMETAFILE hMF,UINT cbBuffer,LPVOID lpData);
  2305. WINGDIAPI HMETAFILE WINAPI GetMetaFileA(LPCSTR lpName);
  2306. WINGDIAPI HMETAFILE WINAPI GetMetaFileW(LPCWSTR lpName);
  2307. WINGDIAPI COLORREF WINAPI GetNearestColor(HDC hdc,COLORREF color);
  2308. WINGDIAPI UINT WINAPI GetNearestPaletteIndex(HPALETTE h,COLORREF color);
  2309. WINGDIAPI DWORD WINAPI GetObjectType(HGDIOBJ h);
  2310. #ifndef NOTEXTMETRIC
  2311. #ifdef UNICODE
  2312. #define GetOutlineTextMetrics GetOutlineTextMetricsW
  2313. #else
  2314. #define GetOutlineTextMetrics GetOutlineTextMetricsA
  2315. #endif
  2316. WINGDIAPI UINT WINAPI GetOutlineTextMetricsA(HDC hdc,UINT cjCopy,LPOUTLINETEXTMETRICA potm);
  2317. WINGDIAPI UINT WINAPI GetOutlineTextMetricsW(HDC hdc,UINT cjCopy,LPOUTLINETEXTMETRICW potm);
  2318. #endif
  2319. #ifdef UNICODE
  2320. #define GetTextExtentPoint GetTextExtentPointW
  2321. #define GetTextExtentPoint32 GetTextExtentPoint32W
  2322. #define GetTextExtentExPoint GetTextExtentExPointW
  2323. #define GetCharacterPlacement GetCharacterPlacementW
  2324. #else
  2325. #define GetTextExtentPoint GetTextExtentPointA
  2326. #define GetTextExtentPoint32 GetTextExtentPoint32A
  2327. #define GetTextExtentExPoint GetTextExtentExPointA
  2328. #define GetCharacterPlacement GetCharacterPlacementA
  2329. #endif
  2330. WINGDIAPI UINT WINAPI GetPaletteEntries(HPALETTE hpal,UINT iStart,UINT cEntries,LPPALETTEENTRY pPalEntries);
  2331. WINGDIAPI COLORREF WINAPI GetPixel(HDC hdc,int x,int y);
  2332. WINGDIAPI int WINAPI GetPixelFormat(HDC hdc);
  2333. WINGDIAPI int WINAPI GetPolyFillMode(HDC hdc);
  2334. WINGDIAPI WINBOOL WINAPI GetRasterizerCaps(LPRASTERIZER_STATUS lpraststat,UINT cjBytes);
  2335. WINGDIAPI int WINAPI GetRandomRgn (HDC hdc,HRGN hrgn,INT i);
  2336. WINGDIAPI DWORD WINAPI GetRegionData(HRGN hrgn,DWORD nCount,LPRGNDATA lpRgnData);
  2337. WINGDIAPI int WINAPI GetRgnBox(HRGN hrgn,LPRECT lprc);
  2338. WINGDIAPI HGDIOBJ WINAPI GetStockObject(int i);
  2339. WINGDIAPI int WINAPI GetStretchBltMode(HDC hdc);
  2340. WINGDIAPI UINT WINAPI GetSystemPaletteEntries(HDC hdc,UINT iStart,UINT cEntries,LPPALETTEENTRY pPalEntries);
  2341. WINGDIAPI UINT WINAPI GetSystemPaletteUse(HDC hdc);
  2342. WINGDIAPI int WINAPI GetTextCharacterExtra(HDC hdc);
  2343. WINGDIAPI UINT WINAPI GetTextAlign(HDC hdc);
  2344. WINGDIAPI COLORREF WINAPI GetTextColor(HDC hdc);
  2345. WINGDIAPI WINBOOL WINAPI GetTextExtentPointA(HDC hdc,LPCSTR lpString,int c,LPSIZE lpsz);
  2346. WINGDIAPI WINBOOL WINAPI GetTextExtentPointW(HDC hdc,LPCWSTR lpString,int c,LPSIZE lpsz);
  2347. WINGDIAPI WINBOOL WINAPI GetTextExtentPoint32A(HDC hdc,LPCSTR lpString,int c,LPSIZE psizl);
  2348. WINGDIAPI WINBOOL WINAPI GetTextExtentPoint32W(HDC hdc,LPCWSTR lpString,int c,LPSIZE psizl);
  2349. WINGDIAPI WINBOOL WINAPI GetTextExtentExPointA(HDC hdc,LPCSTR lpszString,int cchString,int nMaxExtent,LPINT lpnFit,LPINT lpnDx,LPSIZE lpSize);
  2350. WINGDIAPI WINBOOL WINAPI GetTextExtentExPointW(HDC hdc,LPCWSTR lpszString,int cchString,int nMaxExtent,LPINT lpnFit,LPINT lpnDx,LPSIZE lpSize);
  2351. WINGDIAPI int WINAPI GetTextCharset(HDC hdc);
  2352. WINGDIAPI int WINAPI GetTextCharsetInfo(HDC hdc,LPFONTSIGNATURE lpSig,DWORD dwFlags);
  2353. WINGDIAPI WINBOOL WINAPI TranslateCharsetInfo(DWORD *lpSrc,LPCHARSETINFO lpCs,DWORD dwFlags);
  2354. WINGDIAPI DWORD WINAPI GetFontLanguageInfo(HDC hdc);
  2355. WINGDIAPI DWORD WINAPI GetCharacterPlacementA(HDC hdc,LPCSTR lpString,int nCount,int nMexExtent,LPGCP_RESULTSA lpResults,DWORD dwFlags);
  2356. WINGDIAPI DWORD WINAPI GetCharacterPlacementW(HDC hdc,LPCWSTR lpString,int nCount,int nMexExtent,LPGCP_RESULTSW lpResults,DWORD dwFlags);
  2357. typedef struct tagWCRANGE {
  2358. WCHAR wcLow;
  2359. USHORT cGlyphs;
  2360. } WCRANGE,*PWCRANGE,*LPWCRANGE;
  2361. typedef struct tagGLYPHSET {
  2362. DWORD cbThis;
  2363. DWORD flAccel;
  2364. DWORD cGlyphsSupported;
  2365. DWORD cRanges;
  2366. WCRANGE ranges[1];
  2367. } GLYPHSET,*PGLYPHSET,*LPGLYPHSET;
  2368. #define GS_8BIT_INDICES 0x00000001
  2369. #define GGI_MARK_NONEXISTING_GLYPHS 0X0001
  2370. #ifdef UNICODE
  2371. #define GetGlyphIndices GetGlyphIndicesW
  2372. #else
  2373. #define GetGlyphIndices GetGlyphIndicesA
  2374. #endif
  2375. WINGDIAPI DWORD WINAPI GetFontUnicodeRanges(HDC hdc,LPGLYPHSET lpgs);
  2376. WINGDIAPI DWORD WINAPI GetGlyphIndicesA(HDC hdc,LPCSTR lpstr,int c,LPWORD pgi,DWORD fl);
  2377. WINGDIAPI DWORD WINAPI GetGlyphIndicesW(HDC hdc,LPCWSTR lpstr,int c,LPWORD pgi,DWORD fl);
  2378. WINGDIAPI WINBOOL WINAPI GetTextExtentPointI(HDC hdc,LPWORD pgiIn,int cgi,LPSIZE psize);
  2379. WINGDIAPI WINBOOL WINAPI GetTextExtentExPointI (HDC hdc,LPWORD lpwszString,int cwchString,int nMaxExtent,LPINT lpnFit,LPINT lpnDx,LPSIZE lpSize);
  2380. WINGDIAPI WINBOOL WINAPI GetCharWidthI(HDC hdc,UINT giFirst,UINT cgi,LPWORD pgi,LPINT piWidths);
  2381. WINGDIAPI WINBOOL WINAPI GetCharABCWidthsI(HDC hdc,UINT giFirst,UINT cgi,LPWORD pgi,LPABC pabc);
  2382. #define STAMP_DESIGNVECTOR (0x8000000 + 'd' + ('v' << 8))
  2383. #define STAMP_AXESLIST (0x8000000 + 'a' + ('l' << 8))
  2384. #define MM_MAX_NUMAXES 16
  2385. typedef struct tagDESIGNVECTOR {
  2386. DWORD dvReserved;
  2387. DWORD dvNumAxes;
  2388. LONG dvValues[MM_MAX_NUMAXES];
  2389. } DESIGNVECTOR,*PDESIGNVECTOR,*LPDESIGNVECTOR;
  2390. #ifdef UNICODE
  2391. #define AddFontResourceEx AddFontResourceExW
  2392. #define RemoveFontResourceEx RemoveFontResourceExW
  2393. #else
  2394. #define AddFontResourceEx AddFontResourceExA
  2395. #define RemoveFontResourceEx RemoveFontResourceExA
  2396. #endif
  2397. WINGDIAPI int WINAPI AddFontResourceExA(LPCSTR name,DWORD fl,PVOID res);
  2398. WINGDIAPI int WINAPI AddFontResourceExW(LPCWSTR name,DWORD fl,PVOID res);
  2399. WINGDIAPI WINBOOL WINAPI RemoveFontResourceExA(LPCSTR name,DWORD fl,PVOID pdv);
  2400. WINGDIAPI WINBOOL WINAPI RemoveFontResourceExW(LPCWSTR name,DWORD fl,PVOID pdv);
  2401. WINGDIAPI HANDLE WINAPI AddFontMemResourceEx(PVOID pFileView,DWORD cjSize,PVOID pvResrved,DWORD *pNumFonts);
  2402. WINGDIAPI WINBOOL WINAPI RemoveFontMemResourceEx(HANDLE h);
  2403. #define FR_PRIVATE 0x10
  2404. #define FR_NOT_ENUM 0x20
  2405. #define MM_MAX_AXES_NAMELEN 16
  2406. typedef struct tagAXISINFOA {
  2407. LONG axMinValue;
  2408. LONG axMaxValue;
  2409. BYTE axAxisName[MM_MAX_AXES_NAMELEN];
  2410. } AXISINFOA,*PAXISINFOA,*LPAXISINFOA;
  2411. typedef struct tagAXISINFOW {
  2412. LONG axMinValue;
  2413. LONG axMaxValue;
  2414. WCHAR axAxisName[MM_MAX_AXES_NAMELEN];
  2415. } AXISINFOW,*PAXISINFOW,*LPAXISINFOW;
  2416. #ifdef UNICODE
  2417. typedef AXISINFOW AXISINFO;
  2418. typedef PAXISINFOW PAXISINFO;
  2419. typedef LPAXISINFOW LPAXISINFO;
  2420. #else
  2421. typedef AXISINFOA AXISINFO;
  2422. typedef PAXISINFOA PAXISINFO;
  2423. typedef LPAXISINFOA LPAXISINFO;
  2424. #endif
  2425. typedef struct tagAXESLISTA {
  2426. DWORD axlReserved;
  2427. DWORD axlNumAxes;
  2428. AXISINFOA axlAxisInfo[MM_MAX_NUMAXES];
  2429. } AXESLISTA,*PAXESLISTA,*LPAXESLISTA;
  2430. typedef struct tagAXESLISTW {
  2431. DWORD axlReserved;
  2432. DWORD axlNumAxes;
  2433. AXISINFOW axlAxisInfo[MM_MAX_NUMAXES];
  2434. } AXESLISTW,*PAXESLISTW,*LPAXESLISTW;
  2435. #ifdef UNICODE
  2436. typedef AXESLISTW AXESLIST;
  2437. typedef PAXESLISTW PAXESLIST;
  2438. typedef LPAXESLISTW LPAXESLIST;
  2439. #else
  2440. typedef AXESLISTA AXESLIST;
  2441. typedef PAXESLISTA PAXESLIST;
  2442. typedef LPAXESLISTA LPAXESLIST;
  2443. #endif
  2444. typedef struct tagENUMLOGFONTEXDVA {
  2445. ENUMLOGFONTEXA elfEnumLogfontEx;
  2446. DESIGNVECTOR elfDesignVector;
  2447. } ENUMLOGFONTEXDVA,*PENUMLOGFONTEXDVA,*LPENUMLOGFONTEXDVA;
  2448. typedef struct tagENUMLOGFONTEXDVW {
  2449. ENUMLOGFONTEXW elfEnumLogfontEx;
  2450. DESIGNVECTOR elfDesignVector;
  2451. } ENUMLOGFONTEXDVW,*PENUMLOGFONTEXDVW,*LPENUMLOGFONTEXDVW;
  2452. #ifdef UNICODE
  2453. typedef ENUMLOGFONTEXDVW ENUMLOGFONTEXDV;
  2454. typedef PENUMLOGFONTEXDVW PENUMLOGFONTEXDV;
  2455. typedef LPENUMLOGFONTEXDVW LPENUMLOGFONTEXDV;
  2456. #else
  2457. typedef ENUMLOGFONTEXDVA ENUMLOGFONTEXDV;
  2458. typedef PENUMLOGFONTEXDVA PENUMLOGFONTEXDV;
  2459. typedef LPENUMLOGFONTEXDVA LPENUMLOGFONTEXDV;
  2460. #endif
  2461. #ifdef UNICODE
  2462. #define CreateFontIndirectEx CreateFontIndirectExW
  2463. #else
  2464. #define CreateFontIndirectEx CreateFontIndirectExA
  2465. #endif
  2466. WINGDIAPI HFONT WINAPI CreateFontIndirectExA(CONST ENUMLOGFONTEXDVA *);
  2467. WINGDIAPI HFONT WINAPI CreateFontIndirectExW(CONST ENUMLOGFONTEXDVW *);
  2468. #ifndef NOTEXTMETRIC
  2469. typedef struct tagENUMTEXTMETRICA {
  2470. NEWTEXTMETRICEXA etmNewTextMetricEx;
  2471. AXESLISTA etmAxesList;
  2472. } ENUMTEXTMETRICA,*PENUMTEXTMETRICA,*LPENUMTEXTMETRICA;
  2473. typedef struct tagENUMTEXTMETRICW
  2474. {
  2475. NEWTEXTMETRICEXW etmNewTextMetricEx;
  2476. AXESLISTW etmAxesList;
  2477. } ENUMTEXTMETRICW,*PENUMTEXTMETRICW,*LPENUMTEXTMETRICW;
  2478. #ifdef UNICODE
  2479. typedef ENUMTEXTMETRICW ENUMTEXTMETRIC;
  2480. typedef PENUMTEXTMETRICW PENUMTEXTMETRIC;
  2481. typedef LPENUMTEXTMETRICW LPENUMTEXTMETRIC;
  2482. #else
  2483. typedef ENUMTEXTMETRICA ENUMTEXTMETRIC;
  2484. typedef PENUMTEXTMETRICA PENUMTEXTMETRIC;
  2485. typedef LPENUMTEXTMETRICA LPENUMTEXTMETRIC;
  2486. #endif
  2487. #endif
  2488. #ifdef UNICODE
  2489. #define ResetDC ResetDCW
  2490. #define RemoveFontResource RemoveFontResourceW
  2491. #else
  2492. #define ResetDC ResetDCA
  2493. #define RemoveFontResource RemoveFontResourceA
  2494. #endif
  2495. WINGDIAPI WINBOOL WINAPI GetViewportExtEx(HDC hdc,LPSIZE lpsize);
  2496. WINGDIAPI WINBOOL WINAPI GetViewportOrgEx(HDC hdc,LPPOINT lppoint);
  2497. WINGDIAPI WINBOOL WINAPI GetWindowExtEx(HDC hdc,LPSIZE lpsize);
  2498. WINGDIAPI WINBOOL WINAPI GetWindowOrgEx(HDC hdc,LPPOINT lppoint);
  2499. WINGDIAPI int WINAPI IntersectClipRect(HDC hdc,int left,int top,int right,int bottom);
  2500. WINGDIAPI WINBOOL WINAPI InvertRgn(HDC hdc,HRGN hrgn);
  2501. WINGDIAPI WINBOOL WINAPI LineDDA(int xStart,int yStart,int xEnd,int yEnd,LINEDDAPROC lpProc,LPARAM data);
  2502. WINGDIAPI WINBOOL WINAPI LineTo(HDC hdc,int x,int y);
  2503. WINGDIAPI WINBOOL WINAPI MaskBlt(HDC hdcDest,int xDest,int yDest,int width,int height,HDC hdcSrc,int xSrc,int ySrc,HBITMAP hbmMask,int xMask,int yMask,DWORD rop);
  2504. WINGDIAPI WINBOOL WINAPI PlgBlt(HDC hdcDest,CONST POINT *lpPoint,HDC hdcSrc,int xSrc,int ySrc,int width,int height,HBITMAP hbmMask,int xMask,int yMask);
  2505. WINGDIAPI int WINAPI OffsetClipRgn(HDC hdc,int x,int y);
  2506. WINGDIAPI int WINAPI OffsetRgn(HRGN hrgn,int x,int y);
  2507. WINGDIAPI WINBOOL WINAPI PatBlt(HDC hdc,int x,int y,int w,int h,DWORD rop);
  2508. WINGDIAPI WINBOOL WINAPI Pie(HDC hdc,int left,int top,int right,int bottom,int xr1,int yr1,int xr2,int yr2);
  2509. WINGDIAPI WINBOOL WINAPI PlayMetaFile(HDC hdc,HMETAFILE hmf);
  2510. WINGDIAPI WINBOOL WINAPI PaintRgn(HDC hdc,HRGN hrgn);
  2511. WINGDIAPI WINBOOL WINAPI PolyPolygon(HDC hdc,CONST POINT *apt,CONST INT *asz,int csz);
  2512. WINGDIAPI WINBOOL WINAPI PtInRegion(HRGN hrgn,int x,int y);
  2513. WINGDIAPI WINBOOL WINAPI PtVisible(HDC hdc,int x,int y);
  2514. WINGDIAPI WINBOOL WINAPI RectInRegion(HRGN hrgn,CONST RECT *lprect);
  2515. WINGDIAPI WINBOOL WINAPI RectVisible(HDC hdc,CONST RECT *lprect);
  2516. WINGDIAPI WINBOOL WINAPI Rectangle(HDC hdc,int left,int top,int right,int bottom);
  2517. WINGDIAPI WINBOOL WINAPI RestoreDC(HDC hdc,int nSavedDC);
  2518. WINGDIAPI HDC WINAPI ResetDCA(HDC hdc,CONST DEVMODEA *lpdm);
  2519. WINGDIAPI HDC WINAPI ResetDCW(HDC hdc,CONST DEVMODEW *lpdm);
  2520. WINGDIAPI UINT WINAPI RealizePalette(HDC hdc);
  2521. WINGDIAPI WINBOOL WINAPI RemoveFontResourceA(LPCSTR lpFileName);
  2522. WINGDIAPI WINBOOL WINAPI RemoveFontResourceW(LPCWSTR lpFileName);
  2523. WINGDIAPI WINBOOL WINAPI RoundRect(HDC hdc,int left,int top,int right,int bottom,int width,int height);
  2524. WINGDIAPI WINBOOL WINAPI ResizePalette(HPALETTE hpal,UINT n);
  2525. WINGDIAPI int WINAPI SaveDC(HDC hdc);
  2526. WINGDIAPI int WINAPI SelectClipRgn(HDC hdc,HRGN hrgn);
  2527. WINGDIAPI int WINAPI ExtSelectClipRgn(HDC hdc,HRGN hrgn,int mode);
  2528. WINGDIAPI int WINAPI SetMetaRgn(HDC hdc);
  2529. WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC hdc,HGDIOBJ h);
  2530. WINGDIAPI HPALETTE WINAPI SelectPalette(HDC hdc,HPALETTE hPal,WINBOOL bForceBkgd);
  2531. WINGDIAPI COLORREF WINAPI SetBkColor(HDC hdc,COLORREF color);
  2532. WINGDIAPI COLORREF WINAPI SetDCBrushColor(HDC hdc,COLORREF color);
  2533. WINGDIAPI COLORREF WINAPI SetDCPenColor(HDC hdc,COLORREF color);
  2534. WINGDIAPI int WINAPI SetBkMode(HDC hdc,int mode);
  2535. WINGDIAPI LONG WINAPI SetBitmapBits(HBITMAP hbm,DWORD cb,CONST VOID *pvBits);
  2536. WINGDIAPI UINT WINAPI SetBoundsRect(HDC hdc,CONST RECT *lprect,UINT flags);
  2537. WINGDIAPI int WINAPI SetDIBits(HDC hdc,HBITMAP hbm,UINT start,UINT cLines,CONST VOID *lpBits,CONST BITMAPINFO *lpbmi,UINT ColorUse);
  2538. WINGDIAPI int WINAPI SetDIBitsToDevice(HDC hdc,int xDest,int yDest,DWORD w,DWORD h,int xSrc,int ySrc,UINT StartScan,UINT cLines,CONST VOID *lpvBits,CONST BITMAPINFO *lpbmi,UINT ColorUse);
  2539. WINGDIAPI DWORD WINAPI SetMapperFlags(HDC hdc,DWORD flags);
  2540. WINGDIAPI int WINAPI SetGraphicsMode(HDC hdc,int iMode);
  2541. WINGDIAPI int WINAPI SetMapMode(HDC hdc,int iMode);
  2542. WINGDIAPI DWORD WINAPI SetLayout(HDC hdc,DWORD l);
  2543. WINGDIAPI DWORD WINAPI GetLayout(HDC hdc);
  2544. WINGDIAPI HMETAFILE WINAPI SetMetaFileBitsEx(UINT cbBuffer,CONST BYTE *lpData);
  2545. WINGDIAPI UINT WINAPI SetPaletteEntries(HPALETTE hpal,UINT iStart,UINT cEntries,CONST PALETTEENTRY *pPalEntries);
  2546. WINGDIAPI COLORREF WINAPI SetPixel(HDC hdc,int x,int y,COLORREF color);
  2547. WINGDIAPI WINBOOL WINAPI SetPixelV(HDC hdc,int x,int y,COLORREF color);
  2548. WINGDIAPI WINBOOL WINAPI SetPixelFormat(HDC hdc,int format,CONST PIXELFORMATDESCRIPTOR *ppfd);
  2549. WINGDIAPI int WINAPI SetPolyFillMode(HDC hdc,int mode);
  2550. WINGDIAPI WINBOOL WINAPI StretchBlt(HDC hdcDest,int xDest,int yDest,int wDest,int hDest,HDC hdcSrc,int xSrc,int ySrc,int wSrc,int hSrc,DWORD rop);
  2551. WINGDIAPI WINBOOL WINAPI SetRectRgn(HRGN hrgn,int left,int top,int right,int bottom);
  2552. WINGDIAPI int WINAPI StretchDIBits(HDC hdc,int xDest,int yDest,int DestWidth,int DestHeight,int xSrc,int ySrc,int SrcWidth,int SrcHeight,CONST VOID *lpBits,CONST BITMAPINFO *lpbmi,UINT iUsage,DWORD rop);
  2553. WINGDIAPI int WINAPI SetROP2(HDC hdc,int rop2);
  2554. WINGDIAPI int WINAPI SetStretchBltMode(HDC hdc,int mode);
  2555. WINGDIAPI UINT WINAPI SetSystemPaletteUse(HDC hdc,UINT use);
  2556. WINGDIAPI int WINAPI SetTextCharacterExtra(HDC hdc,int extra);
  2557. WINGDIAPI COLORREF WINAPI SetTextColor(HDC hdc,COLORREF color);
  2558. WINGDIAPI UINT WINAPI SetTextAlign(HDC hdc,UINT align);
  2559. WINGDIAPI WINBOOL WINAPI SetTextJustification(HDC hdc,int extra,int count);
  2560. WINGDIAPI WINBOOL WINAPI UpdateColors(HDC hdc);
  2561. typedef USHORT COLOR16;
  2562. typedef struct _TRIVERTEX {
  2563. LONG x;
  2564. LONG y;
  2565. COLOR16 Red;
  2566. COLOR16 Green;
  2567. COLOR16 Blue;
  2568. COLOR16 Alpha;
  2569. } TRIVERTEX,*PTRIVERTEX,*LPTRIVERTEX;
  2570. typedef struct _GRADIENT_TRIANGLE {
  2571. ULONG Vertex1;
  2572. ULONG Vertex2;
  2573. ULONG Vertex3;
  2574. } GRADIENT_TRIANGLE,*PGRADIENT_TRIANGLE,*LPGRADIENT_TRIANGLE;
  2575. typedef struct _GRADIENT_RECT {
  2576. ULONG UpperLeft;
  2577. ULONG LowerRight;
  2578. } GRADIENT_RECT,*PGRADIENT_RECT,*LPGRADIENT_RECT;
  2579. typedef struct _BLENDFUNCTION {
  2580. BYTE BlendOp;
  2581. BYTE BlendFlags;
  2582. BYTE SourceConstantAlpha;
  2583. BYTE AlphaFormat;
  2584. } BLENDFUNCTION,*PBLENDFUNCTION;
  2585. #define AC_SRC_OVER 0x00
  2586. #define AC_SRC_ALPHA 0x01
  2587. WINGDIAPI WINBOOL WINAPI AlphaBlend(HDC hdcDest,int xoriginDest,int yoriginDest,int wDest,int hDest,HDC hdcSrc,int xoriginSrc,int yoriginSrc,int wSrc,int hSrc,BLENDFUNCTION ftn);
  2588. WINGDIAPI WINBOOL WINAPI TransparentBlt(HDC hdcDest,int xoriginDest,int yoriginDest,int wDest,int hDest,HDC hdcSrc,int xoriginSrc,int yoriginSrc,int wSrc,int hSrc,UINT crTransparent);
  2589. #define GRADIENT_FILL_RECT_H 0x00000000
  2590. #define GRADIENT_FILL_RECT_V 0x00000001
  2591. #define GRADIENT_FILL_TRIANGLE 0x00000002
  2592. #define GRADIENT_FILL_OP_FLAG 0x000000ff
  2593. WINGDIAPI WINBOOL WINAPI GradientFill(HDC hdc,PTRIVERTEX pVertex,ULONG nVertex,PVOID pMesh,ULONG nMesh,ULONG ulMode);
  2594. #ifndef NOMETAFILE
  2595. #ifdef UNICODE
  2596. #define CopyEnhMetaFile CopyEnhMetaFileW
  2597. #define CreateEnhMetaFile CreateEnhMetaFileW
  2598. #define GetEnhMetaFile GetEnhMetaFileW
  2599. #define GetEnhMetaFileDescription GetEnhMetaFileDescriptionW
  2600. #else
  2601. #define CopyEnhMetaFile CopyEnhMetaFileA
  2602. #define CreateEnhMetaFile CreateEnhMetaFileA
  2603. #define GetEnhMetaFile GetEnhMetaFileA
  2604. #define GetEnhMetaFileDescription GetEnhMetaFileDescriptionA
  2605. #endif
  2606. WINGDIAPI WINBOOL WINAPI PlayMetaFileRecord(HDC hdc,LPHANDLETABLE lpHandleTable,LPMETARECORD lpMR,UINT noObjs);
  2607. typedef int (CALLBACK *MFENUMPROC)(HDC hdc,HANDLETABLE *lpht,METARECORD *lpMR,int nObj,LPARAM param);
  2608. WINGDIAPI WINBOOL WINAPI EnumMetaFile(HDC hdc,HMETAFILE hmf,MFENUMPROC proc,LPARAM param);
  2609. typedef int (CALLBACK *ENHMFENUMPROC)(HDC hdc,HANDLETABLE *lpht,CONST ENHMETARECORD *lpmr,int hHandles,LPARAM data);
  2610. WINGDIAPI HENHMETAFILE WINAPI CloseEnhMetaFile(HDC hdc);
  2611. WINGDIAPI HENHMETAFILE WINAPI CopyEnhMetaFileA(HENHMETAFILE hEnh,LPCSTR lpFileName);
  2612. WINGDIAPI HENHMETAFILE WINAPI CopyEnhMetaFileW(HENHMETAFILE hEnh,LPCWSTR lpFileName);
  2613. WINGDIAPI HDC WINAPI CreateEnhMetaFileA(HDC hdc,LPCSTR lpFilename,CONST RECT *lprc,LPCSTR lpDesc);
  2614. WINGDIAPI HDC WINAPI CreateEnhMetaFileW(HDC hdc,LPCWSTR lpFilename,CONST RECT *lprc,LPCWSTR lpDesc);
  2615. WINGDIAPI WINBOOL WINAPI DeleteEnhMetaFile(HENHMETAFILE hmf);
  2616. WINGDIAPI WINBOOL WINAPI EnumEnhMetaFile(HDC hdc,HENHMETAFILE hmf,ENHMFENUMPROC proc,LPVOID param,CONST RECT *lpRect);
  2617. WINGDIAPI HENHMETAFILE WINAPI GetEnhMetaFileA(LPCSTR lpName);
  2618. WINGDIAPI HENHMETAFILE WINAPI GetEnhMetaFileW(LPCWSTR lpName);
  2619. WINGDIAPI UINT WINAPI GetEnhMetaFileBits(HENHMETAFILE hEMF,UINT nSize,LPBYTE lpData);
  2620. WINGDIAPI UINT WINAPI GetEnhMetaFileDescriptionA(HENHMETAFILE hemf,UINT cchBuffer,LPSTR lpDescription);
  2621. WINGDIAPI UINT WINAPI GetEnhMetaFileDescriptionW(HENHMETAFILE hemf,UINT cchBuffer,LPWSTR lpDescription);
  2622. WINGDIAPI UINT WINAPI GetEnhMetaFileHeader(HENHMETAFILE hemf,UINT nSize,LPENHMETAHEADER lpEnhMetaHeader);
  2623. WINGDIAPI UINT WINAPI GetEnhMetaFilePaletteEntries(HENHMETAFILE hemf,UINT nNumEntries,LPPALETTEENTRY lpPaletteEntries);
  2624. WINGDIAPI UINT WINAPI GetEnhMetaFilePixelFormat(HENHMETAFILE hemf,UINT cbBuffer,PIXELFORMATDESCRIPTOR *ppfd);
  2625. WINGDIAPI UINT WINAPI GetWinMetaFileBits(HENHMETAFILE hemf,UINT cbData16,LPBYTE pData16,INT iMapMode,HDC hdcRef);
  2626. WINGDIAPI WINBOOL WINAPI PlayEnhMetaFile(HDC hdc,HENHMETAFILE hmf,CONST RECT *lprect);
  2627. WINGDIAPI WINBOOL WINAPI PlayEnhMetaFileRecord(HDC hdc,LPHANDLETABLE pht,CONST ENHMETARECORD *pmr,UINT cht);
  2628. WINGDIAPI HENHMETAFILE WINAPI SetEnhMetaFileBits(UINT nSize,CONST BYTE *pb);
  2629. WINGDIAPI HENHMETAFILE WINAPI SetWinMetaFileBits(UINT nSize,CONST BYTE *lpMeta16Data,HDC hdcRef,CONST METAFILEPICT *lpMFP);
  2630. WINGDIAPI WINBOOL WINAPI GdiComment(HDC hdc,UINT nSize,CONST BYTE *lpData);
  2631. #endif
  2632. #ifndef NOTEXTMETRIC
  2633. #ifdef UNICODE
  2634. #define GetTextMetrics GetTextMetricsW
  2635. #else
  2636. #define GetTextMetrics GetTextMetricsA
  2637. #endif
  2638. WINGDIAPI WINBOOL WINAPI GetTextMetricsA(HDC hdc,LPTEXTMETRICA lptm);
  2639. WINGDIAPI WINBOOL WINAPI GetTextMetricsW(HDC hdc,LPTEXTMETRICW lptm);
  2640. #endif
  2641. typedef struct tagDIBSECTION {
  2642. BITMAP dsBm;
  2643. BITMAPINFOHEADER dsBmih;
  2644. DWORD dsBitfields[3];
  2645. HANDLE dshSection;
  2646. DWORD dsOffset;
  2647. } DIBSECTION,*LPDIBSECTION,*PDIBSECTION;
  2648. WINGDIAPI WINBOOL WINAPI AngleArc(HDC hdc,int x,int y,DWORD r,FLOAT StartAngle,FLOAT SweepAngle);
  2649. WINGDIAPI WINBOOL WINAPI PolyPolyline(HDC hdc,CONST POINT *apt,CONST DWORD *asz,DWORD csz);
  2650. WINGDIAPI WINBOOL WINAPI GetWorldTransform(HDC hdc,LPXFORM lpxf);
  2651. WINGDIAPI WINBOOL WINAPI SetWorldTransform(HDC hdc,CONST XFORM *lpxf);
  2652. WINGDIAPI WINBOOL WINAPI ModifyWorldTransform(HDC hdc,CONST XFORM *lpxf,DWORD mode);
  2653. WINGDIAPI WINBOOL WINAPI CombineTransform(LPXFORM lpxfOut,CONST XFORM *lpxf1,CONST XFORM *lpxf2);
  2654. WINGDIAPI HBITMAP WINAPI CreateDIBSection(HDC hdc,CONST BITMAPINFO *lpbmi,UINT usage,VOID **ppvBits,HANDLE hSection,DWORD offset);
  2655. WINGDIAPI UINT WINAPI GetDIBColorTable(HDC hdc,UINT iStart,UINT cEntries,RGBQUAD *prgbq);
  2656. WINGDIAPI UINT WINAPI SetDIBColorTable(HDC hdc,UINT iStart,UINT cEntries,CONST RGBQUAD *prgbq);
  2657. #define CA_NEGATIVE 0x0001
  2658. #define CA_LOG_FILTER 0x0002
  2659. #define ILLUMINANT_DEVICE_DEFAULT 0
  2660. #define ILLUMINANT_A 1
  2661. #define ILLUMINANT_B 2
  2662. #define ILLUMINANT_C 3
  2663. #define ILLUMINANT_D50 4
  2664. #define ILLUMINANT_D55 5
  2665. #define ILLUMINANT_D65 6
  2666. #define ILLUMINANT_D75 7
  2667. #define ILLUMINANT_F2 8
  2668. #define ILLUMINANT_MAX_INDEX ILLUMINANT_F2
  2669. #define ILLUMINANT_TUNGSTEN ILLUMINANT_A
  2670. #define ILLUMINANT_DAYLIGHT ILLUMINANT_C
  2671. #define ILLUMINANT_FLUORESCENT ILLUMINANT_F2
  2672. #define ILLUMINANT_NTSC ILLUMINANT_C
  2673. #define RGB_GAMMA_MIN (WORD)02500
  2674. #define RGB_GAMMA_MAX (WORD)65000
  2675. #define REFERENCE_WHITE_MIN (WORD)6000
  2676. #define REFERENCE_WHITE_MAX (WORD)10000
  2677. #define REFERENCE_BLACK_MIN (WORD)0
  2678. #define REFERENCE_BLACK_MAX (WORD)4000
  2679. #define COLOR_ADJ_MIN (SHORT)-100
  2680. #define COLOR_ADJ_MAX (SHORT)100
  2681. typedef struct tagCOLORADJUSTMENT {
  2682. WORD caSize;
  2683. WORD caFlags;
  2684. WORD caIlluminantIndex;
  2685. WORD caRedGamma;
  2686. WORD caGreenGamma;
  2687. WORD caBlueGamma;
  2688. WORD caReferenceBlack;
  2689. WORD caReferenceWhite;
  2690. SHORT caContrast;
  2691. SHORT caBrightness;
  2692. SHORT caColorfulness;
  2693. SHORT caRedGreenTint;
  2694. } COLORADJUSTMENT,*PCOLORADJUSTMENT,*LPCOLORADJUSTMENT;
  2695. WINGDIAPI WINBOOL WINAPI SetColorAdjustment(HDC hdc,CONST COLORADJUSTMENT *lpca);
  2696. WINGDIAPI WINBOOL WINAPI GetColorAdjustment(HDC hdc,LPCOLORADJUSTMENT lpca);
  2697. WINGDIAPI HPALETTE WINAPI CreateHalftonePalette(HDC hdc);
  2698. typedef WINBOOL (CALLBACK *ABORTPROC)(HDC,int);
  2699. typedef struct _DOCINFOA {
  2700. int cbSize;
  2701. LPCSTR lpszDocName;
  2702. LPCSTR lpszOutput;
  2703. LPCSTR lpszDatatype;
  2704. DWORD fwType;
  2705. } DOCINFOA,*LPDOCINFOA;
  2706. typedef struct _DOCINFOW {
  2707. int cbSize;
  2708. LPCWSTR lpszDocName;
  2709. LPCWSTR lpszOutput;
  2710. LPCWSTR lpszDatatype;
  2711. DWORD fwType;
  2712. } DOCINFOW,*LPDOCINFOW;
  2713. #ifdef UNICODE
  2714. typedef DOCINFOW DOCINFO;
  2715. typedef LPDOCINFOW LPDOCINFO;
  2716. #else
  2717. typedef DOCINFOA DOCINFO;
  2718. typedef LPDOCINFOA LPDOCINFO;
  2719. #endif
  2720. #define DI_APPBANDING 0x00000001
  2721. #define DI_ROPS_READ_DESTINATION 0x00000002
  2722. #ifdef UNICODE
  2723. #define StartDoc StartDocW
  2724. #define GetObject GetObjectW
  2725. #define TextOut TextOutW
  2726. #define ExtTextOut ExtTextOutW
  2727. #define PolyTextOut PolyTextOutW
  2728. #define GetTextFace GetTextFaceW
  2729. #else
  2730. #define StartDoc StartDocA
  2731. #define GetObject GetObjectA
  2732. #define TextOut TextOutA
  2733. #define ExtTextOut ExtTextOutA
  2734. #define PolyTextOut PolyTextOutA
  2735. #define GetTextFace GetTextFaceA
  2736. #endif
  2737. WINGDIAPI int WINAPI StartDocA(HDC hdc,CONST DOCINFOA *lpdi);
  2738. WINGDIAPI int WINAPI StartDocW(HDC hdc,CONST DOCINFOW *lpdi);
  2739. WINGDIAPI int WINAPI EndDoc(HDC hdc);
  2740. WINGDIAPI int WINAPI StartPage(HDC hdc);
  2741. WINGDIAPI int WINAPI EndPage(HDC hdc);
  2742. WINGDIAPI int WINAPI AbortDoc(HDC hdc);
  2743. WINGDIAPI int WINAPI SetAbortProc(HDC hdc,ABORTPROC proc);
  2744. WINGDIAPI WINBOOL WINAPI AbortPath(HDC hdc);
  2745. WINGDIAPI WINBOOL WINAPI ArcTo(HDC hdc,int left,int top,int right,int bottom,int xr1,int yr1,int xr2,int yr2);
  2746. WINGDIAPI WINBOOL WINAPI BeginPath(HDC hdc);
  2747. WINGDIAPI WINBOOL WINAPI CloseFigure(HDC hdc);
  2748. WINGDIAPI WINBOOL WINAPI EndPath(HDC hdc);
  2749. WINGDIAPI WINBOOL WINAPI FillPath(HDC hdc);
  2750. WINGDIAPI WINBOOL WINAPI FlattenPath(HDC hdc);
  2751. WINGDIAPI int WINAPI GetPath(HDC hdc,LPPOINT apt,LPBYTE aj,int cpt);
  2752. WINGDIAPI HRGN WINAPI PathToRegion(HDC hdc);
  2753. WINGDIAPI WINBOOL WINAPI PolyDraw(HDC hdc,CONST POINT *apt,CONST BYTE *aj,int cpt);
  2754. WINGDIAPI WINBOOL WINAPI SelectClipPath(HDC hdc,int mode);
  2755. WINGDIAPI int WINAPI SetArcDirection(HDC hdc,int dir);
  2756. WINGDIAPI WINBOOL WINAPI SetMiterLimit(HDC hdc,FLOAT limit,PFLOAT old);
  2757. WINGDIAPI WINBOOL WINAPI StrokeAndFillPath(HDC hdc);
  2758. WINGDIAPI WINBOOL WINAPI StrokePath(HDC hdc);
  2759. WINGDIAPI WINBOOL WINAPI WidenPath(HDC hdc);
  2760. WINGDIAPI HPEN WINAPI ExtCreatePen(DWORD iPenStyle,DWORD cWidth,CONST LOGBRUSH *plbrush,DWORD cStyle,CONST DWORD *pstyle);
  2761. WINGDIAPI WINBOOL WINAPI GetMiterLimit(HDC hdc,PFLOAT plimit);
  2762. WINGDIAPI int WINAPI GetArcDirection(HDC hdc);
  2763. WINGDIAPI int WINAPI GetObjectA(HANDLE h,int c,LPVOID pv);
  2764. WINGDIAPI int WINAPI GetObjectW(HANDLE h,int c,LPVOID pv);
  2765. WINGDIAPI WINBOOL WINAPI MoveToEx(HDC hdc,int x,int y,LPPOINT lppt);
  2766. WINGDIAPI WINBOOL WINAPI TextOutA(HDC hdc,int x,int y,LPCSTR lpString,int c);
  2767. WINGDIAPI WINBOOL WINAPI TextOutW(HDC hdc,int x,int y,LPCWSTR lpString,int c);
  2768. WINGDIAPI WINBOOL WINAPI ExtTextOutA(HDC hdc,int x,int y,UINT options,CONST RECT *lprect,LPCSTR lpString,UINT c,CONST INT *lpDx);
  2769. WINGDIAPI WINBOOL WINAPI ExtTextOutW(HDC hdc,int x,int y,UINT options,CONST RECT *lprect,LPCWSTR lpString,UINT c,CONST INT *lpDx);
  2770. WINGDIAPI WINBOOL WINAPI PolyTextOutA(HDC hdc,CONST POLYTEXTA *ppt,int nstrings);
  2771. WINGDIAPI WINBOOL WINAPI PolyTextOutW(HDC hdc,CONST POLYTEXTW *ppt,int nstrings);
  2772. WINGDIAPI HRGN WINAPI CreatePolygonRgn(CONST POINT *pptl,int cPoint,int iMode);
  2773. WINGDIAPI WINBOOL WINAPI DPtoLP(HDC hdc,LPPOINT lppt,int c);
  2774. WINGDIAPI WINBOOL WINAPI LPtoDP(HDC hdc,LPPOINT lppt,int c);
  2775. WINGDIAPI WINBOOL WINAPI Polygon(HDC hdc,CONST POINT *apt,int cpt);
  2776. WINGDIAPI WINBOOL WINAPI Polyline(HDC hdc,CONST POINT *apt,int cpt);
  2777. WINGDIAPI WINBOOL WINAPI PolyBezier(HDC hdc,CONST POINT *apt,DWORD cpt);
  2778. WINGDIAPI WINBOOL WINAPI PolyBezierTo(HDC hdc,CONST POINT *apt,DWORD cpt);
  2779. WINGDIAPI WINBOOL WINAPI PolylineTo(HDC hdc,CONST POINT *apt,DWORD cpt);
  2780. WINGDIAPI WINBOOL WINAPI SetViewportExtEx(HDC hdc,int x,int y,LPSIZE lpsz);
  2781. WINGDIAPI WINBOOL WINAPI SetViewportOrgEx(HDC hdc,int x,int y,LPPOINT lppt);
  2782. WINGDIAPI WINBOOL WINAPI SetWindowExtEx(HDC hdc,int x,int y,LPSIZE lpsz);
  2783. WINGDIAPI WINBOOL WINAPI SetWindowOrgEx(HDC hdc,int x,int y,LPPOINT lppt);
  2784. WINGDIAPI WINBOOL WINAPI OffsetViewportOrgEx(HDC hdc,int x,int y,LPPOINT lppt);
  2785. WINGDIAPI WINBOOL WINAPI OffsetWindowOrgEx(HDC hdc,int x,int y,LPPOINT lppt);
  2786. WINGDIAPI WINBOOL WINAPI ScaleViewportExtEx(HDC hdc,int xn,int dx,int yn,int yd,LPSIZE lpsz);
  2787. WINGDIAPI WINBOOL WINAPI ScaleWindowExtEx(HDC hdc,int xn,int xd,int yn,int yd,LPSIZE lpsz);
  2788. WINGDIAPI WINBOOL WINAPI SetBitmapDimensionEx(HBITMAP hbm,int w,int h,LPSIZE lpsz);
  2789. WINGDIAPI WINBOOL WINAPI SetBrushOrgEx(HDC hdc,int x,int y,LPPOINT lppt);
  2790. WINGDIAPI int WINAPI GetTextFaceA(HDC hdc,int c,LPSTR lpName);
  2791. WINGDIAPI int WINAPI GetTextFaceW(HDC hdc,int c,LPWSTR lpName);
  2792. #define FONTMAPPER_MAX 10
  2793. typedef struct tagKERNINGPAIR {
  2794. WORD wFirst;
  2795. WORD wSecond;
  2796. int iKernAmount;
  2797. } KERNINGPAIR,*LPKERNINGPAIR;
  2798. #ifdef UNICODE
  2799. #define GetKerningPairs GetKerningPairsW
  2800. #else
  2801. #define GetKerningPairs GetKerningPairsA
  2802. #endif
  2803. WINGDIAPI DWORD WINAPI GetKerningPairsA(HDC hdc,DWORD nPairs,LPKERNINGPAIR lpKernPair);
  2804. WINGDIAPI DWORD WINAPI GetKerningPairsW(HDC hdc,DWORD nPairs,LPKERNINGPAIR lpKernPair);
  2805. WINGDIAPI WINBOOL WINAPI GetDCOrgEx(HDC hdc,LPPOINT lppt);
  2806. WINGDIAPI WINBOOL WINAPI FixBrushOrgEx(HDC hdc,int x,int y,LPPOINT ptl);
  2807. WINGDIAPI WINBOOL WINAPI UnrealizeObject(HGDIOBJ h);
  2808. WINGDIAPI WINBOOL WINAPI GdiFlush();
  2809. WINGDIAPI DWORD WINAPI GdiSetBatchLimit(DWORD dw);
  2810. WINGDIAPI DWORD WINAPI GdiGetBatchLimit();
  2811. #define ICM_OFF 1
  2812. #define ICM_ON 2
  2813. #define ICM_QUERY 3
  2814. #define ICM_DONE_OUTSIDEDC 4
  2815. typedef int (CALLBACK *ICMENUMPROCA)(LPSTR,LPARAM);
  2816. typedef int (CALLBACK *ICMENUMPROCW)(LPWSTR,LPARAM);
  2817. #ifdef UNICODE
  2818. #define ICMENUMPROC ICMENUMPROCW
  2819. #define EnumICMProfiles EnumICMProfilesW
  2820. #define UpdateICMRegKey UpdateICMRegKeyW
  2821. #define GetLogColorSpace GetLogColorSpaceW
  2822. #define CreateColorSpace CreateColorSpaceW
  2823. #define GetICMProfile GetICMProfileW
  2824. #define SetICMProfile SetICMProfileW
  2825. #else
  2826. #define ICMENUMPROC ICMENUMPROCA
  2827. #define EnumICMProfiles EnumICMProfilesA
  2828. #define UpdateICMRegKey UpdateICMRegKeyA
  2829. #define GetLogColorSpace GetLogColorSpaceA
  2830. #define CreateColorSpace CreateColorSpaceA
  2831. #define GetICMProfile GetICMProfileA
  2832. #define SetICMProfile SetICMProfileA
  2833. #endif
  2834. WINGDIAPI int WINAPI SetICMMode(HDC hdc,int mode);
  2835. WINGDIAPI WINBOOL WINAPI CheckColorsInGamut(HDC hdc,LPVOID lpRGBTriple,LPVOID dlpBuffer,DWORD nCount);
  2836. WINGDIAPI HCOLORSPACE WINAPI GetColorSpace(HDC hdc);
  2837. WINGDIAPI WINBOOL WINAPI GetLogColorSpaceA(HCOLORSPACE hColorSpace,LPLOGCOLORSPACEA lpBuffer,DWORD nSize);
  2838. WINGDIAPI WINBOOL WINAPI GetLogColorSpaceW(HCOLORSPACE hColorSpace,LPLOGCOLORSPACEW lpBuffer,DWORD nSize);
  2839. WINGDIAPI HCOLORSPACE WINAPI CreateColorSpaceA(LPLOGCOLORSPACEA lplcs);
  2840. WINGDIAPI HCOLORSPACE WINAPI CreateColorSpaceW(LPLOGCOLORSPACEW lplcs);
  2841. WINGDIAPI HCOLORSPACE WINAPI SetColorSpace(HDC hdc,HCOLORSPACE hcs);
  2842. WINGDIAPI WINBOOL WINAPI DeleteColorSpace(HCOLORSPACE hcs);
  2843. WINGDIAPI WINBOOL WINAPI GetICMProfileA(HDC hdc,LPDWORD pBufSize,LPSTR pszFilename);
  2844. WINGDIAPI WINBOOL WINAPI GetICMProfileW(HDC hdc,LPDWORD pBufSize,LPWSTR pszFilename);
  2845. WINGDIAPI WINBOOL WINAPI SetICMProfileA(HDC hdc,LPSTR lpFileName);
  2846. WINGDIAPI WINBOOL WINAPI SetICMProfileW(HDC hdc,LPWSTR lpFileName);
  2847. WINGDIAPI WINBOOL WINAPI GetDeviceGammaRamp(HDC hdc,LPVOID lpRamp);
  2848. WINGDIAPI WINBOOL WINAPI SetDeviceGammaRamp(HDC hdc,LPVOID lpRamp);
  2849. WINGDIAPI WINBOOL WINAPI ColorMatchToTarget(HDC hdc,HDC hdcTarget,DWORD action);
  2850. WINGDIAPI int WINAPI EnumICMProfilesA(HDC hdc,ICMENUMPROCA proc,LPARAM param);
  2851. WINGDIAPI int WINAPI EnumICMProfilesW(HDC hdc,ICMENUMPROCW proc,LPARAM param);
  2852. WINGDIAPI WINBOOL WINAPI UpdateICMRegKeyA(DWORD reserved,LPSTR lpszCMID,LPSTR lpszFileName,UINT command);
  2853. WINGDIAPI WINBOOL WINAPI UpdateICMRegKeyW(DWORD reserved,LPWSTR lpszCMID,LPWSTR lpszFileName,UINT command);
  2854. WINGDIAPI WINBOOL WINAPI ColorCorrectPalette(HDC hdc,HPALETTE hPal,DWORD deFirst,DWORD num);
  2855. #ifndef NOMETAFILE
  2856. #define ENHMETA_SIGNATURE 0x464D4520
  2857. #define ENHMETA_STOCK_OBJECT 0x80000000
  2858. #define EMR_HEADER 1
  2859. #define EMR_POLYBEZIER 2
  2860. #define EMR_POLYGON 3
  2861. #define EMR_POLYLINE 4
  2862. #define EMR_POLYBEZIERTO 5
  2863. #define EMR_POLYLINETO 6
  2864. #define EMR_POLYPOLYLINE 7
  2865. #define EMR_POLYPOLYGON 8
  2866. #define EMR_SETWINDOWEXTEX 9
  2867. #define EMR_SETWINDOWORGEX 10
  2868. #define EMR_SETVIEWPORTEXTEX 11
  2869. #define EMR_SETVIEWPORTORGEX 12
  2870. #define EMR_SETBRUSHORGEX 13
  2871. #define EMR_EOF 14
  2872. #define EMR_SETPIXELV 15
  2873. #define EMR_SETMAPPERFLAGS 16
  2874. #define EMR_SETMAPMODE 17
  2875. #define EMR_SETBKMODE 18
  2876. #define EMR_SETPOLYFILLMODE 19
  2877. #define EMR_SETROP2 20
  2878. #define EMR_SETSTRETCHBLTMODE 21
  2879. #define EMR_SETTEXTALIGN 22
  2880. #define EMR_SETCOLORADJUSTMENT 23
  2881. #define EMR_SETTEXTCOLOR 24
  2882. #define EMR_SETBKCOLOR 25
  2883. #define EMR_OFFSETCLIPRGN 26
  2884. #define EMR_MOVETOEX 27
  2885. #define EMR_SETMETARGN 28
  2886. #define EMR_EXCLUDECLIPRECT 29
  2887. #define EMR_INTERSECTCLIPRECT 30
  2888. #define EMR_SCALEVIEWPORTEXTEX 31
  2889. #define EMR_SCALEWINDOWEXTEX 32
  2890. #define EMR_SAVEDC 33
  2891. #define EMR_RESTOREDC 34
  2892. #define EMR_SETWORLDTRANSFORM 35
  2893. #define EMR_MODIFYWORLDTRANSFORM 36
  2894. #define EMR_SELECTOBJECT 37
  2895. #define EMR_CREATEPEN 38
  2896. #define EMR_CREATEBRUSHINDIRECT 39
  2897. #define EMR_DELETEOBJECT 40
  2898. #define EMR_ANGLEARC 41
  2899. #define EMR_ELLIPSE 42
  2900. #define EMR_RECTANGLE 43
  2901. #define EMR_ROUNDRECT 44
  2902. #define EMR_ARC 45
  2903. #define EMR_CHORD 46
  2904. #define EMR_PIE 47
  2905. #define EMR_SELECTPALETTE 48
  2906. #define EMR_CREATEPALETTE 49
  2907. #define EMR_SETPALETTEENTRIES 50
  2908. #define EMR_RESIZEPALETTE 51
  2909. #define EMR_REALIZEPALETTE 52
  2910. #define EMR_EXTFLOODFILL 53
  2911. #define EMR_LINETO 54
  2912. #define EMR_ARCTO 55
  2913. #define EMR_POLYDRAW 56
  2914. #define EMR_SETARCDIRECTION 57
  2915. #define EMR_SETMITERLIMIT 58
  2916. #define EMR_BEGINPATH 59
  2917. #define EMR_ENDPATH 60
  2918. #define EMR_CLOSEFIGURE 61
  2919. #define EMR_FILLPATH 62
  2920. #define EMR_STROKEANDFILLPATH 63
  2921. #define EMR_STROKEPATH 64
  2922. #define EMR_FLATTENPATH 65
  2923. #define EMR_WIDENPATH 66
  2924. #define EMR_SELECTCLIPPATH 67
  2925. #define EMR_ABORTPATH 68
  2926. #define EMR_GDICOMMENT 70
  2927. #define EMR_FILLRGN 71
  2928. #define EMR_FRAMERGN 72
  2929. #define EMR_INVERTRGN 73
  2930. #define EMR_PAINTRGN 74
  2931. #define EMR_EXTSELECTCLIPRGN 75
  2932. #define EMR_BITBLT 76
  2933. #define EMR_STRETCHBLT 77
  2934. #define EMR_MASKBLT 78
  2935. #define EMR_PLGBLT 79
  2936. #define EMR_SETDIBITSTODEVICE 80
  2937. #define EMR_STRETCHDIBITS 81
  2938. #define EMR_EXTCREATEFONTINDIRECTW 82
  2939. #define EMR_EXTTEXTOUTA 83
  2940. #define EMR_EXTTEXTOUTW 84
  2941. #define EMR_POLYBEZIER16 85
  2942. #define EMR_POLYGON16 86
  2943. #define EMR_POLYLINE16 87
  2944. #define EMR_POLYBEZIERTO16 88
  2945. #define EMR_POLYLINETO16 89
  2946. #define EMR_POLYPOLYLINE16 90
  2947. #define EMR_POLYPOLYGON16 91
  2948. #define EMR_POLYDRAW16 92
  2949. #define EMR_CREATEMONOBRUSH 93
  2950. #define EMR_CREATEDIBPATTERNBRUSHPT 94
  2951. #define EMR_EXTCREATEPEN 95
  2952. #define EMR_POLYTEXTOUTA 96
  2953. #define EMR_POLYTEXTOUTW 97
  2954. #define EMR_SETICMMODE 98
  2955. #define EMR_CREATECOLORSPACE 99
  2956. #define EMR_SETCOLORSPACE 100
  2957. #define EMR_DELETECOLORSPACE 101
  2958. #define EMR_GLSRECORD 102
  2959. #define EMR_GLSBOUNDEDRECORD 103
  2960. #define EMR_PIXELFORMAT 104
  2961. #define EMR_RESERVED_105 105
  2962. #define EMR_RESERVED_106 106
  2963. #define EMR_RESERVED_107 107
  2964. #define EMR_RESERVED_108 108
  2965. #define EMR_RESERVED_109 109
  2966. #define EMR_RESERVED_110 110
  2967. #define EMR_COLORCORRECTPALETTE 111
  2968. #define EMR_SETICMPROFILEA 112
  2969. #define EMR_SETICMPROFILEW 113
  2970. #define EMR_ALPHABLEND 114
  2971. #define EMR_SETLAYOUT 115
  2972. #define EMR_TRANSPARENTBLT 116
  2973. #define EMR_RESERVED_117 117
  2974. #define EMR_GRADIENTFILL 118
  2975. #define EMR_RESERVED_119 119
  2976. #define EMR_RESERVED_120 120
  2977. #define EMR_COLORMATCHTOTARGETW 121
  2978. #define EMR_CREATECOLORSPACEW 122
  2979. #define EMR_MIN 1
  2980. #define EMR_MAX 122
  2981. typedef struct tagEMR {
  2982. DWORD iType;
  2983. DWORD nSize;
  2984. } EMR,*PEMR;
  2985. typedef struct tagEMRTEXT {
  2986. POINTL ptlReference;
  2987. DWORD nChars;
  2988. DWORD offString;
  2989. DWORD fOptions;
  2990. RECTL rcl;
  2991. DWORD offDx;
  2992. } EMRTEXT,*PEMRTEXT;
  2993. typedef struct tagABORTPATH {
  2994. EMR emr;
  2995. } EMRABORTPATH,*PEMRABORTPATH,EMRBEGINPATH,*PEMRBEGINPATH,EMRENDPATH,*PEMRENDPATH,EMRCLOSEFIGURE,*PEMRCLOSEFIGURE,EMRFLATTENPATH,*PEMRFLATTENPATH,EMRWIDENPATH,*PEMRWIDENPATH,EMRSETMETARGN,*PEMRSETMETARGN,EMRSAVEDC,*PEMRSAVEDC,EMRREALIZEPALETTE,*PEMRREALIZEPALETTE;
  2996. typedef struct tagEMRSELECTCLIPPATH {
  2997. EMR emr;
  2998. DWORD iMode;
  2999. } EMRSELECTCLIPPATH,*PEMRSELECTCLIPPATH,EMRSETBKMODE,*PEMRSETBKMODE,EMRSETMAPMODE,*PEMRSETMAPMODE,EMRSETLAYOUT,*PEMRSETLAYOUT,
  3000. EMRSETPOLYFILLMODE,*PEMRSETPOLYFILLMODE,EMRSETROP2,*PEMRSETROP2,EMRSETSTRETCHBLTMODE,*PEMRSETSTRETCHBLTMODE,EMRSETICMMODE,
  3001. *PEMRSETICMMODE,EMRSETTEXTALIGN,*PEMRSETTEXTALIGN;
  3002. typedef struct tagEMRSETMITERLIMIT {
  3003. EMR emr;
  3004. FLOAT eMiterLimit;
  3005. } EMRSETMITERLIMIT,*PEMRSETMITERLIMIT;
  3006. typedef struct tagEMRRESTOREDC {
  3007. EMR emr;
  3008. LONG iRelative;
  3009. } EMRRESTOREDC,*PEMRRESTOREDC;
  3010. typedef struct tagEMRSETARCDIRECTION {
  3011. EMR emr;
  3012. DWORD iArcDirection;
  3013. } EMRSETARCDIRECTION,*PEMRSETARCDIRECTION;
  3014. typedef struct tagEMRSETMAPPERFLAGS {
  3015. EMR emr;
  3016. DWORD dwFlags;
  3017. } EMRSETMAPPERFLAGS,*PEMRSETMAPPERFLAGS;
  3018. typedef struct tagEMRSETTEXTCOLOR {
  3019. EMR emr;
  3020. COLORREF crColor;
  3021. } EMRSETBKCOLOR,*PEMRSETBKCOLOR,EMRSETTEXTCOLOR,*PEMRSETTEXTCOLOR;
  3022. typedef struct tagEMRSELECTOBJECT {
  3023. EMR emr;
  3024. DWORD ihObject;
  3025. } EMRSELECTOBJECT,*PEMRSELECTOBJECT,EMRDELETEOBJECT,*PEMRDELETEOBJECT;
  3026. typedef struct tagEMRSELECTPALETTE {
  3027. EMR emr;
  3028. DWORD ihPal;
  3029. } EMRSELECTPALETTE,*PEMRSELECTPALETTE;
  3030. typedef struct tagEMRRESIZEPALETTE {
  3031. EMR emr;
  3032. DWORD ihPal;
  3033. DWORD cEntries;
  3034. } EMRRESIZEPALETTE,*PEMRRESIZEPALETTE;
  3035. typedef struct tagEMRSETPALETTEENTRIES {
  3036. EMR emr;
  3037. DWORD ihPal;
  3038. DWORD iStart;
  3039. DWORD cEntries;
  3040. PALETTEENTRY aPalEntries[1];
  3041. } EMRSETPALETTEENTRIES,*PEMRSETPALETTEENTRIES;
  3042. typedef struct tagEMRSETCOLORADJUSTMENT {
  3043. EMR emr;
  3044. COLORADJUSTMENT ColorAdjustment;
  3045. } EMRSETCOLORADJUSTMENT,*PEMRSETCOLORADJUSTMENT;
  3046. typedef struct tagEMRGDICOMMENT {
  3047. EMR emr;
  3048. DWORD cbData;
  3049. BYTE Data[1];
  3050. } EMRGDICOMMENT,*PEMRGDICOMMENT;
  3051. typedef struct tagEMREOF {
  3052. EMR emr;
  3053. DWORD nPalEntries;
  3054. DWORD offPalEntries;
  3055. DWORD nSizeLast;
  3056. } EMREOF,*PEMREOF;
  3057. typedef struct tagEMRLINETO {
  3058. EMR emr;
  3059. POINTL ptl;
  3060. } EMRLINETO,*PEMRLINETO,EMRMOVETOEX,*PEMRMOVETOEX;
  3061. typedef struct tagEMROFFSETCLIPRGN {
  3062. EMR emr;
  3063. POINTL ptlOffset;
  3064. } EMROFFSETCLIPRGN,*PEMROFFSETCLIPRGN;
  3065. typedef struct tagEMRFILLPATH {
  3066. EMR emr;
  3067. RECTL rclBounds;
  3068. } EMRFILLPATH,*PEMRFILLPATH,EMRSTROKEANDFILLPATH,*PEMRSTROKEANDFILLPATH,EMRSTROKEPATH,*PEMRSTROKEPATH;
  3069. typedef struct tagEMREXCLUDECLIPRECT {
  3070. EMR emr;
  3071. RECTL rclClip;
  3072. } EMREXCLUDECLIPRECT,*PEMREXCLUDECLIPRECT,EMRINTERSECTCLIPRECT,*PEMRINTERSECTCLIPRECT;
  3073. typedef struct tagEMRSETVIEWPORTORGEX {
  3074. EMR emr;
  3075. POINTL ptlOrigin;
  3076. } EMRSETVIEWPORTORGEX,*PEMRSETVIEWPORTORGEX,EMRSETWINDOWORGEX,*PEMRSETWINDOWORGEX,EMRSETBRUSHORGEX,*PEMRSETBRUSHORGEX;
  3077. typedef struct tagEMRSETVIEWPORTEXTEX {
  3078. EMR emr;
  3079. SIZEL szlExtent;
  3080. } EMRSETVIEWPORTEXTEX,*PEMRSETVIEWPORTEXTEX,EMRSETWINDOWEXTEX,*PEMRSETWINDOWEXTEX;
  3081. typedef struct tagEMRSCALEVIEWPORTEXTEX {
  3082. EMR emr;
  3083. LONG xNum;
  3084. LONG xDenom;
  3085. LONG yNum;
  3086. LONG yDenom;
  3087. } EMRSCALEVIEWPORTEXTEX,*PEMRSCALEVIEWPORTEXTEX,EMRSCALEWINDOWEXTEX,*PEMRSCALEWINDOWEXTEX;
  3088. typedef struct tagEMRSETWORLDTRANSFORM {
  3089. EMR emr;
  3090. XFORM xform;
  3091. } EMRSETWORLDTRANSFORM,*PEMRSETWORLDTRANSFORM;
  3092. typedef struct tagEMRMODIFYWORLDTRANSFORM {
  3093. EMR emr;
  3094. XFORM xform;
  3095. DWORD iMode;
  3096. } EMRMODIFYWORLDTRANSFORM,*PEMRMODIFYWORLDTRANSFORM;
  3097. typedef struct tagEMRSETPIXELV {
  3098. EMR emr;
  3099. POINTL ptlPixel;
  3100. COLORREF crColor;
  3101. } EMRSETPIXELV,*PEMRSETPIXELV;
  3102. typedef struct tagEMREXTFLOODFILL {
  3103. EMR emr;
  3104. POINTL ptlStart;
  3105. COLORREF crColor;
  3106. DWORD iMode;
  3107. } EMREXTFLOODFILL,*PEMREXTFLOODFILL;
  3108. typedef struct tagEMRELLIPSE {
  3109. EMR emr;
  3110. RECTL rclBox;
  3111. } EMRELLIPSE,*PEMRELLIPSE,EMRRECTANGLE,*PEMRRECTANGLE;
  3112. typedef struct tagEMRROUNDRECT {
  3113. EMR emr;
  3114. RECTL rclBox;
  3115. SIZEL szlCorner;
  3116. } EMRROUNDRECT,*PEMRROUNDRECT;
  3117. typedef struct tagEMRARC {
  3118. EMR emr;
  3119. RECTL rclBox;
  3120. POINTL ptlStart;
  3121. POINTL ptlEnd;
  3122. } EMRARC,*PEMRARC,EMRARCTO,*PEMRARCTO,EMRCHORD,*PEMRCHORD,EMRPIE,*PEMRPIE;
  3123. typedef struct tagEMRANGLEARC {
  3124. EMR emr;
  3125. POINTL ptlCenter;
  3126. DWORD nRadius;
  3127. FLOAT eStartAngle;
  3128. FLOAT eSweepAngle;
  3129. } EMRANGLEARC,*PEMRANGLEARC;
  3130. typedef struct tagEMRPOLYLINE {
  3131. EMR emr;
  3132. RECTL rclBounds;
  3133. DWORD cptl;
  3134. POINTL aptl[1];
  3135. } EMRPOLYLINE,*PEMRPOLYLINE,EMRPOLYBEZIER,*PEMRPOLYBEZIER,EMRPOLYGON,*PEMRPOLYGON,EMRPOLYBEZIERTO,*PEMRPOLYBEZIERTO,EMRPOLYLINETO,*PEMRPOLYLINETO;
  3136. typedef struct tagEMRPOLYLINE16 {
  3137. EMR emr;
  3138. RECTL rclBounds;
  3139. DWORD cpts;
  3140. POINTS apts[1];
  3141. } EMRPOLYLINE16,*PEMRPOLYLINE16,EMRPOLYBEZIER16,*PEMRPOLYBEZIER16,EMRPOLYGON16,*PEMRPOLYGON16,EMRPOLYBEZIERTO16,*PEMRPOLYBEZIERTO16,EMRPOLYLINETO16,*PEMRPOLYLINETO16;
  3142. typedef struct tagEMRPOLYDRAW {
  3143. EMR emr;
  3144. RECTL rclBounds;
  3145. DWORD cptl;
  3146. POINTL aptl[1];
  3147. BYTE abTypes[1];
  3148. } EMRPOLYDRAW,*PEMRPOLYDRAW;
  3149. typedef struct tagEMRPOLYDRAW16 {
  3150. EMR emr;
  3151. RECTL rclBounds;
  3152. DWORD cpts;
  3153. POINTS apts[1];
  3154. BYTE abTypes[1];
  3155. } EMRPOLYDRAW16,*PEMRPOLYDRAW16;
  3156. typedef struct tagEMRPOLYPOLYLINE {
  3157. EMR emr;
  3158. RECTL rclBounds;
  3159. DWORD nPolys;
  3160. DWORD cptl;
  3161. DWORD aPolyCounts[1];
  3162. POINTL aptl[1];
  3163. } EMRPOLYPOLYLINE,*PEMRPOLYPOLYLINE,EMRPOLYPOLYGON,*PEMRPOLYPOLYGON;
  3164. typedef struct tagEMRPOLYPOLYLINE16 {
  3165. EMR emr;
  3166. RECTL rclBounds;
  3167. DWORD nPolys;
  3168. DWORD cpts;
  3169. DWORD aPolyCounts[1];
  3170. POINTS apts[1];
  3171. } EMRPOLYPOLYLINE16,*PEMRPOLYPOLYLINE16,EMRPOLYPOLYGON16,*PEMRPOLYPOLYGON16;
  3172. typedef struct tagEMRINVERTRGN {
  3173. EMR emr;
  3174. RECTL rclBounds;
  3175. DWORD cbRgnData;
  3176. BYTE RgnData[1];
  3177. } EMRINVERTRGN,*PEMRINVERTRGN,EMRPAINTRGN,*PEMRPAINTRGN;
  3178. typedef struct tagEMRFILLRGN {
  3179. EMR emr;
  3180. RECTL rclBounds;
  3181. DWORD cbRgnData;
  3182. DWORD ihBrush;
  3183. BYTE RgnData[1];
  3184. } EMRFILLRGN,*PEMRFILLRGN;
  3185. typedef struct tagEMRFRAMERGN {
  3186. EMR emr;
  3187. RECTL rclBounds;
  3188. DWORD cbRgnData;
  3189. DWORD ihBrush;
  3190. SIZEL szlStroke;
  3191. BYTE RgnData[1];
  3192. } EMRFRAMERGN,*PEMRFRAMERGN;
  3193. typedef struct tagEMREXTSELECTCLIPRGN {
  3194. EMR emr;
  3195. DWORD cbRgnData;
  3196. DWORD iMode;
  3197. BYTE RgnData[1];
  3198. } EMREXTSELECTCLIPRGN,*PEMREXTSELECTCLIPRGN;
  3199. typedef struct tagEMREXTTEXTOUTA {
  3200. EMR emr;
  3201. RECTL rclBounds;
  3202. DWORD iGraphicsMode;
  3203. FLOAT exScale;
  3204. FLOAT eyScale;
  3205. EMRTEXT emrtext;
  3206. } EMREXTTEXTOUTA,*PEMREXTTEXTOUTA,EMREXTTEXTOUTW,*PEMREXTTEXTOUTW;
  3207. typedef struct tagEMRPOLYTEXTOUTA {
  3208. EMR emr;
  3209. RECTL rclBounds;
  3210. DWORD iGraphicsMode;
  3211. FLOAT exScale;
  3212. FLOAT eyScale;
  3213. LONG cStrings;
  3214. EMRTEXT aemrtext[1];
  3215. } EMRPOLYTEXTOUTA,*PEMRPOLYTEXTOUTA,EMRPOLYTEXTOUTW,*PEMRPOLYTEXTOUTW;
  3216. typedef struct tagEMRBITBLT {
  3217. EMR emr;
  3218. RECTL rclBounds;
  3219. LONG xDest;
  3220. LONG yDest;
  3221. LONG cxDest;
  3222. LONG cyDest;
  3223. DWORD dwRop;
  3224. LONG xSrc;
  3225. LONG ySrc;
  3226. XFORM xformSrc;
  3227. COLORREF crBkColorSrc;
  3228. DWORD iUsageSrc;
  3229. DWORD offBmiSrc;
  3230. DWORD cbBmiSrc;
  3231. DWORD offBitsSrc;
  3232. DWORD cbBitsSrc;
  3233. } EMRBITBLT,*PEMRBITBLT;
  3234. typedef struct tagEMRSTRETCHBLT {
  3235. EMR emr;
  3236. RECTL rclBounds;
  3237. LONG xDest;
  3238. LONG yDest;
  3239. LONG cxDest;
  3240. LONG cyDest;
  3241. DWORD dwRop;
  3242. LONG xSrc;
  3243. LONG ySrc;
  3244. XFORM xformSrc;
  3245. COLORREF crBkColorSrc;
  3246. DWORD iUsageSrc;
  3247. DWORD offBmiSrc;
  3248. DWORD cbBmiSrc;
  3249. DWORD offBitsSrc;
  3250. DWORD cbBitsSrc;
  3251. LONG cxSrc;
  3252. LONG cySrc;
  3253. } EMRSTRETCHBLT,*PEMRSTRETCHBLT;
  3254. typedef struct tagEMRMASKBLT {
  3255. EMR emr;
  3256. RECTL rclBounds;
  3257. LONG xDest;
  3258. LONG yDest;
  3259. LONG cxDest;
  3260. LONG cyDest;
  3261. DWORD dwRop;
  3262. LONG xSrc;
  3263. LONG ySrc;
  3264. XFORM xformSrc;
  3265. COLORREF crBkColorSrc;
  3266. DWORD iUsageSrc;
  3267. DWORD offBmiSrc;
  3268. DWORD cbBmiSrc;
  3269. DWORD offBitsSrc;
  3270. DWORD cbBitsSrc;
  3271. LONG xMask;
  3272. LONG yMask;
  3273. DWORD iUsageMask;
  3274. DWORD offBmiMask;
  3275. DWORD cbBmiMask;
  3276. DWORD offBitsMask;
  3277. DWORD cbBitsMask;
  3278. } EMRMASKBLT,*PEMRMASKBLT;
  3279. typedef struct tagEMRPLGBLT {
  3280. EMR emr;
  3281. RECTL rclBounds;
  3282. POINTL aptlDest[3];
  3283. LONG xSrc;
  3284. LONG ySrc;
  3285. LONG cxSrc;
  3286. LONG cySrc;
  3287. XFORM xformSrc;
  3288. COLORREF crBkColorSrc;
  3289. DWORD iUsageSrc;
  3290. DWORD offBmiSrc;
  3291. DWORD cbBmiSrc;
  3292. DWORD offBitsSrc;
  3293. DWORD cbBitsSrc;
  3294. LONG xMask;
  3295. LONG yMask;
  3296. DWORD iUsageMask;
  3297. DWORD offBmiMask;
  3298. DWORD cbBmiMask;
  3299. DWORD offBitsMask;
  3300. DWORD cbBitsMask;
  3301. } EMRPLGBLT,*PEMRPLGBLT;
  3302. typedef struct tagEMRSETDIBITSTODEVICE {
  3303. EMR emr;
  3304. RECTL rclBounds;
  3305. LONG xDest;
  3306. LONG yDest;
  3307. LONG xSrc;
  3308. LONG ySrc;
  3309. LONG cxSrc;
  3310. LONG cySrc;
  3311. DWORD offBmiSrc;
  3312. DWORD cbBmiSrc;
  3313. DWORD offBitsSrc;
  3314. DWORD cbBitsSrc;
  3315. DWORD iUsageSrc;
  3316. DWORD iStartScan;
  3317. DWORD cScans;
  3318. } EMRSETDIBITSTODEVICE,*PEMRSETDIBITSTODEVICE;
  3319. typedef struct tagEMRSTRETCHDIBITS {
  3320. EMR emr;
  3321. RECTL rclBounds;
  3322. LONG xDest;
  3323. LONG yDest;
  3324. LONG xSrc;
  3325. LONG ySrc;
  3326. LONG cxSrc;
  3327. LONG cySrc;
  3328. DWORD offBmiSrc;
  3329. DWORD cbBmiSrc;
  3330. DWORD offBitsSrc;
  3331. DWORD cbBitsSrc;
  3332. DWORD iUsageSrc;
  3333. DWORD dwRop;
  3334. LONG cxDest;
  3335. LONG cyDest;
  3336. } EMRSTRETCHDIBITS,*PEMRSTRETCHDIBITS;
  3337. typedef struct tagEMREXTCREATEFONTINDIRECTW {
  3338. EMR emr;
  3339. DWORD ihFont;
  3340. EXTLOGFONTW elfw;
  3341. } EMREXTCREATEFONTINDIRECTW,*PEMREXTCREATEFONTINDIRECTW;
  3342. typedef struct tagEMRCREATEPALETTE {
  3343. EMR emr;
  3344. DWORD ihPal;
  3345. LOGPALETTE lgpl;
  3346. } EMRCREATEPALETTE,*PEMRCREATEPALETTE;
  3347. typedef struct tagEMRCREATEPEN {
  3348. EMR emr;
  3349. DWORD ihPen;
  3350. LOGPEN lopn;
  3351. } EMRCREATEPEN,*PEMRCREATEPEN;
  3352. typedef struct tagEMREXTCREATEPEN {
  3353. EMR emr;
  3354. DWORD ihPen;
  3355. DWORD offBmi;
  3356. DWORD cbBmi;
  3357. DWORD offBits;
  3358. DWORD cbBits;
  3359. EXTLOGPEN elp;
  3360. } EMREXTCREATEPEN,*PEMREXTCREATEPEN;
  3361. typedef struct tagEMRCREATEBRUSHINDIRECT {
  3362. EMR emr;
  3363. DWORD ihBrush;
  3364. LOGBRUSH32 lb;
  3365. } EMRCREATEBRUSHINDIRECT,*PEMRCREATEBRUSHINDIRECT;
  3366. typedef struct tagEMRCREATEMONOBRUSH {
  3367. EMR emr;
  3368. DWORD ihBrush;
  3369. DWORD iUsage;
  3370. DWORD offBmi;
  3371. DWORD cbBmi;
  3372. DWORD offBits;
  3373. DWORD cbBits;
  3374. } EMRCREATEMONOBRUSH,*PEMRCREATEMONOBRUSH;
  3375. typedef struct tagEMRCREATEDIBPATTERNBRUSHPT {
  3376. EMR emr;
  3377. DWORD ihBrush;
  3378. DWORD iUsage;
  3379. DWORD offBmi;
  3380. DWORD cbBmi;
  3381. DWORD offBits;
  3382. DWORD cbBits;
  3383. } EMRCREATEDIBPATTERNBRUSHPT,*PEMRCREATEDIBPATTERNBRUSHPT;
  3384. typedef struct tagEMRFORMAT {
  3385. DWORD dSignature;
  3386. DWORD nVersion;
  3387. DWORD cbData;
  3388. DWORD offData;
  3389. } EMRFORMAT,*PEMRFORMAT;
  3390. typedef struct tagEMRGLSRECORD {
  3391. EMR emr;
  3392. DWORD cbData;
  3393. BYTE Data[1];
  3394. } EMRGLSRECORD,*PEMRGLSRECORD;
  3395. typedef struct tagEMRGLSBOUNDEDRECORD {
  3396. EMR emr;
  3397. RECTL rclBounds;
  3398. DWORD cbData;
  3399. BYTE Data[1];
  3400. } EMRGLSBOUNDEDRECORD,*PEMRGLSBOUNDEDRECORD;
  3401. typedef struct tagEMRPIXELFORMAT {
  3402. EMR emr;
  3403. PIXELFORMATDESCRIPTOR pfd;
  3404. } EMRPIXELFORMAT,*PEMRPIXELFORMAT;
  3405. typedef struct tagEMRCREATECOLORSPACE {
  3406. EMR emr;
  3407. DWORD ihCS;
  3408. LOGCOLORSPACEA lcs;
  3409. } EMRCREATECOLORSPACE,*PEMRCREATECOLORSPACE;
  3410. typedef struct tagEMRSETCOLORSPACE {
  3411. EMR emr;
  3412. DWORD ihCS;
  3413. } EMRSETCOLORSPACE,*PEMRSETCOLORSPACE,EMRSELECTCOLORSPACE,*PEMRSELECTCOLORSPACE,EMRDELETECOLORSPACE,*PEMRDELETECOLORSPACE;
  3414. typedef struct tagEMREXTESCAPE {
  3415. EMR emr;
  3416. INT iEscape;
  3417. INT cbEscData;
  3418. BYTE EscData[1];
  3419. } EMREXTESCAPE,*PEMREXTESCAPE,EMRDRAWESCAPE,*PEMRDRAWESCAPE;
  3420. typedef struct tagEMRNAMEDESCAPE {
  3421. EMR emr;
  3422. INT iEscape;
  3423. INT cbDriver;
  3424. INT cbEscData;
  3425. BYTE EscData[1];
  3426. } EMRNAMEDESCAPE,*PEMRNAMEDESCAPE;
  3427. #define SETICMPROFILE_EMBEDED 0x00000001
  3428. typedef struct tagEMRSETICMPROFILE {
  3429. EMR emr;
  3430. DWORD dwFlags;
  3431. DWORD cbName;
  3432. DWORD cbData;
  3433. BYTE Data[1];
  3434. } EMRSETICMPROFILE,*PEMRSETICMPROFILE,EMRSETICMPROFILEA,*PEMRSETICMPROFILEA,EMRSETICMPROFILEW,*PEMRSETICMPROFILEW;
  3435. #define CREATECOLORSPACE_EMBEDED 0x00000001
  3436. typedef struct tagEMRCREATECOLORSPACEW {
  3437. EMR emr;
  3438. DWORD ihCS;
  3439. LOGCOLORSPACEW lcs;
  3440. DWORD dwFlags;
  3441. DWORD cbData;
  3442. BYTE Data[1];
  3443. } EMRCREATECOLORSPACEW,*PEMRCREATECOLORSPACEW;
  3444. #define COLORMATCHTOTARGET_EMBEDED 0x00000001
  3445. typedef struct tagCOLORMATCHTOTARGET {
  3446. EMR emr;
  3447. DWORD dwAction;
  3448. DWORD dwFlags;
  3449. DWORD cbName;
  3450. DWORD cbData;
  3451. BYTE Data[1];
  3452. } EMRCOLORMATCHTOTARGET,*PEMRCOLORMATCHTOTARGET;
  3453. typedef struct tagCOLORCORRECTPALETTE {
  3454. EMR emr;
  3455. DWORD ihPalette;
  3456. DWORD nFirstEntry;
  3457. DWORD nPalEntries;
  3458. DWORD nReserved;
  3459. } EMRCOLORCORRECTPALETTE,*PEMRCOLORCORRECTPALETTE;
  3460. typedef struct tagEMRALPHABLEND {
  3461. EMR emr;
  3462. RECTL rclBounds;
  3463. LONG xDest;
  3464. LONG yDest;
  3465. LONG cxDest;
  3466. LONG cyDest;
  3467. DWORD dwRop;
  3468. LONG xSrc;
  3469. LONG ySrc;
  3470. XFORM xformSrc;
  3471. COLORREF crBkColorSrc;
  3472. DWORD iUsageSrc;
  3473. DWORD offBmiSrc;
  3474. DWORD cbBmiSrc;
  3475. DWORD offBitsSrc;
  3476. DWORD cbBitsSrc;
  3477. LONG cxSrc;
  3478. LONG cySrc;
  3479. } EMRALPHABLEND,*PEMRALPHABLEND;
  3480. typedef struct tagEMRGRADIENTFILL {
  3481. EMR emr;
  3482. RECTL rclBounds;
  3483. DWORD nVer;
  3484. DWORD nTri;
  3485. ULONG ulMode;
  3486. TRIVERTEX Ver[1];
  3487. } EMRGRADIENTFILL,*PEMRGRADIENTFILL;
  3488. typedef struct tagEMRTRANSPARENTBLT {
  3489. EMR emr;
  3490. RECTL rclBounds;
  3491. LONG xDest;
  3492. LONG yDest;
  3493. LONG cxDest;
  3494. LONG cyDest;
  3495. DWORD dwRop;
  3496. LONG xSrc;
  3497. LONG ySrc;
  3498. XFORM xformSrc;
  3499. COLORREF crBkColorSrc;
  3500. DWORD iUsageSrc;
  3501. DWORD offBmiSrc;
  3502. DWORD cbBmiSrc;
  3503. DWORD offBitsSrc;
  3504. DWORD cbBitsSrc;
  3505. LONG cxSrc;
  3506. LONG cySrc;
  3507. } EMRTRANSPARENTBLT,*PEMRTRANSPARENTBLT;
  3508. #define GDICOMMENT_IDENTIFIER 0x43494447
  3509. #define GDICOMMENT_WINDOWS_METAFILE 0x80000001
  3510. #define GDICOMMENT_BEGINGROUP 0x00000002
  3511. #define GDICOMMENT_ENDGROUP 0x00000003
  3512. #define GDICOMMENT_MULTIFORMATS 0x40000004
  3513. #define EPS_SIGNATURE 0x46535045
  3514. #define GDICOMMENT_UNICODE_STRING 0x00000040
  3515. #define GDICOMMENT_UNICODE_END 0x00000080
  3516. #endif
  3517. #ifdef UNICODE
  3518. #define wglUseFontBitmaps wglUseFontBitmapsW
  3519. #else
  3520. #define wglUseFontBitmaps wglUseFontBitmapsA
  3521. #endif
  3522. WINGDIAPI WINBOOL WINAPI wglCopyContext(HGLRC,HGLRC,UINT);
  3523. WINGDIAPI HGLRC WINAPI wglCreateContext(HDC);
  3524. WINGDIAPI HGLRC WINAPI wglCreateLayerContext(HDC,int);
  3525. WINGDIAPI WINBOOL WINAPI wglDeleteContext(HGLRC);
  3526. WINGDIAPI HGLRC WINAPI wglGetCurrentContext(VOID);
  3527. WINGDIAPI HDC WINAPI wglGetCurrentDC(VOID);
  3528. WINGDIAPI PROC WINAPI wglGetProcAddress(LPCSTR);
  3529. WINGDIAPI WINBOOL WINAPI wglMakeCurrent(HDC,HGLRC);
  3530. WINGDIAPI WINBOOL WINAPI wglShareLists(HGLRC,HGLRC);
  3531. WINGDIAPI WINBOOL WINAPI wglUseFontBitmapsA(HDC,DWORD,DWORD,DWORD);
  3532. WINGDIAPI WINBOOL WINAPI wglUseFontBitmapsW(HDC,DWORD,DWORD,DWORD);
  3533. WINGDIAPI WINBOOL WINAPI SwapBuffers(HDC);
  3534. typedef struct _POINTFLOAT {
  3535. FLOAT x;
  3536. FLOAT y;
  3537. } POINTFLOAT,*PPOINTFLOAT;
  3538. typedef struct _GLYPHMETRICSFLOAT {
  3539. FLOAT gmfBlackBoxX;
  3540. FLOAT gmfBlackBoxY;
  3541. POINTFLOAT gmfptGlyphOrigin;
  3542. FLOAT gmfCellIncX;
  3543. FLOAT gmfCellIncY;
  3544. } GLYPHMETRICSFLOAT,*PGLYPHMETRICSFLOAT,*LPGLYPHMETRICSFLOAT;
  3545. #define WGL_FONT_LINES 0
  3546. #define WGL_FONT_POLYGONS 1
  3547. #ifdef UNICODE
  3548. #define wglUseFontOutlines wglUseFontOutlinesW
  3549. #else
  3550. #define wglUseFontOutlines wglUseFontOutlinesA
  3551. #endif
  3552. WINGDIAPI WINBOOL WINAPI wglUseFontOutlinesA(HDC,DWORD,DWORD,DWORD,FLOAT,FLOAT,int,LPGLYPHMETRICSFLOAT);
  3553. WINGDIAPI WINBOOL WINAPI wglUseFontOutlinesW(HDC,DWORD,DWORD,DWORD,FLOAT,FLOAT,int,LPGLYPHMETRICSFLOAT);
  3554. typedef struct tagLAYERPLANEDESCRIPTOR {
  3555. WORD nSize;
  3556. WORD nVersion;
  3557. DWORD dwFlags;
  3558. BYTE iPixelType;
  3559. BYTE cColorBits;
  3560. BYTE cRedBits;
  3561. BYTE cRedShift;
  3562. BYTE cGreenBits;
  3563. BYTE cGreenShift;
  3564. BYTE cBlueBits;
  3565. BYTE cBlueShift;
  3566. BYTE cAlphaBits;
  3567. BYTE cAlphaShift;
  3568. BYTE cAccumBits;
  3569. BYTE cAccumRedBits;
  3570. BYTE cAccumGreenBits;
  3571. BYTE cAccumBlueBits;
  3572. BYTE cAccumAlphaBits;
  3573. BYTE cDepthBits;
  3574. BYTE cStencilBits;
  3575. BYTE cAuxBuffers;
  3576. BYTE iLayerPlane;
  3577. BYTE bReserved;
  3578. COLORREF crTransparent;
  3579. } LAYERPLANEDESCRIPTOR,*PLAYERPLANEDESCRIPTOR,*LPLAYERPLANEDESCRIPTOR;
  3580. #define LPD_DOUBLEBUFFER 0x00000001
  3581. #define LPD_STEREO 0x00000002
  3582. #define LPD_SUPPORT_GDI 0x00000010
  3583. #define LPD_SUPPORT_OPENGL 0x00000020
  3584. #define LPD_SHARE_DEPTH 0x00000040
  3585. #define LPD_SHARE_STENCIL 0x00000080
  3586. #define LPD_SHARE_ACCUM 0x00000100
  3587. #define LPD_SWAP_EXCHANGE 0x00000200
  3588. #define LPD_SWAP_COPY 0x00000400
  3589. #define LPD_TRANSPARENT 0x00001000
  3590. #define LPD_TYPE_RGBA 0
  3591. #define LPD_TYPE_COLORINDEX 1
  3592. #define WGL_SWAP_MAIN_PLANE 0x00000001
  3593. #define WGL_SWAP_OVERLAY1 0x00000002
  3594. #define WGL_SWAP_OVERLAY2 0x00000004
  3595. #define WGL_SWAP_OVERLAY3 0x00000008
  3596. #define WGL_SWAP_OVERLAY4 0x00000010
  3597. #define WGL_SWAP_OVERLAY5 0x00000020
  3598. #define WGL_SWAP_OVERLAY6 0x00000040
  3599. #define WGL_SWAP_OVERLAY7 0x00000080
  3600. #define WGL_SWAP_OVERLAY8 0x00000100
  3601. #define WGL_SWAP_OVERLAY9 0x00000200
  3602. #define WGL_SWAP_OVERLAY10 0x00000400
  3603. #define WGL_SWAP_OVERLAY11 0x00000800
  3604. #define WGL_SWAP_OVERLAY12 0x00001000
  3605. #define WGL_SWAP_OVERLAY13 0x00002000
  3606. #define WGL_SWAP_OVERLAY14 0x00004000
  3607. #define WGL_SWAP_OVERLAY15 0x00008000
  3608. #define WGL_SWAP_UNDERLAY1 0x00010000
  3609. #define WGL_SWAP_UNDERLAY2 0x00020000
  3610. #define WGL_SWAP_UNDERLAY3 0x00040000
  3611. #define WGL_SWAP_UNDERLAY4 0x00080000
  3612. #define WGL_SWAP_UNDERLAY5 0x00100000
  3613. #define WGL_SWAP_UNDERLAY6 0x00200000
  3614. #define WGL_SWAP_UNDERLAY7 0x00400000
  3615. #define WGL_SWAP_UNDERLAY8 0x00800000
  3616. #define WGL_SWAP_UNDERLAY9 0x01000000
  3617. #define WGL_SWAP_UNDERLAY10 0x02000000
  3618. #define WGL_SWAP_UNDERLAY11 0x04000000
  3619. #define WGL_SWAP_UNDERLAY12 0x08000000
  3620. #define WGL_SWAP_UNDERLAY13 0x10000000
  3621. #define WGL_SWAP_UNDERLAY14 0x20000000
  3622. #define WGL_SWAP_UNDERLAY15 0x40000000
  3623. WINGDIAPI WINBOOL WINAPI wglDescribeLayerPlane(HDC,int,int,UINT,LPLAYERPLANEDESCRIPTOR);
  3624. WINGDIAPI int WINAPI wglSetLayerPaletteEntries(HDC,int,int,int,CONST COLORREF *);
  3625. WINGDIAPI int WINAPI wglGetLayerPaletteEntries(HDC,int,int,int,COLORREF *);
  3626. WINGDIAPI WINBOOL WINAPI wglRealizeLayerPalette(HDC,int,WINBOOL);
  3627. WINGDIAPI WINBOOL WINAPI wglSwapLayerBuffers(HDC,UINT);
  3628. typedef struct _WGLSWAP {
  3629. HDC hdc;
  3630. UINT uiFlags;
  3631. } WGLSWAP,*PWGLSWAP,*LPWGLSWAP;
  3632. #define WGL_SWAPMULTIPLE_MAX 16
  3633. WINGDIAPI DWORD WINAPI wglSwapMultipleBuffers(UINT,CONST WGLSWAP *);
  3634. #endif
  3635. #ifdef __cplusplus
  3636. }
  3637. #endif
  3638. #endif