wingdi.h 106 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638
  1. /*
  2. * Copyright (C) the Wine project
  3. *
  4. * This library is free software; you can redistribute it and/or
  5. * modify it under the terms of the GNU Lesser General Public
  6. * License as published by the Free Software Foundation; either
  7. * version 2.1 of the License, or (at your option) any later version.
  8. *
  9. * This library is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  12. * Lesser General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU Lesser General Public
  15. * License along with this library; if not, write to the Free Software
  16. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  17. */
  18. #ifndef _WINGDI_
  19. #define _WINGDI_
  20. #ifndef NOGDI
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif
  24. typedef struct _ABCFLOAT {
  25. FLOAT abcfA;
  26. FLOAT abcfB;
  27. FLOAT abcfC;
  28. } ABCFLOAT, *PABCFLOAT, *LPABCFLOAT;
  29. #define FONTMAPPER_MAX 10
  30. typedef struct
  31. {
  32. WORD wFirst;
  33. WORD wSecond;
  34. INT iKernAmount;
  35. } KERNINGPAIR, *LPKERNINGPAIR;
  36. typedef struct tagPIXELFORMATDESCRIPTOR {
  37. WORD nSize;
  38. WORD nVersion;
  39. DWORD dwFlags;
  40. BYTE iPixelType;
  41. BYTE cColorBits;
  42. BYTE cRedBits;
  43. BYTE cRedShift;
  44. BYTE cGreenBits;
  45. BYTE cGreenShift;
  46. BYTE cBlueBits;
  47. BYTE cBlueShift;
  48. BYTE cAlphaBits;
  49. BYTE cAlphaShift;
  50. BYTE cAccumBits;
  51. BYTE cAccumRedBits;
  52. BYTE cAccumGreenBits;
  53. BYTE cAccumBlueBits;
  54. BYTE cAccumAlphaBits;
  55. BYTE cDepthBits;
  56. BYTE cStencilBits;
  57. BYTE cAuxBuffers;
  58. BYTE iLayerType;
  59. BYTE bReserved;
  60. DWORD dwLayerMask;
  61. DWORD dwVisibleMask;
  62. DWORD dwDamageMask;
  63. } PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESCRIPTOR, *LPPIXELFORMATDESCRIPTOR;
  64. #define PFD_TYPE_RGBA 0
  65. #define PFD_TYPE_COLORINDEX 1
  66. #define PFD_MAIN_PLANE 0
  67. #define PFD_OVERLAY_PLANE 1
  68. #define PFD_UNDERLAY_PLANE (-1)
  69. #define PFD_DOUBLEBUFFER 0x00000001
  70. #define PFD_STEREO 0x00000002
  71. #define PFD_DRAW_TO_WINDOW 0x00000004
  72. #define PFD_DRAW_TO_BITMAP 0x00000008
  73. #define PFD_SUPPORT_GDI 0x00000010
  74. #define PFD_SUPPORT_OPENGL 0x00000020
  75. #define PFD_GENERIC_FORMAT 0x00000040
  76. #define PFD_NEED_PALETTE 0x00000080
  77. #define PFD_NEED_SYSTEM_PALETTE 0x00000100
  78. #define PFD_SWAP_EXCHANGE 0x00000200
  79. #define PFD_SWAP_COPY 0x00000400
  80. #define PFD_SWAP_LAYER_BUFFERS 0x00000800
  81. #define PFD_GENERIC_ACCELERATED 0x00001000
  82. #define PFD_DEPTH_DONTCARE 0x20000000
  83. #define PFD_DOUBLEBUFFER_DONTCARE 0x40000000
  84. #define PFD_STEREO_DONTCARE 0x80000000
  85. typedef struct tagCOLORADJUSTMENT
  86. {
  87. WORD caSize;
  88. WORD caFlags;
  89. WORD caIlluminantIndex;
  90. WORD caRedGamma;
  91. WORD caGreenGamma;
  92. WORD caBlueGamma;
  93. WORD caReferenceBlack;
  94. WORD caReferenceWhite;
  95. SHORT caContrast;
  96. SHORT caBrightness;
  97. SHORT caColorfulness;
  98. SHORT caRedGreenTint;
  99. } COLORADJUSTMENT, *PCOLORADJUSTMENT, *LPCOLORADJUSTMENT;
  100. #define CA_NEGATIVE 0x0001
  101. #define CA_LOG_FILTER 0x0002
  102. #define ILLUMINANT_DEVICE_DEFAULT 0
  103. #define ILLUMINANT_A 1
  104. #define ILLUMINANT_B 2
  105. #define ILLUMINANT_C 3
  106. #define ILLUMINANT_D50 4
  107. #define ILLUMINANT_D55 5
  108. #define ILLUMINANT_D65 6
  109. #define ILLUMINANT_D75 7
  110. #define ILLUMINANT_F2 8
  111. #define ILLUMINANT_MAX_INDEX ILLUMINANT_F2
  112. #define ILLUMINANT_TUNGSTEN ILLUMINANT_A
  113. #define ILLUMINANT_DAYLIGHT ILLUMINANT_C
  114. #define ILLUMINANT_FLUORESCENT ILLUMINANT_F2
  115. #define ILLUMINANT_NTSC ILLUMINANT_C
  116. #define RGB_GAMMA_MIN (WORD)02500
  117. #define RGB_GAMMA_MAX (WORD)65000
  118. #define REFERENCE_WHITE_MIN (WORD)6000
  119. #define REFERENCE_WHITE_MAX (WORD)10000
  120. #define REFERENCE_BLACK_MIN (WORD)0
  121. #define REFERENCE_BLACK_MAX (WORD)4000
  122. #define COLOR_ADJ_MIN ((SHORT)-100)
  123. #define COLOR_ADJ_MAX (SHORT) 100
  124. typedef LONG FXPT16DOT16, *LPFXPT16DOT16;
  125. typedef LONG FXPT2DOT30, *LPFXPT2DOT30;
  126. typedef LONG LCSCSTYPE;
  127. typedef LONG LCSGAMUTMATCH;
  128. #define LCS_CALIBRATED_RGB 0x00000000L
  129. #define LCS_DEVICE_RGB 0x00000001L
  130. #define LCS_DEVICE_CMYK 0x00000002L
  131. #define LCS_GM_BUSINESS 0x00000001L
  132. #define LCS_GM_GRAPHICS 0x00000002L
  133. #define LCS_GM_IMAGES 0x00000004L
  134. #define CM_OUT_OF_GAMUT 255
  135. #define CM_IN_GAMUT 0
  136. typedef struct tagCIEXYZ
  137. {
  138. FXPT2DOT30 ciexyzX;
  139. FXPT2DOT30 ciexyzY;
  140. FXPT2DOT30 ciexyzZ;
  141. } CIEXYZ, *LPCIEXYZ;
  142. typedef struct tagCIEXYZTRIPLE
  143. {
  144. CIEXYZ ciexyzRed;
  145. CIEXYZ ciexyzGreen;
  146. CIEXYZ ciexyzBlue;
  147. } CIEXYZTRIPLE, *LPCIEXYZTRIPLE;
  148. typedef struct tagLOGCOLORSPACEA
  149. {
  150. DWORD lcsSignature;
  151. DWORD lcsVersion;
  152. DWORD lcsSize;
  153. LCSCSTYPE lcsCSType;
  154. LCSGAMUTMATCH lcsIntent;
  155. CIEXYZTRIPLE lcsEndpoints;
  156. DWORD lcsGammaRed;
  157. DWORD lcsGammaGreen;
  158. DWORD lcsGammaBlue;
  159. CHAR lcsFilename[MAX_PATH];
  160. } LOGCOLORSPACEA, *LPLOGCOLORSPACEA;
  161. typedef struct tagLOGCOLORSPACEW
  162. {
  163. DWORD lcsSignature;
  164. DWORD lcsVersion;
  165. DWORD lcsSize;
  166. LCSCSTYPE lcsCSType;
  167. LCSGAMUTMATCH lcsIntent;
  168. CIEXYZTRIPLE lcsEndpoints;
  169. DWORD lcsGammaRed;
  170. DWORD lcsGammaGreen;
  171. DWORD lcsGammaBlue;
  172. WCHAR lcsFilename[MAX_PATH];
  173. } LOGCOLORSPACEW, *LPLOGCOLORSPACEW;
  174. DECL_WINELIB_TYPE_AW(LPLOGCOLORSPACE)
  175. DECL_WINELIB_TYPE_AW(LOGCOLORSPACE)
  176. #define DC_FIELDS 1
  177. #define DC_PAPERS 2
  178. #define DC_PAPERSIZE 3
  179. #define DC_MINEXTENT 4
  180. #define DC_MAXEXTENT 5
  181. #define DC_BINS 6
  182. #define DC_DUPLEX 7
  183. #define DC_SIZE 8
  184. #define DC_EXTRA 9
  185. #define DC_VERSION 10
  186. #define DC_DRIVER 11
  187. #define DC_BINNAMES 12
  188. #define DC_ENUMRESOLUTIONS 13
  189. #define DC_FILEDEPENDENCIES 14
  190. #define DC_TRUETYPE 15
  191. #define DC_PAPERNAMES 16
  192. #define DC_ORIENTATION 17
  193. #define DC_COPIES 18
  194. #define DC_BINADJUST 19
  195. #define DC_EMF_COMPLIANT 20
  196. #define DC_DATATYPE_PRODUCED 21
  197. #define DC_COLLATE 22
  198. #define DC_MANUFACTURER 23
  199. #define DC_MODEL 24
  200. #define DC_PERSONALITY 25
  201. #define DC_PRINTRATE 26
  202. #define DC_PRINTRATEUNIT 27
  203. #define DC_PRINTERMEM 28
  204. #define DC_MEDIAREADY 29
  205. #define DC_STAPLE 30
  206. #define DC_PRINTRATEPPM 31
  207. #define DC_COLORDEVICE 32
  208. #define DC_NUP 33
  209. #define DC_MEDIATYPENAMES 34
  210. #define DC_MEDIATYPES 35
  211. #define DCTT_BITMAP 0x00000001L
  212. #define DCTT_DOWNLOAD 0x00000002L
  213. #define DCTT_SUBDEV 0x00000004L
  214. #define DCTT_DOWNLOAD_OUTLINE 0x00000008L
  215. #define DCBA_FACEUPNONE 0x0000
  216. #define DCBA_FACEUPCENTER 0x0001
  217. #define DCBA_FACEUPLEFT 0x0002
  218. #define DCBA_FACEUPRIGHT 0x0003
  219. #define DCBA_FACEDOWNNONE 0x0100
  220. #define DCBA_FACEDOWNCENTER 0x0101
  221. #define DCBA_FACEDOWNLEFT 0x0102
  222. #define DCBA_FACEDOWNRIGHT 0x0103
  223. #define PRINTRATEUNIT_PPM 1
  224. #define PRINTRATEUNIT_CPS 2
  225. #define PRINTRATEUNIT_LPM 3
  226. #define PRINTRATEUNIT_IPM 4
  227. /* Flag returned from Escape QUERYDIBSUPPORT */
  228. #define QDI_SETDIBITS 1
  229. #define QDI_GETDIBITS 2
  230. #define QDI_DIBTOSCREEN 4
  231. #define QDI_STRETCHDIB 8
  232. /* GDI Escape commands */
  233. #define NEWFRAME 1
  234. #define ABORTDOC 2
  235. #define NEXTBAND 3
  236. #define SETCOLORTABLE 4
  237. #define GETCOLORTABLE 5
  238. #define FLUSHOUTPUT 6
  239. #define DRAFTMODE 7
  240. #define QUERYESCSUPPORT 8
  241. #define SETABORTPROC 9
  242. #define STARTDOC 10
  243. #define ENDDOC 11
  244. #define GETPHYSPAGESIZE 12
  245. #define GETPRINTINGOFFSET 13
  246. #define GETSCALINGFACTOR 14
  247. #define MFCOMMENT 15
  248. #define GETPENWIDTH 16
  249. #define SETCOPYCOUNT 17
  250. #define SELECTPAPERSOURCE 18
  251. #define DEVICEDATA 19
  252. #define PASSTHROUGH 19
  253. #define GETTECHNOLGY 20
  254. #define GETTECHNOLOGY 20 /* yes, both of them */
  255. #define SETLINECAP 21
  256. #define SETLINEJOIN 22
  257. #define SETMITERLIMIT 23
  258. #define BANDINFO 24
  259. #define DRAWPATTERNRECT 25
  260. #define GETVECTORPENSIZE 26
  261. #define GETVECTORBRUSHSIZE 27
  262. #define ENABLEDUPLEX 28
  263. #define GETSETPAPERBINS 29
  264. #define GETSETPRINTORIENT 30
  265. #define ENUMPAPERBINS 31
  266. #define SETDIBSCALING 32
  267. #define EPSPRINTING 33
  268. #define ENUMPAPERMETRICS 34
  269. #define GETSETPAPERMETRICS 35
  270. #define POSTSCRIPT_DATA 37
  271. #define POSTSCRIPT_IGNORE 38
  272. #define MOUSETRAILS 39
  273. #define GETDEVICEUNITS 42
  274. #define DESKTOPVERTRES 117
  275. #define DESKTOPHORZRES 118
  276. #define GETEXTENDEDTEXTMETRICS 256
  277. #define GETEXTENTTABLE 257
  278. #define GETPAIRKERNTABLE 258
  279. #define GETTRACKKERNTABLE 259
  280. #define EXTTEXTOUT 512
  281. #define GETFACENAME 513
  282. #define DOWNLOADFACE 514
  283. #define ENABLERELATIVEWIDTHS 768
  284. #define ENABLEPAIRKERNING 769
  285. #define SETKERNTRACK 770
  286. #define SETALLJUSTVALUES 771
  287. #define SETCHARSET 772
  288. #define STRETCHBLT 2048
  289. #define GETSETSCREENPARAMS 3072
  290. #define QUERYDIBSUPPORT 3073
  291. #define BEGIN_PATH 4096
  292. #define CLIP_TO_PATH 4097
  293. #define END_PATH 4098
  294. #define EXT_DEVICE_CAPS 4099
  295. #define RESTORE_CTM 4100
  296. #define SAVE_CTM 4101
  297. #define SET_ARC_DIRECTION 4102
  298. #define SET_BACKGROUND_COLOR 4103
  299. #define SET_POLY_MODE 4104
  300. #define SET_SCREEN_ANGLE 4105
  301. #define SET_SPREAD 4106
  302. #define TRANSFORM_CTM 4107
  303. #define SET_CLIP_BOX 4108
  304. #define SET_BOUNDS 4109
  305. #define SET_MIRROR_MODE 4110
  306. #define OPENCHANNEL 4110
  307. #define DOWNLOADHEADER 4111
  308. #define CLOSECHANNEL 4112
  309. #define POSTSCRIPT_PASSTHROUGH 4115
  310. #define ENCAPSULATED_POSTSCRIPT 4116
  311. #define POSTSCRIPT_IDENTIFY 4117
  312. #define POSTSCRIPT_INJECTION 4118
  313. /* for POSTSCRIPT_IDENTIFY */
  314. #define PSIDENT_GDICENTRIC 0
  315. #define PSIDENT_PSCENTRIC 1
  316. #define QDI_SETDIBITS 1
  317. #define QDI_GETDIBITS 2
  318. #define QDI_DIBTOSCREEN 4
  319. #define QDI_STRETCHDIB 8
  320. /* Spooler Error Codes */
  321. #define SP_NOTREPORTED 0x4000
  322. #define SP_ERROR (-1)
  323. #define SP_APPABORT (-2)
  324. #define SP_USERABORT (-3)
  325. #define SP_OUTOFDISK (-4)
  326. #define SP_OUTOFMEMORY (-5)
  327. #define PR_JOBSTATUS 0
  328. /* Raster operations */
  329. #define R2_BLACK 1
  330. #define R2_NOTMERGEPEN 2
  331. #define R2_MASKNOTPEN 3
  332. #define R2_NOTCOPYPEN 4
  333. #define R2_MASKPENNOT 5
  334. #define R2_NOT 6
  335. #define R2_XORPEN 7
  336. #define R2_NOTMASKPEN 8
  337. #define R2_MASKPEN 9
  338. #define R2_NOTXORPEN 10
  339. #define R2_NOP 11
  340. #define R2_MERGENOTPEN 12
  341. #define R2_COPYPEN 13
  342. #define R2_MERGEPENNOT 14
  343. #define R2_MERGEPEN 15
  344. #define R2_WHITE 16
  345. #define MAKEROP4(fore,back) (DWORD)((((back)<<8)&0xFF000000)|(fore))
  346. #define SRCCOPY 0xcc0020
  347. #define SRCPAINT 0xee0086
  348. #define SRCAND 0x8800c6
  349. #define SRCINVERT 0x660046
  350. #define SRCERASE 0x440328
  351. #define NOTSRCCOPY 0x330008
  352. #define NOTSRCERASE 0x1100a6
  353. #define MERGECOPY 0xc000ca
  354. #define MERGEPAINT 0xbb0226
  355. #define PATCOPY 0xf00021
  356. #define PATPAINT 0xfb0a09
  357. #define PATINVERT 0x5a0049
  358. #define DSTINVERT 0x550009
  359. #define BLACKNESS 0x000042
  360. #define WHITENESS 0xff0062
  361. /* StretchBlt() modes */
  362. #define BLACKONWHITE 1
  363. #define WHITEONBLACK 2
  364. #define COLORONCOLOR 3
  365. #define HALFTONE 4
  366. #define MAXSTRETCHBLTMODE 4
  367. #define STRETCH_ANDSCANS BLACKONWHITE
  368. #define STRETCH_ORSCANS WHITEONBLACK
  369. #define STRETCH_DELETESCANS COLORONCOLOR
  370. #define STRETCH_HALFTONE HALFTONE
  371. /* Colors */
  372. #define RGB(r,g,b) ((COLORREF)((BYTE)(r) | ((BYTE)(g) << 8) | ((BYTE)(b) << 16)))
  373. #define PALETTERGB(r,g,b) (0x02000000 | RGB(r,g,b))
  374. #define PALETTEINDEX(i) ((COLORREF)(0x01000000 | (WORD)(i)))
  375. #define GetRValue(rgb) ((BYTE) (rgb) )
  376. #define GetGValue(rgb) ((BYTE) ((rgb) >> 8))
  377. #define GetBValue(rgb) ((BYTE) ((rgb) >> 16))
  378. #define GetKValue(cmyk) ((BYTE) (cmyk) )
  379. #define GetYValue(cmyk) ((BYTE) ((cmyk) >> 8))
  380. #define GetMValue(cmyk) ((BYTE) ((cmyk) >> 16))
  381. #define GetCValue(cmyk) ((BYTE) ((cmyk) >> 24))
  382. #define CMYK(c,m,y,k) ((COLORREF)((((BYTE)(k)|((WORD)((BYTE)(y))<<8))|(((DWORD)(BYTE)(m))<<16))|(((DWORD)(BYTE)(c))<<24)))
  383. /* ICM stuff */
  384. typedef INT (CALLBACK *ICMENUMPROCA)(LPSTR lpszFilename,LPARAM lParam);
  385. typedef INT (CALLBACK *ICMENUMPROCW)(LPWSTR lpszFilename,LPARAM lParam);
  386. DECL_WINELIB_TYPE_AW(ICMENUMPROC)
  387. #define ICM_OFF 1
  388. #define ICM_ON 2
  389. #define ICM_QUERY 3
  390. /* Bounds Accumulation APIs */
  391. #define DCB_RESET 0x0001
  392. #define DCB_ACCUMULATE 0x0002
  393. #define DCB_DIRTY DCB_ACCUMULATE
  394. #define DCB_SET (DCB_RESET | DCB_ACCUMULATE)
  395. #define DCB_ENABLE 0x0004
  396. #define DCB_DISABLE 0x0008
  397. typedef struct
  398. {
  399. LONG paXCount;
  400. LONG paYCount;
  401. LONG paXExt;
  402. LONG paYExt;
  403. BYTE paRGBs;
  404. } PELARRAY, *PPELARRAY, *LPPELARRAY;
  405. /* Bitmaps */
  406. typedef struct
  407. {
  408. INT bmType;
  409. INT bmWidth;
  410. INT bmHeight;
  411. INT bmWidthBytes;
  412. WORD bmPlanes;
  413. WORD bmBitsPixel;
  414. LPVOID bmBits;
  415. } BITMAP, *PBITMAP, *LPBITMAP;
  416. /* Brushes */
  417. typedef struct
  418. {
  419. UINT lbStyle;
  420. COLORREF lbColor;
  421. INT lbHatch;
  422. } LOGBRUSH, *PLOGBRUSH, *LPLOGBRUSH;
  423. typedef LOGBRUSH PATTERN, *PPATTERN, *LPPATTERN;
  424. /* Brush styles */
  425. #define BS_SOLID 0
  426. #define BS_NULL 1
  427. #define BS_HOLLOW 1
  428. #define BS_HATCHED 2
  429. #define BS_PATTERN 3
  430. #define BS_INDEXED 4
  431. #define BS_DIBPATTERN 5
  432. #define BS_DIBPATTERNPT 6
  433. #define BS_PATTERN8X8 7
  434. #define BS_DIBPATTERN8X8 8
  435. #define BS_MONOPATTERN 9
  436. /* Hatch styles */
  437. #define HS_HORIZONTAL 0
  438. #define HS_VERTICAL 1
  439. #define HS_FDIAGONAL 2
  440. #define HS_BDIAGONAL 3
  441. #define HS_CROSS 4
  442. #define HS_DIAGCROSS 5
  443. /* Fonts */
  444. #define LF_FACESIZE 32
  445. #define LF_FULLFACESIZE 64
  446. #define RASTER_FONTTYPE 0x0001
  447. #define DEVICE_FONTTYPE 0x0002
  448. #define TRUETYPE_FONTTYPE 0x0004
  449. typedef struct tagLOGFONTA
  450. {
  451. LONG lfHeight;
  452. LONG lfWidth;
  453. LONG lfEscapement;
  454. LONG lfOrientation;
  455. LONG lfWeight;
  456. BYTE lfItalic;
  457. BYTE lfUnderline;
  458. BYTE lfStrikeOut;
  459. BYTE lfCharSet;
  460. BYTE lfOutPrecision;
  461. BYTE lfClipPrecision;
  462. BYTE lfQuality;
  463. BYTE lfPitchAndFamily;
  464. CHAR lfFaceName[LF_FACESIZE];
  465. } LOGFONTA, *PLOGFONTA, *LPLOGFONTA;
  466. typedef struct tagLOGFONTW
  467. {
  468. LONG lfHeight;
  469. LONG lfWidth;
  470. LONG lfEscapement;
  471. LONG lfOrientation;
  472. LONG lfWeight;
  473. BYTE lfItalic;
  474. BYTE lfUnderline;
  475. BYTE lfStrikeOut;
  476. BYTE lfCharSet;
  477. BYTE lfOutPrecision;
  478. BYTE lfClipPrecision;
  479. BYTE lfQuality;
  480. BYTE lfPitchAndFamily;
  481. WCHAR lfFaceName[LF_FACESIZE];
  482. } LOGFONTW, *PLOGFONTW, *LPLOGFONTW;
  483. DECL_WINELIB_TYPE_AW(LOGFONT)
  484. DECL_WINELIB_TYPE_AW(PLOGFONT)
  485. DECL_WINELIB_TYPE_AW(LPLOGFONT)
  486. typedef struct
  487. {
  488. LOGFONTA elfLogFont;
  489. BYTE elfFullName[LF_FULLFACESIZE];
  490. BYTE elfStyle[LF_FACESIZE];
  491. } ENUMLOGFONTA, *LPENUMLOGFONTA;
  492. typedef struct
  493. {
  494. LOGFONTW elfLogFont;
  495. WCHAR elfFullName[LF_FULLFACESIZE];
  496. WCHAR elfStyle[LF_FACESIZE];
  497. } ENUMLOGFONTW, *LPENUMLOGFONTW;
  498. DECL_WINELIB_TYPE_AW(ENUMLOGFONT)
  499. DECL_WINELIB_TYPE_AW(LPENUMLOGFONT)
  500. typedef struct
  501. {
  502. LOGFONTA elfLogFont;
  503. BYTE elfFullName[LF_FULLFACESIZE];
  504. BYTE elfStyle[LF_FACESIZE];
  505. BYTE elfScript[LF_FACESIZE];
  506. } ENUMLOGFONTEXA,*LPENUMLOGFONTEXA;
  507. typedef struct
  508. {
  509. LOGFONTW elfLogFont;
  510. WCHAR elfFullName[LF_FULLFACESIZE];
  511. WCHAR elfStyle[LF_FACESIZE];
  512. WCHAR elfScript[LF_FACESIZE];
  513. } ENUMLOGFONTEXW,*LPENUMLOGFONTEXW;
  514. DECL_WINELIB_TYPE_AW(ENUMLOGFONTEX)
  515. DECL_WINELIB_TYPE_AW(LPENUMLOGFONTEX)
  516. /*
  517. * The FONTSIGNATURE tells which Unicode ranges and which code pages
  518. * have glyphs in a font.
  519. *
  520. * fsUsb 128-bit bitmap. The most significant bits are 10 (magic number).
  521. * The remaining 126 bits map the Unicode ISO 10646 subranges
  522. * for which the font provides glyphs.
  523. *
  524. * fsCsb 64-bit bitmap. The low 32 bits map the Windows codepages for
  525. * which the font provides glyphs. The high 32 bits are for
  526. * non Windows codepages.
  527. */
  528. typedef struct
  529. {
  530. DWORD fsUsb[4];
  531. DWORD fsCsb[2];
  532. } FONTSIGNATURE, *PFONTSIGNATURE, *LPFONTSIGNATURE;
  533. typedef struct
  534. {
  535. UINT ciCharset; /* character set */
  536. UINT ciACP; /* ANSI code page */
  537. FONTSIGNATURE fs;
  538. } CHARSETINFO, *PCHARSETINFO, *LPCHARSETINFO;
  539. /* Flags for TranslateCharsetInfo */
  540. #define TCI_SRCCHARSET 1
  541. #define TCI_SRCCODEPAGE 2
  542. #define TCI_SRCFONTSIG 3
  543. typedef struct
  544. {
  545. DWORD lsUsb[4];
  546. DWORD lsCsbDefault[2];
  547. DWORD lsCsbSupported[2];
  548. } LOCALESIGNATURE, *PLOCALESIGNATURE, *LPLOCALESIGNATURE;
  549. /* Flags for ModifyWorldTransform */
  550. #define MWT_IDENTITY 1
  551. #define MWT_LEFTMULTIPLY 2
  552. #define MWT_RIGHTMULTIPLY 3
  553. #define MWT_MIN MWT_IDENTITY
  554. #define MWT_MAX MWT_RIGHTMULTIPLY
  555. /* Object Definitions for EnumObjects() */
  556. #define OBJ_PEN 1
  557. #define OBJ_BRUSH 2
  558. #define OBJ_DC 3
  559. #define OBJ_METADC 4
  560. #define OBJ_PAL 5
  561. #define OBJ_FONT 6
  562. #define OBJ_BITMAP 7
  563. #define OBJ_REGION 8
  564. #define OBJ_METAFILE 9
  565. #define OBJ_MEMDC 10
  566. #define OBJ_EXTPEN 11
  567. #define OBJ_ENHMETADC 12
  568. #define OBJ_ENHMETAFILE 13
  569. #define OBJ_COLORSPACE 14
  570. typedef struct tagXFORM
  571. {
  572. FLOAT eM11;
  573. FLOAT eM12;
  574. FLOAT eM21;
  575. FLOAT eM22;
  576. FLOAT eDx;
  577. FLOAT eDy;
  578. } XFORM, *PXFORM, *LPXFORM;
  579. /* lfWeight values */
  580. #define FW_DONTCARE 0
  581. #define FW_THIN 100
  582. #define FW_EXTRALIGHT 200
  583. #define FW_ULTRALIGHT 200
  584. #define FW_LIGHT 300
  585. #define FW_NORMAL 400
  586. #define FW_REGULAR 400
  587. #define FW_MEDIUM 500
  588. #define FW_SEMIBOLD 600
  589. #define FW_DEMIBOLD 600
  590. #define FW_BOLD 700
  591. #define FW_EXTRABOLD 800
  592. #define FW_ULTRABOLD 800
  593. #define FW_HEAVY 900
  594. #define FW_BLACK 900
  595. /* lfCharSet values */
  596. #define ANSI_CHARSET (BYTE)0 /* CP1252, ansi-0, iso8859-{1,15} */
  597. #define DEFAULT_CHARSET (BYTE)1
  598. #define SYMBOL_CHARSET (BYTE)2
  599. #define SHIFTJIS_CHARSET (BYTE)128 /* CP932 */
  600. #define HANGEUL_CHARSET (BYTE)129 /* CP949, ksc5601.1987-0 */
  601. #define HANGUL_CHARSET HANGEUL_CHARSET
  602. #define GB2312_CHARSET (BYTE)134 /* CP936, gb2312.1980-0 */
  603. #define CHINESEBIG5_CHARSET (BYTE)136 /* CP950, big5.et-0 */
  604. #define GREEK_CHARSET (BYTE)161 /* CP1253 */
  605. #define TURKISH_CHARSET (BYTE)162 /* CP1254, -iso8859-9 */
  606. #define HEBREW_CHARSET (BYTE)177 /* CP1255, -iso8859-8 */
  607. #define ARABIC_CHARSET (BYTE)178 /* CP1256, -iso8859-6 */
  608. #define BALTIC_CHARSET (BYTE)186 /* CP1257, -iso8859-13 */
  609. #define VIETNAMESE_CHARSET (BYTE)163 /* CP1258 */
  610. #define RUSSIAN_CHARSET (BYTE)204 /* CP1251, -iso8859-5 */
  611. #define EE_CHARSET (BYTE)238 /* CP1250, -iso8859-2 */
  612. #define EASTEUROPE_CHARSET EE_CHARSET
  613. #define THAI_CHARSET (BYTE)222 /* CP874, iso8859-11, tis620 */
  614. #define JOHAB_CHARSET (BYTE)130 /* korean (johab) CP1361 */
  615. #define MAC_CHARSET (BYTE)77
  616. #define OEM_CHARSET (BYTE)255
  617. /* I don't know if the values of *_CHARSET macros are defined in Windows
  618. * or if we can choose them as we want. -- srtxg
  619. */
  620. #define VISCII_CHARSET (BYTE)240 /* viscii1.1-1 */
  621. #define TCVN_CHARSET (BYTE)241 /* tcvn-0 */
  622. #define KOI8_CHARSET (BYTE)242 /* koi8-{r,u,ru} */
  623. #define ISO3_CHARSET (BYTE)243 /* iso8859-3 */
  624. #define ISO4_CHARSET (BYTE)244 /* iso8859-4 */
  625. #define ISO10_CHARSET (BYTE)245 /* iso8859-10 */
  626. #define CELTIC_CHARSET (BYTE)246 /* iso8859-14 */
  627. #define FS_LATIN1 0x00000001L
  628. #define FS_LATIN2 0x00000002L
  629. #define FS_CYRILLIC 0x00000004L
  630. #define FS_GREEK 0x00000008L
  631. #define FS_TURKISH 0x00000010L
  632. #define FS_HEBREW 0x00000020L
  633. #define FS_ARABIC 0x00000040L
  634. #define FS_BALTIC 0x00000080L
  635. #define FS_VIETNAMESE 0x00000100L
  636. #define FS_THAI 0x00010000L
  637. #define FS_JISJAPAN 0x00020000L
  638. #define FS_CHINESESIMP 0x00040000L
  639. #define FS_WANSUNG 0x00080000L
  640. #define FS_CHINESETRAD 0x00100000L
  641. #define FS_JOHAB 0x00200000L
  642. #define FS_SYMBOL 0x80000000L
  643. /* lfOutPrecision values */
  644. #define OUT_DEFAULT_PRECIS 0
  645. #define OUT_STRING_PRECIS 1
  646. #define OUT_CHARACTER_PRECIS 2
  647. #define OUT_STROKE_PRECIS 3
  648. #define OUT_TT_PRECIS 4
  649. #define OUT_DEVICE_PRECIS 5
  650. #define OUT_RASTER_PRECIS 6
  651. #define OUT_TT_ONLY_PRECIS 7
  652. #define OUT_OUTLINE_PRECIS 8
  653. /* lfClipPrecision values */
  654. #define CLIP_DEFAULT_PRECIS 0x00
  655. #define CLIP_CHARACTER_PRECIS 0x01
  656. #define CLIP_STROKE_PRECIS 0x02
  657. #define CLIP_MASK 0x0F
  658. #define CLIP_LH_ANGLES 0x10
  659. #define CLIP_TT_ALWAYS 0x20
  660. #define CLIP_EMBEDDED 0x80
  661. /* lfQuality values */
  662. #define DEFAULT_QUALITY 0
  663. #define DRAFT_QUALITY 1
  664. #define PROOF_QUALITY 2
  665. #define NONANTIALIASED_QUALITY 3
  666. #define ANTIALIASED_QUALITY 4
  667. /* lfPitchAndFamily pitch values */
  668. #define DEFAULT_PITCH 0x00
  669. #define FIXED_PITCH 0x01
  670. #define VARIABLE_PITCH 0x02
  671. #define MONO_FONT 0x08
  672. #define FF_DONTCARE 0x00
  673. #define FF_ROMAN 0x10
  674. #define FF_SWISS 0x20
  675. #define FF_MODERN 0x30
  676. #define FF_SCRIPT 0x40
  677. #define FF_DECORATIVE 0x50
  678. #ifndef _TEXTMETRIC_DEFINED
  679. #define _TEXTMETRIC_DEFINED
  680. typedef struct tagTEXTMETRICA
  681. {
  682. LONG tmHeight;
  683. LONG tmAscent;
  684. LONG tmDescent;
  685. LONG tmInternalLeading;
  686. LONG tmExternalLeading;
  687. LONG tmAveCharWidth;
  688. LONG tmMaxCharWidth;
  689. LONG tmWeight;
  690. LONG tmOverhang;
  691. LONG tmDigitizedAspectX;
  692. LONG tmDigitizedAspectY;
  693. BYTE tmFirstChar;
  694. BYTE tmLastChar;
  695. BYTE tmDefaultChar;
  696. BYTE tmBreakChar;
  697. BYTE tmItalic;
  698. BYTE tmUnderlined;
  699. BYTE tmStruckOut;
  700. BYTE tmPitchAndFamily;
  701. BYTE tmCharSet;
  702. } TEXTMETRICA, *LPTEXTMETRICA, *PTEXTMETRICA;
  703. typedef struct tagTEXTMETRICW
  704. {
  705. LONG tmHeight;
  706. LONG tmAscent;
  707. LONG tmDescent;
  708. LONG tmInternalLeading;
  709. LONG tmExternalLeading;
  710. LONG tmAveCharWidth;
  711. LONG tmMaxCharWidth;
  712. LONG tmWeight;
  713. LONG tmOverhang;
  714. LONG tmDigitizedAspectX;
  715. LONG tmDigitizedAspectY;
  716. WCHAR tmFirstChar;
  717. WCHAR tmLastChar;
  718. WCHAR tmDefaultChar;
  719. WCHAR tmBreakChar;
  720. BYTE tmItalic;
  721. BYTE tmUnderlined;
  722. BYTE tmStruckOut;
  723. BYTE tmPitchAndFamily;
  724. BYTE tmCharSet;
  725. } TEXTMETRICW, *LPTEXTMETRICW, *PTEXTMETRICW;
  726. DECL_WINELIB_TYPE_AW(TEXTMETRIC)
  727. DECL_WINELIB_TYPE_AW(PTEXTMETRIC)
  728. DECL_WINELIB_TYPE_AW(LPTEXTMETRIC)
  729. #endif /* _TEXTMETRIC_DEFINED */
  730. typedef struct tagPANOSE
  731. {
  732. BYTE bFamilyType;
  733. BYTE bSerifStyle;
  734. BYTE bWeight;
  735. BYTE bProportion;
  736. BYTE bContrast;
  737. BYTE bStrokeVariation;
  738. BYTE bArmStyle;
  739. BYTE bLetterform;
  740. BYTE bMidline;
  741. BYTE bXHeight;
  742. } PANOSE, *LPPANOSE;
  743. #define PANOSE_COUNT 10
  744. #define PAN_FAMILYTYPE_INDEX 0
  745. #define PAN_SERIFSTYLE_INDEX 1
  746. #define PAN_WEIGTH_INDEX 2
  747. #define PAN_PROPORTION_INDEX 3
  748. #define PAN_CONTRAST_INDEX 4
  749. #define PAN_STROKEVARIATION_INDEX 5
  750. #define PAN_ARMSTYLE_INDEX 6
  751. #define PAN_LETTERFORM_INDEX 7
  752. #define PAN_MIDLINE_INDEX 8
  753. #define PAN_XHEIGHT_INDEX 9
  754. #define PAN_CULTURE_LATIN 0
  755. #define PAN_ANY 0
  756. #define PAN_NO_FIT 1
  757. #define PAN_FAMILY_TEXT_DISPLAY 2
  758. #define PAN_FAMILY_SCRIPT 3
  759. #define PAN_FAMILY_DECORATIVE 4
  760. #define PAN_FAMILY_PICTORIAL 5
  761. #define PAN_SERIF_COVE 2
  762. #define PAN_SERIF_OBTUSE_COVE 3
  763. #define PAN_SERIF_SQUARE_COVE 4
  764. #define PAN_SERIF_OBTUSE_SQUARE_COVE 5
  765. #define PAN_SERIF_SQUARE 6
  766. #define PAN_SERIF_THIN 7
  767. #define PAN_SERIF_BONE 8
  768. #define PAN_SERIF_EXAGGERATED 9
  769. #define PAN_SERIF_TRIANGLE 10
  770. #define PAN_SERIF_NORMAL_SANS 11
  771. #define PAN_SERIF_OBTUSE_SANS 12
  772. #define PAN_SERIF_PERP_SANS 13
  773. #define PAN_SERIF_FLARED 14
  774. #define PAN_SERIF_ROUNDED 15
  775. #define PAN_WEIGHT_VERY_LIGHT 2
  776. #define PAN_WEIGHT_LIGHT 3
  777. #define PAN_WEIGHT_THIN 4
  778. #define PAN_WEIGHT_BOOK 5
  779. #define PAN_WEIGHT_MEDIUM 6
  780. #define PAN_WEIGHT_DEMI 7
  781. #define PAN_WEIGHT_BOLD 8
  782. #define PAN_WEIGHT_HEAVY 9
  783. #define PAN_WEIGHT_BLACK 10
  784. #define PAN_WEIGHT_NORD 11
  785. #define PAN_PROP_OLD_STYLE 2
  786. #define PAN_PROP_MODERN 3
  787. #define PAN_PROP_EVEN_WIDTH 4
  788. #define PAN_PROP_EXPANDED 5
  789. #define PAN_PROP_CONDENSED 6
  790. #define PAN_PROP_VERY_EXPANDED 7
  791. #define PAN_PROP_VERY_CONDENSED 8
  792. #define PAN_PROP_MONOSPACED 9
  793. #define PAN_CONTRAST_NONE 2
  794. #define PAN_CONTRAST_VERY_LOW 3
  795. #define PAN_CONTRAST_LOW 4
  796. #define PAN_CONTRAST_MEDIUM_LOW 5
  797. #define PAN_CONTRAST_MEDIUM 6
  798. #define PAN_CONTRAST_MEDIUM_HIGH 7
  799. #define PAN_CONTRAST_HIGH 8
  800. #define PAN_CONTRAST_VERY_HIGH 9
  801. #define PAN_STROKE_GRADUAL_DIAG 2
  802. #define PAN_STROKE_GRADUAL_TRAN 3
  803. #define PAN_STROKE_GRADUAL_VERT 4
  804. #define PAN_STROKE_GRADUAL_HORZ 5
  805. #define PAN_STROKE_RAPID_VERT 6
  806. #define PAN_STROKE_RAPID_HORZ 7
  807. #define PAN_STROKE_INSTANT_VERT 8
  808. #define PAN_STRAIGHT_ARMS_HORZ 2
  809. #define PAN_STRAIGHT_ARMS_WEDGE 3
  810. #define PAN_STRAIGHT_ARMS_VERT 4
  811. #define PAN_STRAIGHT_ARMS_SINGLE_SERIF 5
  812. #define PAN_STRAIGHT_ARMS_DOUBLE_SERIF 6
  813. #define PAN_BENT_ARMS_HORZ 7
  814. #define PAN_BENT_ARMS_WEDGE 8
  815. #define PAN_BENT_ARMS_VERT 9
  816. #define PAN_BENT_ARMS_SINGLE_SERIF 10
  817. #define PAN_BENT_ARMS_DOUBLE_SERIF 11
  818. #define PAN_LETT_NORMAL_COMPACT 2
  819. #define PAN_LETT_NORMAL_WEIGHTED 3
  820. #define PAN_LETT_NORMAL_BOXED 4
  821. #define PAN_LETT_NORMAL_FLATTENED 5
  822. #define PAN_LETT_NORMAL_ROUNDED 6
  823. #define PAN_LETT_NORMAL_OFF_CENTER 7
  824. #define PAN_LETT_NORMAL_SQUARE 8
  825. #define PAN_LETT_OBLIQUE_COMPACT 9
  826. #define PAN_LETT_OBLIQUE_WEIGHTED 10
  827. #define PAN_LETT_OBLIQUE_BOXED 11
  828. #define PAN_LETT_OBLIQUE_FLATTENED 12
  829. #define PAN_LETT_OBLIQUE_ROUNDED 13
  830. #define PAN_LETT_OBLIQUE_OFF_CENTER 14
  831. #define PAN_LETT_OBLIQUE_SQUARE 15
  832. #define PAN_MIDLINE_STANDARD_TRIMMED 2
  833. #define PAN_MIDLINE_STANDARD_POINTED 3
  834. #define PAN_MIDLINE_STANDARD_SERIFED 4
  835. #define PAN_MIDLINE_HIGH_TRIMMED 5
  836. #define PAN_MIDLINE_HIGH_POINTED 6
  837. #define PAN_MIDLINE_HIGH_SERIFED 7
  838. #define PAN_MIDLINE_CONSTANT_TRIMMED 8
  839. #define PAN_MIDLINE_CONSTANT_POINTED 9
  840. #define PAN_MIDLINE_CONSTANT_SERIFED 10
  841. #define PAN_MIDLINE_LOW_TRIMMED 11
  842. #define PAN_MIDLINE_LOW_POINTED 12
  843. #define PAN_MIDLINE_LOW_SERIFED 13
  844. #define PAN_XHEIGHT_CONSTANT_SMALL 2
  845. #define PAN_XHEIGHT_CONSTANT_STANDARD 3
  846. #define PAN_XHEIGHT_CONSTANT_LARGE 4
  847. #define PAN_XHEIGHT_DUCKING_SMALL 5
  848. #define PAN_XHEIGHT_DUCKING_STANDARD 6
  849. #define PAN_XHEIGHT_DUCKING_LARGE 7
  850. #define ELF_VENDOR_SIZE 4
  851. typedef struct
  852. {
  853. LOGFONTA elfLogFont;
  854. BYTE elfFullName[LF_FULLFACESIZE];
  855. BYTE elfStyle[LF_FACESIZE];
  856. DWORD elfVersion;
  857. DWORD elfStyleSize;
  858. DWORD elfMatch;
  859. DWORD elfReserved;
  860. BYTE elfVendorId[ELF_VENDOR_SIZE];
  861. DWORD elfCulture;
  862. PANOSE elfPanose;
  863. } EXTLOGFONTA, *PEXTLOGFONTA, *LPEXTLOGFONTA;
  864. typedef struct
  865. {
  866. LOGFONTW elfLogFont;
  867. WCHAR elfFullName[LF_FULLFACESIZE];
  868. WCHAR elfStyle[LF_FACESIZE];
  869. DWORD elfVersion;
  870. DWORD elfStyleSize;
  871. DWORD elfMatch;
  872. DWORD elfReserved;
  873. BYTE elfVendorId[ELF_VENDOR_SIZE];
  874. DWORD elfCulture;
  875. PANOSE elfPanose;
  876. } EXTLOGFONTW, *PEXTLOGFONTW, *LPEXTLOGFONTW;
  877. DECL_WINELIB_TYPE_AW(EXTLOGFONT)
  878. DECL_WINELIB_TYPE_AW(PEXTLOGFONT)
  879. DECL_WINELIB_TYPE_AW(LPEXTLOGFONT)
  880. #define ELF_VERSION 0
  881. #define ELF_CULTURE_LATIN 0
  882. typedef struct _OUTLINETEXTMETRICA
  883. {
  884. UINT otmSize;
  885. TEXTMETRICA otmTextMetrics;
  886. BYTE otmFiller;
  887. PANOSE otmPanoseNumber;
  888. UINT otmfsSelection;
  889. UINT otmfsType;
  890. INT otmsCharSlopeRise;
  891. INT otmsCharSlopeRun;
  892. INT otmItalicAngle;
  893. UINT otmEMSquare;
  894. INT otmAscent;
  895. INT otmDescent;
  896. UINT otmLineGap;
  897. UINT otmsCapEmHeight;
  898. UINT otmsXHeight;
  899. RECT otmrcFontBox;
  900. INT otmMacAscent;
  901. INT otmMacDescent;
  902. UINT otmMacLineGap;
  903. UINT otmusMinimumPPEM;
  904. POINT otmptSubscriptSize;
  905. POINT otmptSubscriptOffset;
  906. POINT otmptSuperscriptSize;
  907. POINT otmptSuperscriptOffset;
  908. UINT otmsStrikeoutSize;
  909. INT otmsStrikeoutPosition;
  910. INT otmsUnderscoreSize;
  911. INT otmsUnderscorePosition;
  912. LPSTR otmpFamilyName;
  913. LPSTR otmpFaceName;
  914. LPSTR otmpStyleName;
  915. LPSTR otmpFullName;
  916. } OUTLINETEXTMETRICA, *POUTLINETEXTMETRICA, *LPOUTLINETEXTMETRICA;
  917. typedef struct _OUTLINETEXTMETRICW
  918. {
  919. UINT otmSize;
  920. TEXTMETRICW otmTextMetrics;
  921. BYTE otmFiller;
  922. PANOSE otmPanoseNumber;
  923. UINT otmfsSelection;
  924. UINT otmfsType;
  925. INT otmsCharSlopeRise;
  926. INT otmsCharSlopeRun;
  927. INT otmItalicAngle;
  928. UINT otmEMSquare;
  929. INT otmAscent;
  930. INT otmDescent;
  931. UINT otmLineGap;
  932. UINT otmsCapEmHeight;
  933. UINT otmsXHeight;
  934. RECT otmrcFontBox;
  935. INT otmMacAscent;
  936. INT otmMacDescent;
  937. UINT otmMacLineGap;
  938. UINT otmusMinimumPPEM;
  939. POINT otmptSubscriptSize;
  940. POINT otmptSubscriptOffset;
  941. POINT otmptSuperscriptSize;
  942. POINT otmptSuperscriptOffset;
  943. UINT otmsStrikeoutSize;
  944. INT otmsStrikeoutPosition;
  945. INT otmsUnderscoreSize;
  946. INT otmsUnderscorePosition;
  947. LPSTR otmpFamilyName;
  948. LPSTR otmpFaceName;
  949. LPSTR otmpStyleName;
  950. LPSTR otmpFullName;
  951. } OUTLINETEXTMETRICW, *POUTLINETEXTMETRICW, *LPOUTLINETEXTMETRICW;
  952. DECL_WINELIB_TYPE_AW(OUTLINETEXTMETRIC)
  953. DECL_WINELIB_TYPE_AW(POUTLINETEXTMETRIC)
  954. DECL_WINELIB_TYPE_AW(LPOUTLINETEXTMETRIC)
  955. typedef struct
  956. {
  957. INT x;
  958. INT y;
  959. UINT n;
  960. LPCSTR lpstr;
  961. UINT uiFlags;
  962. RECT rcl;
  963. INT *pdx;
  964. } POLYTEXTA, *PPOLYTEXTA, *LPPOLYTEXTA;
  965. typedef struct
  966. {
  967. INT x;
  968. INT y;
  969. UINT n;
  970. LPCWSTR lpstr;
  971. UINT uiFlags;
  972. RECT rcl;
  973. INT *pdx;
  974. } POLYTEXTW, *PPOLYTEXTW, *LPPOLYTEXTW;
  975. DECL_WINELIB_TYPE_AW(POLYTEXT)
  976. DECL_WINELIB_TYPE_AW(PPOLYTEXT)
  977. DECL_WINELIB_TYPE_AW(LPPOLYTEXT)
  978. /* ntmFlags field flags */
  979. #define NTM_REGULAR 0x00000040L
  980. #define NTM_BOLD 0x00000020L
  981. #define NTM_ITALIC 0x00000001L
  982. #define NTM_NONNEGATIVE_AC 0x00010000
  983. #define NTM_PS_OPENTYPE 0x00020000
  984. #define NTM_TT_OPENTYPE 0x00040000
  985. #define NTM_MULTIPLEMASTER 0x00080000
  986. #define NTM_TYPE1 0x00100000
  987. #define NTM_DSIG 0x00200000
  988. typedef struct
  989. {
  990. LONG tmHeight;
  991. LONG tmAscent;
  992. LONG tmDescent;
  993. LONG tmInternalLeading;
  994. LONG tmExternalLeading;
  995. LONG tmAveCharWidth;
  996. LONG tmMaxCharWidth;
  997. LONG tmWeight;
  998. LONG tmOverhang;
  999. LONG tmDigitizedAspectX;
  1000. LONG tmDigitizedAspectY;
  1001. BYTE tmFirstChar;
  1002. BYTE tmLastChar;
  1003. BYTE tmDefaultChar;
  1004. BYTE tmBreakChar;
  1005. BYTE tmItalic;
  1006. BYTE tmUnderlined;
  1007. BYTE tmStruckOut;
  1008. BYTE tmPitchAndFamily;
  1009. BYTE tmCharSet;
  1010. DWORD ntmFlags;
  1011. UINT ntmSizeEM;
  1012. UINT ntmCellHeight;
  1013. UINT ntmAvgWidth;
  1014. } NEWTEXTMETRICA, *PNEWTEXTMETRICA, *LPNEWTEXTMETRICA;
  1015. typedef struct
  1016. {
  1017. LONG tmHeight;
  1018. LONG tmAscent;
  1019. LONG tmDescent;
  1020. LONG tmInternalLeading;
  1021. LONG tmExternalLeading;
  1022. LONG tmAveCharWidth;
  1023. LONG tmMaxCharWidth;
  1024. LONG tmWeight;
  1025. LONG tmOverhang;
  1026. LONG tmDigitizedAspectX;
  1027. LONG tmDigitizedAspectY;
  1028. WCHAR tmFirstChar;
  1029. WCHAR tmLastChar;
  1030. WCHAR tmDefaultChar;
  1031. WCHAR tmBreakChar;
  1032. BYTE tmItalic;
  1033. BYTE tmUnderlined;
  1034. BYTE tmStruckOut;
  1035. BYTE tmPitchAndFamily;
  1036. BYTE tmCharSet;
  1037. DWORD ntmFlags;
  1038. UINT ntmSizeEM;
  1039. UINT ntmCellHeight;
  1040. UINT ntmAvgWidth;
  1041. } NEWTEXTMETRICW, *PNEWTEXTMETRICW, *LPNEWTEXTMETRICW;
  1042. DECL_WINELIB_TYPE_AW(NEWTEXTMETRIC)
  1043. DECL_WINELIB_TYPE_AW(PNEWTEXTMETRIC)
  1044. DECL_WINELIB_TYPE_AW(LPNEWTEXTMETRIC)
  1045. typedef struct
  1046. {
  1047. NEWTEXTMETRICA ntmTm;
  1048. FONTSIGNATURE ntmFontSig;
  1049. } NEWTEXTMETRICEXA;
  1050. typedef struct
  1051. {
  1052. NEWTEXTMETRICW ntmTm;
  1053. FONTSIGNATURE ntmFontSig;
  1054. } NEWTEXTMETRICEXW;
  1055. DECL_WINELIB_TYPE_AW(NEWTEXTMETRICEX)
  1056. #if defined(STRICT)
  1057. #if !defined(NOTEXTMETRIC)
  1058. typedef int (CALLBACK *OLDFONTENUMPROCA)(const LOGFONTA *, const TEXTMETRICA *, DWORD, LPARAM);
  1059. typedef int (CALLBACK *OLDFONTENUMPROCW)(const LOGFONTW *, const TEXTMETRICW *, DWORD, LPARAM);
  1060. #else /* !defined(NOTEXTMETRIC) */
  1061. typedef int (CALLBACK *OLDFONTENUMPROCA)(const LOGFONTA *, const VOID *, DWORD, LPARAM);
  1062. typedef int (CALLBACK *OLDFONTENUMPROCW)(const LOGFONTW *, const VOID *, DWORD, LPARAM);
  1063. #endif /* !defined(NOTEXTMETRIC) */
  1064. DECL_WINELIB_TYPE_AW(OLDFONTENUMPROC)
  1065. typedef OLDFONTENUMPROCA FONTENUMPROCA;
  1066. typedef OLDFONTENUMPROCW FONTENUMPROCW;
  1067. DECL_WINELIB_TYPE_AW(FONTENUMPROC)
  1068. typedef INT (CALLBACK *GOBJENUMPROC)(LPVOID, LPARAM);
  1069. typedef VOID (CALLBACK *LINEDDAPROC)(INT, INT, LPARAM);
  1070. #else /* defined(STRICT) */
  1071. typedef FARPROC OLDFONTENUMPROC;
  1072. typedef FARPROC FONTENUMPROCA;
  1073. typedef FARPROC FONTENUMPROCW;
  1074. DECL_WINELIB_TYPE_AW(FONTENUMPROC)
  1075. typedef FARPROC GOBJENUMPROC;
  1076. typedef FARPROC LINEDDAPROC;
  1077. #endif /* defined(STRICT) */
  1078. /* tmPitchAndFamily bits */
  1079. #define TMPF_FIXED_PITCH 1 /* means variable pitch */
  1080. #define TMPF_VECTOR 2
  1081. #define TMPF_TRUETYPE 4
  1082. #define TMPF_DEVICE 8
  1083. /* Text alignment */
  1084. #define TA_NOUPDATECP 0x00
  1085. #define TA_UPDATECP 0x01
  1086. #define TA_LEFT 0x00
  1087. #define TA_RIGHT 0x02
  1088. #define TA_CENTER 0x06
  1089. #define TA_TOP 0x00
  1090. #define TA_BOTTOM 0x08
  1091. #define TA_BASELINE 0x18
  1092. #define TA_RTLREADING 0x100
  1093. #define TA_MASK TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLREADING
  1094. #define VTA_BASELINE TA_BASELINE
  1095. #define VTA_LEFT TA_BOTTOM
  1096. #define VTA_RIGHT TA_TOP
  1097. #define VTA_CENTER TA_CENTER
  1098. #define VTA_BOTTOM TA_RIGHT
  1099. #define VTA_TOP TA_LEFT
  1100. /* ExtTextOut() parameters */
  1101. #define ETO_GRAYED 0x0001
  1102. #define ETO_OPAQUE 0x0002
  1103. #define ETO_CLIPPED 0x0004
  1104. #define ETO_GLYPH_INDEX 0x0010
  1105. #define ETO_RTLREADING 0x0080
  1106. #define ETO_NUMERICSLOCAL 0x0400
  1107. #define ETO_NUMERICSLATIN 0x0800
  1108. #define ETO_IGNORELANGUAGE 0x1000
  1109. #define ETO_PDY 0x2000
  1110. #define ASPECT_FILTERING 0x0001
  1111. /* for GetGlyphIndices() */
  1112. #define GGI_MARK_NONEXISTING_GLYPHS 0x0001
  1113. typedef struct
  1114. {
  1115. UINT gmBlackBoxX;
  1116. UINT gmBlackBoxY;
  1117. POINT gmptGlyphOrigin;
  1118. SHORT gmCellIncX;
  1119. SHORT gmCellIncY;
  1120. } GLYPHMETRICS, *LPGLYPHMETRICS;
  1121. #define GGO_METRICS 0
  1122. #define GGO_BITMAP 1
  1123. #define GGO_NATIVE 2
  1124. #define GGO_BEZIER 3
  1125. #define GGO_GRAY2_BITMAP 4
  1126. #define GGO_GRAY4_BITMAP 5
  1127. #define GGO_GRAY8_BITMAP 6
  1128. #define GGO_GLYPH_INDEX 0x80
  1129. typedef struct
  1130. {
  1131. WORD fract;
  1132. SHORT value;
  1133. } FIXED;
  1134. typedef struct tagPOINTFX
  1135. {
  1136. FIXED x;
  1137. FIXED y;
  1138. } POINTFX, *LPPOINTFX;
  1139. typedef struct tagTTPOLYCURVE
  1140. {
  1141. WORD wType;
  1142. WORD cpfx;
  1143. POINTFX apfx[1];
  1144. } TTPOLYCURVE, *LPTTPOLYCURVE;
  1145. typedef struct tagTTPOLYGONHEADER
  1146. {
  1147. DWORD cb;
  1148. DWORD dwType;
  1149. POINTFX pfxStart;
  1150. } TTPOLYGONHEADER, *LPTTPOLYGONHEADER;
  1151. typedef struct
  1152. {
  1153. FIXED eM11;
  1154. FIXED eM12;
  1155. FIXED eM21;
  1156. FIXED eM22;
  1157. } MAT2, *LPMAT2;
  1158. /* for GetCharABCWidths() */
  1159. typedef struct
  1160. {
  1161. INT abcA;
  1162. UINT abcB;
  1163. INT abcC;
  1164. } ABC, *PABC, *LPABC;
  1165. /* for GetCharacterPlacement () */
  1166. #define GCP_DBCS 0x0001
  1167. #define GCP_REORDER 0x0002
  1168. #define GCP_USEKERNING 0x0008
  1169. #define GCP_GLYPHSHAPE 0x0010
  1170. #define GCP_LIGATE 0x0020
  1171. #define GCP_DIACRITIC 0x0100
  1172. #define GCP_KASHIDA 0x0200
  1173. #define GCP_ERROR 0x8000
  1174. #define FLI_MASK 0x103b
  1175. #define GCP_JUSTIFY 0x00010000L
  1176. #define FLI_GLYPHS 0x00040000L
  1177. #define GCP_CLASSIN 0x00080000L
  1178. #define GCP_MAXEXTENT 0x00100000L
  1179. #define GCP_JUSTIFYIN 0x00200000L
  1180. #define GCP_DISPLAYZWG 0x00400000L
  1181. #define GCP_SYMSWAPOFF 0x00800000L
  1182. #define GCP_NUMERICOVERRIDE 0x01000000L
  1183. #define GCP_NEUTRALOVERRIDE 0x02000000L
  1184. #define GCP_NUMERICSLATIN 0x04000000L
  1185. #define GCP_NUMERICSLOCAL 0x08000000L
  1186. #define GCPCLASS_LATIN 1
  1187. #define GCPCLASS_HEBREW 2
  1188. #define GCPCLASS_ARABIC 3
  1189. #define GCPCLASS_NEUTRAL 4
  1190. #define GCPCLASS_LOCALNUMBER 5
  1191. #define GCPCLASS_LATINNUMBER 6
  1192. #define GCPCLASS_LATINNUMERICTERMINATOR 7
  1193. #define GCPCLASS_LATINNUMERICSEPARATOR 8
  1194. #define GCPCLASS_NUMERICSEPARATOR 9
  1195. #define GCPCLASS_PREBOUNDLTR 0x80
  1196. #define GCPCLASS_PREBOUNDRLT 0x40
  1197. #define GCPCLASS_POSTBOUNDLTR 0x20
  1198. #define GCPCLASS_POSTBOUNDRTL 0x10
  1199. #define GCPGLYPH_LINKBEFORE 0x8000
  1200. #define GCPGLYPH_LINKAFTER 0x4000
  1201. typedef struct tagGCP_RESULTSA{
  1202. DWORD lStructSize;
  1203. LPSTR lpOutString;
  1204. UINT *lpOrder;
  1205. INT *lpDx;
  1206. INT *lpCaretPos;
  1207. LPSTR lpClass;
  1208. LPWSTR lpGlyphs;
  1209. UINT nGlyphs;
  1210. UINT nMaxFit;
  1211. } GCP_RESULTSA, *LPGCP_RESULTSA;
  1212. typedef struct tagGCP_RESULTSW
  1213. {
  1214. DWORD lStructSize;
  1215. LPWSTR lpOutString;
  1216. UINT *lpOrder;
  1217. INT *lpDx;
  1218. INT *lpCaretPos;
  1219. LPSTR lpClass;
  1220. LPWSTR lpGlyphs;
  1221. UINT nGlyphs;
  1222. UINT nMaxFit;
  1223. } GCP_RESULTSW, *LPGCP_RESULTSW;
  1224. DECL_WINELIB_TYPE_AW(GCP_RESULTS)
  1225. DECL_WINELIB_TYPE_AW(LPGCP_RESULTS)
  1226. /* Rasterizer status */
  1227. typedef struct
  1228. {
  1229. SHORT nSize;
  1230. SHORT wFlags;
  1231. SHORT nLanguageID;
  1232. } RASTERIZER_STATUS, *LPRASTERIZER_STATUS;
  1233. #define TT_AVAILABLE 0x0001
  1234. #define TT_ENABLED 0x0002
  1235. #define TT_PRIM_LINE 1
  1236. #define TT_PRIM_QSPLINE 2
  1237. #define TT_PRIM_CSPLINE 3
  1238. #define TT_POLYGON_TYPE 24
  1239. /* OpenGL defines */
  1240. typedef struct {
  1241. FLOAT x;
  1242. FLOAT y;
  1243. } POINTFLOAT, *PPOINTFLOAT;
  1244. typedef struct {
  1245. FLOAT gmfBlackBoxX;
  1246. FLOAT gmfBlackBoxY;
  1247. POINTFLOAT gmfptGlyphOrigin;
  1248. FLOAT gmfCellIncX;
  1249. FLOAT gmfCellIncY;
  1250. } GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, *LPGLYPHMETRICSFLOAT;
  1251. typedef struct {
  1252. WORD nSize;
  1253. WORD nVersion;
  1254. DWORD dwFlags;
  1255. BYTE iPixelType;
  1256. BYTE cColorBits;
  1257. BYTE cRedBits;
  1258. BYTE cRedShift;
  1259. BYTE cGreenBits;
  1260. BYTE cGreenShift;
  1261. BYTE cBlueBits;
  1262. BYTE cBlueShift;
  1263. BYTE cAlphaBits;
  1264. BYTE cAlphaShift;
  1265. BYTE cAccumBits;
  1266. BYTE cAccumRedBits;
  1267. BYTE cAccumGreenBits;
  1268. BYTE cAccumBlueBits;
  1269. BYTE cAccumAlphaBits;
  1270. BYTE cDepthBits;
  1271. BYTE cStencilBits;
  1272. BYTE cAuxBuffers;
  1273. BYTE iLayerPlane;
  1274. BYTE bReserved;
  1275. COLORREF crTransparent;
  1276. } LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, *LPLAYERPLANEDESCRIPTOR;
  1277. /* Get/SetSystemPaletteUse() values */
  1278. #define SYSPAL_ERROR 0
  1279. #define SYSPAL_STATIC 1
  1280. #define SYSPAL_NOSTATIC 2
  1281. #define SYSPAL_NOSTATIC256 3
  1282. #ifndef _PALETTEENTRY_DEFINED
  1283. #define _PALETTEENTRY_DEFINED
  1284. typedef struct tagPALETTEENTRY
  1285. {
  1286. BYTE peRed, peGreen, peBlue, peFlags;
  1287. } PALETTEENTRY, *PPALETTEENTRY, *LPPALETTEENTRY;
  1288. #endif
  1289. /* Logical palette entry flags */
  1290. #define PC_RESERVED 0x01
  1291. #define PC_EXPLICIT 0x02
  1292. #define PC_NOCOLLAPSE 0x04
  1293. #ifndef _LOGPALETTE_DEFINED
  1294. #define _LOGPALETTE_DEFINED
  1295. typedef struct tagLOGPALETTE
  1296. {
  1297. WORD palVersion;
  1298. WORD palNumEntries;
  1299. PALETTEENTRY palPalEntry[1];
  1300. } LOGPALETTE, *PLOGPALETTE, *LPLOGPALETTE, *NPLOGPALETTE;
  1301. #endif
  1302. /* Pens */
  1303. typedef struct
  1304. {
  1305. UINT lopnStyle;
  1306. POINT lopnWidth;
  1307. COLORREF lopnColor;
  1308. } LOGPEN, *LPLOGPEN;
  1309. typedef struct tagEXTLOGPEN
  1310. {
  1311. DWORD elpPenStyle;
  1312. DWORD elpWidth;
  1313. UINT elpBrushStyle;
  1314. COLORREF elpColor;
  1315. LONG elpHatch;
  1316. DWORD elpNumEntries;
  1317. DWORD elpStyleEntry[1];
  1318. } EXTLOGPEN, *PEXTLOGPEN, *NPEXTLOGPEN, *LPEXTLOGPEN;
  1319. #define PS_SOLID 0x00000000
  1320. #define PS_DASH 0x00000001
  1321. #define PS_DOT 0x00000002
  1322. #define PS_DASHDOT 0x00000003
  1323. #define PS_DASHDOTDOT 0x00000004
  1324. #define PS_NULL 0x00000005
  1325. #define PS_INSIDEFRAME 0x00000006
  1326. #define PS_USERSTYLE 0x00000007
  1327. #define PS_ALTERNATE 0x00000008
  1328. #define PS_STYLE_MASK 0x0000000f
  1329. #define PS_ENDCAP_ROUND 0x00000000
  1330. #define PS_ENDCAP_SQUARE 0x00000100
  1331. #define PS_ENDCAP_FLAT 0x00000200
  1332. #define PS_ENDCAP_MASK 0x00000f00
  1333. #define PS_JOIN_ROUND 0x00000000
  1334. #define PS_JOIN_BEVEL 0x00001000
  1335. #define PS_JOIN_MITER 0x00002000
  1336. #define PS_JOIN_MASK 0x0000f000
  1337. #define PS_COSMETIC 0x00000000
  1338. #define PS_GEOMETRIC 0x00010000
  1339. #define PS_TYPE_MASK 0x000f0000
  1340. /* Regions */
  1341. #define ERROR 0
  1342. #define NULLREGION 1
  1343. #define SIMPLEREGION 2
  1344. #define COMPLEXREGION 3
  1345. #define RGN_ERROR ERROR
  1346. #define RGN_AND 1
  1347. #define RGN_OR 2
  1348. #define RGN_XOR 3
  1349. #define RGN_DIFF 4
  1350. #define RGN_COPY 5
  1351. #define RGN_MIN RGN_AND
  1352. #define RGN_MAX RGN_COPY
  1353. #define SYSRGN 4
  1354. /* Device contexts */
  1355. /* Polygon modes */
  1356. #define ALTERNATE 1
  1357. #define WINDING 2
  1358. #define POLYFILL_LAST 2
  1359. /* Background modes */
  1360. /* Apparently some broken svr4 includes define TRANSPARENT */
  1361. #undef TRANSPARENT
  1362. #define TRANSPARENT 1
  1363. #define OPAQUE 2
  1364. #define BKMODE_LAST 2
  1365. /* Graphics Modes */
  1366. #define GM_COMPATIBLE 1
  1367. #define GM_ADVANCED 2
  1368. #define GM_LAST 2
  1369. /* Arc direction modes */
  1370. #define AD_COUNTERCLOCKWISE 1
  1371. #define AD_CLOCKWISE 2
  1372. /* Map modes */
  1373. #define MM_TEXT 1
  1374. #define MM_LOMETRIC 2
  1375. #define MM_HIMETRIC 3
  1376. #define MM_LOENGLISH 4
  1377. #define MM_HIENGLISH 5
  1378. #define MM_TWIPS 6
  1379. #define MM_ISOTROPIC 7
  1380. #define MM_ANISOTROPIC 8
  1381. #define MM_MIN MM_TEXT
  1382. #define MM_MAX MM_ANISOTROPIC
  1383. #define MM_MAX_FIXEDSCALE MM_TWIPS
  1384. /* Coordinate modes */
  1385. #define ABSOLUTE 1
  1386. #define RELATIVE 2
  1387. /* Flood fill modes */
  1388. #define FLOODFILLBORDER 0
  1389. #define FLOODFILLSURFACE 1
  1390. /* Device parameters for GetDeviceCaps() */
  1391. #define DRIVERVERSION 0
  1392. #define TECHNOLOGY 2
  1393. #define HORZSIZE 4
  1394. #define VERTSIZE 6
  1395. #define HORZRES 8
  1396. #define VERTRES 10
  1397. #define BITSPIXEL 12
  1398. #define PLANES 14
  1399. #define NUMBRUSHES 16
  1400. #define NUMPENS 18
  1401. #define NUMMARKERS 20
  1402. #define NUMFONTS 22
  1403. #define NUMCOLORS 24
  1404. #define PDEVICESIZE 26
  1405. #define CURVECAPS 28
  1406. #define LINECAPS 30
  1407. #define POLYGONALCAPS 32
  1408. #define TEXTCAPS 34
  1409. #define CLIPCAPS 36
  1410. #define RASTERCAPS 38
  1411. #define ASPECTX 40
  1412. #define ASPECTY 42
  1413. #define ASPECTXY 44
  1414. #define LOGPIXELSX 88
  1415. #define LOGPIXELSY 90
  1416. #define CAPS1 94
  1417. #define SIZEPALETTE 104
  1418. #define NUMRESERVED 106
  1419. #define COLORRES 108
  1420. #define PHYSICALWIDTH 110
  1421. #define PHYSICALHEIGHT 111
  1422. #define PHYSICALOFFSETX 112
  1423. #define PHYSICALOFFSETY 113
  1424. #define SCALINGFACTORX 114
  1425. #define SCALINGFACTORY 115
  1426. #define VREFRESH 116
  1427. #define DESKTOPVERTRES 117
  1428. #define DESKTOPHORZRES 118
  1429. #define BTLALIGNMENT 119
  1430. /* TECHNOLOGY */
  1431. #define DT_PLOTTER 0
  1432. #define DT_RASDISPLAY 1
  1433. #define DT_RASPRINTER 2
  1434. #define DT_RASCAMERA 3
  1435. #define DT_CHARSTREAM 4
  1436. #define DT_METAFILE 5
  1437. #define DT_DISPFILE 6
  1438. /* CURVECAPS */
  1439. #define CC_NONE 0x0000
  1440. #define CC_CIRCLES 0x0001
  1441. #define CC_PIE 0x0002
  1442. #define CC_CHORD 0x0004
  1443. #define CC_ELLIPSES 0x0008
  1444. #define CC_WIDE 0x0010
  1445. #define CC_STYLED 0x0020
  1446. #define CC_WIDESTYLED 0x0040
  1447. #define CC_INTERIORS 0x0080
  1448. #define CC_ROUNDRECT 0x0100
  1449. /* LINECAPS */
  1450. #define LC_NONE 0x0000
  1451. #define LC_POLYLINE 0x0002
  1452. #define LC_MARKER 0x0004
  1453. #define LC_POLYMARKER 0x0008
  1454. #define LC_WIDE 0x0010
  1455. #define LC_STYLED 0x0020
  1456. #define LC_WIDESTYLED 0x0040
  1457. #define LC_INTERIORS 0x0080
  1458. /* POLYGONALCAPS */
  1459. #define PC_NONE 0x0000
  1460. #define PC_POLYGON 0x0001
  1461. #define PC_RECTANGLE 0x0002
  1462. #define PC_WINDPOLYGON 0x0004
  1463. #define PC_TRAPEZOID 0x0004
  1464. #define PC_SCANLINE 0x0008
  1465. #define PC_WIDE 0x0010
  1466. #define PC_STYLED 0x0020
  1467. #define PC_WIDESTYLED 0x0040
  1468. #define PC_INTERIORS 0x0080
  1469. #define PC_POLYPOLYGON 0x0100
  1470. #define PC_PATHS 0x0200
  1471. /* TEXTCAPS */
  1472. #define TC_OP_CHARACTER 0x0001
  1473. #define TC_OP_STROKE 0x0002
  1474. #define TC_CP_STROKE 0x0004
  1475. #define TC_CR_90 0x0008
  1476. #define TC_CR_ANY 0x0010
  1477. #define TC_SF_X_YINDEP 0x0020
  1478. #define TC_SA_DOUBLE 0x0040
  1479. #define TC_SA_INTEGER 0x0080
  1480. #define TC_SA_CONTIN 0x0100
  1481. #define TC_EA_DOUBLE 0x0200
  1482. #define TC_IA_ABLE 0x0400
  1483. #define TC_UA_ABLE 0x0800
  1484. #define TC_SO_ABLE 0x1000
  1485. #define TC_RA_ABLE 0x2000
  1486. #define TC_VA_ABLE 0x4000
  1487. #define TC_RESERVED 0x8000
  1488. #define TC_SCROLLBLT 0x00010000
  1489. /* CLIPCAPS */
  1490. #define CP_NONE 0x0000
  1491. #define CP_RECTANGLE 0x0001
  1492. #define CP_REGION 0x0002
  1493. /* RASTERCAPS */
  1494. #define RC_NONE 0x0000
  1495. #define RC_BITBLT 0x0001
  1496. #define RC_BANDING 0x0002
  1497. #define RC_SCALING 0x0004
  1498. #define RC_BITMAP64 0x0008
  1499. #define RC_GDI20_OUTPUT 0x0010
  1500. #define RC_GDI20_STATE 0x0020
  1501. #define RC_SAVEBITMAP 0x0040
  1502. #define RC_DI_BITMAP 0x0080
  1503. #define RC_PALETTE 0x0100
  1504. #define RC_DIBTODEV 0x0200
  1505. #define RC_BIGFONT 0x0400
  1506. #define RC_STRETCHBLT 0x0800
  1507. #define RC_FLOODFILL 0x1000
  1508. #define RC_STRETCHDIB 0x2000
  1509. #define RC_OP_DX_OUTPUT 0x4000
  1510. #define RC_DEVBITS 0x8000
  1511. /* CAPS1 */
  1512. #define C1_TRANSPARENT 0x0001
  1513. #define TC_TT_ABLE 0x0002
  1514. #define C1_TT_CR_ANY 0x0004
  1515. #define C1_EMF_COMPLIANT 0x0008
  1516. #define C1_DIBENGINE 0x0010
  1517. #define C1_GAMMA_RAMP 0x0040
  1518. #define C1_REINIT_ABLE 0x0080
  1519. #define C1_GLYPH_INDEX 0x0100
  1520. #define C1_BIT_PACKED 0x0200
  1521. #define C1_BYTE_PACKED 0x0400
  1522. #define C1_COLORCURSOR 0x0800
  1523. #define C1_CMYK_ABLE 0x1000
  1524. #define C1_SLOW_CARD 0x2000
  1525. /* Device-independent bitmaps */
  1526. typedef struct {
  1527. BYTE rgbBlue;
  1528. BYTE rgbGreen;
  1529. BYTE rgbRed;
  1530. BYTE rgbReserved;
  1531. } RGBQUAD, *LPRGBQUAD;
  1532. typedef struct {
  1533. BYTE rgbtBlue;
  1534. BYTE rgbtGreen;
  1535. BYTE rgbtRed;
  1536. } RGBTRIPLE;
  1537. #include <pshpack2.h>
  1538. typedef struct
  1539. {
  1540. WORD bfType;
  1541. DWORD bfSize;
  1542. WORD bfReserved1;
  1543. WORD bfReserved2;
  1544. DWORD bfOffBits;
  1545. } BITMAPFILEHEADER, *PBITMAPFILEHEADER, *LPBITMAPFILEHEADER;
  1546. #include <poppack.h>
  1547. #ifdef __WINESRC__
  1548. #define MAKEPOINTS(l) do_not_use_MAKEPOINTS_in_wine
  1549. #else
  1550. #define MAKEPOINTS(l) (*((POINTS *)&(l)))
  1551. #endif
  1552. typedef struct
  1553. {
  1554. DWORD biSize;
  1555. LONG biWidth;
  1556. LONG biHeight;
  1557. WORD biPlanes;
  1558. WORD biBitCount;
  1559. DWORD biCompression;
  1560. DWORD biSizeImage;
  1561. LONG biXPelsPerMeter;
  1562. LONG biYPelsPerMeter;
  1563. DWORD biClrUsed;
  1564. DWORD biClrImportant;
  1565. } BITMAPINFOHEADER, *PBITMAPINFOHEADER, *LPBITMAPINFOHEADER;
  1566. typedef struct
  1567. {
  1568. DWORD bV4Size;
  1569. LONG bV4Width;
  1570. LONG bV4Height;
  1571. WORD bV4Planes;
  1572. WORD bV4BitCount;
  1573. DWORD bV4V4Compression;
  1574. DWORD bV4SizeImage;
  1575. LONG bV4XPelsPerMeter;
  1576. LONG bV4YPelsPerMeter;
  1577. DWORD bV4ClrUsed;
  1578. DWORD bV4ClrImportant;
  1579. DWORD bV4RedMask;
  1580. DWORD bV4GreenMask;
  1581. DWORD bV4BlueMask;
  1582. DWORD bV4AlphaMask;
  1583. DWORD bV4CSType;
  1584. CIEXYZTRIPLE bV4Endpoints;
  1585. DWORD bV4GammaRed;
  1586. DWORD bV4GammaGreen;
  1587. DWORD bV4GammaBlue;
  1588. } BITMAPV4HEADER, *PBITMAPV4HEADER;
  1589. typedef struct {
  1590. DWORD bV5Size;
  1591. LONG bV5Width;
  1592. LONG bV5Height;
  1593. WORD bV5Planes;
  1594. WORD bV5BitCount;
  1595. DWORD bV5Compression;
  1596. DWORD bV5SizeImage;
  1597. LONG bV5XPelsPerMeter;
  1598. LONG bV5YPelsPerMeter;
  1599. DWORD bV5ClrUsed;
  1600. DWORD bV5ClrImportant;
  1601. DWORD bV5RedMask;
  1602. DWORD bV5GreenMask;
  1603. DWORD bV5BlueMask;
  1604. DWORD bV5AlphaMask;
  1605. DWORD bV5CSType;
  1606. CIEXYZTRIPLE bV5Endpoints;
  1607. DWORD bV5GammaRed;
  1608. DWORD bV5GammaGreen;
  1609. DWORD bV5GammaBlue;
  1610. DWORD bV5Intent;
  1611. DWORD bV5ProfileData;
  1612. DWORD bV5ProfileSize;
  1613. DWORD bV5Reserved;
  1614. } BITMAPV5HEADER, *LPBITMAPV5HEADER, *PBITMAPV5HEADER;
  1615. #define PROFILE_LINKED 'LINK'
  1616. #define PROFILE_EMBEDDED 'MBED'
  1617. /* biCompression */
  1618. #define BI_RGB 0
  1619. #define BI_RLE8 1
  1620. #define BI_RLE4 2
  1621. #define BI_BITFIELDS 3
  1622. typedef struct tagBITMAPINFO
  1623. {
  1624. BITMAPINFOHEADER bmiHeader;
  1625. RGBQUAD bmiColors[1];
  1626. } BITMAPINFO, *PBITMAPINFO, *LPBITMAPINFO;
  1627. typedef struct
  1628. {
  1629. DWORD bcSize;
  1630. WORD bcWidth;
  1631. WORD bcHeight;
  1632. WORD bcPlanes;
  1633. WORD bcBitCount;
  1634. } BITMAPCOREHEADER, *PBITMAPCOREHEADER, *LPBITMAPCOREHEADER;
  1635. typedef struct
  1636. {
  1637. BITMAPCOREHEADER bmciHeader;
  1638. RGBTRIPLE bmciColors[1];
  1639. } BITMAPCOREINFO, *PBITMAPCOREINFO, *LPBITMAPCOREINFO;
  1640. #define DIB_RGB_COLORS 0
  1641. #define DIB_PAL_COLORS 1
  1642. #define CBM_INIT 4
  1643. typedef struct
  1644. {
  1645. BITMAP dsBm;
  1646. BITMAPINFOHEADER dsBmih;
  1647. DWORD dsBitfields[3];
  1648. HANDLE dshSection;
  1649. DWORD dsOffset;
  1650. } DIBSECTION, *PDIBSECTION, *LPDIBSECTION;
  1651. /* Stock GDI objects for GetStockObject() */
  1652. #define WHITE_BRUSH 0
  1653. #define LTGRAY_BRUSH 1
  1654. #define GRAY_BRUSH 2
  1655. #define DKGRAY_BRUSH 3
  1656. #define BLACK_BRUSH 4
  1657. #define NULL_BRUSH 5
  1658. #define HOLLOW_BRUSH 5
  1659. #define WHITE_PEN 6
  1660. #define BLACK_PEN 7
  1661. #define NULL_PEN 8
  1662. #define OEM_FIXED_FONT 10
  1663. #define ANSI_FIXED_FONT 11
  1664. #define ANSI_VAR_FONT 12
  1665. #define SYSTEM_FONT 13
  1666. #define DEVICE_DEFAULT_FONT 14
  1667. #define DEFAULT_PALETTE 15
  1668. #define SYSTEM_FIXED_FONT 16
  1669. #define DEFAULT_GUI_FONT 17
  1670. #define DC_BRUSH 18
  1671. #define DC_PEN 19
  1672. #define STOCK_LAST 19
  1673. #define CLR_INVALID 0xffffffff
  1674. /* Metafile header structure */
  1675. #include <pshpack2.h>
  1676. typedef struct
  1677. {
  1678. WORD mtType;
  1679. WORD mtHeaderSize;
  1680. WORD mtVersion;
  1681. DWORD mtSize;
  1682. WORD mtNoObjects;
  1683. DWORD mtMaxRecord;
  1684. WORD mtNoParameters;
  1685. } METAHEADER, *PMETAHEADER, *LPMETAHEADER;
  1686. #include <poppack.h>
  1687. /* Metafile typical record structure */
  1688. typedef struct
  1689. {
  1690. DWORD rdSize;
  1691. WORD rdFunction;
  1692. WORD rdParm[1];
  1693. } METARECORD, *PMETARECORD, *LPMETARECORD;
  1694. /* Handle table structure */
  1695. typedef struct
  1696. {
  1697. HGDIOBJ objectHandle[1];
  1698. } HANDLETABLE, *PHANDLETABLE, *LPHANDLETABLE;
  1699. /* Clipboard metafile picture structure */
  1700. typedef struct
  1701. {
  1702. LONG mm;
  1703. LONG xExt;
  1704. LONG yExt;
  1705. HMETAFILE hMF;
  1706. } METAFILEPICT, *LPMETAFILEPICT;
  1707. /* Metafile functions */
  1708. #define META_SETBKCOLOR 0x0201
  1709. #define META_SETBKMODE 0x0102
  1710. #define META_SETMAPMODE 0x0103
  1711. #define META_SETROP2 0x0104
  1712. #define META_SETRELABS 0x0105
  1713. #define META_SETPOLYFILLMODE 0x0106
  1714. #define META_SETSTRETCHBLTMODE 0x0107
  1715. #define META_SETTEXTCHAREXTRA 0x0108
  1716. #define META_SETTEXTCOLOR 0x0209
  1717. #define META_SETTEXTJUSTIFICATION 0x020A
  1718. #define META_SETWINDOWORG 0x020B
  1719. #define META_SETWINDOWEXT 0x020C
  1720. #define META_SETVIEWPORTORG 0x020D
  1721. #define META_SETVIEWPORTEXT 0x020E
  1722. #define META_OFFSETWINDOWORG 0x020F
  1723. #define META_SCALEWINDOWEXT 0x0410
  1724. #define META_OFFSETVIEWPORTORG 0x0211
  1725. #define META_SCALEVIEWPORTEXT 0x0412
  1726. #define META_LINETO 0x0213
  1727. #define META_MOVETO 0x0214
  1728. #define META_EXCLUDECLIPRECT 0x0415
  1729. #define META_INTERSECTCLIPRECT 0x0416
  1730. #define META_ARC 0x0817
  1731. #define META_ELLIPSE 0x0418
  1732. #define META_FLOODFILL 0x0419
  1733. #define META_PIE 0x081A
  1734. #define META_RECTANGLE 0x041B
  1735. #define META_ROUNDRECT 0x061C
  1736. #define META_PATBLT 0x061D
  1737. #define META_SAVEDC 0x001E
  1738. #define META_SETPIXEL 0x041F
  1739. #define META_OFFSETCLIPRGN 0x0220
  1740. #define META_TEXTOUT 0x0521
  1741. #define META_BITBLT 0x0922
  1742. #define META_STRETCHBLT 0x0B23
  1743. #define META_POLYGON 0x0324
  1744. #define META_POLYLINE 0x0325
  1745. #define META_ESCAPE 0x0626
  1746. #define META_RESTOREDC 0x0127
  1747. #define META_FILLREGION 0x0228
  1748. #define META_FRAMEREGION 0x0429
  1749. #define META_INVERTREGION 0x012A
  1750. #define META_PAINTREGION 0x012B
  1751. #define META_SELECTCLIPREGION 0x012C
  1752. #define META_SELECTOBJECT 0x012D
  1753. #define META_SETTEXTALIGN 0x012E
  1754. #define META_DRAWTEXT 0x062F
  1755. #define META_CHORD 0x0830
  1756. #define META_SETMAPPERFLAGS 0x0231
  1757. #define META_EXTTEXTOUT 0x0A32
  1758. #define META_SETDIBTODEV 0x0D33
  1759. #define META_SELECTPALETTE 0x0234
  1760. #define META_REALIZEPALETTE 0x0035
  1761. #define META_ANIMATEPALETTE 0x0436
  1762. #define META_SETPALENTRIES 0x0037
  1763. #define META_POLYPOLYGON 0x0538
  1764. #define META_RESIZEPALETTE 0x0139
  1765. #define META_DIBBITBLT 0x0940
  1766. #define META_DIBSTRETCHBLT 0x0B41
  1767. #define META_DIBCREATEPATTERNBRUSH 0x0142
  1768. #define META_STRETCHDIB 0x0F43
  1769. #define META_EXTFLOODFILL 0x0548
  1770. #define META_RESETDC 0x014C
  1771. #define META_STARTDOC 0x014D
  1772. #define META_STARTPAGE 0x004F
  1773. #define META_ENDPAGE 0x0050
  1774. #define META_ABORTDOC 0x0052
  1775. #define META_ENDDOC 0x005E
  1776. #define META_DELETEOBJECT 0x01F0
  1777. #define META_CREATEPALETTE 0x00F7
  1778. #define META_CREATEBRUSH 0x00F8
  1779. #define META_CREATEPATTERNBRUSH 0x01F9
  1780. #define META_CREATEPENINDIRECT 0x02FA
  1781. #define META_CREATEFONTINDIRECT 0x02FB
  1782. #define META_CREATEBRUSHINDIRECT 0x02FC
  1783. #define META_CREATEBITMAPINDIRECT 0x02FD
  1784. #define META_CREATEBITMAP 0x06FE
  1785. #define META_CREATEREGION 0x06FF
  1786. #define META_UNKNOWN 0x0529 /* FIXME: unknown meta magic */
  1787. typedef INT (CALLBACK *MFENUMPROC)(HDC,HANDLETABLE*,METARECORD*,
  1788. INT,LPARAM);
  1789. /* enhanced metafile structures and functions */
  1790. /* note that ENHMETAHEADER is just a particular kind of ENHMETARECORD,
  1791. ie. the header is just the first record in the metafile */
  1792. typedef struct {
  1793. DWORD iType;
  1794. DWORD nSize;
  1795. RECTL rclBounds;
  1796. RECTL rclFrame;
  1797. DWORD dSignature;
  1798. DWORD nVersion;
  1799. DWORD nBytes;
  1800. DWORD nRecords;
  1801. WORD nHandles;
  1802. WORD sReserved;
  1803. DWORD nDescription;
  1804. DWORD offDescription;
  1805. DWORD nPalEntries;
  1806. SIZEL szlDevice;
  1807. SIZEL szlMillimeters;
  1808. DWORD cbPixelFormat;
  1809. DWORD offPixelFormat;
  1810. DWORD bOpenGL;
  1811. SIZEL szlMicrometers;
  1812. } ENHMETAHEADER, *PENHMETAHEADER, *LPENHMETAHEADER;
  1813. typedef struct {
  1814. DWORD iType;
  1815. DWORD nSize;
  1816. DWORD dParm[1];
  1817. } ENHMETARECORD, *LPENHMETARECORD;
  1818. typedef struct {
  1819. DWORD iType;
  1820. DWORD nSize;
  1821. } EMR, *PEMR;
  1822. typedef struct {
  1823. POINTL ptlReference;
  1824. DWORD nChars;
  1825. DWORD offString;
  1826. DWORD fOptions;
  1827. RECTL rcl;
  1828. DWORD offDx;
  1829. } EMRTEXT, *PEMRTEXT;
  1830. typedef struct {
  1831. EMR emr;
  1832. } EMRABORTPATH, *PEMRABORTPATH,
  1833. EMRBEGINPATH, *PEMRBEGINPATH,
  1834. EMRENDPATH, *PEMRENDPATH,
  1835. EMRCLOSEFIGURE, *PEMRCLOSEFIGURE,
  1836. EMRFLATTENPATH, *PEMRFLATTENPATH,
  1837. EMRWIDENPATH, *PEMRWIDENPATH,
  1838. EMRSETMETARGN, *PEMRSETMETARGN,
  1839. EMRSAVEDC, *PEMRSAVEDC,
  1840. EMRREALIZEPALETTE, *PEMRREALIZEPALETTE;
  1841. typedef struct {
  1842. EMR emr;
  1843. POINTL ptlCenter;
  1844. DWORD nRadius;
  1845. FLOAT eStartAngle;
  1846. FLOAT eSweepAngle;
  1847. } EMRANGLEARC, *PEMRANGLEARC;
  1848. typedef struct {
  1849. EMR emr;
  1850. RECTL rclBox;
  1851. POINTL ptlStart;
  1852. POINTL ptlEnd;
  1853. } EMRARC, *PEMRARC,
  1854. EMRARCTO, *PEMRARCTO,
  1855. EMRCHORD, *PEMRCHORD,
  1856. EMRPIE, *PEMRPIE;
  1857. typedef struct {
  1858. EMR emr;
  1859. RECTL rclBounds;
  1860. LONG xDest;
  1861. LONG yDest;
  1862. LONG cxDest;
  1863. LONG cyDest;
  1864. DWORD dwRop;
  1865. LONG xSrc;
  1866. LONG ySrc;
  1867. XFORM xformSrc;
  1868. COLORREF crBkColorSrc;
  1869. DWORD iUsageSrc;
  1870. DWORD offBmiSrc;
  1871. DWORD cbBmiSrc;
  1872. DWORD offBitsSrc;
  1873. DWORD cbBitsSrc;
  1874. } EMRBITBLT, *PEMRBITBLT;
  1875. typedef struct {
  1876. EMR emr;
  1877. DWORD ihBrush;
  1878. LOGBRUSH lb;
  1879. } EMRCREATEBRUSHINDIRECT, *PEMRCREATEBRUSHINDIRECT;
  1880. typedef struct {
  1881. EMR emr;
  1882. DWORD ihCS;
  1883. LOGCOLORSPACEA lcs;
  1884. } EMRCREATECOLORSPACE, *PEMRCREATECOLORSPACE;
  1885. typedef struct {
  1886. EMR emr;
  1887. DWORD ihCS;
  1888. LOGCOLORSPACEW lcs;
  1889. DWORD dwFlags;
  1890. DWORD cbData;
  1891. BYTE Data[1];
  1892. } EMRCREATECOLORSPACEW, *PEMRCREATECOLORSPACEW;
  1893. typedef struct {
  1894. EMR emr;
  1895. DWORD ihBrush;
  1896. DWORD iUsage;
  1897. DWORD offBmi;
  1898. DWORD cbBmi;
  1899. DWORD offBits;
  1900. DWORD cbBits;
  1901. } EMRCREATEDIBPATTERNBRUSHPT, *PEMRCREATEDIBPATTERNBRUSHPT;
  1902. typedef struct {
  1903. EMR emr;
  1904. DWORD ihBrush;
  1905. DWORD iUsage;
  1906. DWORD offBmi;
  1907. DWORD cbBmi;
  1908. DWORD offBits;
  1909. DWORD cbBits;
  1910. } EMRCREATEMONOBRUSH, *PEMRCREATEMONOBRUSH;
  1911. typedef struct {
  1912. EMR emr;
  1913. DWORD ihPal;
  1914. LOGPALETTE lgpl;
  1915. } EMRCREATEPALETTE, *PEMRCREATEPALETTE;
  1916. typedef struct {
  1917. EMR emr;
  1918. DWORD ihPen;
  1919. LOGPEN lopn;
  1920. } EMRCREATEPEN, *PEMRCREATEPEN;
  1921. typedef struct {
  1922. EMR emr;
  1923. DWORD ihCS;
  1924. } EMRDELETECOLORSPACE, *PEMRDELETECOLORSPACE,
  1925. EMRSELECTCOLORSPACE, *PEMRSELECTCOLORSPACE,
  1926. EMRSETCOLORSPACE, *PEMRSETCOLORSPACE;
  1927. typedef struct {
  1928. EMR emr;
  1929. DWORD ihObject;
  1930. } EMRDELETEOBJECT, *PEMRDELETEOBJECT,
  1931. EMRSELECTOBJECT, *PEMRSELECTOBJECT;
  1932. typedef struct {
  1933. EMR emr;
  1934. RECTL rclBox;
  1935. } EMRELLIPSE, *PEMRELLIPSE,
  1936. EMRRECTANGLE, *PEMRRECTANGLE;
  1937. typedef struct {
  1938. EMR emr;
  1939. DWORD nPalEntries;
  1940. DWORD offPalEntries;
  1941. DWORD nSizeLast;
  1942. } EMREOF, *PEMREOF;
  1943. typedef struct {
  1944. EMR emr;
  1945. RECTL rclClip;
  1946. } EMREXCLUDECLIPRECT, *PEMREXCLUDECLIPRECT,
  1947. EMRINTERSECTCLIPRECT, *PEMRINTERSECTCLIPRECT;
  1948. typedef struct {
  1949. EMR emr;
  1950. DWORD ihFont;
  1951. EXTLOGFONTW elfw;
  1952. } EMREXTCREATEFONTINDIRECTW, *PEMREXTCREATEFONTINDIRECTW;
  1953. typedef struct {
  1954. EMR emr;
  1955. DWORD ihPen;
  1956. DWORD offBmi;
  1957. DWORD cbBmi;
  1958. DWORD offBits;
  1959. DWORD cbBits;
  1960. EXTLOGPEN elp;
  1961. } EMREXTCREATEPEN, *PEMREXTCREATEPEN;
  1962. typedef struct {
  1963. EMR emr;
  1964. POINTL ptlStart;
  1965. COLORREF crColor;
  1966. DWORD iMode;
  1967. } EMREXTFLOODFILL, *PEMREXTFLOODFILL;
  1968. typedef struct {
  1969. EMR emr;
  1970. DWORD cbRgnData;
  1971. DWORD iMode;
  1972. BYTE RgnData[1];
  1973. } EMREXTSELECTCLIPRGN, *PEMREXTSELECTCLIPRGN;
  1974. typedef struct {
  1975. EMR emr;
  1976. RECTL rclBounds;
  1977. DWORD iGraphicsMode;
  1978. FLOAT exScale;
  1979. FLOAT eyScale;
  1980. EMRTEXT emrtext;
  1981. } EMREXTTEXTOUTA, *PEMREXTTEXTOUTA,
  1982. EMREXTTEXTOUTW, *PEMREXTTEXTOUTW;
  1983. typedef struct {
  1984. EMR emr;
  1985. RECTL rclBounds;
  1986. } EMRFILLPATH, *PEMRFILLPATH,
  1987. EMRSTROKEANDFILLPATH, *PEMRSTROKEANDFILLPATH,
  1988. EMRSTROKEPATH, *PEMRSTROKEPATH;
  1989. typedef struct {
  1990. EMR emr;
  1991. RECTL rclBounds;
  1992. DWORD cbRgnData;
  1993. DWORD ihBrush;
  1994. BYTE RgnData[1];
  1995. } EMRFILLRGN, *PEMRFILLRGN;
  1996. typedef struct {
  1997. DWORD dSignature;
  1998. DWORD nVersion;
  1999. DWORD cbData;
  2000. DWORD offData;
  2001. } EMRFORMAT, *PEMRFORMAT;
  2002. typedef struct {
  2003. EMR emr;
  2004. RECTL rclBounds;
  2005. DWORD cbRgnData;
  2006. DWORD ihBrush;
  2007. SIZEL szlStroke;
  2008. BYTE RgnData[1];
  2009. } EMRFRAMERGN, *PEMRFRAMERGN;
  2010. typedef struct {
  2011. EMR emr;
  2012. DWORD cbData;
  2013. BYTE Data[1];
  2014. } EMRGDICOMMENT, *PEMRGDICOMMENT;
  2015. #if 0
  2016. typedef struct {
  2017. EMR emr;
  2018. RECTL rclBounds;
  2019. DWORD nVer;
  2020. DWORD nTri;
  2021. ULONG ulMode;
  2022. TRIVERTEX Ver[1];
  2023. } EMRGRADIENTFILL, *PEMRGRADIENTFILL;
  2024. #endif
  2025. typedef struct {
  2026. EMR emr;
  2027. RECTL rclBounds;
  2028. DWORD cbRgnData;
  2029. BYTE RgnData[1];
  2030. } EMRINVERTRGN, *PEMRINVERTRGN,
  2031. EMRPAINTRGN, *PEMRPAINTRGN;
  2032. typedef struct {
  2033. EMR emr;
  2034. POINTL ptl;
  2035. } EMRLINETO, *PEMRLINETO,
  2036. EMRMOVETOEX, *PEMRMOVETOEX;
  2037. typedef struct {
  2038. EMR emr;
  2039. RECTL rclBounds;
  2040. LONG xDest;
  2041. LONG yDest;
  2042. LONG cxDest;
  2043. LONG cyDest;
  2044. DWORD dwRop;
  2045. LONG xSrc;
  2046. LONG ySrc;
  2047. XFORM xformSrc;
  2048. COLORREF crBkColorSrc;
  2049. DWORD iUsageSrc;
  2050. DWORD offBmiSrc;
  2051. DWORD cbBmiSrc;
  2052. DWORD offBitsSrc;
  2053. DWORD cbBitsSrc;
  2054. LONG xMask;
  2055. LONG yMask;
  2056. DWORD iUsageMask;
  2057. DWORD offBmiMask;
  2058. DWORD cbBmiMask;
  2059. DWORD offBitsMask;
  2060. DWORD cbBitsMask;
  2061. } EMRMASKBLT, *PEMRMASKBLT;
  2062. typedef struct {
  2063. EMR emr;
  2064. XFORM xform;
  2065. DWORD iMode;
  2066. } EMRMODIFYWORLDTRANSFORM, *PEMRMODIFYWORLDTRANSFORM;
  2067. typedef struct {
  2068. EMR emr;
  2069. POINTL ptlOffset;
  2070. } EMROFFSETCLIPRGN, *PEMROFFSETCLIPRGN;
  2071. typedef struct {
  2072. EMR emr;
  2073. RECTL rclBounds;
  2074. POINTL aptlDest[3];
  2075. LONG xSrc;
  2076. LONG ySrc;
  2077. LONG cxSrc;
  2078. LONG cySrc;
  2079. XFORM xformSrc;
  2080. COLORREF crBkColorSrc;
  2081. DWORD iUsageSrc;
  2082. DWORD offBmiSrc;
  2083. DWORD cbBmiSrc;
  2084. DWORD offBitsSrc;
  2085. DWORD cbBitsSrc;
  2086. LONG xMask;
  2087. LONG yMask;
  2088. DWORD iUsageMask;
  2089. DWORD offBmiMask;
  2090. DWORD cbBmiMask;
  2091. DWORD offBitsMask;
  2092. DWORD cbBitsMask;
  2093. } EMRPLGBLT, *PEMRPLGBLT;
  2094. typedef struct {
  2095. EMR emr;
  2096. RECTL rclBounds;
  2097. DWORD cptl;
  2098. POINTL aptl[1];
  2099. } EMRPOLYLINE, *PEMRPOLYLINE,
  2100. EMRPOLYBEZIER, *PEMRPOLYBEZIER,
  2101. EMRPOLYGON, *PEMRPOLYGON,
  2102. EMRPOLYBEZIERTO, *PEMRPOLYBEZIERTO,
  2103. EMRPOLYLINETO, *PEMRPOLYLINETO;
  2104. typedef struct {
  2105. EMR emr;
  2106. RECTL rclBounds;
  2107. DWORD cpts;
  2108. POINTS apts[1];
  2109. } EMRPOLYLINE16, *PEMRPOLYLINE16,
  2110. EMRPOLYBEZIER16, *PEMRPOLYBEZIER16,
  2111. EMRPOLYGON16, *PEMRPOLYGON16,
  2112. EMRPOLYBEZIERTO16, *PEMRPOLYBEZIERTO16,
  2113. EMRPOLYLINETO16, *PEMRPOLYLINETO16;
  2114. typedef struct {
  2115. EMR emr;
  2116. RECTL rclBounds;
  2117. DWORD cpts;
  2118. POINTS apts[1];
  2119. BYTE abTypes[1];
  2120. } EMRPOLYDRAW16, *PEMRPOLYDRAW16;
  2121. typedef struct {
  2122. EMR emr;
  2123. RECTL rclBounds;
  2124. DWORD nPolys;
  2125. DWORD cpts;
  2126. DWORD aPolyCounts[1];
  2127. POINTS apts[1];
  2128. } EMRPOLYPOLYLINE16, *PEMRPOLYPOLYLINE16,
  2129. EMRPOLYPOLYGON16, *PEMRPOLYPOLYGON16;
  2130. typedef struct {
  2131. EMR emr;
  2132. RECTL rclBounds;
  2133. DWORD cptl;
  2134. POINTL aptl[1];
  2135. BYTE abTypes[1];
  2136. } EMRPOLYDRAW, *PEMRPOLYDRAW;
  2137. typedef struct {
  2138. EMR emr;
  2139. RECTL rclBounds;
  2140. DWORD nPolys;
  2141. DWORD cptl;
  2142. DWORD aPolyCounts[1];
  2143. POINTL aptl[1];
  2144. } EMRPOLYPOLYLINE, *PEMRPOLYPOLYLINE,
  2145. EMRPOLYPOLYGON, *PEMRPOLYPOLYGON;
  2146. typedef struct {
  2147. EMR emr;
  2148. RECTL rclBounds;
  2149. DWORD iGraphicsMode;
  2150. FLOAT exScale;
  2151. FLOAT eyScale;
  2152. LONG cStrings;
  2153. EMRTEXT aemrtext[1];
  2154. } EMRPOLYTEXTOUTA, *PEMRPOLYTEXTOUTA,
  2155. EMRPOLYTEXTOUTW, *PEMRPOLYTEXTOUTW;
  2156. typedef struct {
  2157. EMR emr;
  2158. DWORD ihPal;
  2159. DWORD cEntries;
  2160. } EMRRESIZEPALETTE, *PEMRRESIZEPALETTE;
  2161. typedef struct {
  2162. EMR emr;
  2163. LONG iRelative;
  2164. } EMRRESTOREDC, *PEMRRESTOREDC;
  2165. typedef struct {
  2166. EMR emr;
  2167. RECTL rclBox;
  2168. SIZEL szlCorner;
  2169. } EMRROUNDRECT, *PEMRROUNDRECT;
  2170. typedef struct {
  2171. EMR emr;
  2172. LONG xNum;
  2173. LONG xDenom;
  2174. LONG yNum;
  2175. LONG yDenom;
  2176. } EMRSCALEVIEWPORTEXTEX, *PEMRSCALEVIEWPORTEXTEX,
  2177. EMRSCALEWINDOWEXTEX, *PEMRSCALEWINDOWEXTEX;
  2178. typedef struct {
  2179. EMR emr;
  2180. DWORD iMode;
  2181. } EMRSELECTCLIPPATH, *PEMRSELECTCLIPPATH,
  2182. EMRSETBKMODE, *PEMRSETBKMODE,
  2183. EMRSETMAPMODE, *PEMRSETMAPMODE,
  2184. EMRSETPOLYFILLMODE, *PEMRSETPOLYFILLMODE,
  2185. EMRSETROP2, *PEMRSETROP2,
  2186. EMRSETSTRETCHBLTMODE, *PEMRSETSTRETCHBLTMODE,
  2187. EMRSETTEXTALIGN, *PEMRSETTEXTALIGN,
  2188. EMRSETICMMODE, *PEMRSETICMMODE,
  2189. EMRSETLAYOUT, *PEMRSETLAYOUT;
  2190. typedef struct {
  2191. EMR emr;
  2192. DWORD ihPal;
  2193. } EMRSELECTPALETTE, *PEMRSELECTPALETTE;
  2194. typedef struct {
  2195. EMR emr;
  2196. DWORD iArcDirection;
  2197. } EMRSETARCDIRECTION, *PEMRSETARCDIRECTION;
  2198. typedef struct {
  2199. EMR emr;
  2200. COLORREF crColor;
  2201. } EMRSETBKCOLOR, *PEMRSETBKCOLOR,
  2202. EMRSETTEXTCOLOR, *PEMRSETTEXTCOLOR;
  2203. typedef struct {
  2204. EMR emr;
  2205. POINTL ptlOrigin;
  2206. } EMRSETBRUSHORGEX, *PEMRSETBRUSHORGEX,
  2207. EMRSETVIEWPORTORGEX, *PEMRSETVIEWPORTORGEX,
  2208. EMRSETWINDOWORGEX, *PEMRSETWINDOWORGEX;
  2209. typedef struct {
  2210. EMR emr;
  2211. COLORADJUSTMENT ColorAdjustment;
  2212. } EMRSETCOLORADJUSTMENT, *PEMRSETCOLORADJUSTMENT;
  2213. typedef struct {
  2214. EMR emr;
  2215. RECTL rclBounds;
  2216. LONG xDest;
  2217. LONG yDest;
  2218. LONG xSrc;
  2219. LONG ySrc;
  2220. LONG cxSrc;
  2221. LONG cySrc;
  2222. DWORD offBmiSrc;
  2223. DWORD cbBmiSrc;
  2224. DWORD offBitsSrc;
  2225. DWORD cbBitsSrc;
  2226. DWORD iUsageSrc;
  2227. DWORD iStartScan;
  2228. DWORD cScans;
  2229. } EMRSETDIBITSTODEVICE, *PEMRSETDIBITSTODEVICE;
  2230. typedef struct {
  2231. EMR emr;
  2232. DWORD dwFlags;
  2233. } EMRSETMAPPERFLAGS, *PEMRSETMAPPERFLAGS;
  2234. typedef struct {
  2235. EMR emr;
  2236. FLOAT eMiterLimit;
  2237. } EMRSETMITERLIMIT, *PEMRSETMITERLIMIT;
  2238. typedef struct {
  2239. EMR emr;
  2240. DWORD ihPal;
  2241. DWORD iStart;
  2242. DWORD cEntries;
  2243. PALETTEENTRY aPalEntries[1];
  2244. } EMRSETPALETTEENTRIES, *PEMRSETPALETTEENTRIES;
  2245. typedef struct {
  2246. EMR emr;
  2247. POINTL ptlPixel;
  2248. COLORREF crColor;
  2249. } EMRSETPIXELV, *PEMRSETPIXELV;
  2250. typedef struct {
  2251. EMR emr;
  2252. SIZEL szlExtent;
  2253. } EMRSETVIEWPORTEXTEX, *PEMRSETVIEWPORTEXTEX,
  2254. EMRSETWINDOWEXTEX, *PEMRSETWINDOWEXTEX;
  2255. typedef struct {
  2256. EMR emr;
  2257. XFORM xform;
  2258. } EMRSETWORLDTRANSFORM, *PEMRSETWORLDTRANSFORM;
  2259. typedef struct {
  2260. EMR emr;
  2261. RECTL rclBounds;
  2262. LONG xDest;
  2263. LONG yDest;
  2264. LONG cxDest;
  2265. LONG cyDest;
  2266. DWORD dwRop;
  2267. LONG xSrc;
  2268. LONG ySrc;
  2269. XFORM xformSrc;
  2270. COLORREF crBkColorSrc;
  2271. DWORD iUsageSrc;
  2272. DWORD offBmiSrc;
  2273. DWORD cbBmiSrc;
  2274. DWORD offBitsSrc;
  2275. DWORD cbBitsSrc;
  2276. LONG cxSrc;
  2277. LONG cySrc;
  2278. } EMRSTRETCHBLT, *PEMRSTRETCHBLT;
  2279. typedef struct {
  2280. EMR emr;
  2281. RECTL rclBounds;
  2282. LONG xDest;
  2283. LONG yDest;
  2284. LONG xSrc;
  2285. LONG ySrc;
  2286. LONG cxSrc;
  2287. LONG cySrc;
  2288. DWORD offBmiSrc;
  2289. DWORD cbBmiSrc;
  2290. DWORD offBitsSrc;
  2291. DWORD cbBitsSrc;
  2292. DWORD iUsageSrc;
  2293. DWORD dwRop;
  2294. LONG cxDest;
  2295. LONG cyDest;
  2296. } EMRSTRETCHDIBITS, *PEMRSTRETCHDIBITS;
  2297. typedef struct {
  2298. EMR emr;
  2299. PIXELFORMATDESCRIPTOR pfd;
  2300. } EMRPIXELFORMAT, *PEMRPIXELFORMAT;
  2301. typedef struct tagEMRGLSRECORD {
  2302. EMR emr;
  2303. DWORD cbData;
  2304. BYTE Data[1];
  2305. } EMRGLSRECORD, *PEMRGLSRECORD;
  2306. typedef struct {
  2307. EMR emr;
  2308. RECTL rclBounds;
  2309. DWORD cbData;
  2310. BYTE Data[1];
  2311. } EMRGLSBOUNDEDRECORD, *PEMRGLSBOUNDEDRECORD;
  2312. typedef struct {
  2313. EMR emr;
  2314. INT nBreakExtra;
  2315. INT nBreakCount;
  2316. } EMRSETTEXTJUSTIFICATION, *PEMRSETTEXTJUSTIFICATION;
  2317. typedef INT (CALLBACK *ENHMFENUMPROC)(HDC, HANDLETABLE *,
  2318. const ENHMETARECORD *, INT, LPARAM);
  2319. #define EMR_HEADER 1
  2320. #define EMR_POLYBEZIER 2
  2321. #define EMR_POLYGON 3
  2322. #define EMR_POLYLINE 4
  2323. #define EMR_POLYBEZIERTO 5
  2324. #define EMR_POLYLINETO 6
  2325. #define EMR_POLYPOLYLINE 7
  2326. #define EMR_POLYPOLYGON 8
  2327. #define EMR_SETWINDOWEXTEX 9
  2328. #define EMR_SETWINDOWORGEX 10
  2329. #define EMR_SETVIEWPORTEXTEX 11
  2330. #define EMR_SETVIEWPORTORGEX 12
  2331. #define EMR_SETBRUSHORGEX 13
  2332. #define EMR_EOF 14
  2333. #define EMR_SETPIXELV 15
  2334. #define EMR_SETMAPPERFLAGS 16
  2335. #define EMR_SETMAPMODE 17
  2336. #define EMR_SETBKMODE 18
  2337. #define EMR_SETPOLYFILLMODE 19
  2338. #define EMR_SETROP2 20
  2339. #define EMR_SETSTRETCHBLTMODE 21
  2340. #define EMR_SETTEXTALIGN 22
  2341. #define EMR_SETCOLORADJUSTMENT 23
  2342. #define EMR_SETTEXTCOLOR 24
  2343. #define EMR_SETBKCOLOR 25
  2344. #define EMR_OFFSETCLIPRGN 26
  2345. #define EMR_MOVETOEX 27
  2346. #define EMR_SETMETARGN 28
  2347. #define EMR_EXCLUDECLIPRECT 29
  2348. #define EMR_INTERSECTCLIPRECT 30
  2349. #define EMR_SCALEVIEWPORTEXTEX 31
  2350. #define EMR_SCALEWINDOWEXTEX 32
  2351. #define EMR_SAVEDC 33
  2352. #define EMR_RESTOREDC 34
  2353. #define EMR_SETWORLDTRANSFORM 35
  2354. #define EMR_MODIFYWORLDTRANSFORM 36
  2355. #define EMR_SELECTOBJECT 37
  2356. #define EMR_CREATEPEN 38
  2357. #define EMR_CREATEBRUSHINDIRECT 39
  2358. #define EMR_DELETEOBJECT 40
  2359. #define EMR_ANGLEARC 41
  2360. #define EMR_ELLIPSE 42
  2361. #define EMR_RECTANGLE 43
  2362. #define EMR_ROUNDRECT 44
  2363. #define EMR_ARC 45
  2364. #define EMR_CHORD 46
  2365. #define EMR_PIE 47
  2366. #define EMR_SELECTPALETTE 48
  2367. #define EMR_CREATEPALETTE 49
  2368. #define EMR_SETPALETTEENTRIES 50
  2369. #define EMR_RESIZEPALETTE 51
  2370. #define EMR_REALIZEPALETTE 52
  2371. #define EMR_EXTFLOODFILL 53
  2372. #define EMR_LINETO 54
  2373. #define EMR_ARCTO 55
  2374. #define EMR_POLYDRAW 56
  2375. #define EMR_SETARCDIRECTION 57
  2376. #define EMR_SETMITERLIMIT 58
  2377. #define EMR_BEGINPATH 59
  2378. #define EMR_ENDPATH 60
  2379. #define EMR_CLOSEFIGURE 61
  2380. #define EMR_FILLPATH 62
  2381. #define EMR_STROKEANDFILLPATH 63
  2382. #define EMR_STROKEPATH 64
  2383. #define EMR_FLATTENPATH 65
  2384. #define EMR_WIDENPATH 66
  2385. #define EMR_SELECTCLIPPATH 67
  2386. #define EMR_ABORTPATH 68
  2387. #define EMR_GDICOMMENT 70
  2388. #define EMR_FILLRGN 71
  2389. #define EMR_FRAMERGN 72
  2390. #define EMR_INVERTRGN 73
  2391. #define EMR_PAINTRGN 74
  2392. #define EMR_EXTSELECTCLIPRGN 75
  2393. #define EMR_BITBLT 76
  2394. #define EMR_STRETCHBLT 77
  2395. #define EMR_MASKBLT 78
  2396. #define EMR_PLGBLT 79
  2397. #define EMR_SETDIBITSTODEVICE 80
  2398. #define EMR_STRETCHDIBITS 81
  2399. #define EMR_EXTCREATEFONTINDIRECTW 82
  2400. #define EMR_EXTTEXTOUTA 83
  2401. #define EMR_EXTTEXTOUTW 84
  2402. #define EMR_POLYBEZIER16 85
  2403. #define EMR_POLYGON16 86
  2404. #define EMR_POLYLINE16 87
  2405. #define EMR_POLYBEZIERTO16 88
  2406. #define EMR_POLYLINETO16 89
  2407. #define EMR_POLYPOLYLINE16 90
  2408. #define EMR_POLYPOLYGON16 91
  2409. #define EMR_POLYDRAW16 92
  2410. #define EMR_CREATEMONOBRUSH 93
  2411. #define EMR_CREATEDIBPATTERNBRUSHPT 94
  2412. #define EMR_EXTCREATEPEN 95
  2413. #define EMR_POLYTEXTOUTA 96
  2414. #define EMR_POLYTEXTOUTW 97
  2415. #define EMR_SETICMMODE 98
  2416. #define EMR_CREATECOLORSPACE 99
  2417. #define EMR_SETCOLORSPACE 100
  2418. #define EMR_DELETECOLORSPACE 101
  2419. #define EMR_GLSRECORD 102
  2420. #define EMR_GLSBOUNDEDRECORD 103
  2421. #define EMR_PIXELFORMAT 104
  2422. #define EMR_DRAWESCAPE 105
  2423. #define EMR_EXTESCAPE 106
  2424. #define EMR_STARTDOC 107
  2425. #define EMR_SMALLTEXTOUT 108
  2426. #define EMR_FORCEUFIMAPPING 109
  2427. #define EMR_NAMEDESCAPE 110
  2428. #define EMR_COLORCORRECTPALETTE 111
  2429. #define EMR_SETICMPROFILEA 112
  2430. #define EMR_SETICMPROFILEW 113
  2431. #define EMR_ALPHABLEND 114
  2432. #define EMR_SETLAYOUT 115
  2433. #define EMR_TRANSPARENTBLT 116
  2434. #define EMR_RESERVED_117 117
  2435. #define EMR_GRADIENTFILL 118
  2436. #define EMR_SETLINKEDUFI 119
  2437. #define EMR_SETTEXTJUSTIFICATION 120
  2438. #define EMR_COLORMATCHTOTARGETW 121
  2439. #define EMR_CREATECOLORSPACEW 122
  2440. #define EMR_MIN 1
  2441. #define EMR_MAX 122
  2442. #define ENHMETA_SIGNATURE 1179469088
  2443. #define ENHMETA_STOCK_OBJECT 0x80000000
  2444. #define GDICOMMENT_IDENTIFIER 0x43494447
  2445. #define GDICOMMENT_WINDOWS_METAFILE 0x80000001
  2446. #define GDICOMMENT_BEGINGROUP 0x00000002
  2447. #define GDICOMMENT_ENDGROUP 0x00000003
  2448. #define GDICOMMENT_MULTIFORMATS 0x40000004
  2449. #define GDICOMMENT_UNICODE_STRING 0x00000040
  2450. #define GDICOMMENT_UNICODE_END 0x00000080
  2451. #define EPS_SIGNATURE 0x46535045
  2452. #define CCHDEVICENAME 32
  2453. #define CCHFORMNAME 32
  2454. typedef struct
  2455. {
  2456. BYTE dmDeviceName[CCHDEVICENAME];
  2457. WORD dmSpecVersion;
  2458. WORD dmDriverVersion;
  2459. WORD dmSize;
  2460. WORD dmDriverExtra;
  2461. DWORD dmFields;
  2462. union {
  2463. struct {
  2464. short dmOrientation;
  2465. short dmPaperSize;
  2466. short dmPaperLength;
  2467. short dmPaperWidth;
  2468. } DUMMYSTRUCTNAME1;
  2469. POINTL dmPosition;
  2470. } DUMMYUNIONNAME1;
  2471. short dmScale;
  2472. short dmCopies;
  2473. short dmDefaultSource;
  2474. short dmPrintQuality;
  2475. short dmColor;
  2476. short dmDuplex;
  2477. short dmYResolution;
  2478. short dmTTOption;
  2479. short dmCollate;
  2480. BYTE dmFormName[CCHFORMNAME];
  2481. WORD dmLogPixels;
  2482. DWORD dmBitsPerPel;
  2483. DWORD dmPelsWidth;
  2484. DWORD dmPelsHeight;
  2485. DWORD dmDisplayFlags;
  2486. DWORD dmDisplayFrequency;
  2487. DWORD dmICMMethod;
  2488. DWORD dmICMIntent;
  2489. DWORD dmMediaType;
  2490. DWORD dmDitherType;
  2491. DWORD dmReserved1;
  2492. DWORD dmReserved2;
  2493. DWORD dmPanningWidth;
  2494. DWORD dmPanningHeight;
  2495. } DEVMODEA, *PDEVMODEA, *LPDEVMODEA;
  2496. typedef struct
  2497. {
  2498. WCHAR dmDeviceName[CCHDEVICENAME];
  2499. WORD dmSpecVersion;
  2500. WORD dmDriverVersion;
  2501. WORD dmSize;
  2502. WORD dmDriverExtra;
  2503. DWORD dmFields;
  2504. union {
  2505. struct {
  2506. short dmOrientation;
  2507. short dmPaperSize;
  2508. short dmPaperLength;
  2509. short dmPaperWidth;
  2510. } DUMMYSTRUCTNAME1;
  2511. POINTL dmPosition;
  2512. } DUMMYUNIONNAME1;
  2513. short dmScale;
  2514. short dmCopies;
  2515. short dmDefaultSource;
  2516. short dmPrintQuality;
  2517. short dmColor;
  2518. short dmDuplex;
  2519. short dmYResolution;
  2520. short dmTTOption;
  2521. short dmCollate;
  2522. WCHAR dmFormName[CCHFORMNAME];
  2523. WORD dmLogPixels;
  2524. DWORD dmBitsPerPel;
  2525. DWORD dmPelsWidth;
  2526. DWORD dmPelsHeight;
  2527. DWORD dmDisplayFlags;
  2528. DWORD dmDisplayFrequency;
  2529. DWORD dmICMMethod;
  2530. DWORD dmICMIntent;
  2531. DWORD dmMediaType;
  2532. DWORD dmDitherType;
  2533. DWORD dmReserved1;
  2534. DWORD dmReserved2;
  2535. DWORD dmPanningWidth;
  2536. DWORD dmPanningHeight;
  2537. } DEVMODEW, *PDEVMODEW, *LPDEVMODEW;
  2538. DECL_WINELIB_TYPE_AW(DEVMODE)
  2539. DECL_WINELIB_TYPE_AW(PDEVMODE)
  2540. DECL_WINELIB_TYPE_AW(LPDEVMODE)
  2541. #define DM_SPECVERSION 0x401
  2542. #define DM_UPDATE 1
  2543. #define DM_COPY 2
  2544. #define DM_PROMPT 4
  2545. #define DM_MODIFY 8
  2546. #define DM_IN_BUFFER DM_MODIFY
  2547. #define DM_IN_PROMPT DM_PROMPT
  2548. #define DM_OUT_BUFFER DM_COPY
  2549. #define DM_OUT_DEFAULT DM_UPDATE
  2550. #define DM_ORIENTATION 0x00000001L
  2551. #define DM_PAPERSIZE 0x00000002L
  2552. #define DM_PAPERLENGTH 0x00000004L
  2553. #define DM_PAPERWIDTH 0x00000008L
  2554. #define DM_SCALE 0x00000010L
  2555. #define DM_POSITION 0x00000020L
  2556. #define DM_COPIES 0x00000100L
  2557. #define DM_DEFAULTSOURCE 0x00000200L
  2558. #define DM_PRINTQUALITY 0x00000400L
  2559. #define DM_COLOR 0x00000800L
  2560. #define DM_DUPLEX 0x00001000L
  2561. #define DM_YRESOLUTION 0x00002000L
  2562. #define DM_TTOPTION 0x00004000L
  2563. #define DM_COLLATE 0x00008000L
  2564. #define DM_FORMNAME 0x00010000L
  2565. #define DM_LOGPIXELS 0x00020000L
  2566. #define DM_BITSPERPEL 0x00040000L
  2567. #define DM_PELSWIDTH 0x00080000L
  2568. #define DM_PELSHEIGHT 0x00100000L
  2569. #define DM_DISPLAYFLAGS 0x00200000L
  2570. #define DM_DISPLAYFREQUENCY 0x00400000L
  2571. #define DM_ICMMETHOD 0x00800000L
  2572. #define DM_ICMINTENT 0x01000000L
  2573. #define DM_MEDIATYPE 0x02000000L
  2574. #define DM_DITHERTYPE 0x04000000L
  2575. #define DM_PANNINGWIDTH 0x08000000L
  2576. #define DM_PANNINGHEIGHT 0x10000000L
  2577. #define DMORIENT_PORTRAIT 1
  2578. #define DMORIENT_LANDSCAPE 2
  2579. #define DMPAPER_FIRST DMPAPER_LETTER
  2580. #define DMPAPER_LETTER 1
  2581. #define DMPAPER_LETTERSMALL 2
  2582. #define DMPAPER_TABLOID 3
  2583. #define DMPAPER_LEDGER 4
  2584. #define DMPAPER_LEGAL 5
  2585. #define DMPAPER_STATEMENT 6
  2586. #define DMPAPER_EXECUTIVE 7
  2587. #define DMPAPER_A3 8
  2588. #define DMPAPER_A4 9
  2589. #define DMPAPER_A4SMALL 10
  2590. #define DMPAPER_A5 11
  2591. #define DMPAPER_B4 12
  2592. #define DMPAPER_B5 13
  2593. #define DMPAPER_FOLIO 14
  2594. #define DMPAPER_QUARTO 15
  2595. #define DMPAPER_10X14 16
  2596. #define DMPAPER_11X17 17
  2597. #define DMPAPER_NOTE 18
  2598. #define DMPAPER_ENV_9 19
  2599. #define DMPAPER_ENV_10 20
  2600. #define DMPAPER_ENV_11 21
  2601. #define DMPAPER_ENV_12 22
  2602. #define DMPAPER_ENV_14 23
  2603. #define DMPAPER_CSHEET 24
  2604. #define DMPAPER_DSHEET 25
  2605. #define DMPAPER_ESHEET 26
  2606. #define DMPAPER_ENV_DL 27
  2607. #define DMPAPER_ENV_C5 28
  2608. #define DMPAPER_ENV_C3 29
  2609. #define DMPAPER_ENV_C4 30
  2610. #define DMPAPER_ENV_C6 31
  2611. #define DMPAPER_ENV_C65 32
  2612. #define DMPAPER_ENV_B4 33
  2613. #define DMPAPER_ENV_B5 34
  2614. #define DMPAPER_ENV_B6 35
  2615. #define DMPAPER_ENV_ITALY 36
  2616. #define DMPAPER_ENV_MONARCH 37
  2617. #define DMPAPER_ENV_PERSONAL 38
  2618. #define DMPAPER_FANFOLD_US 39
  2619. #define DMPAPER_FANFOLD_STD_GERMAN 40
  2620. #define DMPAPER_FANFOLD_LGL_GERMAN 41
  2621. #define DMPAPER_ISO_B4 42
  2622. #define DMPAPER_JAPANESE_POSTCARD 43
  2623. #define DMPAPER_9X11 44
  2624. #define DMPAPER_10X11 45
  2625. #define DMPAPER_15X11 46
  2626. #define DMPAPER_ENV_INVITE 47
  2627. #define DMPAPER_RESERVED_48 48
  2628. #define DMPAPER_RESERVED_49 49
  2629. #define DMPAPER_LETTER_EXTRA 50
  2630. #define DMPAPER_LEGAL_EXTRA 51
  2631. #define DMPAPER_TABLOID_EXTRA 52
  2632. #define DMPAPER_A4_EXTRA 53
  2633. #define DMPAPER_LETTER_TRANSVERSE 54
  2634. #define DMPAPER_A4_TRANSVERSE 55
  2635. #define DMPAPER_LETTER_EXTRA_TRANSVERSE 56
  2636. #define DMPAPER_A_PLUS 57
  2637. #define DMPAPER_B_PLUS 58
  2638. #define DMPAPER_LETTER_PLUS 59
  2639. #define DMPAPER_A4_PLUS 60
  2640. #define DMPAPER_A5_TRANSVERSE 61
  2641. #define DMPAPER_B5_TRANSVERSE 62
  2642. #define DMPAPER_A3_EXTRA 63
  2643. #define DMPAPER_A5_EXTRA 64
  2644. #define DMPAPER_B5_EXTRA 65
  2645. #define DMPAPER_A2 66
  2646. #define DMPAPER_A3_TRANSVERSE 67
  2647. #define DMPAPER_A3_EXTRA_TRANSVERSE 68
  2648. #define DMPAPER_DBL_JAPANESE_POSTCARD 69
  2649. #define DMPAPER_A6 70
  2650. #define DMPAPER_JENV_KAKU2 71
  2651. #define DMPAPER_JENV_KAKU3 72
  2652. #define DMPAPER_JENV_CHOU3 73
  2653. #define DMPAPER_JENV_CHOU4 74
  2654. #define DMPAPER_LETTER_ROTATED 75
  2655. #define DMPAPER_A3_ROTATED 76
  2656. #define DMPAPER_A4_ROTATED 77
  2657. #define DMPAPER_A5_ROTATED 78
  2658. #define DMPAPER_B4_JIS_ROTATED 79
  2659. #define DMPAPER_B5_JIS_ROTATED 80
  2660. #define DMPAPER_JAPANESE_POSTCARD_ROTATED 81
  2661. #define DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED 82
  2662. #define DMPAPER_A6_ROTATED 83
  2663. #define DMPAPER_JENV_KAKU2_ROTATED 84
  2664. #define DMPAPER_JENV_KAKU3_ROTATED 85
  2665. #define DMPAPER_JENV_CHOU3_ROTATED 86
  2666. #define DMPAPER_JENV_CHOU4_ROTATED 87
  2667. #define DMPAPER_B6_JIS 88
  2668. #define DMPAPER_B6_JIS_ROTATED 89
  2669. #define DMPAPER_12X11 90
  2670. #define DMPAPER_JENV_YOU4 91
  2671. #define DMPAPER_JENV_YOU4_ROTATED 92
  2672. #define DMPAPER_P16K 93
  2673. #define DMPAPER_P32K 94
  2674. #define DMPAPER_P32KBIG 95
  2675. #define DMPAPER_PENV_1 96
  2676. #define DMPAPER_PENV_2 97
  2677. #define DMPAPER_PENV_3 98
  2678. #define DMPAPER_PENV_4 99
  2679. #define DMPAPER_PENV_5 100
  2680. #define DMPAPER_PENV_6 101
  2681. #define DMPAPER_PENV_7 102
  2682. #define DMPAPER_PENV_8 103
  2683. #define DMPAPER_PENV_9 104
  2684. #define DMPAPER_PENV_10 105
  2685. #define DMPAPER_P16K_ROTATED 106
  2686. #define DMPAPER_P32K_ROTATED 107
  2687. #define DMPAPER_P32KBIG_ROTATED 108
  2688. #define DMPAPER_PENV_1_ROTATED 109
  2689. #define DMPAPER_PENV_2_ROTATED 110
  2690. #define DMPAPER_PENV_3_ROTATED 111
  2691. #define DMPAPER_PENV_4_ROTATED 112
  2692. #define DMPAPER_PENV_5_ROTATED 113
  2693. #define DMPAPER_PENV_6_ROTATED 114
  2694. #define DMPAPER_PENV_7_ROTATED 115
  2695. #define DMPAPER_PENV_8_ROTATED 116
  2696. #define DMPAPER_PENV_9_ROTATED 117
  2697. #define DMPAPER_PENV_10_ROTATED 118
  2698. #define DMPAPER_LAST DMPAPER_PENV_10_ROTATED
  2699. #define DMPAPER_USER 256
  2700. #define DMBIN_FIRST DMBIN_UPPER
  2701. #define DMBIN_UPPER 1
  2702. #define DMBIN_ONLYONE 1
  2703. #define DMBIN_LOWER 2
  2704. #define DMBIN_MIDDLE 3
  2705. #define DMBIN_MANUAL 4
  2706. #define DMBIN_ENVELOPE 5
  2707. #define DMBIN_ENVMANUAL 6
  2708. #define DMBIN_AUTO 7
  2709. #define DMBIN_TRACTOR 8
  2710. #define DMBIN_SMALLFMT 9
  2711. #define DMBIN_LARGEFMT 10
  2712. #define DMBIN_LARGECAPACITY 11
  2713. #define DMBIN_CASSETTE 14
  2714. #define DMBIN_FORMSOURCE 15
  2715. #define DMBIN_LAST DMBIN_FORMSOURCE
  2716. #define DMBIN_USER 256
  2717. #define DMRES_DRAFT (-1)
  2718. #define DMRES_LOW (-2)
  2719. #define DMRES_MEDIUM (-3)
  2720. #define DMRES_HIGH (-4)
  2721. #define DMCOLOR_MONOCHROME 1
  2722. #define DMCOLOR_COLOR 2
  2723. #define DMDUP_SIMPLEX 1
  2724. #define DMDUP_VERTICAL 2
  2725. #define DMDUP_HORIZONTAL 3
  2726. #define DMTT_BITMAP 1
  2727. #define DMTT_DOWNLOAD 2
  2728. #define DMTT_SUBDEV 3
  2729. #define DMTT_DOWNLOAD_OUTLINE 4
  2730. #define DMCOLLATE_FALSE 0
  2731. #define DMCOLLATE_TRUE 1
  2732. #define DMICMMETHOD_NONE 1
  2733. #define DMICMMETHOD_SYSTEM 2
  2734. #define DMICMMETHOD_DRIVER 3
  2735. #define DMICMMETHOD_DEVICE 4
  2736. #define DMICMMETHOD_USER 256
  2737. #define DMICM_SATURATE 1
  2738. #define DMICM_CONTRAST 2
  2739. #define DMICM_COLORMETRIC 3
  2740. #define DMICM_USER 256
  2741. #define DMMEDIA_STANDARD 1
  2742. #define DMMEDIA_TRANSPARENCY 2
  2743. #define DMMEDIA_GLOSSY 3
  2744. #define DMMEDIA_USER 256
  2745. #define DMDITHER_NONE 1
  2746. #define DMDITHER_COARSE 2
  2747. #define DMDITHER_FINE 3
  2748. #define DMDITHER_LINEART 4
  2749. #define DMDITHER_GRAYSCALE 5
  2750. #define DMDITHER_USER 256
  2751. typedef struct
  2752. {
  2753. INT cbSize;
  2754. LPCSTR lpszDocName;
  2755. LPCSTR lpszOutput;
  2756. LPCSTR lpszDatatype;
  2757. DWORD fwType;
  2758. } DOCINFOA, *LPDOCINFOA;
  2759. typedef struct
  2760. {
  2761. INT cbSize;
  2762. LPCWSTR lpszDocName;
  2763. LPCWSTR lpszOutput;
  2764. LPCWSTR lpszDatatype;
  2765. DWORD fwType;
  2766. } DOCINFOW, *LPDOCINFOW;
  2767. DECL_WINELIB_TYPE_AW(DOCINFO)
  2768. DECL_WINELIB_TYPE_AW(LPDOCINFO)
  2769. #define DI_APPBANDING 0x0001
  2770. /* Flags for PolyDraw and GetPath */
  2771. #define PT_CLOSEFIGURE 0x0001
  2772. #define PT_LINETO 0x0002
  2773. #define PT_BEZIERTO 0x0004
  2774. #define PT_MOVETO 0x0006
  2775. #define RDH_RECTANGLES 1
  2776. typedef struct _RGNDATAHEADER {
  2777. DWORD dwSize;
  2778. DWORD iType;
  2779. DWORD nCount;
  2780. DWORD nRgnSize;
  2781. RECT rcBound;
  2782. } RGNDATAHEADER,*PRGNDATAHEADER;
  2783. typedef struct _RGNDATA {
  2784. RGNDATAHEADER rdh;
  2785. char Buffer[1];
  2786. } RGNDATA,*PRGNDATA,*LPRGNDATA;
  2787. typedef BOOL (CALLBACK *ABORTPROC)(HDC, INT);
  2788. typedef struct {
  2789. DWORD cb;
  2790. CHAR DeviceName[32];
  2791. CHAR DeviceString[128];
  2792. DWORD StateFlags;
  2793. CHAR DeviceID[128];
  2794. CHAR DeviceKey[128];
  2795. } DISPLAY_DEVICEA,*PDISPLAY_DEVICEA,*LPDISPLAY_DEVICEA;
  2796. typedef struct {
  2797. DWORD cb;
  2798. WCHAR DeviceName[32];
  2799. WCHAR DeviceString[128];
  2800. DWORD StateFlags;
  2801. WCHAR DeviceID[128];
  2802. WCHAR DeviceKey[128];
  2803. } DISPLAY_DEVICEW,*PDISPLAY_DEVICEW,*LPDISPLAY_DEVICEW;
  2804. DECL_WINELIB_TYPE_AW(DISPLAY_DEVICE)
  2805. DECL_WINELIB_TYPE_AW(PDISPLAY_DEVICE)
  2806. DECL_WINELIB_TYPE_AW(LPDISPLAY_DEVICE)
  2807. /* DISPLAY_DEVICE.StateFlags (?)*/
  2808. #define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP 0x00000001
  2809. #define DISPLAY_DEVICE_MULTI_DRIVER 0x00000002
  2810. #define DISPLAY_DEVICE_PRIMARY_DEVICE 0x00000004
  2811. #define DISPLAY_DEVICE_MIRRORING_DRIVER 0x00000008
  2812. #define DISPLAY_DEVICE_VGA_COMPATIBLE 0x00000010
  2813. typedef USHORT COLOR16;
  2814. typedef struct _TRIVERTEX
  2815. {
  2816. LONG x;
  2817. LONG y;
  2818. COLOR16 Red;
  2819. COLOR16 Green;
  2820. COLOR16 Blue;
  2821. COLOR16 Alpha;
  2822. } TRIVERTEX, *PTRIVERTEX, *LPTRIVERTEX;
  2823. typedef struct _GRADIENT_TRIANGLE
  2824. {
  2825. ULONG Vertex1;
  2826. ULONG Vertex2;
  2827. ULONG Vertex3;
  2828. } GRADIENT_TRIANGLE, *PGRADIENT_TRIANGLE, *LPGRADIENT_TRIANGLE;
  2829. typedef struct _GRADIENT_RECT
  2830. {
  2831. ULONG UpperLeft;
  2832. ULONG LowerRight;
  2833. } GRADIENT_RECT, *PGRADIENT_RECT, *LPGRADIENT_RECT;
  2834. #define AC_SRC_OVER 0x00
  2835. #define AC_SRC_ALPHA 0x01
  2836. typedef struct _BLENDFUNCTION
  2837. {
  2838. BYTE BlendOp;
  2839. BYTE BlendFlags;
  2840. BYTE SourceConstantAlpha;
  2841. BYTE AlphaFormat;
  2842. } BLENDFUNCTION, *PBLENDFUNCTION;
  2843. #define GRADIENT_FILL_RECT_H 0x00000000
  2844. #define GRADIENT_FILL_RECT_V 0x00000001
  2845. #define GRADIENT_FILL_TRIANGLE 0x00000002
  2846. #define GRADIENT_FILL_OP_FLAG 0x000000ff
  2847. #define GDI_ERROR (0xFFFFFFFFL)
  2848. #define HGDI_ERROR ((HANDLE)0xFFFFFFFFL)
  2849. /* AddFontResourceEx flags */
  2850. #define FR_PRIVATE 0x10
  2851. #define FR_NOT_ENUM 0x20
  2852. /* Mirroring flags */
  2853. #define LAYOUT_LTR 0x00000000
  2854. #define LAYOUT_RTL 0x00000001
  2855. #define LAYOUT_BITMAPORIENTATIONPRESERVED 0x00000008
  2856. #define NOMIRRORBITMAP 0x80000000
  2857. INT WINAPI AbortDoc(HDC);
  2858. BOOL WINAPI AbortPath(HDC);
  2859. INT WINAPI AddFontResourceA(LPCSTR);
  2860. INT WINAPI AddFontResourceW(LPCWSTR);
  2861. #define AddFontResource WINELIB_NAME_AW(AddFontResource)
  2862. INT WINAPI AddFontResourceExA(LPCSTR, DWORD, PVOID);
  2863. INT WINAPI AddFontResourceExW(LPCWSTR, DWORD, PVOID);
  2864. #define AddFontResourceEx WINELIB_NAME_AW(AddFontResourceEx)
  2865. BOOL WINAPI AlphaBlend(HDC,int,int,int,int,HDC,int,int,int,int,BLENDFUNCTION);
  2866. BOOL WINAPI AngleArc(HDC, INT, INT, DWORD, FLOAT, FLOAT);
  2867. BOOL WINAPI AnimatePalette(HPALETTE,UINT,UINT,const PALETTEENTRY*);
  2868. BOOL WINAPI Arc(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
  2869. BOOL WINAPI ArcTo(HDC, INT, INT, INT, INT, INT, INT, INT, INT);
  2870. BOOL WINAPI BeginPath(HDC);
  2871. BOOL WINAPI BitBlt(HDC,INT,INT,INT,INT,HDC,INT,INT,DWORD);
  2872. INT WINAPI ChoosePixelFormat(HDC,const PIXELFORMATDESCRIPTOR*);
  2873. BOOL WINAPI Chord(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
  2874. HENHMETAFILE WINAPI CloseEnhMetaFile(HDC);
  2875. BOOL WINAPI CloseFigure(HDC);
  2876. HMETAFILE WINAPI CloseMetaFile(HDC);
  2877. INT WINAPI CombineRgn(HRGN,HRGN,HRGN,INT);
  2878. BOOL WINAPI CombineTransform(LPXFORM,const XFORM *,const XFORM *);
  2879. HENHMETAFILE WINAPI CopyEnhMetaFileA(HENHMETAFILE,LPCSTR);
  2880. HENHMETAFILE WINAPI CopyEnhMetaFileW(HENHMETAFILE,LPCWSTR);
  2881. #define CopyEnhMetaFile WINELIB_NAME_AW(CopyEnhMetaFile)
  2882. HMETAFILE WINAPI CopyMetaFileA(HMETAFILE,LPCSTR);
  2883. HMETAFILE WINAPI CopyMetaFileW(HMETAFILE,LPCWSTR);
  2884. #define CopyMetaFile WINELIB_NAME_AW(CopyMetaFile)
  2885. HBITMAP WINAPI CreateBitmap(INT,INT,UINT,UINT,LPCVOID);
  2886. HBITMAP WINAPI CreateBitmapIndirect(const BITMAP*);
  2887. HBRUSH WINAPI CreateBrushIndirect(const LOGBRUSH*);
  2888. HCOLORSPACE WINAPI CreateColorSpaceA(LPLOGCOLORSPACEA);
  2889. HCOLORSPACE WINAPI CreateColorSpaceW(LPLOGCOLORSPACEW);
  2890. #define CreateColorSpace WINELIB_NAME_AW(CreateColorSpace)
  2891. HBITMAP WINAPI CreateCompatibleBitmap(HDC,INT,INT);
  2892. HDC WINAPI CreateCompatibleDC(HDC);
  2893. HDC WINAPI CreateDCA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
  2894. HDC WINAPI CreateDCW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*);
  2895. #define CreateDC WINELIB_NAME_AW(CreateDC)
  2896. HBITMAP WINAPI CreateDIBitmap(HDC,const BITMAPINFOHEADER*,DWORD,
  2897. LPCVOID,const BITMAPINFO*,UINT);
  2898. HBRUSH WINAPI CreateDIBPatternBrush(HGLOBAL,UINT);
  2899. HBRUSH WINAPI CreateDIBPatternBrushPt(const void*,UINT);
  2900. HBITMAP WINAPI CreateDIBSection(HDC, CONST BITMAPINFO *, UINT,
  2901. VOID **, HANDLE, DWORD offset);
  2902. HBITMAP WINAPI CreateDiscardableBitmap(HDC,INT,INT);
  2903. HRGN WINAPI CreateEllipticRgn(INT,INT,INT,INT);
  2904. HRGN WINAPI CreateEllipticRgnIndirect(const RECT *);
  2905. HDC WINAPI CreateEnhMetaFileA(HDC,LPCSTR,const RECT*,LPCSTR);
  2906. HDC WINAPI CreateEnhMetaFileW(HDC,LPCWSTR,const RECT*,LPCWSTR);
  2907. #define CreateEnhMetaFile WINELIB_NAME_AW(CreateEnhMetaFile)
  2908. HFONT WINAPI CreateFontA(INT,INT,INT,INT,INT,DWORD,DWORD,
  2909. DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCSTR);
  2910. HFONT WINAPI CreateFontW(INT,INT,INT,INT,INT,DWORD,DWORD,
  2911. DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCWSTR);
  2912. #define CreateFont WINELIB_NAME_AW(CreateFont)
  2913. HFONT WINAPI CreateFontIndirectA(const LOGFONTA*);
  2914. HFONT WINAPI CreateFontIndirectW(const LOGFONTW*);
  2915. #define CreateFontIndirect WINELIB_NAME_AW(CreateFontIndirect)
  2916. HPALETTE WINAPI CreateHalftonePalette(HDC);
  2917. HBRUSH WINAPI CreateHatchBrush(INT,COLORREF);
  2918. HDC WINAPI CreateICA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
  2919. HDC WINAPI CreateICW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*);
  2920. #define CreateIC WINELIB_NAME_AW(CreateIC)
  2921. HDC WINAPI CreateMetaFileA(LPCSTR);
  2922. HDC WINAPI CreateMetaFileW(LPCWSTR);
  2923. #define CreateMetaFile WINELIB_NAME_AW(CreateMetaFile)
  2924. HPALETTE WINAPI CreatePalette(const LOGPALETTE*);
  2925. HBRUSH WINAPI CreatePatternBrush(HBITMAP);
  2926. HPEN WINAPI CreatePen(INT,INT,COLORREF);
  2927. HPEN WINAPI CreatePenIndirect(const LOGPEN*);
  2928. HRGN WINAPI CreatePolyPolygonRgn(const POINT*,const INT*,INT,INT);
  2929. HRGN WINAPI CreatePolygonRgn(const POINT*,INT,INT);
  2930. HRGN WINAPI CreateRectRgn(INT,INT,INT,INT);
  2931. HRGN WINAPI CreateRectRgnIndirect(const RECT*);
  2932. HRGN WINAPI CreateRoundRectRgn(INT,INT,INT,INT,INT,INT);
  2933. BOOL WINAPI CreateScalableFontResourceA(DWORD,LPCSTR,LPCSTR,LPCSTR);
  2934. BOOL WINAPI CreateScalableFontResourceW(DWORD,LPCWSTR,LPCWSTR,LPCWSTR);
  2935. #define CreateScalableFontResource WINELIB_NAME_AW(CreateScalableFontResource)
  2936. HBRUSH WINAPI CreateSolidBrush(COLORREF);
  2937. BOOL WINAPI DPtoLP(HDC,LPPOINT,INT);
  2938. BOOL WINAPI DeleteColorSpace(HCOLORSPACE);
  2939. BOOL WINAPI DeleteDC(HDC);
  2940. BOOL WINAPI DeleteEnhMetaFile(HENHMETAFILE);
  2941. BOOL WINAPI DeleteMetaFile(HMETAFILE);
  2942. BOOL WINAPI DeleteObject(HGDIOBJ);
  2943. INT WINAPI DescribePixelFormat(HDC,int,UINT,
  2944. LPPIXELFORMATDESCRIPTOR);
  2945. INT WINAPI DrawEscape(HDC,INT,INT,LPCSTR);
  2946. BOOL WINAPI Ellipse(HDC,INT,INT,INT,INT);
  2947. INT WINAPI EndDoc(HDC);
  2948. BOOL WINAPI EndPath(HDC);
  2949. BOOL WINAPI EnumEnhMetaFile(HDC,HENHMETAFILE,ENHMFENUMPROC,LPVOID,const RECT*);
  2950. INT WINAPI EnumFontFamiliesA(HDC,LPCSTR,FONTENUMPROCA,LPARAM);
  2951. INT WINAPI EnumFontFamiliesW(HDC,LPCWSTR,FONTENUMPROCW,LPARAM);
  2952. #define EnumFontFamilies WINELIB_NAME_AW(EnumFontFamilies)
  2953. INT WINAPI EnumFontFamiliesExA(HDC,LPLOGFONTA,FONTENUMPROCA,LPARAM,DWORD);
  2954. INT WINAPI EnumFontFamiliesExW(HDC,LPLOGFONTW,FONTENUMPROCW,LPARAM,DWORD);
  2955. #define EnumFontFamiliesEx WINELIB_NAME_AW(EnumFontFamiliesEx)
  2956. INT WINAPI EnumFontsA(HDC,LPCSTR,FONTENUMPROCA,LPARAM);
  2957. INT WINAPI EnumFontsW(HDC,LPCWSTR,FONTENUMPROCW,LPARAM);
  2958. #define EnumFonts WINELIB_NAME_AW(EnumFonts)
  2959. INT WINAPI EnumICMProfilesA(HDC,ICMENUMPROCA,LPARAM);
  2960. INT WINAPI EnumICMProfilesW(HDC,ICMENUMPROCW,LPARAM);
  2961. #define EnumICMProfiles WINELIB_NAME_AW(EnumICMProfiles)
  2962. BOOL WINAPI EnumMetaFile(HDC,HMETAFILE,MFENUMPROC,LPARAM);
  2963. INT WINAPI EnumObjects(HDC,INT,GOBJENUMPROC,LPARAM);
  2964. BOOL WINAPI EqualRgn(HRGN,HRGN);
  2965. INT WINAPI Escape(HDC,INT,INT,LPCSTR,LPVOID);
  2966. INT WINAPI ExcludeClipRect(HDC,INT,INT,INT,INT);
  2967. HPEN WINAPI ExtCreatePen(DWORD,DWORD,const LOGBRUSH*,DWORD,const DWORD*);
  2968. HRGN WINAPI ExtCreateRegion(const XFORM*,DWORD,const RGNDATA*);
  2969. INT WINAPI ExtEscape(HDC,INT,INT,LPCSTR,INT,LPSTR);
  2970. BOOL WINAPI ExtFloodFill(HDC,INT,INT,COLORREF,UINT);
  2971. INT WINAPI ExtSelectClipRgn(HDC,HRGN,INT);
  2972. BOOL WINAPI ExtTextOutA(HDC,INT,INT,UINT,const RECT*,
  2973. LPCSTR,UINT,const INT*);
  2974. BOOL WINAPI ExtTextOutW(HDC,INT,INT,UINT,const RECT*,
  2975. LPCWSTR,UINT,const INT*);
  2976. #define ExtTextOut WINELIB_NAME_AW(ExtTextOut)
  2977. BOOL WINAPI FillPath(HDC);
  2978. BOOL WINAPI FillRgn(HDC,HRGN,HBRUSH);
  2979. BOOL WINAPI FixBrushOrgEx(HDC,INT,INT,LPPOINT);
  2980. BOOL WINAPI FlattenPath(HDC);
  2981. BOOL WINAPI FloodFill(HDC,INT,INT,COLORREF);
  2982. BOOL WINAPI FrameRgn(HDC,HRGN,HBRUSH,INT,INT);
  2983. BOOL WINAPI GdiComment(HDC,UINT,const BYTE *);
  2984. DEVMODEW * WINAPI GdiConvertToDevmodeW(const DEVMODEA *);
  2985. BOOL WINAPI GdiFlush(void);
  2986. INT WINAPI GetArcDirection(HDC);
  2987. BOOL WINAPI GetAspectRatioFilterEx(HDC,LPSIZE);
  2988. LONG WINAPI GetBitmapBits(HBITMAP,LONG,LPVOID);
  2989. BOOL WINAPI GetBitmapDimensionEx(HBITMAP,LPSIZE);
  2990. BOOL WINAPI GetBrushOrgEx(HDC,LPPOINT);
  2991. COLORREF WINAPI GetBkColor(HDC);
  2992. INT WINAPI GetBkMode(HDC);
  2993. UINT WINAPI GetBoundsRect(HDC,LPRECT,UINT);
  2994. BOOL WINAPI GetCharABCWidthsA(HDC,UINT,UINT,LPABC);
  2995. BOOL WINAPI GetCharABCWidthsW(HDC,UINT,UINT,LPABC);
  2996. #define GetCharABCWidths WINELIB_NAME_AW(GetCharABCWidths)
  2997. BOOL WINAPI GetCharABCWidthsFloatA(HDC,UINT,UINT,LPABCFLOAT);
  2998. BOOL WINAPI GetCharABCWidthsFloatW(HDC,UINT,UINT,LPABCFLOAT);
  2999. #define GetCharABCWidthsFloat WINELIB_NAME_AW(GetCharABCWidthsFloat)
  3000. DWORD WINAPI GetCharacterPlacementA(HDC,LPCSTR,INT,INT,GCP_RESULTSA*,DWORD);
  3001. DWORD WINAPI GetCharacterPlacementW(HDC,LPCWSTR,INT,INT,GCP_RESULTSW*,DWORD);
  3002. #define GetCharacterPlacement WINELIB_NAME_AW(GetCharacterPlacement)
  3003. BOOL WINAPI GetCharWidth32A(HDC,UINT,UINT,LPINT);
  3004. BOOL WINAPI GetCharWidth32W(HDC,UINT,UINT,LPINT);
  3005. #define GetCharWidth32 WINELIB_NAME_AW(GetCharWidth32)
  3006. BOOL WINAPI GetCharWidthA(HDC,UINT,UINT,LPINT);
  3007. BOOL WINAPI GetCharWidthW(HDC,UINT,UINT,LPINT);
  3008. #define GetCharWidth WINELIB_NAME_AW(GetCharWidth)
  3009. BOOL WINAPI GetCharWidthFloatA(HDC,UINT,UINT,PFLOAT);
  3010. BOOL WINAPI GetCharWidthFloatW(HDC,UINT,UINT,PFLOAT);
  3011. #define GetCharWidthFloat WINELIB_NAME_AW(GetCharWidthFloat)
  3012. INT WINAPI GetClipBox(HDC,LPRECT);
  3013. INT WINAPI GetClipRgn(HDC,HRGN);
  3014. BOOL WINAPI GetColorAdjustment(HDC, LPCOLORADJUSTMENT);
  3015. HGDIOBJ WINAPI GetCurrentObject(HDC,UINT);
  3016. BOOL WINAPI GetCurrentPositionEx(HDC,LPPOINT);
  3017. INT WINAPI GetDeviceCaps(HDC,INT);
  3018. BOOL WINAPI GetDeviceGammaRamp(HDC,LPVOID);
  3019. COLORREF WINAPI GetDCBrushColor(HDC);
  3020. BOOL WINAPI GetDCOrgEx(HDC,LPPOINT);
  3021. COLORREF WINAPI GetDCPenColor(HDC);
  3022. UINT WINAPI GetDIBColorTable(HDC,UINT,UINT,RGBQUAD*);
  3023. INT WINAPI GetDIBits(HDC,HBITMAP,UINT,UINT,LPVOID,LPBITMAPINFO,UINT);
  3024. HENHMETAFILE WINAPI GetEnhMetaFileA(LPCSTR);
  3025. HENHMETAFILE WINAPI GetEnhMetaFileW(LPCWSTR);
  3026. #define GetEnhMetaFile WINELIB_NAME_AW(GetEnhMetaFile)
  3027. UINT WINAPI GetEnhMetaFileBits(HENHMETAFILE,UINT,LPBYTE);
  3028. UINT WINAPI GetEnhMetaFileDescriptionA(HENHMETAFILE,UINT,LPSTR);
  3029. UINT WINAPI GetEnhMetaFileDescriptionW(HENHMETAFILE,UINT,LPWSTR);
  3030. #define GetEnhMetaFileDescription WINELIB_NAME_AW(GetEnhMetaFileDescription)
  3031. UINT WINAPI GetEnhMetaFileHeader(HENHMETAFILE,UINT,LPENHMETAHEADER);
  3032. UINT WINAPI GetEnhMetaFilePaletteEntries(HENHMETAFILE,UINT,LPPALETTEENTRY);
  3033. DWORD WINAPI GetFontData(HDC,DWORD,DWORD,LPVOID,DWORD);
  3034. DWORD WINAPI GetFontLanguageInfo(HDC);
  3035. DWORD WINAPI GetGlyphIndicesA(HDC,LPCSTR,INT,LPWORD,DWORD);
  3036. DWORD WINAPI GetGlyphIndicesW(HDC,LPCWSTR,INT,LPWORD,DWORD);
  3037. #define GetGlyphIndices WINELIB_NAME_AW(GetGlyphIndices)
  3038. DWORD WINAPI GetGlyphOutlineA(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,LPVOID,const MAT2*);
  3039. DWORD WINAPI GetGlyphOutlineW(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,LPVOID,const MAT2*);
  3040. #define GetGlyphOutline WINELIB_NAME_AW(GetGlyphOutline)
  3041. INT WINAPI GetGraphicsMode(HDC);
  3042. BOOL WINAPI GetICMProfileA(HDC,LPDWORD,LPSTR);
  3043. BOOL WINAPI GetICMProfileW(HDC,LPDWORD,LPWSTR);
  3044. #define GetICMProfile WINELIB_NAME_AW(GetICMProfile)
  3045. DWORD WINAPI GetKerningPairsA(HDC,DWORD,LPKERNINGPAIR);
  3046. DWORD WINAPI GetKerningPairsW(HDC,DWORD,LPKERNINGPAIR);
  3047. #define GetKerningPairs WINELIB_NAME_AW(GetKerningPairs)
  3048. DWORD WINAPI GetLayout(HDC);
  3049. BOOL WINAPI GetLogColorSpaceA(HCOLORSPACE,LPLOGCOLORSPACEA,DWORD);
  3050. BOOL WINAPI GetLogColorSpaceW(HCOLORSPACE,LPLOGCOLORSPACEW,DWORD);
  3051. #define GetLogColorSpace WINELIB_NAME_AW(GetLogColorSpace)
  3052. INT WINAPI GetMapMode(HDC);
  3053. HMETAFILE WINAPI GetMetaFileA(LPCSTR);
  3054. HMETAFILE WINAPI GetMetaFileW(LPCWSTR);
  3055. #define GetMetaFile WINELIB_NAME_AW(GetMetaFile)
  3056. UINT WINAPI GetMetaFileBitsEx(HMETAFILE,UINT,LPVOID);
  3057. INT WINAPI GetMetaRgn(HDC,HRGN);
  3058. BOOL WINAPI GetMiterLimit(HDC, PFLOAT);
  3059. DWORD WINAPI GetNearestColor(HDC,DWORD);
  3060. UINT WINAPI GetNearestPaletteIndex(HPALETTE,COLORREF);
  3061. INT WINAPI GetObjectA(HGDIOBJ,INT,LPVOID);
  3062. INT WINAPI GetObjectW(HGDIOBJ,INT,LPVOID);
  3063. #define GetObject WINELIB_NAME_AW(GetObject)
  3064. DWORD WINAPI GetObjectType(HGDIOBJ);
  3065. UINT WINAPI GetOutlineTextMetricsA(HDC,UINT,LPOUTLINETEXTMETRICA);
  3066. UINT WINAPI GetOutlineTextMetricsW(HDC,UINT,LPOUTLINETEXTMETRICW);
  3067. #define GetOutlineTextMetrics WINELIB_NAME_AW(GetOutlineTextMetrics)
  3068. UINT WINAPI GetPaletteEntries(HPALETTE,UINT,UINT,LPPALETTEENTRY);
  3069. INT WINAPI GetPath(HDC,LPPOINT,LPBYTE,INT);
  3070. COLORREF WINAPI GetPixel(HDC,INT,INT);
  3071. INT WINAPI GetPixelFormat(HDC);
  3072. INT WINAPI GetPolyFillMode(HDC);
  3073. INT WINAPI GetRandomRgn(HDC,HRGN,INT);
  3074. BOOL WINAPI GetRasterizerCaps(LPRASTERIZER_STATUS,UINT);
  3075. DWORD WINAPI GetRegionData(HRGN,DWORD,LPRGNDATA);
  3076. INT WINAPI GetRelAbs(HDC,DWORD);
  3077. INT WINAPI GetRgnBox(HRGN,LPRECT);
  3078. INT WINAPI GetROP2(HDC);
  3079. HGDIOBJ WINAPI GetStockObject(INT);
  3080. INT WINAPI GetStretchBltMode(HDC);
  3081. UINT WINAPI GetSystemPaletteEntries(HDC,UINT,UINT,LPPALETTEENTRY);
  3082. UINT WINAPI GetSystemPaletteUse(HDC);
  3083. UINT WINAPI GetTextAlign(HDC);
  3084. INT WINAPI GetTextCharacterExtra(HDC);
  3085. UINT WINAPI GetTextCharset(HDC);
  3086. UINT WINAPI GetTextCharsetInfo(HDC,LPFONTSIGNATURE,DWORD);
  3087. COLORREF WINAPI GetTextColor(HDC);
  3088. BOOL WINAPI GetTextExtentExPointA(HDC,LPCSTR,INT,INT,
  3089. LPINT,LPINT,LPSIZE);
  3090. BOOL WINAPI GetTextExtentExPointW(HDC,LPCWSTR,INT,INT,
  3091. LPINT,LPINT,LPSIZE);
  3092. #define GetTextExtentExPoint WINELIB_NAME_AW(GetTextExtentExPoint)
  3093. BOOL WINAPI GetTextExtentPointA(HDC,LPCSTR,INT,LPSIZE);
  3094. BOOL WINAPI GetTextExtentPointW(HDC,LPCWSTR,INT,LPSIZE);
  3095. #define GetTextExtentPoint WINELIB_NAME_AW(GetTextExtentPoint)
  3096. BOOL WINAPI GetTextExtentPoint32A(HDC,LPCSTR,INT,LPSIZE);
  3097. BOOL WINAPI GetTextExtentPoint32W(HDC,LPCWSTR,INT,LPSIZE);
  3098. #define GetTextExtentPoint32 WINELIB_NAME_AW(GetTextExtentPoint32)
  3099. BOOL WINAPI GetTextExtentExPointI(HDC,const WORD*,INT,INT,LPINT,LPINT,LPSIZE);
  3100. BOOL WINAPI GetTextExtentPointI(HDC,const WORD*,INT,LPSIZE);
  3101. INT WINAPI GetTextFaceA(HDC,INT,LPSTR);
  3102. INT WINAPI GetTextFaceW(HDC,INT,LPWSTR);
  3103. #define GetTextFace WINELIB_NAME_AW(GetTextFace)
  3104. BOOL WINAPI GetTextMetricsA(HDC,LPTEXTMETRICA);
  3105. BOOL WINAPI GetTextMetricsW(HDC,LPTEXTMETRICW);
  3106. #define GetTextMetrics WINELIB_NAME_AW(GetTextMetrics)
  3107. BOOL WINAPI GetViewportExtEx(HDC,LPSIZE);
  3108. BOOL WINAPI GetViewportOrgEx(HDC,LPPOINT);
  3109. BOOL WINAPI GetWindowExtEx(HDC,LPSIZE);
  3110. BOOL WINAPI GetWindowOrgEx(HDC,LPPOINT);
  3111. UINT WINAPI GetWinMetaFileBits(HENHMETAFILE,UINT,LPBYTE,INT,HDC);
  3112. BOOL WINAPI GetWorldTransform(HDC,LPXFORM);
  3113. BOOL WINAPI GradientFill(HDC,PTRIVERTEX,ULONG,PVOID,ULONG,ULONG);
  3114. INT WINAPI IntersectClipRect(HDC,INT,INT,INT,INT);
  3115. BOOL WINAPI InvertRgn(HDC,HRGN);
  3116. BOOL WINAPI LineDDA(INT,INT,INT,INT,LINEDDAPROC,LPARAM);
  3117. BOOL WINAPI LineTo(HDC,INT,INT);
  3118. BOOL WINAPI LPtoDP(HDC,LPPOINT,INT);
  3119. BOOL WINAPI MaskBlt(HDC,INT,INT,INT,INT,HDC,INT,INT,HBITMAP,INT,INT,DWORD);
  3120. BOOL WINAPI ModifyWorldTransform(HDC,const XFORM *, DWORD);
  3121. BOOL WINAPI MoveToEx(HDC,INT,INT,LPPOINT);
  3122. INT WINAPI OffsetClipRgn(HDC,INT,INT);
  3123. INT WINAPI OffsetRgn(HRGN,INT,INT);
  3124. BOOL WINAPI OffsetViewportOrgEx(HDC,INT,INT,LPPOINT);
  3125. BOOL WINAPI OffsetWindowOrgEx(HDC,INT,INT,LPPOINT);
  3126. BOOL WINAPI PaintRgn(HDC,HRGN);
  3127. BOOL WINAPI PatBlt(HDC,INT,INT,INT,INT,DWORD);
  3128. HRGN WINAPI PathToRegion(HDC);
  3129. BOOL WINAPI Pie(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
  3130. BOOL WINAPI PlayEnhMetaFile(HDC,HENHMETAFILE,const RECT*);
  3131. BOOL WINAPI PlayEnhMetaFileRecord(HDC,LPHANDLETABLE,const ENHMETARECORD*,UINT);
  3132. BOOL WINAPI PlayMetaFile(HDC,HMETAFILE);
  3133. BOOL WINAPI PlayMetaFileRecord(HDC,LPHANDLETABLE,LPMETARECORD,UINT);
  3134. BOOL WINAPI PlgBlt(HDC,const POINT*,HDC,INT,INT,INT,INT,HBITMAP,INT,INT);
  3135. BOOL WINAPI PolyBezier(HDC,const POINT*,DWORD);
  3136. BOOL WINAPI PolyBezierTo(HDC,const POINT*,DWORD);
  3137. BOOL WINAPI PolyDraw(HDC,const POINT*,const BYTE*,DWORD);
  3138. BOOL WINAPI PolyPolygon(HDC,const POINT*,const INT*,UINT);
  3139. BOOL WINAPI PolyPolyline(HDC,const POINT*,const DWORD*,DWORD);
  3140. BOOL WINAPI Polygon(HDC,const POINT*,INT);
  3141. BOOL WINAPI Polyline(HDC,const POINT*,INT);
  3142. BOOL WINAPI PolylineTo(HDC,const POINT*,DWORD);
  3143. BOOL WINAPI PtInRegion(HRGN,INT,INT);
  3144. BOOL WINAPI PtVisible(HDC,INT,INT);
  3145. UINT WINAPI RealizePalette(HDC);
  3146. BOOL WINAPI Rectangle(HDC,INT,INT,INT,INT);
  3147. BOOL WINAPI RectInRegion(HRGN,const RECT *);
  3148. BOOL WINAPI RectVisible(HDC,const RECT*);
  3149. BOOL WINAPI RemoveFontResourceA(LPCSTR);
  3150. BOOL WINAPI RemoveFontResourceW(LPCWSTR);
  3151. #define RemoveFontResource WINELIB_NAME_AW(RemoveFontResource)
  3152. BOOL WINAPI RemoveFontResourceExA(LPCSTR, DWORD, PVOID);
  3153. BOOL WINAPI RemoveFontResourceExW(LPCWSTR, DWORD, PVOID);
  3154. #define RemoveFontResourceEx WINELIB_NAME_AW(RemoveFontResourceEx)
  3155. HDC WINAPI ResetDCA(HDC,const DEVMODEA *);
  3156. HDC WINAPI ResetDCW(HDC,const DEVMODEW *);
  3157. #define ResetDC WINELIB_NAME_AW(ResetDC)
  3158. BOOL WINAPI ResizePalette(HPALETTE,UINT);
  3159. BOOL WINAPI RestoreDC(HDC,INT);
  3160. BOOL WINAPI RoundRect(HDC,INT,INT,INT,INT,INT,INT);
  3161. INT WINAPI SaveDC(HDC);
  3162. BOOL WINAPI ScaleViewportExtEx(HDC,INT,INT,INT,INT,LPSIZE);
  3163. BOOL WINAPI ScaleWindowExtEx(HDC,INT,INT,INT,INT,LPSIZE);
  3164. BOOL WINAPI SelectClipPath(HDC,INT);
  3165. INT WINAPI SelectClipRgn(HDC,HRGN);
  3166. HGDIOBJ WINAPI SelectObject(HDC,HGDIOBJ);
  3167. HPALETTE WINAPI SelectPalette(HDC,HPALETTE,BOOL);
  3168. INT WINAPI SetAbortProc(HDC,ABORTPROC);
  3169. INT WINAPI SetArcDirection(HDC,INT);
  3170. LONG WINAPI SetBitmapBits(HBITMAP,LONG,LPCVOID);
  3171. BOOL WINAPI SetBitmapDimensionEx(HBITMAP,INT,INT,LPSIZE);
  3172. COLORREF WINAPI SetBkColor(HDC,COLORREF);
  3173. INT WINAPI SetBkMode(HDC,INT);
  3174. UINT WINAPI SetBoundsRect(HDC,const RECT*,UINT);
  3175. BOOL WINAPI SetBrushOrgEx(HDC,INT,INT,LPPOINT);
  3176. BOOL WINAPI SetColorAdjustment(HDC,const COLORADJUSTMENT*);
  3177. HCOLORSPACE WINAPI SetColorSpace(HDC,HCOLORSPACE);
  3178. BOOL WINAPI SetDeviceGammaRamp(HDC,LPVOID);
  3179. COLORREF WINAPI SetDCBrushColor(HDC,COLORREF);
  3180. COLORREF WINAPI SetDCPenColor(HDC, COLORREF);
  3181. UINT WINAPI SetDIBColorTable(HDC,UINT,UINT,CONST RGBQUAD*);
  3182. INT WINAPI SetDIBits(HDC,HBITMAP,UINT,UINT,LPCVOID,const BITMAPINFO*,UINT);
  3183. INT WINAPI SetDIBitsToDevice(HDC,INT,INT,DWORD,DWORD,INT,
  3184. INT,UINT,UINT,LPCVOID,const BITMAPINFO*,UINT);
  3185. HENHMETAFILE WINAPI SetEnhMetaFileBits(UINT,const BYTE *);
  3186. INT WINAPI SetGraphicsMode(HDC,INT);
  3187. INT WINAPI SetICMMode(HDC,INT);
  3188. BOOL WINAPI SetICMProfileA(HDC,LPSTR);
  3189. BOOL WINAPI SetICMProfileW(HDC,LPWSTR);
  3190. #define SetICMProfile WINELIB_NAME_AW(SetICMProfile)
  3191. DWORD WINAPI SetLayout(HDC,DWORD);
  3192. INT WINAPI SetMapMode(HDC,INT);
  3193. DWORD WINAPI SetMapperFlags(HDC,DWORD);
  3194. HMETAFILE WINAPI SetMetaFileBitsEx(UINT,const BYTE*);
  3195. INT WINAPI SetMetaRgn(HDC);
  3196. BOOL WINAPI SetMiterLimit(HDC, FLOAT, PFLOAT);
  3197. UINT WINAPI SetPaletteEntries(HPALETTE,UINT,UINT,const PALETTEENTRY*);
  3198. COLORREF WINAPI SetPixel(HDC,INT,INT,COLORREF);
  3199. BOOL WINAPI SetPixelV(HDC,INT,INT,COLORREF);
  3200. BOOL WINAPI SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR*);
  3201. INT WINAPI SetPolyFillMode(HDC,INT);
  3202. BOOL WINAPI SetRectRgn(HRGN,INT,INT,INT,INT);
  3203. INT WINAPI SetRelAbs(HDC,INT);
  3204. INT WINAPI SetROP2(HDC,INT);
  3205. INT WINAPI SetStretchBltMode(HDC,INT);
  3206. UINT WINAPI SetSystemPaletteUse(HDC,UINT);
  3207. UINT WINAPI SetTextAlign(HDC,UINT);
  3208. INT WINAPI SetTextCharacterExtra(HDC,INT);
  3209. COLORREF WINAPI SetTextColor(HDC,COLORREF);
  3210. BOOL WINAPI SetTextJustification(HDC,INT,INT);
  3211. BOOL WINAPI SetViewportExtEx(HDC,INT,INT,LPSIZE);
  3212. BOOL WINAPI SetViewportOrgEx(HDC,INT,INT,LPPOINT);
  3213. BOOL WINAPI SetWindowExtEx(HDC,INT,INT,LPSIZE);
  3214. BOOL WINAPI SetWindowOrgEx(HDC,INT,INT,LPPOINT);
  3215. HENHMETAFILE WINAPI SetWinMetaFileBits(UINT,CONST BYTE*,HDC,CONST METAFILEPICT *);
  3216. BOOL WINAPI SetWorldTransform(HDC,const XFORM*);
  3217. INT WINAPI StartDocA(HDC,const DOCINFOA*);
  3218. INT WINAPI StartDocW(HDC,const DOCINFOW*);
  3219. #define StartDoc WINELIB_NAME_AW(StartDoc)
  3220. INT WINAPI StartPage(HDC);
  3221. INT WINAPI EndPage(HDC);
  3222. BOOL WINAPI StretchBlt(HDC,INT,INT,INT,INT,HDC,INT,
  3223. INT,INT,INT,DWORD);
  3224. INT WINAPI StretchDIBits(HDC,INT,INT,INT,INT,INT,INT,
  3225. INT,INT,const VOID*,const BITMAPINFO*,UINT,DWORD);
  3226. BOOL WINAPI StrokeAndFillPath(HDC);
  3227. BOOL WINAPI StrokePath(HDC);
  3228. BOOL WINAPI SwapBuffers(HDC);
  3229. BOOL WINAPI TextOutA(HDC,INT,INT,LPCSTR,INT);
  3230. BOOL WINAPI TextOutW(HDC,INT,INT,LPCWSTR,INT);
  3231. #define TextOut WINELIB_NAME_AW(TextOut)
  3232. BOOL WINAPI TranslateCharsetInfo(LPDWORD,LPCHARSETINFO,DWORD);
  3233. BOOL WINAPI TransparentBlt(HDC,int,int,int,int,HDC,int,int,int,int,UINT);
  3234. BOOL WINAPI UnrealizeObject(HGDIOBJ);
  3235. BOOL WINAPI UpdateColors(HDC);
  3236. BOOL WINAPI UpdateICMRegKeyA(DWORD,LPSTR,LPSTR,UINT);
  3237. BOOL WINAPI UpdateICMRegKeyW(DWORD,LPWSTR,LPWSTR,UINT);
  3238. #define UpdateICMRegKey WINELIB_NAME_AW(UpdateICMRegKey)
  3239. BOOL WINAPI WidenPath(HDC);
  3240. BOOL WINAPI PolyTextOutA(HDC,PPOLYTEXTA,INT);
  3241. BOOL WINAPI PolyTextOutW(HDC,PPOLYTEXTW,INT);
  3242. #define PolyTextOut WINELIB_NAME_AW(PolyTextOut)
  3243. /* These defines are used by wglSwapLayerBuffers */
  3244. #define WGL_SWAP_MAIN_PLANE (1 << 0)
  3245. #define WGL_SWAP_OVERLAY1 (1 << 1)
  3246. #define WGL_SWAP_OVERLAY2 (1 << 2)
  3247. #define WGL_SWAP_OVERLAY3 (1 << 3)
  3248. #define WGL_SWAP_OVERLAY4 (1 << 4)
  3249. #define WGL_SWAP_OVERLAY5 (1 << 5)
  3250. #define WGL_SWAP_OVERLAY6 (1 << 6)
  3251. #define WGL_SWAP_OVERLAY7 (1 << 7)
  3252. #define WGL_SWAP_OVERLAY8 (1 << 8)
  3253. #define WGL_SWAP_OVERLAY9 (1 << 9)
  3254. #define WGL_SWAP_OVERLAY10 (1 << 10)
  3255. #define WGL_SWAP_OVERLAY11 (1 << 11)
  3256. #define WGL_SWAP_OVERLAY12 (1 << 12)
  3257. #define WGL_SWAP_OVERLAY13 (1 << 13)
  3258. #define WGL_SWAP_OVERLAY14 (1 << 14)
  3259. #define WGL_SWAP_OVERLAY15 (1 << 15)
  3260. #define WGL_SWAP_UNDERLAY1 (1 << 16)
  3261. #define WGL_SWAP_UNDERLAY2 (1 << 17)
  3262. #define WGL_SWAP_UNDERLAY3 (1 << 18)
  3263. #define WGL_SWAP_UNDERLAY4 (1 << 19)
  3264. #define WGL_SWAP_UNDERLAY5 (1 << 20)
  3265. #define WGL_SWAP_UNDERLAY6 (1 << 21)
  3266. #define WGL_SWAP_UNDERLAY7 (1 << 22)
  3267. #define WGL_SWAP_UNDERLAY8 (1 << 23)
  3268. #define WGL_SWAP_UNDERLAY9 (1 << 24)
  3269. #define WGL_SWAP_UNDERLAY10 (1 << 25)
  3270. #define WGL_SWAP_UNDERLAY11 (1 << 26)
  3271. #define WGL_SWAP_UNDERLAY12 (1 << 27)
  3272. #define WGL_SWAP_UNDERLAY13 (1 << 28)
  3273. #define WGL_SWAP_UNDERLAY14 (1 << 29)
  3274. #define WGL_SWAP_UNDERLAY15 (1 << 30)
  3275. #ifdef __cplusplus
  3276. }
  3277. #endif
  3278. #endif /* !NOGDI */
  3279. #endif /* _WINGDI_ */