wingdi.h 133 KB

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