blob: dccba964e771b05793f0574fe05330c3bd03f29b [file] [log] [blame]
Alexandre Julliard0799c1a2002-03-09 23:29:33 +00001/*
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
Francois Gouget6371e832000-10-13 23:12:19 +000019#ifndef _WINGDI_
20#define _WINGDI_
21#ifndef NOGDI
Veksler Michael1346a3c1998-12-15 11:15:35 +000022
Alexandre Julliard73cc3ba1999-03-13 17:12:07 +000023#ifdef __cplusplus
24extern "C" {
25#endif
26
Paul Quinn1beaae51998-12-15 15:38:36 +000027typedef struct _ABCFLOAT {
28 FLOAT abcfA;
29 FLOAT abcfB;
30 FLOAT abcfC;
31} ABCFLOAT, *PABCFLOAT, *LPABCFLOAT;
32
Huw D M Daviesa9f55c41999-05-08 12:45:18 +000033#define FONTMAPPER_MAX 10
Veksler Michael1346a3c1998-12-15 11:15:35 +000034
35typedef struct
36{
37 WORD wFirst;
38 WORD wSecond;
Alexandre Julliarda3960291999-02-26 11:11:13 +000039 INT iKernAmount;
40} KERNINGPAIR, *LPKERNINGPAIR;
Veksler Michael1346a3c1998-12-15 11:15:35 +000041
Veksler Michael1346a3c1998-12-15 11:15:35 +000042typedef struct tagPIXELFORMATDESCRIPTOR {
43 WORD nSize;
44 WORD nVersion;
45 DWORD dwFlags;
46 BYTE iPixelType;
47 BYTE cColorBits;
48 BYTE cRedBits;
49 BYTE cRedShift;
50 BYTE cGreenBits;
51 BYTE cGreenShift;
52 BYTE cBlueBits;
53 BYTE cBlueShift;
54 BYTE cAlphaBits;
55 BYTE cAlphaShift;
56 BYTE cAccumBits;
57 BYTE cAccumRedBits;
58 BYTE cAccumGreenBits;
59 BYTE cAccumBlueBits;
60 BYTE cAccumAlphaBits;
61 BYTE cDepthBits;
62 BYTE cStencilBits;
63 BYTE cAuxBuffers;
64 BYTE iLayerType;
65 BYTE bReserved;
66 DWORD dwLayerMask;
67 DWORD dwVisibleMask;
68 DWORD dwDamageMask;
Francois Gouget6c97e452000-11-10 22:33:45 +000069} PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESCRIPTOR, *LPPIXELFORMATDESCRIPTOR;
Veksler Michael1346a3c1998-12-15 11:15:35 +000070
Huw D M Daviesa9f55c41999-05-08 12:45:18 +000071#define PFD_TYPE_RGBA 0
72#define PFD_TYPE_COLORINDEX 1
73
74#define PFD_MAIN_PLANE 0
75#define PFD_OVERLAY_PLANE 1
76#define PFD_UNDERLAY_PLANE (-1)
77
78#define PFD_DOUBLEBUFFER 0x00000001
79#define PFD_STEREO 0x00000002
80#define PFD_DRAW_TO_WINDOW 0x00000004
81#define PFD_DRAW_TO_BITMAP 0x00000008
82#define PFD_SUPPORT_GDI 0x00000010
83#define PFD_SUPPORT_OPENGL 0x00000020
84#define PFD_GENERIC_FORMAT 0x00000040
85#define PFD_NEED_PALETTE 0x00000080
86#define PFD_NEED_SYSTEM_PALETTE 0x00000100
87#define PFD_SWAP_EXCHANGE 0x00000200
88#define PFD_SWAP_COPY 0x00000400
89#define PFD_SWAP_LAYER_BUFFERS 0x00000800
90#define PFD_GENERIC_ACCELERATED 0x00001000
91
92#define PFD_DEPTH_DONTCARE 0x20000000
93#define PFD_DOUBLEBUFFER_DONTCARE 0x40000000
94#define PFD_STEREO_DONTCARE 0x80000000
95
Paul Quinn1beaae51998-12-15 15:38:36 +000096typedef struct tagCOLORADJUSTMENT
97{
98 WORD caSize;
99 WORD caFlags;
100 WORD caIlluminantIndex;
101 WORD caRedGamma;
102 WORD caGreenGamma;
103 WORD caBlueGamma;
104 WORD caReferenceBlack;
105 WORD caReferenceWhite;
106 SHORT caContrast;
107 SHORT caBrightness;
108 SHORT caColorfulness;
109 SHORT caRedGreenTint;
110} COLORADJUSTMENT, *PCOLORADJUSTMENT, *LPCOLORADJUSTMENT;
Brad Pepers0bdff361999-02-09 15:37:16 +0000111
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000112#define CA_NEGATIVE 0x0001
113#define CA_LOG_FILTER 0x0002
114
115#define ILLUMINANT_DEVICE_DEFAULT 0
116#define ILLUMINANT_A 1
117#define ILLUMINANT_B 2
118#define ILLUMINANT_C 3
119#define ILLUMINANT_D50 4
120#define ILLUMINANT_D55 5
121#define ILLUMINANT_D65 6
122#define ILLUMINANT_D75 7
123#define ILLUMINANT_F2 8
124#define ILLUMINANT_MAX_INDEX ILLUMINANT_F2
125
126#define ILLUMINANT_TUNGSTEN ILLUMINANT_A
Vincent BĂ©ron9a624912002-05-31 23:06:46 +0000127#define ILLUMINANT_DAYLIGHT ILLUMINANT_C
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000128#define ILLUMINANT_FLUORESCENT ILLUMINANT_F2
129#define ILLUMINANT_NTSC ILLUMINANT_C
130
131#define RGB_GAMMA_MIN (WORD)02500
132#define RGB_GAMMA_MAX (WORD)65000
133
134#define REFERENCE_WHITE_MIN (WORD)6000
135#define REFERENCE_WHITE_MAX (WORD)10000
136#define REFERENCE_BLACK_MIN (WORD)0
137#define REFERENCE_BLACK_MAX (WORD)4000
138
139#define COLOR_ADJ_MIN ((SHORT)-100)
140#define COLOR_ADJ_MAX (SHORT) 100
141
Alexandre Julliard73cc3ba1999-03-13 17:12:07 +0000142typedef LONG FXPT16DOT16, *LPFXPT16DOT16;
143typedef LONG FXPT2DOT30, *LPFXPT2DOT30;
144typedef LONG LCSCSTYPE;
145typedef LONG LCSGAMUTMATCH;
146
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000147#define LCS_CALIBRATED_RGB 0x00000000L
148#define LCS_DEVICE_RGB 0x00000001L
149#define LCS_DEVICE_CMYK 0x00000002L
150
151#define LCS_GM_BUSINESS 0x00000001L
152#define LCS_GM_GRAPHICS 0x00000002L
153#define LCS_GM_IMAGES 0x00000004L
154
155#define CM_OUT_OF_GAMUT 255
156#define CM_IN_GAMUT 0
157
Alexandre Julliard73cc3ba1999-03-13 17:12:07 +0000158typedef struct tagCIEXYZ
159{
160 FXPT2DOT30 ciexyzX;
161 FXPT2DOT30 ciexyzY;
162 FXPT2DOT30 ciexyzZ;
163} CIEXYZ, *LPCIEXYZ;
164
165typedef struct tagCIEXYZTRIPLE
166{
167 CIEXYZ ciexyzRed;
168 CIEXYZ ciexyzGreen;
169 CIEXYZ ciexyzBlue;
170} CIEXYZTRIPLE, *LPCIEXYZTRIPLE;
171
172typedef struct tagLOGCOLORSPACEA
173{
174 DWORD lcsSignature;
175 DWORD lcsVersion;
176 DWORD lcsSize;
177 LCSCSTYPE lcsCSType;
178 LCSGAMUTMATCH lcsIntent;
179 CIEXYZTRIPLE lcsEndpoints;
180 DWORD lcsGammaRed;
181 DWORD lcsGammaGreen;
182 DWORD lcsGammaBlue;
Francois Gouget6371e832000-10-13 23:12:19 +0000183 CHAR lcsFilename[MAX_PATH];
Alexandre Julliard73cc3ba1999-03-13 17:12:07 +0000184} LOGCOLORSPACEA, *LPLOGCOLORSPACEA;
185
186 typedef struct tagLOGCOLORSPACEW
187{
188 DWORD lcsSignature;
189 DWORD lcsVersion;
190 DWORD lcsSize;
191 LCSCSTYPE lcsCSType;
192 LCSGAMUTMATCH lcsIntent;
193 CIEXYZTRIPLE lcsEndpoints;
194 DWORD lcsGammaRed;
195 DWORD lcsGammaGreen;
196 DWORD lcsGammaBlue;
Francois Gouget6371e832000-10-13 23:12:19 +0000197 WCHAR lcsFilename[MAX_PATH];
Alexandre Julliard73cc3ba1999-03-13 17:12:07 +0000198} LOGCOLORSPACEW, *LPLOGCOLORSPACEW;
199
200DECL_WINELIB_TYPE_AW(LPLOGCOLORSPACE)
201DECL_WINELIB_TYPE_AW(LOGCOLORSPACE)
202
Brad Pepers0bdff361999-02-09 15:37:16 +0000203#define DC_FIELDS 1
204#define DC_PAPERS 2
205#define DC_PAPERSIZE 3
206#define DC_MINEXTENT 4
207#define DC_MAXEXTENT 5
208#define DC_BINS 6
209#define DC_DUPLEX 7
210#define DC_SIZE 8
211#define DC_EXTRA 9
212#define DC_VERSION 10
213#define DC_DRIVER 11
214#define DC_BINNAMES 12
215#define DC_ENUMRESOLUTIONS 13
216#define DC_FILEDEPENDENCIES 14
217#define DC_TRUETYPE 15
218#define DC_PAPERNAMES 16
219#define DC_ORIENTATION 17
220#define DC_COPIES 18
Alexandre Julliard73cc3ba1999-03-13 17:12:07 +0000221#define DC_BINADJUST 19
222#define DC_EMF_COMPLIANT 20
223#define DC_DATATYPE_PRODUCED 21
224#define DC_COLLATE 22
225#define DC_MANUFACTURER 23
226#define DC_MODEL 24
Huw D M Davies4e877161999-09-03 16:43:56 +0000227#define DC_PERSONALITY 25
228#define DC_PRINTRATE 26
229#define DC_PRINTRATEUNIT 27
230#define DC_PRINTERMEM 28
231#define DC_MEDIAREADY 29
232#define DC_STAPLE 30
233#define DC_PRINTRATEPPM 31
234#define DC_COLORDEVICE 32
235#define DC_NUP 33
Andrew John Hughesf1028ea2003-01-31 03:24:33 +0000236#define DC_MEDIATYPENAMES 34
237#define DC_MEDIATYPES 35
Brad Pepers0bdff361999-02-09 15:37:16 +0000238
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000239#define DCTT_BITMAP 0x00000001L
240#define DCTT_DOWNLOAD 0x00000002L
241#define DCTT_SUBDEV 0x00000004L
242#define DCTT_DOWNLOAD_OUTLINE 0x00000008L
243
244#define DCBA_FACEUPNONE 0x0000
245#define DCBA_FACEUPCENTER 0x0001
246#define DCBA_FACEUPLEFT 0x0002
247#define DCBA_FACEUPRIGHT 0x0003
248#define DCBA_FACEDOWNNONE 0x0100
249#define DCBA_FACEDOWNCENTER 0x0101
250#define DCBA_FACEDOWNLEFT 0x0102
251#define DCBA_FACEDOWNRIGHT 0x0103
252
Huw D M Davies4e877161999-09-03 16:43:56 +0000253#define PRINTRATEUNIT_PPM 1
254#define PRINTRATEUNIT_CPS 2
255#define PRINTRATEUNIT_LPM 3
256#define PRINTRATEUNIT_IPM 4
257
Brad Pepers0bdff361999-02-09 15:37:16 +0000258/* Flag returned from Escape QUERYDIBSUPPORT */
259#define QDI_SETDIBITS 1
260#define QDI_GETDIBITS 2
261#define QDI_DIBTOSCREEN 4
262#define QDI_STRETCHDIB 8
263
264
Brad Pepers0bdff361999-02-09 15:37:16 +0000265/* GDI Escape commands */
266#define NEWFRAME 1
267#define ABORTDOC 2
268#define NEXTBAND 3
269#define SETCOLORTABLE 4
270#define GETCOLORTABLE 5
271#define FLUSHOUTPUT 6
272#define DRAFTMODE 7
273#define QUERYESCSUPPORT 8
274#define SETABORTPROC 9
275#define STARTDOC 10
276#define ENDDOC 11
277#define GETPHYSPAGESIZE 12
278#define GETPRINTINGOFFSET 13
279#define GETSCALINGFACTOR 14
280#define MFCOMMENT 15
281#define GETPENWIDTH 16
282#define SETCOPYCOUNT 17
283#define SELECTPAPERSOURCE 18
284#define DEVICEDATA 19
285#define PASSTHROUGH 19
286#define GETTECHNOLGY 20
287#define GETTECHNOLOGY 20 /* yes, both of them */
288#define SETLINECAP 21
289#define SETLINEJOIN 22
290#define SETMITERLIMIT 23
291#define BANDINFO 24
292#define DRAWPATTERNRECT 25
293#define GETVECTORPENSIZE 26
294#define GETVECTORBRUSHSIZE 27
295#define ENABLEDUPLEX 28
296#define GETSETPAPERBINS 29
297#define GETSETPRINTORIENT 30
298#define ENUMPAPERBINS 31
299#define SETDIBSCALING 32
300#define EPSPRINTING 33
301#define ENUMPAPERMETRICS 34
302#define GETSETPAPERMETRICS 35
303#define POSTSCRIPT_DATA 37
304#define POSTSCRIPT_IGNORE 38
305#define MOUSETRAILS 39
306#define GETDEVICEUNITS 42
307
Jim Aston10141fe1999-04-25 12:31:20 +0000308#define DESKTOPVERTRES 117
309#define DESKTOPHORZRES 118
310
Brad Pepers0bdff361999-02-09 15:37:16 +0000311#define GETEXTENDEDTEXTMETRICS 256
312#define GETEXTENTTABLE 257
313#define GETPAIRKERNTABLE 258
314#define GETTRACKKERNTABLE 259
315#define EXTTEXTOUT 512
316#define GETFACENAME 513
317#define DOWNLOADFACE 514
318#define ENABLERELATIVEWIDTHS 768
319#define ENABLEPAIRKERNING 769
320#define SETKERNTRACK 770
321#define SETALLJUSTVALUES 771
322#define SETCHARSET 772
323
324#define STRETCHBLT 2048
325#define GETSETSCREENPARAMS 3072
326#define QUERYDIBSUPPORT 3073
327#define BEGIN_PATH 4096
328#define CLIP_TO_PATH 4097
329#define END_PATH 4098
330#define EXT_DEVICE_CAPS 4099
331#define RESTORE_CTM 4100
332#define SAVE_CTM 4101
333#define SET_ARC_DIRECTION 4102
334#define SET_BACKGROUND_COLOR 4103
335#define SET_POLY_MODE 4104
336#define SET_SCREEN_ANGLE 4105
337#define SET_SPREAD 4106
338#define TRANSFORM_CTM 4107
339#define SET_CLIP_BOX 4108
340#define SET_BOUNDS 4109
341#define SET_MIRROR_MODE 4110
342#define OPENCHANNEL 4110
343#define DOWNLOADHEADER 4111
344#define CLOSECHANNEL 4112
345#define POSTSCRIPT_PASSTHROUGH 4115
346#define ENCAPSULATED_POSTSCRIPT 4116
Marcus Meissnerf30b0352001-05-08 00:10:52 +0000347#define POSTSCRIPT_IDENTIFY 4117
348#define POSTSCRIPT_INJECTION 4118
349
350/* for POSTSCRIPT_IDENTIFY */
351#define PSIDENT_GDICENTRIC 0
352#define PSIDENT_PSCENTRIC 1
353
Brad Pepers0bdff361999-02-09 15:37:16 +0000354
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000355#define QDI_SETDIBITS 1
356#define QDI_GETDIBITS 2
357#define QDI_DIBTOSCREEN 4
358#define QDI_STRETCHDIB 8
359
Brad Pepers0bdff361999-02-09 15:37:16 +0000360/* Spooler Error Codes */
361#define SP_NOTREPORTED 0x4000
362#define SP_ERROR (-1)
363#define SP_APPABORT (-2)
364#define SP_USERABORT (-3)
365#define SP_OUTOFDISK (-4)
366#define SP_OUTOFMEMORY (-5)
367
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000368#define PR_JOBSTATUS 0
Brad Pepers0bdff361999-02-09 15:37:16 +0000369
Veksler Michael1346a3c1998-12-15 11:15:35 +0000370 /* Raster operations */
371
372#define R2_BLACK 1
373#define R2_NOTMERGEPEN 2
374#define R2_MASKNOTPEN 3
375#define R2_NOTCOPYPEN 4
376#define R2_MASKPENNOT 5
377#define R2_NOT 6
378#define R2_XORPEN 7
379#define R2_NOTMASKPEN 8
380#define R2_MASKPEN 9
381#define R2_NOTXORPEN 10
382#define R2_NOP 11
383#define R2_MERGENOTPEN 12
384#define R2_COPYPEN 13
385#define R2_MERGEPENNOT 14
386#define R2_MERGEPEN 15
387#define R2_WHITE 16
388
Kevin Koltzauf5fc26f2004-02-03 21:29:22 +0000389#define MAKEROP4(fore,back) (DWORD)((((back)<<8)&0xFF000000)|(fore))
390
Veksler Michael1346a3c1998-12-15 11:15:35 +0000391#define SRCCOPY 0xcc0020
392#define SRCPAINT 0xee0086
393#define SRCAND 0x8800c6
394#define SRCINVERT 0x660046
395#define SRCERASE 0x440328
396#define NOTSRCCOPY 0x330008
397#define NOTSRCERASE 0x1100a6
398#define MERGECOPY 0xc000ca
399#define MERGEPAINT 0xbb0226
400#define PATCOPY 0xf00021
401#define PATPAINT 0xfb0a09
402#define PATINVERT 0x5a0049
403#define DSTINVERT 0x550009
404#define BLACKNESS 0x000042
405#define WHITENESS 0xff0062
406
407 /* StretchBlt() modes */
408#define BLACKONWHITE 1
409#define WHITEONBLACK 2
410#define COLORONCOLOR 3
Huw D M Davies7603dea1999-04-25 09:24:23 +0000411#define HALFTONE 4
Vincent BĂ©ron9a624912002-05-31 23:06:46 +0000412#define MAXSTRETCHBLTMODE 4
Veksler Michael1346a3c1998-12-15 11:15:35 +0000413
414#define STRETCH_ANDSCANS BLACKONWHITE
415#define STRETCH_ORSCANS WHITEONBLACK
416#define STRETCH_DELETESCANS COLORONCOLOR
Huw D M Davies7603dea1999-04-25 09:24:23 +0000417#define STRETCH_HALFTONE HALFTONE
Veksler Michael1346a3c1998-12-15 11:15:35 +0000418
419 /* Colors */
420
Warren Baird93a86872003-02-12 01:15:27 +0000421#define RGB(r,g,b) ((COLORREF)((BYTE)(r) | ((BYTE)(g) << 8) | ((BYTE)(b) << 16)))
Veksler Michael1346a3c1998-12-15 11:15:35 +0000422#define PALETTERGB(r,g,b) (0x02000000 | RGB(r,g,b))
423#define PALETTEINDEX(i) ((COLORREF)(0x01000000 | (WORD)(i)))
424
Dimitrie O. Paun643b7c92003-09-11 20:40:57 +0000425#define GetRValue(rgb) ((BYTE) (rgb) )
426#define GetGValue(rgb) ((BYTE) ((rgb) >> 8))
427#define GetBValue(rgb) ((BYTE) ((rgb) >> 16))
Veksler Michael1346a3c1998-12-15 11:15:35 +0000428
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000429#define GetKValue(cmyk) ((BYTE) (cmyk) )
Vincent BĂ©ron95ee2e22002-09-16 22:35:24 +0000430#define GetYValue(cmyk) ((BYTE) ((cmyk) >> 8))
431#define GetMValue(cmyk) ((BYTE) ((cmyk) >> 16))
432#define GetCValue(cmyk) ((BYTE) ((cmyk) >> 24))
Veksler Michael1346a3c1998-12-15 11:15:35 +0000433
Juraj Hercekfc453962002-09-16 19:28:36 +0000434#define CMYK(c,m,y,k) ((COLORREF)((((BYTE)(k)|((WORD)((BYTE)(y))<<8))|(((DWORD)(BYTE)(m))<<16))|(((DWORD)(BYTE)(c))<<24)))
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000435
Marcus Meissner21973112004-01-13 05:20:17 +0000436/* ICM stuff */
Francois Gouget493cf882004-08-22 02:07:13 +0000437typedef INT (CALLBACK *ICMENUMPROCA)(LPSTR lpszFilename,LPARAM lParam);
438typedef INT (CALLBACK *ICMENUMPROCW)(LPWSTR lpszFilename,LPARAM lParam);
Marcus Meissner21973112004-01-13 05:20:17 +0000439DECL_WINELIB_TYPE_AW(ICMENUMPROC)
440
Veksler Michael1346a3c1998-12-15 11:15:35 +0000441
442#define ICM_OFF 1
443#define ICM_ON 2
444#define ICM_QUERY 3
445
446 /* Bounds Accumulation APIs */
447#define DCB_RESET 0x0001
448#define DCB_ACCUMULATE 0x0002
449#define DCB_DIRTY DCB_ACCUMULATE
450#define DCB_SET (DCB_RESET | DCB_ACCUMULATE)
451#define DCB_ENABLE 0x0004
452#define DCB_DISABLE 0x0008
453
Veksler Michael1346a3c1998-12-15 11:15:35 +0000454typedef struct
455{
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000456 LONG paXCount;
457 LONG paYCount;
458 LONG paXExt;
459 LONG paYExt;
460 BYTE paRGBs;
Francois Gouget6c97e452000-11-10 22:33:45 +0000461} PELARRAY, *PPELARRAY, *LPPELARRAY;
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000462
463 /* Bitmaps */
Veksler Michael1346a3c1998-12-15 11:15:35 +0000464
465typedef struct
466{
Alexandre Julliarda3960291999-02-26 11:11:13 +0000467 INT bmType;
468 INT bmWidth;
469 INT bmHeight;
470 INT bmWidthBytes;
Veksler Michael1346a3c1998-12-15 11:15:35 +0000471 WORD bmPlanes;
472 WORD bmBitsPixel;
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000473 LPVOID bmBits;
Francois Gouget6c97e452000-11-10 22:33:45 +0000474} BITMAP, *PBITMAP, *LPBITMAP;
Veksler Michael1346a3c1998-12-15 11:15:35 +0000475
Veksler Michael1346a3c1998-12-15 11:15:35 +0000476
477 /* Brushes */
478
479typedef struct
Vincent BĂ©ron9a624912002-05-31 23:06:46 +0000480{
Alexandre Julliardf4bf9de2005-09-12 11:19:56 +0000481 UINT lbStyle;
Veksler Michael1346a3c1998-12-15 11:15:35 +0000482 COLORREF lbColor;
Alexandre Julliardf4bf9de2005-09-12 11:19:56 +0000483 ULONG_PTR lbHatch;
Francois Gouget6c97e452000-11-10 22:33:45 +0000484} LOGBRUSH, *PLOGBRUSH, *LPLOGBRUSH;
Veksler Michael1346a3c1998-12-15 11:15:35 +0000485
Alexandre Julliardf4bf9de2005-09-12 11:19:56 +0000486typedef struct
487{
488 UINT lbStyle;
489 COLORREF lbColor;
490 ULONG lbHatch;
491} LOGBRUSH32, *PLOGBRUSH32, *LPLOGBRUSH32;
492
Francois Gouget6c97e452000-11-10 22:33:45 +0000493typedef LOGBRUSH PATTERN, *PPATTERN, *LPPATTERN;
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000494
Veksler Michael1346a3c1998-12-15 11:15:35 +0000495
496 /* Brush styles */
497#define BS_SOLID 0
498#define BS_NULL 1
499#define BS_HOLLOW 1
500#define BS_HATCHED 2
501#define BS_PATTERN 3
502#define BS_INDEXED 4
503#define BS_DIBPATTERN 5
504#define BS_DIBPATTERNPT 6
505#define BS_PATTERN8X8 7
506#define BS_DIBPATTERN8X8 8
507#define BS_MONOPATTERN 9
508
509 /* Hatch styles */
510#define HS_HORIZONTAL 0
511#define HS_VERTICAL 1
512#define HS_FDIAGONAL 2
513#define HS_BDIAGONAL 3
514#define HS_CROSS 4
515#define HS_DIAGCROSS 5
516
517 /* Fonts */
518
519#define LF_FACESIZE 32
520#define LF_FULLFACESIZE 64
521
522#define RASTER_FONTTYPE 0x0001
523#define DEVICE_FONTTYPE 0x0002
524#define TRUETYPE_FONTTYPE 0x0004
525
Jon Griffiths39bbcb42004-09-20 19:13:16 +0000526typedef struct tagLOGFONTA
Veksler Michael1346a3c1998-12-15 11:15:35 +0000527{
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000528 LONG lfHeight;
529 LONG lfWidth;
530 LONG lfEscapement;
531 LONG lfOrientation;
532 LONG lfWeight;
Veksler Michael1346a3c1998-12-15 11:15:35 +0000533 BYTE lfItalic;
534 BYTE lfUnderline;
535 BYTE lfStrikeOut;
536 BYTE lfCharSet;
537 BYTE lfOutPrecision;
538 BYTE lfClipPrecision;
539 BYTE lfQuality;
540 BYTE lfPitchAndFamily;
541 CHAR lfFaceName[LF_FACESIZE];
Alexandre Julliard73cc3ba1999-03-13 17:12:07 +0000542} LOGFONTA, *PLOGFONTA, *LPLOGFONTA;
Veksler Michael1346a3c1998-12-15 11:15:35 +0000543
Jon Griffiths39bbcb42004-09-20 19:13:16 +0000544typedef struct tagLOGFONTW
Veksler Michael1346a3c1998-12-15 11:15:35 +0000545{
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000546 LONG lfHeight;
547 LONG lfWidth;
548 LONG lfEscapement;
549 LONG lfOrientation;
550 LONG lfWeight;
Veksler Michael1346a3c1998-12-15 11:15:35 +0000551 BYTE lfItalic;
552 BYTE lfUnderline;
553 BYTE lfStrikeOut;
554 BYTE lfCharSet;
555 BYTE lfOutPrecision;
556 BYTE lfClipPrecision;
557 BYTE lfQuality;
558 BYTE lfPitchAndFamily;
559 WCHAR lfFaceName[LF_FACESIZE];
Alexandre Julliard73cc3ba1999-03-13 17:12:07 +0000560} LOGFONTW, *PLOGFONTW, *LPLOGFONTW;
Veksler Michael1346a3c1998-12-15 11:15:35 +0000561
562DECL_WINELIB_TYPE_AW(LOGFONT)
Alexandre Julliard73cc3ba1999-03-13 17:12:07 +0000563DECL_WINELIB_TYPE_AW(PLOGFONT)
Veksler Michael1346a3c1998-12-15 11:15:35 +0000564DECL_WINELIB_TYPE_AW(LPLOGFONT)
565
566typedef struct
567{
Alexandre Julliarda3960291999-02-26 11:11:13 +0000568 LOGFONTA elfLogFont;
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000569 BYTE elfFullName[LF_FULLFACESIZE];
570 BYTE elfStyle[LF_FACESIZE];
Alexandre Julliarda3960291999-02-26 11:11:13 +0000571} ENUMLOGFONTA, *LPENUMLOGFONTA;
Veksler Michael1346a3c1998-12-15 11:15:35 +0000572
573typedef struct
574{
Alexandre Julliarda3960291999-02-26 11:11:13 +0000575 LOGFONTW elfLogFont;
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000576 WCHAR elfFullName[LF_FULLFACESIZE];
577 WCHAR elfStyle[LF_FACESIZE];
Alexandre Julliarda3960291999-02-26 11:11:13 +0000578} ENUMLOGFONTW, *LPENUMLOGFONTW;
Veksler Michael1346a3c1998-12-15 11:15:35 +0000579
Francois Gouget6c97e452000-11-10 22:33:45 +0000580DECL_WINELIB_TYPE_AW(ENUMLOGFONT)
581DECL_WINELIB_TYPE_AW(LPENUMLOGFONT)
582
Veksler Michael1346a3c1998-12-15 11:15:35 +0000583typedef struct
584{
Alexandre Julliarda3960291999-02-26 11:11:13 +0000585 LOGFONTA elfLogFont;
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000586 BYTE elfFullName[LF_FULLFACESIZE];
587 BYTE elfStyle[LF_FACESIZE];
588 BYTE elfScript[LF_FACESIZE];
Alexandre Julliarda3960291999-02-26 11:11:13 +0000589} ENUMLOGFONTEXA,*LPENUMLOGFONTEXA;
Veksler Michael1346a3c1998-12-15 11:15:35 +0000590
591typedef struct
592{
Alexandre Julliarda3960291999-02-26 11:11:13 +0000593 LOGFONTW elfLogFont;
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000594 WCHAR elfFullName[LF_FULLFACESIZE];
595 WCHAR elfStyle[LF_FACESIZE];
596 WCHAR elfScript[LF_FACESIZE];
Alexandre Julliarda3960291999-02-26 11:11:13 +0000597} ENUMLOGFONTEXW,*LPENUMLOGFONTEXW;
Veksler Michael1346a3c1998-12-15 11:15:35 +0000598
Francois Gouget6c97e452000-11-10 22:33:45 +0000599DECL_WINELIB_TYPE_AW(ENUMLOGFONTEX)
Veksler Michael1346a3c1998-12-15 11:15:35 +0000600DECL_WINELIB_TYPE_AW(LPENUMLOGFONTEX)
601
Douglas Ridgway4f7d9ed1998-12-18 17:38:39 +0000602/*
603 * The FONTSIGNATURE tells which Unicode ranges and which code pages
604 * have glyphs in a font.
605 *
606 * fsUsb 128-bit bitmap. The most significant bits are 10 (magic number).
607 * The remaining 126 bits map the Unicode ISO 10646 subranges
608 * for which the font provides glyphs.
609 *
610 * fsCsb 64-bit bitmap. The low 32 bits map the Windows codepages for
Vincent BĂ©ron9a624912002-05-31 23:06:46 +0000611 * which the font provides glyphs. The high 32 bits are for
Douglas Ridgway4f7d9ed1998-12-18 17:38:39 +0000612 * non Windows codepages.
613 */
Veksler Michael1346a3c1998-12-15 11:15:35 +0000614typedef struct
615{
616 DWORD fsUsb[4];
617 DWORD fsCsb[2];
Francois Gouget6c97e452000-11-10 22:33:45 +0000618} FONTSIGNATURE, *PFONTSIGNATURE, *LPFONTSIGNATURE;
Veksler Michael1346a3c1998-12-15 11:15:35 +0000619
Vincent BĂ©ron9a624912002-05-31 23:06:46 +0000620typedef struct
Veksler Michael1346a3c1998-12-15 11:15:35 +0000621{
Alexandre Julliarda3960291999-02-26 11:11:13 +0000622 UINT ciCharset; /* character set */
623 UINT ciACP; /* ANSI code page */
Veksler Michael1346a3c1998-12-15 11:15:35 +0000624 FONTSIGNATURE fs;
Francois Gouget6c97e452000-11-10 22:33:45 +0000625} CHARSETINFO, *PCHARSETINFO, *LPCHARSETINFO;
Veksler Michael1346a3c1998-12-15 11:15:35 +0000626
Douglas Ridgway4f7d9ed1998-12-18 17:38:39 +0000627/* Flags for TranslateCharsetInfo */
Douglas Ridgwayab9e8bc1999-01-01 18:41:22 +0000628#define TCI_SRCCHARSET 1
629#define TCI_SRCCODEPAGE 2
630#define TCI_SRCFONTSIG 3
Douglas Ridgway4f7d9ed1998-12-18 17:38:39 +0000631
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000632typedef struct
633{
634 DWORD lsUsb[4];
635 DWORD lsCsbDefault[2];
636 DWORD lsCsbSupported[2];
Patrik Stridvallba9dc782002-11-04 22:43:24 +0000637} LOCALESIGNATURE, *PLOCALESIGNATURE, *LPLOCALESIGNATURE;
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000638
639
Veksler Michael1346a3c1998-12-15 11:15:35 +0000640/* Flags for ModifyWorldTransform */
641#define MWT_IDENTITY 1
642#define MWT_LEFTMULTIPLY 2
643#define MWT_RIGHTMULTIPLY 3
Patrik Stridvall564d3802000-10-22 23:55:15 +0000644#define MWT_MIN MWT_IDENTITY
Vincent BĂ©ron9a624912002-05-31 23:06:46 +0000645#define MWT_MAX MWT_RIGHTMULTIPLY
Veksler Michael1346a3c1998-12-15 11:15:35 +0000646
Alexandre Julliard8da12c41999-01-17 16:55:11 +0000647/* Object Definitions for EnumObjects() */
648#define OBJ_PEN 1
649#define OBJ_BRUSH 2
650#define OBJ_DC 3
651#define OBJ_METADC 4
652#define OBJ_PAL 5
653#define OBJ_FONT 6
654#define OBJ_BITMAP 7
655#define OBJ_REGION 8
656#define OBJ_METAFILE 9
657#define OBJ_MEMDC 10
658#define OBJ_EXTPEN 11
659#define OBJ_ENHMETADC 12
660#define OBJ_ENHMETAFILE 13
Andreas Mohree5445d2004-08-18 20:58:59 +0000661#define OBJ_COLORSPACE 14
Alexandre Julliard8da12c41999-01-17 16:55:11 +0000662
Jon Griffiths39bbcb42004-09-20 19:13:16 +0000663typedef struct tagXFORM
Veksler Michael1346a3c1998-12-15 11:15:35 +0000664{
665 FLOAT eM11;
666 FLOAT eM12;
667 FLOAT eM21;
668 FLOAT eM22;
669 FLOAT eDx;
670 FLOAT eDy;
Francois Gouget6c97e452000-11-10 22:33:45 +0000671} XFORM, *PXFORM, *LPXFORM;
Veksler Michael1346a3c1998-12-15 11:15:35 +0000672
Veksler Michael1346a3c1998-12-15 11:15:35 +0000673 /* lfWeight values */
674#define FW_DONTCARE 0
675#define FW_THIN 100
676#define FW_EXTRALIGHT 200
677#define FW_ULTRALIGHT 200
678#define FW_LIGHT 300
679#define FW_NORMAL 400
680#define FW_REGULAR 400
681#define FW_MEDIUM 500
682#define FW_SEMIBOLD 600
683#define FW_DEMIBOLD 600
684#define FW_BOLD 700
685#define FW_EXTRABOLD 800
686#define FW_ULTRABOLD 800
687#define FW_HEAVY 900
688#define FW_BLACK 900
689
690 /* lfCharSet values */
Douglas Ridgwayab9e8bc1999-01-01 18:41:22 +0000691#define ANSI_CHARSET (BYTE)0 /* CP1252, ansi-0, iso8859-{1,15} */
692#define DEFAULT_CHARSET (BYTE)1
693#define SYMBOL_CHARSET (BYTE)2
694#define SHIFTJIS_CHARSET (BYTE)128 /* CP932 */
695#define HANGEUL_CHARSET (BYTE)129 /* CP949, ksc5601.1987-0 */
696#define HANGUL_CHARSET HANGEUL_CHARSET
697#define GB2312_CHARSET (BYTE)134 /* CP936, gb2312.1980-0 */
698#define CHINESEBIG5_CHARSET (BYTE)136 /* CP950, big5.et-0 */
699#define GREEK_CHARSET (BYTE)161 /* CP1253 */
700#define TURKISH_CHARSET (BYTE)162 /* CP1254, -iso8859-9 */
701#define HEBREW_CHARSET (BYTE)177 /* CP1255, -iso8859-8 */
702#define ARABIC_CHARSET (BYTE)178 /* CP1256, -iso8859-6 */
Nerijus Baliunasc4b8b262000-11-11 00:34:32 +0000703#define BALTIC_CHARSET (BYTE)186 /* CP1257, -iso8859-13 */
Huw D M Davies8da26fb2002-06-22 01:19:29 +0000704#define VIETNAMESE_CHARSET (BYTE)163 /* CP1258 */
Douglas Ridgwayab9e8bc1999-01-01 18:41:22 +0000705#define RUSSIAN_CHARSET (BYTE)204 /* CP1251, -iso8859-5 */
706#define EE_CHARSET (BYTE)238 /* CP1250, -iso8859-2 */
707#define EASTEUROPE_CHARSET EE_CHARSET
708#define THAI_CHARSET (BYTE)222 /* CP874, iso8859-11, tis620 */
709#define JOHAB_CHARSET (BYTE)130 /* korean (johab) CP1361 */
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000710#define MAC_CHARSET (BYTE)77
Douglas Ridgwayab9e8bc1999-01-01 18:41:22 +0000711#define OEM_CHARSET (BYTE)255
Veksler Michael1346a3c1998-12-15 11:15:35 +0000712/* I don't know if the values of *_CHARSET macros are defined in Windows
713 * or if we can choose them as we want. -- srtxg
714 */
Douglas Ridgwayab9e8bc1999-01-01 18:41:22 +0000715#define VISCII_CHARSET (BYTE)240 /* viscii1.1-1 */
716#define TCVN_CHARSET (BYTE)241 /* tcvn-0 */
717#define KOI8_CHARSET (BYTE)242 /* koi8-{r,u,ru} */
718#define ISO3_CHARSET (BYTE)243 /* iso8859-3 */
719#define ISO4_CHARSET (BYTE)244 /* iso8859-4 */
Nerijus Baliunasc4b8b262000-11-11 00:34:32 +0000720#define ISO10_CHARSET (BYTE)245 /* iso8859-10 */
721#define CELTIC_CHARSET (BYTE)246 /* iso8859-14 */
Veksler Michael1346a3c1998-12-15 11:15:35 +0000722
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000723#define FS_LATIN1 0x00000001L
724#define FS_LATIN2 0x00000002L
725#define FS_CYRILLIC 0x00000004L
726#define FS_GREEK 0x00000008L
727#define FS_TURKISH 0x00000010L
728#define FS_HEBREW 0x00000020L
729#define FS_ARABIC 0x00000040L
730#define FS_BALTIC 0x00000080L
731#define FS_VIETNAMESE 0x00000100L
732#define FS_THAI 0x00010000L
733#define FS_JISJAPAN 0x00020000L
734#define FS_CHINESESIMP 0x00040000L
735#define FS_WANSUNG 0x00080000L
736#define FS_CHINESETRAD 0x00100000L
737#define FS_JOHAB 0x00200000L
738#define FS_SYMBOL 0x80000000L
739
Veksler Michael1346a3c1998-12-15 11:15:35 +0000740 /* lfOutPrecision values */
741#define OUT_DEFAULT_PRECIS 0
742#define OUT_STRING_PRECIS 1
743#define OUT_CHARACTER_PRECIS 2
744#define OUT_STROKE_PRECIS 3
745#define OUT_TT_PRECIS 4
746#define OUT_DEVICE_PRECIS 5
747#define OUT_RASTER_PRECIS 6
748#define OUT_TT_ONLY_PRECIS 7
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000749#define OUT_OUTLINE_PRECIS 8
Veksler Michael1346a3c1998-12-15 11:15:35 +0000750
751 /* lfClipPrecision values */
752#define CLIP_DEFAULT_PRECIS 0x00
753#define CLIP_CHARACTER_PRECIS 0x01
754#define CLIP_STROKE_PRECIS 0x02
755#define CLIP_MASK 0x0F
756#define CLIP_LH_ANGLES 0x10
757#define CLIP_TT_ALWAYS 0x20
758#define CLIP_EMBEDDED 0x80
759
760 /* lfQuality values */
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000761#define DEFAULT_QUALITY 0
762#define DRAFT_QUALITY 1
763#define PROOF_QUALITY 2
764#define NONANTIALIASED_QUALITY 3
765#define ANTIALIASED_QUALITY 4
Veksler Michael1346a3c1998-12-15 11:15:35 +0000766
767 /* lfPitchAndFamily pitch values */
768#define DEFAULT_PITCH 0x00
769#define FIXED_PITCH 0x01
770#define VARIABLE_PITCH 0x02
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000771#define MONO_FONT 0x08
772
Veksler Michael1346a3c1998-12-15 11:15:35 +0000773#define FF_DONTCARE 0x00
774#define FF_ROMAN 0x10
775#define FF_SWISS 0x20
776#define FF_MODERN 0x30
777#define FF_SCRIPT 0x40
778#define FF_DECORATIVE 0x50
779
Jon Griffiths7c6ebdd2003-03-15 19:35:52 +0000780#ifndef _TEXTMETRIC_DEFINED
781#define _TEXTMETRIC_DEFINED
782
Jon Griffiths39bbcb42004-09-20 19:13:16 +0000783typedef struct tagTEXTMETRICA
Veksler Michael1346a3c1998-12-15 11:15:35 +0000784{
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000785 LONG tmHeight;
786 LONG tmAscent;
787 LONG tmDescent;
788 LONG tmInternalLeading;
789 LONG tmExternalLeading;
790 LONG tmAveCharWidth;
791 LONG tmMaxCharWidth;
792 LONG tmWeight;
793 LONG tmOverhang;
794 LONG tmDigitizedAspectX;
795 LONG tmDigitizedAspectY;
Veksler Michael1346a3c1998-12-15 11:15:35 +0000796 BYTE tmFirstChar;
797 BYTE tmLastChar;
798 BYTE tmDefaultChar;
799 BYTE tmBreakChar;
800 BYTE tmItalic;
801 BYTE tmUnderlined;
802 BYTE tmStruckOut;
803 BYTE tmPitchAndFamily;
804 BYTE tmCharSet;
Matthew Cline4ecb75b2000-02-12 19:26:07 +0000805} TEXTMETRICA, *LPTEXTMETRICA, *PTEXTMETRICA;
Veksler Michael1346a3c1998-12-15 11:15:35 +0000806
Jon Griffiths39bbcb42004-09-20 19:13:16 +0000807typedef struct tagTEXTMETRICW
Veksler Michael1346a3c1998-12-15 11:15:35 +0000808{
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000809 LONG tmHeight;
810 LONG tmAscent;
811 LONG tmDescent;
812 LONG tmInternalLeading;
813 LONG tmExternalLeading;
814 LONG tmAveCharWidth;
815 LONG tmMaxCharWidth;
816 LONG tmWeight;
817 LONG tmOverhang;
818 LONG tmDigitizedAspectX;
819 LONG tmDigitizedAspectY;
Veksler Michael1346a3c1998-12-15 11:15:35 +0000820 WCHAR tmFirstChar;
821 WCHAR tmLastChar;
822 WCHAR tmDefaultChar;
823 WCHAR tmBreakChar;
824 BYTE tmItalic;
825 BYTE tmUnderlined;
826 BYTE tmStruckOut;
827 BYTE tmPitchAndFamily;
828 BYTE tmCharSet;
Matthew Cline4ecb75b2000-02-12 19:26:07 +0000829} TEXTMETRICW, *LPTEXTMETRICW, *PTEXTMETRICW;
Veksler Michael1346a3c1998-12-15 11:15:35 +0000830
831DECL_WINELIB_TYPE_AW(TEXTMETRIC)
Matthew Cline4ecb75b2000-02-12 19:26:07 +0000832DECL_WINELIB_TYPE_AW(PTEXTMETRIC)
Veksler Michael1346a3c1998-12-15 11:15:35 +0000833DECL_WINELIB_TYPE_AW(LPTEXTMETRIC)
Jon Griffiths7c6ebdd2003-03-15 19:35:52 +0000834#endif /* _TEXTMETRIC_DEFINED */
Veksler Michael1346a3c1998-12-15 11:15:35 +0000835
836
837typedef struct tagPANOSE
838{
839 BYTE bFamilyType;
840 BYTE bSerifStyle;
841 BYTE bWeight;
842 BYTE bProportion;
843 BYTE bContrast;
844 BYTE bStrokeVariation;
845 BYTE bArmStyle;
846 BYTE bLetterform;
847 BYTE bMidline;
848 BYTE bXHeight;
Francois Gouget6c97e452000-11-10 22:33:45 +0000849} PANOSE, *LPPANOSE;
Veksler Michael1346a3c1998-12-15 11:15:35 +0000850
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000851#define PANOSE_COUNT 10
852
Huw D M Daviesd44b4282002-02-08 17:10:18 +0000853#define PAN_FAMILYTYPE_INDEX 0
Huw D M Daviesa9f55c41999-05-08 12:45:18 +0000854#define PAN_SERIFSTYLE_INDEX 1
855#define PAN_WEIGTH_INDEX 2
856#define PAN_PROPORTION_INDEX 3
857#define PAN_CONTRAST_INDEX 4
858#define PAN_STROKEVARIATION_INDEX 5
859#define PAN_ARMSTYLE_INDEX 6
860#define PAN_LETTERFORM_INDEX 7
861#define PAN_MIDLINE_INDEX 8
862#define PAN_XHEIGHT_INDEX 9
863
Huw D M Daviesad1e06e1999-04-24 11:47:26 +0000864#define PAN_CULTURE_LATIN 0
865
866#define PAN_ANY 0
867#define PAN_NO_FIT 1
868
869#define PAN_FAMILY_TEXT_DISPLAY 2
870#define PAN_FAMILY_SCRIPT 3
871#define PAN_FAMILY_DECORATIVE 4
872#define PAN_FAMILY_PICTORIAL 5
873
874#define PAN_SERIF_COVE 2
875#define PAN_SERIF_OBTUSE_COVE 3
876#define PAN_SERIF_SQUARE_COVE 4
877#define PAN_SERIF_OBTUSE_SQUARE_COVE 5
878#define PAN_SERIF_SQUARE 6
879#define PAN_SERIF_THIN 7
880#define PAN_SERIF_BONE 8
881#define PAN_SERIF_EXAGGERATED 9
882#define PAN_SERIF_TRIANGLE 10
883#define PAN_SERIF_NORMAL_SANS 11
884#define PAN_SERIF_OBTUSE_SANS 12
885#define PAN_SERIF_PERP_SANS 13
886#define PAN_SERIF_FLARED 14
887#define PAN_SERIF_ROUNDED 15
888
889#define PAN_WEIGHT_VERY_LIGHT 2
890#define PAN_WEIGHT_LIGHT 3
891#define PAN_WEIGHT_THIN 4
892#define PAN_WEIGHT_BOOK 5
893#define PAN_WEIGHT_MEDIUM 6
894#define PAN_WEIGHT_DEMI 7
895#define PAN_WEIGHT_BOLD 8
896#define PAN_WEIGHT_HEAVY 9
897#define PAN_WEIGHT_BLACK 10
898#define PAN_WEIGHT_NORD 11
899
900#define PAN_PROP_OLD_STYLE 2
901#define PAN_PROP_MODERN 3
902#define PAN_PROP_EVEN_WIDTH 4
903#define PAN_PROP_EXPANDED 5
904#define PAN_PROP_CONDENSED 6
905#define PAN_PROP_VERY_EXPANDED 7
906#define PAN_PROP_VERY_CONDENSED 8
907#define PAN_PROP_MONOSPACED 9
908
909#define PAN_CONTRAST_NONE 2
910#define PAN_CONTRAST_VERY_LOW 3
911#define PAN_CONTRAST_LOW 4
912#define PAN_CONTRAST_MEDIUM_LOW 5
913#define PAN_CONTRAST_MEDIUM 6
914#define PAN_CONTRAST_MEDIUM_HIGH 7
915#define PAN_CONTRAST_HIGH 8
916#define PAN_CONTRAST_VERY_HIGH 9
917
918#define PAN_STROKE_GRADUAL_DIAG 2
919#define PAN_STROKE_GRADUAL_TRAN 3
920#define PAN_STROKE_GRADUAL_VERT 4
921#define PAN_STROKE_GRADUAL_HORZ 5
922#define PAN_STROKE_RAPID_VERT 6
923#define PAN_STROKE_RAPID_HORZ 7
924#define PAN_STROKE_INSTANT_VERT 8
925
926#define PAN_STRAIGHT_ARMS_HORZ 2
927#define PAN_STRAIGHT_ARMS_WEDGE 3
928#define PAN_STRAIGHT_ARMS_VERT 4
929#define PAN_STRAIGHT_ARMS_SINGLE_SERIF 5
930#define PAN_STRAIGHT_ARMS_DOUBLE_SERIF 6
931#define PAN_BENT_ARMS_HORZ 7
932#define PAN_BENT_ARMS_WEDGE 8
933#define PAN_BENT_ARMS_VERT 9
934#define PAN_BENT_ARMS_SINGLE_SERIF 10
935#define PAN_BENT_ARMS_DOUBLE_SERIF 11
936
937#define PAN_LETT_NORMAL_COMPACT 2
938#define PAN_LETT_NORMAL_WEIGHTED 3
939#define PAN_LETT_NORMAL_BOXED 4
940#define PAN_LETT_NORMAL_FLATTENED 5
941#define PAN_LETT_NORMAL_ROUNDED 6
942#define PAN_LETT_NORMAL_OFF_CENTER 7
943#define PAN_LETT_NORMAL_SQUARE 8
944#define PAN_LETT_OBLIQUE_COMPACT 9
945#define PAN_LETT_OBLIQUE_WEIGHTED 10
946#define PAN_LETT_OBLIQUE_BOXED 11
947#define PAN_LETT_OBLIQUE_FLATTENED 12
948#define PAN_LETT_OBLIQUE_ROUNDED 13
949#define PAN_LETT_OBLIQUE_OFF_CENTER 14
950#define PAN_LETT_OBLIQUE_SQUARE 15
951
952#define PAN_MIDLINE_STANDARD_TRIMMED 2
953#define PAN_MIDLINE_STANDARD_POINTED 3
954#define PAN_MIDLINE_STANDARD_SERIFED 4
955#define PAN_MIDLINE_HIGH_TRIMMED 5
956#define PAN_MIDLINE_HIGH_POINTED 6
957#define PAN_MIDLINE_HIGH_SERIFED 7
958#define PAN_MIDLINE_CONSTANT_TRIMMED 8
959#define PAN_MIDLINE_CONSTANT_POINTED 9
960#define PAN_MIDLINE_CONSTANT_SERIFED 10
961#define PAN_MIDLINE_LOW_TRIMMED 11
962#define PAN_MIDLINE_LOW_POINTED 12
963#define PAN_MIDLINE_LOW_SERIFED 13
964
965#define PAN_XHEIGHT_CONSTANT_SMALL 2
966#define PAN_XHEIGHT_CONSTANT_STANDARD 3
967#define PAN_XHEIGHT_CONSTANT_LARGE 4
968#define PAN_XHEIGHT_DUCKING_SMALL 5
969#define PAN_XHEIGHT_DUCKING_STANDARD 6
970#define PAN_XHEIGHT_DUCKING_LARGE 7
971
972#define ELF_VENDOR_SIZE 4
973typedef struct
974{
975 LOGFONTA elfLogFont;
976 BYTE elfFullName[LF_FULLFACESIZE];
977 BYTE elfStyle[LF_FACESIZE];
978 DWORD elfVersion;
979 DWORD elfStyleSize;
980 DWORD elfMatch;
981 DWORD elfReserved;
982 BYTE elfVendorId[ELF_VENDOR_SIZE];
983 DWORD elfCulture;
984 PANOSE elfPanose;
Francois Gouget6c97e452000-11-10 22:33:45 +0000985} EXTLOGFONTA, *PEXTLOGFONTA, *LPEXTLOGFONTA;
Huw D M Daviesad1e06e1999-04-24 11:47:26 +0000986
987typedef struct
988{
989 LOGFONTW elfLogFont;
990 WCHAR elfFullName[LF_FULLFACESIZE];
991 WCHAR elfStyle[LF_FACESIZE];
992 DWORD elfVersion;
993 DWORD elfStyleSize;
994 DWORD elfMatch;
995 DWORD elfReserved;
996 BYTE elfVendorId[ELF_VENDOR_SIZE];
997 DWORD elfCulture;
998 PANOSE elfPanose;
Francois Gouget6c97e452000-11-10 22:33:45 +0000999} EXTLOGFONTW, *PEXTLOGFONTW, *LPEXTLOGFONTW;
Huw D M Daviesad1e06e1999-04-24 11:47:26 +00001000
1001DECL_WINELIB_TYPE_AW(EXTLOGFONT)
1002DECL_WINELIB_TYPE_AW(PEXTLOGFONT)
Francois Gouget6c97e452000-11-10 22:33:45 +00001003DECL_WINELIB_TYPE_AW(LPEXTLOGFONT)
Veksler Michael1346a3c1998-12-15 11:15:35 +00001004
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001005#define ELF_VERSION 0
1006#define ELF_CULTURE_LATIN 0
1007
Alexandre Julliarda3960291999-02-26 11:11:13 +00001008typedef struct _OUTLINETEXTMETRICA
Veksler Michael1346a3c1998-12-15 11:15:35 +00001009{
Alexandre Julliarda3960291999-02-26 11:11:13 +00001010 UINT otmSize;
1011 TEXTMETRICA otmTextMetrics;
Huw D M Davies916a1a62001-03-13 23:31:40 +00001012 BYTE otmFiller;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001013 PANOSE otmPanoseNumber;
Alexandre Julliarda3960291999-02-26 11:11:13 +00001014 UINT otmfsSelection;
1015 UINT otmfsType;
1016 INT otmsCharSlopeRise;
1017 INT otmsCharSlopeRun;
1018 INT otmItalicAngle;
1019 UINT otmEMSquare;
1020 INT otmAscent;
1021 INT otmDescent;
1022 UINT otmLineGap;
1023 UINT otmsCapEmHeight;
1024 UINT otmsXHeight;
1025 RECT otmrcFontBox;
1026 INT otmMacAscent;
1027 INT otmMacDescent;
1028 UINT otmMacLineGap;
1029 UINT otmusMinimumPPEM;
1030 POINT otmptSubscriptSize;
1031 POINT otmptSubscriptOffset;
1032 POINT otmptSuperscriptSize;
1033 POINT otmptSuperscriptOffset;
1034 UINT otmsStrikeoutSize;
1035 INT otmsStrikeoutPosition;
1036 INT otmsUnderscoreSize;
1037 INT otmsUnderscorePosition;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001038 LPSTR otmpFamilyName;
1039 LPSTR otmpFaceName;
1040 LPSTR otmpStyleName;
1041 LPSTR otmpFullName;
Francois Gouget6c97e452000-11-10 22:33:45 +00001042} OUTLINETEXTMETRICA, *POUTLINETEXTMETRICA, *LPOUTLINETEXTMETRICA;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001043
Alexandre Julliarda3960291999-02-26 11:11:13 +00001044typedef struct _OUTLINETEXTMETRICW
Veksler Michael1346a3c1998-12-15 11:15:35 +00001045{
Alexandre Julliarda3960291999-02-26 11:11:13 +00001046 UINT otmSize;
1047 TEXTMETRICW otmTextMetrics;
Huw D M Davies916a1a62001-03-13 23:31:40 +00001048 BYTE otmFiller;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001049 PANOSE otmPanoseNumber;
Alexandre Julliarda3960291999-02-26 11:11:13 +00001050 UINT otmfsSelection;
1051 UINT otmfsType;
1052 INT otmsCharSlopeRise;
1053 INT otmsCharSlopeRun;
1054 INT otmItalicAngle;
1055 UINT otmEMSquare;
1056 INT otmAscent;
1057 INT otmDescent;
1058 UINT otmLineGap;
1059 UINT otmsCapEmHeight;
1060 UINT otmsXHeight;
1061 RECT otmrcFontBox;
1062 INT otmMacAscent;
1063 INT otmMacDescent;
1064 UINT otmMacLineGap;
1065 UINT otmusMinimumPPEM;
1066 POINT otmptSubscriptSize;
1067 POINT otmptSubscriptOffset;
1068 POINT otmptSuperscriptSize;
1069 POINT otmptSuperscriptOffset;
1070 UINT otmsStrikeoutSize;
1071 INT otmsStrikeoutPosition;
1072 INT otmsUnderscoreSize;
1073 INT otmsUnderscorePosition;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001074 LPSTR otmpFamilyName;
1075 LPSTR otmpFaceName;
1076 LPSTR otmpStyleName;
1077 LPSTR otmpFullName;
Francois Gouget6c97e452000-11-10 22:33:45 +00001078} OUTLINETEXTMETRICW, *POUTLINETEXTMETRICW, *LPOUTLINETEXTMETRICW;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001079
Veksler Michael1346a3c1998-12-15 11:15:35 +00001080DECL_WINELIB_TYPE_AW(OUTLINETEXTMETRIC)
Francois Gouget6c97e452000-11-10 22:33:45 +00001081DECL_WINELIB_TYPE_AW(POUTLINETEXTMETRIC)
Veksler Michael1346a3c1998-12-15 11:15:35 +00001082DECL_WINELIB_TYPE_AW(LPOUTLINETEXTMETRIC)
1083
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001084typedef struct
1085{
1086 INT x;
1087 INT y;
1088 UINT n;
1089 LPCSTR lpstr;
1090 UINT uiFlags;
1091 RECT rcl;
1092 INT *pdx;
Francois Gouget6c97e452000-11-10 22:33:45 +00001093} POLYTEXTA, *PPOLYTEXTA, *LPPOLYTEXTA;
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001094
1095typedef struct
1096{
1097 INT x;
1098 INT y;
1099 UINT n;
1100 LPCWSTR lpstr;
1101 UINT uiFlags;
1102 RECT rcl;
1103 INT *pdx;
Francois Gouget6c97e452000-11-10 22:33:45 +00001104} POLYTEXTW, *PPOLYTEXTW, *LPPOLYTEXTW;
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001105
1106DECL_WINELIB_TYPE_AW(POLYTEXT)
1107DECL_WINELIB_TYPE_AW(PPOLYTEXT)
Francois Gouget6c97e452000-11-10 22:33:45 +00001108DECL_WINELIB_TYPE_AW(LPPOLYTEXT)
Veksler Michael1346a3c1998-12-15 11:15:35 +00001109
1110
1111/* ntmFlags field flags */
1112#define NTM_REGULAR 0x00000040L
1113#define NTM_BOLD 0x00000020L
1114#define NTM_ITALIC 0x00000001L
1115
Rein Klazes62fb1912003-12-30 22:08:17 +00001116#define NTM_NONNEGATIVE_AC 0x00010000
1117#define NTM_PS_OPENTYPE 0x00020000
1118#define NTM_TT_OPENTYPE 0x00040000
1119#define NTM_MULTIPLEMASTER 0x00080000
1120#define NTM_TYPE1 0x00100000
1121#define NTM_DSIG 0x00200000
1122
1123
Veksler Michael1346a3c1998-12-15 11:15:35 +00001124typedef struct
1125{
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001126 LONG tmHeight;
1127 LONG tmAscent;
1128 LONG tmDescent;
1129 LONG tmInternalLeading;
1130 LONG tmExternalLeading;
1131 LONG tmAveCharWidth;
1132 LONG tmMaxCharWidth;
1133 LONG tmWeight;
1134 LONG tmOverhang;
1135 LONG tmDigitizedAspectX;
1136 LONG tmDigitizedAspectY;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001137 BYTE tmFirstChar;
1138 BYTE tmLastChar;
1139 BYTE tmDefaultChar;
1140 BYTE tmBreakChar;
1141 BYTE tmItalic;
1142 BYTE tmUnderlined;
1143 BYTE tmStruckOut;
1144 BYTE tmPitchAndFamily;
1145 BYTE tmCharSet;
1146 DWORD ntmFlags;
Alexandre Julliarda3960291999-02-26 11:11:13 +00001147 UINT ntmSizeEM;
1148 UINT ntmCellHeight;
1149 UINT ntmAvgWidth;
Francois Gouget6c97e452000-11-10 22:33:45 +00001150} NEWTEXTMETRICA, *PNEWTEXTMETRICA, *LPNEWTEXTMETRICA;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001151
1152typedef struct
1153{
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001154 LONG tmHeight;
1155 LONG tmAscent;
1156 LONG tmDescent;
1157 LONG tmInternalLeading;
1158 LONG tmExternalLeading;
1159 LONG tmAveCharWidth;
1160 LONG tmMaxCharWidth;
1161 LONG tmWeight;
1162 LONG tmOverhang;
1163 LONG tmDigitizedAspectX;
1164 LONG tmDigitizedAspectY;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001165 WCHAR tmFirstChar;
1166 WCHAR tmLastChar;
1167 WCHAR tmDefaultChar;
1168 WCHAR tmBreakChar;
1169 BYTE tmItalic;
1170 BYTE tmUnderlined;
1171 BYTE tmStruckOut;
1172 BYTE tmPitchAndFamily;
1173 BYTE tmCharSet;
1174 DWORD ntmFlags;
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001175 UINT ntmSizeEM;
1176 UINT ntmCellHeight;
1177 UINT ntmAvgWidth;
Francois Gouget6c97e452000-11-10 22:33:45 +00001178} NEWTEXTMETRICW, *PNEWTEXTMETRICW, *LPNEWTEXTMETRICW;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001179
1180DECL_WINELIB_TYPE_AW(NEWTEXTMETRIC)
Francois Gouget6c97e452000-11-10 22:33:45 +00001181DECL_WINELIB_TYPE_AW(PNEWTEXTMETRIC)
Veksler Michael1346a3c1998-12-15 11:15:35 +00001182DECL_WINELIB_TYPE_AW(LPNEWTEXTMETRIC)
1183
1184typedef struct
1185{
Huw D M Davies26ee2ca2001-04-04 00:09:53 +00001186 NEWTEXTMETRICA ntmTm;
1187 FONTSIGNATURE ntmFontSig;
Patrik Stridvallba9dc782002-11-04 22:43:24 +00001188} NEWTEXTMETRICEXA;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001189
1190typedef struct
1191{
Huw D M Davies26ee2ca2001-04-04 00:09:53 +00001192 NEWTEXTMETRICW ntmTm;
1193 FONTSIGNATURE ntmFontSig;
Patrik Stridvallba9dc782002-11-04 22:43:24 +00001194} NEWTEXTMETRICEXW;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001195
1196DECL_WINELIB_TYPE_AW(NEWTEXTMETRICEX)
Veksler Michael1346a3c1998-12-15 11:15:35 +00001197
Dimitrie O. Pauncef59612003-01-03 19:12:55 +00001198#if defined(STRICT)
Patrik Stridvallc99c0222002-11-13 04:13:42 +00001199
1200#if !defined(NOTEXTMETRIC)
1201typedef int (CALLBACK *OLDFONTENUMPROCA)(const LOGFONTA *, const TEXTMETRICA *, DWORD, LPARAM);
1202typedef int (CALLBACK *OLDFONTENUMPROCW)(const LOGFONTW *, const TEXTMETRICW *, DWORD, LPARAM);
1203#else /* !defined(NOTEXTMETRIC) */
1204typedef int (CALLBACK *OLDFONTENUMPROCA)(const LOGFONTA *, const VOID *, DWORD, LPARAM);
1205typedef int (CALLBACK *OLDFONTENUMPROCW)(const LOGFONTW *, const VOID *, DWORD, LPARAM);
1206#endif /* !defined(NOTEXTMETRIC) */
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001207DECL_WINELIB_TYPE_AW(OLDFONTENUMPROC)
1208
Francois Gouget6c97e452000-11-10 22:33:45 +00001209typedef OLDFONTENUMPROCA FONTENUMPROCA;
1210typedef OLDFONTENUMPROCW FONTENUMPROCW;
1211DECL_WINELIB_TYPE_AW(FONTENUMPROC)
1212
Patrik Stridvallc99c0222002-11-13 04:13:42 +00001213typedef INT (CALLBACK *GOBJENUMPROC)(LPVOID, LPARAM);
1214typedef VOID (CALLBACK *LINEDDAPROC)(INT, INT, LPARAM);
Veksler Michael1346a3c1998-12-15 11:15:35 +00001215
Dimitrie O. Pauncef59612003-01-03 19:12:55 +00001216#else /* defined(STRICT) */
Patrik Stridvallc99c0222002-11-13 04:13:42 +00001217
1218typedef FARPROC OLDFONTENUMPROC;
1219
1220typedef FARPROC FONTENUMPROCA;
1221typedef FARPROC FONTENUMPROCW;
1222DECL_WINELIB_TYPE_AW(FONTENUMPROC)
1223
1224typedef FARPROC GOBJENUMPROC;
1225typedef FARPROC LINEDDAPROC;
1226
Dimitrie O. Pauncef59612003-01-03 19:12:55 +00001227#endif /* defined(STRICT) */
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001228
Veksler Michael1346a3c1998-12-15 11:15:35 +00001229 /* tmPitchAndFamily bits */
1230#define TMPF_FIXED_PITCH 1 /* means variable pitch */
1231#define TMPF_VECTOR 2
1232#define TMPF_TRUETYPE 4
1233#define TMPF_DEVICE 8
1234
1235 /* Text alignment */
1236#define TA_NOUPDATECP 0x00
1237#define TA_UPDATECP 0x01
1238#define TA_LEFT 0x00
1239#define TA_RIGHT 0x02
1240#define TA_CENTER 0x06
1241#define TA_TOP 0x00
1242#define TA_BOTTOM 0x08
1243#define TA_BASELINE 0x18
Francois Gouget6c97e452000-11-10 22:33:45 +00001244#define TA_RTLREADING 0x100
1245#define TA_MASK TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLREADING
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001246
1247#define VTA_BASELINE TA_BASELINE
1248#define VTA_LEFT TA_BOTTOM
1249#define VTA_RIGHT TA_TOP
1250#define VTA_CENTER TA_CENTER
1251#define VTA_BOTTOM TA_RIGHT
1252#define VTA_TOP TA_LEFT
1253
Veksler Michael1346a3c1998-12-15 11:15:35 +00001254
1255 /* ExtTextOut() parameters */
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001256#define ETO_GRAYED 0x0001
1257#define ETO_OPAQUE 0x0002
1258#define ETO_CLIPPED 0x0004
1259#define ETO_GLYPH_INDEX 0x0010
Matthew Lake18727102000-07-08 18:31:43 +00001260#define ETO_RTLREADING 0x0080
Vitaly Lipatov05903432005-01-05 13:24:52 +00001261#define ETO_NUMERICSLOCAL 0x0400
1262#define ETO_NUMERICSLATIN 0x0800
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001263#define ETO_IGNORELANGUAGE 0x1000
Vitaly Lipatov05903432005-01-05 13:24:52 +00001264#define ETO_PDY 0x2000
Veksler Michael1346a3c1998-12-15 11:15:35 +00001265
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001266#define ASPECT_FILTERING 0x0001
Veksler Michael1346a3c1998-12-15 11:15:35 +00001267
Dmitry Timoshkov2903ca12002-04-03 20:41:14 +00001268 /* for GetGlyphIndices() */
1269#define GGI_MARK_NONEXISTING_GLYPHS 0x0001
1270
Veksler Michael1346a3c1998-12-15 11:15:35 +00001271typedef struct
1272{
Alexandre Julliarda3960291999-02-26 11:11:13 +00001273 UINT gmBlackBoxX;
1274 UINT gmBlackBoxY;
1275 POINT gmptGlyphOrigin;
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001276 SHORT gmCellIncX;
1277 SHORT gmCellIncY;
Alexandre Julliarda3960291999-02-26 11:11:13 +00001278} GLYPHMETRICS, *LPGLYPHMETRICS;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001279
Veksler Michael1346a3c1998-12-15 11:15:35 +00001280
1281#define GGO_METRICS 0
1282#define GGO_BITMAP 1
1283#define GGO_NATIVE 2
Huw D M Davies8da26fb2002-06-22 01:19:29 +00001284#define GGO_BEZIER 3
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001285#define GGO_GRAY2_BITMAP 4
1286#define GGO_GRAY4_BITMAP 5
1287#define GGO_GRAY8_BITMAP 6
1288#define GGO_GLYPH_INDEX 0x80
Vincent BĂ©ron9a624912002-05-31 23:06:46 +00001289
Veksler Michael1346a3c1998-12-15 11:15:35 +00001290typedef struct
1291{
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001292 WORD fract;
1293 SHORT value;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001294} FIXED;
1295
Paul Quinn89b21b41999-03-14 13:47:00 +00001296typedef struct tagPOINTFX
1297{
1298 FIXED x;
1299 FIXED y;
1300} POINTFX, *LPPOINTFX;
1301
1302typedef struct tagTTPOLYCURVE
1303{
1304 WORD wType;
1305 WORD cpfx;
1306 POINTFX apfx[1];
1307} TTPOLYCURVE, *LPTTPOLYCURVE;
1308
1309typedef struct tagTTPOLYGONHEADER
1310{
1311 DWORD cb;
1312 DWORD dwType;
1313 POINTFX pfxStart;
1314} TTPOLYGONHEADER, *LPTTPOLYGONHEADER;
1315
Veksler Michael1346a3c1998-12-15 11:15:35 +00001316typedef struct
1317{
1318 FIXED eM11;
1319 FIXED eM12;
1320 FIXED eM21;
1321 FIXED eM22;
1322} MAT2, *LPMAT2;
1323
1324 /* for GetCharABCWidths() */
1325typedef struct
1326{
Alexandre Julliarda3960291999-02-26 11:11:13 +00001327 INT abcA;
1328 UINT abcB;
1329 INT abcC;
Francois Gouget6c97e452000-11-10 22:33:45 +00001330} ABC, *PABC, *LPABC;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001331
Veksler Michael1346a3c1998-12-15 11:15:35 +00001332
1333 /* for GetCharacterPlacement () */
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001334
1335#define GCP_DBCS 0x0001
1336#define GCP_REORDER 0x0002
1337#define GCP_USEKERNING 0x0008
1338#define GCP_GLYPHSHAPE 0x0010
1339#define GCP_LIGATE 0x0020
1340#define GCP_DIACRITIC 0x0100
1341#define GCP_KASHIDA 0x0200
1342#define GCP_ERROR 0x8000
1343#define FLI_MASK 0x103b
1344#define GCP_JUSTIFY 0x00010000L
1345#define FLI_GLYPHS 0x00040000L
1346#define GCP_CLASSIN 0x00080000L
1347#define GCP_MAXEXTENT 0x00100000L
1348#define GCP_JUSTIFYIN 0x00200000L
1349#define GCP_DISPLAYZWG 0x00400000L
1350#define GCP_SYMSWAPOFF 0x00800000L
1351#define GCP_NUMERICOVERRIDE 0x01000000L
1352#define GCP_NEUTRALOVERRIDE 0x02000000L
1353#define GCP_NUMERICSLATIN 0x04000000L
1354#define GCP_NUMERICSLOCAL 0x08000000L
1355
1356#define GCPCLASS_LATIN 1
1357#define GCPCLASS_HEBREW 2
1358#define GCPCLASS_ARABIC 3
1359#define GCPCLASS_NEUTRAL 4
1360#define GCPCLASS_LOCALNUMBER 5
1361#define GCPCLASS_LATINNUMBER 6
1362#define GCPCLASS_LATINNUMERICTERMINATOR 7
1363#define GCPCLASS_LATINNUMERICSEPARATOR 8
1364#define GCPCLASS_NUMERICSEPARATOR 9
1365#define GCPCLASS_PREBOUNDLTR 0x80
1366#define GCPCLASS_PREBOUNDRLT 0x40
1367#define GCPCLASS_POSTBOUNDLTR 0x20
1368#define GCPCLASS_POSTBOUNDRTL 0x10
1369
1370#define GCPGLYPH_LINKBEFORE 0x8000
1371#define GCPGLYPH_LINKAFTER 0x4000
1372
1373
1374typedef struct tagGCP_RESULTSA{
Veksler Michael1346a3c1998-12-15 11:15:35 +00001375 DWORD lStructSize;
1376 LPSTR lpOutString;
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001377 UINT *lpOrder;
1378 INT *lpDx;
1379 INT *lpCaretPos;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001380 LPSTR lpClass;
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001381 LPWSTR lpGlyphs;
1382 UINT nGlyphs;
1383 UINT nMaxFit;
Francois Gouget6c97e452000-11-10 22:33:45 +00001384} GCP_RESULTSA, *LPGCP_RESULTSA;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001385
Alexandre Julliarda3960291999-02-26 11:11:13 +00001386typedef struct tagGCP_RESULTSW
Veksler Michael1346a3c1998-12-15 11:15:35 +00001387{
1388 DWORD lStructSize;
1389 LPWSTR lpOutString;
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001390 UINT *lpOrder;
1391 INT *lpDx;
1392 INT *lpCaretPos;
Huw D M Davies5b01b502002-04-03 22:08:27 +00001393 LPSTR lpClass;
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001394 LPWSTR lpGlyphs;
1395 UINT nGlyphs;
1396 UINT nMaxFit;
Francois Gouget6c97e452000-11-10 22:33:45 +00001397} GCP_RESULTSW, *LPGCP_RESULTSW;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001398
1399DECL_WINELIB_TYPE_AW(GCP_RESULTS)
Francois Gouget6c97e452000-11-10 22:33:45 +00001400DECL_WINELIB_TYPE_AW(LPGCP_RESULTS)
Veksler Michael1346a3c1998-12-15 11:15:35 +00001401
1402 /* Rasterizer status */
1403typedef struct
1404{
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001405 SHORT nSize;
1406 SHORT wFlags;
1407 SHORT nLanguageID;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001408} RASTERIZER_STATUS, *LPRASTERIZER_STATUS;
1409
1410#define TT_AVAILABLE 0x0001
1411#define TT_ENABLED 0x0002
1412
Jim Aston10141fe1999-04-25 12:31:20 +00001413#define TT_PRIM_LINE 1
1414#define TT_PRIM_QSPLINE 2
Huw D M Davies8da26fb2002-06-22 01:19:29 +00001415#define TT_PRIM_CSPLINE 3
Vincent BĂ©ron9a624912002-05-31 23:06:46 +00001416#define TT_POLYGON_TYPE 24
Jim Aston10141fe1999-04-25 12:31:20 +00001417
Andreas Mohr5d91a632004-08-16 20:07:06 +00001418 /* OpenGL defines */
1419typedef struct {
1420 FLOAT x;
1421 FLOAT y;
1422} POINTFLOAT, *PPOINTFLOAT;
1423
1424typedef struct {
1425 FLOAT gmfBlackBoxX;
1426 FLOAT gmfBlackBoxY;
1427 POINTFLOAT gmfptGlyphOrigin;
1428 FLOAT gmfCellIncX;
1429 FLOAT gmfCellIncY;
1430} GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, *LPGLYPHMETRICSFLOAT;
1431
1432typedef struct {
1433 WORD nSize;
1434 WORD nVersion;
1435 DWORD dwFlags;
1436 BYTE iPixelType;
1437 BYTE cColorBits;
1438 BYTE cRedBits;
1439 BYTE cRedShift;
1440 BYTE cGreenBits;
1441 BYTE cGreenShift;
1442 BYTE cBlueBits;
1443 BYTE cBlueShift;
1444 BYTE cAlphaBits;
1445 BYTE cAlphaShift;
1446 BYTE cAccumBits;
1447 BYTE cAccumRedBits;
1448 BYTE cAccumGreenBits;
1449 BYTE cAccumBlueBits;
1450 BYTE cAccumAlphaBits;
1451 BYTE cDepthBits;
1452 BYTE cStencilBits;
1453 BYTE cAuxBuffers;
1454 BYTE iLayerPlane;
1455 BYTE bReserved;
1456 COLORREF crTransparent;
1457} LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, *LPLAYERPLANEDESCRIPTOR;
1458
Veksler Michael1346a3c1998-12-15 11:15:35 +00001459/* Get/SetSystemPaletteUse() values */
Andrew John Hughes6f929652003-02-01 00:36:38 +00001460#define SYSPAL_ERROR 0
1461#define SYSPAL_STATIC 1
1462#define SYSPAL_NOSTATIC 2
1463#define SYSPAL_NOSTATIC256 3
1464
Ove Kaaven0e32a2b2002-12-02 18:58:46 +00001465#ifndef _PALETTEENTRY_DEFINED
1466#define _PALETTEENTRY_DEFINED
Veksler Michael1346a3c1998-12-15 11:15:35 +00001467typedef struct tagPALETTEENTRY
1468{
1469 BYTE peRed, peGreen, peBlue, peFlags;
Alexandre Julliard73cc3ba1999-03-13 17:12:07 +00001470} PALETTEENTRY, *PPALETTEENTRY, *LPPALETTEENTRY;
Ove Kaaven0e32a2b2002-12-02 18:58:46 +00001471#endif
Veksler Michael1346a3c1998-12-15 11:15:35 +00001472
1473/* Logical palette entry flags */
1474#define PC_RESERVED 0x01
1475#define PC_EXPLICIT 0x02
1476#define PC_NOCOLLAPSE 0x04
1477
Ove Kaaven0e32a2b2002-12-02 18:58:46 +00001478#ifndef _LOGPALETTE_DEFINED
1479#define _LOGPALETTE_DEFINED
Michael Veksler4405f3c1999-08-18 18:35:57 +00001480typedef struct tagLOGPALETTE
Vincent BĂ©ron9a624912002-05-31 23:06:46 +00001481{
Veksler Michael1346a3c1998-12-15 11:15:35 +00001482 WORD palVersion;
1483 WORD palNumEntries;
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001484 PALETTEENTRY palPalEntry[1];
Paul Quinnaaa83061999-06-05 15:23:20 +00001485} LOGPALETTE, *PLOGPALETTE, *LPLOGPALETTE, *NPLOGPALETTE;
Ove Kaaven0e32a2b2002-12-02 18:58:46 +00001486#endif
Veksler Michael1346a3c1998-12-15 11:15:35 +00001487
1488 /* Pens */
1489
1490typedef struct
1491{
Vincent BĂ©ron9a624912002-05-31 23:06:46 +00001492 UINT lopnStyle;
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001493 POINT lopnWidth;
1494 COLORREF lopnColor;
Alexandre Julliarda3960291999-02-26 11:11:13 +00001495} LOGPEN, *LPLOGPEN;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001496
Veksler Michael1346a3c1998-12-15 11:15:35 +00001497
Paul Quinn1beaae51998-12-15 15:38:36 +00001498typedef struct tagEXTLOGPEN
1499{
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001500 DWORD elpPenStyle;
1501 DWORD elpWidth;
1502 UINT elpBrushStyle;
1503 COLORREF elpColor;
Dmitry Timoshkov4100c222005-09-12 15:28:31 +00001504 ULONG_PTR elpHatch;
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001505 DWORD elpNumEntries;
1506 DWORD elpStyleEntry[1];
Paul Quinn1beaae51998-12-15 15:38:36 +00001507} EXTLOGPEN, *PEXTLOGPEN, *NPEXTLOGPEN, *LPEXTLOGPEN;
1508
Veksler Michael1346a3c1998-12-15 11:15:35 +00001509#define PS_SOLID 0x00000000
1510#define PS_DASH 0x00000001
1511#define PS_DOT 0x00000002
1512#define PS_DASHDOT 0x00000003
1513#define PS_DASHDOTDOT 0x00000004
1514#define PS_NULL 0x00000005
1515#define PS_INSIDEFRAME 0x00000006
1516#define PS_USERSTYLE 0x00000007
1517#define PS_ALTERNATE 0x00000008
1518#define PS_STYLE_MASK 0x0000000f
1519
1520#define PS_ENDCAP_ROUND 0x00000000
1521#define PS_ENDCAP_SQUARE 0x00000100
1522#define PS_ENDCAP_FLAT 0x00000200
1523#define PS_ENDCAP_MASK 0x00000f00
1524
1525#define PS_JOIN_ROUND 0x00000000
1526#define PS_JOIN_BEVEL 0x00001000
1527#define PS_JOIN_MITER 0x00002000
1528#define PS_JOIN_MASK 0x0000f000
1529
1530#define PS_COSMETIC 0x00000000
1531#define PS_GEOMETRIC 0x00010000
1532#define PS_TYPE_MASK 0x000f0000
1533
1534 /* Regions */
1535
1536#define ERROR 0
1537#define NULLREGION 1
1538#define SIMPLEREGION 2
1539#define COMPLEXREGION 3
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001540#define RGN_ERROR ERROR
Veksler Michael1346a3c1998-12-15 11:15:35 +00001541
1542#define RGN_AND 1
1543#define RGN_OR 2
1544#define RGN_XOR 3
1545#define RGN_DIFF 4
1546#define RGN_COPY 5
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001547#define RGN_MIN RGN_AND
1548#define RGN_MAX RGN_COPY
Huw Daviesfa28b5e2003-05-19 19:03:19 +00001549
1550#define SYSRGN 4
1551
Veksler Michael1346a3c1998-12-15 11:15:35 +00001552 /* Device contexts */
1553
Veksler Michael1346a3c1998-12-15 11:15:35 +00001554 /* Polygon modes */
1555#define ALTERNATE 1
1556#define WINDING 2
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001557#define POLYFILL_LAST 2
Veksler Michael1346a3c1998-12-15 11:15:35 +00001558
Francois Gouget6371e832000-10-13 23:12:19 +00001559/* Background modes */
1560/* Apparently some broken svr4 includes define TRANSPARENT */
Veksler Michael1346a3c1998-12-15 11:15:35 +00001561#undef TRANSPARENT
Veksler Michael1346a3c1998-12-15 11:15:35 +00001562#define TRANSPARENT 1
1563#define OPAQUE 2
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001564#define BKMODE_LAST 2
Veksler Michael1346a3c1998-12-15 11:15:35 +00001565
1566 /* Graphics Modes */
1567#define GM_COMPATIBLE 1
1568#define GM_ADVANCED 2
1569#define GM_LAST 2
1570
1571 /* Arc direction modes */
1572#define AD_COUNTERCLOCKWISE 1
1573#define AD_CLOCKWISE 2
1574
1575 /* Map modes */
1576#define MM_TEXT 1
1577#define MM_LOMETRIC 2
1578#define MM_HIMETRIC 3
1579#define MM_LOENGLISH 4
1580#define MM_HIENGLISH 5
1581#define MM_TWIPS 6
1582#define MM_ISOTROPIC 7
1583#define MM_ANISOTROPIC 8
1584
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001585#define MM_MIN MM_TEXT
1586#define MM_MAX MM_ANISOTROPIC
1587#define MM_MAX_FIXEDSCALE MM_TWIPS
1588
Veksler Michael1346a3c1998-12-15 11:15:35 +00001589 /* Coordinate modes */
1590#define ABSOLUTE 1
1591#define RELATIVE 2
1592
1593 /* Flood fill modes */
1594#define FLOODFILLBORDER 0
1595#define FLOODFILLSURFACE 1
1596
1597 /* Device parameters for GetDeviceCaps() */
1598#define DRIVERVERSION 0
1599#define TECHNOLOGY 2
1600#define HORZSIZE 4
1601#define VERTSIZE 6
1602#define HORZRES 8
1603#define VERTRES 10
1604#define BITSPIXEL 12
1605#define PLANES 14
1606#define NUMBRUSHES 16
1607#define NUMPENS 18
1608#define NUMMARKERS 20
1609#define NUMFONTS 22
1610#define NUMCOLORS 24
1611#define PDEVICESIZE 26
1612#define CURVECAPS 28
1613#define LINECAPS 30
1614#define POLYGONALCAPS 32
1615#define TEXTCAPS 34
1616#define CLIPCAPS 36
1617#define RASTERCAPS 38
1618#define ASPECTX 40
1619#define ASPECTY 42
1620#define ASPECTXY 44
1621#define LOGPIXELSX 88
1622#define LOGPIXELSY 90
Brian Teague161bc832000-11-29 20:02:46 +00001623#define CAPS1 94
Veksler Michael1346a3c1998-12-15 11:15:35 +00001624#define SIZEPALETTE 104
1625#define NUMRESERVED 106
1626#define COLORRES 108
1627
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001628#define PHYSICALWIDTH 110
1629#define PHYSICALHEIGHT 111
1630#define PHYSICALOFFSETX 112
1631#define PHYSICALOFFSETY 113
1632#define SCALINGFACTORX 114
1633#define SCALINGFACTORY 115
1634#define VREFRESH 116
1635#define DESKTOPVERTRES 117
1636#define DESKTOPHORZRES 118
1637#define BTLALIGNMENT 119
1638
Veksler Michael1346a3c1998-12-15 11:15:35 +00001639/* TECHNOLOGY */
1640#define DT_PLOTTER 0
1641#define DT_RASDISPLAY 1
1642#define DT_RASPRINTER 2
1643#define DT_RASCAMERA 3
1644#define DT_CHARSTREAM 4
1645#define DT_METAFILE 5
1646#define DT_DISPFILE 6
1647
1648/* CURVECAPS */
1649#define CC_NONE 0x0000
1650#define CC_CIRCLES 0x0001
1651#define CC_PIE 0x0002
1652#define CC_CHORD 0x0004
1653#define CC_ELLIPSES 0x0008
1654#define CC_WIDE 0x0010
1655#define CC_STYLED 0x0020
1656#define CC_WIDESTYLED 0x0040
1657#define CC_INTERIORS 0x0080
1658#define CC_ROUNDRECT 0x0100
1659
1660/* LINECAPS */
1661#define LC_NONE 0x0000
1662#define LC_POLYLINE 0x0002
1663#define LC_MARKER 0x0004
1664#define LC_POLYMARKER 0x0008
1665#define LC_WIDE 0x0010
1666#define LC_STYLED 0x0020
1667#define LC_WIDESTYLED 0x0040
1668#define LC_INTERIORS 0x0080
1669
1670/* POLYGONALCAPS */
1671#define PC_NONE 0x0000
1672#define PC_POLYGON 0x0001
1673#define PC_RECTANGLE 0x0002
1674#define PC_WINDPOLYGON 0x0004
Francois Gouget6c97e452000-11-10 22:33:45 +00001675#define PC_TRAPEZOID 0x0004
Veksler Michael1346a3c1998-12-15 11:15:35 +00001676#define PC_SCANLINE 0x0008
1677#define PC_WIDE 0x0010
1678#define PC_STYLED 0x0020
1679#define PC_WIDESTYLED 0x0040
1680#define PC_INTERIORS 0x0080
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001681#define PC_POLYPOLYGON 0x0100
1682#define PC_PATHS 0x0200
Veksler Michael1346a3c1998-12-15 11:15:35 +00001683
1684/* TEXTCAPS */
1685#define TC_OP_CHARACTER 0x0001
1686#define TC_OP_STROKE 0x0002
1687#define TC_CP_STROKE 0x0004
1688#define TC_CR_90 0x0008
1689#define TC_CR_ANY 0x0010
1690#define TC_SF_X_YINDEP 0x0020
1691#define TC_SA_DOUBLE 0x0040
1692#define TC_SA_INTEGER 0x0080
1693#define TC_SA_CONTIN 0x0100
1694#define TC_EA_DOUBLE 0x0200
1695#define TC_IA_ABLE 0x0400
1696#define TC_UA_ABLE 0x0800
1697#define TC_SO_ABLE 0x1000
1698#define TC_RA_ABLE 0x2000
1699#define TC_VA_ABLE 0x4000
1700#define TC_RESERVED 0x8000
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001701#define TC_SCROLLBLT 0x00010000
Veksler Michael1346a3c1998-12-15 11:15:35 +00001702
1703/* CLIPCAPS */
1704#define CP_NONE 0x0000
1705#define CP_RECTANGLE 0x0001
1706#define CP_REGION 0x0002
1707
1708/* RASTERCAPS */
1709#define RC_NONE 0x0000
1710#define RC_BITBLT 0x0001
1711#define RC_BANDING 0x0002
1712#define RC_SCALING 0x0004
1713#define RC_BITMAP64 0x0008
1714#define RC_GDI20_OUTPUT 0x0010
1715#define RC_GDI20_STATE 0x0020
1716#define RC_SAVEBITMAP 0x0040
1717#define RC_DI_BITMAP 0x0080
1718#define RC_PALETTE 0x0100
1719#define RC_DIBTODEV 0x0200
1720#define RC_BIGFONT 0x0400
1721#define RC_STRETCHBLT 0x0800
1722#define RC_FLOODFILL 0x1000
1723#define RC_STRETCHDIB 0x2000
1724#define RC_OP_DX_OUTPUT 0x4000
1725#define RC_DEVBITS 0x8000
1726
Brian Teague161bc832000-11-29 20:02:46 +00001727/* CAPS1 */
1728
1729#define C1_TRANSPARENT 0x0001
1730#define TC_TT_ABLE 0x0002
1731#define C1_TT_CR_ANY 0x0004
1732#define C1_EMF_COMPLIANT 0x0008
1733#define C1_DIBENGINE 0x0010
1734#define C1_GAMMA_RAMP 0x0040
1735#define C1_REINIT_ABLE 0x0080
1736#define C1_GLYPH_INDEX 0x0100
1737#define C1_BIT_PACKED 0x0200
1738#define C1_BYTE_PACKED 0x0400
1739#define C1_COLORCURSOR 0x0800
1740#define C1_CMYK_ABLE 0x1000
1741#define C1_SLOW_CARD 0x2000
1742
Veksler Michael1346a3c1998-12-15 11:15:35 +00001743 /* Device-independent bitmaps */
1744
Alexandre Julliard73cc3ba1999-03-13 17:12:07 +00001745typedef struct {
1746 BYTE rgbBlue;
1747 BYTE rgbGreen;
1748 BYTE rgbRed;
1749 BYTE rgbReserved;
1750} RGBQUAD, *LPRGBQUAD;
1751
1752typedef struct {
1753 BYTE rgbtBlue;
1754 BYTE rgbtGreen;
1755 BYTE rgbtRed;
1756} RGBTRIPLE;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001757
Dimitrie O. Paun53f9c212003-08-28 21:43:34 +00001758#include <pshpack2.h>
Veksler Michael1346a3c1998-12-15 11:15:35 +00001759typedef struct
1760{
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001761 WORD bfType;
1762 DWORD bfSize;
1763 WORD bfReserved1;
1764 WORD bfReserved2;
1765 DWORD bfOffBits;
Francois Gouget6c97e452000-11-10 22:33:45 +00001766} BITMAPFILEHEADER, *PBITMAPFILEHEADER, *LPBITMAPFILEHEADER;
Dimitrie O. Paun53f9c212003-08-28 21:43:34 +00001767#include <poppack.h>
Veksler Michael1346a3c1998-12-15 11:15:35 +00001768
Alexandre Julliard83f52d12000-09-26 22:20:14 +00001769#define MAKEPOINTS(l) (*((POINTS *)&(l)))
1770
Veksler Michael1346a3c1998-12-15 11:15:35 +00001771typedef struct
1772{
1773 DWORD biSize;
1774 LONG biWidth;
1775 LONG biHeight;
1776 WORD biPlanes;
1777 WORD biBitCount;
1778 DWORD biCompression;
1779 DWORD biSizeImage;
1780 LONG biXPelsPerMeter;
1781 LONG biYPelsPerMeter;
1782 DWORD biClrUsed;
1783 DWORD biClrImportant;
Alexandre Julliard73cc3ba1999-03-13 17:12:07 +00001784} BITMAPINFOHEADER, *PBITMAPINFOHEADER, *LPBITMAPINFOHEADER;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001785
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001786typedef struct
1787{
1788 DWORD bV4Size;
1789 LONG bV4Width;
1790 LONG bV4Height;
1791 WORD bV4Planes;
1792 WORD bV4BitCount;
Patrik Stridvall1298eb42002-10-23 18:50:10 +00001793 DWORD bV4V4Compression;
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001794 DWORD bV4SizeImage;
1795 LONG bV4XPelsPerMeter;
1796 LONG bV4YPelsPerMeter;
1797 DWORD bV4ClrUsed;
1798 DWORD bV4ClrImportant;
1799 DWORD bV4RedMask;
1800 DWORD bV4GreenMask;
1801 DWORD bV4BlueMask;
1802 DWORD bV4AlphaMask;
1803 DWORD bV4CSType;
Steven Edwardsca14f242002-09-04 18:47:32 +00001804 CIEXYZTRIPLE bV4Endpoints;
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001805 DWORD bV4GammaRed;
1806 DWORD bV4GammaGreen;
1807 DWORD bV4GammaBlue;
1808} BITMAPV4HEADER, *PBITMAPV4HEADER;
1809
Francois Gougetf2e65752000-09-22 21:04:30 +00001810typedef struct {
1811 DWORD bV5Size;
1812 LONG bV5Width;
1813 LONG bV5Height;
1814 WORD bV5Planes;
1815 WORD bV5BitCount;
1816 DWORD bV5Compression;
1817 DWORD bV5SizeImage;
1818 LONG bV5XPelsPerMeter;
1819 LONG bV5YPelsPerMeter;
1820 DWORD bV5ClrUsed;
1821 DWORD bV5ClrImportant;
1822 DWORD bV5RedMask;
1823 DWORD bV5GreenMask;
1824 DWORD bV5BlueMask;
1825 DWORD bV5AlphaMask;
1826 DWORD bV5CSType;
1827 CIEXYZTRIPLE bV5Endpoints;
1828 DWORD bV5GammaRed;
1829 DWORD bV5GammaGreen;
1830 DWORD bV5GammaBlue;
1831 DWORD bV5Intent;
1832 DWORD bV5ProfileData;
1833 DWORD bV5ProfileSize;
1834 DWORD bV5Reserved;
1835} BITMAPV5HEADER, *LPBITMAPV5HEADER, *PBITMAPV5HEADER;
1836
1837#define PROFILE_LINKED 'LINK'
1838#define PROFILE_EMBEDDED 'MBED'
1839
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001840
Veksler Michael1346a3c1998-12-15 11:15:35 +00001841 /* biCompression */
1842#define BI_RGB 0
1843#define BI_RLE8 1
1844#define BI_RLE4 2
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001845#define BI_BITFIELDS 3
Veksler Michael1346a3c1998-12-15 11:15:35 +00001846
Dimitrie O. Paun64fd63f2004-04-09 19:02:07 +00001847typedef struct tagBITMAPINFO
1848{
1849 BITMAPINFOHEADER bmiHeader;
1850 RGBQUAD bmiColors[1];
Francois Gouget6c97e452000-11-10 22:33:45 +00001851} BITMAPINFO, *PBITMAPINFO, *LPBITMAPINFO;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001852
1853typedef struct
1854{
1855 DWORD bcSize;
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001856 WORD bcWidth;
1857 WORD bcHeight;
1858 WORD bcPlanes;
1859 WORD bcBitCount;
Francois Gouget6c97e452000-11-10 22:33:45 +00001860} BITMAPCOREHEADER, *PBITMAPCOREHEADER, *LPBITMAPCOREHEADER;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001861
1862typedef struct
1863{
1864 BITMAPCOREHEADER bmciHeader;
1865 RGBTRIPLE bmciColors[1];
Francois Gougetf2e65752000-09-22 21:04:30 +00001866} BITMAPCOREINFO, *PBITMAPCOREINFO, *LPBITMAPCOREINFO;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001867
1868#define DIB_RGB_COLORS 0
1869#define DIB_PAL_COLORS 1
1870#define CBM_INIT 4
1871
Vincent BĂ©ron9a624912002-05-31 23:06:46 +00001872typedef struct
Veksler Michael1346a3c1998-12-15 11:15:35 +00001873{
Alexandre Julliarda3960291999-02-26 11:11:13 +00001874 BITMAP dsBm;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001875 BITMAPINFOHEADER dsBmih;
1876 DWORD dsBitfields[3];
Alexandre Julliarda3960291999-02-26 11:11:13 +00001877 HANDLE dshSection;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001878 DWORD dsOffset;
Francois Gouget6c97e452000-11-10 22:33:45 +00001879} DIBSECTION, *PDIBSECTION, *LPDIBSECTION;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001880
1881 /* Stock GDI objects for GetStockObject() */
1882
1883#define WHITE_BRUSH 0
1884#define LTGRAY_BRUSH 1
1885#define GRAY_BRUSH 2
1886#define DKGRAY_BRUSH 3
1887#define BLACK_BRUSH 4
1888#define NULL_BRUSH 5
1889#define HOLLOW_BRUSH 5
1890#define WHITE_PEN 6
1891#define BLACK_PEN 7
1892#define NULL_PEN 8
1893#define OEM_FIXED_FONT 10
1894#define ANSI_FIXED_FONT 11
1895#define ANSI_VAR_FONT 12
1896#define SYSTEM_FONT 13
1897#define DEVICE_DEFAULT_FONT 14
1898#define DEFAULT_PALETTE 15
1899#define SYSTEM_FIXED_FONT 16
1900#define DEFAULT_GUI_FONT 17
Ulrich Czekalla16ff6682003-11-05 01:43:57 +00001901#define DC_BRUSH 18
1902#define DC_PEN 19
Veksler Michael1346a3c1998-12-15 11:15:35 +00001903
Ulrich Czekalla16ff6682003-11-05 01:43:57 +00001904#define STOCK_LAST 19
Alexandre Julliard8da12c41999-01-17 16:55:11 +00001905
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001906#define CLR_INVALID 0xffffffff
Veksler Michael1346a3c1998-12-15 11:15:35 +00001907/* Metafile header structure */
Dimitrie O. Paun53f9c212003-08-28 21:43:34 +00001908#include <pshpack2.h>
Veksler Michael1346a3c1998-12-15 11:15:35 +00001909typedef struct
1910{
1911 WORD mtType;
1912 WORD mtHeaderSize;
1913 WORD mtVersion;
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001914 DWORD mtSize;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001915 WORD mtNoObjects;
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001916 DWORD mtMaxRecord;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001917 WORD mtNoParameters;
Francois Gouget6c97e452000-11-10 22:33:45 +00001918} METAHEADER, *PMETAHEADER, *LPMETAHEADER;
Dimitrie O. Paun53f9c212003-08-28 21:43:34 +00001919#include <poppack.h>
Veksler Michael1346a3c1998-12-15 11:15:35 +00001920
1921/* Metafile typical record structure */
1922typedef struct
1923{
1924 DWORD rdSize;
1925 WORD rdFunction;
Alexandre Julliard8da12c41999-01-17 16:55:11 +00001926 WORD rdParm[1];
Francois Gouget6c97e452000-11-10 22:33:45 +00001927} METARECORD, *PMETARECORD, *LPMETARECORD;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001928
1929/* Handle table structure */
1930
1931typedef struct
1932{
Alexandre Julliarda3960291999-02-26 11:11:13 +00001933 HGDIOBJ objectHandle[1];
Francois Gouget6c97e452000-11-10 22:33:45 +00001934} HANDLETABLE, *PHANDLETABLE, *LPHANDLETABLE;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001935
Veksler Michael1346a3c1998-12-15 11:15:35 +00001936
1937/* Clipboard metafile picture structure */
1938typedef struct
1939{
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00001940 LONG mm;
1941 LONG xExt;
1942 LONG yExt;
Alexandre Julliarda3960291999-02-26 11:11:13 +00001943 HMETAFILE hMF;
1944} METAFILEPICT, *LPMETAFILEPICT;
Veksler Michael1346a3c1998-12-15 11:15:35 +00001945
Veksler Michael1346a3c1998-12-15 11:15:35 +00001946
1947/* Metafile functions */
1948#define META_SETBKCOLOR 0x0201
1949#define META_SETBKMODE 0x0102
1950#define META_SETMAPMODE 0x0103
1951#define META_SETROP2 0x0104
1952#define META_SETRELABS 0x0105
1953#define META_SETPOLYFILLMODE 0x0106
1954#define META_SETSTRETCHBLTMODE 0x0107
1955#define META_SETTEXTCHAREXTRA 0x0108
1956#define META_SETTEXTCOLOR 0x0209
1957#define META_SETTEXTJUSTIFICATION 0x020A
1958#define META_SETWINDOWORG 0x020B
1959#define META_SETWINDOWEXT 0x020C
1960#define META_SETVIEWPORTORG 0x020D
1961#define META_SETVIEWPORTEXT 0x020E
1962#define META_OFFSETWINDOWORG 0x020F
1963#define META_SCALEWINDOWEXT 0x0410
1964#define META_OFFSETVIEWPORTORG 0x0211
1965#define META_SCALEVIEWPORTEXT 0x0412
1966#define META_LINETO 0x0213
1967#define META_MOVETO 0x0214
1968#define META_EXCLUDECLIPRECT 0x0415
1969#define META_INTERSECTCLIPRECT 0x0416
1970#define META_ARC 0x0817
1971#define META_ELLIPSE 0x0418
1972#define META_FLOODFILL 0x0419
1973#define META_PIE 0x081A
1974#define META_RECTANGLE 0x041B
1975#define META_ROUNDRECT 0x061C
1976#define META_PATBLT 0x061D
1977#define META_SAVEDC 0x001E
1978#define META_SETPIXEL 0x041F
1979#define META_OFFSETCLIPRGN 0x0220
1980#define META_TEXTOUT 0x0521
1981#define META_BITBLT 0x0922
1982#define META_STRETCHBLT 0x0B23
1983#define META_POLYGON 0x0324
1984#define META_POLYLINE 0x0325
1985#define META_ESCAPE 0x0626
1986#define META_RESTOREDC 0x0127
1987#define META_FILLREGION 0x0228
1988#define META_FRAMEREGION 0x0429
1989#define META_INVERTREGION 0x012A
1990#define META_PAINTREGION 0x012B
1991#define META_SELECTCLIPREGION 0x012C
1992#define META_SELECTOBJECT 0x012D
1993#define META_SETTEXTALIGN 0x012E
1994#define META_DRAWTEXT 0x062F
1995#define META_CHORD 0x0830
1996#define META_SETMAPPERFLAGS 0x0231
1997#define META_EXTTEXTOUT 0x0A32
1998#define META_SETDIBTODEV 0x0D33
1999#define META_SELECTPALETTE 0x0234
2000#define META_REALIZEPALETTE 0x0035
2001#define META_ANIMATEPALETTE 0x0436
2002#define META_SETPALENTRIES 0x0037
2003#define META_POLYPOLYGON 0x0538
2004#define META_RESIZEPALETTE 0x0139
2005#define META_DIBBITBLT 0x0940
2006#define META_DIBSTRETCHBLT 0x0B41
2007#define META_DIBCREATEPATTERNBRUSH 0x0142
2008#define META_STRETCHDIB 0x0F43
2009#define META_EXTFLOODFILL 0x0548
2010#define META_RESETDC 0x014C
2011#define META_STARTDOC 0x014D
2012#define META_STARTPAGE 0x004F
2013#define META_ENDPAGE 0x0050
2014#define META_ABORTDOC 0x0052
2015#define META_ENDDOC 0x005E
2016#define META_DELETEOBJECT 0x01F0
2017#define META_CREATEPALETTE 0x00F7
2018#define META_CREATEBRUSH 0x00F8
2019#define META_CREATEPATTERNBRUSH 0x01F9
2020#define META_CREATEPENINDIRECT 0x02FA
2021#define META_CREATEFONTINDIRECT 0x02FB
2022#define META_CREATEBRUSHINDIRECT 0x02FC
2023#define META_CREATEBITMAPINDIRECT 0x02FD
2024#define META_CREATEBITMAP 0x06FE
2025#define META_CREATEREGION 0x06FF
2026#define META_UNKNOWN 0x0529 /* FIXME: unknown meta magic */
2027
Patrik Stridvallf94462f2002-01-31 23:22:07 +00002028typedef INT (CALLBACK *MFENUMPROC)(HDC,HANDLETABLE*,METARECORD*,
Alexandre Julliarda3960291999-02-26 11:11:13 +00002029 INT,LPARAM);
Veksler Michael1346a3c1998-12-15 11:15:35 +00002030
2031/* enhanced metafile structures and functions */
2032
2033/* note that ENHMETAHEADER is just a particular kind of ENHMETARECORD,
2034 ie. the header is just the first record in the metafile */
2035typedef struct {
Vincent BĂ©ron9a624912002-05-31 23:06:46 +00002036 DWORD iType;
2037 DWORD nSize;
2038 RECTL rclBounds;
2039 RECTL rclFrame;
2040 DWORD dSignature;
2041 DWORD nVersion;
2042 DWORD nBytes;
2043 DWORD nRecords;
2044 WORD nHandles;
2045 WORD sReserved;
2046 DWORD nDescription;
2047 DWORD offDescription;
2048 DWORD nPalEntries;
2049 SIZEL szlDevice;
Huw D M Daviesad1e06e1999-04-24 11:47:26 +00002050 SIZEL szlMillimeters;
Veksler Michael1346a3c1998-12-15 11:15:35 +00002051 DWORD cbPixelFormat;
2052 DWORD offPixelFormat;
2053 DWORD bOpenGL;
Peter Hunnisettf2b84922000-01-15 22:17:49 +00002054 SIZEL szlMicrometers;
Vincent BĂ©ron9a624912002-05-31 23:06:46 +00002055} ENHMETAHEADER, *PENHMETAHEADER, *LPENHMETAHEADER;
Veksler Michael1346a3c1998-12-15 11:15:35 +00002056
2057typedef struct {
Vincent BĂ©ron9a624912002-05-31 23:06:46 +00002058 DWORD iType;
2059 DWORD nSize;
2060 DWORD dParm[1];
2061} ENHMETARECORD, *LPENHMETARECORD;
Veksler Michael1346a3c1998-12-15 11:15:35 +00002062
Huw D M Daviesa7f21401999-04-22 09:51:53 +00002063typedef struct {
2064 DWORD iType;
2065 DWORD nSize;
2066} EMR, *PEMR;
2067
2068typedef struct {
2069 POINTL ptlReference;
2070 DWORD nChars;
2071 DWORD offString;
2072 DWORD fOptions;
2073 RECTL rcl;
2074 DWORD offDx;
2075} EMRTEXT, *PEMRTEXT;
2076
2077typedef struct {
2078 EMR emr;
2079} EMRABORTPATH, *PEMRABORTPATH,
2080 EMRBEGINPATH, *PEMRBEGINPATH,
2081 EMRENDPATH, *PEMRENDPATH,
2082 EMRCLOSEFIGURE, *PEMRCLOSEFIGURE,
2083 EMRFLATTENPATH, *PEMRFLATTENPATH,
2084 EMRWIDENPATH, *PEMRWIDENPATH,
2085 EMRSETMETARGN, *PEMRSETMETARGN,
2086 EMRSAVEDC, *PEMRSAVEDC,
2087 EMRREALIZEPALETTE, *PEMRREALIZEPALETTE;
2088
2089typedef struct {
2090 EMR emr;
2091 POINTL ptlCenter;
2092 DWORD nRadius;
2093 FLOAT eStartAngle;
2094 FLOAT eSweepAngle;
2095} EMRANGLEARC, *PEMRANGLEARC;
2096
2097typedef struct {
2098 EMR emr;
2099 RECTL rclBox;
2100 POINTL ptlStart;
2101 POINTL ptlEnd;
2102} EMRARC, *PEMRARC,
2103 EMRARCTO, *PEMRARCTO,
2104 EMRCHORD, *PEMRCHORD,
2105 EMRPIE, *PEMRPIE;
2106
2107typedef struct {
2108 EMR emr;
2109 RECTL rclBounds;
2110 LONG xDest;
2111 LONG yDest;
2112 LONG cxDest;
2113 LONG cyDest;
2114 DWORD dwRop;
2115 LONG xSrc;
2116 LONG ySrc;
2117 XFORM xformSrc;
2118 COLORREF crBkColorSrc;
Michael Cardenas6a52a502000-02-07 17:22:01 +00002119 DWORD iUsageSrc;
Huw D M Daviesa7f21401999-04-22 09:51:53 +00002120 DWORD offBmiSrc;
2121 DWORD cbBmiSrc;
2122 DWORD offBitsSrc;
2123 DWORD cbBitsSrc;
2124} EMRBITBLT, *PEMRBITBLT;
2125
2126typedef struct {
Alexandre Julliardf4bf9de2005-09-12 11:19:56 +00002127 EMR emr;
2128 DWORD ihBrush;
2129 LOGBRUSH32 lb;
Huw D M Daviesa7f21401999-04-22 09:51:53 +00002130} EMRCREATEBRUSHINDIRECT, *PEMRCREATEBRUSHINDIRECT;
2131
2132typedef struct {
2133 EMR emr;
2134 DWORD ihCS;
Peter Hunnisettf2b84922000-01-15 22:17:49 +00002135 LOGCOLORSPACEA lcs;
Huw D M Daviesa7f21401999-04-22 09:51:53 +00002136} EMRCREATECOLORSPACE, *PEMRCREATECOLORSPACE;
2137
2138typedef struct {
Peter Hunnisettf2b84922000-01-15 22:17:49 +00002139 EMR emr;
2140 DWORD ihCS;
2141 LOGCOLORSPACEW lcs;
2142 DWORD dwFlags;
2143 DWORD cbData;
2144 BYTE Data[1];
2145} EMRCREATECOLORSPACEW, *PEMRCREATECOLORSPACEW;
2146
2147typedef struct {
Huw D M Daviesa7f21401999-04-22 09:51:53 +00002148 EMR emr;
2149 DWORD ihBrush;
2150 DWORD iUsage;
2151 DWORD offBmi;
2152 DWORD cbBmi;
2153 DWORD offBits;
2154 DWORD cbBits;
2155} EMRCREATEDIBPATTERNBRUSHPT, *PEMRCREATEDIBPATTERNBRUSHPT;
2156
2157typedef struct {
2158 EMR emr;
2159 DWORD ihBrush;
2160 DWORD iUsage;
2161 DWORD offBmi;
2162 DWORD cbBmi;
2163 DWORD offBits;
2164 DWORD cbBits;
2165} EMRCREATEMONOBRUSH, *PEMRCREATEMONOBRUSH;
2166
2167typedef struct {
2168 EMR emr;
2169 DWORD ihPal;
2170 LOGPALETTE lgpl;
2171} EMRCREATEPALETTE, *PEMRCREATEPALETTE;
2172
2173typedef struct {
2174 EMR emr;
2175 DWORD ihPen;
2176 LOGPEN lopn;
2177} EMRCREATEPEN, *PEMRCREATEPEN;
2178
2179typedef struct {
2180 EMR emr;
2181 DWORD ihCS;
2182} EMRDELETECOLORSPACE, *PEMRDELETECOLORSPACE,
2183 EMRSELECTCOLORSPACE, *PEMRSELECTCOLORSPACE,
2184 EMRSETCOLORSPACE, *PEMRSETCOLORSPACE;
2185
2186typedef struct {
2187 EMR emr;
2188 DWORD ihObject;
2189} EMRDELETEOBJECT, *PEMRDELETEOBJECT,
2190 EMRSELECTOBJECT, *PEMRSELECTOBJECT;
2191
2192typedef struct {
2193 EMR emr;
2194 RECTL rclBox;
2195} EMRELLIPSE, *PEMRELLIPSE,
2196 EMRRECTANGLE, *PEMRRECTANGLE;
2197
2198typedef struct {
2199 EMR emr;
2200 DWORD nPalEntries;
2201 DWORD offPalEntries;
2202 DWORD nSizeLast;
2203} EMREOF, *PEMREOF;
2204
2205typedef struct {
2206 EMR emr;
2207 RECTL rclClip;
2208} EMREXCLUDECLIPRECT, *PEMREXCLUDECLIPRECT,
2209 EMRINTERSECTCLIPRECT, *PEMRINTERSECTCLIPRECT;
2210
Huw D M Daviesa7f21401999-04-22 09:51:53 +00002211typedef struct {
2212 EMR emr;
2213 DWORD ihFont;
2214 EXTLOGFONTW elfw;
2215} EMREXTCREATEFONTINDIRECTW, *PEMREXTCREATEFONTINDIRECTW;
Huw D M Daviesa7f21401999-04-22 09:51:53 +00002216
2217typedef struct {
2218 EMR emr;
2219 DWORD ihPen;
2220 DWORD offBmi;
2221 DWORD cbBmi;
2222 DWORD offBits;
2223 DWORD cbBits;
2224 EXTLOGPEN elp;
2225} EMREXTCREATEPEN, *PEMREXTCREATEPEN;
2226
2227typedef struct {
2228 EMR emr;
2229 POINTL ptlStart;
2230 COLORREF crColor;
2231 DWORD iMode;
2232} EMREXTFLOODFILL, *PEMREXTFLOODFILL;
2233
2234typedef struct {
2235 EMR emr;
2236 DWORD cbRgnData;
2237 DWORD iMode;
2238 BYTE RgnData[1];
2239} EMREXTSELECTCLIPRGN, *PEMREXTSELECTCLIPRGN;
2240
2241typedef struct {
2242 EMR emr;
2243 RECTL rclBounds;
2244 DWORD iGraphicsMode;
2245 FLOAT exScale;
2246 FLOAT eyScale;
2247 EMRTEXT emrtext;
2248} EMREXTTEXTOUTA, *PEMREXTTEXTOUTA,
2249 EMREXTTEXTOUTW, *PEMREXTTEXTOUTW;
2250
2251typedef struct {
2252 EMR emr;
2253 RECTL rclBounds;
2254} EMRFILLPATH, *PEMRFILLPATH,
2255 EMRSTROKEANDFILLPATH, *PEMRSTROKEANDFILLPATH,
2256 EMRSTROKEPATH, *PEMRSTROKEPATH;
2257
2258typedef struct {
2259 EMR emr;
2260 RECTL rclBounds;
2261 DWORD cbRgnData;
2262 DWORD ihBrush;
2263 BYTE RgnData[1];
2264} EMRFILLRGN, *PEMRFILLRGN;
2265
2266typedef struct {
Patrik Stridvall1298eb42002-10-23 18:50:10 +00002267 DWORD dSignature;
Huw D M Daviesa7f21401999-04-22 09:51:53 +00002268 DWORD nVersion;
2269 DWORD cbData;
2270 DWORD offData;
2271} EMRFORMAT, *PEMRFORMAT;
2272
2273typedef struct {
2274 EMR emr;
2275 RECTL rclBounds;
2276 DWORD cbRgnData;
2277 DWORD ihBrush;
2278 SIZEL szlStroke;
2279 BYTE RgnData[1];
2280} EMRFRAMERGN, *PEMRFRAMERGN;
2281
2282typedef struct {
2283 EMR emr;
2284 DWORD cbData;
2285 BYTE Data[1];
Francois Gouget6c97e452000-11-10 22:33:45 +00002286} EMRGDICOMMENT, *PEMRGDICOMMENT;
Huw D M Daviesa7f21401999-04-22 09:51:53 +00002287
2288#if 0
2289typedef struct {
2290 EMR emr;
2291 RECTL rclBounds;
2292 DWORD nVer;
2293 DWORD nTri;
2294 ULONG ulMode;
2295 TRIVERTEX Ver[1];
2296} EMRGRADIENTFILL, *PEMRGRADIENTFILL;
2297#endif
2298
2299typedef struct {
2300 EMR emr;
2301 RECTL rclBounds;
2302 DWORD cbRgnData;
2303 BYTE RgnData[1];
2304} EMRINVERTRGN, *PEMRINVERTRGN,
2305 EMRPAINTRGN, *PEMRPAINTRGN;
2306
2307typedef struct {
2308 EMR emr;
2309 POINTL ptl;
2310} EMRLINETO, *PEMRLINETO,
2311 EMRMOVETOEX, *PEMRMOVETOEX;
2312
2313typedef struct {
2314 EMR emr;
2315 RECTL rclBounds;
2316 LONG xDest;
2317 LONG yDest;
2318 LONG cxDest;
2319 LONG cyDest;
2320 DWORD dwRop;
2321 LONG xSrc;
2322 LONG ySrc;
2323 XFORM xformSrc;
2324 COLORREF crBkColorSrc;
2325 DWORD iUsageSrc;
2326 DWORD offBmiSrc;
2327 DWORD cbBmiSrc;
2328 DWORD offBitsSrc;
2329 DWORD cbBitsSrc;
2330 LONG xMask;
2331 LONG yMask;
2332 DWORD iUsageMask;
2333 DWORD offBmiMask;
2334 DWORD cbBmiMask;
2335 DWORD offBitsMask;
2336 DWORD cbBitsMask;
2337} EMRMASKBLT, *PEMRMASKBLT;
2338
2339typedef struct {
2340 EMR emr;
2341 XFORM xform;
2342 DWORD iMode;
2343} EMRMODIFYWORLDTRANSFORM, *PEMRMODIFYWORLDTRANSFORM;
2344
2345typedef struct {
2346 EMR emr;
2347 POINTL ptlOffset;
2348} EMROFFSETCLIPRGN, *PEMROFFSETCLIPRGN;
2349
2350typedef struct {
2351 EMR emr;
2352 RECTL rclBounds;
Patrik Stridvall1298eb42002-10-23 18:50:10 +00002353 POINTL aptlDest[3];
Huw D M Daviesa7f21401999-04-22 09:51:53 +00002354 LONG xSrc;
2355 LONG ySrc;
2356 LONG cxSrc;
2357 LONG cySrc;
2358 XFORM xformSrc;
2359 COLORREF crBkColorSrc;
2360 DWORD iUsageSrc;
2361 DWORD offBmiSrc;
2362 DWORD cbBmiSrc;
2363 DWORD offBitsSrc;
2364 DWORD cbBitsSrc;
2365 LONG xMask;
2366 LONG yMask;
2367 DWORD iUsageMask;
2368 DWORD offBmiMask;
2369 DWORD cbBmiMask;
Vincent BĂ©ron9a624912002-05-31 23:06:46 +00002370 DWORD offBitsMask;
Huw D M Daviesa7f21401999-04-22 09:51:53 +00002371 DWORD cbBitsMask;
2372} EMRPLGBLT, *PEMRPLGBLT;
2373
2374typedef struct {
2375 EMR emr;
2376 RECTL rclBounds;
2377 DWORD cptl;
2378 POINTL aptl[1];
2379} EMRPOLYLINE, *PEMRPOLYLINE,
2380 EMRPOLYBEZIER, *PEMRPOLYBEZIER,
2381 EMRPOLYGON, *PEMRPOLYGON,
2382 EMRPOLYBEZIERTO, *PEMRPOLYBEZIERTO,
2383 EMRPOLYLINETO, *PEMRPOLYLINETO;
2384
2385typedef struct {
2386 EMR emr;
2387 RECTL rclBounds;
Mike McCormack23d03672004-03-29 23:04:11 +00002388 DWORD cpts;
2389 POINTS apts[1];
2390} EMRPOLYLINE16, *PEMRPOLYLINE16,
2391 EMRPOLYBEZIER16, *PEMRPOLYBEZIER16,
2392 EMRPOLYGON16, *PEMRPOLYGON16,
2393 EMRPOLYBEZIERTO16, *PEMRPOLYBEZIERTO16,
2394 EMRPOLYLINETO16, *PEMRPOLYLINETO16;
2395
2396typedef struct {
2397 EMR emr;
2398 RECTL rclBounds;
2399 DWORD cpts;
2400 POINTS apts[1];
2401 BYTE abTypes[1];
2402} EMRPOLYDRAW16, *PEMRPOLYDRAW16;
2403
2404typedef struct {
2405 EMR emr;
2406 RECTL rclBounds;
2407 DWORD nPolys;
2408 DWORD cpts;
2409 DWORD aPolyCounts[1];
2410 POINTS apts[1];
2411} EMRPOLYPOLYLINE16, *PEMRPOLYPOLYLINE16,
2412 EMRPOLYPOLYGON16, *PEMRPOLYPOLYGON16;
2413
2414typedef struct {
2415 EMR emr;
2416 RECTL rclBounds;
Huw D M Daviesa7f21401999-04-22 09:51:53 +00002417 DWORD cptl;
2418 POINTL aptl[1];
2419 BYTE abTypes[1];
Vincent BĂ©ron9a624912002-05-31 23:06:46 +00002420} EMRPOLYDRAW, *PEMRPOLYDRAW;
Huw D M Daviesa7f21401999-04-22 09:51:53 +00002421
2422typedef struct {
Huw D M Daviesa7f21401999-04-22 09:51:53 +00002423 EMR emr;
2424 RECTL rclBounds;
2425 DWORD nPolys;
2426 DWORD cptl;
2427 DWORD aPolyCounts[1];
2428 POINTL aptl[1];
2429} EMRPOLYPOLYLINE, *PEMRPOLYPOLYLINE,
2430 EMRPOLYPOLYGON, *PEMRPOLYPOLYGON;
2431
2432typedef struct {
2433 EMR emr;
2434 RECTL rclBounds;
Huw D M Daviesa7f21401999-04-22 09:51:53 +00002435 DWORD iGraphicsMode;
2436 FLOAT exScale;
2437 FLOAT eyScale;
2438 LONG cStrings;
2439 EMRTEXT aemrtext[1];
2440} EMRPOLYTEXTOUTA, *PEMRPOLYTEXTOUTA,
2441 EMRPOLYTEXTOUTW, *PEMRPOLYTEXTOUTW;
2442
2443typedef struct {
2444 EMR emr;
2445 DWORD ihPal;
2446 DWORD cEntries;
2447} EMRRESIZEPALETTE, *PEMRRESIZEPALETTE;
2448
2449typedef struct {
2450 EMR emr;
2451 LONG iRelative;
2452} EMRRESTOREDC, *PEMRRESTOREDC;
2453
2454typedef struct {
2455 EMR emr;
2456 RECTL rclBox;
2457 SIZEL szlCorner;
2458} EMRROUNDRECT, *PEMRROUNDRECT;
2459
2460typedef struct {
2461 EMR emr;
2462 LONG xNum;
2463 LONG xDenom;
2464 LONG yNum;
2465 LONG yDenom;
2466} EMRSCALEVIEWPORTEXTEX, *PEMRSCALEVIEWPORTEXTEX,
2467 EMRSCALEWINDOWEXTEX, *PEMRSCALEWINDOWEXTEX;
2468
2469typedef struct {
2470 EMR emr;
Huw D M Davies585c8461999-05-02 09:23:51 +00002471 DWORD iMode;
2472} EMRSELECTCLIPPATH, *PEMRSELECTCLIPPATH,
2473 EMRSETBKMODE, *PEMRSETBKMODE,
2474 EMRSETMAPMODE, *PEMRSETMAPMODE,
2475 EMRSETPOLYFILLMODE, *PEMRSETPOLYFILLMODE,
2476 EMRSETROP2, *PEMRSETROP2,
2477 EMRSETSTRETCHBLTMODE, *PEMRSETSTRETCHBLTMODE,
2478 EMRSETTEXTALIGN, *PEMRSETTEXTALIGN,
Patrik Stridvallba9dc782002-11-04 22:43:24 +00002479 EMRSETICMMODE, *PEMRSETICMMODE,
Huw D M Davies585c8461999-05-02 09:23:51 +00002480 EMRSETLAYOUT, *PEMRSETLAYOUT;
2481
2482typedef struct {
2483 EMR emr;
Huw D M Daviesa7f21401999-04-22 09:51:53 +00002484 DWORD ihPal;
2485} EMRSELECTPALETTE, *PEMRSELECTPALETTE;
2486
2487typedef struct {
2488 EMR emr;
2489 DWORD iArcDirection;
2490} EMRSETARCDIRECTION, *PEMRSETARCDIRECTION;
2491
2492typedef struct {
2493 EMR emr;
2494 COLORREF crColor;
2495} EMRSETBKCOLOR, *PEMRSETBKCOLOR,
2496 EMRSETTEXTCOLOR, *PEMRSETTEXTCOLOR;
2497
2498typedef struct {
2499 EMR emr;
2500 POINTL ptlOrigin;
2501} EMRSETBRUSHORGEX, *PEMRSETBRUSHORGEX,
2502 EMRSETVIEWPORTORGEX, *PEMRSETVIEWPORTORGEX,
2503 EMRSETWINDOWORGEX, *PEMRSETWINDOWORGEX;
2504
2505typedef struct {
2506 EMR emr;
2507 COLORADJUSTMENT ColorAdjustment;
2508} EMRSETCOLORADJUSTMENT, *PEMRSETCOLORADJUSTMENT;
2509
2510typedef struct {
2511 EMR emr;
2512 RECTL rclBounds;
2513 LONG xDest;
2514 LONG yDest;
2515 LONG xSrc;
2516 LONG ySrc;
2517 LONG cxSrc;
2518 LONG cySrc;
2519 DWORD offBmiSrc;
2520 DWORD cbBmiSrc;
2521 DWORD offBitsSrc;
2522 DWORD cbBitsSrc;
2523 DWORD iUsageSrc;
2524 DWORD iStartScan;
2525 DWORD cScans;
Patrik Stridvall1e22e3b2002-10-29 21:23:33 +00002526} EMRSETDIBITSTODEVICE, *PEMRSETDIBITSTODEVICE;
Huw D M Daviesa7f21401999-04-22 09:51:53 +00002527
2528typedef struct {
2529 EMR emr;
2530 DWORD dwFlags;
2531} EMRSETMAPPERFLAGS, *PEMRSETMAPPERFLAGS;
2532
2533typedef struct {
2534 EMR emr;
2535 FLOAT eMiterLimit;
2536} EMRSETMITERLIMIT, *PEMRSETMITERLIMIT;
2537
2538typedef struct {
2539 EMR emr;
2540 DWORD ihPal;
2541 DWORD iStart;
2542 DWORD cEntries;
2543 PALETTEENTRY aPalEntries[1];
2544} EMRSETPALETTEENTRIES, *PEMRSETPALETTEENTRIES;
2545
2546typedef struct {
2547 EMR emr;
2548 POINTL ptlPixel;
2549 COLORREF crColor;
2550} EMRSETPIXELV, *PEMRSETPIXELV;
2551
2552typedef struct {
2553 EMR emr;
2554 SIZEL szlExtent;
2555} EMRSETVIEWPORTEXTEX, *PEMRSETVIEWPORTEXTEX,
2556 EMRSETWINDOWEXTEX, *PEMRSETWINDOWEXTEX;
2557
2558typedef struct {
2559 EMR emr;
2560 XFORM xform;
2561} EMRSETWORLDTRANSFORM, *PEMRSETWORLDTRANSFORM;
2562
2563typedef struct {
2564 EMR emr;
2565 RECTL rclBounds;
2566 LONG xDest;
2567 LONG yDest;
2568 LONG cxDest;
2569 LONG cyDest;
2570 DWORD dwRop;
2571 LONG xSrc;
2572 LONG ySrc;
2573 XFORM xformSrc;
2574 COLORREF crBkColorSrc;
2575 DWORD iUsageSrc;
2576 DWORD offBmiSrc;
2577 DWORD cbBmiSrc;
2578 DWORD offBitsSrc;
2579 DWORD cbBitsSrc;
2580 LONG cxSrc;
2581 LONG cySrc;
2582} EMRSTRETCHBLT, *PEMRSTRETCHBLT;
2583
2584typedef struct {
Huw Davies063824d2005-10-31 21:04:18 +00002585 EMR emr;
2586 RECTL rclBounds;
2587 LONG xDest;
2588 LONG yDest;
2589 LONG cxDest;
2590 LONG cyDest;
2591 DWORD dwRop;
2592 LONG xSrc;
2593 LONG ySrc;
2594 XFORM xformSrc;
2595 COLORREF crBkColorSrc;
2596 DWORD iUsageSrc;
2597 DWORD offBmiSrc;
2598 DWORD cbBmiSrc;
2599 DWORD offBitsSrc;
2600 DWORD cbBitsSrc;
2601 LONG cxSrc;
2602 LONG cySrc;
2603} EMRALPHABLEND, *PEMRALPHABLEND;
2604
2605typedef struct {
Huw D M Daviesa7f21401999-04-22 09:51:53 +00002606 EMR emr;
2607 RECTL rclBounds;
2608 LONG xDest;
2609 LONG yDest;
2610 LONG xSrc;
2611 LONG ySrc;
2612 LONG cxSrc;
2613 LONG cySrc;
2614 DWORD offBmiSrc;
2615 DWORD cbBmiSrc;
2616 DWORD offBitsSrc;
2617 DWORD cbBitsSrc;
Michael Cardenas6a52a502000-02-07 17:22:01 +00002618 DWORD iUsageSrc;
Huw D M Daviesa7f21401999-04-22 09:51:53 +00002619 DWORD dwRop;
2620 LONG cxDest;
Michael Cardenas6a52a502000-02-07 17:22:01 +00002621 LONG cyDest;
Huw D M Daviesa7f21401999-04-22 09:51:53 +00002622} EMRSTRETCHDIBITS, *PEMRSTRETCHDIBITS;
2623
Peter Hunnisettf2b84922000-01-15 22:17:49 +00002624typedef struct {
Vincent BĂ©ron9a624912002-05-31 23:06:46 +00002625 EMR emr;
2626 PIXELFORMATDESCRIPTOR pfd;
Peter Hunnisettf2b84922000-01-15 22:17:49 +00002627} EMRPIXELFORMAT, *PEMRPIXELFORMAT;
2628
2629typedef struct tagEMRGLSRECORD {
2630 EMR emr;
2631 DWORD cbData;
2632 BYTE Data[1];
2633} EMRGLSRECORD, *PEMRGLSRECORD;
2634
2635typedef struct {
2636 EMR emr;
2637 RECTL rclBounds;
2638 DWORD cbData;
2639 BYTE Data[1];
Vincent BĂ©ron9a624912002-05-31 23:06:46 +00002640} EMRGLSBOUNDEDRECORD, *PEMRGLSBOUNDEDRECORD;
Peter Hunnisettf2b84922000-01-15 22:17:49 +00002641
Ulrich Czekalla550b97e2002-06-24 23:09:19 +00002642typedef struct {
2643 EMR emr;
2644 INT nBreakExtra;
2645 INT nBreakCount;
2646} EMRSETTEXTJUSTIFICATION, *PEMRSETTEXTJUSTIFICATION;
2647
Alexandre Julliard80774de2003-02-14 23:30:27 +00002648typedef INT (CALLBACK *ENHMFENUMPROC)(HDC, HANDLETABLE *,
2649 const ENHMETARECORD *, INT, LPARAM);
Veksler Michael1346a3c1998-12-15 11:15:35 +00002650
2651#define EMR_HEADER 1
2652#define EMR_POLYBEZIER 2
2653#define EMR_POLYGON 3
2654#define EMR_POLYLINE 4
2655#define EMR_POLYBEZIERTO 5
2656#define EMR_POLYLINETO 6
2657#define EMR_POLYPOLYLINE 7
2658#define EMR_POLYPOLYGON 8
2659#define EMR_SETWINDOWEXTEX 9
2660#define EMR_SETWINDOWORGEX 10
2661#define EMR_SETVIEWPORTEXTEX 11
2662#define EMR_SETVIEWPORTORGEX 12
2663#define EMR_SETBRUSHORGEX 13
2664#define EMR_EOF 14
2665#define EMR_SETPIXELV 15
2666#define EMR_SETMAPPERFLAGS 16
2667#define EMR_SETMAPMODE 17
2668#define EMR_SETBKMODE 18
2669#define EMR_SETPOLYFILLMODE 19
2670#define EMR_SETROP2 20
2671#define EMR_SETSTRETCHBLTMODE 21
2672#define EMR_SETTEXTALIGN 22
2673#define EMR_SETCOLORADJUSTMENT 23
2674#define EMR_SETTEXTCOLOR 24
2675#define EMR_SETBKCOLOR 25
2676#define EMR_OFFSETCLIPRGN 26
2677#define EMR_MOVETOEX 27
2678#define EMR_SETMETARGN 28
2679#define EMR_EXCLUDECLIPRECT 29
2680#define EMR_INTERSECTCLIPRECT 30
2681#define EMR_SCALEVIEWPORTEXTEX 31
2682#define EMR_SCALEWINDOWEXTEX 32
2683#define EMR_SAVEDC 33
2684#define EMR_RESTOREDC 34
2685#define EMR_SETWORLDTRANSFORM 35
2686#define EMR_MODIFYWORLDTRANSFORM 36
2687#define EMR_SELECTOBJECT 37
2688#define EMR_CREATEPEN 38
2689#define EMR_CREATEBRUSHINDIRECT 39
2690#define EMR_DELETEOBJECT 40
2691#define EMR_ANGLEARC 41
2692#define EMR_ELLIPSE 42
2693#define EMR_RECTANGLE 43
2694#define EMR_ROUNDRECT 44
2695#define EMR_ARC 45
2696#define EMR_CHORD 46
2697#define EMR_PIE 47
2698#define EMR_SELECTPALETTE 48
2699#define EMR_CREATEPALETTE 49
2700#define EMR_SETPALETTEENTRIES 50
2701#define EMR_RESIZEPALETTE 51
2702#define EMR_REALIZEPALETTE 52
2703#define EMR_EXTFLOODFILL 53
2704#define EMR_LINETO 54
2705#define EMR_ARCTO 55
2706#define EMR_POLYDRAW 56
2707#define EMR_SETARCDIRECTION 57
2708#define EMR_SETMITERLIMIT 58
2709#define EMR_BEGINPATH 59
2710#define EMR_ENDPATH 60
2711#define EMR_CLOSEFIGURE 61
2712#define EMR_FILLPATH 62
2713#define EMR_STROKEANDFILLPATH 63
2714#define EMR_STROKEPATH 64
2715#define EMR_FLATTENPATH 65
2716#define EMR_WIDENPATH 66
2717#define EMR_SELECTCLIPPATH 67
2718#define EMR_ABORTPATH 68
2719#define EMR_GDICOMMENT 70
2720#define EMR_FILLRGN 71
2721#define EMR_FRAMERGN 72
2722#define EMR_INVERTRGN 73
2723#define EMR_PAINTRGN 74
2724#define EMR_EXTSELECTCLIPRGN 75
2725#define EMR_BITBLT 76
2726#define EMR_STRETCHBLT 77
2727#define EMR_MASKBLT 78
2728#define EMR_PLGBLT 79
2729#define EMR_SETDIBITSTODEVICE 80
2730#define EMR_STRETCHDIBITS 81
2731#define EMR_EXTCREATEFONTINDIRECTW 82
2732#define EMR_EXTTEXTOUTA 83
2733#define EMR_EXTTEXTOUTW 84
2734#define EMR_POLYBEZIER16 85
2735#define EMR_POLYGON16 86
2736#define EMR_POLYLINE16 87
2737#define EMR_POLYBEZIERTO16 88
2738#define EMR_POLYLINETO16 89
2739#define EMR_POLYPOLYLINE16 90
2740#define EMR_POLYPOLYGON16 91
2741#define EMR_POLYDRAW16 92
2742#define EMR_CREATEMONOBRUSH 93
2743#define EMR_CREATEDIBPATTERNBRUSHPT 94
2744#define EMR_EXTCREATEPEN 95
2745#define EMR_POLYTEXTOUTA 96
2746#define EMR_POLYTEXTOUTW 97
2747#define EMR_SETICMMODE 98
2748#define EMR_CREATECOLORSPACE 99
2749#define EMR_SETCOLORSPACE 100
2750#define EMR_DELETECOLORSPACE 101
2751#define EMR_GLSRECORD 102
2752#define EMR_GLSBOUNDEDRECORD 103
2753#define EMR_PIXELFORMAT 104
Ulrich Czekalla550b97e2002-06-24 23:09:19 +00002754#define EMR_DRAWESCAPE 105
2755#define EMR_EXTESCAPE 106
2756#define EMR_STARTDOC 107
2757#define EMR_SMALLTEXTOUT 108
2758#define EMR_FORCEUFIMAPPING 109
2759#define EMR_NAMEDESCAPE 110
2760#define EMR_COLORCORRECTPALETTE 111
2761#define EMR_SETICMPROFILEA 112
2762#define EMR_SETICMPROFILEW 113
2763#define EMR_ALPHABLEND 114
2764#define EMR_SETLAYOUT 115
2765#define EMR_TRANSPARENTBLT 116
2766#define EMR_RESERVED_117 117
2767#define EMR_GRADIENTFILL 118
2768#define EMR_SETLINKEDUFI 119
2769#define EMR_SETTEXTJUSTIFICATION 120
2770#define EMR_COLORMATCHTOTARGETW 121
2771#define EMR_CREATECOLORSPACEW 122
Veksler Michael1346a3c1998-12-15 11:15:35 +00002772
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00002773#define EMR_MIN 1
Ulrich Czekalla550b97e2002-06-24 23:09:19 +00002774#define EMR_MAX 122
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00002775
Veksler Michael1346a3c1998-12-15 11:15:35 +00002776#define ENHMETA_SIGNATURE 1179469088
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00002777#define ENHMETA_STOCK_OBJECT 0x80000000
2778
Alexandre Julliard80774de2003-02-14 23:30:27 +00002779#define GDICOMMENT_IDENTIFIER 0x43494447
2780#define GDICOMMENT_WINDOWS_METAFILE 0x80000001
2781#define GDICOMMENT_BEGINGROUP 0x00000002
2782#define GDICOMMENT_ENDGROUP 0x00000003
2783#define GDICOMMENT_MULTIFORMATS 0x40000004
2784#define GDICOMMENT_UNICODE_STRING 0x00000040
2785#define GDICOMMENT_UNICODE_END 0x00000080
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00002786#define EPS_SIGNATURE 0x46535045
Veksler Michael1346a3c1998-12-15 11:15:35 +00002787
2788#define CCHDEVICENAME 32
2789#define CCHFORMNAME 32
2790
2791typedef struct
2792{
2793 BYTE dmDeviceName[CCHDEVICENAME];
2794 WORD dmSpecVersion;
2795 WORD dmDriverVersion;
2796 WORD dmSize;
2797 WORD dmDriverExtra;
2798 DWORD dmFields;
Huw D M Daviese39b6761999-05-17 16:20:51 +00002799 union {
2800 struct {
Dimitrie O. Paund985e662002-12-23 01:33:00 +00002801 short dmOrientation;
2802 short dmPaperSize;
2803 short dmPaperLength;
2804 short dmPaperWidth;
Francois Gouget6c97e452000-11-10 22:33:45 +00002805 } DUMMYSTRUCTNAME1;
Huw D M Daviese39b6761999-05-17 16:20:51 +00002806 POINTL dmPosition;
Francois Gouget6c97e452000-11-10 22:33:45 +00002807 } DUMMYUNIONNAME1;
Dimitrie O. Paund985e662002-12-23 01:33:00 +00002808 short dmScale;
2809 short dmCopies;
2810 short dmDefaultSource;
2811 short dmPrintQuality;
2812 short dmColor;
2813 short dmDuplex;
2814 short dmYResolution;
2815 short dmTTOption;
2816 short dmCollate;
Veksler Michael1346a3c1998-12-15 11:15:35 +00002817 BYTE dmFormName[CCHFORMNAME];
2818 WORD dmLogPixels;
2819 DWORD dmBitsPerPel;
2820 DWORD dmPelsWidth;
2821 DWORD dmPelsHeight;
2822 DWORD dmDisplayFlags;
2823 DWORD dmDisplayFrequency;
2824 DWORD dmICMMethod;
2825 DWORD dmICMIntent;
2826 DWORD dmMediaType;
2827 DWORD dmDitherType;
2828 DWORD dmReserved1;
2829 DWORD dmReserved2;
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00002830 DWORD dmPanningWidth;
2831 DWORD dmPanningHeight;
Alexandre Julliard73cc3ba1999-03-13 17:12:07 +00002832} DEVMODEA, *PDEVMODEA, *LPDEVMODEA;
Veksler Michael1346a3c1998-12-15 11:15:35 +00002833
2834typedef struct
2835{
2836 WCHAR dmDeviceName[CCHDEVICENAME];
2837 WORD dmSpecVersion;
2838 WORD dmDriverVersion;
2839 WORD dmSize;
2840 WORD dmDriverExtra;
2841 DWORD dmFields;
Huw D M Daviese39b6761999-05-17 16:20:51 +00002842 union {
2843 struct {
Dimitrie O. Paund985e662002-12-23 01:33:00 +00002844 short dmOrientation;
2845 short dmPaperSize;
2846 short dmPaperLength;
2847 short dmPaperWidth;
Francois Gouget6c97e452000-11-10 22:33:45 +00002848 } DUMMYSTRUCTNAME1;
Huw D M Daviese39b6761999-05-17 16:20:51 +00002849 POINTL dmPosition;
Francois Gouget6c97e452000-11-10 22:33:45 +00002850 } DUMMYUNIONNAME1;
Dimitrie O. Paund985e662002-12-23 01:33:00 +00002851 short dmScale;
2852 short dmCopies;
2853 short dmDefaultSource;
2854 short dmPrintQuality;
2855 short dmColor;
2856 short dmDuplex;
2857 short dmYResolution;
2858 short dmTTOption;
2859 short dmCollate;
Veksler Michael1346a3c1998-12-15 11:15:35 +00002860 WCHAR dmFormName[CCHFORMNAME];
2861 WORD dmLogPixels;
2862 DWORD dmBitsPerPel;
2863 DWORD dmPelsWidth;
2864 DWORD dmPelsHeight;
2865 DWORD dmDisplayFlags;
2866 DWORD dmDisplayFrequency;
2867 DWORD dmICMMethod;
2868 DWORD dmICMIntent;
2869 DWORD dmMediaType;
2870 DWORD dmDitherType;
2871 DWORD dmReserved1;
2872 DWORD dmReserved2;
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00002873 DWORD dmPanningWidth;
2874 DWORD dmPanningHeight;
Alexandre Julliard73cc3ba1999-03-13 17:12:07 +00002875} DEVMODEW, *PDEVMODEW, *LPDEVMODEW;
Veksler Michael1346a3c1998-12-15 11:15:35 +00002876
2877DECL_WINELIB_TYPE_AW(DEVMODE)
Alexandre Julliard73cc3ba1999-03-13 17:12:07 +00002878DECL_WINELIB_TYPE_AW(PDEVMODE)
Veksler Michael1346a3c1998-12-15 11:15:35 +00002879DECL_WINELIB_TYPE_AW(LPDEVMODE)
2880
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00002881#define DM_SPECVERSION 0x401
Huw D M Daviesed6d4591999-03-28 15:20:00 +00002882#define DM_UPDATE 1
2883#define DM_COPY 2
2884#define DM_PROMPT 4
2885#define DM_MODIFY 8
2886
2887#define DM_IN_BUFFER DM_MODIFY
2888#define DM_IN_PROMPT DM_PROMPT
2889#define DM_OUT_BUFFER DM_COPY
2890#define DM_OUT_DEFAULT DM_UPDATE
2891
2892#define DM_ORIENTATION 0x00000001L
2893#define DM_PAPERSIZE 0x00000002L
2894#define DM_PAPERLENGTH 0x00000004L
2895#define DM_PAPERWIDTH 0x00000008L
2896#define DM_SCALE 0x00000010L
Huw D M Daviese39b6761999-05-17 16:20:51 +00002897#define DM_POSITION 0x00000020L
Huw D M Daviesed6d4591999-03-28 15:20:00 +00002898#define DM_COPIES 0x00000100L
2899#define DM_DEFAULTSOURCE 0x00000200L
2900#define DM_PRINTQUALITY 0x00000400L
2901#define DM_COLOR 0x00000800L
2902#define DM_DUPLEX 0x00001000L
2903#define DM_YRESOLUTION 0x00002000L
2904#define DM_TTOPTION 0x00004000L
Huw D M Daviese39b6761999-05-17 16:20:51 +00002905#define DM_COLLATE 0x00008000L
2906#define DM_FORMNAME 0x00010000L
2907#define DM_LOGPIXELS 0x00020000L
Huw D M Daviesed6d4591999-03-28 15:20:00 +00002908#define DM_BITSPERPEL 0x00040000L
2909#define DM_PELSWIDTH 0x00080000L
2910#define DM_PELSHEIGHT 0x00100000L
2911#define DM_DISPLAYFLAGS 0x00200000L
2912#define DM_DISPLAYFREQUENCY 0x00400000L
Huw D M Daviese39b6761999-05-17 16:20:51 +00002913#define DM_ICMMETHOD 0x00800000L
2914#define DM_ICMINTENT 0x01000000L
2915#define DM_MEDIATYPE 0x02000000L
2916#define DM_DITHERTYPE 0x04000000L
2917#define DM_PANNINGWIDTH 0x08000000L
2918#define DM_PANNINGHEIGHT 0x10000000L
Huw D M Daviesed6d4591999-03-28 15:20:00 +00002919
2920#define DMORIENT_PORTRAIT 1
2921#define DMORIENT_LANDSCAPE 2
2922
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00002923#define DMPAPER_FIRST DMPAPER_LETTER
2924#define DMPAPER_LETTER 1
Huw D M Daviesed6d4591999-03-28 15:20:00 +00002925#define DMPAPER_LETTERSMALL 2
2926#define DMPAPER_TABLOID 3
2927#define DMPAPER_LEDGER 4
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00002928#define DMPAPER_LEGAL 5
Huw D M Daviesed6d4591999-03-28 15:20:00 +00002929#define DMPAPER_STATEMENT 6
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00002930#define DMPAPER_EXECUTIVE 7
2931#define DMPAPER_A3 8
2932#define DMPAPER_A4 9
Huw D M Daviesed6d4591999-03-28 15:20:00 +00002933#define DMPAPER_A4SMALL 10
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00002934#define DMPAPER_A5 11
Huw D M Daviesed6d4591999-03-28 15:20:00 +00002935#define DMPAPER_B4 12
2936#define DMPAPER_B5 13
2937#define DMPAPER_FOLIO 14
2938#define DMPAPER_QUARTO 15
2939#define DMPAPER_10X14 16
2940#define DMPAPER_11X17 17
2941#define DMPAPER_NOTE 18
2942#define DMPAPER_ENV_9 19
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00002943#define DMPAPER_ENV_10 20
Huw D M Daviesed6d4591999-03-28 15:20:00 +00002944#define DMPAPER_ENV_11 21
2945#define DMPAPER_ENV_12 22
2946#define DMPAPER_ENV_14 23
2947#define DMPAPER_CSHEET 24
2948#define DMPAPER_DSHEET 25
2949#define DMPAPER_ESHEET 26
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00002950#define DMPAPER_ENV_DL 27
2951#define DMPAPER_ENV_C5 28
Huw D M Daviesed6d4591999-03-28 15:20:00 +00002952#define DMPAPER_ENV_C3 29
2953#define DMPAPER_ENV_C4 30
2954#define DMPAPER_ENV_C6 31
2955#define DMPAPER_ENV_C65 32
2956#define DMPAPER_ENV_B4 33
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00002957#define DMPAPER_ENV_B5 34
Huw D M Daviesed6d4591999-03-28 15:20:00 +00002958#define DMPAPER_ENV_B6 35
2959#define DMPAPER_ENV_ITALY 36
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00002960#define DMPAPER_ENV_MONARCH 37
Huw D M Daviesed6d4591999-03-28 15:20:00 +00002961#define DMPAPER_ENV_PERSONAL 38
2962#define DMPAPER_FANFOLD_US 39
2963#define DMPAPER_FANFOLD_STD_GERMAN 40
2964#define DMPAPER_FANFOLD_LGL_GERMAN 41
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00002965#define DMPAPER_ISO_B4 42
2966#define DMPAPER_JAPANESE_POSTCARD 43
2967#define DMPAPER_9X11 44
2968#define DMPAPER_10X11 45
2969#define DMPAPER_15X11 46
2970#define DMPAPER_ENV_INVITE 47
2971#define DMPAPER_RESERVED_48 48
2972#define DMPAPER_RESERVED_49 49
2973#define DMPAPER_LETTER_EXTRA 50
2974#define DMPAPER_LEGAL_EXTRA 51
2975#define DMPAPER_TABLOID_EXTRA 52
2976#define DMPAPER_A4_EXTRA 53
2977#define DMPAPER_LETTER_TRANSVERSE 54
2978#define DMPAPER_A4_TRANSVERSE 55
Huw D M Daviesed6d4591999-03-28 15:20:00 +00002979#define DMPAPER_LETTER_EXTRA_TRANSVERSE 56
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00002980#define DMPAPER_A_PLUS 57
2981#define DMPAPER_B_PLUS 58
2982#define DMPAPER_LETTER_PLUS 59
2983#define DMPAPER_A4_PLUS 60
2984#define DMPAPER_A5_TRANSVERSE 61
2985#define DMPAPER_B5_TRANSVERSE 62
2986#define DMPAPER_A3_EXTRA 63
2987#define DMPAPER_A5_EXTRA 64
2988#define DMPAPER_B5_EXTRA 65
2989#define DMPAPER_A2 66
2990#define DMPAPER_A3_TRANSVERSE 67
Huw D M Davies0f184bf1999-07-27 16:09:40 +00002991#define DMPAPER_A3_EXTRA_TRANSVERSE 68
2992#define DMPAPER_DBL_JAPANESE_POSTCARD 69
Huw D M Davies6dd35691999-09-10 14:36:49 +00002993#define DMPAPER_A6 70
2994#define DMPAPER_JENV_KAKU2 71
2995#define DMPAPER_JENV_KAKU3 72
2996#define DMPAPER_JENV_CHOU3 73
2997#define DMPAPER_JENV_CHOU4 74
2998#define DMPAPER_LETTER_ROTATED 75
2999#define DMPAPER_A3_ROTATED 76
3000#define DMPAPER_A4_ROTATED 77
3001#define DMPAPER_A5_ROTATED 78
3002#define DMPAPER_B4_JIS_ROTATED 79
3003#define DMPAPER_B5_JIS_ROTATED 80
Huw D M Davies0f184bf1999-07-27 16:09:40 +00003004#define DMPAPER_JAPANESE_POSTCARD_ROTATED 81
3005#define DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED 82
Huw D M Davies6dd35691999-09-10 14:36:49 +00003006#define DMPAPER_A6_ROTATED 83
3007#define DMPAPER_JENV_KAKU2_ROTATED 84
3008#define DMPAPER_JENV_KAKU3_ROTATED 85
3009#define DMPAPER_JENV_CHOU3_ROTATED 86
3010#define DMPAPER_JENV_CHOU4_ROTATED 87
3011#define DMPAPER_B6_JIS 88
3012#define DMPAPER_B6_JIS_ROTATED 89
3013#define DMPAPER_12X11 90
3014#define DMPAPER_JENV_YOU4 91
3015#define DMPAPER_JENV_YOU4_ROTATED 92
3016#define DMPAPER_P16K 93
3017#define DMPAPER_P32K 94
3018#define DMPAPER_P32KBIG 95
3019#define DMPAPER_PENV_1 96
3020#define DMPAPER_PENV_2 97
3021#define DMPAPER_PENV_3 98
3022#define DMPAPER_PENV_4 99
3023#define DMPAPER_PENV_5 100
3024#define DMPAPER_PENV_6 101
3025#define DMPAPER_PENV_7 102
3026#define DMPAPER_PENV_8 103
3027#define DMPAPER_PENV_9 104
3028#define DMPAPER_PENV_10 105
3029#define DMPAPER_P16K_ROTATED 106
3030#define DMPAPER_P32K_ROTATED 107
3031#define DMPAPER_P32KBIG_ROTATED 108
3032#define DMPAPER_PENV_1_ROTATED 109
3033#define DMPAPER_PENV_2_ROTATED 110
3034#define DMPAPER_PENV_3_ROTATED 111
3035#define DMPAPER_PENV_4_ROTATED 112
3036#define DMPAPER_PENV_5_ROTATED 113
3037#define DMPAPER_PENV_6_ROTATED 114
3038#define DMPAPER_PENV_7_ROTATED 115
3039#define DMPAPER_PENV_8_ROTATED 116
3040#define DMPAPER_PENV_9_ROTATED 117
3041#define DMPAPER_PENV_10_ROTATED 118
3042
3043#define DMPAPER_LAST DMPAPER_PENV_10_ROTATED
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003044#define DMPAPER_USER 256
Huw D M Daviesed6d4591999-03-28 15:20:00 +00003045
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003046#define DMBIN_FIRST DMBIN_UPPER
Huw D M Daviesed6d4591999-03-28 15:20:00 +00003047#define DMBIN_UPPER 1
Huw D M Davies6dd35691999-09-10 14:36:49 +00003048#define DMBIN_ONLYONE 1
Huw D M Daviesed6d4591999-03-28 15:20:00 +00003049#define DMBIN_LOWER 2
3050#define DMBIN_MIDDLE 3
3051#define DMBIN_MANUAL 4
3052#define DMBIN_ENVELOPE 5
3053#define DMBIN_ENVMANUAL 6
3054#define DMBIN_AUTO 7
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003055#define DMBIN_TRACTOR 8
3056#define DMBIN_SMALLFMT 9
3057#define DMBIN_LARGEFMT 10
Huw D M Daviesed6d4591999-03-28 15:20:00 +00003058#define DMBIN_LARGECAPACITY 11
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003059#define DMBIN_CASSETTE 14
3060#define DMBIN_FORMSOURCE 15
3061#define DMBIN_LAST DMBIN_FORMSOURCE
3062#define DMBIN_USER 256
3063
3064#define DMRES_DRAFT (-1)
3065#define DMRES_LOW (-2)
3066#define DMRES_MEDIUM (-3)
3067#define DMRES_HIGH (-4)
Huw D M Daviesed6d4591999-03-28 15:20:00 +00003068
3069#define DMCOLOR_MONOCHROME 1
3070#define DMCOLOR_COLOR 2
3071
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003072#define DMDUP_SIMPLEX 1
3073#define DMDUP_VERTICAL 2
3074#define DMDUP_HORIZONTAL 3
3075
Huw D M Daviesed6d4591999-03-28 15:20:00 +00003076#define DMTT_BITMAP 1
3077#define DMTT_DOWNLOAD 2
3078#define DMTT_SUBDEV 3
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003079#define DMTT_DOWNLOAD_OUTLINE 4
Huw D M Daviesed6d4591999-03-28 15:20:00 +00003080
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003081#define DMCOLLATE_FALSE 0
3082#define DMCOLLATE_TRUE 1
3083
3084#define DMICMMETHOD_NONE 1
3085#define DMICMMETHOD_SYSTEM 2
3086#define DMICMMETHOD_DRIVER 3
3087#define DMICMMETHOD_DEVICE 4
3088#define DMICMMETHOD_USER 256
3089
3090#define DMICM_SATURATE 1
3091#define DMICM_CONTRAST 2
3092#define DMICM_COLORMETRIC 3
3093#define DMICM_USER 256
3094
3095#define DMMEDIA_STANDARD 1
3096#define DMMEDIA_TRANSPARENCY 2
3097#define DMMEDIA_GLOSSY 3
3098#define DMMEDIA_USER 256
3099
3100#define DMDITHER_NONE 1
3101#define DMDITHER_COARSE 2
3102#define DMDITHER_FINE 3
3103#define DMDITHER_LINEART 4
3104#define DMDITHER_GRAYSCALE 5
3105#define DMDITHER_USER 256
Veksler Michael1346a3c1998-12-15 11:15:35 +00003106
Vincent BĂ©ron9a624912002-05-31 23:06:46 +00003107typedef struct
Veksler Michael1346a3c1998-12-15 11:15:35 +00003108{
Alexandre Julliarda3960291999-02-26 11:11:13 +00003109 INT cbSize;
Veksler Michael1346a3c1998-12-15 11:15:35 +00003110 LPCSTR lpszDocName;
3111 LPCSTR lpszOutput;
3112 LPCSTR lpszDatatype;
3113 DWORD fwType;
Alexandre Julliarda3960291999-02-26 11:11:13 +00003114} DOCINFOA, *LPDOCINFOA;
Veksler Michael1346a3c1998-12-15 11:15:35 +00003115
Vincent BĂ©ron9a624912002-05-31 23:06:46 +00003116typedef struct
Veksler Michael1346a3c1998-12-15 11:15:35 +00003117{
Alexandre Julliarda3960291999-02-26 11:11:13 +00003118 INT cbSize;
Veksler Michael1346a3c1998-12-15 11:15:35 +00003119 LPCWSTR lpszDocName;
3120 LPCWSTR lpszOutput;
3121 LPCWSTR lpszDatatype;
3122 DWORD fwType;
Alexandre Julliarda3960291999-02-26 11:11:13 +00003123} DOCINFOW, *LPDOCINFOW;
Veksler Michael1346a3c1998-12-15 11:15:35 +00003124
3125DECL_WINELIB_TYPE_AW(DOCINFO)
3126DECL_WINELIB_TYPE_AW(LPDOCINFO)
3127
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003128#define DI_APPBANDING 0x0001
Veksler Michael1346a3c1998-12-15 11:15:35 +00003129
Brad Pepers0bdff361999-02-09 15:37:16 +00003130/* Flags for PolyDraw and GetPath */
3131#define PT_CLOSEFIGURE 0x0001
3132#define PT_LINETO 0x0002
3133#define PT_BEZIERTO 0x0004
3134#define PT_MOVETO 0x0006
3135
Veksler Michael1346a3c1998-12-15 11:15:35 +00003136#define RDH_RECTANGLES 1
3137
3138typedef struct _RGNDATAHEADER {
3139 DWORD dwSize;
3140 DWORD iType;
3141 DWORD nCount;
3142 DWORD nRgnSize;
Alexandre Julliarda3960291999-02-26 11:11:13 +00003143 RECT rcBound;
Francois Gouget6c97e452000-11-10 22:33:45 +00003144} RGNDATAHEADER,*PRGNDATAHEADER;
Veksler Michael1346a3c1998-12-15 11:15:35 +00003145
3146typedef struct _RGNDATA {
3147 RGNDATAHEADER rdh;
3148 char Buffer[1];
3149} RGNDATA,*PRGNDATA,*LPRGNDATA;
3150
Patrik Stridvallf94462f2002-01-31 23:22:07 +00003151typedef BOOL (CALLBACK *ABORTPROC)(HDC, INT);
Francois Gouget815d3201998-12-26 11:57:38 +00003152
Marcus Meissner8388f671999-09-19 12:09:23 +00003153typedef struct {
3154 DWORD cb;
Dmitry Timoshkov6b6596a2001-11-23 18:44:43 +00003155 CHAR DeviceName[32];
3156 CHAR DeviceString[128];
Marcus Meissner8388f671999-09-19 12:09:23 +00003157 DWORD StateFlags;
Dmitry Timoshkov6b6596a2001-11-23 18:44:43 +00003158 CHAR DeviceID[128];
3159 CHAR DeviceKey[128];
Vincent BĂ©ron9a624912002-05-31 23:06:46 +00003160} DISPLAY_DEVICEA,*PDISPLAY_DEVICEA,*LPDISPLAY_DEVICEA;
Marcus Meissner8388f671999-09-19 12:09:23 +00003161
3162typedef struct {
3163 DWORD cb;
3164 WCHAR DeviceName[32];
3165 WCHAR DeviceString[128];
3166 DWORD StateFlags;
Dmitry Timoshkov6b6596a2001-11-23 18:44:43 +00003167 WCHAR DeviceID[128];
3168 WCHAR DeviceKey[128];
Vincent BĂ©ron9a624912002-05-31 23:06:46 +00003169} DISPLAY_DEVICEW,*PDISPLAY_DEVICEW,*LPDISPLAY_DEVICEW;
Patrik Stridvall0ee98cc2000-02-26 13:17:55 +00003170DECL_WINELIB_TYPE_AW(DISPLAY_DEVICE)
3171DECL_WINELIB_TYPE_AW(PDISPLAY_DEVICE)
3172DECL_WINELIB_TYPE_AW(LPDISPLAY_DEVICE)
Marcus Meissner8388f671999-09-19 12:09:23 +00003173
3174/* DISPLAY_DEVICE.StateFlags (?)*/
3175#define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP 0x00000001
3176#define DISPLAY_DEVICE_MULTI_DRIVER 0x00000002
3177#define DISPLAY_DEVICE_PRIMARY_DEVICE 0x00000004
3178#define DISPLAY_DEVICE_MIRRORING_DRIVER 0x00000008
3179#define DISPLAY_DEVICE_VGA_COMPATIBLE 0x00000010
3180
Leo van den Berg39bcf9d2002-03-19 02:14:34 +00003181typedef USHORT COLOR16;
3182
3183typedef struct _TRIVERTEX
3184{
3185 LONG x;
3186 LONG y;
3187 COLOR16 Red;
3188 COLOR16 Green;
3189 COLOR16 Blue;
3190 COLOR16 Alpha;
3191} TRIVERTEX, *PTRIVERTEX, *LPTRIVERTEX;
3192
3193typedef struct _GRADIENT_TRIANGLE
3194{
3195 ULONG Vertex1;
3196 ULONG Vertex2;
3197 ULONG Vertex3;
3198} GRADIENT_TRIANGLE, *PGRADIENT_TRIANGLE, *LPGRADIENT_TRIANGLE;
3199
3200typedef struct _GRADIENT_RECT
3201{
3202 ULONG UpperLeft;
3203 ULONG LowerRight;
3204} GRADIENT_RECT, *PGRADIENT_RECT, *LPGRADIENT_RECT;
3205
Kevin Koltzauac05d0d2004-04-14 19:35:24 +00003206#define AC_SRC_OVER 0x00
3207#define AC_SRC_ALPHA 0x01
3208
Leo van den Berg39bcf9d2002-03-19 02:14:34 +00003209typedef struct _BLENDFUNCTION
3210{
3211 BYTE BlendOp;
3212 BYTE BlendFlags;
3213 BYTE SourceConstantAlpha;
3214 BYTE AlphaFormat;
3215} BLENDFUNCTION, *PBLENDFUNCTION;
3216
3217#define GRADIENT_FILL_RECT_H 0x00000000
3218#define GRADIENT_FILL_RECT_V 0x00000001
3219#define GRADIENT_FILL_TRIANGLE 0x00000002
3220#define GRADIENT_FILL_OP_FLAG 0x000000ff
3221
Huw D M Davies92bb19f2001-09-07 15:27:51 +00003222#define GDI_ERROR (0xFFFFFFFFL)
3223#define HGDI_ERROR ((HANDLE)0xFFFFFFFFL)
3224
Huw D M Davies8da26fb2002-06-22 01:19:29 +00003225/* AddFontResourceEx flags */
3226#define FR_PRIVATE 0x10
3227#define FR_NOT_ENUM 0x20
3228
RĂ©mi Assailly60cd0922004-12-01 15:30:53 +00003229/* Mirroring flags */
3230#define LAYOUT_LTR 0x00000000
3231#define LAYOUT_RTL 0x00000001
3232#define LAYOUT_BITMAPORIENTATIONPRESERVED 0x00000008
3233#define NOMIRRORBITMAP 0x80000000
3234
Marcus Meissnera42e6ae2005-09-06 14:12:17 +00003235/* For DRAWPATTERNRECT Escape */
3236typedef struct _DRAWPATRECT
3237{
3238 POINT ptPosition;
3239 POINT ptSize;
3240 WORD wStyle;
3241 WORD wPattern;
3242} DRAWPATRECT, *PDRAWPATRECT;
Huw D M Davies8da26fb2002-06-22 01:19:29 +00003243
Leo van den Berg39bcf9d2002-03-19 02:14:34 +00003244INT WINAPI AbortDoc(HDC);
3245BOOL WINAPI AbortPath(HDC);
3246INT WINAPI AddFontResourceA(LPCSTR);
3247INT WINAPI AddFontResourceW(LPCWSTR);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003248#define AddFontResource WINELIB_NAME_AW(AddFontResource)
Huw D M Davies8da26fb2002-06-22 01:19:29 +00003249INT WINAPI AddFontResourceExA(LPCSTR, DWORD, PVOID);
3250INT WINAPI AddFontResourceExW(LPCWSTR, DWORD, PVOID);
3251#define AddFontResourceEx WINELIB_NAME_AW(AddFontResourceEx)
Leo van den Berg39bcf9d2002-03-19 02:14:34 +00003252BOOL WINAPI AlphaBlend(HDC,int,int,int,int,HDC,int,int,int,int,BLENDFUNCTION);
3253BOOL WINAPI AngleArc(HDC, INT, INT, DWORD, FLOAT, FLOAT);
3254BOOL WINAPI AnimatePalette(HPALETTE,UINT,UINT,const PALETTEENTRY*);
3255BOOL WINAPI Arc(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
Vincent BĂ©ron9a624912002-05-31 23:06:46 +00003256BOOL WINAPI ArcTo(HDC, INT, INT, INT, INT, INT, INT, INT, INT);
Leo van den Berg39bcf9d2002-03-19 02:14:34 +00003257BOOL WINAPI BeginPath(HDC);
3258BOOL WINAPI BitBlt(HDC,INT,INT,INT,INT,HDC,INT,INT,DWORD);
Eric Pouechbde649c2004-05-18 20:43:29 +00003259INT WINAPI ChoosePixelFormat(HDC,const PIXELFORMATDESCRIPTOR*);
Leo van den Berg39bcf9d2002-03-19 02:14:34 +00003260BOOL WINAPI Chord(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003261HENHMETAFILE WINAPI CloseEnhMetaFile(HDC);
Leo van den Berg39bcf9d2002-03-19 02:14:34 +00003262BOOL WINAPI CloseFigure(HDC);
3263HMETAFILE WINAPI CloseMetaFile(HDC);
3264INT WINAPI CombineRgn(HRGN,HRGN,HRGN,INT);
3265BOOL WINAPI CombineTransform(LPXFORM,const XFORM *,const XFORM *);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003266HENHMETAFILE WINAPI CopyEnhMetaFileA(HENHMETAFILE,LPCSTR);
3267HENHMETAFILE WINAPI CopyEnhMetaFileW(HENHMETAFILE,LPCWSTR);
Veksler Michael1346a3c1998-12-15 11:15:35 +00003268#define CopyEnhMetaFile WINELIB_NAME_AW(CopyEnhMetaFile)
Leo van den Berg39bcf9d2002-03-19 02:14:34 +00003269HMETAFILE WINAPI CopyMetaFileA(HMETAFILE,LPCSTR);
3270HMETAFILE WINAPI CopyMetaFileW(HMETAFILE,LPCWSTR);
Veksler Michael1346a3c1998-12-15 11:15:35 +00003271#define CopyMetaFile WINELIB_NAME_AW(CopyMetaFile)
Leo van den Berg39bcf9d2002-03-19 02:14:34 +00003272HBITMAP WINAPI CreateBitmap(INT,INT,UINT,UINT,LPCVOID);
3273HBITMAP WINAPI CreateBitmapIndirect(const BITMAP*);
3274HBRUSH WINAPI CreateBrushIndirect(const LOGBRUSH*);
Peter Hunnisettf2b84922000-01-15 22:17:49 +00003275HCOLORSPACE WINAPI CreateColorSpaceA(LPLOGCOLORSPACEA);
3276HCOLORSPACE WINAPI CreateColorSpaceW(LPLOGCOLORSPACEW);
3277#define CreateColorSpace WINELIB_NAME_AW(CreateColorSpace)
Alexandre Julliarda3960291999-02-26 11:11:13 +00003278HBITMAP WINAPI CreateCompatibleBitmap(HDC,INT,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003279HDC WINAPI CreateCompatibleDC(HDC);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003280HDC WINAPI CreateDCA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
3281HDC WINAPI CreateDCW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*);
Veksler Michael1346a3c1998-12-15 11:15:35 +00003282#define CreateDC WINELIB_NAME_AW(CreateDC)
Alexandre Julliarda3960291999-02-26 11:11:13 +00003283HBITMAP WINAPI CreateDIBitmap(HDC,const BITMAPINFOHEADER*,DWORD,
3284 LPCVOID,const BITMAPINFO*,UINT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003285HBRUSH WINAPI CreateDIBPatternBrush(HGLOBAL,UINT);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003286HBRUSH WINAPI CreateDIBPatternBrushPt(const void*,UINT);
Dmitry Timoshkov21fc3c82004-03-12 19:46:12 +00003287HBITMAP WINAPI CreateDIBSection(HDC, CONST BITMAPINFO *, UINT,
3288 VOID **, HANDLE, DWORD offset);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003289HBITMAP WINAPI CreateDiscardableBitmap(HDC,INT,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003290HRGN WINAPI CreateEllipticRgn(INT,INT,INT,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003291HRGN WINAPI CreateEllipticRgnIndirect(const RECT *);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003292HDC WINAPI CreateEnhMetaFileA(HDC,LPCSTR,const RECT*,LPCSTR);
3293HDC WINAPI CreateEnhMetaFileW(HDC,LPCWSTR,const RECT*,LPCWSTR);
3294#define CreateEnhMetaFile WINELIB_NAME_AW(CreateEnhMetaFile)
Alexandre Julliarda3960291999-02-26 11:11:13 +00003295HFONT WINAPI CreateFontA(INT,INT,INT,INT,INT,DWORD,DWORD,
Veksler Michael1346a3c1998-12-15 11:15:35 +00003296 DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCSTR);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003297HFONT WINAPI CreateFontW(INT,INT,INT,INT,INT,DWORD,DWORD,
Veksler Michael1346a3c1998-12-15 11:15:35 +00003298 DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCWSTR);
3299#define CreateFont WINELIB_NAME_AW(CreateFont)
Alexandre Julliarda3960291999-02-26 11:11:13 +00003300HFONT WINAPI CreateFontIndirectA(const LOGFONTA*);
3301HFONT WINAPI CreateFontIndirectW(const LOGFONTW*);
Veksler Michael1346a3c1998-12-15 11:15:35 +00003302#define CreateFontIndirect WINELIB_NAME_AW(CreateFontIndirect)
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003303HPALETTE WINAPI CreateHalftonePalette(HDC);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003304HBRUSH WINAPI CreateHatchBrush(INT,COLORREF);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003305HDC WINAPI CreateICA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
3306HDC WINAPI CreateICW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*);
Veksler Michael1346a3c1998-12-15 11:15:35 +00003307#define CreateIC WINELIB_NAME_AW(CreateIC)
Alexandre Julliarda3960291999-02-26 11:11:13 +00003308HDC WINAPI CreateMetaFileA(LPCSTR);
3309HDC WINAPI CreateMetaFileW(LPCWSTR);
Veksler Michael1346a3c1998-12-15 11:15:35 +00003310#define CreateMetaFile WINELIB_NAME_AW(CreateMetaFile)
Alexandre Julliarda3960291999-02-26 11:11:13 +00003311HPALETTE WINAPI CreatePalette(const LOGPALETTE*);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003312HBRUSH WINAPI CreatePatternBrush(HBITMAP);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003313HPEN WINAPI CreatePen(INT,INT,COLORREF);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003314HPEN WINAPI CreatePenIndirect(const LOGPEN*);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003315HRGN WINAPI CreatePolyPolygonRgn(const POINT*,const INT*,INT,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003316HRGN WINAPI CreatePolygonRgn(const POINT*,INT,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003317HRGN WINAPI CreateRectRgn(INT,INT,INT,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003318HRGN WINAPI CreateRectRgnIndirect(const RECT*);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003319HRGN WINAPI CreateRoundRectRgn(INT,INT,INT,INT,INT,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003320BOOL WINAPI CreateScalableFontResourceA(DWORD,LPCSTR,LPCSTR,LPCSTR);
3321BOOL WINAPI CreateScalableFontResourceW(DWORD,LPCWSTR,LPCWSTR,LPCWSTR);
Veksler Michael1346a3c1998-12-15 11:15:35 +00003322#define CreateScalableFontResource WINELIB_NAME_AW(CreateScalableFontResource)
Alexandre Julliarda3960291999-02-26 11:11:13 +00003323HBRUSH WINAPI CreateSolidBrush(COLORREF);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003324BOOL WINAPI DPtoLP(HDC,LPPOINT,INT);
Peter Hunnisettf2b84922000-01-15 22:17:49 +00003325BOOL WINAPI DeleteColorSpace(HCOLORSPACE);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003326BOOL WINAPI DeleteDC(HDC);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003327BOOL WINAPI DeleteEnhMetaFile(HENHMETAFILE);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003328BOOL WINAPI DeleteMetaFile(HMETAFILE);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003329BOOL WINAPI DeleteObject(HGDIOBJ);
3330INT WINAPI DescribePixelFormat(HDC,int,UINT,
Veksler Michael1346a3c1998-12-15 11:15:35 +00003331 LPPIXELFORMATDESCRIPTOR);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003332INT WINAPI DrawEscape(HDC,INT,INT,LPCSTR);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003333BOOL WINAPI Ellipse(HDC,INT,INT,INT,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003334INT WINAPI EndDoc(HDC);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003335BOOL WINAPI EndPath(HDC);
Huw D M Davies280aeb92000-03-30 20:22:41 +00003336BOOL WINAPI EnumEnhMetaFile(HDC,HENHMETAFILE,ENHMFENUMPROC,LPVOID,const RECT*);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003337INT WINAPI EnumFontFamiliesA(HDC,LPCSTR,FONTENUMPROCA,LPARAM);
3338INT WINAPI EnumFontFamiliesW(HDC,LPCWSTR,FONTENUMPROCW,LPARAM);
Veksler Michael1346a3c1998-12-15 11:15:35 +00003339#define EnumFontFamilies WINELIB_NAME_AW(EnumFontFamilies)
Patrik Stridvallc99c0222002-11-13 04:13:42 +00003340INT WINAPI EnumFontFamiliesExA(HDC,LPLOGFONTA,FONTENUMPROCA,LPARAM,DWORD);
3341INT WINAPI EnumFontFamiliesExW(HDC,LPLOGFONTW,FONTENUMPROCW,LPARAM,DWORD);
Veksler Michael1346a3c1998-12-15 11:15:35 +00003342#define EnumFontFamiliesEx WINELIB_NAME_AW(EnumFontFamiliesEx)
Alexandre Julliarda3960291999-02-26 11:11:13 +00003343INT WINAPI EnumFontsA(HDC,LPCSTR,FONTENUMPROCA,LPARAM);
3344INT WINAPI EnumFontsW(HDC,LPCWSTR,FONTENUMPROCW,LPARAM);
Veksler Michael1346a3c1998-12-15 11:15:35 +00003345#define EnumFonts WINELIB_NAME_AW(EnumFonts)
Marcus Meissner21973112004-01-13 05:20:17 +00003346INT WINAPI EnumICMProfilesA(HDC,ICMENUMPROCA,LPARAM);
3347INT WINAPI EnumICMProfilesW(HDC,ICMENUMPROCW,LPARAM);
3348#define EnumICMProfiles WINELIB_NAME_AW(EnumICMProfiles)
Alexandre Julliarda3960291999-02-26 11:11:13 +00003349BOOL WINAPI EnumMetaFile(HDC,HMETAFILE,MFENUMPROC,LPARAM);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003350INT WINAPI EnumObjects(HDC,INT,GOBJENUMPROC,LPARAM);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003351BOOL WINAPI EqualRgn(HRGN,HRGN);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003352INT WINAPI Escape(HDC,INT,INT,LPCSTR,LPVOID);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003353INT WINAPI ExcludeClipRect(HDC,INT,INT,INT,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003354HPEN WINAPI ExtCreatePen(DWORD,DWORD,const LOGBRUSH*,DWORD,const DWORD*);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003355HRGN WINAPI ExtCreateRegion(const XFORM*,DWORD,const RGNDATA*);
3356INT WINAPI ExtEscape(HDC,INT,INT,LPCSTR,INT,LPSTR);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003357BOOL WINAPI ExtFloodFill(HDC,INT,INT,COLORREF,UINT);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003358INT WINAPI ExtSelectClipRgn(HDC,HRGN,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003359BOOL WINAPI ExtTextOutA(HDC,INT,INT,UINT,const RECT*,
3360 LPCSTR,UINT,const INT*);
3361BOOL WINAPI ExtTextOutW(HDC,INT,INT,UINT,const RECT*,
3362 LPCWSTR,UINT,const INT*);
Veksler Michael1346a3c1998-12-15 11:15:35 +00003363#define ExtTextOut WINELIB_NAME_AW(ExtTextOut)
Alexandre Julliarda3960291999-02-26 11:11:13 +00003364BOOL WINAPI FillPath(HDC);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003365BOOL WINAPI FillRgn(HDC,HRGN,HBRUSH);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003366BOOL WINAPI FixBrushOrgEx(HDC,INT,INT,LPPOINT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003367BOOL WINAPI FlattenPath(HDC);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003368BOOL WINAPI FloodFill(HDC,INT,INT,COLORREF);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003369BOOL WINAPI FrameRgn(HDC,HRGN,HBRUSH,INT,INT);
Mike McCormack04efa132005-04-15 14:08:18 +00003370BOOL WINAPI GdiAlphaBlend(HDC,int,int,int,int,HDC,int,int,int,int,BLENDFUNCTION);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003371BOOL WINAPI GdiComment(HDC,UINT,const BYTE *);
Dmitry Timoshkov3a910c72003-08-12 20:42:18 +00003372DEVMODEW * WINAPI GdiConvertToDevmodeW(const DEVMODEA *);
Francois Gougetd4db6822001-10-08 20:31:59 +00003373BOOL WINAPI GdiFlush(void);
Robert Shearman0ceb6b62005-07-18 18:05:04 +00003374LONG WINAPI GdiGetCharDimensions(HDC, LPTEXTMETRICW, LONG *);
Frank Richter567b6fa2005-07-15 16:31:55 +00003375BOOL WINAPI GdiGradientFill(HDC,PTRIVERTEX,ULONG,PVOID,ULONG,ULONG);
Mike McCormack04efa132005-04-15 14:08:18 +00003376BOOL WINAPI GdiIsMetaFileDC(HDC);
3377BOOL WINAPI GdiIsMetaPrintDC(HDC);
Mike McCormack7bb17572005-06-13 10:00:53 +00003378BOOL WINAPI GdiIsPlayMetafileDC(HDC);
Mike McCormack04efa132005-04-15 14:08:18 +00003379BOOL WINAPI GdiTransparentBlt(HDC,int,int,int,int,HDC,int,int,int,int,UINT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003380INT WINAPI GetArcDirection(HDC);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003381BOOL WINAPI GetAspectRatioFilterEx(HDC,LPSIZE);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003382LONG WINAPI GetBitmapBits(HBITMAP,LONG,LPVOID);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003383BOOL WINAPI GetBitmapDimensionEx(HBITMAP,LPSIZE);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003384BOOL WINAPI GetBrushOrgEx(HDC,LPPOINT);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003385COLORREF WINAPI GetBkColor(HDC);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003386INT WINAPI GetBkMode(HDC);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003387UINT WINAPI GetBoundsRect(HDC,LPRECT,UINT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003388BOOL WINAPI GetCharABCWidthsA(HDC,UINT,UINT,LPABC);
3389BOOL WINAPI GetCharABCWidthsW(HDC,UINT,UINT,LPABC);
Veksler Michael1346a3c1998-12-15 11:15:35 +00003390#define GetCharABCWidths WINELIB_NAME_AW(GetCharABCWidths)
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003391BOOL WINAPI GetCharABCWidthsFloatA(HDC,UINT,UINT,LPABCFLOAT);
3392BOOL WINAPI GetCharABCWidthsFloatW(HDC,UINT,UINT,LPABCFLOAT);
3393#define GetCharABCWidthsFloat WINELIB_NAME_AW(GetCharABCWidthsFloat)
3394DWORD WINAPI GetCharacterPlacementA(HDC,LPCSTR,INT,INT,GCP_RESULTSA*,DWORD);
3395DWORD WINAPI GetCharacterPlacementW(HDC,LPCWSTR,INT,INT,GCP_RESULTSW*,DWORD);
Veksler Michael1346a3c1998-12-15 11:15:35 +00003396#define GetCharacterPlacement WINELIB_NAME_AW(GetCharacterPlacement)
Alexandre Julliard2fdc4dc2003-11-26 04:11:56 +00003397BOOL WINAPI GetCharWidth32A(HDC,UINT,UINT,LPINT);
3398BOOL WINAPI GetCharWidth32W(HDC,UINT,UINT,LPINT);
Alexandre Julliard73cc3ba1999-03-13 17:12:07 +00003399#define GetCharWidth32 WINELIB_NAME_AW(GetCharWidth32)
Alexandre Julliard2fdc4dc2003-11-26 04:11:56 +00003400BOOL WINAPI GetCharWidthA(HDC,UINT,UINT,LPINT);
3401BOOL WINAPI GetCharWidthW(HDC,UINT,UINT,LPINT);
Veksler Michael1346a3c1998-12-15 11:15:35 +00003402#define GetCharWidth WINELIB_NAME_AW(GetCharWidth)
Alexandre Julliard2fdc4dc2003-11-26 04:11:56 +00003403BOOL WINAPI GetCharWidthFloatA(HDC,UINT,UINT,PFLOAT);
3404BOOL WINAPI GetCharWidthFloatW(HDC,UINT,UINT,PFLOAT);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003405#define GetCharWidthFloat WINELIB_NAME_AW(GetCharWidthFloat)
Andreas Mohrfe2dcf72004-07-08 20:17:59 +00003406INT WINAPI GetClipBox(HDC,LPRECT);
3407INT WINAPI GetClipRgn(HDC,HRGN);
3408BOOL WINAPI GetColorAdjustment(HDC, LPCOLORADJUSTMENT);
Dmitry Timoshkov62d3ab92005-10-26 10:10:23 +00003409HCOLORSPACE WINAPI GetColorSpace(HDC);
Andreas Mohrfe2dcf72004-07-08 20:17:59 +00003410HGDIOBJ WINAPI GetCurrentObject(HDC,UINT);
3411BOOL WINAPI GetCurrentPositionEx(HDC,LPPOINT);
3412INT WINAPI GetDeviceCaps(HDC,INT);
3413BOOL WINAPI GetDeviceGammaRamp(HDC,LPVOID);
3414COLORREF WINAPI GetDCBrushColor(HDC);
3415BOOL WINAPI GetDCOrgEx(HDC,LPPOINT);
3416COLORREF WINAPI GetDCPenColor(HDC);
3417UINT WINAPI GetDIBColorTable(HDC,UINT,UINT,RGBQUAD*);
3418INT WINAPI GetDIBits(HDC,HBITMAP,UINT,UINT,LPVOID,LPBITMAPINFO,UINT);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003419HENHMETAFILE WINAPI GetEnhMetaFileA(LPCSTR);
3420HENHMETAFILE WINAPI GetEnhMetaFileW(LPCWSTR);
3421#define GetEnhMetaFile WINELIB_NAME_AW(GetEnhMetaFile)
3422UINT WINAPI GetEnhMetaFileBits(HENHMETAFILE,UINT,LPBYTE);
Francois Gougetd55ccfd2000-10-12 23:14:52 +00003423UINT WINAPI GetEnhMetaFileDescriptionA(HENHMETAFILE,UINT,LPSTR);
3424UINT WINAPI GetEnhMetaFileDescriptionW(HENHMETAFILE,UINT,LPWSTR);
3425#define GetEnhMetaFileDescription WINELIB_NAME_AW(GetEnhMetaFileDescription)
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003426UINT WINAPI GetEnhMetaFileHeader(HENHMETAFILE,UINT,LPENHMETAHEADER);
3427UINT WINAPI GetEnhMetaFilePaletteEntries(HENHMETAFILE,UINT,LPPALETTEENTRY);
3428DWORD WINAPI GetFontData(HDC,DWORD,DWORD,LPVOID,DWORD);
3429DWORD WINAPI GetFontLanguageInfo(HDC);
Dmitry Timoshkov2903ca12002-04-03 20:41:14 +00003430DWORD WINAPI GetGlyphIndicesA(HDC,LPCSTR,INT,LPWORD,DWORD);
3431DWORD WINAPI GetGlyphIndicesW(HDC,LPCWSTR,INT,LPWORD,DWORD);
3432#define GetGlyphIndices WINELIB_NAME_AW(GetGlyphIndices)
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003433DWORD WINAPI GetGlyphOutlineA(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,LPVOID,const MAT2*);
3434DWORD WINAPI GetGlyphOutlineW(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,LPVOID,const MAT2*);
Veksler Michael1346a3c1998-12-15 11:15:35 +00003435#define GetGlyphOutline WINELIB_NAME_AW(GetGlyphOutline)
Hans Leidekkerfeef8952004-12-27 17:23:17 +00003436INT WINAPI GetGraphicsMode(HDC);
3437BOOL WINAPI GetICMProfileA(HDC,LPDWORD,LPSTR);
3438BOOL WINAPI GetICMProfileW(HDC,LPDWORD,LPWSTR);
3439#define GetICMProfile WINELIB_NAME_AW(GetICMProfile)
3440DWORD WINAPI GetKerningPairsA(HDC,DWORD,LPKERNINGPAIR);
3441DWORD WINAPI GetKerningPairsW(HDC,DWORD,LPKERNINGPAIR);
Veksler Michael1346a3c1998-12-15 11:15:35 +00003442#define GetKerningPairs WINELIB_NAME_AW(GetKerningPairs)
Huw D M Daviesf64e0d71999-11-21 00:49:50 +00003443DWORD WINAPI GetLayout(HDC);
François Gouget441f8742000-12-29 03:43:43 +00003444BOOL WINAPI GetLogColorSpaceA(HCOLORSPACE,LPLOGCOLORSPACEA,DWORD);
3445BOOL WINAPI GetLogColorSpaceW(HCOLORSPACE,LPLOGCOLORSPACEW,DWORD);
3446#define GetLogColorSpace WINELIB_NAME_AW(GetLogColorSpace)
Alexandre Julliarda3960291999-02-26 11:11:13 +00003447INT WINAPI GetMapMode(HDC);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003448HMETAFILE WINAPI GetMetaFileA(LPCSTR);
3449HMETAFILE WINAPI GetMetaFileW(LPCWSTR);
Veksler Michael1346a3c1998-12-15 11:15:35 +00003450#define GetMetaFile WINELIB_NAME_AW(GetMetaFile)
Peter Hunnisett0cdc4d91999-12-11 23:18:10 +00003451UINT WINAPI GetMetaFileBitsEx(HMETAFILE,UINT,LPVOID);
3452INT WINAPI GetMetaRgn(HDC,HRGN);
3453BOOL WINAPI GetMiterLimit(HDC, PFLOAT);
3454DWORD WINAPI GetNearestColor(HDC,DWORD);
3455UINT WINAPI GetNearestPaletteIndex(HPALETTE,COLORREF);
Andreas Mohrfe2dcf72004-07-08 20:17:59 +00003456INT WINAPI GetObjectA(HGDIOBJ,INT,LPVOID);
3457INT WINAPI GetObjectW(HGDIOBJ,INT,LPVOID);
Veksler Michael1346a3c1998-12-15 11:15:35 +00003458#define GetObject WINELIB_NAME_AW(GetObject)
Andreas Mohrfe2dcf72004-07-08 20:17:59 +00003459DWORD WINAPI GetObjectType(HGDIOBJ);
3460UINT WINAPI GetOutlineTextMetricsA(HDC,UINT,LPOUTLINETEXTMETRICA);
3461UINT WINAPI GetOutlineTextMetricsW(HDC,UINT,LPOUTLINETEXTMETRICW);
Veksler Michael1346a3c1998-12-15 11:15:35 +00003462#define GetOutlineTextMetrics WINELIB_NAME_AW(GetOutlineTextMetrics)
Alexandre Julliarda3960291999-02-26 11:11:13 +00003463UINT WINAPI GetPaletteEntries(HPALETTE,UINT,UINT,LPPALETTEENTRY);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003464INT WINAPI GetPath(HDC,LPPOINT,LPBYTE,INT);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003465COLORREF WINAPI GetPixel(HDC,INT,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003466INT WINAPI GetPixelFormat(HDC);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003467INT WINAPI GetPolyFillMode(HDC);
Robert Shearman3e80fb42004-08-20 19:26:28 +00003468INT WINAPI GetRandomRgn(HDC,HRGN,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003469BOOL WINAPI GetRasterizerCaps(LPRASTERIZER_STATUS,UINT);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003470DWORD WINAPI GetRegionData(HRGN,DWORD,LPRGNDATA);
Patrik Stridvalle4174d52000-05-18 00:51:52 +00003471INT WINAPI GetRelAbs(HDC,DWORD);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003472INT WINAPI GetRgnBox(HRGN,LPRECT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003473INT WINAPI GetROP2(HDC);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003474HGDIOBJ WINAPI GetStockObject(INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003475INT WINAPI GetStretchBltMode(HDC);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003476UINT WINAPI GetSystemPaletteEntries(HDC,UINT,UINT,LPPALETTEENTRY);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003477UINT WINAPI GetSystemPaletteUse(HDC);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003478UINT WINAPI GetTextAlign(HDC);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003479INT WINAPI GetTextCharacterExtra(HDC);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003480UINT WINAPI GetTextCharset(HDC);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003481UINT WINAPI GetTextCharsetInfo(HDC,LPFONTSIGNATURE,DWORD);
3482COLORREF WINAPI GetTextColor(HDC);
3483BOOL WINAPI GetTextExtentExPointA(HDC,LPCSTR,INT,INT,
3484 LPINT,LPINT,LPSIZE);
3485BOOL WINAPI GetTextExtentExPointW(HDC,LPCWSTR,INT,INT,
3486 LPINT,LPINT,LPSIZE);
Huw D M Davies5b01b502002-04-03 22:08:27 +00003487#define GetTextExtentExPoint WINELIB_NAME_AW(GetTextExtentExPoint)
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003488BOOL WINAPI GetTextExtentPointA(HDC,LPCSTR,INT,LPSIZE);
3489BOOL WINAPI GetTextExtentPointW(HDC,LPCWSTR,INT,LPSIZE);
Francois Gouget7ae72f51999-03-13 18:19:29 +00003490#define GetTextExtentPoint WINELIB_NAME_AW(GetTextExtentPoint)
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003491BOOL WINAPI GetTextExtentPoint32A(HDC,LPCSTR,INT,LPSIZE);
3492BOOL WINAPI GetTextExtentPoint32W(HDC,LPCWSTR,INT,LPSIZE);
Francois Gouget7ae72f51999-03-13 18:19:29 +00003493#define GetTextExtentPoint32 WINELIB_NAME_AW(GetTextExtentPoint32)
Huw D M Davies5b01b502002-04-03 22:08:27 +00003494BOOL WINAPI GetTextExtentExPointI(HDC,const WORD*,INT,INT,LPINT,LPINT,LPSIZE);
3495BOOL WINAPI GetTextExtentPointI(HDC,const WORD*,INT,LPSIZE);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003496INT WINAPI GetTextFaceA(HDC,INT,LPSTR);
3497INT WINAPI GetTextFaceW(HDC,INT,LPWSTR);
Veksler Michael1346a3c1998-12-15 11:15:35 +00003498#define GetTextFace WINELIB_NAME_AW(GetTextFace)
Alexandre Julliarda3960291999-02-26 11:11:13 +00003499BOOL WINAPI GetTextMetricsA(HDC,LPTEXTMETRICA);
3500BOOL WINAPI GetTextMetricsW(HDC,LPTEXTMETRICW);
Veksler Michael1346a3c1998-12-15 11:15:35 +00003501#define GetTextMetrics WINELIB_NAME_AW(GetTextMetrics)
Leo van den Berg39bcf9d2002-03-19 02:14:34 +00003502BOOL WINAPI GetViewportExtEx(HDC,LPSIZE);
3503BOOL WINAPI GetViewportOrgEx(HDC,LPPOINT);
3504BOOL WINAPI GetWindowExtEx(HDC,LPSIZE);
3505BOOL WINAPI GetWindowOrgEx(HDC,LPPOINT);
Dimitrie O. Paun27a8ff22002-12-19 22:15:53 +00003506UINT WINAPI GetWinMetaFileBits(HENHMETAFILE,UINT,LPBYTE,INT,HDC);
Leo van den Berg39bcf9d2002-03-19 02:14:34 +00003507BOOL WINAPI GetWorldTransform(HDC,LPXFORM);
3508BOOL WINAPI GradientFill(HDC,PTRIVERTEX,ULONG,PVOID,ULONG,ULONG);
3509INT WINAPI IntersectClipRect(HDC,INT,INT,INT,INT);
3510BOOL WINAPI InvertRgn(HDC,HRGN);
3511BOOL WINAPI LineDDA(INT,INT,INT,INT,LINEDDAPROC,LPARAM);
3512BOOL WINAPI LineTo(HDC,INT,INT);
3513BOOL WINAPI LPtoDP(HDC,LPPOINT,INT);
3514BOOL WINAPI MaskBlt(HDC,INT,INT,INT,INT,HDC,INT,INT,HBITMAP,INT,INT,DWORD);
3515BOOL WINAPI ModifyWorldTransform(HDC,const XFORM *, DWORD);
3516BOOL WINAPI MoveToEx(HDC,INT,INT,LPPOINT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003517INT WINAPI OffsetClipRgn(HDC,INT,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003518INT WINAPI OffsetRgn(HRGN,INT,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003519BOOL WINAPI OffsetViewportOrgEx(HDC,INT,INT,LPPOINT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003520BOOL WINAPI OffsetWindowOrgEx(HDC,INT,INT,LPPOINT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003521BOOL WINAPI PaintRgn(HDC,HRGN);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003522BOOL WINAPI PatBlt(HDC,INT,INT,INT,INT,DWORD);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003523HRGN WINAPI PathToRegion(HDC);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003524BOOL WINAPI Pie(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003525BOOL WINAPI PlayEnhMetaFile(HDC,HENHMETAFILE,const RECT*);
3526BOOL WINAPI PlayEnhMetaFileRecord(HDC,LPHANDLETABLE,const ENHMETARECORD*,UINT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003527BOOL WINAPI PlayMetaFile(HDC,HMETAFILE);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003528BOOL WINAPI PlayMetaFileRecord(HDC,LPHANDLETABLE,LPMETARECORD,UINT);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003529BOOL WINAPI PlgBlt(HDC,const POINT*,HDC,INT,INT,INT,INT,HBITMAP,INT,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003530BOOL WINAPI PolyBezier(HDC,const POINT*,DWORD);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003531BOOL WINAPI PolyBezierTo(HDC,const POINT*,DWORD);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003532BOOL WINAPI PolyDraw(HDC,const POINT*,const BYTE*,DWORD);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003533BOOL WINAPI PolyPolygon(HDC,const POINT*,const INT*,UINT);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003534BOOL WINAPI PolyPolyline(HDC,const POINT*,const DWORD*,DWORD);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003535BOOL WINAPI Polygon(HDC,const POINT*,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003536BOOL WINAPI Polyline(HDC,const POINT*,INT);
3537BOOL WINAPI PolylineTo(HDC,const POINT*,DWORD);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003538BOOL WINAPI PtInRegion(HRGN,INT,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003539BOOL WINAPI PtVisible(HDC,INT,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003540UINT WINAPI RealizePalette(HDC);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003541BOOL WINAPI Rectangle(HDC,INT,INT,INT,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003542BOOL WINAPI RectInRegion(HRGN,const RECT *);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003543BOOL WINAPI RectVisible(HDC,const RECT*);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003544BOOL WINAPI RemoveFontResourceA(LPCSTR);
3545BOOL WINAPI RemoveFontResourceW(LPCWSTR);
Veksler Michael1346a3c1998-12-15 11:15:35 +00003546#define RemoveFontResource WINELIB_NAME_AW(RemoveFontResource)
Huw D M Davies8da26fb2002-06-22 01:19:29 +00003547BOOL WINAPI RemoveFontResourceExA(LPCSTR, DWORD, PVOID);
3548BOOL WINAPI RemoveFontResourceExW(LPCWSTR, DWORD, PVOID);
3549#define RemoveFontResourceEx WINELIB_NAME_AW(RemoveFontResourceEx)
Alexandre Julliarda3960291999-02-26 11:11:13 +00003550HDC WINAPI ResetDCA(HDC,const DEVMODEA *);
3551HDC WINAPI ResetDCW(HDC,const DEVMODEW *);
Veksler Michael1346a3c1998-12-15 11:15:35 +00003552#define ResetDC WINELIB_NAME_AW(ResetDC)
Alexandre Julliarda3960291999-02-26 11:11:13 +00003553BOOL WINAPI ResizePalette(HPALETTE,UINT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003554BOOL WINAPI RestoreDC(HDC,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003555BOOL WINAPI RoundRect(HDC,INT,INT,INT,INT,INT,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003556INT WINAPI SaveDC(HDC);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003557BOOL WINAPI ScaleViewportExtEx(HDC,INT,INT,INT,INT,LPSIZE);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003558BOOL WINAPI ScaleWindowExtEx(HDC,INT,INT,INT,INT,LPSIZE);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003559BOOL WINAPI SelectClipPath(HDC,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003560INT WINAPI SelectClipRgn(HDC,HRGN);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003561HGDIOBJ WINAPI SelectObject(HDC,HGDIOBJ);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003562HPALETTE WINAPI SelectPalette(HDC,HPALETTE,BOOL);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003563INT WINAPI SetAbortProc(HDC,ABORTPROC);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003564INT WINAPI SetArcDirection(HDC,INT);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003565LONG WINAPI SetBitmapBits(HBITMAP,LONG,LPCVOID);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003566BOOL WINAPI SetBitmapDimensionEx(HBITMAP,INT,INT,LPSIZE);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003567COLORREF WINAPI SetBkColor(HDC,COLORREF);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003568INT WINAPI SetBkMode(HDC,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003569UINT WINAPI SetBoundsRect(HDC,const RECT*,UINT);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003570BOOL WINAPI SetBrushOrgEx(HDC,INT,INT,LPPOINT);
3571BOOL WINAPI SetColorAdjustment(HDC,const COLORADJUSTMENT*);
Peter Hunnisettf2b84922000-01-15 22:17:49 +00003572HCOLORSPACE WINAPI SetColorSpace(HDC,HCOLORSPACE);
Ove Kaaven27398d42001-03-20 01:55:18 +00003573BOOL WINAPI SetDeviceGammaRamp(HDC,LPVOID);
Steve Lustbader361b9e82002-11-21 03:56:29 +00003574COLORREF WINAPI SetDCBrushColor(HDC,COLORREF);
Kirill Smelkovc3c33a02003-12-01 22:35:10 +00003575COLORREF WINAPI SetDCPenColor(HDC, COLORREF);
Robert Shearmanb4eee492004-10-18 19:35:50 +00003576UINT WINAPI SetDIBColorTable(HDC,UINT,UINT,CONST RGBQUAD*);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003577INT WINAPI SetDIBits(HDC,HBITMAP,UINT,UINT,LPCVOID,const BITMAPINFO*,UINT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003578INT WINAPI SetDIBitsToDevice(HDC,INT,INT,DWORD,DWORD,INT,
3579 INT,UINT,UINT,LPCVOID,const BITMAPINFO*,UINT);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003580HENHMETAFILE WINAPI SetEnhMetaFileBits(UINT,const BYTE *);
Peter Hunnisett0cdc4d91999-12-11 23:18:10 +00003581INT WINAPI SetGraphicsMode(HDC,INT);
Peter Hunnisettf2b84922000-01-15 22:17:49 +00003582INT WINAPI SetICMMode(HDC,INT);
Hans Leidekkerfeef8952004-12-27 17:23:17 +00003583BOOL WINAPI SetICMProfileA(HDC,LPSTR);
3584BOOL WINAPI SetICMProfileW(HDC,LPWSTR);
3585#define SetICMProfile WINELIB_NAME_AW(SetICMProfile)
Huw D M Daviesf64e0d71999-11-21 00:49:50 +00003586DWORD WINAPI SetLayout(HDC,DWORD);
Peter Hunnisett0cdc4d91999-12-11 23:18:10 +00003587INT WINAPI SetMapMode(HDC,INT);
3588DWORD WINAPI SetMapperFlags(HDC,DWORD);
3589HMETAFILE WINAPI SetMetaFileBitsEx(UINT,const BYTE*);
3590INT WINAPI SetMetaRgn(HDC);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003591BOOL WINAPI SetMiterLimit(HDC, FLOAT, PFLOAT);
Alexandre Julliard376e6502002-06-02 21:40:24 +00003592UINT WINAPI SetPaletteEntries(HPALETTE,UINT,UINT,const PALETTEENTRY*);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003593COLORREF WINAPI SetPixel(HDC,INT,INT,COLORREF);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003594BOOL WINAPI SetPixelV(HDC,INT,INT,COLORREF);
3595BOOL WINAPI SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR*);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003596INT WINAPI SetPolyFillMode(HDC,INT);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003597BOOL WINAPI SetRectRgn(HRGN,INT,INT,INT,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003598INT WINAPI SetRelAbs(HDC,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003599INT WINAPI SetROP2(HDC,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003600INT WINAPI SetStretchBltMode(HDC,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003601UINT WINAPI SetSystemPaletteUse(HDC,UINT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003602UINT WINAPI SetTextAlign(HDC,UINT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003603INT WINAPI SetTextCharacterExtra(HDC,INT);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003604COLORREF WINAPI SetTextColor(HDC,COLORREF);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003605BOOL WINAPI SetTextJustification(HDC,INT,INT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003606BOOL WINAPI SetViewportExtEx(HDC,INT,INT,LPSIZE);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003607BOOL WINAPI SetViewportOrgEx(HDC,INT,INT,LPPOINT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003608BOOL WINAPI SetWindowExtEx(HDC,INT,INT,LPSIZE);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003609BOOL WINAPI SetWindowOrgEx(HDC,INT,INT,LPPOINT);
3610HENHMETAFILE WINAPI SetWinMetaFileBits(UINT,CONST BYTE*,HDC,CONST METAFILEPICT *);
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003611BOOL WINAPI SetWorldTransform(HDC,const XFORM*);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003612INT WINAPI StartDocA(HDC,const DOCINFOA*);
3613INT WINAPI StartDocW(HDC,const DOCINFOW*);
Veksler Michael1346a3c1998-12-15 11:15:35 +00003614#define StartDoc WINELIB_NAME_AW(StartDoc)
Alexandre Julliarda3960291999-02-26 11:11:13 +00003615INT WINAPI StartPage(HDC);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003616INT WINAPI EndPage(HDC);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003617BOOL WINAPI StretchBlt(HDC,INT,INT,INT,INT,HDC,INT,
3618 INT,INT,INT,DWORD);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003619INT WINAPI StretchDIBits(HDC,INT,INT,INT,INT,INT,INT,
3620 INT,INT,const VOID*,const BITMAPINFO*,UINT,DWORD);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003621BOOL WINAPI StrokeAndFillPath(HDC);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003622BOOL WINAPI StrokePath(HDC);
3623BOOL WINAPI SwapBuffers(HDC);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003624BOOL WINAPI TextOutA(HDC,INT,INT,LPCSTR,INT);
3625BOOL WINAPI TextOutW(HDC,INT,INT,LPCWSTR,INT);
Veksler Michael1346a3c1998-12-15 11:15:35 +00003626#define TextOut WINELIB_NAME_AW(TextOut)
Huw D M Daviesa9f55c41999-05-08 12:45:18 +00003627BOOL WINAPI TranslateCharsetInfo(LPDWORD,LPCHARSETINFO,DWORD);
Leo van den Berg39bcf9d2002-03-19 02:14:34 +00003628BOOL WINAPI TransparentBlt(HDC,int,int,int,int,HDC,int,int,int,int,UINT);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003629BOOL WINAPI UnrealizeObject(HGDIOBJ);
Alexandre Julliarda3960291999-02-26 11:11:13 +00003630BOOL WINAPI UpdateColors(HDC);
Hans Leidekkerfeef8952004-12-27 17:23:17 +00003631BOOL WINAPI UpdateICMRegKeyA(DWORD,LPSTR,LPSTR,UINT);
3632BOOL WINAPI UpdateICMRegKeyW(DWORD,LPWSTR,LPWSTR,UINT);
3633#define UpdateICMRegKey WINELIB_NAME_AW(UpdateICMRegKey)
Alexandre Julliarda3960291999-02-26 11:11:13 +00003634BOOL WINAPI WidenPath(HDC);
Peter Ganten87d95b71999-09-19 14:17:14 +00003635BOOL WINAPI PolyTextOutA(HDC,PPOLYTEXTA,INT);
3636BOOL WINAPI PolyTextOutW(HDC,PPOLYTEXTW,INT);
3637#define PolyTextOut WINELIB_NAME_AW(PolyTextOut)
Veksler Michael1346a3c1998-12-15 11:15:35 +00003638
Alexandre Julliard85844e52002-06-10 02:28:42 +00003639/* These defines are used by wglSwapLayerBuffers */
3640#define WGL_SWAP_MAIN_PLANE (1 << 0)
3641#define WGL_SWAP_OVERLAY1 (1 << 1)
3642#define WGL_SWAP_OVERLAY2 (1 << 2)
3643#define WGL_SWAP_OVERLAY3 (1 << 3)
3644#define WGL_SWAP_OVERLAY4 (1 << 4)
3645#define WGL_SWAP_OVERLAY5 (1 << 5)
3646#define WGL_SWAP_OVERLAY6 (1 << 6)
3647#define WGL_SWAP_OVERLAY7 (1 << 7)
3648#define WGL_SWAP_OVERLAY8 (1 << 8)
3649#define WGL_SWAP_OVERLAY9 (1 << 9)
3650#define WGL_SWAP_OVERLAY10 (1 << 10)
3651#define WGL_SWAP_OVERLAY11 (1 << 11)
3652#define WGL_SWAP_OVERLAY12 (1 << 12)
3653#define WGL_SWAP_OVERLAY13 (1 << 13)
3654#define WGL_SWAP_OVERLAY14 (1 << 14)
3655#define WGL_SWAP_OVERLAY15 (1 << 15)
3656#define WGL_SWAP_UNDERLAY1 (1 << 16)
3657#define WGL_SWAP_UNDERLAY2 (1 << 17)
3658#define WGL_SWAP_UNDERLAY3 (1 << 18)
3659#define WGL_SWAP_UNDERLAY4 (1 << 19)
3660#define WGL_SWAP_UNDERLAY5 (1 << 20)
3661#define WGL_SWAP_UNDERLAY6 (1 << 21)
3662#define WGL_SWAP_UNDERLAY7 (1 << 22)
3663#define WGL_SWAP_UNDERLAY8 (1 << 23)
3664#define WGL_SWAP_UNDERLAY9 (1 << 24)
3665#define WGL_SWAP_UNDERLAY10 (1 << 25)
3666#define WGL_SWAP_UNDERLAY11 (1 << 26)
3667#define WGL_SWAP_UNDERLAY12 (1 << 27)
3668#define WGL_SWAP_UNDERLAY13 (1 << 28)
3669#define WGL_SWAP_UNDERLAY14 (1 << 29)
3670#define WGL_SWAP_UNDERLAY15 (1 << 30)
3671
Alexandre Julliard73cc3ba1999-03-13 17:12:07 +00003672#ifdef __cplusplus
3673}
3674#endif
3675
Francois Gouget6371e832000-10-13 23:12:19 +00003676#endif /* !NOGDI */
3677#endif /* _WINGDI_ */