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