Fixed a couple of faulty names used in wine and typos so that it will
[wine] / include / wingdi.h
1 #ifndef __WINE_WINGDI_H
2 #define __WINE_WINGDI_H
3
4 #include "wintypes.h"
5
6 #pragma pack(1)
7
8 typedef struct _ABCFLOAT {
9     FLOAT   abcfA;
10     FLOAT   abcfB;
11     FLOAT   abcfC;
12 } ABCFLOAT, *PABCFLOAT, *LPABCFLOAT;
13
14 typedef struct
15 {
16     WORD   wFirst;
17     WORD   wSecond;
18     INT16  iKernAmount;
19 } KERNINGPAIR16, *LPKERNINGPAIR16;
20
21 typedef struct
22 {
23     WORD   wFirst;
24     WORD   wSecond;
25     INT32  iKernAmount;
26 } KERNINGPAIR32, *LPKERNINGPAIR32;
27
28 DECL_WINELIB_TYPE(KERNINGPAIR)
29 DECL_WINELIB_TYPE(LPKERNINGPAIR)
30
31 typedef struct
32 {
33     HDC16   hdc;
34     BOOL16  fErase;
35     RECT16  rcPaint;
36     BOOL16  fRestore;
37     BOOL16  fIncUpdate;
38     BYTE    rgbReserved[16];
39 } PAINTSTRUCT16, *LPPAINTSTRUCT16;
40
41 typedef struct
42 {
43     HDC32   hdc;
44     BOOL32  fErase;
45     RECT32  rcPaint;
46     BOOL32  fRestore;
47     BOOL32  fIncUpdate;
48     BYTE    rgbReserved[32];
49 } PAINTSTRUCT32, *LPPAINTSTRUCT32;
50
51 DECL_WINELIB_TYPE(PAINTSTRUCT)
52 DECL_WINELIB_TYPE(LPPAINTSTRUCT)
53
54
55 typedef struct tagPIXELFORMATDESCRIPTOR {
56     WORD  nSize;
57     WORD  nVersion;
58     DWORD dwFlags;
59     BYTE  iPixelType;
60     BYTE  cColorBits;
61     BYTE  cRedBits;
62     BYTE  cRedShift;
63     BYTE  cGreenBits;
64     BYTE  cGreenShift;
65     BYTE  cBlueBits;
66     BYTE  cBlueShift;
67     BYTE  cAlphaBits;
68     BYTE  cAlphaShift;
69     BYTE  cAccumBits;
70     BYTE  cAccumRedBits;
71     BYTE  cAccumGreenBits;
72     BYTE  cAccumBlueBits;
73     BYTE  cAccumAlphaBits;
74     BYTE  cDepthBits;
75     BYTE  cStencilBits;
76     BYTE  cAuxBuffers;
77     BYTE  iLayerType;
78     BYTE  bReserved;
79     DWORD dwLayerMask;
80     DWORD dwVisibleMask;
81     DWORD dwDamageMask;
82 } PIXELFORMATDESCRIPTOR, *LPPIXELFORMATDESCRIPTOR;
83
84 typedef struct tagCOLORADJUSTMENT
85 {
86         WORD   caSize;
87         WORD   caFlags;
88         WORD   caIlluminantIndex;
89         WORD   caRedGamma;
90         WORD   caGreenGamma;
91         WORD   caBlueGamma;
92         WORD   caReferenceBlack;
93         WORD   caReferenceWhite;
94         SHORT  caContrast;
95         SHORT  caBrightness;
96         SHORT  caColorfulness;
97         SHORT  caRedGreenTint;
98 } COLORADJUSTMENT, *PCOLORADJUSTMENT, *LPCOLORADJUSTMENT;
99
100 #define DC_FIELDS               1
101 #define DC_PAPERS               2
102 #define DC_PAPERSIZE            3
103 #define DC_MINEXTENT            4
104 #define DC_MAXEXTENT            5
105 #define DC_BINS                 6
106 #define DC_DUPLEX               7
107 #define DC_SIZE                 8
108 #define DC_EXTRA                9
109 #define DC_VERSION              10
110 #define DC_DRIVER               11
111 #define DC_BINNAMES             12
112 #define DC_ENUMRESOLUTIONS      13
113 #define DC_FILEDEPENDENCIES     14
114 #define DC_TRUETYPE             15
115 #define DC_PAPERNAMES           16
116 #define DC_ORIENTATION          17
117 #define DC_COPIES               18
118
119 /* Flag returned from Escape QUERYDIBSUPPORT */
120 #define QDI_SETDIBITS           1
121 #define QDI_GETDIBITS           2
122 #define QDI_DIBTOSCREEN         4
123 #define QDI_STRETCHDIB          8
124
125
126 #define PR_JOBSTATUS    0x0000
127
128
129 /* GDI Escape commands */
130 #define NEWFRAME                1
131 #define ABORTDOC                2
132 #define NEXTBAND                3
133 #define SETCOLORTABLE           4
134 #define GETCOLORTABLE           5
135 #define FLUSHOUTPUT             6
136 #define DRAFTMODE               7
137 #define QUERYESCSUPPORT         8
138 #define SETABORTPROC            9
139 #define STARTDOC                10
140 #define ENDDOC                  11
141 #define GETPHYSPAGESIZE         12
142 #define GETPRINTINGOFFSET       13
143 #define GETSCALINGFACTOR        14
144 #define MFCOMMENT               15
145 #define GETPENWIDTH             16
146 #define SETCOPYCOUNT            17
147 #define SELECTPAPERSOURCE       18
148 #define DEVICEDATA              19
149 #define PASSTHROUGH             19
150 #define GETTECHNOLGY            20
151 #define GETTECHNOLOGY           20 /* yes, both of them */
152 #define SETLINECAP              21
153 #define SETLINEJOIN             22
154 #define SETMITERLIMIT           23
155 #define BANDINFO                24
156 #define DRAWPATTERNRECT         25
157 #define GETVECTORPENSIZE        26
158 #define GETVECTORBRUSHSIZE      27
159 #define ENABLEDUPLEX            28
160 #define GETSETPAPERBINS         29
161 #define GETSETPRINTORIENT       30
162 #define ENUMPAPERBINS           31
163 #define SETDIBSCALING           32
164 #define EPSPRINTING             33
165 #define ENUMPAPERMETRICS        34
166 #define GETSETPAPERMETRICS      35
167 #define POSTSCRIPT_DATA         37
168 #define POSTSCRIPT_IGNORE       38
169 #define MOUSETRAILS             39
170 #define GETDEVICEUNITS          42
171
172 #define GETEXTENDEDTEXTMETRICS  256
173 #define GETEXTENTTABLE          257
174 #define GETPAIRKERNTABLE        258
175 #define GETTRACKKERNTABLE       259
176 #define EXTTEXTOUT              512
177 #define GETFACENAME             513
178 #define DOWNLOADFACE            514
179 #define ENABLERELATIVEWIDTHS    768
180 #define ENABLEPAIRKERNING       769
181 #define SETKERNTRACK            770
182 #define SETALLJUSTVALUES        771
183 #define SETCHARSET              772
184
185 #define STRETCHBLT              2048
186 #define GETSETSCREENPARAMS      3072
187 #define QUERYDIBSUPPORT         3073
188 #define BEGIN_PATH              4096
189 #define CLIP_TO_PATH            4097
190 #define END_PATH                4098
191 #define EXT_DEVICE_CAPS         4099
192 #define RESTORE_CTM             4100
193 #define SAVE_CTM                4101
194 #define SET_ARC_DIRECTION       4102
195 #define SET_BACKGROUND_COLOR    4103
196 #define SET_POLY_MODE           4104
197 #define SET_SCREEN_ANGLE        4105
198 #define SET_SPREAD              4106
199 #define TRANSFORM_CTM           4107
200 #define SET_CLIP_BOX            4108
201 #define SET_BOUNDS              4109
202 #define SET_MIRROR_MODE         4110
203 #define OPENCHANNEL             4110
204 #define DOWNLOADHEADER          4111
205 #define CLOSECHANNEL            4112
206 #define POSTSCRIPT_PASSTHROUGH  4115
207 #define ENCAPSULATED_POSTSCRIPT 4116
208
209 /* Spooler Error Codes */
210 #define SP_NOTREPORTED  0x4000
211 #define SP_ERROR        (-1)
212 #define SP_APPABORT     (-2)
213 #define SP_USERABORT    (-3)
214 #define SP_OUTOFDISK    (-4)
215 #define SP_OUTOFMEMORY  (-5)
216
217
218   /* Raster operations */
219
220 #define R2_BLACK         1
221 #define R2_NOTMERGEPEN   2
222 #define R2_MASKNOTPEN    3
223 #define R2_NOTCOPYPEN    4
224 #define R2_MASKPENNOT    5
225 #define R2_NOT           6
226 #define R2_XORPEN        7
227 #define R2_NOTMASKPEN    8
228 #define R2_MASKPEN       9
229 #define R2_NOTXORPEN    10
230 #define R2_NOP          11
231 #define R2_MERGENOTPEN  12
232 #define R2_COPYPEN      13
233 #define R2_MERGEPENNOT  14
234 #define R2_MERGEPEN     15
235 #define R2_WHITE        16
236
237 #define SRCCOPY         0xcc0020
238 #define SRCPAINT        0xee0086
239 #define SRCAND          0x8800c6
240 #define SRCINVERT       0x660046
241 #define SRCERASE        0x440328
242 #define NOTSRCCOPY      0x330008
243 #define NOTSRCERASE     0x1100a6
244 #define MERGECOPY       0xc000ca
245 #define MERGEPAINT      0xbb0226
246 #define PATCOPY         0xf00021
247 #define PATPAINT        0xfb0a09
248 #define PATINVERT       0x5a0049
249 #define DSTINVERT       0x550009
250 #define BLACKNESS       0x000042
251 #define WHITENESS       0xff0062
252
253   /* StretchBlt() modes */
254 #define BLACKONWHITE         1
255 #define WHITEONBLACK         2
256 #define COLORONCOLOR         3
257
258 #define STRETCH_ANDSCANS     BLACKONWHITE
259 #define STRETCH_ORSCANS      WHITEONBLACK
260 #define STRETCH_DELETESCANS  COLORONCOLOR
261
262   /* Colors */
263
264 typedef DWORD COLORREF;
265
266 #define RGB(r,g,b)          ((COLORREF)((r) | ((g) << 8) | ((b) << 16)))
267 #define PALETTERGB(r,g,b)   (0x02000000 | RGB(r,g,b))
268 #define PALETTEINDEX(i)     ((COLORREF)(0x01000000 | (WORD)(i)))
269
270 #define GetRValue(rgb)      ((rgb) & 0xff)
271 #define GetGValue(rgb)      (((rgb) >> 8) & 0xff)
272 #define GetBValue(rgb)      (((rgb) >> 16) & 0xff)
273
274 #define COLOR_SCROLLBAR             0
275 #define COLOR_BACKGROUND            1
276 #define COLOR_ACTIVECAPTION         2
277 #define COLOR_INACTIVECAPTION       3
278 #define COLOR_MENU                  4
279 #define COLOR_WINDOW                5
280 #define COLOR_WINDOWFRAME           6
281 #define COLOR_MENUTEXT              7
282 #define COLOR_WINDOWTEXT            8
283 #define COLOR_CAPTIONTEXT           9
284 #define COLOR_ACTIVEBORDER         10
285 #define COLOR_INACTIVEBORDER       11
286 #define COLOR_APPWORKSPACE         12
287 #define COLOR_HIGHLIGHT            13
288 #define COLOR_HIGHLIGHTTEXT        14
289 #define COLOR_BTNFACE              15
290 #define COLOR_BTNSHADOW            16
291 #define COLOR_GRAYTEXT             17
292 #define COLOR_BTNTEXT              18
293 #define COLOR_INACTIVECAPTIONTEXT  19
294 #define COLOR_BTNHIGHLIGHT         20
295 /* win95 colors */
296 #define COLOR_3DDKSHADOW           21
297 #define COLOR_3DLIGHT              22
298 #define COLOR_INFOTEXT             23
299 #define COLOR_INFOBK               24
300 #define COLOR_DESKTOP              COLOR_BACKGROUND
301 #define COLOR_3DFACE               COLOR_BTNFACE
302 #define COLOR_3DSHADOW             COLOR_BTNSHADOW
303 #define COLOR_3DHIGHLIGHT          COLOR_BTNHIGHLIGHT
304 #define COLOR_3DHILIGHT            COLOR_BTNHIGHLIGHT
305 #define COLOR_BTNHILIGHT           COLOR_BTNHIGHLIGHT
306 /* win98 colors */
307 #define COLOR_ALTERNATEBTNFACE         25  /* undocumented, constant's name unknown */
308 #define COLOR_HOTLIGHT                 26
309 #define COLOR_GRADIENTACTIVECAPTION    27
310 #define COLOR_GRADIENTINACTIVECAPTION  28
311
312   /* WM_CTLCOLOR values */
313 #define CTLCOLOR_MSGBOX             0
314 #define CTLCOLOR_EDIT               1
315 #define CTLCOLOR_LISTBOX            2
316 #define CTLCOLOR_BTN                3
317 #define CTLCOLOR_DLG                4
318 #define CTLCOLOR_SCROLLBAR          5
319 #define CTLCOLOR_STATIC             6
320
321 #define ICM_OFF   1
322 #define ICM_ON    2
323 #define ICM_QUERY 3
324
325   /* Bounds Accumulation APIs */
326 #define DCB_RESET       0x0001
327 #define DCB_ACCUMULATE  0x0002
328 #define DCB_DIRTY       DCB_ACCUMULATE
329 #define DCB_SET         (DCB_RESET | DCB_ACCUMULATE)
330 #define DCB_ENABLE      0x0004
331 #define DCB_DISABLE     0x0008
332
333   /* Bitmaps */
334
335 typedef struct
336 {
337     INT16  bmType;
338     INT16  bmWidth;
339     INT16  bmHeight;
340     INT16  bmWidthBytes;
341     BYTE   bmPlanes;
342     BYTE   bmBitsPixel;
343     SEGPTR bmBits WINE_PACKED;
344 } BITMAP16, *LPBITMAP16;
345
346 typedef struct
347 {
348     INT32  bmType;
349     INT32  bmWidth;
350     INT32  bmHeight;
351     INT32  bmWidthBytes;
352     WORD   bmPlanes;
353     WORD   bmBitsPixel;
354     LPVOID bmBits WINE_PACKED;
355 } BITMAP32, *LPBITMAP32;
356
357 DECL_WINELIB_TYPE(BITMAP)
358 DECL_WINELIB_TYPE(LPBITMAP)
359
360   /* Brushes */
361
362 typedef struct
363
364     UINT16     lbStyle;
365     COLORREF   lbColor WINE_PACKED;
366     INT16      lbHatch;
367 } LOGBRUSH16, *LPLOGBRUSH16;
368
369 typedef struct
370
371     UINT32     lbStyle;
372     COLORREF   lbColor;
373     INT32      lbHatch;
374 } LOGBRUSH32, *LPLOGBRUSH32;
375
376 DECL_WINELIB_TYPE(LOGBRUSH)
377 DECL_WINELIB_TYPE(LPLOGBRUSH)
378
379   /* Brush styles */
380 #define BS_SOLID            0
381 #define BS_NULL             1
382 #define BS_HOLLOW           1
383 #define BS_HATCHED          2
384 #define BS_PATTERN          3
385 #define BS_INDEXED          4
386 #define BS_DIBPATTERN       5
387 #define BS_DIBPATTERNPT     6
388 #define BS_PATTERN8X8       7
389 #define BS_DIBPATTERN8X8    8
390 #define BS_MONOPATTERN      9
391
392   /* Hatch styles */
393 #define HS_HORIZONTAL       0
394 #define HS_VERTICAL         1
395 #define HS_FDIAGONAL        2
396 #define HS_BDIAGONAL        3
397 #define HS_CROSS            4
398 #define HS_DIAGCROSS        5
399
400   /* Fonts */
401
402 #define LF_FACESIZE     32
403 #define LF_FULLFACESIZE 64
404
405 #define RASTER_FONTTYPE     0x0001
406 #define DEVICE_FONTTYPE     0x0002
407 #define TRUETYPE_FONTTYPE   0x0004
408
409 typedef struct
410 {
411     INT16  lfHeight;
412     INT16  lfWidth;
413     INT16  lfEscapement;
414     INT16  lfOrientation;
415     INT16  lfWeight;
416     BYTE   lfItalic;
417     BYTE   lfUnderline;
418     BYTE   lfStrikeOut;
419     BYTE   lfCharSet;
420     BYTE   lfOutPrecision;
421     BYTE   lfClipPrecision;
422     BYTE   lfQuality;
423     BYTE   lfPitchAndFamily;
424     CHAR   lfFaceName[LF_FACESIZE] WINE_PACKED;
425 } LOGFONT16, *LPLOGFONT16;
426
427 typedef struct
428 {
429     INT32  lfHeight;
430     INT32  lfWidth;
431     INT32  lfEscapement;
432     INT32  lfOrientation;
433     INT32  lfWeight;
434     BYTE   lfItalic;
435     BYTE   lfUnderline;
436     BYTE   lfStrikeOut;
437     BYTE   lfCharSet;
438     BYTE   lfOutPrecision;
439     BYTE   lfClipPrecision;
440     BYTE   lfQuality;
441     BYTE   lfPitchAndFamily;
442     CHAR   lfFaceName[LF_FACESIZE];
443 } LOGFONT32A, *LPLOGFONT32A;
444
445 typedef struct
446 {
447     INT32  lfHeight;
448     INT32  lfWidth;
449     INT32  lfEscapement;
450     INT32  lfOrientation;
451     INT32  lfWeight;
452     BYTE   lfItalic;
453     BYTE   lfUnderline;
454     BYTE   lfStrikeOut;
455     BYTE   lfCharSet;
456     BYTE   lfOutPrecision;
457     BYTE   lfClipPrecision;
458     BYTE   lfQuality;
459     BYTE   lfPitchAndFamily;
460     WCHAR  lfFaceName[LF_FACESIZE];
461 } LOGFONT32W, *LPLOGFONT32W;
462
463 DECL_WINELIB_TYPE_AW(LOGFONT)
464 DECL_WINELIB_TYPE_AW(LPLOGFONT)
465
466 typedef struct
467 {
468   LOGFONT16  elfLogFont;
469   BYTE       elfFullName[LF_FULLFACESIZE] WINE_PACKED;
470   BYTE       elfStyle[LF_FACESIZE] WINE_PACKED;
471 } ENUMLOGFONT16, *LPENUMLOGFONT16;
472
473 typedef struct
474 {
475   LOGFONT32A elfLogFont;
476   BYTE       elfFullName[LF_FULLFACESIZE] WINE_PACKED;
477   BYTE       elfStyle[LF_FACESIZE] WINE_PACKED;
478 } ENUMLOGFONT32A, *LPENUMLOGFONT32A;
479
480 typedef struct
481 {
482   LOGFONT32W elfLogFont;
483   WCHAR      elfFullName[LF_FULLFACESIZE] WINE_PACKED;
484   WCHAR      elfStyle[LF_FACESIZE] WINE_PACKED;
485 } ENUMLOGFONT32W, *LPENUMLOGFONT32W;
486
487 typedef struct
488 {
489   LOGFONT16  elfLogFont;
490   BYTE       elfFullName[LF_FULLFACESIZE] WINE_PACKED;
491   BYTE       elfStyle[LF_FACESIZE] WINE_PACKED;
492   BYTE       elfScript[LF_FACESIZE] WINE_PACKED;
493 } ENUMLOGFONTEX16, *LPENUMLOGFONTEX16;
494
495 typedef struct
496 {
497   LOGFONT32A elfLogFont;
498   BYTE       elfFullName[LF_FULLFACESIZE] WINE_PACKED;
499   BYTE       elfStyle[LF_FACESIZE] WINE_PACKED;
500   BYTE       elfScript[LF_FACESIZE] WINE_PACKED;
501 } ENUMLOGFONTEX32A,*LPENUMLOGFONTEX32A;
502
503 typedef struct
504 {
505   LOGFONT32W elfLogFont;
506   WCHAR      elfFullName[LF_FULLFACESIZE] WINE_PACKED;
507   WCHAR      elfStyle[LF_FACESIZE] WINE_PACKED;
508   WCHAR      elfScript[LF_FACESIZE] WINE_PACKED;
509 } ENUMLOGFONTEX32W,*LPENUMLOGFONTEX32W;
510
511 DECL_WINELIB_TYPE_AW(ENUMLOGFONT)
512 DECL_WINELIB_TYPE_AW(LPENUMLOGFONT)
513 DECL_WINELIB_TYPE_AW(LPENUMLOGFONTEX)
514
515 /*
516  * The FONTSIGNATURE tells which Unicode ranges and which code pages
517  * have glyphs in a font.
518  *
519  * fsUsb  128-bit bitmap. The most significant bits are 10 (magic number).
520  *        The remaining 126 bits map the Unicode ISO 10646 subranges
521  *        for which the font provides glyphs.
522  *
523  * fsCsb  64-bit bitmap. The low 32 bits map the Windows codepages for
524  *        which the font provides glyphs. The high 32 bits are for 
525  *        non Windows codepages.
526  */
527 typedef struct
528 {
529   DWORD fsUsb[4];
530   DWORD fsCsb[2];
531 } FONTSIGNATURE,*LPFONTSIGNATURE;
532
533 typedef struct 
534 {
535   UINT32        ciCharset; /* character set */
536   UINT32        ciACP; /* ANSI code page */
537   FONTSIGNATURE fs;
538 } CHARSETINFO,*LPCHARSETINFO;
539
540 /* Flags for TranslateCharsetInfo */
541 #define TCI_SRCCHARSET    1
542 #define TCI_SRCCODEPAGE   2
543 #define TCI_SRCFONTSIG    3
544
545 /* Flags for ModifyWorldTransform */
546 #define MWT_IDENTITY      1
547 #define MWT_LEFTMULTIPLY  2
548 #define MWT_RIGHTMULTIPLY 3
549
550 /* Object Definitions for EnumObjects() */
551 #define OBJ_PEN             1
552 #define OBJ_BRUSH           2
553 #define OBJ_DC              3
554 #define OBJ_METADC          4
555 #define OBJ_PAL             5
556 #define OBJ_FONT            6
557 #define OBJ_BITMAP          7
558 #define OBJ_REGION          8
559 #define OBJ_METAFILE        9
560 #define OBJ_MEMDC           10
561 #define OBJ_EXTPEN          11
562 #define OBJ_ENHMETADC       12
563 #define OBJ_ENHMETAFILE     13
564
565  
566 typedef struct
567 {
568     FLOAT  eM11;
569     FLOAT  eM12;
570     FLOAT  eM21;
571     FLOAT  eM22;
572     FLOAT  eDx;
573     FLOAT  eDy;
574 } XFORM, *LPXFORM;
575
576 typedef struct 
577 {
578     INT16  txfHeight;
579     INT16  txfWidth;
580     INT16  txfEscapement;
581     INT16  txfOrientation;
582     INT16  txfWeight;
583     CHAR   txfItalic;
584     CHAR   txfUnderline;
585     CHAR   txfStrikeOut;
586     CHAR   txfOutPrecision;
587     CHAR   txfClipPrecision;
588     INT16  txfAccelerator WINE_PACKED;
589     INT16  txfOverhang WINE_PACKED;
590 } TEXTXFORM16, *LPTEXTXFORM16;
591
592 typedef struct
593 {
594     INT16 dfType;
595     INT16 dfPoints;
596     INT16 dfVertRes;
597     INT16 dfHorizRes;
598     INT16 dfAscent;
599     INT16 dfInternalLeading;
600     INT16 dfExternalLeading;
601     CHAR  dfItalic;
602     CHAR  dfUnderline;
603     CHAR  dfStrikeOut;
604     INT16 dfWeight;
605     BYTE  dfCharSet;
606     INT16 dfPixWidth;
607     INT16 dfPixHeight;
608     CHAR  dfPitchAndFamily;
609     INT16 dfAvgWidth;
610     INT16 dfMaxWidth;
611     CHAR  dfFirstChar;
612     CHAR  dfLastChar;
613     CHAR  dfDefaultChar;
614     CHAR  dfBreakChar;
615     INT16 dfWidthBytes;
616     LONG  dfDevice;
617     LONG  dfFace;
618     LONG  dfBitsPointer;
619     LONG  dfBitsOffset;
620     CHAR  dfReserved;
621     LONG  dfFlags;
622     INT16 dfAspace;
623     INT16 dfBspace;
624     INT16 dfCspace;
625     LONG  dfColorPointer;
626     LONG  dfReserved1[4];
627 } FONTINFO16, *LPFONTINFO16;
628
629   /* lfWeight values */
630 #define FW_DONTCARE         0
631 #define FW_THIN             100
632 #define FW_EXTRALIGHT       200
633 #define FW_ULTRALIGHT       200
634 #define FW_LIGHT            300
635 #define FW_NORMAL           400
636 #define FW_REGULAR          400
637 #define FW_MEDIUM           500
638 #define FW_SEMIBOLD         600
639 #define FW_DEMIBOLD         600
640 #define FW_BOLD             700
641 #define FW_EXTRABOLD        800
642 #define FW_ULTRABOLD        800
643 #define FW_HEAVY            900
644 #define FW_BLACK            900
645
646   /* lfCharSet values */
647 #define ANSI_CHARSET          (BYTE)0   /* CP1252, ansi-0, iso8859-{1,15} */
648 #define DEFAULT_CHARSET       (BYTE)1
649 #define SYMBOL_CHARSET        (BYTE)2
650 #define SHIFTJIS_CHARSET      (BYTE)128 /* CP932 */
651 #define HANGEUL_CHARSET       (BYTE)129 /* CP949, ksc5601.1987-0 */
652 #define HANGUL_CHARSET        HANGEUL_CHARSET
653 #define GB2312_CHARSET        (BYTE)134 /* CP936, gb2312.1980-0 */
654 #define CHINESEBIG5_CHARSET   (BYTE)136 /* CP950, big5.et-0 */
655 #define GREEK_CHARSET         (BYTE)161 /* CP1253 */
656 #define TURKISH_CHARSET       (BYTE)162 /* CP1254, -iso8859-9 */
657 #define HEBREW_CHARSET        (BYTE)177 /* CP1255, -iso8859-8 */
658 #define ARABIC_CHARSET        (BYTE)178 /* CP1256, -iso8859-6 */
659 #define BALTIC_CHARSET        (BYTE)186 /* CP1257, -iso8859-10 */
660 #define RUSSIAN_CHARSET       (BYTE)204 /* CP1251, -iso8859-5 */
661 #define EE_CHARSET            (BYTE)238 /* CP1250, -iso8859-2 */
662 #define EASTEUROPE_CHARSET    EE_CHARSET
663 #define THAI_CHARSET          (BYTE)222 /* CP874, iso8859-11, tis620 */
664 #define JOHAB_CHARSET         (BYTE)130 /* korean (johab) CP1361 */
665 #define OEM_CHARSET           (BYTE)255
666 /* I don't know if the values of *_CHARSET macros are defined in Windows
667  * or if we can choose them as we want. -- srtxg
668  */
669 #define VISCII_CHARSET        (BYTE)240 /* viscii1.1-1 */
670 #define TCVN_CHARSET          (BYTE)241 /* tcvn-0 */
671 #define KOI8_CHARSET          (BYTE)242 /* koi8-{r,u,ru} */
672 #define ISO3_CHARSET          (BYTE)243 /* iso8859-3 */
673 #define ISO4_CHARSET          (BYTE)244 /* iso8859-4 */
674
675   /* lfOutPrecision values */
676 #define OUT_DEFAULT_PRECIS      0
677 #define OUT_STRING_PRECIS       1
678 #define OUT_CHARACTER_PRECIS    2
679 #define OUT_STROKE_PRECIS       3
680 #define OUT_TT_PRECIS           4
681 #define OUT_DEVICE_PRECIS       5
682 #define OUT_RASTER_PRECIS       6
683 #define OUT_TT_ONLY_PRECIS      7
684
685   /* lfClipPrecision values */
686 #define CLIP_DEFAULT_PRECIS     0x00
687 #define CLIP_CHARACTER_PRECIS   0x01
688 #define CLIP_STROKE_PRECIS      0x02
689 #define CLIP_MASK               0x0F
690 #define CLIP_LH_ANGLES          0x10
691 #define CLIP_TT_ALWAYS          0x20
692 #define CLIP_EMBEDDED           0x80
693
694   /* lfQuality values */
695 #define DEFAULT_QUALITY     0
696 #define DRAFT_QUALITY       1
697 #define PROOF_QUALITY       2
698
699   /* lfPitchAndFamily pitch values */
700 #define DEFAULT_PITCH       0x00
701 #define FIXED_PITCH         0x01
702 #define VARIABLE_PITCH      0x02
703 #define FF_DONTCARE         0x00
704 #define FF_ROMAN            0x10
705 #define FF_SWISS            0x20
706 #define FF_MODERN           0x30
707 #define FF_SCRIPT           0x40
708 #define FF_DECORATIVE       0x50
709
710 typedef struct
711 {
712     INT16     tmHeight;
713     INT16     tmAscent;
714     INT16     tmDescent;
715     INT16     tmInternalLeading;
716     INT16     tmExternalLeading;
717     INT16     tmAveCharWidth;
718     INT16     tmMaxCharWidth;
719     INT16     tmWeight;
720     BYTE      tmItalic;
721     BYTE      tmUnderlined;
722     BYTE      tmStruckOut;
723     BYTE      tmFirstChar;
724     BYTE      tmLastChar;
725     BYTE      tmDefaultChar;
726     BYTE      tmBreakChar;
727     BYTE      tmPitchAndFamily;
728     BYTE      tmCharSet;
729     INT16     tmOverhang WINE_PACKED;
730     INT16     tmDigitizedAspectX WINE_PACKED;
731     INT16     tmDigitizedAspectY WINE_PACKED;
732 } TEXTMETRIC16, *LPTEXTMETRIC16;
733
734 typedef struct
735 {
736     INT32     tmHeight;
737     INT32     tmAscent;
738     INT32     tmDescent;
739     INT32     tmInternalLeading;
740     INT32     tmExternalLeading;
741     INT32     tmAveCharWidth;
742     INT32     tmMaxCharWidth;
743     INT32     tmWeight;
744     INT32     tmOverhang;
745     INT32     tmDigitizedAspectX;
746     INT32     tmDigitizedAspectY;
747     BYTE      tmFirstChar;
748     BYTE      tmLastChar;
749     BYTE      tmDefaultChar;
750     BYTE      tmBreakChar;
751     BYTE      tmItalic;
752     BYTE      tmUnderlined;
753     BYTE      tmStruckOut;
754     BYTE      tmPitchAndFamily;
755     BYTE      tmCharSet;
756 } TEXTMETRIC32A, *LPTEXTMETRIC32A;
757
758 typedef struct
759 {
760     INT32     tmHeight;
761     INT32     tmAscent;
762     INT32     tmDescent;
763     INT32     tmInternalLeading;
764     INT32     tmExternalLeading;
765     INT32     tmAveCharWidth;
766     INT32     tmMaxCharWidth;
767     INT32     tmWeight;
768     INT32     tmOverhang;
769     INT32     tmDigitizedAspectX;
770     INT32     tmDigitizedAspectY;
771     WCHAR     tmFirstChar;
772     WCHAR     tmLastChar;
773     WCHAR     tmDefaultChar;
774     WCHAR     tmBreakChar;
775     BYTE      tmItalic;
776     BYTE      tmUnderlined;
777     BYTE      tmStruckOut;
778     BYTE      tmPitchAndFamily;
779     BYTE      tmCharSet;
780 } TEXTMETRIC32W, *LPTEXTMETRIC32W;
781
782 DECL_WINELIB_TYPE_AW(TEXTMETRIC)
783 DECL_WINELIB_TYPE_AW(LPTEXTMETRIC)
784
785
786 typedef struct tagPANOSE
787 {
788     BYTE bFamilyType;
789     BYTE bSerifStyle;
790     BYTE bWeight;
791     BYTE bProportion;
792     BYTE bContrast;
793     BYTE bStrokeVariation;
794     BYTE bArmStyle;
795     BYTE bLetterform;
796     BYTE bMidline;
797     BYTE bXHeight;
798 } PANOSE;
799
800
801 typedef struct _OUTLINETEXTMETRIC32A
802 {
803     UINT32          otmSize;
804     TEXTMETRIC32A   otmTextMetrics;
805     BYTE            otmFilter;
806     PANOSE          otmPanoseNumber;
807     UINT32          otmfsSelection;
808     UINT32          otmfsType;
809     INT32           otmsCharSlopeRise;
810     INT32           otmsCharSlopeRun;
811     INT32           otmItalicAngle;
812     UINT32          otmEMSquare;
813     INT32           otmAscent;
814     INT32           otmDescent;
815     UINT32          otmLineGap;
816     UINT32          otmsCapEmHeight;
817     UINT32          otmsXHeight;
818     RECT32          otmrcFontBox;
819     INT32           otmMacAscent;
820     INT32           otmMacDescent;
821     UINT32          otmMacLineGap;
822     UINT32          otmusMinimumPPEM;
823     POINT32         otmptSubscriptSize;
824     POINT32         otmptSubscriptOffset;
825     POINT32         otmptSuperscriptSize;
826     POINT32         otmptSuperscriptOffset;
827     UINT32          otmsStrikeoutSize;
828     INT32           otmsStrikeoutPosition;
829     INT32           otmsUnderscoreSize;
830     INT32           otmsUnderscorePosition;
831     LPSTR           otmpFamilyName;
832     LPSTR           otmpFaceName;
833     LPSTR           otmpStyleName;
834     LPSTR           otmpFullName;
835 } OUTLINETEXTMETRIC32A, *LPOUTLINETEXTMETRIC32A;
836
837 typedef struct _OUTLINETEXTMETRIC32W
838 {
839     UINT32          otmSize;
840     TEXTMETRIC32W   otmTextMetrics;
841     BYTE            otmFilter;
842     PANOSE          otmPanoseNumber;
843     UINT32          otmfsSelection;
844     UINT32          otmfsType;
845     INT32           otmsCharSlopeRise;
846     INT32           otmsCharSlopeRun;
847     INT32           otmItalicAngle;
848     UINT32          otmEMSquare;
849     INT32           otmAscent;
850     INT32           otmDescent;
851     UINT32          otmLineGap;
852     UINT32          otmsCapEmHeight;
853     UINT32          otmsXHeight;
854     RECT32          otmrcFontBox;
855     INT32           otmMacAscent;
856     INT32           otmMacDescent;
857     UINT32          otmMacLineGap;
858     UINT32          otmusMinimumPPEM;
859     POINT32         otmptSubscriptSize;
860     POINT32         otmptSubscriptOffset;
861     POINT32         otmptSuperscriptSize;
862     POINT32         otmptSuperscriptOffset;
863     UINT32          otmsStrikeoutSize;
864     INT32           otmsStrikeoutPosition;
865     INT32           otmsUnderscoreSize;
866     INT32           otmsUnderscorePosition;
867     LPSTR           otmpFamilyName;
868     LPSTR           otmpFaceName;
869     LPSTR           otmpStyleName;
870     LPSTR           otmpFullName;
871 } OUTLINETEXTMETRIC32W, *LPOUTLINETEXTMETRIC32W;
872
873 typedef struct _OUTLINETEXTMETRIC16
874 {
875     UINT16          otmSize;
876     TEXTMETRIC16    otmTextMetrics;
877     BYTE            otmFilter;
878     PANOSE          otmPanoseNumber;
879     UINT16          otmfsSelection;
880     UINT16          otmfsType;
881     INT16           otmsCharSlopeRise;
882     INT16           otmsCharSlopeRun;
883     INT16           otmItalicAngle;
884     UINT16          otmEMSquare;
885     INT16           otmAscent;
886     INT16           otmDescent;
887     UINT16          otmLineGap;
888     UINT16          otmsCapEmHeight;
889     UINT16          otmsXHeight;
890     RECT16          otmrcFontBox;
891     INT16           otmMacAscent;
892     INT16           otmMacDescent;
893     UINT16          otmMacLineGap;
894     UINT16          otmusMinimumPPEM;
895     POINT16         otmptSubscriptSize;
896     POINT16         otmptSubscriptOffset;
897     POINT16         otmptSuperscriptSize;
898     POINT16         otmptSuperscriptOffset;
899     UINT16          otmsStrikeoutSize;
900     INT16           otmsStrikeoutPosition;
901     INT16           otmsUnderscoreSize;
902     INT32           otmsUnderscorePosition;
903     LPSTR           otmpFamilyName;
904     LPSTR           otmpFaceName;
905     LPSTR           otmpStyleName;
906     LPSTR           otmpFullName;
907 } OUTLINETEXTMETRIC16,*LPOUTLINETEXTMETRIC16;
908
909 DECL_WINELIB_TYPE_AW(OUTLINETEXTMETRIC)
910 DECL_WINELIB_TYPE_AW(LPOUTLINETEXTMETRIC)
911
912
913
914 /* ntmFlags field flags */
915 #define NTM_REGULAR     0x00000040L
916 #define NTM_BOLD        0x00000020L
917 #define NTM_ITALIC      0x00000001L
918
919 typedef struct
920 {
921     INT16     tmHeight;
922     INT16     tmAscent;
923     INT16     tmDescent;
924     INT16     tmInternalLeading;
925     INT16     tmExternalLeading;
926     INT16     tmAveCharWidth;
927     INT16     tmMaxCharWidth;
928     INT16     tmWeight;
929     BYTE      tmItalic;
930     BYTE      tmUnderlined;
931     BYTE      tmStruckOut;
932     BYTE      tmFirstChar;
933     BYTE      tmLastChar;
934     BYTE      tmDefaultChar;
935     BYTE      tmBreakChar;
936     BYTE      tmPitchAndFamily;
937     BYTE      tmCharSet;
938     INT16     tmOverhang WINE_PACKED;
939     INT16     tmDigitizedAspectX WINE_PACKED;
940     INT16     tmDigitizedAspectY WINE_PACKED;
941     DWORD     ntmFlags;
942     UINT16    ntmSizeEM;
943     UINT16    ntmCellHeight;
944     UINT16    ntmAvgWidth;
945 } NEWTEXTMETRIC16,*LPNEWTEXTMETRIC16;
946
947 typedef struct
948 {
949     INT32     tmHeight;
950     INT32     tmAscent;
951     INT32     tmDescent;
952     INT32     tmInternalLeading;
953     INT32     tmExternalLeading;
954     INT32     tmAveCharWidth;
955     INT32     tmMaxCharWidth;
956     INT32     tmWeight;
957     INT32     tmOverhang;
958     INT32     tmDigitizedAspectX;
959     INT32     tmDigitizedAspectY;
960     BYTE      tmFirstChar;
961     BYTE      tmLastChar;
962     BYTE      tmDefaultChar;
963     BYTE      tmBreakChar;
964     BYTE      tmItalic;
965     BYTE      tmUnderlined;
966     BYTE      tmStruckOut;
967     BYTE      tmPitchAndFamily;
968     BYTE      tmCharSet;
969     DWORD     ntmFlags;
970     UINT32    ntmSizeEM;
971     UINT32    ntmCellHeight;
972     UINT32    ntmAvgWidth;
973 } NEWTEXTMETRIC32A, *LPNEWTEXTMETRIC32A;
974
975 typedef struct
976 {
977     INT32     tmHeight;
978     INT32     tmAscent;
979     INT32     tmDescent;
980     INT32     tmInternalLeading;
981     INT32     tmExternalLeading;
982     INT32     tmAveCharWidth;
983     INT32     tmMaxCharWidth;
984     INT32     tmWeight;
985     INT32     tmOverhang;
986     INT32     tmDigitizedAspectX;
987     INT32     tmDigitizedAspectY;
988     WCHAR     tmFirstChar;
989     WCHAR     tmLastChar;
990     WCHAR     tmDefaultChar;
991     WCHAR     tmBreakChar;
992     BYTE      tmItalic;
993     BYTE      tmUnderlined;
994     BYTE      tmStruckOut;
995     BYTE      tmPitchAndFamily;
996     BYTE      tmCharSet;
997     DWORD     ntmFlags;
998     UINT32    ntmSizeEM;
999     UINT32    ntmCellHeight;
1000     UINT32    ntmAvgWidth;
1001 } NEWTEXTMETRIC32W, *LPNEWTEXTMETRIC32W;
1002
1003 DECL_WINELIB_TYPE_AW(NEWTEXTMETRIC)
1004 DECL_WINELIB_TYPE_AW(LPNEWTEXTMETRIC)
1005
1006 typedef struct
1007 {
1008     NEWTEXTMETRIC16     ntmetm;
1009     FONTSIGNATURE       ntmeFontSignature;
1010 } NEWTEXTMETRICEX16,*LPNEWTEXTMETRICEX16;
1011
1012 typedef struct
1013 {
1014     NEWTEXTMETRIC32A    ntmetm;
1015     FONTSIGNATURE       ntmeFontSignature;
1016 } NEWTEXTMETRICEX32A,*LPNEWTEXTMETRICEX32A;
1017
1018 typedef struct
1019 {
1020     NEWTEXTMETRIC32W    ntmetm;
1021     FONTSIGNATURE       ntmeFontSignature;
1022 } NEWTEXTMETRICEX32W,*LPNEWTEXTMETRICEX32W;
1023
1024 DECL_WINELIB_TYPE_AW(NEWTEXTMETRICEX)
1025 DECL_WINELIB_TYPE_AW(LPNEWTEXTMETRICEX)
1026
1027
1028 typedef INT16 (CALLBACK *FONTENUMPROC16)(SEGPTR,SEGPTR,UINT16,LPARAM);
1029 typedef INT32 (CALLBACK *FONTENUMPROC32A)(LPENUMLOGFONT32A,LPNEWTEXTMETRIC32A,
1030                                           UINT32,LPARAM);
1031 typedef INT32 (CALLBACK *FONTENUMPROC32W)(LPENUMLOGFONT32W,LPNEWTEXTMETRIC32W,
1032                                           UINT32,LPARAM);
1033 DECL_WINELIB_TYPE_AW(FONTENUMPROC)
1034
1035 typedef INT16 (CALLBACK *FONTENUMPROCEX16)(SEGPTR,SEGPTR,UINT16,LPARAM);
1036 typedef INT32 (CALLBACK *FONTENUMPROCEX32A)(LPENUMLOGFONTEX32A,LPNEWTEXTMETRICEX32A,UINT32,LPARAM);
1037 typedef INT32 (CALLBACK *FONTENUMPROCEX32W)(LPENUMLOGFONTEX32W,LPNEWTEXTMETRICEX32W,UINT32,LPARAM);
1038 DECL_WINELIB_TYPE_AW(FONTENUMPROCEX)
1039
1040   /* tmPitchAndFamily bits */
1041 #define TMPF_FIXED_PITCH    1           /* means variable pitch */
1042 #define TMPF_VECTOR         2
1043 #define TMPF_TRUETYPE       4
1044 #define TMPF_DEVICE         8
1045
1046   /* Text alignment */
1047 #define TA_NOUPDATECP       0x00
1048 #define TA_UPDATECP         0x01
1049 #define TA_LEFT             0x00
1050 #define TA_RIGHT            0x02
1051 #define TA_CENTER           0x06
1052 #define TA_TOP              0x00
1053 #define TA_BOTTOM           0x08
1054 #define TA_BASELINE         0x18
1055
1056   /* ExtTextOut() parameters */
1057 #define ETO_GRAYED          0x01
1058 #define ETO_OPAQUE          0x02
1059 #define ETO_CLIPPED         0x04
1060
1061 typedef struct
1062 {
1063     UINT16      gmBlackBoxX;
1064     UINT16      gmBlackBoxY;
1065     POINT16     gmptGlyphOrigin;
1066     INT16       gmCellIncX;
1067     INT16       gmCellIncY;
1068 } GLYPHMETRICS16, *LPGLYPHMETRICS16;
1069
1070 typedef struct
1071 {
1072     UINT32      gmBlackBoxX;
1073     UINT32      gmBlackBoxY;
1074     POINT32     gmptGlyphOrigin;
1075     INT16       gmCellIncX;
1076     INT16       gmCellIncY;
1077 } GLYPHMETRICS32, *LPGLYPHMETRICS32;
1078
1079 DECL_WINELIB_TYPE(GLYPHMETRICS)
1080 DECL_WINELIB_TYPE(LPGLYPHMETRICS)
1081
1082 #define GGO_METRICS         0
1083 #define GGO_BITMAP          1
1084 #define GGO_NATIVE          2
1085
1086 typedef struct
1087 {
1088     UINT16  fract;
1089     INT16   value;
1090 } FIXED;
1091
1092 typedef struct
1093 {
1094      FIXED  eM11;
1095      FIXED  eM12;
1096      FIXED  eM21;
1097      FIXED  eM22;
1098 } MAT2, *LPMAT2;
1099
1100   /* for GetCharABCWidths() */
1101 typedef struct
1102 {
1103     INT16   abcA;
1104     UINT16  abcB;
1105     INT16   abcC;
1106 } ABC16, *LPABC16;
1107
1108 typedef struct
1109 {
1110     INT32   abcA;
1111     UINT32  abcB;
1112     INT32   abcC;
1113 } ABC32, *LPABC32;
1114
1115 DECL_WINELIB_TYPE(ABC)
1116 DECL_WINELIB_TYPE(LPABC)
1117
1118   /* for GetCharacterPlacement () */
1119 typedef struct tagGCP_RESULTS32A
1120 {
1121     DWORD  lStructSize;
1122     LPSTR  lpOutString;
1123     UINT32 *lpOrder;
1124     INT32  *lpDx;
1125     INT32  *lpCaretPos;
1126     LPSTR  lpClass;
1127     UINT32 *lpGlyphs;
1128     UINT32 nGlyphs;
1129     UINT32 nMaxFit;
1130 } GCP_RESULTS32A;
1131
1132 typedef struct tagGCP_RESULTS32W
1133 {
1134     DWORD  lStructSize;
1135     LPWSTR lpOutString;
1136     UINT32 *lpOrder;
1137     INT32  *lpDx;
1138     INT32  *lpCaretPos;
1139     LPWSTR lpClass;
1140     UINT32 *lpGlyphs;
1141     UINT32 nGlyphs;
1142     UINT32 nMaxFit;
1143 } GCP_RESULTS32W;
1144
1145 DECL_WINELIB_TYPE_AW(GCP_RESULTS)
1146
1147   /* Rasterizer status */
1148 typedef struct
1149 {
1150     INT16 nSize;
1151     INT16 wFlags;
1152     INT16 nLanguageID;
1153 } RASTERIZER_STATUS, *LPRASTERIZER_STATUS;
1154
1155 #define TT_AVAILABLE        0x0001
1156 #define TT_ENABLED          0x0002
1157
1158 /* Get/SetSystemPaletteUse() values */
1159 #define SYSPAL_STATIC   1
1160 #define SYSPAL_NOSTATIC 2
1161
1162 typedef struct tagPALETTEENTRY
1163 {
1164         BYTE peRed, peGreen, peBlue, peFlags;
1165 } PALETTEENTRY, *LPPALETTEENTRY;
1166
1167 /* Logical palette entry flags */
1168 #define PC_RESERVED     0x01
1169 #define PC_EXPLICIT     0x02
1170 #define PC_NOCOLLAPSE   0x04
1171
1172 typedef struct
1173
1174     WORD           palVersion;
1175     WORD           palNumEntries;
1176     PALETTEENTRY   palPalEntry[1] WINE_PACKED;
1177 } LOGPALETTE, *LPLOGPALETTE;
1178
1179   /* Pens */
1180
1181 typedef struct
1182 {
1183     UINT16   lopnStyle; 
1184     POINT16  lopnWidth WINE_PACKED;
1185     COLORREF lopnColor WINE_PACKED;
1186 } LOGPEN16, *LPLOGPEN16;
1187
1188 typedef struct
1189 {
1190     UINT32   lopnStyle; 
1191     POINT32  lopnWidth WINE_PACKED;
1192     COLORREF lopnColor WINE_PACKED;
1193 } LOGPEN32, *LPLOGPEN32;
1194
1195 DECL_WINELIB_TYPE(LOGPEN)
1196 DECL_WINELIB_TYPE(LPLOGPEN)
1197
1198 typedef struct tagEXTLOGPEN
1199 {
1200         DWORD elpPenStyle;
1201         DWORD elpWidth;
1202         DWORD elpBrushStyle;
1203         DWORD elpColor;
1204         DWORD elpNumEntries;
1205         DWORD elpStyleEntry[1];
1206 } EXTLOGPEN, *PEXTLOGPEN, *NPEXTLOGPEN, *LPEXTLOGPEN;
1207
1208 #define PS_SOLID         0x00000000
1209 #define PS_DASH          0x00000001
1210 #define PS_DOT           0x00000002
1211 #define PS_DASHDOT       0x00000003
1212 #define PS_DASHDOTDOT    0x00000004
1213 #define PS_NULL          0x00000005
1214 #define PS_INSIDEFRAME   0x00000006
1215 #define PS_USERSTYLE     0x00000007
1216 #define PS_ALTERNATE     0x00000008
1217 #define PS_STYLE_MASK    0x0000000f
1218
1219 #define PS_ENDCAP_ROUND  0x00000000
1220 #define PS_ENDCAP_SQUARE 0x00000100
1221 #define PS_ENDCAP_FLAT   0x00000200
1222 #define PS_ENDCAP_MASK   0x00000f00
1223
1224 #define PS_JOIN_ROUND    0x00000000
1225 #define PS_JOIN_BEVEL    0x00001000
1226 #define PS_JOIN_MITER    0x00002000
1227 #define PS_JOIN_MASK     0x0000f000
1228
1229 #define PS_COSMETIC      0x00000000
1230 #define PS_GEOMETRIC     0x00010000
1231 #define PS_TYPE_MASK     0x000f0000
1232
1233   /* Regions */
1234
1235 #define ERROR             0
1236 #define NULLREGION        1
1237 #define SIMPLEREGION      2
1238 #define COMPLEXREGION     3
1239
1240 #define RGN_AND           1
1241 #define RGN_OR            2
1242 #define RGN_XOR           3
1243 #define RGN_DIFF          4
1244 #define RGN_COPY          5
1245
1246   /* Device contexts */
1247
1248 /* GetDCEx flags */
1249 #define DCX_WINDOW           0x00000001
1250 #define DCX_CACHE            0x00000002
1251 #define DCX_CLIPCHILDREN     0x00000008
1252 #define DCX_CLIPSIBLINGS     0x00000010
1253 #define DCX_PARENTCLIP       0x00000020
1254 #define DCX_EXCLUDERGN       0x00000040
1255 #define DCX_INTERSECTRGN     0x00000080
1256 #define DCX_LOCKWINDOWUPDATE 0x00000400
1257 #define DCX_USESTYLE         0x00010000
1258
1259   /* Polygon modes */
1260 #define ALTERNATE         1
1261 #define WINDING           2
1262
1263   /* Background modes */
1264 #ifdef TRANSPARENT  /*Apparently some broken svr4 includes define TRANSPARENT*/
1265 #undef TRANSPARENT
1266 #endif
1267 #define TRANSPARENT       1
1268 #define OPAQUE            2
1269
1270
1271   /* Graphics Modes */
1272 #define GM_COMPATIBLE     1
1273 #define GM_ADVANCED       2
1274 #define GM_LAST           2
1275
1276   /* Arc direction modes */
1277 #define AD_COUNTERCLOCKWISE 1
1278 #define AD_CLOCKWISE        2
1279
1280   /* Map modes */
1281 #define MM_TEXT           1
1282 #define MM_LOMETRIC       2
1283 #define MM_HIMETRIC       3
1284 #define MM_LOENGLISH      4
1285 #define MM_HIENGLISH      5
1286 #define MM_TWIPS          6
1287 #define MM_ISOTROPIC      7
1288 #define MM_ANISOTROPIC    8
1289
1290   /* Coordinate modes */
1291 #define ABSOLUTE          1
1292 #define RELATIVE          2
1293
1294   /* Flood fill modes */
1295 #define FLOODFILLBORDER   0
1296 #define FLOODFILLSURFACE  1
1297
1298   /* Device parameters for GetDeviceCaps() */
1299 #define DRIVERVERSION     0
1300 #define TECHNOLOGY        2
1301 #define HORZSIZE          4
1302 #define VERTSIZE          6
1303 #define HORZRES           8
1304 #define VERTRES           10
1305 #define BITSPIXEL         12
1306 #define PLANES            14
1307 #define NUMBRUSHES        16
1308 #define NUMPENS           18
1309 #define NUMMARKERS        20
1310 #define NUMFONTS          22
1311 #define NUMCOLORS         24
1312 #define PDEVICESIZE       26
1313 #define CURVECAPS         28
1314 #define LINECAPS          30
1315 #define POLYGONALCAPS     32
1316 #define TEXTCAPS          34
1317 #define CLIPCAPS          36
1318 #define RASTERCAPS        38
1319 #define ASPECTX           40
1320 #define ASPECTY           42
1321 #define ASPECTXY          44
1322 #define LOGPIXELSX        88
1323 #define LOGPIXELSY        90
1324 #define SIZEPALETTE       104
1325 #define NUMRESERVED       106
1326 #define COLORRES          108
1327
1328 /* TECHNOLOGY */
1329 #define DT_PLOTTER        0
1330 #define DT_RASDISPLAY     1
1331 #define DT_RASPRINTER     2
1332 #define DT_RASCAMERA      3
1333 #define DT_CHARSTREAM     4
1334 #define DT_METAFILE       5
1335 #define DT_DISPFILE       6
1336
1337 /* CURVECAPS */
1338 #define CC_NONE           0x0000
1339 #define CC_CIRCLES        0x0001
1340 #define CC_PIE            0x0002
1341 #define CC_CHORD          0x0004
1342 #define CC_ELLIPSES       0x0008
1343 #define CC_WIDE           0x0010
1344 #define CC_STYLED         0x0020
1345 #define CC_WIDESTYLED     0x0040
1346 #define CC_INTERIORS      0x0080
1347 #define CC_ROUNDRECT      0x0100
1348
1349 /* LINECAPS */
1350 #define LC_NONE           0x0000
1351 #define LC_POLYLINE       0x0002
1352 #define LC_MARKER         0x0004
1353 #define LC_POLYMARKER     0x0008
1354 #define LC_WIDE           0x0010
1355 #define LC_STYLED         0x0020
1356 #define LC_WIDESTYLED     0x0040
1357 #define LC_INTERIORS      0x0080
1358
1359 /* POLYGONALCAPS */
1360 #define PC_NONE           0x0000
1361 #define PC_POLYGON        0x0001
1362 #define PC_RECTANGLE      0x0002
1363 #define PC_WINDPOLYGON    0x0004
1364 #define PC_SCANLINE       0x0008
1365 #define PC_WIDE           0x0010
1366 #define PC_STYLED         0x0020
1367 #define PC_WIDESTYLED     0x0040
1368 #define PC_INTERIORS      0x0080
1369
1370 /* TEXTCAPS */
1371 #define TC_OP_CHARACTER   0x0001
1372 #define TC_OP_STROKE      0x0002
1373 #define TC_CP_STROKE      0x0004
1374 #define TC_CR_90          0x0008
1375 #define TC_CR_ANY         0x0010
1376 #define TC_SF_X_YINDEP    0x0020
1377 #define TC_SA_DOUBLE      0x0040
1378 #define TC_SA_INTEGER     0x0080
1379 #define TC_SA_CONTIN      0x0100
1380 #define TC_EA_DOUBLE      0x0200
1381 #define TC_IA_ABLE        0x0400
1382 #define TC_UA_ABLE        0x0800
1383 #define TC_SO_ABLE        0x1000
1384 #define TC_RA_ABLE        0x2000
1385 #define TC_VA_ABLE        0x4000
1386 #define TC_RESERVED       0x8000
1387
1388 /* CLIPCAPS */
1389 #define CP_NONE           0x0000
1390 #define CP_RECTANGLE      0x0001
1391 #define CP_REGION         0x0002
1392
1393 /* RASTERCAPS */
1394 #define RC_NONE           0x0000
1395 #define RC_BITBLT         0x0001
1396 #define RC_BANDING        0x0002
1397 #define RC_SCALING        0x0004
1398 #define RC_BITMAP64       0x0008
1399 #define RC_GDI20_OUTPUT   0x0010
1400 #define RC_GDI20_STATE    0x0020
1401 #define RC_SAVEBITMAP     0x0040
1402 #define RC_DI_BITMAP      0x0080
1403 #define RC_PALETTE        0x0100
1404 #define RC_DIBTODEV       0x0200
1405 #define RC_BIGFONT        0x0400
1406 #define RC_STRETCHBLT     0x0800
1407 #define RC_FLOODFILL      0x1000
1408 #define RC_STRETCHDIB     0x2000
1409 #define RC_OP_DX_OUTPUT   0x4000
1410 #define RC_DEVBITS        0x8000
1411
1412   /* GetSystemMetrics() codes */
1413 #define SM_CXSCREEN            0
1414 #define SM_CYSCREEN            1
1415 #define SM_CXVSCROLL           2
1416 #define SM_CYHSCROLL           3
1417 #define SM_CYCAPTION           4
1418 #define SM_CXBORDER            5
1419 #define SM_CYBORDER            6
1420 #define SM_CXDLGFRAME          7
1421 #define SM_CYDLGFRAME          8
1422 #define SM_CYVTHUMB            9
1423 #define SM_CXHTHUMB           10
1424 #define SM_CXICON             11
1425 #define SM_CYICON             12
1426 #define SM_CXCURSOR           13
1427 #define SM_CYCURSOR           14
1428 #define SM_CYMENU             15
1429 #define SM_CXFULLSCREEN       16
1430 #define SM_CYFULLSCREEN       17
1431 #define SM_CYKANJIWINDOW      18
1432 #define SM_MOUSEPRESENT       19
1433 #define SM_CYVSCROLL          20
1434 #define SM_CXHSCROLL          21
1435 #define SM_DEBUG              22
1436 #define SM_SWAPBUTTON         23
1437 #define SM_RESERVED1          24
1438 #define SM_RESERVED2          25
1439 #define SM_RESERVED3          26
1440 #define SM_RESERVED4          27
1441 #define SM_CXMIN              28
1442 #define SM_CYMIN              29
1443 #define SM_CXSIZE             30
1444 #define SM_CYSIZE             31
1445 #define SM_CXFRAME            32
1446 #define SM_CYFRAME            33
1447 #define SM_CXMINTRACK         34
1448 #define SM_CYMINTRACK         35
1449 #define SM_CXDOUBLECLK        36
1450 #define SM_CYDOUBLECLK        37
1451 #define SM_CXICONSPACING      38
1452 #define SM_CYICONSPACING      39
1453 #define SM_MENUDROPALIGNMENT  40
1454 #define SM_PENWINDOWS         41
1455 #define SM_DBCSENABLED        42
1456 #define SM_CMOUSEBUTTONS      43
1457 #define SM_CXFIXEDFRAME       SM_CXDLGFRAME
1458 #define SM_CYFIXEDFRAME       SM_CYDLGFRAME
1459 #define SM_CXSIZEFRAME        SM_CXFRAME
1460 #define SM_CYSIZEFRAME        SM_CYFRAME
1461 #define SM_SECURE             44
1462 #define SM_CXEDGE             45
1463 #define SM_CYEDGE             46
1464 #define SM_CXMINSPACING       47
1465 #define SM_CYMINSPACING       48
1466 #define SM_CXSMICON           49
1467 #define SM_CYSMICON           50
1468 #define SM_CYSMCAPTION        51
1469 #define SM_CXSMSIZE           52
1470 #define SM_CYSMSIZE           53
1471 #define SM_CXMENUSIZE         54
1472 #define SM_CYMENUSIZE         55
1473 #define SM_ARRANGE            56
1474 #define SM_CXMINIMIZED        57
1475 #define SM_CYMINIMIZED        58
1476 #define SM_CXMAXTRACK         59
1477 #define SM_CYMAXTRACK         60
1478 #define SM_CXMAXIMIZED        61
1479 #define SM_CYMAXIMIZED        62
1480 #define SM_NETWORK            63
1481 #define SM_CLEANBOOT          67
1482 #define SM_CXDRAG             68
1483 #define SM_CYDRAG             69
1484 #define SM_SHOWSOUNDS         70
1485 #define SM_CXMENUCHECK        71
1486 #define SM_CYMENUCHECK        72
1487 #define SM_SLOWMACHINE        73
1488 #define SM_MIDEASTENABLED     74
1489 #define SM_MOUSEWHEELPRESENT  75
1490 #define SM_XVIRTUALSCREEN     76
1491 #define SM_YVIRTUALSCREEN     77
1492 #define SM_CXVIRTUALSCREEN    78
1493 #define SM_CYVIRTUALSCREEN    79
1494 #define SM_CMONITORS          80
1495 #define SM_SAMEDISPLAYFORMAT  81
1496 #define SM_CMETRICS           83
1497
1498
1499   /* Device-independent bitmaps */
1500
1501 typedef struct { BYTE rgbBlue, rgbGreen, rgbRed, rgbReserved; } RGBQUAD;
1502 typedef struct { BYTE rgbtBlue, rgbtGreen, rgbtRed; } RGBTRIPLE;
1503
1504 typedef struct
1505 {
1506     UINT16  bfType;
1507     DWORD   bfSize WINE_PACKED;
1508     UINT16  bfReserved1 WINE_PACKED;
1509     UINT16  bfReserved2 WINE_PACKED;
1510     DWORD   bfOffBits WINE_PACKED;
1511 } BITMAPFILEHEADER;
1512
1513 typedef struct
1514 {
1515     DWORD       biSize;
1516     LONG        biWidth;
1517     LONG        biHeight;
1518     WORD        biPlanes;
1519     WORD        biBitCount;
1520     DWORD       biCompression;
1521     DWORD       biSizeImage;
1522     LONG        biXPelsPerMeter;
1523     LONG        biYPelsPerMeter;
1524     DWORD       biClrUsed;
1525     DWORD       biClrImportant;
1526 } BITMAPINFOHEADER, *LPBITMAPINFOHEADER;
1527
1528   /* biCompression */
1529 #define BI_RGB           0
1530 #define BI_RLE8          1
1531 #define BI_RLE4          2
1532
1533 typedef struct {
1534         BITMAPINFOHEADER bmiHeader;
1535         RGBQUAD bmiColors[1];
1536 } BITMAPINFO;
1537 typedef BITMAPINFO *LPBITMAPINFO;
1538 typedef BITMAPINFO *NPBITMAPINFO;
1539 typedef BITMAPINFO *PBITMAPINFO;
1540
1541 typedef struct
1542 {
1543     DWORD   bcSize;
1544     UINT16  bcWidth;
1545     UINT16  bcHeight;
1546     UINT16  bcPlanes;
1547     UINT16  bcBitCount;
1548 } BITMAPCOREHEADER;
1549
1550 typedef struct
1551 {
1552     BITMAPCOREHEADER bmciHeader;
1553     RGBTRIPLE        bmciColors[1];
1554 } BITMAPCOREINFO, *LPBITMAPCOREINFO;
1555
1556 #define DIB_RGB_COLORS   0
1557 #define DIB_PAL_COLORS   1
1558 #define CBM_INIT         4
1559
1560 typedef struct 
1561 {
1562         BITMAP32                dsBm;
1563         BITMAPINFOHEADER        dsBmih;
1564         DWORD                   dsBitfields[3];
1565         HANDLE32                dshSection;
1566         DWORD                   dsOffset;
1567 } DIBSECTION,*LPDIBSECTION;
1568
1569   /* Stock GDI objects for GetStockObject() */
1570
1571 #define WHITE_BRUSH         0
1572 #define LTGRAY_BRUSH        1
1573 #define GRAY_BRUSH          2
1574 #define DKGRAY_BRUSH        3
1575 #define BLACK_BRUSH         4
1576 #define NULL_BRUSH          5
1577 #define HOLLOW_BRUSH        5
1578 #define WHITE_PEN           6
1579 #define BLACK_PEN           7
1580 #define NULL_PEN            8
1581 #define OEM_FIXED_FONT      10
1582 #define ANSI_FIXED_FONT     11
1583 #define ANSI_VAR_FONT       12
1584 #define SYSTEM_FONT         13
1585 #define DEVICE_DEFAULT_FONT 14
1586 #define DEFAULT_PALETTE     15
1587 #define SYSTEM_FIXED_FONT   16
1588 #define DEFAULT_GUI_FONT    17
1589
1590 #define STOCK_LAST          17
1591
1592 /* Metafile header structure */
1593 typedef struct
1594 {
1595     WORD       mtType;
1596     WORD       mtHeaderSize;
1597     WORD       mtVersion;
1598     DWORD      mtSize WINE_PACKED;
1599     WORD       mtNoObjects;
1600     DWORD      mtMaxRecord WINE_PACKED;
1601     WORD       mtNoParameters;
1602 } METAHEADER;
1603
1604 /* Metafile typical record structure */
1605 typedef struct
1606 {
1607     DWORD      rdSize;
1608     WORD       rdFunction;
1609     WORD       rdParm[1];
1610 } METARECORD;
1611 typedef METARECORD *PMETARECORD;
1612 typedef METARECORD *LPMETARECORD;
1613
1614 /* Handle table structure */
1615
1616 typedef struct
1617 {
1618     HGDIOBJ16 objectHandle[1];
1619 } HANDLETABLE16, *LPHANDLETABLE16;
1620
1621 typedef struct
1622 {
1623     HGDIOBJ32 objectHandle[1];
1624 } HANDLETABLE32, *LPHANDLETABLE32;
1625
1626 DECL_WINELIB_TYPE(HANDLETABLE)
1627 DECL_WINELIB_TYPE(LPHANDLETABLE)
1628
1629 /* Clipboard metafile picture structure */
1630 typedef struct
1631 {
1632     INT16        mm;
1633     INT16        xExt;
1634     INT16        yExt;
1635     HMETAFILE16  hMF;
1636 } METAFILEPICT16, *LPMETAFILEPICT16;
1637
1638 typedef struct
1639 {
1640     INT32        mm;
1641     INT32        xExt;
1642     INT32        yExt;
1643     HMETAFILE32  hMF;
1644 } METAFILEPICT32, *LPMETAFILEPICT32;
1645
1646 DECL_WINELIB_TYPE(METAFILEPICT)
1647 DECL_WINELIB_TYPE(LPMETAFILEPICT)
1648
1649 /* Metafile functions */
1650 #define META_SETBKCOLOR              0x0201
1651 #define META_SETBKMODE               0x0102
1652 #define META_SETMAPMODE              0x0103
1653 #define META_SETROP2                 0x0104
1654 #define META_SETRELABS               0x0105
1655 #define META_SETPOLYFILLMODE         0x0106
1656 #define META_SETSTRETCHBLTMODE       0x0107
1657 #define META_SETTEXTCHAREXTRA        0x0108
1658 #define META_SETTEXTCOLOR            0x0209
1659 #define META_SETTEXTJUSTIFICATION    0x020A
1660 #define META_SETWINDOWORG            0x020B
1661 #define META_SETWINDOWEXT            0x020C
1662 #define META_SETVIEWPORTORG          0x020D
1663 #define META_SETVIEWPORTEXT          0x020E
1664 #define META_OFFSETWINDOWORG         0x020F
1665 #define META_SCALEWINDOWEXT          0x0410
1666 #define META_OFFSETVIEWPORTORG       0x0211
1667 #define META_SCALEVIEWPORTEXT        0x0412
1668 #define META_LINETO                  0x0213
1669 #define META_MOVETO                  0x0214
1670 #define META_EXCLUDECLIPRECT         0x0415
1671 #define META_INTERSECTCLIPRECT       0x0416
1672 #define META_ARC                     0x0817
1673 #define META_ELLIPSE                 0x0418
1674 #define META_FLOODFILL               0x0419
1675 #define META_PIE                     0x081A
1676 #define META_RECTANGLE               0x041B
1677 #define META_ROUNDRECT               0x061C
1678 #define META_PATBLT                  0x061D
1679 #define META_SAVEDC                  0x001E
1680 #define META_SETPIXEL                0x041F
1681 #define META_OFFSETCLIPRGN           0x0220
1682 #define META_TEXTOUT                 0x0521
1683 #define META_BITBLT                  0x0922
1684 #define META_STRETCHBLT              0x0B23
1685 #define META_POLYGON                 0x0324
1686 #define META_POLYLINE                0x0325
1687 #define META_ESCAPE                  0x0626
1688 #define META_RESTOREDC               0x0127
1689 #define META_FILLREGION              0x0228
1690 #define META_FRAMEREGION             0x0429
1691 #define META_INVERTREGION            0x012A
1692 #define META_PAINTREGION             0x012B
1693 #define META_SELECTCLIPREGION        0x012C
1694 #define META_SELECTOBJECT            0x012D
1695 #define META_SETTEXTALIGN            0x012E
1696 #define META_DRAWTEXT                0x062F
1697 #define META_CHORD                   0x0830
1698 #define META_SETMAPPERFLAGS          0x0231
1699 #define META_EXTTEXTOUT              0x0A32
1700 #define META_SETDIBTODEV             0x0D33
1701 #define META_SELECTPALETTE           0x0234
1702 #define META_REALIZEPALETTE          0x0035
1703 #define META_ANIMATEPALETTE          0x0436
1704 #define META_SETPALENTRIES           0x0037
1705 #define META_POLYPOLYGON             0x0538
1706 #define META_RESIZEPALETTE           0x0139
1707 #define META_DIBBITBLT               0x0940
1708 #define META_DIBSTRETCHBLT           0x0B41
1709 #define META_DIBCREATEPATTERNBRUSH   0x0142
1710 #define META_STRETCHDIB              0x0F43
1711 #define META_EXTFLOODFILL            0x0548
1712 #define META_RESETDC                 0x014C
1713 #define META_STARTDOC                0x014D
1714 #define META_STARTPAGE               0x004F
1715 #define META_ENDPAGE                 0x0050
1716 #define META_ABORTDOC                0x0052
1717 #define META_ENDDOC                  0x005E
1718 #define META_DELETEOBJECT            0x01F0
1719 #define META_CREATEPALETTE           0x00F7
1720 #define META_CREATEBRUSH             0x00F8
1721 #define META_CREATEPATTERNBRUSH      0x01F9
1722 #define META_CREATEPENINDIRECT       0x02FA
1723 #define META_CREATEFONTINDIRECT      0x02FB
1724 #define META_CREATEBRUSHINDIRECT     0x02FC
1725 #define META_CREATEBITMAPINDIRECT    0x02FD
1726 #define META_CREATEBITMAP            0x06FE
1727 #define META_CREATEREGION            0x06FF
1728 #define META_UNKNOWN                 0x0529  /* FIXME: unknown meta magic */
1729
1730 typedef INT16 (CALLBACK *MFENUMPROC16)(HDC16,HANDLETABLE16*,METARECORD*,
1731                                        INT16,LPARAM);
1732 typedef INT32 (CALLBACK *MFENUMPROC32)(HDC32,HANDLETABLE32*,METARECORD*,
1733                                        INT32,LPARAM);
1734 DECL_WINELIB_TYPE(MFENUMPROC)
1735
1736 /* enhanced metafile structures and functions */
1737
1738 /* note that ENHMETAHEADER is just a particular kind of ENHMETARECORD,
1739    ie. the header is just the first record in the metafile */
1740 typedef struct {
1741     DWORD iType; 
1742     DWORD nSize; 
1743     RECT32 rclBounds; 
1744     RECT32 rclFrame; 
1745     DWORD dSignature; 
1746     DWORD nVersion; 
1747     DWORD nBytes; 
1748     DWORD nRecords; 
1749     WORD  nHandles; 
1750     WORD  sReserved; 
1751     DWORD nDescription; 
1752     DWORD offDescription; 
1753     DWORD nPalEntries; 
1754     SIZE32 szlDevice; 
1755     SIZE32 szlMillimeters;
1756     DWORD cbPixelFormat;
1757     DWORD offPixelFormat;
1758     DWORD bOpenGL;
1759 } ENHMETAHEADER, *LPENHMETAHEADER; 
1760
1761 typedef struct {
1762     DWORD iType; 
1763     DWORD nSize; 
1764     DWORD dParm[1]; 
1765 } ENHMETARECORD, *LPENHMETARECORD; 
1766
1767 typedef INT32 (CALLBACK *ENHMFENUMPROC32)(HDC32, LPHANDLETABLE32, 
1768                                           LPENHMETARECORD, INT32, LPVOID);
1769
1770 #define EMR_HEADER      1
1771 #define EMR_POLYBEZIER  2
1772 #define EMR_POLYGON     3
1773 #define EMR_POLYLINE    4
1774 #define EMR_POLYBEZIERTO        5
1775 #define EMR_POLYLINETO  6
1776 #define EMR_POLYPOLYLINE        7
1777 #define EMR_POLYPOLYGON 8
1778 #define EMR_SETWINDOWEXTEX      9
1779 #define EMR_SETWINDOWORGEX      10
1780 #define EMR_SETVIEWPORTEXTEX    11
1781 #define EMR_SETVIEWPORTORGEX    12
1782 #define EMR_SETBRUSHORGEX       13
1783 #define EMR_EOF 14
1784 #define EMR_SETPIXELV   15
1785 #define EMR_SETMAPPERFLAGS      16
1786 #define EMR_SETMAPMODE  17
1787 #define EMR_SETBKMODE   18
1788 #define EMR_SETPOLYFILLMODE     19
1789 #define EMR_SETROP2     20
1790 #define EMR_SETSTRETCHBLTMODE   21
1791 #define EMR_SETTEXTALIGN        22
1792 #define EMR_SETCOLORADJUSTMENT  23
1793 #define EMR_SETTEXTCOLOR        24
1794 #define EMR_SETBKCOLOR  25
1795 #define EMR_OFFSETCLIPRGN       26
1796 #define EMR_MOVETOEX    27
1797 #define EMR_SETMETARGN  28
1798 #define EMR_EXCLUDECLIPRECT     29
1799 #define EMR_INTERSECTCLIPRECT   30
1800 #define EMR_SCALEVIEWPORTEXTEX  31
1801 #define EMR_SCALEWINDOWEXTEX    32
1802 #define EMR_SAVEDC      33
1803 #define EMR_RESTOREDC   34
1804 #define EMR_SETWORLDTRANSFORM   35
1805 #define EMR_MODIFYWORLDTRANSFORM        36
1806 #define EMR_SELECTOBJECT        37
1807 #define EMR_CREATEPEN   38
1808 #define EMR_CREATEBRUSHINDIRECT 39
1809 #define EMR_DELETEOBJECT        40
1810 #define EMR_ANGLEARC    41
1811 #define EMR_ELLIPSE     42
1812 #define EMR_RECTANGLE   43
1813 #define EMR_ROUNDRECT   44
1814 #define EMR_ARC 45
1815 #define EMR_CHORD       46
1816 #define EMR_PIE 47
1817 #define EMR_SELECTPALETTE       48
1818 #define EMR_CREATEPALETTE       49
1819 #define EMR_SETPALETTEENTRIES   50
1820 #define EMR_RESIZEPALETTE       51
1821 #define EMR_REALIZEPALETTE      52
1822 #define EMR_EXTFLOODFILL        53
1823 #define EMR_LINETO      54
1824 #define EMR_ARCTO       55
1825 #define EMR_POLYDRAW    56
1826 #define EMR_SETARCDIRECTION     57
1827 #define EMR_SETMITERLIMIT       58
1828 #define EMR_BEGINPATH   59
1829 #define EMR_ENDPATH     60
1830 #define EMR_CLOSEFIGURE 61
1831 #define EMR_FILLPATH    62
1832 #define EMR_STROKEANDFILLPATH   63
1833 #define EMR_STROKEPATH  64
1834 #define EMR_FLATTENPATH 65
1835 #define EMR_WIDENPATH   66
1836 #define EMR_SELECTCLIPPATH      67
1837 #define EMR_ABORTPATH   68
1838 #define EMR_GDICOMMENT  70
1839 #define EMR_FILLRGN     71
1840 #define EMR_FRAMERGN    72
1841 #define EMR_INVERTRGN   73
1842 #define EMR_PAINTRGN    74
1843 #define EMR_EXTSELECTCLIPRGN    75
1844 #define EMR_BITBLT      76
1845 #define EMR_STRETCHBLT  77
1846 #define EMR_MASKBLT     78
1847 #define EMR_PLGBLT      79
1848 #define EMR_SETDIBITSTODEVICE   80
1849 #define EMR_STRETCHDIBITS       81
1850 #define EMR_EXTCREATEFONTINDIRECTW      82
1851 #define EMR_EXTTEXTOUTA 83
1852 #define EMR_EXTTEXTOUTW 84
1853 #define EMR_POLYBEZIER16        85
1854 #define EMR_POLYGON16   86
1855 #define EMR_POLYLINE16  87
1856 #define EMR_POLYBEZIERTO16      88
1857 #define EMR_POLYLINETO16        89
1858 #define EMR_POLYPOLYLINE16      90
1859 #define EMR_POLYPOLYGON16       91
1860 #define EMR_POLYDRAW16  92
1861 #define EMR_CREATEMONOBRUSH     93
1862 #define EMR_CREATEDIBPATTERNBRUSHPT     94
1863 #define EMR_EXTCREATEPEN        95
1864 #define EMR_POLYTEXTOUTA        96
1865 #define EMR_POLYTEXTOUTW        97
1866 #define EMR_SETICMMODE  98
1867 #define EMR_CREATECOLORSPACE    99
1868 #define EMR_SETCOLORSPACE       100
1869 #define EMR_DELETECOLORSPACE    101
1870 #define EMR_GLSRECORD   102
1871 #define EMR_GLSBOUNDEDRECORD    103
1872 #define EMR_PIXELFORMAT 104
1873
1874 #define ENHMETA_SIGNATURE       1179469088
1875
1876 #define CCHDEVICENAME 32
1877 #define CCHFORMNAME   32
1878
1879 typedef struct
1880 {
1881     BYTE   dmDeviceName[CCHDEVICENAME];
1882     WORD   dmSpecVersion;
1883     WORD   dmDriverVersion;
1884     WORD   dmSize;
1885     WORD   dmDriverExtra;
1886     DWORD  dmFields;
1887     INT16  dmOrientation;
1888     INT16  dmPaperSize;
1889     INT16  dmPaperLength;
1890     INT16  dmPaperWidth;
1891     INT16  dmScale;
1892     INT16  dmCopies;
1893     INT16  dmDefaultSource;
1894     INT16  dmPrintQuality;
1895     INT16  dmColor;
1896     INT16  dmDuplex;
1897     INT16  dmYResolution;
1898     INT16  dmTTOption;
1899     INT16  dmCollate;
1900     BYTE   dmFormName[CCHFORMNAME];
1901     WORD   dmUnusedPadding;
1902     WORD   dmBitsPerPel;
1903     DWORD  dmPelsWidth;
1904     DWORD  dmPelsHeight;
1905     DWORD  dmDisplayFlags;
1906     DWORD  dmDisplayFrequency;
1907 } DEVMODE16, *LPDEVMODE16;
1908
1909 typedef struct
1910 {
1911     BYTE   dmDeviceName[CCHDEVICENAME];
1912     WORD   dmSpecVersion;
1913     WORD   dmDriverVersion;
1914     WORD   dmSize;
1915     WORD   dmDriverExtra;
1916     DWORD  dmFields;
1917     INT16  dmOrientation;
1918     INT16  dmPaperSize;
1919     INT16  dmPaperLength;
1920     INT16  dmPaperWidth;
1921     INT16  dmScale;
1922     INT16  dmCopies;
1923     INT16  dmDefaultSource;
1924     INT16  dmPrintQuality;
1925     INT16  dmColor;
1926     INT16  dmDuplex;
1927     INT16  dmYResolution;
1928     INT16  dmTTOption;
1929     INT16  dmCollate;
1930     BYTE   dmFormName[CCHFORMNAME];
1931     WORD   dmLogPixels;
1932     DWORD  dmBitsPerPel;
1933     DWORD  dmPelsWidth;
1934     DWORD  dmPelsHeight;
1935     DWORD  dmDisplayFlags;
1936     DWORD  dmDisplayFrequency;
1937     DWORD  dmICMMethod;
1938     DWORD  dmICMIntent;
1939     DWORD  dmMediaType;
1940     DWORD  dmDitherType;
1941     DWORD  dmReserved1;
1942     DWORD  dmReserved2;
1943 } DEVMODE32A, *LPDEVMODE32A;
1944
1945 typedef struct
1946 {
1947     WCHAR  dmDeviceName[CCHDEVICENAME];
1948     WORD   dmSpecVersion;
1949     WORD   dmDriverVersion;
1950     WORD   dmSize;
1951     WORD   dmDriverExtra;
1952     DWORD  dmFields;
1953     INT16  dmOrientation;
1954     INT16  dmPaperSize;
1955     INT16  dmPaperLength;
1956     INT16  dmPaperWidth;
1957     INT16  dmScale;
1958     INT16  dmCopies;
1959     INT16  dmDefaultSource;
1960     INT16  dmPrintQuality;
1961     INT16  dmColor;
1962     INT16  dmDuplex;
1963     INT16  dmYResolution;
1964     INT16  dmTTOption;
1965     INT16  dmCollate;
1966     WCHAR  dmFormName[CCHFORMNAME];
1967     WORD   dmLogPixels;
1968     DWORD  dmBitsPerPel;
1969     DWORD  dmPelsWidth;
1970     DWORD  dmPelsHeight;
1971     DWORD  dmDisplayFlags;
1972     DWORD  dmDisplayFrequency;
1973     DWORD  dmICMMethod;
1974     DWORD  dmICMIntent;
1975     DWORD  dmMediaType;
1976     DWORD  dmDitherType;
1977     DWORD  dmReserved1;
1978     DWORD  dmReserved2;
1979 } DEVMODE32W, *LPDEVMODE32W;
1980
1981 DECL_WINELIB_TYPE_AW(DEVMODE)
1982 DECL_WINELIB_TYPE_AW(LPDEVMODE)
1983
1984 typedef struct 
1985 {
1986     INT16    cbSize;
1987     SEGPTR   lpszDocName WINE_PACKED;
1988     SEGPTR   lpszOutput WINE_PACKED;
1989 } DOCINFO16, *LPDOCINFO16;
1990
1991 typedef struct 
1992 {
1993     INT32    cbSize;
1994     LPCSTR   lpszDocName;
1995     LPCSTR   lpszOutput;
1996     LPCSTR   lpszDatatype;
1997     DWORD    fwType;
1998 } DOCINFO32A, *LPDOCINFO32A;
1999
2000 typedef struct 
2001 {
2002     INT32    cbSize;
2003     LPCWSTR  lpszDocName;
2004     LPCWSTR  lpszOutput;
2005     LPCWSTR  lpszDatatype;
2006     DWORD    fwType;
2007 } DOCINFO32W, *LPDOCINFO32W;
2008
2009 DECL_WINELIB_TYPE_AW(DOCINFO)
2010 DECL_WINELIB_TYPE_AW(LPDOCINFO)
2011
2012 typedef struct {
2013         UINT16          cbSize;
2014         INT16           iBorderWidth;
2015         INT16           iScrollWidth;
2016         INT16           iScrollHeight;
2017         INT16           iCaptionWidth;
2018         INT16           iCaptionHeight;
2019         LOGFONT16       lfCaptionFont;
2020         INT16           iSmCaptionWidth;
2021         INT16           iSmCaptionHeight;
2022         LOGFONT16       lfSmCaptionFont;
2023         INT16           iMenuWidth;
2024         INT16           iMenuHeight;
2025         LOGFONT16       lfMenuFont;
2026         LOGFONT16       lfStatusFont;
2027         LOGFONT16       lfMessageFont;
2028 } NONCLIENTMETRICS16,*LPNONCLIENTMETRICS16;
2029
2030 typedef struct {
2031         UINT32          cbSize;
2032         INT32           iBorderWidth;
2033         INT32           iScrollWidth;
2034         INT32           iScrollHeight;
2035         INT32           iCaptionWidth;
2036         INT32           iCaptionHeight;
2037         LOGFONT32A      lfCaptionFont;
2038         INT32           iSmCaptionWidth;
2039         INT32           iSmCaptionHeight;
2040         LOGFONT32A      lfSmCaptionFont;
2041         INT32           iMenuWidth;
2042         INT32           iMenuHeight;
2043         LOGFONT32A      lfMenuFont;
2044         LOGFONT32A      lfStatusFont;
2045         LOGFONT32A      lfMessageFont;
2046 } NONCLIENTMETRICS32A,*LPNONCLIENTMETRICS32A;
2047
2048 typedef struct {
2049         UINT32          cbSize;
2050         INT32           iBorderWidth;
2051         INT32           iScrollWidth;
2052         INT32           iScrollHeight;
2053         INT32           iCaptionWidth;
2054         INT32           iCaptionHeight;
2055         LOGFONT32W      lfCaptionFont;
2056         INT32           iSmCaptionWidth;
2057         INT32           iSmCaptionHeight;
2058         LOGFONT32W      lfSmCaptionFont;
2059         INT32           iMenuWidth;
2060         INT32           iMenuHeight;
2061         LOGFONT32W      lfMenuFont;
2062         LOGFONT32W      lfStatusFont;
2063         LOGFONT32W      lfMessageFont;
2064 } NONCLIENTMETRICS32W,*LPNONCLIENTMETRICS32W;
2065
2066 DECL_WINELIB_TYPE_AW(NONCLIENTMETRICS)
2067 DECL_WINELIB_TYPE_AW(LPNONCLIENTMETRICS)
2068
2069 /* Flags for PolyDraw and GetPath */
2070 #define PT_CLOSEFIGURE          0x0001
2071 #define PT_LINETO               0x0002
2072 #define PT_BEZIERTO             0x0004
2073 #define PT_MOVETO               0x0006
2074
2075 #define RDH_RECTANGLES  1
2076
2077 typedef struct _RGNDATAHEADER {
2078     DWORD       dwSize;
2079     DWORD       iType;
2080     DWORD       nCount;
2081     DWORD       nRgnSize;
2082     RECT32      rcBound;
2083 } RGNDATAHEADER,*LPRGNDATAHEADER;
2084
2085 typedef struct _RGNDATA {
2086     RGNDATAHEADER       rdh;
2087     char                Buffer[1];
2088 } RGNDATA,*PRGNDATA,*LPRGNDATA;
2089
2090 typedef BOOL16 (CALLBACK* ABORTPROC16)(HDC16, INT16);
2091 typedef BOOL32 (CALLBACK* ABORTPROC32)(HDC32, INT32);
2092 DECL_WINELIB_TYPE(ABORTPROC)
2093
2094 #pragma pack(4)
2095
2096 /* Declarations for functions that exist only in Win16 */
2097
2098 VOID        WINAPI Death(HDC16);
2099 VOID        WINAPI Resurrection(HDC16,WORD,WORD,WORD,WORD,WORD,WORD);
2100
2101 /* Declarations for functions that exist only in Win32 */
2102
2103 BOOL32      WINAPI AngleArc(HDC32, INT32, INT32, DWORD, FLOAT, FLOAT);
2104 BOOL32      WINAPI ArcTo(HDC32, INT32, INT32, INT32, INT32, INT32, INT32, INT32, INT32); 
2105 HENHMETAFILE32 WINAPI CloseEnhMetaFile(HDC32);
2106 HBRUSH32    WINAPI CreateDIBPatternBrushPt(const void*,UINT32);
2107 HDC32       WINAPI CreateEnhMetaFile32A(HDC32,LPCSTR,const RECT32*,LPCSTR);
2108 HDC32       WINAPI CreateEnhMetaFile32W(HDC32,LPCWSTR,const RECT32*,LPCWSTR);
2109 #define     CreateEnhMetaFile WINELIB_NAME_AW(CreateEnhMetaFile)
2110 INT32       WINAPI DrawEscape(HDC32,INT32,INT32,LPCSTR);
2111 INT16       WINAPI ExcludeVisRect(HDC16,INT16,INT16,INT16,INT16);
2112 BOOL16      WINAPI FastWindowFrame(HDC16,const RECT16*,INT16,INT16,DWORD);
2113 UINT16      WINAPI GDIRealizePalette(HDC16);
2114 HPALETTE16  WINAPI GDISelectPalette(HDC16,HPALETTE16,WORD);
2115 BOOL32      WINAPI GdiComment(HDC32,UINT32,const BYTE *);
2116 DWORD       WINAPI GetBitmapDimension(HBITMAP16);
2117 DWORD       WINAPI GetBrushOrg(HDC16);
2118 BOOL32      WINAPI GetCharABCWidthsFloat32A(HDC32,UINT32,UINT32,LPABCFLOAT);
2119 BOOL32      WINAPI GetCharABCWidthsFloat32W(HDC32,UINT32,UINT32,LPABCFLOAT);
2120 #define     GetCharABCWidthsFloat WINELIB_NAME_AW(GetCharABCWidthsFloat)
2121 BOOL32      WINAPI GetCharWidthFloat32A(HDC32,UINT32,UINT32,PFLOAT);
2122 BOOL32      WINAPI GetCharWidthFloat32W(HDC32,UINT32,UINT32,PFLOAT);
2123 #define     GetCharWidthFloat WINELIB_NAME_AW(GetCharWidthFloat)
2124 BOOL32      WINAPI GetColorAdjustment(HDC32, LPCOLORADJUSTMENT);
2125 HFONT16     WINAPI GetCurLogFont(HDC16);
2126 DWORD       WINAPI GetCurrentPosition(HDC16);
2127 DWORD       WINAPI GetDCHook(HDC16,FARPROC16*);
2128 DWORD       WINAPI GetDCOrg(HDC16);
2129 HDC16       WINAPI GetDCState(HDC16);
2130 INT16       WINAPI GetEnvironment(LPCSTR,LPDEVMODE16,UINT16);
2131 HGLOBAL16   WINAPI GetMetaFileBits(HMETAFILE16);
2132 BOOL32      WINAPI GetMiterLimit(HDC32, PFLOAT);
2133 DWORD       WINAPI GetTextExtent(HDC16,LPCSTR,INT16);
2134 DWORD       WINAPI GetViewportExt(HDC16);
2135 DWORD       WINAPI GetViewportOrg(HDC16);
2136 DWORD       WINAPI GetWindowExt(HDC16);
2137 DWORD       WINAPI GetWindowOrg(HDC16);
2138 HRGN16      WINAPI InquireVisRgn(HDC16);
2139 INT16       WINAPI IntersectVisRect(HDC16,INT16,INT16,INT16,INT16);
2140 BOOL16      WINAPI IsDCCurrentPalette(HDC16);
2141 BOOL16      WINAPI IsGDIObject(HGDIOBJ16);
2142 BOOL16      WINAPI IsValidMetaFile(HMETAFILE16);
2143 BOOL32      WINAPI MaskBlt(HDC32,INT32,INT32,INT32,INT32,HDC32,INT32,INT32,HBITMAP32,INT32,INT32,DWORD);
2144 DWORD       WINAPI MoveTo(HDC16,INT16,INT16);
2145 DWORD       WINAPI OffsetViewportOrg(HDC16,INT16,INT16);
2146 INT16       WINAPI OffsetVisRgn(HDC16,INT16,INT16);
2147 DWORD       WINAPI OffsetWindowOrg(HDC16,INT16,INT16);
2148 BOOL32      WINAPI PlgBlt32(HDC32,const POINT32*,HDC32,INT32,INT32,INT32,INT32,HBITMAP32,INT32,INT32);
2149 BOOL32      WINAPI PolyDraw32(HDC32,const POINT32*,const BYTE*,DWORD);
2150 UINT16      WINAPI RealizeDefaultPalette(HDC16);
2151 INT16       WINAPI RestoreVisRgn(HDC16);
2152 HRGN16      WINAPI SaveVisRgn(HDC16);
2153 DWORD       WINAPI ScaleViewportExt(HDC16,INT16,INT16,INT16,INT16);
2154 DWORD       WINAPI ScaleWindowExt(HDC16,INT16,INT16,INT16,INT16);
2155 INT16       WINAPI SelectVisRgn(HDC16,HRGN16);
2156 DWORD       WINAPI SetBitmapDimension(HBITMAP16,INT16,INT16);
2157 DWORD       WINAPI SetBrushOrg(HDC16,INT16,INT16);
2158 BOOL32      WINAPI SetColorAdjustment32(HDC32,const COLORADJUSTMENT*);
2159 BOOL16      WINAPI SetDCHook(HDC16,FARPROC16,DWORD);
2160 DWORD       WINAPI SetDCOrg(HDC16,INT16,INT16);
2161 VOID        WINAPI SetDCState(HDC16,HDC16);
2162 INT16       WINAPI SetEnvironment(LPCSTR,LPDEVMODE16,UINT16);
2163 WORD        WINAPI SetHookFlags(HDC16,WORD);
2164 HMETAFILE16 WINAPI SetMetaFileBits(HGLOBAL16);
2165 BOOL32      WINAPI SetMiterLimit(HDC32, FLOAT, PFLOAT);
2166 DWORD       WINAPI SetViewportExt(HDC16,INT16,INT16);
2167 DWORD       WINAPI SetViewportOrg(HDC16,INT16,INT16);
2168 DWORD       WINAPI SetWindowExt(HDC16,INT16,INT16);
2169 DWORD       WINAPI SetWindowOrg(HDC16,INT16,INT16);
2170 BOOL32      WINAPI CombineTransform(LPXFORM,const XFORM *,const XFORM *);
2171 HENHMETAFILE32 WINAPI CopyEnhMetaFile32A(HENHMETAFILE32,LPCSTR);
2172 HENHMETAFILE32 WINAPI CopyEnhMetaFile32W(HENHMETAFILE32,LPCWSTR);
2173 #define     CopyEnhMetaFile WINELIB_NAME_AW(CopyEnhMetaFile)
2174 HPALETTE32  WINAPI CreateHalftonePalette(HDC32);
2175 BOOL32      WINAPI DeleteEnhMetaFile(HENHMETAFILE32);
2176 INT32       WINAPI ExtSelectClipRgn(HDC32,HRGN32,INT32);
2177 HRGN32      WINAPI ExtCreateRegion(const XFORM*,DWORD,const RGNDATA*);
2178 INT32       WINAPI ExtEscape(HDC32,INT32,INT32,LPCSTR,INT32,LPSTR);
2179 BOOL32      WINAPI FixBrushOrgEx(HDC32,INT32,INT32,LPPOINT32);
2180 HANDLE32    WINAPI GetCurrentObject(HDC32,UINT32);
2181 BOOL32      WINAPI GetDCOrgEx(HDC32,LPPOINT32);
2182 HENHMETAFILE32 WINAPI GetEnhMetaFile32A(LPCSTR);
2183 HENHMETAFILE32 WINAPI GetEnhMetaFile32W(LPCWSTR);
2184 #define     GetEnhMetaFile WINELIB_NAME_AW(GetEnhMetaFile)
2185 UINT32      WINAPI GetEnhMetaFileBits(HENHMETAFILE32,UINT32,LPBYTE);
2186 UINT32      WINAPI GetEnhMetaFileHeader(HENHMETAFILE32,UINT32,LPENHMETAHEADER);
2187 UINT32      WINAPI GetEnhMetaFilePaletteEntries(HENHMETAFILE32,UINT32,LPPALETTEENTRY);
2188 INT32       WINAPI GetGraphicsMode(HDC32);
2189 UINT32      WINAPI GetMetaFileBitsEx(HMETAFILE32,UINT32,LPVOID);
2190 DWORD       WINAPI GetObjectType(HANDLE32);
2191 UINT32      WINAPI GetTextCharsetInfo(HDC32,LPFONTSIGNATURE,DWORD);
2192 BOOL32      WINAPI GetTextExtentExPoint32A(HDC32,LPCSTR,INT32,INT32,
2193                                            LPINT32,LPINT32,LPSIZE32);
2194 BOOL32      WINAPI GetTextExtentExPoint32W(HDC32,LPCWSTR,INT32,INT32,
2195                                            LPINT32,LPINT32,LPSIZE32);
2196 #define     GetTextExtentExPoint WINELIB_NAME_AW(GetTextExtentExPoint)
2197 BOOL32      WINAPI GetWorldTransform(HDC32,LPXFORM);
2198 BOOL32      WINAPI ModifyWorldTransform(HDC32,const XFORM *, DWORD);
2199 BOOL32      WINAPI PlayEnhMetaFile(HDC32,HENHMETAFILE32,const RECT32*);
2200 BOOL32      WINAPI PlayEnhMetaFileRecord(HDC32,LPHANDLETABLE32,const ENHMETARECORD*,UINT32);
2201 BOOL32      WINAPI PolyPolyline(HDC32,const POINT32*,const DWORD*,DWORD);
2202 BOOL32      WINAPI SetBrushOrgEx(HDC32,INT32,INT32,LPPOINT32);
2203 HENHMETAFILE32 WINAPI SetEnhMetaFileBits(UINT32,const BYTE *);
2204 INT32       WINAPI SetGraphicsMode(HDC32,INT32);
2205 HMETAFILE32 WINAPI SetMetaFileBitsEx(UINT32,const BYTE*);
2206 BOOL32      WINAPI SetWorldTransform(HDC32,const XFORM*);
2207 BOOL32      WINAPI TranslateCharsetInfo(LPDWORD,LPCHARSETINFO,DWORD);
2208
2209 /* Declarations for functions that change between Win16 and Win32 */
2210
2211 INT16       WINAPI AbortDoc16(HDC16);
2212 INT32       WINAPI AbortDoc32(HDC32);
2213 #define     AbortDoc WINELIB_NAME(AbortDoc)
2214 BOOL16      WINAPI AbortPath16(HDC16);
2215 BOOL32      WINAPI AbortPath32(HDC32);
2216 #define     AbortPath WINELIB_NAME(AbortPath)
2217 INT16       WINAPI AddFontResource16(LPCSTR);
2218 INT32       WINAPI AddFontResource32A(LPCSTR);
2219 INT32       WINAPI AddFontResource32W(LPCWSTR);
2220 #define     AddFontResource WINELIB_NAME_AW(AddFontResource)
2221 void        WINAPI AnimatePalette16(HPALETTE16,UINT16,UINT16,const PALETTEENTRY*);
2222 BOOL32      WINAPI AnimatePalette32(HPALETTE32,UINT32,UINT32,const PALETTEENTRY*);
2223 #define     AnimatePalette WINELIB_NAME(AnimatePalette)
2224 BOOL16      WINAPI Arc16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16);
2225 BOOL32      WINAPI Arc32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32,INT32,INT32);
2226 #define     Arc WINELIB_NAME(Arc)
2227 BOOL16      WINAPI BeginPath16(HDC16);
2228 BOOL32      WINAPI BeginPath32(HDC32);
2229 #define     BeginPath WINELIB_NAME(BeginPath)
2230 BOOL16      WINAPI BitBlt16(HDC16,INT16,INT16,INT16,INT16,HDC16,INT16,INT16,DWORD);
2231 BOOL32      WINAPI BitBlt32(HDC32,INT32,INT32,INT32,INT32,HDC32,INT32,INT32,DWORD);
2232 #define     BitBlt WINELIB_NAME(BitBlt)
2233 INT32       WINAPI ChoosePixelFormat(HDC32,const PIXELFORMATDESCRIPTOR*);
2234 BOOL16      WINAPI Chord16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16);
2235 BOOL32      WINAPI Chord32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32,INT32,INT32);
2236 #define     Chord WINELIB_NAME(Chord)
2237 BOOL16      WINAPI CloseFigure16(HDC16);
2238 BOOL32      WINAPI CloseFigure32(HDC32);
2239 #define     CloseFigure WINELIB_NAME(CloseFigure)
2240 HMETAFILE16 WINAPI CloseMetaFile16(HDC16);
2241 HMETAFILE32 WINAPI CloseMetaFile32(HDC32);
2242 #define     CloseMetaFile WINELIB_NAME(CloseMetaFile)
2243 INT16       WINAPI CombineRgn16(HRGN16,HRGN16,HRGN16,INT16);
2244 INT32       WINAPI CombineRgn32(HRGN32,HRGN32,HRGN32,INT32);
2245 #define     CombineRgn WINELIB_NAME(CombineRgn)
2246 HMETAFILE16 WINAPI CopyMetaFile16(HMETAFILE16,LPCSTR);
2247 HMETAFILE32 WINAPI CopyMetaFile32A(HMETAFILE32,LPCSTR);
2248 HMETAFILE32 WINAPI CopyMetaFile32W(HMETAFILE32,LPCWSTR);
2249 #define     CopyMetaFile WINELIB_NAME_AW(CopyMetaFile)
2250 HBITMAP16   WINAPI CreateBitmap16(INT16,INT16,UINT16,UINT16,LPCVOID);
2251 HBITMAP32   WINAPI CreateBitmap32(INT32,INT32,UINT32,UINT32,LPCVOID);
2252 #define     CreateBitmap WINELIB_NAME(CreateBitmap)
2253 HBITMAP16   WINAPI CreateBitmapIndirect16(const BITMAP16*);
2254 HBITMAP32   WINAPI CreateBitmapIndirect32(const BITMAP32*);
2255 #define     CreateBitmapIndirect WINELIB_NAME(CreateBitmapIndirect)
2256 HBRUSH16    WINAPI CreateBrushIndirect16(const LOGBRUSH16*);
2257 HBRUSH32    WINAPI CreateBrushIndirect32(const LOGBRUSH32*);
2258 #define     CreateBrushIndirect WINELIB_NAME(CreateBrushIndirect)
2259 HBITMAP16   WINAPI CreateCompatibleBitmap16(HDC16,INT16,INT16);
2260 HBITMAP32   WINAPI CreateCompatibleBitmap32(HDC32,INT32,INT32);
2261 #define     CreateCompatibleBitmap WINELIB_NAME(CreateCompatibleBitmap)
2262 HDC16       WINAPI CreateCompatibleDC16(HDC16);
2263 HDC32       WINAPI CreateCompatibleDC32(HDC32);
2264 #define     CreateCompatibleDC WINELIB_NAME(CreateCompatibleDC)
2265 HDC16       WINAPI CreateDC16(LPCSTR,LPCSTR,LPCSTR,const DEVMODE16*);
2266 HDC32       WINAPI CreateDC32A(LPCSTR,LPCSTR,LPCSTR,const DEVMODE32A*);
2267 HDC32       WINAPI CreateDC32W(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODE32W*);
2268 #define     CreateDC WINELIB_NAME_AW(CreateDC)
2269 HBITMAP16   WINAPI CreateDIBitmap16(HDC16,const BITMAPINFOHEADER*,DWORD,
2270                                     LPCVOID,const BITMAPINFO*,UINT16);
2271 HBITMAP32   WINAPI CreateDIBitmap32(HDC32,const BITMAPINFOHEADER*,DWORD,
2272                                     LPCVOID,const BITMAPINFO*,UINT32);
2273 #define     CreateDIBitmap WINELIB_NAME(CreateDIBitmap)
2274 HBRUSH16    WINAPI CreateDIBPatternBrush16(HGLOBAL16,UINT16);
2275 HBRUSH32    WINAPI CreateDIBPatternBrush32(HGLOBAL32,UINT32);
2276 #define     CreateDIBPatternBrush WINELIB_NAME(CreateDIBPatternBrush)
2277 HBITMAP16   WINAPI CreateDIBSection16 (HDC16, BITMAPINFO *, UINT16,
2278                                        SEGPTR *, HANDLE32, DWORD offset);
2279 HBITMAP32   WINAPI CreateDIBSection32 (HDC32, BITMAPINFO *, UINT32,
2280                                        LPVOID *, HANDLE32, DWORD offset);
2281 #define     CreateDIBSection WINELIB_NAME(CreateDIBSection)
2282 HBITMAP16   WINAPI CreateDiscardableBitmap16(HDC16,INT16,INT16);
2283 HBITMAP32   WINAPI CreateDiscardableBitmap32(HDC32,INT32,INT32);
2284 #define     CreateDiscardableBitmap WINELIB_NAME(CreateDiscardableBitmap)
2285 HRGN16      WINAPI CreateEllipticRgn16(INT16,INT16,INT16,INT16);
2286 HRGN32      WINAPI CreateEllipticRgn32(INT32,INT32,INT32,INT32);
2287 #define     CreateEllipticRgn WINELIB_NAME(CreateEllipticRgn)
2288 HRGN16      WINAPI CreateEllipticRgnIndirect16(const RECT16 *);
2289 HRGN32      WINAPI CreateEllipticRgnIndirect32(const RECT32 *);
2290 #define     CreateEllipticRgnIndirect WINELIB_NAME(CreateEllipticRgnIndirect)
2291 HFONT16     WINAPI CreateFont16(INT16,INT16,INT16,INT16,INT16,BYTE,BYTE,BYTE,
2292                                 BYTE,BYTE,BYTE,BYTE,BYTE,LPCSTR);
2293 HFONT32     WINAPI CreateFont32A(INT32,INT32,INT32,INT32,INT32,DWORD,DWORD,
2294                                  DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCSTR);
2295 HFONT32     WINAPI CreateFont32W(INT32,INT32,INT32,INT32,INT32,DWORD,DWORD,
2296                                  DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCWSTR);
2297 #define     CreateFont WINELIB_NAME_AW(CreateFont)
2298 HFONT16     WINAPI CreateFontIndirect16(const LOGFONT16*);
2299 HFONT32     WINAPI CreateFontIndirect32A(const LOGFONT32A*);
2300 HFONT32     WINAPI CreateFontIndirect32W(const LOGFONT32W*);
2301 #define     CreateFontIndirect WINELIB_NAME_AW(CreateFontIndirect)
2302 HBRUSH16    WINAPI CreateHatchBrush16(INT16,COLORREF);
2303 HBRUSH32    WINAPI CreateHatchBrush32(INT32,COLORREF);
2304 #define     CreateHatchBrush WINELIB_NAME(CreateHatchBrush)
2305 HDC16       WINAPI CreateIC16(LPCSTR,LPCSTR,LPCSTR,const DEVMODE16*);
2306 HDC32       WINAPI CreateIC32A(LPCSTR,LPCSTR,LPCSTR,const DEVMODE32A*);
2307 HDC32       WINAPI CreateIC32W(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODE32W*);
2308 #define     CreateIC WINELIB_NAME_AW(CreateIC)
2309 HDC16       WINAPI CreateMetaFile16(LPCSTR);
2310 HDC32       WINAPI CreateMetaFile32A(LPCSTR);
2311 HDC32       WINAPI CreateMetaFile32W(LPCWSTR);
2312 #define     CreateMetaFile WINELIB_NAME_AW(CreateMetaFile)
2313 HPALETTE16  WINAPI CreatePalette16(const LOGPALETTE*);
2314 HPALETTE32  WINAPI CreatePalette32(const LOGPALETTE*);
2315 #define     CreatePalette WINELIB_NAME(CreatePalette)
2316 HBRUSH16    WINAPI CreatePatternBrush16(HBITMAP16);
2317 HBRUSH32    WINAPI CreatePatternBrush32(HBITMAP32);
2318 #define     CreatePatternBrush WINELIB_NAME(CreatePatternBrush)
2319 HPEN16      WINAPI CreatePen16(INT16,INT16,COLORREF);
2320 HPEN32      WINAPI CreatePen32(INT32,INT32,COLORREF);
2321 #define     CreatePen WINELIB_NAME(CreatePen)
2322 HPEN16      WINAPI CreatePenIndirect16(const LOGPEN16*);
2323 HPEN32      WINAPI CreatePenIndirect32(const LOGPEN32*);
2324 #define     CreatePenIndirect WINELIB_NAME(CreatePenIndirect)
2325 HRGN16      WINAPI CreatePolyPolygonRgn16(const POINT16*,const INT16*,INT16,INT16);
2326 HRGN32      WINAPI CreatePolyPolygonRgn32(const POINT32*,const INT32*,INT32,INT32);
2327 #define     CreatePolyPolygonRgn WINELIB_NAME(CreatePolyPolygonRgn)
2328 HRGN16      WINAPI CreatePolygonRgn16(const POINT16*,INT16,INT16);
2329 HRGN32      WINAPI CreatePolygonRgn32(const POINT32*,INT32,INT32);
2330 #define     CreatePolygonRgn WINELIB_NAME(CreatePolygonRgn)
2331 HRGN16      WINAPI CreateRectRgn16(INT16,INT16,INT16,INT16);
2332 HRGN32      WINAPI CreateRectRgn32(INT32,INT32,INT32,INT32);
2333 #define     CreateRectRgn WINELIB_NAME(CreateRectRgn)
2334 HRGN16      WINAPI CreateRectRgnIndirect16(const RECT16*);
2335 HRGN32      WINAPI CreateRectRgnIndirect32(const RECT32*);
2336 #define     CreateRectRgnIndirect WINELIB_NAME(CreateRectRgnIndirect)
2337 HRGN16      WINAPI CreateRoundRectRgn16(INT16,INT16,INT16,INT16,INT16,INT16);
2338 HRGN32      WINAPI CreateRoundRectRgn32(INT32,INT32,INT32,INT32,INT32,INT32);
2339 #define     CreateRoundRectRgn WINELIB_NAME(CreateRoundRectRgn)
2340 BOOL16      WINAPI CreateScalableFontResource16(UINT16,LPCSTR,LPCSTR,LPCSTR);
2341 BOOL32      WINAPI CreateScalableFontResource32A(DWORD,LPCSTR,LPCSTR,LPCSTR);
2342 BOOL32      WINAPI CreateScalableFontResource32W(DWORD,LPCWSTR,LPCWSTR,LPCWSTR);
2343 #define     CreateScalableFontResource WINELIB_NAME_AW(CreateScalableFontResource)
2344 HBRUSH16    WINAPI CreateSolidBrush16(COLORREF);
2345 HBRUSH32    WINAPI CreateSolidBrush32(COLORREF);
2346 #define     CreateSolidBrush WINELIB_NAME(CreateSolidBrush)
2347 BOOL16      WINAPI DeleteDC16(HDC16);
2348 BOOL32      WINAPI DeleteDC32(HDC32);
2349 #define     DeleteDC WINELIB_NAME(DeleteDC)
2350 BOOL16      WINAPI DeleteMetaFile16(HMETAFILE16);
2351 BOOL32      WINAPI DeleteMetaFile32(HMETAFILE32);
2352 #define     DeleteMetaFile WINELIB_NAME(DeleteMetaFile)
2353 BOOL16      WINAPI DeleteObject16(HGDIOBJ16);
2354 BOOL32      WINAPI DeleteObject32(HGDIOBJ32);
2355 #define     DeleteObject WINELIB_NAME(DeleteObject)
2356 INT32       WINAPI DescribePixelFormat(HDC32,int,UINT32,
2357                                        LPPIXELFORMATDESCRIPTOR);
2358 BOOL16      WINAPI DPtoLP16(HDC16,LPPOINT16,INT16);
2359 BOOL32      WINAPI DPtoLP32(HDC32,LPPOINT32,INT32);
2360 #define     DPtoLP WINELIB_NAME(DPtoLP)
2361 BOOL16      WINAPI Ellipse16(HDC16,INT16,INT16,INT16,INT16);
2362 BOOL32      WINAPI Ellipse32(HDC32,INT32,INT32,INT32,INT32);
2363 #define     Ellipse WINELIB_NAME(Ellipse)
2364 INT16       WINAPI EndDoc16(HDC16);
2365 INT32       WINAPI EndDoc32(HDC32);
2366 #define     EndDoc WINELIB_NAME(EndDoc)
2367 BOOL16      WINAPI EndPath16(HDC16);
2368 BOOL32      WINAPI EndPath32(HDC32);
2369 #define     EndPath WINELIB_NAME(EndPath)
2370 INT16       WINAPI EnumFontFamilies16(HDC16,LPCSTR,FONTENUMPROC16,LPARAM);
2371 INT32       WINAPI EnumFontFamilies32A(HDC32,LPCSTR,FONTENUMPROC32A,LPARAM);
2372 INT32       WINAPI EnumFontFamilies32W(HDC32,LPCWSTR,FONTENUMPROC32W,LPARAM);
2373 #define     EnumFontFamilies WINELIB_NAME_AW(EnumFontFamilies)
2374 INT16       WINAPI EnumFontFamiliesEx16(HDC16,LPLOGFONT16,FONTENUMPROCEX16,LPARAM,DWORD);
2375 INT32       WINAPI EnumFontFamiliesEx32A(HDC32,LPLOGFONT32A,FONTENUMPROCEX32A,LPARAM,DWORD);
2376 INT32       WINAPI EnumFontFamiliesEx32W(HDC32,LPLOGFONT32W,FONTENUMPROCEX32W,LPARAM,DWORD);
2377 #define     EnumFontFamiliesEx WINELIB_NAME_AW(EnumFontFamiliesEx)
2378 INT16       WINAPI EnumFonts16(HDC16,LPCSTR,FONTENUMPROC16,LPARAM);
2379 INT32       WINAPI EnumFonts32A(HDC32,LPCSTR,FONTENUMPROC32A,LPARAM);
2380 INT32       WINAPI EnumFonts32W(HDC32,LPCWSTR,FONTENUMPROC32W,LPARAM);
2381 #define     EnumFonts WINELIB_NAME_AW(EnumFonts)
2382 BOOL16      WINAPI EnumMetaFile16(HDC16,HMETAFILE16,MFENUMPROC16,LPARAM);
2383 BOOL32      WINAPI EnumMetaFile32(HDC32,HMETAFILE32,MFENUMPROC32,LPARAM);
2384 #define     EnumMetaFile WINELIB_NAME(EnumMetaFile)
2385 INT16       WINAPI EnumObjects16(HDC16,INT16,GOBJENUMPROC16,LPARAM);
2386 INT32       WINAPI EnumObjects32(HDC32,INT32,GOBJENUMPROC32,LPARAM);
2387 #define     EnumObjects WINELIB_NAME(EnumObjects)
2388 BOOL16      WINAPI EqualRgn16(HRGN16,HRGN16);
2389 BOOL32      WINAPI EqualRgn32(HRGN32,HRGN32);
2390 #define     EqualRgn WINELIB_NAME(EqualRgn)
2391 INT16       WINAPI Escape16(HDC16,INT16,INT16,SEGPTR,SEGPTR);
2392 INT32       WINAPI Escape32(HDC32,INT32,INT32,LPCSTR,LPVOID);
2393 #define     Escape WINELIB_NAME(Escape)
2394 INT16       WINAPI ExcludeClipRect16(HDC16,INT16,INT16,INT16,INT16);
2395 INT32       WINAPI ExcludeClipRect32(HDC32,INT32,INT32,INT32,INT32);
2396 #define     ExcludeClipRect WINELIB_NAME(ExcludeClipRect)
2397 HPEN16      WINAPI ExtCreatePen16(DWORD,DWORD,const LOGBRUSH16*,DWORD,const DWORD*);
2398 HPEN32      WINAPI ExtCreatePen32(DWORD,DWORD,const LOGBRUSH32*,DWORD,const DWORD*);
2399 #define     ExtCreatePen WINELIB_NAME(ExtCreatePen)
2400 BOOL16      WINAPI ExtFloodFill16(HDC16,INT16,INT16,COLORREF,UINT16);
2401 BOOL32      WINAPI ExtFloodFill32(HDC32,INT32,INT32,COLORREF,UINT32);
2402 #define     ExtFloodFill WINELIB_NAME(ExtFloodFill)
2403 BOOL16      WINAPI ExtTextOut16(HDC16,INT16,INT16,UINT16,const RECT16*,
2404                                 LPCSTR,UINT16,const INT16*);
2405 BOOL32      WINAPI ExtTextOut32A(HDC32,INT32,INT32,UINT32,const RECT32*,
2406                                  LPCSTR,UINT32,const INT32*);
2407 BOOL32      WINAPI ExtTextOut32W(HDC32,INT32,INT32,UINT32,const RECT32*,
2408                                  LPCWSTR,UINT32,const INT32*);
2409 #define     ExtTextOut WINELIB_NAME_AW(ExtTextOut)
2410 BOOL16      WINAPI FillPath16(HDC16);
2411 BOOL32      WINAPI FillPath32(HDC32);
2412 #define     FillPath WINELIB_NAME(FillPath)
2413 BOOL16      WINAPI FillRgn16(HDC16,HRGN16,HBRUSH16);
2414 BOOL32      WINAPI FillRgn32(HDC32,HRGN32,HBRUSH32);
2415 #define     FillRgn WINELIB_NAME(FillRgn)
2416 BOOL16      WINAPI FlattenPath16(HDC16);
2417 BOOL32      WINAPI FlattenPath32(HDC32);
2418 #define     FlattenPath WINELIB_NAME(FlattenPath)
2419 BOOL16      WINAPI FloodFill16(HDC16,INT16,INT16,COLORREF);
2420 BOOL32      WINAPI FloodFill32(HDC32,INT32,INT32,COLORREF);
2421 #define     FloodFill WINELIB_NAME(FloodFill)
2422 BOOL16      WINAPI FrameRgn16(HDC16,HRGN16,HBRUSH16,INT16,INT16);
2423 BOOL32      WINAPI FrameRgn32(HDC32,HRGN32,HBRUSH32,INT32,INT32);
2424 #define     FrameRgn WINELIB_NAME(FrameRgn)
2425 INT16       WINAPI GetArcDirection16(HDC16);
2426 INT32       WINAPI GetArcDirection32(HDC32);
2427 #define     GetArcDirection WINELIB_NAME(GetArcDirection)
2428 BOOL16      WINAPI GetAspectRatioFilterEx16(HDC16,LPSIZE16);
2429 BOOL32      WINAPI GetAspectRatioFilterEx32(HDC32,LPSIZE32);
2430 #define     GetAspectRatioFilterEx WINELIB_NAME(GetAspectRatioFilterEx)
2431 LONG        WINAPI GetBitmapBits16(HBITMAP16,LONG,LPVOID);
2432 LONG        WINAPI GetBitmapBits32(HBITMAP32,LONG,LPVOID);
2433 #define     GetBitmapBits WINELIB_NAME(GetBitmapBits)
2434 BOOL16      WINAPI GetBitmapDimensionEx16(HBITMAP16,LPSIZE16);
2435 BOOL32      WINAPI GetBitmapDimensionEx32(HBITMAP32,LPSIZE32);
2436 #define     GetBitmapDimensionEx WINELIB_NAME(GetBitmapDimensionEx)
2437 BOOL16      WINAPI GetBrushOrgEx16(HDC16,LPPOINT16);
2438 BOOL32      WINAPI GetBrushOrgEx32(HDC32,LPPOINT32);
2439 #define     GetBrushOrgEx WINELIB_NAME(GetBrushOrgEx)
2440 COLORREF    WINAPI GetBkColor16(HDC16);
2441 COLORREF    WINAPI GetBkColor32(HDC32);
2442 #define     GetBkColor WINELIB_NAME(GetBkColor)
2443 INT16       WINAPI GetBkMode16(HDC16);
2444 INT32       WINAPI GetBkMode32(HDC32);
2445 #define     GetBkMode WINELIB_NAME(GetBkMode)
2446 UINT16      WINAPI GetBoundsRect16(HDC16,LPRECT16,UINT16);
2447 UINT32      WINAPI GetBoundsRect32(HDC32,LPRECT32,UINT32);
2448 #define     GetBoundsRect WINELIB_NAME(GetBoundsRect)
2449 BOOL16      WINAPI GetCharABCWidths16(HDC16,UINT16,UINT16,LPABC16);
2450 BOOL32      WINAPI GetCharABCWidths32A(HDC32,UINT32,UINT32,LPABC32);
2451 BOOL32      WINAPI GetCharABCWidths32W(HDC32,UINT32,UINT32,LPABC32);
2452 #define     GetCharABCWidths WINELIB_NAME_AW(GetCharABCWidths)
2453 DWORD       WINAPI GetCharacterPlacement32A(HDC32,LPCSTR,INT32,INT32,GCP_RESULTS32A*,DWORD);
2454 DWORD       WINAPI GetCharacterPlacement32W(HDC32,LPCWSTR,INT32,INT32,GCP_RESULTS32W*,DWORD);
2455 #define     GetCharacterPlacement WINELIB_NAME_AW(GetCharacterPlacement)
2456 BOOL16      WINAPI GetCharWidth16(HDC16,UINT16,UINT16,LPINT16);
2457 BOOL32      WINAPI GetCharWidth32A(HDC32,UINT32,UINT32,LPINT32);
2458 BOOL32      WINAPI GetCharWidth32W(HDC32,UINT32,UINT32,LPINT32);
2459 #define     GetCharWidth WINELIB_NAME_AW(GetCharWidth)
2460 INT16       WINAPI GetClipBox16(HDC16,LPRECT16);
2461 INT32       WINAPI GetClipBox32(HDC32,LPRECT32);
2462 #define     GetClipBox WINELIB_NAME(GetClipBox)
2463 HRGN16      WINAPI GetClipRgn16(HDC16);
2464 INT32       WINAPI GetClipRgn32(HDC32,HRGN32);
2465 #define     GetClipRgn WINELIB_NAME(GetClipRgn)
2466 BOOL16      WINAPI GetCurrentPositionEx16(HDC16,LPPOINT16);
2467 BOOL32      WINAPI GetCurrentPositionEx32(HDC32,LPPOINT32);
2468 #define     GetCurrentPositionEx WINELIB_NAME(GetCurrentPositionEx)
2469 INT16       WINAPI GetDeviceCaps16(HDC16,INT16);
2470 INT32       WINAPI GetDeviceCaps32(HDC32,INT32);
2471 #define     GetDeviceCaps WINELIB_NAME(GetDeviceCaps)
2472 UINT16      WINAPI GetDIBColorTable16(HDC16,UINT16,UINT16,RGBQUAD*);
2473 UINT32      WINAPI GetDIBColorTable32(HDC32,UINT32,UINT32,RGBQUAD*);
2474 #define     GetDIBColorTable WINELIB_NAME(GetDIBColorTable)
2475 INT16       WINAPI GetDIBits16(HDC16,HBITMAP16,UINT16,UINT16,LPVOID,LPBITMAPINFO,UINT16);
2476 INT32       WINAPI GetDIBits32(HDC32,HBITMAP32,UINT32,UINT32,LPVOID,LPBITMAPINFO,UINT32);
2477 #define     GetDIBits WINELIB_NAME(GetDIBits)
2478 DWORD       WINAPI GetFontData32(HDC32,DWORD,DWORD,LPVOID,DWORD);
2479 #define     GetFontData WINELIB_NAME(GetFontData)
2480 DWORD       WINAPI GetFontLanguageInfo16(HDC16);
2481 DWORD       WINAPI GetFontLanguageInfo32(HDC32);
2482 #define     GetFontLanguageInfo WINELIB_NAME(GetFontLanguageInfo)
2483 DWORD       WINAPI GetGlyphOutline16(HDC16,UINT16,UINT16,LPGLYPHMETRICS16,DWORD,LPVOID,const MAT2*);
2484 DWORD       WINAPI GetGlyphOutline32A(HDC32,UINT32,UINT32,LPGLYPHMETRICS32,DWORD,LPVOID,const MAT2*);
2485 DWORD       WINAPI GetGlyphOutline32W(HDC32,UINT32,UINT32,LPGLYPHMETRICS32,DWORD,LPVOID,const MAT2*);
2486 #define     GetGlyphOutline WINELIB_NAME_AW(GetGlyphOutline)
2487 INT16       WINAPI GetKerningPairs16(HDC16,INT16,LPKERNINGPAIR16);
2488 DWORD       WINAPI GetKerningPairs32A(HDC32,DWORD,LPKERNINGPAIR32);
2489 DWORD       WINAPI GetKerningPairs32W(HDC32,DWORD,LPKERNINGPAIR32);
2490 #define     GetKerningPairs WINELIB_NAME_AW(GetKerningPairs)
2491 INT16       WINAPI GetMapMode16(HDC16);
2492 INT32       WINAPI GetMapMode32(HDC32);
2493 #define     GetMapMode WINELIB_NAME(GetMapMode)
2494 HMETAFILE16 WINAPI GetMetaFile16(LPCSTR);
2495 HMETAFILE32 WINAPI GetMetaFile32A(LPCSTR);
2496 HMETAFILE32 WINAPI GetMetaFile32W(LPCWSTR);
2497 #define     GetMetaFile WINELIB_NAME_AW(GetMetaFile)
2498 DWORD       WINAPI GetNearestColor16(HDC16,DWORD);
2499 DWORD       WINAPI GetNearestColor32(HDC32,DWORD);
2500 #define     GetNearestColor WINELIB_NAME(GetNearestColor)
2501 UINT16      WINAPI GetNearestPaletteIndex16(HPALETTE16,COLORREF);
2502 UINT32      WINAPI GetNearestPaletteIndex32(HPALETTE32,COLORREF);
2503 #define     GetNearestPaletteIndex WINELIB_NAME(GetNearestPaletteIndex)
2504 INT16       WINAPI GetObject16(HANDLE16,INT16,LPVOID);
2505 INT32       WINAPI GetObject32A(HANDLE32,INT32,LPVOID);
2506 INT32       WINAPI GetObject32W(HANDLE32,INT32,LPVOID);
2507 #define     GetObject WINELIB_NAME_AW(GetObject)
2508 UINT16      WINAPI GetOutlineTextMetrics16(HDC16,UINT16,LPOUTLINETEXTMETRIC16);
2509 UINT32      WINAPI GetOutlineTextMetrics32A(HDC32,UINT32,LPOUTLINETEXTMETRIC32A);
2510 UINT32      WINAPI GetOutlineTextMetrics32W(HDC32,UINT32,LPOUTLINETEXTMETRIC32W);
2511 #define     GetOutlineTextMetrics WINELIB_NAME_AW(GetOutlineTextMetrics)
2512 UINT16      WINAPI GetPaletteEntries16(HPALETTE16,UINT16,UINT16,LPPALETTEENTRY);
2513 UINT32      WINAPI GetPaletteEntries32(HPALETTE32,UINT32,UINT32,LPPALETTEENTRY);
2514 #define     GetPaletteEntries WINELIB_NAME(GetPaletteEntries)
2515 INT16       WINAPI GetPath16(HDC16,LPPOINT16,LPBYTE,INT16);
2516 INT32       WINAPI GetPath32(HDC32,LPPOINT32,LPBYTE,INT32);
2517 #define     GetPath WINELIB_NAME(GetPath)
2518 COLORREF    WINAPI GetPixel16(HDC16,INT16,INT16);
2519 COLORREF    WINAPI GetPixel32(HDC32,INT32,INT32);
2520 #define     GetPixel WINELIB_NAME(GetPixel)
2521 INT32       WINAPI GetPixelFormat(HDC32);
2522 INT16       WINAPI GetPolyFillMode16(HDC16);
2523 INT32       WINAPI GetPolyFillMode32(HDC32);
2524 #define     GetPolyFillMode WINELIB_NAME(GetPolyFillMode)
2525 BOOL16      WINAPI GetRasterizerCaps16(LPRASTERIZER_STATUS,UINT16);
2526 BOOL32      WINAPI GetRasterizerCaps32(LPRASTERIZER_STATUS,UINT32);
2527 #define     GetRasterizerCaps WINELIB_NAME(GetRasterizerCaps)
2528 DWORD       WINAPI GetRegionData16(HRGN16,DWORD,LPRGNDATA);
2529 DWORD       WINAPI GetRegionData32(HRGN32,DWORD,LPRGNDATA);
2530 #define     GetRegionData WINELIB_NAME(GetRegionData)
2531 INT16       WINAPI GetRelAbs16(HDC16);
2532 INT32       WINAPI GetRelAbs32(HDC32);
2533 #define     GetRelAbs WINELIB_NAME(GetRelAbs)
2534 INT16       WINAPI GetRgnBox16(HRGN16,LPRECT16);
2535 INT32       WINAPI GetRgnBox32(HRGN32,LPRECT32);
2536 #define     GetRgnBox WINELIB_NAME(GetRgnBox)
2537 INT16       WINAPI GetROP216(HDC16);
2538 INT32       WINAPI GetROP232(HDC32);
2539 #define     GetROP2 WINELIB_NAME(GetROP2)
2540 HGDIOBJ16   WINAPI GetStockObject16(INT16);
2541 HGDIOBJ32   WINAPI GetStockObject32(INT32);
2542 #define     GetStockObject WINELIB_NAME(GetStockObject)
2543 INT16       WINAPI GetStretchBltMode16(HDC16);
2544 INT32       WINAPI GetStretchBltMode32(HDC32);
2545 #define     GetStretchBltMode WINELIB_NAME(GetStretchBltMode)
2546 UINT16      WINAPI GetSystemPaletteEntries16(HDC16,UINT16,UINT16,LPPALETTEENTRY);
2547 UINT32      WINAPI GetSystemPaletteEntries32(HDC32,UINT32,UINT32,LPPALETTEENTRY);
2548 #define     GetSystemPaletteEntries WINELIB_NAME(GetSystemPaletteEntries)
2549 UINT16      WINAPI GetSystemPaletteUse16(HDC16);
2550 UINT32      WINAPI GetSystemPaletteUse32(HDC32);
2551 #define     GetSystemPaletteUse WINELIB_NAME(GetSystemPaletteUse)
2552 UINT16      WINAPI GetTextAlign16(HDC16);
2553 UINT32      WINAPI GetTextAlign32(HDC32);
2554 #define     GetTextAlign WINELIB_NAME(GetTextAlign)
2555 INT16       WINAPI GetTextCharacterExtra16(HDC16);
2556 INT32       WINAPI GetTextCharacterExtra32(HDC32);
2557 #define     GetTextCharacterExtra WINELIB_NAME(GetTextCharacterExtra)
2558 UINT16      WINAPI GetTextCharset16(HDC16);
2559 UINT32      WINAPI GetTextCharset32(HDC32);
2560 #define     GetTextCharset WINELIB_NAME(GetTextCharset)
2561 COLORREF    WINAPI GetTextColor16(HDC16);
2562 COLORREF    WINAPI GetTextColor32(HDC32);
2563 #define     GetTextColor WINELIB_NAME(GetTextColor)
2564 /* this one is different, because Win32 has *both* 
2565  * GetTextExtentPoint and GetTextExtentPoint32 !
2566  */
2567 BOOL16      WINAPI GetTextExtentPoint16(HDC16,LPCSTR,INT16,LPSIZE16);
2568 BOOL32      WINAPI GetTextExtentPoint32A(HDC32,LPCSTR,INT32,LPSIZE32);
2569 BOOL32      WINAPI GetTextExtentPoint32W(HDC32,LPCWSTR,INT32,LPSIZE32);
2570 BOOL32      WINAPI GetTextExtentPoint32ABuggy(HDC32,LPCSTR,INT32,LPSIZE32);
2571 BOOL32      WINAPI GetTextExtentPoint32WBuggy(HDC32,LPCWSTR,INT32,LPSIZE32);
2572 #ifdef UNICODE
2573 #define     GetTextExtentPoint GetTextExtentPoint32WBuggy
2574 #define     GetTextExtentPoint32 GetTextExtentPoint32W
2575 #else
2576 #define     GetTextExtentPoint GetTextExtentPoint32ABuggy
2577 #define     GetTextExtentPoint32 GetTextExtentPoint32A
2578 #endif
2579 INT16       WINAPI GetTextFace16(HDC16,INT16,LPSTR);
2580 INT32       WINAPI GetTextFace32A(HDC32,INT32,LPSTR);
2581 INT32       WINAPI GetTextFace32W(HDC32,INT32,LPWSTR);
2582 #define     GetTextFace WINELIB_NAME_AW(GetTextFace)
2583 BOOL16      WINAPI GetTextMetrics16(HDC16,LPTEXTMETRIC16);
2584 BOOL32      WINAPI GetTextMetrics32A(HDC32,LPTEXTMETRIC32A);
2585 BOOL32      WINAPI GetTextMetrics32W(HDC32,LPTEXTMETRIC32W);
2586 #define     GetTextMetrics WINELIB_NAME_AW(GetTextMetrics)
2587 BOOL16      WINAPI GetViewportExtEx16(HDC16,LPSIZE16);
2588 BOOL32      WINAPI GetViewportExtEx32(HDC32,LPSIZE32);
2589 #define     GetViewportExtEx WINELIB_NAME(GetViewportExtEx)
2590 BOOL16      WINAPI GetViewportOrgEx16(HDC16,LPPOINT16);
2591 BOOL32      WINAPI GetViewportOrgEx32(HDC32,LPPOINT32);
2592 #define     GetViewportOrgEx WINELIB_NAME(GetViewportOrgEx)
2593 BOOL16      WINAPI GetWindowExtEx16(HDC16,LPSIZE16);
2594 BOOL32      WINAPI GetWindowExtEx32(HDC32,LPSIZE32);
2595 #define     GetWindowExtEx WINELIB_NAME(GetWindowExtEx)
2596 BOOL16      WINAPI GetWindowOrgEx16(HDC16,LPPOINT16);
2597 BOOL32      WINAPI GetWindowOrgEx32(HDC32,LPPOINT32);
2598 #define     GetWindowOrgEx WINELIB_NAME(GetWindowOrgEx)
2599 INT16       WINAPI IntersectClipRect16(HDC16,INT16,INT16,INT16,INT16);
2600 INT32       WINAPI IntersectClipRect32(HDC32,INT32,INT32,INT32,INT32);
2601 #define     IntersectClipRect WINELIB_NAME(IntersectClipRect)
2602 BOOL16      WINAPI InvertRgn16(HDC16,HRGN16);
2603 BOOL32      WINAPI InvertRgn32(HDC32,HRGN32);
2604 #define     InvertRgn WINELIB_NAME(InvertRgn)
2605 VOID        WINAPI LineDDA16(INT16,INT16,INT16,INT16,LINEDDAPROC16,LPARAM);
2606 BOOL32      WINAPI LineDDA32(INT32,INT32,INT32,INT32,LINEDDAPROC32,LPARAM);
2607 #define     LineDDA WINELIB_NAME(LineDDA)
2608 BOOL16      WINAPI LineTo16(HDC16,INT16,INT16);
2609 BOOL32      WINAPI LineTo32(HDC32,INT32,INT32);
2610 #define     LineTo WINELIB_NAME(LineTo)
2611 BOOL16      WINAPI LPtoDP16(HDC16,LPPOINT16,INT16);
2612 BOOL32      WINAPI LPtoDP32(HDC32,LPPOINT32,INT32);
2613 #define     LPtoDP WINELIB_NAME(LPtoDP)
2614 BOOL16      WINAPI MoveToEx16(HDC16,INT16,INT16,LPPOINT16);
2615 BOOL32      WINAPI MoveToEx32(HDC32,INT32,INT32,LPPOINT32);
2616 #define     MoveToEx WINELIB_NAME(MoveToEx)
2617 INT16       WINAPI MulDiv16(INT16,INT16,INT16);
2618 /* FIXME This is defined in kernel32.spec !?*/
2619 INT32       WINAPI MulDiv32(INT32,INT32,INT32);
2620 #define     MulDiv WINELIB_NAME(MulDiv)
2621 INT16       WINAPI OffsetClipRgn16(HDC16,INT16,INT16);
2622 INT32       WINAPI OffsetClipRgn32(HDC32,INT32,INT32);
2623 #define     OffsetClipRgn WINELIB_NAME(OffsetClipRgn)
2624 INT16       WINAPI OffsetRgn16(HRGN16,INT16,INT16);
2625 INT32       WINAPI OffsetRgn32(HRGN32,INT32,INT32);
2626 #define     OffsetRgn WINELIB_NAME(OffsetRgn)
2627 BOOL16      WINAPI OffsetViewportOrgEx16(HDC16,INT16,INT16,LPPOINT16);
2628 BOOL32      WINAPI OffsetViewportOrgEx32(HDC32,INT32,INT32,LPPOINT32);
2629 #define     OffsetViewportOrgEx WINELIB_NAME(OffsetViewportOrgEx)
2630 BOOL16      WINAPI OffsetWindowOrgEx16(HDC16,INT16,INT16,LPPOINT16);
2631 BOOL32      WINAPI OffsetWindowOrgEx32(HDC32,INT32,INT32,LPPOINT32);
2632 #define     OffsetWindowOrgEx WINELIB_NAME(OffsetWindowOrgEx)
2633 BOOL16      WINAPI PaintRgn16(HDC16,HRGN16);
2634 BOOL32      WINAPI PaintRgn32(HDC32,HRGN32);
2635 #define     PaintRgn WINELIB_NAME(PaintRgn)
2636 BOOL16      WINAPI PatBlt16(HDC16,INT16,INT16,INT16,INT16,DWORD);
2637 BOOL32      WINAPI PatBlt32(HDC32,INT32,INT32,INT32,INT32,DWORD);
2638 #define     PatBlt WINELIB_NAME(PatBlt)
2639 HRGN16      WINAPI PathToRegion16(HDC16);
2640 HRGN32      WINAPI PathToRegion32(HDC32);
2641 #define     PathToRegion WINELIB_NAME(PathToRegion)
2642 BOOL16      WINAPI Pie16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16);
2643 BOOL32      WINAPI Pie32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32,INT32,INT32);
2644 #define     Pie WINELIB_NAME(Pie)
2645 BOOL16      WINAPI PlayMetaFile16(HDC16,HMETAFILE16);
2646 BOOL32      WINAPI PlayMetaFile32(HDC32,HMETAFILE32);
2647 #define     PlayMetaFile WINELIB_NAME(PlayMetaFile)
2648 VOID        WINAPI PlayMetaFileRecord16(HDC16,LPHANDLETABLE16,LPMETARECORD,UINT16);
2649 BOOL32      WINAPI PlayMetaFileRecord32(HDC32,LPHANDLETABLE32,LPMETARECORD,UINT32);
2650 #define     PlayMetaFileRecord WINELIB_NAME(PlayMetaFileRecord)
2651 BOOL16      WINAPI PolyBezier16(HDC16,const POINT16*,INT16);
2652 BOOL32      WINAPI PolyBezier32(HDC32,const POINT32*,DWORD);
2653 #define     PolyBezier WINELIB_NAME(PolyBezier)
2654 BOOL16      WINAPI PolyBezierTo16(HDC16,const POINT16*,INT16);
2655 BOOL32      WINAPI PolyBezierTo32(HDC32,const POINT32*,DWORD);
2656 #define     PolyBezierTo WINELIB_NAME(PolyBezierTo)
2657 BOOL16      WINAPI PolyPolygon16(HDC16,const POINT16*,const INT16*,UINT16);
2658 BOOL32      WINAPI PolyPolygon32(HDC32,const POINT32*,const INT32*,UINT32);
2659 #define     PolyPolygon WINELIB_NAME(PolyPolygon)
2660 BOOL16      WINAPI Polygon16(HDC16,const POINT16*,INT16);
2661 BOOL32      WINAPI Polygon32(HDC32,const POINT32*,INT32);
2662 #define     Polygon WINELIB_NAME(Polygon)
2663 BOOL16      WINAPI Polyline16(HDC16,const POINT16*,INT16);
2664 BOOL32      WINAPI Polyline32(HDC32,const POINT32*,INT32);
2665 #define     Polyline WINELIB_NAME(Polyline)
2666 BOOL32      WINAPI PolylineTo32(HDC32,const POINT32*,DWORD);
2667 BOOL16      WINAPI PtInRegion16(HRGN16,INT16,INT16);
2668 BOOL32      WINAPI PtInRegion32(HRGN32,INT32,INT32);
2669 #define     PtInRegion WINELIB_NAME(PtInRegion)
2670 BOOL16      WINAPI PtVisible16(HDC16,INT16,INT16);
2671 BOOL32      WINAPI PtVisible32(HDC32,INT32,INT32);
2672 #define     PtVisible WINELIB_NAME(PtVisible)
2673 /* FIXME This is defined in user.spec !? */
2674 UINT16      WINAPI RealizePalette16(HDC16);
2675 UINT32      WINAPI RealizePalette32(HDC32);
2676 #define     RealizePalette WINELIB_NAME(RealizePalette)
2677 BOOL16      WINAPI Rectangle16(HDC16,INT16,INT16,INT16,INT16);
2678 BOOL32      WINAPI Rectangle32(HDC32,INT32,INT32,INT32,INT32);
2679 #define     Rectangle WINELIB_NAME(Rectangle)
2680 BOOL16      WINAPI RectInRegion16(HRGN16,const RECT16 *);
2681 BOOL32      WINAPI RectInRegion32(HRGN32,const RECT32 *);
2682 #define     RectInRegion WINELIB_NAME(RectInRegion)
2683 BOOL16      WINAPI RectVisible16(HDC16,const RECT16*);
2684 BOOL32      WINAPI RectVisible32(HDC32,const RECT32*);
2685 #define     RectVisible WINELIB_NAME(RectVisible)
2686 BOOL16      WINAPI RemoveFontResource16(SEGPTR);
2687 BOOL32      WINAPI RemoveFontResource32A(LPCSTR);
2688 BOOL32      WINAPI RemoveFontResource32W(LPCWSTR);
2689 #define     RemoveFontResource WINELIB_NAME_AW(RemoveFontResource)
2690 HDC16       WINAPI ResetDC16(HDC16,const DEVMODE16 *);
2691 HDC32       WINAPI ResetDC32A(HDC32,const DEVMODE32A *);
2692 HDC32       WINAPI ResetDC32W(HDC32,const DEVMODE32W *);
2693 #define     ResetDC WINELIB_NAME_AW(ResetDC)
2694 BOOL16      WINAPI ResizePalette16(HPALETTE16,UINT16);
2695 BOOL32      WINAPI ResizePalette32(HPALETTE32,UINT32);
2696 #define     ResizePalette WINELIB_NAME(ResizePalette)
2697 BOOL16      WINAPI RestoreDC16(HDC16,INT16);
2698 BOOL32      WINAPI RestoreDC32(HDC32,INT32);
2699 #define     RestoreDC WINELIB_NAME(RestoreDC)
2700 BOOL16      WINAPI RoundRect16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16);
2701 BOOL32      WINAPI RoundRect32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32);
2702 #define     RoundRect WINELIB_NAME(RoundRect)
2703 INT16       WINAPI SaveDC16(HDC16);
2704 INT32       WINAPI SaveDC32(HDC32);
2705 #define     SaveDC WINELIB_NAME(SaveDC)
2706 BOOL16      WINAPI ScaleViewportExtEx16(HDC16,INT16,INT16,INT16,INT16,LPSIZE16);
2707 BOOL32      WINAPI ScaleViewportExtEx32(HDC32,INT32,INT32,INT32,INT32,LPSIZE32);
2708 #define     ScaleViewportExtEx WINELIB_NAME(ScaleViewportExtEx)
2709 BOOL16      WINAPI ScaleWindowExtEx16(HDC16,INT16,INT16,INT16,INT16,LPSIZE16);
2710 BOOL32      WINAPI ScaleWindowExtEx32(HDC32,INT32,INT32,INT32,INT32,LPSIZE32);
2711 #define     ScaleWindowExtEx WINELIB_NAME(ScaleWindowExtEx)
2712 BOOL16      WINAPI SelectClipPath16(HDC16,INT16);
2713 BOOL32      WINAPI SelectClipPath32(HDC32,INT32);
2714 #define     SelectClipPath WINELIB_NAME(SelectClipPath)
2715 INT16       WINAPI SelectClipRgn16(HDC16,HRGN16);
2716 INT32       WINAPI SelectClipRgn32(HDC32,HRGN32);
2717 #define     SelectClipRgn WINELIB_NAME(SelectClipRgn)
2718 HGDIOBJ16   WINAPI SelectObject16(HDC16,HGDIOBJ16);
2719 HGDIOBJ32   WINAPI SelectObject32(HDC32,HGDIOBJ32);
2720 #define     SelectObject WINELIB_NAME(SelectObject)
2721 /* FIXME This is defined in user.spec !? */
2722 HPALETTE16  WINAPI SelectPalette16(HDC16,HPALETTE16,BOOL16);
2723 HPALETTE32  WINAPI SelectPalette32(HDC32,HPALETTE32,BOOL32);
2724 #define     SelectPalette WINELIB_NAME(SelectPalette)
2725 INT16       WINAPI SetAbortProc16(HDC16,SEGPTR);
2726 INT32       WINAPI SetAbortProc32(HDC32,ABORTPROC32);
2727 #define     SetAbortProc WINELIB_NAME(SetAbortProc)
2728 INT16       WINAPI SetArcDirection16(HDC16,INT16);
2729 INT32       WINAPI SetArcDirection32(HDC32,INT32);
2730 #define     SetArcDirection WINELIB_NAME(SetArcDirection)
2731 LONG        WINAPI SetBitmapBits16(HBITMAP16,LONG,LPCVOID);
2732 LONG        WINAPI SetBitmapBits32(HBITMAP32,LONG,LPCVOID);
2733 #define     SetBitmapBits WINELIB_NAME(SetBitmapBits)
2734 BOOL16      WINAPI SetBitmapDimensionEx16(HBITMAP16,INT16,INT16,LPSIZE16);
2735 BOOL32      WINAPI SetBitmapDimensionEx32(HBITMAP32,INT32,INT32,LPSIZE32);
2736 #define     SetBitmapDimensionEx WINELIB_NAME(SetBitmapDimensionEx)
2737 COLORREF    WINAPI SetBkColor16(HDC16,COLORREF);
2738 COLORREF    WINAPI SetBkColor32(HDC32,COLORREF);
2739 #define     SetBkColor WINELIB_NAME(SetBkColor)
2740 INT16       WINAPI SetBkMode16(HDC16,INT16);
2741 INT32       WINAPI SetBkMode32(HDC32,INT32);
2742 #define     SetBkMode WINELIB_NAME(SetBkMode)
2743 UINT16      WINAPI SetBoundsRect16(HDC16,const RECT16*,UINT16);
2744 UINT32      WINAPI SetBoundsRect32(HDC32,const RECT32*,UINT32);
2745 #define     SetBoundsRect WINELIB_NAME(SetBoundsRect)
2746 UINT16      WINAPI SetDIBColorTable16(HDC16,UINT16,UINT16,RGBQUAD*);
2747 UINT32      WINAPI SetDIBColorTable32(HDC32,UINT32,UINT32,RGBQUAD*);
2748 #define     SetDIBColorTable WINELIB_NAME(SetDIBColorTable)
2749 INT16       WINAPI SetDIBits16(HDC16,HBITMAP16,UINT16,UINT16,LPCVOID,const BITMAPINFO*,UINT16);
2750 INT32       WINAPI SetDIBits32(HDC32,HBITMAP32,UINT32,UINT32,LPCVOID,const BITMAPINFO*,UINT32);
2751 #define     SetDIBits WINELIB_NAME(SetDIBits)
2752 INT16       WINAPI SetDIBitsToDevice16(HDC16,INT16,INT16,INT16,INT16,INT16,
2753                          INT16,UINT16,UINT16,LPCVOID,const BITMAPINFO*,UINT16);
2754 INT32       WINAPI SetDIBitsToDevice32(HDC32,INT32,INT32,DWORD,DWORD,INT32,
2755                          INT32,UINT32,UINT32,LPCVOID,const BITMAPINFO*,UINT32);
2756 #define     SetDIBitsToDevice WINELIB_NAME(SetDIBitsToDevice)
2757 INT16       WINAPI SetMapMode16(HDC16,INT16);
2758 INT32       WINAPI SetMapMode32(HDC32,INT32);
2759 #define     SetMapMode WINELIB_NAME(SetMapMode)
2760 DWORD       WINAPI SetMapperFlags16(HDC16,DWORD);
2761 DWORD       WINAPI SetMapperFlags32(HDC32,DWORD);
2762 #define     SetMapperFlags WINELIB_NAME(SetMapperFlags)
2763 UINT16      WINAPI SetPaletteEntries16(HPALETTE16,UINT16,UINT16,LPPALETTEENTRY);
2764 UINT32      WINAPI SetPaletteEntries32(HPALETTE32,UINT32,UINT32,LPPALETTEENTRY);
2765 #define     SetPaletteEntries WINELIB_NAME(SetPaletteEntries)
2766 COLORREF    WINAPI SetPixel16(HDC16,INT16,INT16,COLORREF);
2767 COLORREF    WINAPI SetPixel32(HDC32,INT32,INT32,COLORREF);
2768 #define     SetPixel WINELIB_NAME(SetPixel)
2769 BOOL32      WINAPI SetPixelV32(HDC32,INT32,INT32,COLORREF);
2770 #define     SetPixelV WINELIB_NAME(SetPixelV)
2771 BOOL32      WINAPI SetPixelFormat(HDC32,int,const PIXELFORMATDESCRIPTOR*);
2772 INT16       WINAPI SetPolyFillMode16(HDC16,INT16);
2773 INT32       WINAPI SetPolyFillMode32(HDC32,INT32);
2774 #define     SetPolyFillMode WINELIB_NAME(SetPolyFillMode)
2775 VOID        WINAPI SetRectRgn16(HRGN16,INT16,INT16,INT16,INT16);
2776 VOID        WINAPI SetRectRgn32(HRGN32,INT32,INT32,INT32,INT32);
2777 #define     SetRectRgn WINELIB_NAME(SetRectRgn)
2778 INT16       WINAPI SetRelAbs16(HDC16,INT16);
2779 INT32       WINAPI SetRelAbs32(HDC32,INT32);
2780 #define     SetRelAbs WINELIB_NAME(SetRelAbs)
2781 INT16       WINAPI SetROP216(HDC16,INT16);
2782 INT32       WINAPI SetROP232(HDC32,INT32);
2783 #define     SetROP2 WINELIB_NAME(SetROP2)
2784 INT16       WINAPI SetStretchBltMode16(HDC16,INT16);
2785 INT32       WINAPI SetStretchBltMode32(HDC32,INT32);
2786 #define     SetStretchBltMode WINELIB_NAME(SetStretchBltMode)
2787 UINT16      WINAPI SetSystemPaletteUse16(HDC16,UINT16);
2788 UINT32      WINAPI SetSystemPaletteUse32(HDC32,UINT32);
2789 #define     SetSystemPaletteUse WINELIB_NAME(SetSystemPaletteUse)
2790 UINT16      WINAPI SetTextAlign16(HDC16,UINT16);
2791 UINT32      WINAPI SetTextAlign32(HDC32,UINT32);
2792 #define     SetTextAlign WINELIB_NAME(SetTextAlign)
2793 INT16       WINAPI SetTextCharacterExtra16(HDC16,INT16);
2794 INT32       WINAPI SetTextCharacterExtra32(HDC32,INT32);
2795 #define     SetTextCharacterExtra WINELIB_NAME(SetTextCharacterExtra)
2796 COLORREF    WINAPI SetTextColor16(HDC16,COLORREF);
2797 COLORREF    WINAPI SetTextColor32(HDC32,COLORREF);
2798 #define     SetTextColor WINELIB_NAME(SetTextColor)
2799 INT16       WINAPI SetTextJustification16(HDC16,INT16,INT16);
2800 BOOL32      WINAPI SetTextJustification32(HDC32,INT32,INT32);
2801 #define     SetTextJustification WINELIB_NAME(SetTextJustification)
2802 BOOL16      WINAPI SetViewportExtEx16(HDC16,INT16,INT16,LPSIZE16);
2803 BOOL32      WINAPI SetViewportExtEx32(HDC32,INT32,INT32,LPSIZE32);
2804 #define     SetViewportExtEx WINELIB_NAME(SetViewportExtEx)
2805 BOOL16      WINAPI SetViewportOrgEx16(HDC16,INT16,INT16,LPPOINT16);
2806 BOOL32      WINAPI SetViewportOrgEx32(HDC32,INT32,INT32,LPPOINT32);
2807 #define     SetViewportOrgEx WINELIB_NAME(SetViewportOrgEx)
2808 BOOL16      WINAPI SetWindowExtEx16(HDC16,INT16,INT16,LPSIZE16);
2809 BOOL32      WINAPI SetWindowExtEx32(HDC32,INT32,INT32,LPSIZE32);
2810 #define     SetWindowExtEx WINELIB_NAME(SetWindowExtEx)
2811 BOOL16      WINAPI SetWindowOrgEx16(HDC16,INT16,INT16,LPPOINT16);
2812 BOOL32      WINAPI SetWindowOrgEx32(HDC32,INT32,INT32,LPPOINT32);
2813 #define     SetWindowOrgEx WINELIB_NAME(SetWindowOrgEx)
2814 HENHMETAFILE32 WINAPI SetWinMetaFileBits(UINT32,CONST BYTE*,HDC32,CONST METAFILEPICT32 *);
2815 INT16       WINAPI StartDoc16(HDC16,const DOCINFO16*);
2816 INT32       WINAPI StartDoc32A(HDC32,const DOCINFO32A*);
2817 INT32       WINAPI StartDoc32W(HDC32,const DOCINFO32W*);
2818 #define     StartDoc WINELIB_NAME_AW(StartDoc)
2819 INT16       WINAPI StartPage16(HDC16);
2820 INT32       WINAPI StartPage32(HDC32);
2821 #define     StartPage WINELIB_NAME(StartPage)
2822 INT16       WINAPI EndPage16(HDC16);
2823 INT32       WINAPI EndPage32(HDC32);
2824 #define     EndPage WINELIB_NAME(EndPage)
2825 BOOL16      WINAPI StretchBlt16(HDC16,INT16,INT16,INT16,INT16,HDC16,INT16,
2826                                 INT16,INT16,INT16,DWORD);
2827 BOOL32      WINAPI StretchBlt32(HDC32,INT32,INT32,INT32,INT32,HDC32,INT32,
2828                                 INT32,INT32,INT32,DWORD);
2829 #define     StretchBlt WINELIB_NAME(StretchBlt)
2830 INT16       WINAPI StretchDIBits16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,
2831                        INT16,INT16,const VOID*,const BITMAPINFO*,UINT16,DWORD);
2832 INT32       WINAPI StretchDIBits32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32,
2833                        INT32,INT32,const VOID*,const BITMAPINFO*,UINT32,DWORD);
2834 #define     StretchDIBits WINELIB_NAME(StretchDIBits)
2835 BOOL16      WINAPI StrokeAndFillPath16(HDC16);
2836 BOOL32      WINAPI StrokeAndFillPath32(HDC32);
2837 #define     StrokeAndFillPath WINELIB_NAME(StrokeAndFillPath)
2838 BOOL16      WINAPI StrokePath16(HDC16);
2839 BOOL32      WINAPI StrokePath32(HDC32);
2840 #define     StrokePath WINELIB_NAME(StrokePath)
2841 BOOL32      WINAPI SwapBuffers(HDC32);
2842 BOOL16      WINAPI TextOut16(HDC16,INT16,INT16,LPCSTR,INT16);
2843 BOOL32      WINAPI TextOut32A(HDC32,INT32,INT32,LPCSTR,INT32);
2844 BOOL32      WINAPI TextOut32W(HDC32,INT32,INT32,LPCWSTR,INT32);
2845 #define     TextOut WINELIB_NAME_AW(TextOut)
2846 BOOL16      WINAPI UnrealizeObject16(HGDIOBJ16);
2847 BOOL32      WINAPI UnrealizeObject32(HGDIOBJ32);
2848 #define     UnrealizeObject WINELIB_NAME(UnrealizeObject)
2849 INT16       WINAPI UpdateColors16(HDC16);
2850 BOOL32      WINAPI UpdateColors32(HDC32);
2851 #define     UpdateColors WINELIB_NAME(UpdateColors)
2852 BOOL16      WINAPI WidenPath16(HDC16);
2853 BOOL32      WINAPI WidenPath32(HDC32);
2854 #define     WidenPath WINELIB_NAME(WidenPath)
2855
2856 #endif /* __WINE_WINGDI_H */