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