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