Use DllOverrides from wine.ini as defaults also in
[wine] / include / wingdi.h
1 #ifndef __WINE_WINGDI_H
2 #define __WINE_WINGDI_H
3
4 #include "windef.h"
5
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
9
10 #define _WINGDI_
11
12 #pragma pack(1)
13
14 typedef struct _ABCFLOAT {
15     FLOAT   abcfA;
16     FLOAT   abcfB;
17     FLOAT   abcfC;
18 } ABCFLOAT, *PABCFLOAT, *LPABCFLOAT;
19
20 typedef struct
21 {
22     WORD   wFirst;
23     WORD   wSecond;
24     INT16  iKernAmount;
25 } KERNINGPAIR16, *LPKERNINGPAIR16;
26
27 typedef struct
28 {
29     WORD   wFirst;
30     WORD   wSecond;
31     INT  iKernAmount;
32 } KERNINGPAIR, *LPKERNINGPAIR;
33
34
35 typedef struct
36 {
37     HDC16   hdc;
38     BOOL16  fErase;
39     RECT16  rcPaint;
40     BOOL16  fRestore;
41     BOOL16  fIncUpdate;
42     BYTE    rgbReserved[16];
43 } PAINTSTRUCT16, *LPPAINTSTRUCT16;
44
45 typedef struct
46 {
47     HDC   hdc;
48     BOOL  fErase;
49     RECT  rcPaint;
50     BOOL  fRestore;
51     BOOL  fIncUpdate;
52     BYTE    rgbReserved[32];
53 } PAINTSTRUCT, *PPAINTSTRUCT, *LPPAINTSTRUCT;
54
55
56
57 typedef struct tagPIXELFORMATDESCRIPTOR {
58     WORD  nSize;
59     WORD  nVersion;
60     DWORD dwFlags;
61     BYTE  iPixelType;
62     BYTE  cColorBits;
63     BYTE  cRedBits;
64     BYTE  cRedShift;
65     BYTE  cGreenBits;
66     BYTE  cGreenShift;
67     BYTE  cBlueBits;
68     BYTE  cBlueShift;
69     BYTE  cAlphaBits;
70     BYTE  cAlphaShift;
71     BYTE  cAccumBits;
72     BYTE  cAccumRedBits;
73     BYTE  cAccumGreenBits;
74     BYTE  cAccumBlueBits;
75     BYTE  cAccumAlphaBits;
76     BYTE  cDepthBits;
77     BYTE  cStencilBits;
78     BYTE  cAuxBuffers;
79     BYTE  iLayerType;
80     BYTE  bReserved;
81     DWORD dwLayerMask;
82     DWORD dwVisibleMask;
83     DWORD dwDamageMask;
84 } PIXELFORMATDESCRIPTOR, *LPPIXELFORMATDESCRIPTOR;
85
86 typedef struct tagCOLORADJUSTMENT
87 {
88         WORD   caSize;
89         WORD   caFlags;
90         WORD   caIlluminantIndex;
91         WORD   caRedGamma;
92         WORD   caGreenGamma;
93         WORD   caBlueGamma;
94         WORD   caReferenceBlack;
95         WORD   caReferenceWhite;
96         SHORT  caContrast;
97         SHORT  caBrightness;
98         SHORT  caColorfulness;
99         SHORT  caRedGreenTint;
100 } COLORADJUSTMENT, *PCOLORADJUSTMENT, *LPCOLORADJUSTMENT;
101
102 typedef LONG FXPT16DOT16, *LPFXPT16DOT16;
103 typedef LONG FXPT2DOT30, *LPFXPT2DOT30;
104 typedef LONG LCSCSTYPE;
105 typedef LONG LCSGAMUTMATCH;
106
107 typedef struct tagCIEXYZ
108 {
109   FXPT2DOT30 ciexyzX;
110   FXPT2DOT30 ciexyzY;
111   FXPT2DOT30 ciexyzZ;
112 } CIEXYZ, *LPCIEXYZ;
113
114 typedef struct tagCIEXYZTRIPLE
115 {
116   CIEXYZ ciexyzRed;
117   CIEXYZ ciexyzGreen;
118   CIEXYZ ciexyzBlue;
119 } CIEXYZTRIPLE, *LPCIEXYZTRIPLE;
120
121 typedef struct tagLOGCOLORSPACEA
122 {
123   DWORD lcsSignature;
124   DWORD lcsVersion;
125   DWORD lcsSize;
126   LCSCSTYPE lcsCSType;
127   LCSGAMUTMATCH lcsIntent;
128   CIEXYZTRIPLE lcsEndpoints;
129   DWORD lcsGammaRed;
130   DWORD lcsGammaGreen;
131   DWORD lcsGammaBlue;
132   CHAR lcsFilename[_MAX_PATH];
133 } LOGCOLORSPACEA, *LPLOGCOLORSPACEA;
134
135  typedef struct tagLOGCOLORSPACEW
136 {
137   DWORD lcsSignature;
138   DWORD lcsVersion;
139   DWORD lcsSize;
140   LCSCSTYPE lcsCSType;
141   LCSGAMUTMATCH lcsIntent;
142   CIEXYZTRIPLE lcsEndpoints;
143   DWORD lcsGammaRed;
144   DWORD lcsGammaGreen;
145   DWORD lcsGammaBlue;
146   WCHAR lcsFilename[_MAX_PATH];
147 } LOGCOLORSPACEW, *LPLOGCOLORSPACEW;
148
149 DECL_WINELIB_TYPE_AW(LPLOGCOLORSPACE)
150 DECL_WINELIB_TYPE_AW(LOGCOLORSPACE)
151
152 #define DC_FIELDS               1
153 #define DC_PAPERS               2
154 #define DC_PAPERSIZE            3
155 #define DC_MINEXTENT            4
156 #define DC_MAXEXTENT            5
157 #define DC_BINS                 6
158 #define DC_DUPLEX               7
159 #define DC_SIZE                 8
160 #define DC_EXTRA                9
161 #define DC_VERSION              10
162 #define DC_DRIVER               11
163 #define DC_BINNAMES             12
164 #define DC_ENUMRESOLUTIONS      13
165 #define DC_FILEDEPENDENCIES     14
166 #define DC_TRUETYPE             15
167 #define DC_PAPERNAMES           16
168 #define DC_ORIENTATION          17
169 #define DC_COPIES               18
170 #define DC_BINADJUST            19
171 #define DC_EMF_COMPLIANT        20
172 #define DC_DATATYPE_PRODUCED    21
173 #define DC_COLLATE              22
174 #define DC_MANUFACTURER         23
175 #define DC_MODEL                24
176
177 /* Flag returned from Escape QUERYDIBSUPPORT */
178 #define QDI_SETDIBITS           1
179 #define QDI_GETDIBITS           2
180 #define QDI_DIBTOSCREEN         4
181 #define QDI_STRETCHDIB          8
182
183
184 #define PR_JOBSTATUS    0x0000
185
186
187 /* GDI Escape commands */
188 #define NEWFRAME                1
189 #define ABORTDOC                2
190 #define NEXTBAND                3
191 #define SETCOLORTABLE           4
192 #define GETCOLORTABLE           5
193 #define FLUSHOUTPUT             6
194 #define DRAFTMODE               7
195 #define QUERYESCSUPPORT         8
196 #define SETABORTPROC            9
197 #define STARTDOC                10
198 #define ENDDOC                  11
199 #define GETPHYSPAGESIZE         12
200 #define GETPRINTINGOFFSET       13
201 #define GETSCALINGFACTOR        14
202 #define MFCOMMENT               15
203 #define GETPENWIDTH             16
204 #define SETCOPYCOUNT            17
205 #define SELECTPAPERSOURCE       18
206 #define DEVICEDATA              19
207 #define PASSTHROUGH             19
208 #define GETTECHNOLGY            20
209 #define GETTECHNOLOGY           20 /* yes, both of them */
210 #define SETLINECAP              21
211 #define SETLINEJOIN             22
212 #define SETMITERLIMIT           23
213 #define BANDINFO                24
214 #define DRAWPATTERNRECT         25
215 #define GETVECTORPENSIZE        26
216 #define GETVECTORBRUSHSIZE      27
217 #define ENABLEDUPLEX            28
218 #define GETSETPAPERBINS         29
219 #define GETSETPRINTORIENT       30
220 #define ENUMPAPERBINS           31
221 #define SETDIBSCALING           32
222 #define EPSPRINTING             33
223 #define ENUMPAPERMETRICS        34
224 #define GETSETPAPERMETRICS      35
225 #define POSTSCRIPT_DATA         37
226 #define POSTSCRIPT_IGNORE       38
227 #define MOUSETRAILS             39
228 #define GETDEVICEUNITS          42
229
230 #define GETEXTENDEDTEXTMETRICS  256
231 #define GETEXTENTTABLE          257
232 #define GETPAIRKERNTABLE        258
233 #define GETTRACKKERNTABLE       259
234 #define EXTTEXTOUT              512
235 #define GETFACENAME             513
236 #define DOWNLOADFACE            514
237 #define ENABLERELATIVEWIDTHS    768
238 #define ENABLEPAIRKERNING       769
239 #define SETKERNTRACK            770
240 #define SETALLJUSTVALUES        771
241 #define SETCHARSET              772
242
243 #define STRETCHBLT              2048
244 #define GETSETSCREENPARAMS      3072
245 #define QUERYDIBSUPPORT         3073
246 #define BEGIN_PATH              4096
247 #define CLIP_TO_PATH            4097
248 #define END_PATH                4098
249 #define EXT_DEVICE_CAPS         4099
250 #define RESTORE_CTM             4100
251 #define SAVE_CTM                4101
252 #define SET_ARC_DIRECTION       4102
253 #define SET_BACKGROUND_COLOR    4103
254 #define SET_POLY_MODE           4104
255 #define SET_SCREEN_ANGLE        4105
256 #define SET_SPREAD              4106
257 #define TRANSFORM_CTM           4107
258 #define SET_CLIP_BOX            4108
259 #define SET_BOUNDS              4109
260 #define SET_MIRROR_MODE         4110
261 #define OPENCHANNEL             4110
262 #define DOWNLOADHEADER          4111
263 #define CLOSECHANNEL            4112
264 #define POSTSCRIPT_PASSTHROUGH  4115
265 #define ENCAPSULATED_POSTSCRIPT 4116
266
267 /* Spooler Error Codes */
268 #define SP_NOTREPORTED  0x4000
269 #define SP_ERROR        (-1)
270 #define SP_APPABORT     (-2)
271 #define SP_USERABORT    (-3)
272 #define SP_OUTOFDISK    (-4)
273 #define SP_OUTOFMEMORY  (-5)
274
275
276   /* Raster operations */
277
278 #define R2_BLACK         1
279 #define R2_NOTMERGEPEN   2
280 #define R2_MASKNOTPEN    3
281 #define R2_NOTCOPYPEN    4
282 #define R2_MASKPENNOT    5
283 #define R2_NOT           6
284 #define R2_XORPEN        7
285 #define R2_NOTMASKPEN    8
286 #define R2_MASKPEN       9
287 #define R2_NOTXORPEN    10
288 #define R2_NOP          11
289 #define R2_MERGENOTPEN  12
290 #define R2_COPYPEN      13
291 #define R2_MERGEPENNOT  14
292 #define R2_MERGEPEN     15
293 #define R2_WHITE        16
294
295 #define SRCCOPY         0xcc0020
296 #define SRCPAINT        0xee0086
297 #define SRCAND          0x8800c6
298 #define SRCINVERT       0x660046
299 #define SRCERASE        0x440328
300 #define NOTSRCCOPY      0x330008
301 #define NOTSRCERASE     0x1100a6
302 #define MERGECOPY       0xc000ca
303 #define MERGEPAINT      0xbb0226
304 #define PATCOPY         0xf00021
305 #define PATPAINT        0xfb0a09
306 #define PATINVERT       0x5a0049
307 #define DSTINVERT       0x550009
308 #define BLACKNESS       0x000042
309 #define WHITENESS       0xff0062
310
311   /* StretchBlt() modes */
312 #define BLACKONWHITE         1
313 #define WHITEONBLACK         2
314 #define COLORONCOLOR         3
315
316 #define STRETCH_ANDSCANS     BLACKONWHITE
317 #define STRETCH_ORSCANS      WHITEONBLACK
318 #define STRETCH_DELETESCANS  COLORONCOLOR
319
320   /* Colors */
321
322 typedef DWORD COLORREF, *LPCOLORREF;
323
324 #define RGB(r,g,b)          ((COLORREF)((r) | ((g) << 8) | ((b) << 16)))
325 #define PALETTERGB(r,g,b)   (0x02000000 | RGB(r,g,b))
326 #define PALETTEINDEX(i)     ((COLORREF)(0x01000000 | (WORD)(i)))
327
328 #define GetRValue(rgb)      ((rgb) & 0xff)
329 #define GetGValue(rgb)      (((rgb) >> 8) & 0xff)
330 #define GetBValue(rgb)      (((rgb) >> 16) & 0xff)
331
332 #define COLOR_SCROLLBAR             0
333 #define COLOR_BACKGROUND            1
334 #define COLOR_ACTIVECAPTION         2
335 #define COLOR_INACTIVECAPTION       3
336 #define COLOR_MENU                  4
337 #define COLOR_WINDOW                5
338 #define COLOR_WINDOWFRAME           6
339 #define COLOR_MENUTEXT              7
340 #define COLOR_WINDOWTEXT            8
341 #define COLOR_CAPTIONTEXT           9
342 #define COLOR_ACTIVEBORDER         10
343 #define COLOR_INACTIVEBORDER       11
344 #define COLOR_APPWORKSPACE         12
345 #define COLOR_HIGHLIGHT            13
346 #define COLOR_HIGHLIGHTTEXT        14
347 #define COLOR_BTNFACE              15
348 #define COLOR_BTNSHADOW            16
349 #define COLOR_GRAYTEXT             17
350 #define COLOR_BTNTEXT              18
351 #define COLOR_INACTIVECAPTIONTEXT  19
352 #define COLOR_BTNHIGHLIGHT         20
353 /* win95 colors */
354 #define COLOR_3DDKSHADOW           21
355 #define COLOR_3DLIGHT              22
356 #define COLOR_INFOTEXT             23
357 #define COLOR_INFOBK               24
358 #define COLOR_DESKTOP              COLOR_BACKGROUND
359 #define COLOR_3DFACE               COLOR_BTNFACE
360 #define COLOR_3DSHADOW             COLOR_BTNSHADOW
361 #define COLOR_3DHIGHLIGHT          COLOR_BTNHIGHLIGHT
362 #define COLOR_3DHILIGHT            COLOR_BTNHIGHLIGHT
363 #define COLOR_BTNHILIGHT           COLOR_BTNHIGHLIGHT
364 /* win98 colors */
365 #define COLOR_ALTERNATEBTNFACE         25  /* undocumented, constant's name unknown */
366 #define COLOR_HOTLIGHT                 26
367 #define COLOR_GRADIENTACTIVECAPTION    27
368 #define COLOR_GRADIENTINACTIVECAPTION  28
369
370   /* WM_CTLCOLOR values */
371 #define CTLCOLOR_MSGBOX             0
372 #define CTLCOLOR_EDIT               1
373 #define CTLCOLOR_LISTBOX            2
374 #define CTLCOLOR_BTN                3
375 #define CTLCOLOR_DLG                4
376 #define CTLCOLOR_SCROLLBAR          5
377 #define CTLCOLOR_STATIC             6
378
379 #define ICM_OFF   1
380 #define ICM_ON    2
381 #define ICM_QUERY 3
382
383   /* Bounds Accumulation APIs */
384 #define DCB_RESET       0x0001
385 #define DCB_ACCUMULATE  0x0002
386 #define DCB_DIRTY       DCB_ACCUMULATE
387 #define DCB_SET         (DCB_RESET | DCB_ACCUMULATE)
388 #define DCB_ENABLE      0x0004
389 #define DCB_DISABLE     0x0008
390
391   /* Bitmaps */
392
393 typedef struct
394 {
395     INT16  bmType;
396     INT16  bmWidth;
397     INT16  bmHeight;
398     INT16  bmWidthBytes;
399     BYTE   bmPlanes;
400     BYTE   bmBitsPixel;
401     SEGPTR bmBits WINE_PACKED;
402 } BITMAP16, *LPBITMAP16;
403
404 typedef struct
405 {
406     INT  bmType;
407     INT  bmWidth;
408     INT  bmHeight;
409     INT  bmWidthBytes;
410     WORD   bmPlanes;
411     WORD   bmBitsPixel;
412     LPVOID bmBits WINE_PACKED;
413 } BITMAP, *LPBITMAP;
414
415
416   /* Brushes */
417
418 typedef struct
419
420     UINT16     lbStyle;
421     COLORREF   lbColor WINE_PACKED;
422     INT16      lbHatch;
423 } LOGBRUSH16, *LPLOGBRUSH16;
424
425 typedef struct
426
427     UINT     lbStyle;
428     COLORREF   lbColor;
429     INT      lbHatch;
430 } LOGBRUSH, *LPLOGBRUSH;
431
432
433   /* Brush styles */
434 #define BS_SOLID            0
435 #define BS_NULL             1
436 #define BS_HOLLOW           1
437 #define BS_HATCHED          2
438 #define BS_PATTERN          3
439 #define BS_INDEXED          4
440 #define BS_DIBPATTERN       5
441 #define BS_DIBPATTERNPT     6
442 #define BS_PATTERN8X8       7
443 #define BS_DIBPATTERN8X8    8
444 #define BS_MONOPATTERN      9
445
446   /* Hatch styles */
447 #define HS_HORIZONTAL       0
448 #define HS_VERTICAL         1
449 #define HS_FDIAGONAL        2
450 #define HS_BDIAGONAL        3
451 #define HS_CROSS            4
452 #define HS_DIAGCROSS        5
453
454   /* Fonts */
455
456 #define LF_FACESIZE     32
457 #define LF_FULLFACESIZE 64
458
459 #define RASTER_FONTTYPE     0x0001
460 #define DEVICE_FONTTYPE     0x0002
461 #define TRUETYPE_FONTTYPE   0x0004
462
463 typedef struct
464 {
465     INT16  lfHeight;
466     INT16  lfWidth;
467     INT16  lfEscapement;
468     INT16  lfOrientation;
469     INT16  lfWeight;
470     BYTE   lfItalic;
471     BYTE   lfUnderline;
472     BYTE   lfStrikeOut;
473     BYTE   lfCharSet;
474     BYTE   lfOutPrecision;
475     BYTE   lfClipPrecision;
476     BYTE   lfQuality;
477     BYTE   lfPitchAndFamily;
478     CHAR   lfFaceName[LF_FACESIZE] WINE_PACKED;
479 } LOGFONT16, *LPLOGFONT16;
480
481 typedef struct
482 {
483     INT  lfHeight;
484     INT  lfWidth;
485     INT  lfEscapement;
486     INT  lfOrientation;
487     INT  lfWeight;
488     BYTE   lfItalic;
489     BYTE   lfUnderline;
490     BYTE   lfStrikeOut;
491     BYTE   lfCharSet;
492     BYTE   lfOutPrecision;
493     BYTE   lfClipPrecision;
494     BYTE   lfQuality;
495     BYTE   lfPitchAndFamily;
496     CHAR   lfFaceName[LF_FACESIZE];
497 } LOGFONTA, *PLOGFONTA, *LPLOGFONTA;
498
499 typedef struct
500 {
501     INT  lfHeight;
502     INT  lfWidth;
503     INT  lfEscapement;
504     INT  lfOrientation;
505     INT  lfWeight;
506     BYTE   lfItalic;
507     BYTE   lfUnderline;
508     BYTE   lfStrikeOut;
509     BYTE   lfCharSet;
510     BYTE   lfOutPrecision;
511     BYTE   lfClipPrecision;
512     BYTE   lfQuality;
513     BYTE   lfPitchAndFamily;
514     WCHAR  lfFaceName[LF_FACESIZE];
515 } LOGFONTW, *PLOGFONTW, *LPLOGFONTW;
516
517 DECL_WINELIB_TYPE_AW(LOGFONT)
518 DECL_WINELIB_TYPE_AW(PLOGFONT)
519 DECL_WINELIB_TYPE_AW(LPLOGFONT)
520
521 typedef struct
522 {
523   LOGFONT16  elfLogFont;
524   BYTE       elfFullName[LF_FULLFACESIZE] WINE_PACKED;
525   BYTE       elfStyle[LF_FACESIZE] WINE_PACKED;
526 } ENUMLOGFONT16, *LPENUMLOGFONT16;
527
528 typedef struct
529 {
530   LOGFONTA elfLogFont;
531   BYTE       elfFullName[LF_FULLFACESIZE] WINE_PACKED;
532   BYTE       elfStyle[LF_FACESIZE] WINE_PACKED;
533 } ENUMLOGFONTA, *LPENUMLOGFONTA;
534
535 typedef struct
536 {
537   LOGFONTW elfLogFont;
538   WCHAR      elfFullName[LF_FULLFACESIZE] WINE_PACKED;
539   WCHAR      elfStyle[LF_FACESIZE] WINE_PACKED;
540 } ENUMLOGFONTW, *LPENUMLOGFONTW;
541
542 typedef struct
543 {
544   LOGFONT16  elfLogFont;
545   BYTE       elfFullName[LF_FULLFACESIZE] WINE_PACKED;
546   BYTE       elfStyle[LF_FACESIZE] WINE_PACKED;
547   BYTE       elfScript[LF_FACESIZE] WINE_PACKED;
548 } ENUMLOGFONTEX16, *LPENUMLOGFONTEX16;
549
550 typedef struct
551 {
552   LOGFONTA elfLogFont;
553   BYTE       elfFullName[LF_FULLFACESIZE] WINE_PACKED;
554   BYTE       elfStyle[LF_FACESIZE] WINE_PACKED;
555   BYTE       elfScript[LF_FACESIZE] WINE_PACKED;
556 } ENUMLOGFONTEXA,*LPENUMLOGFONTEXA;
557
558 typedef struct
559 {
560   LOGFONTW elfLogFont;
561   WCHAR      elfFullName[LF_FULLFACESIZE] WINE_PACKED;
562   WCHAR      elfStyle[LF_FACESIZE] WINE_PACKED;
563   WCHAR      elfScript[LF_FACESIZE] WINE_PACKED;
564 } ENUMLOGFONTEXW,*LPENUMLOGFONTEXW;
565
566 DECL_WINELIB_TYPE_AW(ENUMLOGFONT)
567 DECL_WINELIB_TYPE_AW(LPENUMLOGFONT)
568 DECL_WINELIB_TYPE_AW(LPENUMLOGFONTEX)
569
570 /*
571  * The FONTSIGNATURE tells which Unicode ranges and which code pages
572  * have glyphs in a font.
573  *
574  * fsUsb  128-bit bitmap. The most significant bits are 10 (magic number).
575  *        The remaining 126 bits map the Unicode ISO 10646 subranges
576  *        for which the font provides glyphs.
577  *
578  * fsCsb  64-bit bitmap. The low 32 bits map the Windows codepages for
579  *        which the font provides glyphs. The high 32 bits are for 
580  *        non Windows codepages.
581  */
582 typedef struct
583 {
584   DWORD fsUsb[4];
585   DWORD fsCsb[2];
586 } FONTSIGNATURE,*LPFONTSIGNATURE;
587
588 typedef struct 
589 {
590   UINT  ciCharset; /* character set */
591   UINT  ciACP; /* ANSI code page */
592   FONTSIGNATURE fs;
593 } CHARSETINFO,*LPCHARSETINFO;
594
595 /* Flags for TranslateCharsetInfo */
596 #define TCI_SRCCHARSET    1
597 #define TCI_SRCCODEPAGE   2
598 #define TCI_SRCFONTSIG    3
599
600 /* Flags for ModifyWorldTransform */
601 #define MWT_IDENTITY      1
602 #define MWT_LEFTMULTIPLY  2
603 #define MWT_RIGHTMULTIPLY 3
604
605 /* Object Definitions for EnumObjects() */
606 #define OBJ_PEN             1
607 #define OBJ_BRUSH           2
608 #define OBJ_DC              3
609 #define OBJ_METADC          4
610 #define OBJ_PAL             5
611 #define OBJ_FONT            6
612 #define OBJ_BITMAP          7
613 #define OBJ_REGION          8
614 #define OBJ_METAFILE        9
615 #define OBJ_MEMDC           10
616 #define OBJ_EXTPEN          11
617 #define OBJ_ENHMETADC       12
618 #define OBJ_ENHMETAFILE     13
619
620  
621 typedef struct
622 {
623     FLOAT  eM11;
624     FLOAT  eM12;
625     FLOAT  eM21;
626     FLOAT  eM22;
627     FLOAT  eDx;
628     FLOAT  eDy;
629 } XFORM, *LPXFORM;
630
631 typedef struct 
632 {
633     INT16  txfHeight;
634     INT16  txfWidth;
635     INT16  txfEscapement;
636     INT16  txfOrientation;
637     INT16  txfWeight;
638     CHAR   txfItalic;
639     CHAR   txfUnderline;
640     CHAR   txfStrikeOut;
641     CHAR   txfOutPrecision;
642     CHAR   txfClipPrecision;
643     INT16  txfAccelerator WINE_PACKED;
644     INT16  txfOverhang WINE_PACKED;
645 } TEXTXFORM16, *LPTEXTXFORM16;
646
647 typedef struct
648 {
649     INT16 dfType;
650     INT16 dfPoints;
651     INT16 dfVertRes;
652     INT16 dfHorizRes;
653     INT16 dfAscent;
654     INT16 dfInternalLeading;
655     INT16 dfExternalLeading;
656     CHAR  dfItalic;
657     CHAR  dfUnderline;
658     CHAR  dfStrikeOut;
659     INT16 dfWeight;
660     BYTE  dfCharSet;
661     INT16 dfPixWidth;
662     INT16 dfPixHeight;
663     CHAR  dfPitchAndFamily;
664     INT16 dfAvgWidth;
665     INT16 dfMaxWidth;
666     CHAR  dfFirstChar;
667     CHAR  dfLastChar;
668     CHAR  dfDefaultChar;
669     CHAR  dfBreakChar;
670     INT16 dfWidthBytes;
671     LONG  dfDevice;
672     LONG  dfFace;
673     LONG  dfBitsPointer;
674     LONG  dfBitsOffset;
675     CHAR  dfReserved;
676     LONG  dfFlags;
677     INT16 dfAspace;
678     INT16 dfBspace;
679     INT16 dfCspace;
680     LONG  dfColorPointer;
681     LONG  dfReserved1[4];
682 } FONTINFO16, *LPFONTINFO16;
683
684   /* lfWeight values */
685 #define FW_DONTCARE         0
686 #define FW_THIN             100
687 #define FW_EXTRALIGHT       200
688 #define FW_ULTRALIGHT       200
689 #define FW_LIGHT            300
690 #define FW_NORMAL           400
691 #define FW_REGULAR          400
692 #define FW_MEDIUM           500
693 #define FW_SEMIBOLD         600
694 #define FW_DEMIBOLD         600
695 #define FW_BOLD             700
696 #define FW_EXTRABOLD        800
697 #define FW_ULTRABOLD        800
698 #define FW_HEAVY            900
699 #define FW_BLACK            900
700
701   /* lfCharSet values */
702 #define ANSI_CHARSET          (BYTE)0   /* CP1252, ansi-0, iso8859-{1,15} */
703 #define DEFAULT_CHARSET       (BYTE)1
704 #define SYMBOL_CHARSET        (BYTE)2
705 #define SHIFTJIS_CHARSET      (BYTE)128 /* CP932 */
706 #define HANGEUL_CHARSET       (BYTE)129 /* CP949, ksc5601.1987-0 */
707 #define HANGUL_CHARSET        HANGEUL_CHARSET
708 #define GB2312_CHARSET        (BYTE)134 /* CP936, gb2312.1980-0 */
709 #define CHINESEBIG5_CHARSET   (BYTE)136 /* CP950, big5.et-0 */
710 #define GREEK_CHARSET         (BYTE)161 /* CP1253 */
711 #define TURKISH_CHARSET       (BYTE)162 /* CP1254, -iso8859-9 */
712 #define HEBREW_CHARSET        (BYTE)177 /* CP1255, -iso8859-8 */
713 #define ARABIC_CHARSET        (BYTE)178 /* CP1256, -iso8859-6 */
714 #define BALTIC_CHARSET        (BYTE)186 /* CP1257, -iso8859-10 */
715 #define RUSSIAN_CHARSET       (BYTE)204 /* CP1251, -iso8859-5 */
716 #define EE_CHARSET            (BYTE)238 /* CP1250, -iso8859-2 */
717 #define EASTEUROPE_CHARSET    EE_CHARSET
718 #define THAI_CHARSET          (BYTE)222 /* CP874, iso8859-11, tis620 */
719 #define JOHAB_CHARSET         (BYTE)130 /* korean (johab) CP1361 */
720 #define OEM_CHARSET           (BYTE)255
721 /* I don't know if the values of *_CHARSET macros are defined in Windows
722  * or if we can choose them as we want. -- srtxg
723  */
724 #define VISCII_CHARSET        (BYTE)240 /* viscii1.1-1 */
725 #define TCVN_CHARSET          (BYTE)241 /* tcvn-0 */
726 #define KOI8_CHARSET          (BYTE)242 /* koi8-{r,u,ru} */
727 #define ISO3_CHARSET          (BYTE)243 /* iso8859-3 */
728 #define ISO4_CHARSET          (BYTE)244 /* iso8859-4 */
729
730   /* lfOutPrecision values */
731 #define OUT_DEFAULT_PRECIS      0
732 #define OUT_STRING_PRECIS       1
733 #define OUT_CHARACTER_PRECIS    2
734 #define OUT_STROKE_PRECIS       3
735 #define OUT_TT_PRECIS           4
736 #define OUT_DEVICE_PRECIS       5
737 #define OUT_RASTER_PRECIS       6
738 #define OUT_TT_ONLY_PRECIS      7
739
740   /* lfClipPrecision values */
741 #define CLIP_DEFAULT_PRECIS     0x00
742 #define CLIP_CHARACTER_PRECIS   0x01
743 #define CLIP_STROKE_PRECIS      0x02
744 #define CLIP_MASK               0x0F
745 #define CLIP_LH_ANGLES          0x10
746 #define CLIP_TT_ALWAYS          0x20
747 #define CLIP_EMBEDDED           0x80
748
749   /* lfQuality values */
750 #define DEFAULT_QUALITY     0
751 #define DRAFT_QUALITY       1
752 #define PROOF_QUALITY       2
753
754   /* lfPitchAndFamily pitch values */
755 #define DEFAULT_PITCH       0x00
756 #define FIXED_PITCH         0x01
757 #define VARIABLE_PITCH      0x02
758 #define FF_DONTCARE         0x00
759 #define FF_ROMAN            0x10
760 #define FF_SWISS            0x20
761 #define FF_MODERN           0x30
762 #define FF_SCRIPT           0x40
763 #define FF_DECORATIVE       0x50
764
765 typedef struct
766 {
767     INT16     tmHeight;
768     INT16     tmAscent;
769     INT16     tmDescent;
770     INT16     tmInternalLeading;
771     INT16     tmExternalLeading;
772     INT16     tmAveCharWidth;
773     INT16     tmMaxCharWidth;
774     INT16     tmWeight;
775     BYTE      tmItalic;
776     BYTE      tmUnderlined;
777     BYTE      tmStruckOut;
778     BYTE      tmFirstChar;
779     BYTE      tmLastChar;
780     BYTE      tmDefaultChar;
781     BYTE      tmBreakChar;
782     BYTE      tmPitchAndFamily;
783     BYTE      tmCharSet;
784     INT16     tmOverhang WINE_PACKED;
785     INT16     tmDigitizedAspectX WINE_PACKED;
786     INT16     tmDigitizedAspectY WINE_PACKED;
787 } TEXTMETRIC16, *LPTEXTMETRIC16;
788
789 typedef struct
790 {
791     INT     tmHeight;
792     INT     tmAscent;
793     INT     tmDescent;
794     INT     tmInternalLeading;
795     INT     tmExternalLeading;
796     INT     tmAveCharWidth;
797     INT     tmMaxCharWidth;
798     INT     tmWeight;
799     INT     tmOverhang;
800     INT     tmDigitizedAspectX;
801     INT     tmDigitizedAspectY;
802     BYTE      tmFirstChar;
803     BYTE      tmLastChar;
804     BYTE      tmDefaultChar;
805     BYTE      tmBreakChar;
806     BYTE      tmItalic;
807     BYTE      tmUnderlined;
808     BYTE      tmStruckOut;
809     BYTE      tmPitchAndFamily;
810     BYTE      tmCharSet;
811 } TEXTMETRICA, *LPTEXTMETRICA;
812
813 typedef struct
814 {
815     INT     tmHeight;
816     INT     tmAscent;
817     INT     tmDescent;
818     INT     tmInternalLeading;
819     INT     tmExternalLeading;
820     INT     tmAveCharWidth;
821     INT     tmMaxCharWidth;
822     INT     tmWeight;
823     INT     tmOverhang;
824     INT     tmDigitizedAspectX;
825     INT     tmDigitizedAspectY;
826     WCHAR     tmFirstChar;
827     WCHAR     tmLastChar;
828     WCHAR     tmDefaultChar;
829     WCHAR     tmBreakChar;
830     BYTE      tmItalic;
831     BYTE      tmUnderlined;
832     BYTE      tmStruckOut;
833     BYTE      tmPitchAndFamily;
834     BYTE      tmCharSet;
835 } TEXTMETRICW, *LPTEXTMETRICW;
836
837 DECL_WINELIB_TYPE_AW(TEXTMETRIC)
838 DECL_WINELIB_TYPE_AW(LPTEXTMETRIC)
839
840
841 typedef struct tagPANOSE
842 {
843     BYTE bFamilyType;
844     BYTE bSerifStyle;
845     BYTE bWeight;
846     BYTE bProportion;
847     BYTE bContrast;
848     BYTE bStrokeVariation;
849     BYTE bArmStyle;
850     BYTE bLetterform;
851     BYTE bMidline;
852     BYTE bXHeight;
853 } PANOSE;
854
855 #define PAN_CULTURE_LATIN              0
856
857 #define PAN_ANY                        0
858 #define PAN_NO_FIT                     1
859
860 #define PAN_FAMILY_TEXT_DISPLAY        2
861 #define PAN_FAMILY_SCRIPT              3
862 #define PAN_FAMILY_DECORATIVE          4
863 #define PAN_FAMILY_PICTORIAL           5
864
865 #define PAN_SERIF_COVE                 2
866 #define PAN_SERIF_OBTUSE_COVE          3
867 #define PAN_SERIF_SQUARE_COVE          4
868 #define PAN_SERIF_OBTUSE_SQUARE_COVE   5
869 #define PAN_SERIF_SQUARE               6
870 #define PAN_SERIF_THIN                 7
871 #define PAN_SERIF_BONE                 8
872 #define PAN_SERIF_EXAGGERATED          9
873 #define PAN_SERIF_TRIANGLE             10
874 #define PAN_SERIF_NORMAL_SANS          11
875 #define PAN_SERIF_OBTUSE_SANS          12
876 #define PAN_SERIF_PERP_SANS            13
877 #define PAN_SERIF_FLARED               14
878 #define PAN_SERIF_ROUNDED              15
879
880 #define PAN_WEIGHT_VERY_LIGHT          2
881 #define PAN_WEIGHT_LIGHT               3
882 #define PAN_WEIGHT_THIN                4
883 #define PAN_WEIGHT_BOOK                5
884 #define PAN_WEIGHT_MEDIUM              6
885 #define PAN_WEIGHT_DEMI                7
886 #define PAN_WEIGHT_BOLD                8
887 #define PAN_WEIGHT_HEAVY               9
888 #define PAN_WEIGHT_BLACK               10
889 #define PAN_WEIGHT_NORD                11
890
891 #define PAN_PROP_OLD_STYLE             2
892 #define PAN_PROP_MODERN                3
893 #define PAN_PROP_EVEN_WIDTH            4
894 #define PAN_PROP_EXPANDED              5
895 #define PAN_PROP_CONDENSED             6
896 #define PAN_PROP_VERY_EXPANDED         7
897 #define PAN_PROP_VERY_CONDENSED        8
898 #define PAN_PROP_MONOSPACED            9
899
900 #define PAN_CONTRAST_NONE              2
901 #define PAN_CONTRAST_VERY_LOW          3
902 #define PAN_CONTRAST_LOW               4
903 #define PAN_CONTRAST_MEDIUM_LOW        5
904 #define PAN_CONTRAST_MEDIUM            6
905 #define PAN_CONTRAST_MEDIUM_HIGH       7
906 #define PAN_CONTRAST_HIGH              8
907 #define PAN_CONTRAST_VERY_HIGH         9
908
909 #define PAN_STROKE_GRADUAL_DIAG        2
910 #define PAN_STROKE_GRADUAL_TRAN        3
911 #define PAN_STROKE_GRADUAL_VERT        4
912 #define PAN_STROKE_GRADUAL_HORZ        5
913 #define PAN_STROKE_RAPID_VERT          6
914 #define PAN_STROKE_RAPID_HORZ          7
915 #define PAN_STROKE_INSTANT_VERT        8
916
917 #define PAN_STRAIGHT_ARMS_HORZ         2
918 #define PAN_STRAIGHT_ARMS_WEDGE        3
919 #define PAN_STRAIGHT_ARMS_VERT         4
920 #define PAN_STRAIGHT_ARMS_SINGLE_SERIF 5
921 #define PAN_STRAIGHT_ARMS_DOUBLE_SERIF 6
922 #define PAN_BENT_ARMS_HORZ             7
923 #define PAN_BENT_ARMS_WEDGE            8
924 #define PAN_BENT_ARMS_VERT             9
925 #define PAN_BENT_ARMS_SINGLE_SERIF     10
926 #define PAN_BENT_ARMS_DOUBLE_SERIF     11
927
928 #define PAN_LETT_NORMAL_COMPACT        2
929 #define PAN_LETT_NORMAL_WEIGHTED       3
930 #define PAN_LETT_NORMAL_BOXED          4
931 #define PAN_LETT_NORMAL_FLATTENED      5
932 #define PAN_LETT_NORMAL_ROUNDED        6
933 #define PAN_LETT_NORMAL_OFF_CENTER     7
934 #define PAN_LETT_NORMAL_SQUARE         8
935 #define PAN_LETT_OBLIQUE_COMPACT       9
936 #define PAN_LETT_OBLIQUE_WEIGHTED      10
937 #define PAN_LETT_OBLIQUE_BOXED         11
938 #define PAN_LETT_OBLIQUE_FLATTENED     12
939 #define PAN_LETT_OBLIQUE_ROUNDED       13
940 #define PAN_LETT_OBLIQUE_OFF_CENTER    14
941 #define PAN_LETT_OBLIQUE_SQUARE        15
942
943 #define PAN_MIDLINE_STANDARD_TRIMMED   2
944 #define PAN_MIDLINE_STANDARD_POINTED   3
945 #define PAN_MIDLINE_STANDARD_SERIFED   4
946 #define PAN_MIDLINE_HIGH_TRIMMED       5
947 #define PAN_MIDLINE_HIGH_POINTED       6
948 #define PAN_MIDLINE_HIGH_SERIFED       7
949 #define PAN_MIDLINE_CONSTANT_TRIMMED   8
950 #define PAN_MIDLINE_CONSTANT_POINTED   9
951 #define PAN_MIDLINE_CONSTANT_SERIFED   10
952 #define PAN_MIDLINE_LOW_TRIMMED        11
953 #define PAN_MIDLINE_LOW_POINTED        12
954 #define PAN_MIDLINE_LOW_SERIFED        13
955
956 #define PAN_XHEIGHT_CONSTANT_SMALL     2
957 #define PAN_XHEIGHT_CONSTANT_STANDARD  3
958 #define PAN_XHEIGHT_CONSTANT_LARGE     4
959 #define PAN_XHEIGHT_DUCKING_SMALL      5
960 #define PAN_XHEIGHT_DUCKING_STANDARD   6
961 #define PAN_XHEIGHT_DUCKING_LARGE      7
962
963 #define ELF_VENDOR_SIZE 4
964 typedef struct
965 {
966   LOGFONTA    elfLogFont;
967   BYTE        elfFullName[LF_FULLFACESIZE];
968   BYTE        elfStyle[LF_FACESIZE];
969   DWORD       elfVersion;
970   DWORD       elfStyleSize;
971   DWORD       elfMatch;
972   DWORD       elfReserved;
973   BYTE        elfVendorId[ELF_VENDOR_SIZE];
974   DWORD       elfCulture;
975   PANOSE      elfPanose;
976 } EXTLOGFONTA, *PEXTLOGFONTA;
977
978 typedef struct
979 {
980   LOGFONTW    elfLogFont;
981   WCHAR       elfFullName[LF_FULLFACESIZE];
982   WCHAR       elfStyle[LF_FACESIZE];
983   DWORD       elfVersion;
984   DWORD       elfStyleSize;
985   DWORD       elfMatch;
986   DWORD       elfReserved;
987   BYTE        elfVendorId[ELF_VENDOR_SIZE];
988   DWORD       elfCulture;
989   PANOSE      elfPanose;
990 } EXTLOGFONTW, *PEXTLOGFONTW;
991
992 DECL_WINELIB_TYPE_AW(EXTLOGFONT)
993 DECL_WINELIB_TYPE_AW(PEXTLOGFONT)
994
995 typedef struct _OUTLINETEXTMETRICA
996 {
997     UINT          otmSize;
998     TEXTMETRICA   otmTextMetrics;
999     BYTE            otmFilter;
1000     PANOSE          otmPanoseNumber;
1001     UINT          otmfsSelection;
1002     UINT          otmfsType;
1003     INT           otmsCharSlopeRise;
1004     INT           otmsCharSlopeRun;
1005     INT           otmItalicAngle;
1006     UINT          otmEMSquare;
1007     INT           otmAscent;
1008     INT           otmDescent;
1009     UINT          otmLineGap;
1010     UINT          otmsCapEmHeight;
1011     UINT          otmsXHeight;
1012     RECT          otmrcFontBox;
1013     INT           otmMacAscent;
1014     INT           otmMacDescent;
1015     UINT          otmMacLineGap;
1016     UINT          otmusMinimumPPEM;
1017     POINT         otmptSubscriptSize;
1018     POINT         otmptSubscriptOffset;
1019     POINT         otmptSuperscriptSize;
1020     POINT         otmptSuperscriptOffset;
1021     UINT          otmsStrikeoutSize;
1022     INT           otmsStrikeoutPosition;
1023     INT           otmsUnderscoreSize;
1024     INT           otmsUnderscorePosition;
1025     LPSTR           otmpFamilyName;
1026     LPSTR           otmpFaceName;
1027     LPSTR           otmpStyleName;
1028     LPSTR           otmpFullName;
1029 } OUTLINETEXTMETRICA, *LPOUTLINETEXTMETRICA;
1030
1031 typedef struct _OUTLINETEXTMETRICW
1032 {
1033     UINT          otmSize;
1034     TEXTMETRICW   otmTextMetrics;
1035     BYTE            otmFilter;
1036     PANOSE          otmPanoseNumber;
1037     UINT          otmfsSelection;
1038     UINT          otmfsType;
1039     INT           otmsCharSlopeRise;
1040     INT           otmsCharSlopeRun;
1041     INT           otmItalicAngle;
1042     UINT          otmEMSquare;
1043     INT           otmAscent;
1044     INT           otmDescent;
1045     UINT          otmLineGap;
1046     UINT          otmsCapEmHeight;
1047     UINT          otmsXHeight;
1048     RECT          otmrcFontBox;
1049     INT           otmMacAscent;
1050     INT           otmMacDescent;
1051     UINT          otmMacLineGap;
1052     UINT          otmusMinimumPPEM;
1053     POINT         otmptSubscriptSize;
1054     POINT         otmptSubscriptOffset;
1055     POINT         otmptSuperscriptSize;
1056     POINT         otmptSuperscriptOffset;
1057     UINT          otmsStrikeoutSize;
1058     INT           otmsStrikeoutPosition;
1059     INT           otmsUnderscoreSize;
1060     INT           otmsUnderscorePosition;
1061     LPSTR           otmpFamilyName;
1062     LPSTR           otmpFaceName;
1063     LPSTR           otmpStyleName;
1064     LPSTR           otmpFullName;
1065 } OUTLINETEXTMETRICW, *LPOUTLINETEXTMETRICW;
1066
1067 typedef struct _OUTLINETEXTMETRIC16
1068 {
1069     UINT16          otmSize;
1070     TEXTMETRIC16    otmTextMetrics;
1071     BYTE            otmFilter;
1072     PANOSE          otmPanoseNumber;
1073     UINT16          otmfsSelection;
1074     UINT16          otmfsType;
1075     INT16           otmsCharSlopeRise;
1076     INT16           otmsCharSlopeRun;
1077     INT16           otmItalicAngle;
1078     UINT16          otmEMSquare;
1079     INT16           otmAscent;
1080     INT16           otmDescent;
1081     UINT16          otmLineGap;
1082     UINT16          otmsCapEmHeight;
1083     UINT16          otmsXHeight;
1084     RECT16          otmrcFontBox;
1085     INT16           otmMacAscent;
1086     INT16           otmMacDescent;
1087     UINT16          otmMacLineGap;
1088     UINT16          otmusMinimumPPEM;
1089     POINT16         otmptSubscriptSize;
1090     POINT16         otmptSubscriptOffset;
1091     POINT16         otmptSuperscriptSize;
1092     POINT16         otmptSuperscriptOffset;
1093     UINT16          otmsStrikeoutSize;
1094     INT16           otmsStrikeoutPosition;
1095     INT16           otmsUnderscoreSize;
1096     INT           otmsUnderscorePosition;
1097     LPSTR           otmpFamilyName;
1098     LPSTR           otmpFaceName;
1099     LPSTR           otmpStyleName;
1100     LPSTR           otmpFullName;
1101 } OUTLINETEXTMETRIC16,*LPOUTLINETEXTMETRIC16;
1102
1103 DECL_WINELIB_TYPE_AW(OUTLINETEXTMETRIC)
1104 DECL_WINELIB_TYPE_AW(LPOUTLINETEXTMETRIC)
1105
1106
1107
1108 /* ntmFlags field flags */
1109 #define NTM_REGULAR     0x00000040L
1110 #define NTM_BOLD        0x00000020L
1111 #define NTM_ITALIC      0x00000001L
1112
1113 typedef struct
1114 {
1115     INT16     tmHeight;
1116     INT16     tmAscent;
1117     INT16     tmDescent;
1118     INT16     tmInternalLeading;
1119     INT16     tmExternalLeading;
1120     INT16     tmAveCharWidth;
1121     INT16     tmMaxCharWidth;
1122     INT16     tmWeight;
1123     BYTE      tmItalic;
1124     BYTE      tmUnderlined;
1125     BYTE      tmStruckOut;
1126     BYTE      tmFirstChar;
1127     BYTE      tmLastChar;
1128     BYTE      tmDefaultChar;
1129     BYTE      tmBreakChar;
1130     BYTE      tmPitchAndFamily;
1131     BYTE      tmCharSet;
1132     INT16     tmOverhang WINE_PACKED;
1133     INT16     tmDigitizedAspectX WINE_PACKED;
1134     INT16     tmDigitizedAspectY WINE_PACKED;
1135     DWORD     ntmFlags;
1136     UINT16    ntmSizeEM;
1137     UINT16    ntmCellHeight;
1138     UINT16    ntmAvgWidth;
1139 } NEWTEXTMETRIC16,*LPNEWTEXTMETRIC16;
1140
1141 typedef struct
1142 {
1143     INT     tmHeight;
1144     INT     tmAscent;
1145     INT     tmDescent;
1146     INT     tmInternalLeading;
1147     INT     tmExternalLeading;
1148     INT     tmAveCharWidth;
1149     INT     tmMaxCharWidth;
1150     INT     tmWeight;
1151     INT     tmOverhang;
1152     INT     tmDigitizedAspectX;
1153     INT     tmDigitizedAspectY;
1154     BYTE      tmFirstChar;
1155     BYTE      tmLastChar;
1156     BYTE      tmDefaultChar;
1157     BYTE      tmBreakChar;
1158     BYTE      tmItalic;
1159     BYTE      tmUnderlined;
1160     BYTE      tmStruckOut;
1161     BYTE      tmPitchAndFamily;
1162     BYTE      tmCharSet;
1163     DWORD     ntmFlags;
1164     UINT    ntmSizeEM;
1165     UINT    ntmCellHeight;
1166     UINT    ntmAvgWidth;
1167 } NEWTEXTMETRICA, *LPNEWTEXTMETRICA;
1168
1169 typedef struct
1170 {
1171     INT     tmHeight;
1172     INT     tmAscent;
1173     INT     tmDescent;
1174     INT     tmInternalLeading;
1175     INT     tmExternalLeading;
1176     INT     tmAveCharWidth;
1177     INT     tmMaxCharWidth;
1178     INT     tmWeight;
1179     INT     tmOverhang;
1180     INT     tmDigitizedAspectX;
1181     INT     tmDigitizedAspectY;
1182     WCHAR     tmFirstChar;
1183     WCHAR     tmLastChar;
1184     WCHAR     tmDefaultChar;
1185     WCHAR     tmBreakChar;
1186     BYTE      tmItalic;
1187     BYTE      tmUnderlined;
1188     BYTE      tmStruckOut;
1189     BYTE      tmPitchAndFamily;
1190     BYTE      tmCharSet;
1191     DWORD     ntmFlags;
1192     UINT    ntmSizeEM;
1193     UINT    ntmCellHeight;
1194     UINT    ntmAvgWidth;
1195 } NEWTEXTMETRICW, *LPNEWTEXTMETRICW;
1196
1197 DECL_WINELIB_TYPE_AW(NEWTEXTMETRIC)
1198 DECL_WINELIB_TYPE_AW(LPNEWTEXTMETRIC)
1199
1200 typedef struct
1201 {
1202     NEWTEXTMETRIC16     ntmetm;
1203     FONTSIGNATURE       ntmeFontSignature;
1204 } NEWTEXTMETRICEX16,*LPNEWTEXTMETRICEX16;
1205
1206 typedef struct
1207 {
1208     NEWTEXTMETRICA      ntmetm;
1209     FONTSIGNATURE       ntmeFontSignature;
1210 } NEWTEXTMETRICEXA,*LPNEWTEXTMETRICEXA;
1211
1212 typedef struct
1213 {
1214     NEWTEXTMETRICW      ntmetm;
1215     FONTSIGNATURE       ntmeFontSignature;
1216 } NEWTEXTMETRICEXW,*LPNEWTEXTMETRICEXW;
1217
1218 DECL_WINELIB_TYPE_AW(NEWTEXTMETRICEX)
1219 DECL_WINELIB_TYPE_AW(LPNEWTEXTMETRICEX)
1220
1221
1222 typedef INT16 (CALLBACK *FONTENUMPROC16)(SEGPTR,SEGPTR,UINT16,LPARAM);
1223 typedef INT (CALLBACK *FONTENUMPROCA)(LPENUMLOGFONTA,LPNEWTEXTMETRICA,
1224                                           UINT,LPARAM);
1225 typedef INT (CALLBACK *FONTENUMPROCW)(LPENUMLOGFONTW,LPNEWTEXTMETRICW,
1226                                           UINT,LPARAM);
1227 DECL_WINELIB_TYPE_AW(FONTENUMPROC)
1228
1229 typedef INT16 (CALLBACK *FONTENUMPROCEX16)(SEGPTR,SEGPTR,UINT16,LPARAM);
1230 typedef INT (CALLBACK *FONTENUMPROCEXA)(LPENUMLOGFONTEXA,LPNEWTEXTMETRICEXA,UINT,LPARAM);
1231 typedef INT (CALLBACK *FONTENUMPROCEXW)(LPENUMLOGFONTEXW,LPNEWTEXTMETRICEXW,UINT,LPARAM);
1232 DECL_WINELIB_TYPE_AW(FONTENUMPROCEX)
1233
1234   /* tmPitchAndFamily bits */
1235 #define TMPF_FIXED_PITCH    1           /* means variable pitch */
1236 #define TMPF_VECTOR         2
1237 #define TMPF_TRUETYPE       4
1238 #define TMPF_DEVICE         8
1239
1240   /* Text alignment */
1241 #define TA_NOUPDATECP       0x00
1242 #define TA_UPDATECP         0x01
1243 #define TA_LEFT             0x00
1244 #define TA_RIGHT            0x02
1245 #define TA_CENTER           0x06
1246 #define TA_TOP              0x00
1247 #define TA_BOTTOM           0x08
1248 #define TA_BASELINE         0x18
1249
1250   /* ExtTextOut() parameters */
1251 #define ETO_GRAYED          0x01
1252 #define ETO_OPAQUE          0x02
1253 #define ETO_CLIPPED         0x04
1254
1255 typedef struct
1256 {
1257     UINT16      gmBlackBoxX;
1258     UINT16      gmBlackBoxY;
1259     POINT16     gmptGlyphOrigin;
1260     INT16       gmCellIncX;
1261     INT16       gmCellIncY;
1262 } GLYPHMETRICS16, *LPGLYPHMETRICS16;
1263
1264 typedef struct
1265 {
1266     UINT        gmBlackBoxX;
1267     UINT        gmBlackBoxY;
1268     POINT       gmptGlyphOrigin;
1269     INT16       gmCellIncX;
1270     INT16       gmCellIncY;
1271 } GLYPHMETRICS, *LPGLYPHMETRICS;
1272
1273
1274 #define GGO_METRICS         0
1275 #define GGO_BITMAP          1
1276 #define GGO_NATIVE          2
1277
1278 typedef struct
1279 {
1280     UINT16  fract;
1281     INT16   value;
1282 } FIXED;
1283
1284 typedef struct tagPOINTFX
1285 {
1286         FIXED x;
1287         FIXED y;
1288 } POINTFX, *LPPOINTFX;
1289
1290 typedef struct tagTTPOLYCURVE
1291 {
1292         WORD wType;
1293         WORD cpfx;
1294         POINTFX apfx[1];
1295 } TTPOLYCURVE, *LPTTPOLYCURVE;
1296
1297 typedef struct tagTTPOLYGONHEADER
1298 {
1299         DWORD cb;
1300         DWORD dwType;
1301         POINTFX pfxStart;
1302 } TTPOLYGONHEADER, *LPTTPOLYGONHEADER;
1303
1304 typedef struct
1305 {
1306      FIXED  eM11;
1307      FIXED  eM12;
1308      FIXED  eM21;
1309      FIXED  eM22;
1310 } MAT2, *LPMAT2;
1311
1312   /* for GetCharABCWidths() */
1313 typedef struct
1314 {
1315     INT16   abcA;
1316     UINT16  abcB;
1317     INT16   abcC;
1318 } ABC16, *LPABC16;
1319
1320 typedef struct
1321 {
1322     INT   abcA;
1323     UINT  abcB;
1324     INT   abcC;
1325 } ABC, *LPABC;
1326
1327
1328   /* for GetCharacterPlacement () */
1329 typedef struct tagGCP_RESULTSA
1330 {
1331     DWORD  lStructSize;
1332     LPSTR  lpOutString;
1333     UINT *lpOrder;
1334     INT  *lpDx;
1335     INT  *lpCaretPos;
1336     LPSTR  lpClass;
1337     UINT *lpGlyphs;
1338     UINT nGlyphs;
1339     UINT nMaxFit;
1340 } GCP_RESULTSA;
1341
1342 typedef struct tagGCP_RESULTSW
1343 {
1344     DWORD  lStructSize;
1345     LPWSTR lpOutString;
1346     UINT *lpOrder;
1347     INT  *lpDx;
1348     INT  *lpCaretPos;
1349     LPWSTR lpClass;
1350     UINT *lpGlyphs;
1351     UINT nGlyphs;
1352     UINT nMaxFit;
1353 } GCP_RESULTSW;
1354
1355 DECL_WINELIB_TYPE_AW(GCP_RESULTS)
1356
1357   /* Rasterizer status */
1358 typedef struct
1359 {
1360     INT16 nSize;
1361     INT16 wFlags;
1362     INT16 nLanguageID;
1363 } RASTERIZER_STATUS, *LPRASTERIZER_STATUS;
1364
1365 #define TT_AVAILABLE        0x0001
1366 #define TT_ENABLED          0x0002
1367
1368 /* Get/SetSystemPaletteUse() values */
1369 #define SYSPAL_STATIC   1
1370 #define SYSPAL_NOSTATIC 2
1371
1372 typedef struct tagPALETTEENTRY
1373 {
1374         BYTE peRed, peGreen, peBlue, peFlags;
1375 } PALETTEENTRY, *PPALETTEENTRY, *LPPALETTEENTRY;
1376
1377 /* Logical palette entry flags */
1378 #define PC_RESERVED     0x01
1379 #define PC_EXPLICIT     0x02
1380 #define PC_NOCOLLAPSE   0x04
1381
1382 typedef struct
1383
1384     WORD           palVersion;
1385     WORD           palNumEntries;
1386     PALETTEENTRY   palPalEntry[1] WINE_PACKED;
1387 } LOGPALETTE, *PLOGPALETTE, *LPLOGPALETTE;
1388
1389   /* Pens */
1390
1391 typedef struct
1392 {
1393     UINT16   lopnStyle; 
1394     POINT16  lopnWidth WINE_PACKED;
1395     COLORREF lopnColor WINE_PACKED;
1396 } LOGPEN16, *LPLOGPEN16;
1397
1398 typedef struct
1399 {
1400     UINT   lopnStyle; 
1401     POINT  lopnWidth WINE_PACKED;
1402     COLORREF lopnColor WINE_PACKED;
1403 } LOGPEN, *LPLOGPEN;
1404
1405
1406 typedef struct tagEXTLOGPEN
1407 {
1408         DWORD elpPenStyle;
1409         DWORD elpWidth;
1410         DWORD elpBrushStyle;
1411         DWORD elpColor;
1412         DWORD elpNumEntries;
1413         DWORD elpStyleEntry[1];
1414 } EXTLOGPEN, *PEXTLOGPEN, *NPEXTLOGPEN, *LPEXTLOGPEN;
1415
1416 #define PS_SOLID         0x00000000
1417 #define PS_DASH          0x00000001
1418 #define PS_DOT           0x00000002
1419 #define PS_DASHDOT       0x00000003
1420 #define PS_DASHDOTDOT    0x00000004
1421 #define PS_NULL          0x00000005
1422 #define PS_INSIDEFRAME   0x00000006
1423 #define PS_USERSTYLE     0x00000007
1424 #define PS_ALTERNATE     0x00000008
1425 #define PS_STYLE_MASK    0x0000000f
1426
1427 #define PS_ENDCAP_ROUND  0x00000000
1428 #define PS_ENDCAP_SQUARE 0x00000100
1429 #define PS_ENDCAP_FLAT   0x00000200
1430 #define PS_ENDCAP_MASK   0x00000f00
1431
1432 #define PS_JOIN_ROUND    0x00000000
1433 #define PS_JOIN_BEVEL    0x00001000
1434 #define PS_JOIN_MITER    0x00002000
1435 #define PS_JOIN_MASK     0x0000f000
1436
1437 #define PS_COSMETIC      0x00000000
1438 #define PS_GEOMETRIC     0x00010000
1439 #define PS_TYPE_MASK     0x000f0000
1440
1441   /* Regions */
1442
1443 #define ERROR             0
1444 #define NULLREGION        1
1445 #define SIMPLEREGION      2
1446 #define COMPLEXREGION     3
1447
1448 #define RGN_AND           1
1449 #define RGN_OR            2
1450 #define RGN_XOR           3
1451 #define RGN_DIFF          4
1452 #define RGN_COPY          5
1453
1454   /* Device contexts */
1455
1456 /* GetDCEx flags */
1457 #define DCX_WINDOW           0x00000001
1458 #define DCX_CACHE            0x00000002
1459 #define DCX_CLIPCHILDREN     0x00000008
1460 #define DCX_CLIPSIBLINGS     0x00000010
1461 #define DCX_PARENTCLIP       0x00000020
1462 #define DCX_EXCLUDERGN       0x00000040
1463 #define DCX_INTERSECTRGN     0x00000080
1464 #define DCX_LOCKWINDOWUPDATE 0x00000400
1465 #define DCX_USESTYLE         0x00010000
1466
1467   /* Polygon modes */
1468 #define ALTERNATE         1
1469 #define WINDING           2
1470
1471   /* Background modes */
1472 #ifdef TRANSPARENT  /*Apparently some broken svr4 includes define TRANSPARENT*/
1473 #undef TRANSPARENT
1474 #endif
1475 #define TRANSPARENT       1
1476 #define OPAQUE            2
1477
1478
1479   /* Graphics Modes */
1480 #define GM_COMPATIBLE     1
1481 #define GM_ADVANCED       2
1482 #define GM_LAST           2
1483
1484   /* Arc direction modes */
1485 #define AD_COUNTERCLOCKWISE 1
1486 #define AD_CLOCKWISE        2
1487
1488   /* Map modes */
1489 #define MM_TEXT           1
1490 #define MM_LOMETRIC       2
1491 #define MM_HIMETRIC       3
1492 #define MM_LOENGLISH      4
1493 #define MM_HIENGLISH      5
1494 #define MM_TWIPS          6
1495 #define MM_ISOTROPIC      7
1496 #define MM_ANISOTROPIC    8
1497
1498   /* Coordinate modes */
1499 #define ABSOLUTE          1
1500 #define RELATIVE          2
1501
1502   /* Flood fill modes */
1503 #define FLOODFILLBORDER   0
1504 #define FLOODFILLSURFACE  1
1505
1506   /* Device parameters for GetDeviceCaps() */
1507 #define DRIVERVERSION     0
1508 #define TECHNOLOGY        2
1509 #define HORZSIZE          4
1510 #define VERTSIZE          6
1511 #define HORZRES           8
1512 #define VERTRES           10
1513 #define BITSPIXEL         12
1514 #define PLANES            14
1515 #define NUMBRUSHES        16
1516 #define NUMPENS           18
1517 #define NUMMARKERS        20
1518 #define NUMFONTS          22
1519 #define NUMCOLORS         24
1520 #define PDEVICESIZE       26
1521 #define CURVECAPS         28
1522 #define LINECAPS          30
1523 #define POLYGONALCAPS     32
1524 #define TEXTCAPS          34
1525 #define CLIPCAPS          36
1526 #define RASTERCAPS        38
1527 #define ASPECTX           40
1528 #define ASPECTY           42
1529 #define ASPECTXY          44
1530 #define LOGPIXELSX        88
1531 #define LOGPIXELSY        90
1532 #define SIZEPALETTE       104
1533 #define NUMRESERVED       106
1534 #define COLORRES          108
1535
1536 /* TECHNOLOGY */
1537 #define DT_PLOTTER        0
1538 #define DT_RASDISPLAY     1
1539 #define DT_RASPRINTER     2
1540 #define DT_RASCAMERA      3
1541 #define DT_CHARSTREAM     4
1542 #define DT_METAFILE       5
1543 #define DT_DISPFILE       6
1544
1545 /* CURVECAPS */
1546 #define CC_NONE           0x0000
1547 #define CC_CIRCLES        0x0001
1548 #define CC_PIE            0x0002
1549 #define CC_CHORD          0x0004
1550 #define CC_ELLIPSES       0x0008
1551 #define CC_WIDE           0x0010
1552 #define CC_STYLED         0x0020
1553 #define CC_WIDESTYLED     0x0040
1554 #define CC_INTERIORS      0x0080
1555 #define CC_ROUNDRECT      0x0100
1556
1557 /* LINECAPS */
1558 #define LC_NONE           0x0000
1559 #define LC_POLYLINE       0x0002
1560 #define LC_MARKER         0x0004
1561 #define LC_POLYMARKER     0x0008
1562 #define LC_WIDE           0x0010
1563 #define LC_STYLED         0x0020
1564 #define LC_WIDESTYLED     0x0040
1565 #define LC_INTERIORS      0x0080
1566
1567 /* POLYGONALCAPS */
1568 #define PC_NONE           0x0000
1569 #define PC_POLYGON        0x0001
1570 #define PC_RECTANGLE      0x0002
1571 #define PC_WINDPOLYGON    0x0004
1572 #define PC_SCANLINE       0x0008
1573 #define PC_WIDE           0x0010
1574 #define PC_STYLED         0x0020
1575 #define PC_WIDESTYLED     0x0040
1576 #define PC_INTERIORS      0x0080
1577
1578 /* TEXTCAPS */
1579 #define TC_OP_CHARACTER   0x0001
1580 #define TC_OP_STROKE      0x0002
1581 #define TC_CP_STROKE      0x0004
1582 #define TC_CR_90          0x0008
1583 #define TC_CR_ANY         0x0010
1584 #define TC_SF_X_YINDEP    0x0020
1585 #define TC_SA_DOUBLE      0x0040
1586 #define TC_SA_INTEGER     0x0080
1587 #define TC_SA_CONTIN      0x0100
1588 #define TC_EA_DOUBLE      0x0200
1589 #define TC_IA_ABLE        0x0400
1590 #define TC_UA_ABLE        0x0800
1591 #define TC_SO_ABLE        0x1000
1592 #define TC_RA_ABLE        0x2000
1593 #define TC_VA_ABLE        0x4000
1594 #define TC_RESERVED       0x8000
1595
1596 /* CLIPCAPS */
1597 #define CP_NONE           0x0000
1598 #define CP_RECTANGLE      0x0001
1599 #define CP_REGION         0x0002
1600
1601 /* RASTERCAPS */
1602 #define RC_NONE           0x0000
1603 #define RC_BITBLT         0x0001
1604 #define RC_BANDING        0x0002
1605 #define RC_SCALING        0x0004
1606 #define RC_BITMAP64       0x0008
1607 #define RC_GDI20_OUTPUT   0x0010
1608 #define RC_GDI20_STATE    0x0020
1609 #define RC_SAVEBITMAP     0x0040
1610 #define RC_DI_BITMAP      0x0080
1611 #define RC_PALETTE        0x0100
1612 #define RC_DIBTODEV       0x0200
1613 #define RC_BIGFONT        0x0400
1614 #define RC_STRETCHBLT     0x0800
1615 #define RC_FLOODFILL      0x1000
1616 #define RC_STRETCHDIB     0x2000
1617 #define RC_OP_DX_OUTPUT   0x4000
1618 #define RC_DEVBITS        0x8000
1619
1620   /* GetSystemMetrics() codes */
1621 #define SM_CXSCREEN            0
1622 #define SM_CYSCREEN            1
1623 #define SM_CXVSCROLL           2
1624 #define SM_CYHSCROLL           3
1625 #define SM_CYCAPTION           4
1626 #define SM_CXBORDER            5
1627 #define SM_CYBORDER            6
1628 #define SM_CXDLGFRAME          7
1629 #define SM_CYDLGFRAME          8
1630 #define SM_CYVTHUMB            9
1631 #define SM_CXHTHUMB           10
1632 #define SM_CXICON             11
1633 #define SM_CYICON             12
1634 #define SM_CXCURSOR           13
1635 #define SM_CYCURSOR           14
1636 #define SM_CYMENU             15
1637 #define SM_CXFULLSCREEN       16
1638 #define SM_CYFULLSCREEN       17
1639 #define SM_CYKANJIWINDOW      18
1640 #define SM_MOUSEPRESENT       19
1641 #define SM_CYVSCROLL          20
1642 #define SM_CXHSCROLL          21
1643 #define SM_DEBUG              22
1644 #define SM_SWAPBUTTON         23
1645 #define SM_RESERVED1          24
1646 #define SM_RESERVED2          25
1647 #define SM_RESERVED3          26
1648 #define SM_RESERVED4          27
1649 #define SM_CXMIN              28
1650 #define SM_CYMIN              29
1651 #define SM_CXSIZE             30
1652 #define SM_CYSIZE             31
1653 #define SM_CXFRAME            32
1654 #define SM_CYFRAME            33
1655 #define SM_CXMINTRACK         34
1656 #define SM_CYMINTRACK         35
1657 #define SM_CXDOUBLECLK        36
1658 #define SM_CYDOUBLECLK        37
1659 #define SM_CXICONSPACING      38
1660 #define SM_CYICONSPACING      39
1661 #define SM_MENUDROPALIGNMENT  40
1662 #define SM_PENWINDOWS         41
1663 #define SM_DBCSENABLED        42
1664 #define SM_CMOUSEBUTTONS      43
1665 #define SM_CXFIXEDFRAME       SM_CXDLGFRAME
1666 #define SM_CYFIXEDFRAME       SM_CYDLGFRAME
1667 #define SM_CXSIZEFRAME        SM_CXFRAME
1668 #define SM_CYSIZEFRAME        SM_CYFRAME
1669 #define SM_SECURE             44
1670 #define SM_CXEDGE             45
1671 #define SM_CYEDGE             46
1672 #define SM_CXMINSPACING       47
1673 #define SM_CYMINSPACING       48
1674 #define SM_CXSMICON           49
1675 #define SM_CYSMICON           50
1676 #define SM_CYSMCAPTION        51
1677 #define SM_CXSMSIZE           52
1678 #define SM_CYSMSIZE           53
1679 #define SM_CXMENUSIZE         54
1680 #define SM_CYMENUSIZE         55
1681 #define SM_ARRANGE            56
1682 #define SM_CXMINIMIZED        57
1683 #define SM_CYMINIMIZED        58
1684 #define SM_CXMAXTRACK         59
1685 #define SM_CYMAXTRACK         60
1686 #define SM_CXMAXIMIZED        61
1687 #define SM_CYMAXIMIZED        62
1688 #define SM_NETWORK            63
1689 #define SM_CLEANBOOT          67
1690 #define SM_CXDRAG             68
1691 #define SM_CYDRAG             69
1692 #define SM_SHOWSOUNDS         70
1693 #define SM_CXMENUCHECK        71
1694 #define SM_CYMENUCHECK        72
1695 #define SM_SLOWMACHINE        73
1696 #define SM_MIDEASTENABLED     74
1697 #define SM_MOUSEWHEELPRESENT  75
1698 #define SM_XVIRTUALSCREEN     76
1699 #define SM_YVIRTUALSCREEN     77
1700 #define SM_CXVIRTUALSCREEN    78
1701 #define SM_CYVIRTUALSCREEN    79
1702 #define SM_CMONITORS          80
1703 #define SM_SAMEDISPLAYFORMAT  81
1704 #define SM_CMETRICS           83
1705
1706
1707   /* Device-independent bitmaps */
1708
1709 typedef struct {
1710   BYTE rgbBlue;
1711   BYTE rgbGreen;
1712   BYTE rgbRed;
1713   BYTE rgbReserved;
1714 } RGBQUAD, *LPRGBQUAD;
1715
1716 typedef struct {
1717   BYTE rgbtBlue;
1718   BYTE rgbtGreen;
1719   BYTE rgbtRed;
1720 } RGBTRIPLE;
1721
1722 typedef struct
1723 {
1724     UINT16  bfType;
1725     DWORD   bfSize WINE_PACKED;
1726     UINT16  bfReserved1 WINE_PACKED;
1727     UINT16  bfReserved2 WINE_PACKED;
1728     DWORD   bfOffBits WINE_PACKED;
1729 } BITMAPFILEHEADER;
1730
1731 typedef struct
1732 {
1733     DWORD       biSize;
1734     LONG        biWidth;
1735     LONG        biHeight;
1736     WORD        biPlanes;
1737     WORD        biBitCount;
1738     DWORD       biCompression;
1739     DWORD       biSizeImage;
1740     LONG        biXPelsPerMeter;
1741     LONG        biYPelsPerMeter;
1742     DWORD       biClrUsed;
1743     DWORD       biClrImportant;
1744 } BITMAPINFOHEADER, *PBITMAPINFOHEADER, *LPBITMAPINFOHEADER;
1745
1746   /* biCompression */
1747 #define BI_RGB           0
1748 #define BI_RLE8          1
1749 #define BI_RLE4          2
1750
1751 typedef struct {
1752         BITMAPINFOHEADER bmiHeader;
1753         RGBQUAD bmiColors[1];
1754 } BITMAPINFO;
1755 typedef BITMAPINFO *LPBITMAPINFO;
1756 typedef BITMAPINFO *NPBITMAPINFO;
1757 typedef BITMAPINFO *PBITMAPINFO;
1758
1759 typedef struct
1760 {
1761     DWORD   bcSize;
1762     UINT16  bcWidth;
1763     UINT16  bcHeight;
1764     UINT16  bcPlanes;
1765     UINT16  bcBitCount;
1766 } BITMAPCOREHEADER;
1767
1768 typedef struct
1769 {
1770     BITMAPCOREHEADER bmciHeader;
1771     RGBTRIPLE        bmciColors[1];
1772 } BITMAPCOREINFO, *LPBITMAPCOREINFO;
1773
1774 #define DIB_RGB_COLORS   0
1775 #define DIB_PAL_COLORS   1
1776 #define CBM_INIT         4
1777
1778 typedef struct 
1779 {
1780         BITMAP          dsBm;
1781         BITMAPINFOHEADER        dsBmih;
1782         DWORD                   dsBitfields[3];
1783         HANDLE          dshSection;
1784         DWORD                   dsOffset;
1785 } DIBSECTION,*LPDIBSECTION;
1786
1787   /* Stock GDI objects for GetStockObject() */
1788
1789 #define WHITE_BRUSH         0
1790 #define LTGRAY_BRUSH        1
1791 #define GRAY_BRUSH          2
1792 #define DKGRAY_BRUSH        3
1793 #define BLACK_BRUSH         4
1794 #define NULL_BRUSH          5
1795 #define HOLLOW_BRUSH        5
1796 #define WHITE_PEN           6
1797 #define BLACK_PEN           7
1798 #define NULL_PEN            8
1799 #define OEM_FIXED_FONT      10
1800 #define ANSI_FIXED_FONT     11
1801 #define ANSI_VAR_FONT       12
1802 #define SYSTEM_FONT         13
1803 #define DEVICE_DEFAULT_FONT 14
1804 #define DEFAULT_PALETTE     15
1805 #define SYSTEM_FIXED_FONT   16
1806 #define DEFAULT_GUI_FONT    17
1807
1808 #define STOCK_LAST          17
1809
1810 /* Metafile header structure */
1811 typedef struct
1812 {
1813     WORD       mtType;
1814     WORD       mtHeaderSize;
1815     WORD       mtVersion;
1816     DWORD      mtSize WINE_PACKED;
1817     WORD       mtNoObjects;
1818     DWORD      mtMaxRecord WINE_PACKED;
1819     WORD       mtNoParameters;
1820 } METAHEADER;
1821
1822 /* Metafile typical record structure */
1823 typedef struct
1824 {
1825     DWORD      rdSize;
1826     WORD       rdFunction;
1827     WORD       rdParm[1];
1828 } METARECORD;
1829 typedef METARECORD *PMETARECORD;
1830 typedef METARECORD *LPMETARECORD;
1831
1832 /* Handle table structure */
1833
1834 typedef struct
1835 {
1836     HGDIOBJ16 objectHandle[1];
1837 } HANDLETABLE16, *LPHANDLETABLE16;
1838
1839 typedef struct
1840 {
1841     HGDIOBJ objectHandle[1];
1842 } HANDLETABLE, *LPHANDLETABLE;
1843
1844
1845 /* Clipboard metafile picture structure */
1846 typedef struct
1847 {
1848     INT16        mm;
1849     INT16        xExt;
1850     INT16        yExt;
1851     HMETAFILE16  hMF;
1852 } METAFILEPICT16, *LPMETAFILEPICT16;
1853
1854 typedef struct
1855 {
1856     INT        mm;
1857     INT        xExt;
1858     INT        yExt;
1859     HMETAFILE  hMF;
1860 } METAFILEPICT, *LPMETAFILEPICT;
1861
1862
1863 /* Metafile functions */
1864 #define META_SETBKCOLOR              0x0201
1865 #define META_SETBKMODE               0x0102
1866 #define META_SETMAPMODE              0x0103
1867 #define META_SETROP2                 0x0104
1868 #define META_SETRELABS               0x0105
1869 #define META_SETPOLYFILLMODE         0x0106
1870 #define META_SETSTRETCHBLTMODE       0x0107
1871 #define META_SETTEXTCHAREXTRA        0x0108
1872 #define META_SETTEXTCOLOR            0x0209
1873 #define META_SETTEXTJUSTIFICATION    0x020A
1874 #define META_SETWINDOWORG            0x020B
1875 #define META_SETWINDOWEXT            0x020C
1876 #define META_SETVIEWPORTORG          0x020D
1877 #define META_SETVIEWPORTEXT          0x020E
1878 #define META_OFFSETWINDOWORG         0x020F
1879 #define META_SCALEWINDOWEXT          0x0410
1880 #define META_OFFSETVIEWPORTORG       0x0211
1881 #define META_SCALEVIEWPORTEXT        0x0412
1882 #define META_LINETO                  0x0213
1883 #define META_MOVETO                  0x0214
1884 #define META_EXCLUDECLIPRECT         0x0415
1885 #define META_INTERSECTCLIPRECT       0x0416
1886 #define META_ARC                     0x0817
1887 #define META_ELLIPSE                 0x0418
1888 #define META_FLOODFILL               0x0419
1889 #define META_PIE                     0x081A
1890 #define META_RECTANGLE               0x041B
1891 #define META_ROUNDRECT               0x061C
1892 #define META_PATBLT                  0x061D
1893 #define META_SAVEDC                  0x001E
1894 #define META_SETPIXEL                0x041F
1895 #define META_OFFSETCLIPRGN           0x0220
1896 #define META_TEXTOUT                 0x0521
1897 #define META_BITBLT                  0x0922
1898 #define META_STRETCHBLT              0x0B23
1899 #define META_POLYGON                 0x0324
1900 #define META_POLYLINE                0x0325
1901 #define META_ESCAPE                  0x0626
1902 #define META_RESTOREDC               0x0127
1903 #define META_FILLREGION              0x0228
1904 #define META_FRAMEREGION             0x0429
1905 #define META_INVERTREGION            0x012A
1906 #define META_PAINTREGION             0x012B
1907 #define META_SELECTCLIPREGION        0x012C
1908 #define META_SELECTOBJECT            0x012D
1909 #define META_SETTEXTALIGN            0x012E
1910 #define META_DRAWTEXT                0x062F
1911 #define META_CHORD                   0x0830
1912 #define META_SETMAPPERFLAGS          0x0231
1913 #define META_EXTTEXTOUT              0x0A32
1914 #define META_SETDIBTODEV             0x0D33
1915 #define META_SELECTPALETTE           0x0234
1916 #define META_REALIZEPALETTE          0x0035
1917 #define META_ANIMATEPALETTE          0x0436
1918 #define META_SETPALENTRIES           0x0037
1919 #define META_POLYPOLYGON             0x0538
1920 #define META_RESIZEPALETTE           0x0139
1921 #define META_DIBBITBLT               0x0940
1922 #define META_DIBSTRETCHBLT           0x0B41
1923 #define META_DIBCREATEPATTERNBRUSH   0x0142
1924 #define META_STRETCHDIB              0x0F43
1925 #define META_EXTFLOODFILL            0x0548
1926 #define META_RESETDC                 0x014C
1927 #define META_STARTDOC                0x014D
1928 #define META_STARTPAGE               0x004F
1929 #define META_ENDPAGE                 0x0050
1930 #define META_ABORTDOC                0x0052
1931 #define META_ENDDOC                  0x005E
1932 #define META_DELETEOBJECT            0x01F0
1933 #define META_CREATEPALETTE           0x00F7
1934 #define META_CREATEBRUSH             0x00F8
1935 #define META_CREATEPATTERNBRUSH      0x01F9
1936 #define META_CREATEPENINDIRECT       0x02FA
1937 #define META_CREATEFONTINDIRECT      0x02FB
1938 #define META_CREATEBRUSHINDIRECT     0x02FC
1939 #define META_CREATEBITMAPINDIRECT    0x02FD
1940 #define META_CREATEBITMAP            0x06FE
1941 #define META_CREATEREGION            0x06FF
1942 #define META_UNKNOWN                 0x0529  /* FIXME: unknown meta magic */
1943
1944 typedef INT16 (CALLBACK *MFENUMPROC16)(HDC16,HANDLETABLE16*,METARECORD*,
1945                                        INT16,LPARAM);
1946 typedef INT (CALLBACK *MFENUMPROC)(HDC,HANDLETABLE*,METARECORD*,
1947                                        INT,LPARAM);
1948
1949 /* enhanced metafile structures and functions */
1950
1951 /* note that ENHMETAHEADER is just a particular kind of ENHMETARECORD,
1952    ie. the header is just the first record in the metafile */
1953 typedef struct {
1954     DWORD iType; 
1955     DWORD nSize; 
1956     RECTL rclBounds; 
1957     RECTL rclFrame; 
1958     DWORD dSignature; 
1959     DWORD nVersion; 
1960     DWORD nBytes; 
1961     DWORD nRecords; 
1962     WORD  nHandles; 
1963     WORD  sReserved; 
1964     DWORD nDescription; 
1965     DWORD offDescription; 
1966     DWORD nPalEntries; 
1967     SIZEL szlDevice; 
1968     SIZEL szlMillimeters;
1969     DWORD cbPixelFormat;
1970     DWORD offPixelFormat;
1971     DWORD bOpenGL;
1972 } ENHMETAHEADER, *LPENHMETAHEADER; 
1973
1974 typedef struct {
1975     DWORD iType; 
1976     DWORD nSize; 
1977     DWORD dParm[1]; 
1978 } ENHMETARECORD, *LPENHMETARECORD; 
1979
1980 typedef struct {
1981     DWORD iType;
1982     DWORD nSize;
1983 } EMR, *PEMR;
1984
1985 typedef struct {
1986     POINTL ptlReference;
1987     DWORD  nChars;
1988     DWORD  offString;
1989     DWORD  fOptions;
1990     RECTL  rcl;
1991     DWORD  offDx;
1992 } EMRTEXT, *PEMRTEXT;
1993
1994 typedef struct {
1995     EMR emr;
1996 } EMRABORTPATH,      *PEMRABORTPATH,
1997   EMRBEGINPATH,      *PEMRBEGINPATH,
1998   EMRENDPATH,        *PEMRENDPATH,
1999   EMRCLOSEFIGURE,    *PEMRCLOSEFIGURE,
2000   EMRFLATTENPATH,    *PEMRFLATTENPATH,
2001   EMRWIDENPATH,      *PEMRWIDENPATH,
2002   EMRSETMETARGN,     *PEMRSETMETARGN,
2003   EMRSAVEDC,         *PEMRSAVEDC,
2004   EMRREALIZEPALETTE, *PEMRREALIZEPALETTE;
2005
2006 typedef struct {
2007     EMR    emr;
2008     POINTL ptlCenter;
2009     DWORD  nRadius;
2010     FLOAT  eStartAngle;
2011     FLOAT  eSweepAngle;
2012 } EMRANGLEARC, *PEMRANGLEARC;
2013
2014 typedef struct {
2015     EMR    emr;
2016     RECTL  rclBox;
2017     POINTL ptlStart;
2018     POINTL ptlEnd;
2019 } EMRARC,   *PEMRARC,
2020   EMRARCTO, *PEMRARCTO,
2021   EMRCHORD, *PEMRCHORD,
2022   EMRPIE,   *PEMRPIE;
2023
2024 typedef struct {
2025     EMR      emr;
2026     RECTL    rclBounds;
2027     LONG     xDest;
2028     LONG     yDest;
2029     LONG     cxDest;
2030     LONG     cyDest;
2031     DWORD    dwRop;
2032     LONG     xSrc;
2033     LONG     ySrc;
2034     XFORM    xformSrc;
2035     COLORREF crBkColorSrc;
2036     DWORD    iUsegeSrc;
2037     DWORD    offBmiSrc;
2038     DWORD    cbBmiSrc;
2039     DWORD    offBitsSrc;
2040     DWORD    cbBitsSrc;
2041 } EMRBITBLT, *PEMRBITBLT;
2042
2043 typedef struct {
2044     EMR      emr;
2045     DWORD    ihBrush;
2046     LOGBRUSH lb;
2047 } EMRCREATEBRUSHINDIRECT, *PEMRCREATEBRUSHINDIRECT;
2048
2049 typedef struct {
2050     EMR            emr;
2051     DWORD          ihCS;
2052     LOGCOLORSPACEW lcs;
2053 } EMRCREATECOLORSPACE, *PEMRCREATECOLORSPACE;
2054
2055 typedef struct {
2056     EMR   emr;
2057     DWORD ihBrush;
2058     DWORD iUsage;
2059     DWORD offBmi;
2060     DWORD cbBmi;
2061     DWORD offBits;
2062     DWORD cbBits;
2063 } EMRCREATEDIBPATTERNBRUSHPT, *PEMRCREATEDIBPATTERNBRUSHPT;
2064
2065 typedef struct {
2066     EMR   emr;
2067     DWORD ihBrush;
2068     DWORD iUsage;
2069     DWORD offBmi;
2070     DWORD cbBmi;
2071     DWORD offBits;
2072     DWORD cbBits;
2073 } EMRCREATEMONOBRUSH, *PEMRCREATEMONOBRUSH;
2074
2075 typedef struct {
2076     EMR        emr;
2077     DWORD      ihPal;
2078     LOGPALETTE lgpl;
2079 } EMRCREATEPALETTE, *PEMRCREATEPALETTE;
2080
2081 typedef struct {
2082     EMR    emr;
2083     DWORD  ihPen;
2084     LOGPEN lopn;
2085 } EMRCREATEPEN, *PEMRCREATEPEN;
2086
2087 typedef struct {
2088     EMR           emr;
2089     DWORD         ihCS;
2090 } EMRDELETECOLORSPACE, *PEMRDELETECOLORSPACE,
2091   EMRSELECTCOLORSPACE, *PEMRSELECTCOLORSPACE,
2092   EMRSETCOLORSPACE,    *PEMRSETCOLORSPACE;
2093
2094 typedef struct {
2095     EMR   emr;
2096     DWORD ihObject;
2097 } EMRDELETEOBJECT, *PEMRDELETEOBJECT,
2098   EMRSELECTOBJECT, *PEMRSELECTOBJECT;
2099
2100 typedef struct {
2101     EMR   emr;
2102     RECTL rclBox;
2103 } EMRELLIPSE,   *PEMRELLIPSE,
2104   EMRRECTANGLE, *PEMRRECTANGLE;
2105
2106 typedef struct {
2107     EMR   emr;
2108     DWORD nPalEntries;
2109     DWORD offPalEntries;
2110     DWORD nSizeLast;
2111 } EMREOF, *PEMREOF;
2112
2113 typedef struct {
2114     EMR   emr;
2115     RECTL rclClip;
2116 } EMREXCLUDECLIPRECT,   *PEMREXCLUDECLIPRECT,
2117   EMRINTERSECTCLIPRECT, *PEMRINTERSECTCLIPRECT;
2118
2119 typedef struct {
2120     EMR         emr;
2121     DWORD       ihFont;
2122     EXTLOGFONTW elfw;
2123 } EMREXTCREATEFONTINDIRECTW, *PEMREXTCREATEFONTINDIRECTW;
2124
2125 typedef struct {
2126     EMR       emr;
2127     DWORD     ihPen;
2128     DWORD     offBmi;
2129     DWORD     cbBmi;
2130     DWORD     offBits;
2131     DWORD     cbBits;
2132     EXTLOGPEN elp;
2133 } EMREXTCREATEPEN, *PEMREXTCREATEPEN;
2134
2135 typedef struct {
2136     EMR      emr;
2137     POINTL   ptlStart;
2138     COLORREF crColor;
2139     DWORD    iMode;
2140 } EMREXTFLOODFILL, *PEMREXTFLOODFILL;
2141
2142 typedef struct {
2143     EMR   emr;
2144     DWORD cbRgnData;
2145     DWORD iMode;
2146     BYTE  RgnData[1];
2147 } EMREXTSELECTCLIPRGN, *PEMREXTSELECTCLIPRGN;
2148
2149 typedef struct {
2150     EMR     emr;
2151     RECTL   rclBounds;
2152     DWORD   iGraphicsMode;
2153     FLOAT   exScale;
2154     FLOAT   eyScale;
2155     EMRTEXT emrtext;
2156 } EMREXTTEXTOUTA, *PEMREXTTEXTOUTA,
2157   EMREXTTEXTOUTW, *PEMREXTTEXTOUTW;
2158
2159 typedef struct {
2160     EMR emr;
2161     RECTL rclBounds;
2162 } EMRFILLPATH,          *PEMRFILLPATH,
2163   EMRSTROKEANDFILLPATH, *PEMRSTROKEANDFILLPATH,
2164   EMRSTROKEPATH,        *PEMRSTROKEPATH;
2165
2166 typedef struct {
2167     EMR   emr;
2168     RECTL rclBounds;
2169     DWORD cbRgnData;
2170     DWORD ihBrush;
2171     BYTE  RgnData[1];
2172 } EMRFILLRGN, *PEMRFILLRGN;
2173
2174 typedef struct {
2175     DWORD signature;
2176     DWORD nVersion;
2177     DWORD cbData;
2178     DWORD offData;
2179 } EMRFORMAT, *PEMRFORMAT;
2180
2181 typedef struct {
2182     EMR   emr;
2183     RECTL rclBounds;
2184     DWORD cbRgnData;
2185     DWORD ihBrush;
2186     SIZEL szlStroke;
2187     BYTE  RgnData[1];
2188 } EMRFRAMERGN, *PEMRFRAMERGN;
2189
2190 typedef struct {
2191     EMR   emr;
2192     DWORD cbData;
2193     BYTE  Data[1];
2194 } EMRGDICOMMENT, *PEMRGDICOMMENT;
2195
2196 #if 0
2197 typedef struct {
2198     EMR       emr;
2199     RECTL     rclBounds;
2200     DWORD     nVer;
2201     DWORD     nTri;
2202     ULONG     ulMode;
2203     TRIVERTEX Ver[1];
2204 } EMRGRADIENTFILL, *PEMRGRADIENTFILL;
2205 #endif
2206
2207 typedef struct {
2208     EMR   emr;
2209     RECTL rclBounds;
2210     DWORD cbRgnData;
2211     BYTE  RgnData[1];
2212 } EMRINVERTRGN, *PEMRINVERTRGN,
2213   EMRPAINTRGN,  *PEMRPAINTRGN;
2214
2215 typedef struct {
2216     EMR    emr;
2217     POINTL ptl;
2218 } EMRLINETO,   *PEMRLINETO,
2219   EMRMOVETOEX, *PEMRMOVETOEX;
2220
2221 typedef struct {
2222     EMR      emr;
2223     RECTL    rclBounds;
2224     LONG     xDest;
2225     LONG     yDest;
2226     LONG     cxDest;
2227     LONG     cyDest;
2228     DWORD    dwRop;
2229     LONG     xSrc;
2230     LONG     ySrc;
2231     XFORM    xformSrc;
2232     COLORREF crBkColorSrc;
2233     DWORD    iUsageSrc;
2234     DWORD    offBmiSrc;
2235     DWORD    cbBmiSrc;
2236     DWORD    offBitsSrc;
2237     DWORD    cbBitsSrc;
2238     LONG     xMask;
2239     LONG     yMask;
2240     DWORD    iUsageMask;
2241     DWORD    offBmiMask;
2242     DWORD    cbBmiMask;
2243     DWORD    offBitsMask;
2244     DWORD    cbBitsMask;
2245 } EMRMASKBLT, *PEMRMASKBLT;
2246
2247 typedef struct {
2248     EMR   emr;
2249     XFORM xform;
2250     DWORD iMode;
2251 } EMRMODIFYWORLDTRANSFORM, *PEMRMODIFYWORLDTRANSFORM;
2252
2253 typedef struct {
2254     EMR    emr;
2255     POINTL ptlOffset;
2256 } EMROFFSETCLIPRGN, *PEMROFFSETCLIPRGN;
2257
2258 typedef struct {
2259     EMR      emr;
2260     RECTL    rclBounds;
2261     POINTL   aptlDst[3];
2262     LONG     xSrc;
2263     LONG     ySrc;
2264     LONG     cxSrc;
2265     LONG     cySrc;
2266     XFORM    xformSrc;
2267     COLORREF crBkColorSrc;
2268     DWORD    iUsageSrc;
2269     DWORD    offBmiSrc;
2270     DWORD    cbBmiSrc;
2271     DWORD    offBitsSrc;
2272     DWORD    cbBitsSrc;
2273     LONG     xMask;
2274     LONG     yMask;
2275     DWORD    iUsageMask;
2276     DWORD    offBmiMask;
2277     DWORD    cbBmiMask;
2278     DWORD    offBitsMask; 
2279     DWORD    cbBitsMask;
2280 } EMRPLGBLT, *PEMRPLGBLT;
2281
2282 typedef struct {
2283     EMR    emr;
2284     RECTL  rclBounds;
2285     DWORD  cptl;
2286     POINTL aptl[1];
2287 } EMRPOLYLINE,     *PEMRPOLYLINE,
2288   EMRPOLYBEZIER,   *PEMRPOLYBEZIER,
2289   EMRPOLYGON,      *PEMRPOLYGON,
2290   EMRPOLYBEZIERTO, *PEMRPOLYBEZIERTO,
2291   EMRPOLYLINETO,   *PEMRPOLYLINETO;
2292
2293 typedef struct {
2294     EMR    emr;
2295     RECTL  rclBounds;
2296     DWORD  cpts;
2297     POINTS apts[1];
2298 } EMRPOLYLINE16,     *PEMRPOLYLINE16,
2299   EMRPOLYBEZIER16,   *PEMRPOLYBEZIER16,
2300   EMRPOLYGON16,      *PEMRPOLYGON16,
2301   EMRPOLYBEZIERTO16, *PEMRPOLYBEZIERTO16,
2302   EMRPOLYLINETO16,   *PEMRPOLYLINETO16;
2303
2304 typedef struct {
2305     EMR    emr;
2306     RECTL  rclBounds;
2307     DWORD  cptl;
2308     POINTL aptl[1];
2309     BYTE   abTypes[1];
2310 } EMRPOLYDRAW, *PEMRPOLYDRAW; 
2311
2312 typedef struct {
2313     EMR    emr;
2314     RECTL  rclBounds;
2315     DWORD  cpts;
2316     POINTS apts[1];
2317     BYTE   abTypes[1];
2318 } EMRPOLYDRAW16, *PEMRPOLYDRAW16;
2319
2320 typedef struct {
2321     EMR     emr;
2322     RECTL   rclBounds;
2323     DWORD   nPolys;
2324     DWORD   cptl;
2325     DWORD   aPolyCounts[1];
2326     POINTL  aptl[1];
2327 } EMRPOLYPOLYLINE, *PEMRPOLYPOLYLINE,
2328   EMRPOLYPOLYGON,  *PEMRPOLYPOLYGON;
2329
2330 typedef struct {
2331     EMR     emr;
2332     RECTL   rclBounds;
2333     DWORD   nPolys;
2334     DWORD   cpts;
2335     DWORD   aPolyCounts[1];
2336     POINTS  apts[1];
2337 } EMRPOLYPOLYLINE16, *PEMRPOLYPOLYLINE16,
2338   EMRPOLYPOLYGON16,  *PEMRPOLYPOLYGON16;
2339
2340 typedef struct {
2341     EMR     emr;
2342     RECTL   rclBounds;
2343     DWORD   iGraphicsMode;
2344     FLOAT   exScale;
2345     FLOAT   eyScale;
2346     LONG    cStrings;
2347     EMRTEXT aemrtext[1];
2348 } EMRPOLYTEXTOUTA, *PEMRPOLYTEXTOUTA,
2349   EMRPOLYTEXTOUTW, *PEMRPOLYTEXTOUTW;
2350
2351 typedef struct {
2352     EMR   emr;
2353     DWORD ihPal;
2354     DWORD cEntries;
2355 } EMRRESIZEPALETTE, *PEMRRESIZEPALETTE;
2356
2357 typedef struct {
2358     EMR  emr;
2359     LONG iRelative;
2360 } EMRRESTOREDC, *PEMRRESTOREDC;
2361
2362 typedef struct {
2363     EMR   emr;
2364     RECTL rclBox;
2365     SIZEL szlCorner;
2366 } EMRROUNDRECT, *PEMRROUNDRECT;
2367
2368 typedef struct {
2369     EMR  emr;
2370     LONG xNum;
2371     LONG xDenom;
2372     LONG yNum;
2373     LONG yDenom;
2374 } EMRSCALEVIEWPORTEXTEX, *PEMRSCALEVIEWPORTEXTEX,
2375   EMRSCALEWINDOWEXTEX,   *PEMRSCALEWINDOWEXTEX;
2376
2377 typedef struct {
2378     EMR   emr;
2379     DWORD ihPal;
2380 } EMRSELECTPALETTE, *PEMRSELECTPALETTE;
2381
2382 typedef struct {
2383     EMR   emr;
2384     DWORD iArcDirection;
2385 } EMRSETARCDIRECTION, *PEMRSETARCDIRECTION;
2386
2387 typedef struct {
2388     EMR      emr;
2389     COLORREF crColor;
2390 } EMRSETBKCOLOR,   *PEMRSETBKCOLOR,
2391   EMRSETTEXTCOLOR, *PEMRSETTEXTCOLOR;
2392
2393 typedef struct {
2394     EMR   emr;
2395     POINTL ptlOrigin;
2396 } EMRSETBRUSHORGEX,    *PEMRSETBRUSHORGEX,
2397   EMRSETVIEWPORTORGEX, *PEMRSETVIEWPORTORGEX,
2398   EMRSETWINDOWORGEX,   *PEMRSETWINDOWORGEX;
2399
2400 typedef struct {
2401     EMR  emr;
2402     COLORADJUSTMENT ColorAdjustment;
2403 } EMRSETCOLORADJUSTMENT, *PEMRSETCOLORADJUSTMENT;
2404
2405 typedef struct {
2406     EMR   emr;
2407     RECTL rclBounds;
2408     LONG  xDest;
2409     LONG  yDest;
2410     LONG  xSrc;
2411     LONG  ySrc;
2412     LONG  cxSrc;
2413     LONG  cySrc;
2414     DWORD offBmiSrc;
2415     DWORD cbBmiSrc;
2416     DWORD offBitsSrc;
2417     DWORD cbBitsSrc;
2418     DWORD iUsageSrc;
2419     DWORD iStartScan;
2420     DWORD cScans;
2421 } EMRSETDIBITSTODEIVCE, *PEMRSETDIBITSTODEVICE;
2422
2423 typedef struct {
2424     EMR   emr;
2425     DWORD dwFlags;
2426 } EMRSETMAPPERFLAGS, *PEMRSETMAPPERFLAGS;
2427
2428 typedef struct {
2429     EMR   emr;
2430     FLOAT eMiterLimit;
2431 } EMRSETMITERLIMIT, *PEMRSETMITERLIMIT;
2432
2433 typedef struct {
2434     EMR          emr;
2435     DWORD        ihPal;
2436     DWORD        iStart;
2437     DWORD        cEntries;
2438     PALETTEENTRY aPalEntries[1];
2439 } EMRSETPALETTEENTRIES, *PEMRSETPALETTEENTRIES;
2440
2441 typedef struct {
2442     EMR     emr;
2443     POINTL  ptlPixel;
2444     COLORREF crColor;
2445 } EMRSETPIXELV, *PEMRSETPIXELV;
2446
2447 typedef struct {
2448     EMR   emr;
2449     SIZEL szlExtent;
2450 } EMRSETVIEWPORTEXTEX, *PEMRSETVIEWPORTEXTEX,
2451   EMRSETWINDOWEXTEX,   *PEMRSETWINDOWEXTEX;
2452
2453 typedef struct {
2454     EMR   emr;
2455     XFORM xform;
2456 } EMRSETWORLDTRANSFORM, *PEMRSETWORLDTRANSFORM;
2457
2458 typedef struct {
2459     EMR      emr;
2460     RECTL    rclBounds;
2461     LONG     xDest;
2462     LONG     yDest;
2463     LONG     cxDest;
2464     LONG     cyDest;
2465     DWORD    dwRop;
2466     LONG     xSrc;
2467     LONG     ySrc;
2468     XFORM    xformSrc;
2469     COLORREF crBkColorSrc;
2470     DWORD    iUsageSrc;
2471     DWORD    offBmiSrc;
2472     DWORD    cbBmiSrc;
2473     DWORD    offBitsSrc;
2474     DWORD    cbBitsSrc;
2475     LONG     cxSrc;
2476     LONG     cySrc;
2477 } EMRSTRETCHBLT, *PEMRSTRETCHBLT;
2478
2479 typedef struct {
2480     EMR   emr;
2481     RECTL rclBounds;
2482     LONG  xDest;
2483     LONG  yDest;
2484     LONG  xSrc;
2485     LONG  ySrc;
2486     LONG  cxSrc;
2487     LONG  cySrc;
2488     DWORD offBmiSrc;
2489     DWORD cbBmiSrc;
2490     DWORD offBitsSrc;
2491     DWORD cbBitsSrc;
2492     DWORD iUsage;
2493     DWORD dwRop;
2494     LONG  cxDest;
2495     LONG  cyDst;
2496 } EMRSTRETCHDIBITS, *PEMRSTRETCHDIBITS;
2497
2498 typedef INT (CALLBACK *ENHMFENUMPROC)(HDC, LPHANDLETABLE, 
2499                                           LPENHMETARECORD, INT, LPVOID);
2500
2501 #define EMR_HEADER      1
2502 #define EMR_POLYBEZIER  2
2503 #define EMR_POLYGON     3
2504 #define EMR_POLYLINE    4
2505 #define EMR_POLYBEZIERTO        5
2506 #define EMR_POLYLINETO  6
2507 #define EMR_POLYPOLYLINE        7
2508 #define EMR_POLYPOLYGON 8
2509 #define EMR_SETWINDOWEXTEX      9
2510 #define EMR_SETWINDOWORGEX      10
2511 #define EMR_SETVIEWPORTEXTEX    11
2512 #define EMR_SETVIEWPORTORGEX    12
2513 #define EMR_SETBRUSHORGEX       13
2514 #define EMR_EOF 14
2515 #define EMR_SETPIXELV   15
2516 #define EMR_SETMAPPERFLAGS      16
2517 #define EMR_SETMAPMODE  17
2518 #define EMR_SETBKMODE   18
2519 #define EMR_SETPOLYFILLMODE     19
2520 #define EMR_SETROP2     20
2521 #define EMR_SETSTRETCHBLTMODE   21
2522 #define EMR_SETTEXTALIGN        22
2523 #define EMR_SETCOLORADJUSTMENT  23
2524 #define EMR_SETTEXTCOLOR        24
2525 #define EMR_SETBKCOLOR  25
2526 #define EMR_OFFSETCLIPRGN       26
2527 #define EMR_MOVETOEX    27
2528 #define EMR_SETMETARGN  28
2529 #define EMR_EXCLUDECLIPRECT     29
2530 #define EMR_INTERSECTCLIPRECT   30
2531 #define EMR_SCALEVIEWPORTEXTEX  31
2532 #define EMR_SCALEWINDOWEXTEX    32
2533 #define EMR_SAVEDC      33
2534 #define EMR_RESTOREDC   34
2535 #define EMR_SETWORLDTRANSFORM   35
2536 #define EMR_MODIFYWORLDTRANSFORM        36
2537 #define EMR_SELECTOBJECT        37
2538 #define EMR_CREATEPEN   38
2539 #define EMR_CREATEBRUSHINDIRECT 39
2540 #define EMR_DELETEOBJECT        40
2541 #define EMR_ANGLEARC    41
2542 #define EMR_ELLIPSE     42
2543 #define EMR_RECTANGLE   43
2544 #define EMR_ROUNDRECT   44
2545 #define EMR_ARC 45
2546 #define EMR_CHORD       46
2547 #define EMR_PIE 47
2548 #define EMR_SELECTPALETTE       48
2549 #define EMR_CREATEPALETTE       49
2550 #define EMR_SETPALETTEENTRIES   50
2551 #define EMR_RESIZEPALETTE       51
2552 #define EMR_REALIZEPALETTE      52
2553 #define EMR_EXTFLOODFILL        53
2554 #define EMR_LINETO      54
2555 #define EMR_ARCTO       55
2556 #define EMR_POLYDRAW    56
2557 #define EMR_SETARCDIRECTION     57
2558 #define EMR_SETMITERLIMIT       58
2559 #define EMR_BEGINPATH   59
2560 #define EMR_ENDPATH     60
2561 #define EMR_CLOSEFIGURE 61
2562 #define EMR_FILLPATH    62
2563 #define EMR_STROKEANDFILLPATH   63
2564 #define EMR_STROKEPATH  64
2565 #define EMR_FLATTENPATH 65
2566 #define EMR_WIDENPATH   66
2567 #define EMR_SELECTCLIPPATH      67
2568 #define EMR_ABORTPATH   68
2569 #define EMR_GDICOMMENT  70
2570 #define EMR_FILLRGN     71
2571 #define EMR_FRAMERGN    72
2572 #define EMR_INVERTRGN   73
2573 #define EMR_PAINTRGN    74
2574 #define EMR_EXTSELECTCLIPRGN    75
2575 #define EMR_BITBLT      76
2576 #define EMR_STRETCHBLT  77
2577 #define EMR_MASKBLT     78
2578 #define EMR_PLGBLT      79
2579 #define EMR_SETDIBITSTODEVICE   80
2580 #define EMR_STRETCHDIBITS       81
2581 #define EMR_EXTCREATEFONTINDIRECTW      82
2582 #define EMR_EXTTEXTOUTA 83
2583 #define EMR_EXTTEXTOUTW 84
2584 #define EMR_POLYBEZIER16        85
2585 #define EMR_POLYGON16   86
2586 #define EMR_POLYLINE16  87
2587 #define EMR_POLYBEZIERTO16      88
2588 #define EMR_POLYLINETO16        89
2589 #define EMR_POLYPOLYLINE16      90
2590 #define EMR_POLYPOLYGON16       91
2591 #define EMR_POLYDRAW16  92
2592 #define EMR_CREATEMONOBRUSH     93
2593 #define EMR_CREATEDIBPATTERNBRUSHPT     94
2594 #define EMR_EXTCREATEPEN        95
2595 #define EMR_POLYTEXTOUTA        96
2596 #define EMR_POLYTEXTOUTW        97
2597 #define EMR_SETICMMODE  98
2598 #define EMR_CREATECOLORSPACE    99
2599 #define EMR_SETCOLORSPACE       100
2600 #define EMR_DELETECOLORSPACE    101
2601 #define EMR_GLSRECORD   102
2602 #define EMR_GLSBOUNDEDRECORD    103
2603 #define EMR_PIXELFORMAT 104
2604
2605 #define ENHMETA_SIGNATURE       1179469088
2606
2607 #define CCHDEVICENAME 32
2608 #define CCHFORMNAME   32
2609
2610 typedef struct
2611 {
2612     BYTE   dmDeviceName[CCHDEVICENAME];
2613     WORD   dmSpecVersion;
2614     WORD   dmDriverVersion;
2615     WORD   dmSize;
2616     WORD   dmDriverExtra;
2617     DWORD  dmFields;
2618     INT16  dmOrientation;
2619     INT16  dmPaperSize;
2620     INT16  dmPaperLength;
2621     INT16  dmPaperWidth;
2622     INT16  dmScale;
2623     INT16  dmCopies;
2624     INT16  dmDefaultSource;
2625     INT16  dmPrintQuality;
2626     INT16  dmColor;
2627     INT16  dmDuplex;
2628     INT16  dmYResolution;
2629     INT16  dmTTOption;
2630     INT16  dmCollate;
2631     BYTE   dmFormName[CCHFORMNAME];
2632     WORD   dmUnusedPadding;
2633     WORD   dmBitsPerPel;
2634     DWORD  dmPelsWidth;
2635     DWORD  dmPelsHeight;
2636     DWORD  dmDisplayFlags;
2637     DWORD  dmDisplayFrequency;
2638 } DEVMODE16, *LPDEVMODE16;
2639
2640 typedef struct
2641 {
2642     BYTE   dmDeviceName[CCHDEVICENAME];
2643     WORD   dmSpecVersion;
2644     WORD   dmDriverVersion;
2645     WORD   dmSize;
2646     WORD   dmDriverExtra;
2647     DWORD  dmFields;
2648     INT16  dmOrientation;
2649     INT16  dmPaperSize;
2650     INT16  dmPaperLength;
2651     INT16  dmPaperWidth;
2652     INT16  dmScale;
2653     INT16  dmCopies;
2654     INT16  dmDefaultSource;
2655     INT16  dmPrintQuality;
2656     INT16  dmColor;
2657     INT16  dmDuplex;
2658     INT16  dmYResolution;
2659     INT16  dmTTOption;
2660     INT16  dmCollate;
2661     BYTE   dmFormName[CCHFORMNAME];
2662     WORD   dmLogPixels;
2663     DWORD  dmBitsPerPel;
2664     DWORD  dmPelsWidth;
2665     DWORD  dmPelsHeight;
2666     DWORD  dmDisplayFlags;
2667     DWORD  dmDisplayFrequency;
2668     DWORD  dmICMMethod;
2669     DWORD  dmICMIntent;
2670     DWORD  dmMediaType;
2671     DWORD  dmDitherType;
2672     DWORD  dmReserved1;
2673     DWORD  dmReserved2;
2674 } DEVMODEA, *PDEVMODEA, *LPDEVMODEA;
2675
2676 typedef struct
2677 {
2678     WCHAR  dmDeviceName[CCHDEVICENAME];
2679     WORD   dmSpecVersion;
2680     WORD   dmDriverVersion;
2681     WORD   dmSize;
2682     WORD   dmDriverExtra;
2683     DWORD  dmFields;
2684     INT16  dmOrientation;
2685     INT16  dmPaperSize;
2686     INT16  dmPaperLength;
2687     INT16  dmPaperWidth;
2688     INT16  dmScale;
2689     INT16  dmCopies;
2690     INT16  dmDefaultSource;
2691     INT16  dmPrintQuality;
2692     INT16  dmColor;
2693     INT16  dmDuplex;
2694     INT16  dmYResolution;
2695     INT16  dmTTOption;
2696     INT16  dmCollate;
2697     WCHAR  dmFormName[CCHFORMNAME];
2698     WORD   dmLogPixels;
2699     DWORD  dmBitsPerPel;
2700     DWORD  dmPelsWidth;
2701     DWORD  dmPelsHeight;
2702     DWORD  dmDisplayFlags;
2703     DWORD  dmDisplayFrequency;
2704     DWORD  dmICMMethod;
2705     DWORD  dmICMIntent;
2706     DWORD  dmMediaType;
2707     DWORD  dmDitherType;
2708     DWORD  dmReserved1;
2709     DWORD  dmReserved2;
2710 } DEVMODEW, *PDEVMODEW, *LPDEVMODEW;
2711
2712 DECL_WINELIB_TYPE_AW(DEVMODE)
2713 DECL_WINELIB_TYPE_AW(PDEVMODE)
2714 DECL_WINELIB_TYPE_AW(LPDEVMODE)
2715
2716 #define DM_UPDATE       1
2717 #define DM_COPY         2
2718 #define DM_PROMPT       4
2719 #define DM_MODIFY       8
2720
2721 #define DM_IN_BUFFER      DM_MODIFY
2722 #define DM_IN_PROMPT      DM_PROMPT
2723 #define DM_OUT_BUFFER     DM_COPY
2724 #define DM_OUT_DEFAULT    DM_UPDATE
2725
2726 #define DM_ORIENTATION          0x00000001L
2727 #define DM_PAPERSIZE            0x00000002L
2728 #define DM_PAPERLENGTH          0x00000004L
2729 #define DM_PAPERWIDTH           0x00000008L
2730 #define DM_SCALE                0x00000010L
2731 #define DM_COPIES               0x00000100L
2732 #define DM_DEFAULTSOURCE        0x00000200L
2733 #define DM_PRINTQUALITY         0x00000400L
2734 #define DM_COLOR                0x00000800L
2735 #define DM_DUPLEX               0x00001000L
2736 #define DM_YRESOLUTION          0x00002000L
2737 #define DM_TTOPTION             0x00004000L
2738 #define DM_BITSPERPEL           0x00040000L
2739 #define DM_PELSWIDTH            0x00080000L
2740 #define DM_PELSHEIGHT           0x00100000L
2741 #define DM_DISPLAYFLAGS         0x00200000L
2742 #define DM_DISPLAYFREQUENCY     0x00400000L
2743
2744 /* etc.... */
2745
2746 #define DMORIENT_PORTRAIT       1
2747 #define DMORIENT_LANDSCAPE      2
2748
2749 #define DMPAPER_LETTER          1
2750 #define DMPAPER_LETTERSMALL        2
2751 #define DMPAPER_TABLOID            3
2752 #define DMPAPER_LEDGER             4
2753 #define DMPAPER_LEGAL           5
2754 #define DMPAPER_STATEMENT          6
2755 #define DMPAPER_EXECUTIVE       7
2756 #define DMPAPER_A3              8
2757 #define DMPAPER_A4              9
2758 #define DMPAPER_A4SMALL            10
2759 #define DMPAPER_A5              11
2760 #define DMPAPER_B4                 12
2761 #define DMPAPER_B5                 13
2762 #define DMPAPER_FOLIO              14
2763 #define DMPAPER_QUARTO             15
2764 #define DMPAPER_10X14              16
2765 #define DMPAPER_11X17              17
2766 #define DMPAPER_NOTE               18
2767 #define DMPAPER_ENV_9              19
2768 #define DMPAPER_ENV_10          20
2769 #define DMPAPER_ENV_11             21
2770 #define DMPAPER_ENV_12             22
2771 #define DMPAPER_ENV_14             23
2772 #define DMPAPER_CSHEET             24
2773 #define DMPAPER_DSHEET             25
2774 #define DMPAPER_ESHEET             26
2775 #define DMPAPER_ENV_DL          27
2776 #define DMPAPER_ENV_C5          28
2777 #define DMPAPER_ENV_C3             29
2778 #define DMPAPER_ENV_C4             30
2779 #define DMPAPER_ENV_C6             31
2780 #define DMPAPER_ENV_C65            32
2781 #define DMPAPER_ENV_B4             33
2782 #define DMPAPER_ENV_B5          34
2783 #define DMPAPER_ENV_B6             35
2784 #define DMPAPER_ENV_ITALY          36
2785 #define DMPAPER_ENV_MONARCH     37
2786 #define DMPAPER_ENV_PERSONAL       38
2787 #define DMPAPER_FANFOLD_US         39
2788 #define DMPAPER_FANFOLD_STD_GERMAN 40
2789 #define DMPAPER_FANFOLD_LGL_GERMAN 41
2790 #define DMPAPER_ISO_B4              42
2791 #define DMPAPER_JAPANESE_POSTCARD   43
2792 #define DMPAPER_9X11                44
2793 #define DMPAPER_10X11               45
2794 #define DMPAPER_15X11               46
2795 #define DMPAPER_ENV_INVITE          47
2796 #define DMPAPER_RESERVED_48         48
2797 #define DMPAPER_RESERVED_49         49
2798 #define DMPAPER_LETTER_EXTRA        50
2799 #define DMPAPER_LEGAL_EXTRA         51
2800 #define DMPAPER_TABLOID_EXTRA       52
2801 #define DMPAPER_A4_EXTRA            53
2802 #define DMPAPER_LETTER_TRANSVERSE   54
2803 #define DMPAPER_A4_TRANSVERSE       55
2804 #define DMPAPER_LETTER_EXTRA_TRANSVERSE 56
2805 #define DMPAPER_A_PLUS              57
2806 #define DMPAPER_B_PLUS              58
2807 #define DMPAPER_LETTER_PLUS         59
2808 #define DMPAPER_A4_PLUS             60
2809 #define DMPAPER_A5_TRANSVERSE       61
2810 #define DMPAPER_B5_TRANSVERSE       62
2811 #define DMPAPER_A3_EXTRA            63
2812 #define DMPAPER_A5_EXTRA            64
2813 #define DMPAPER_B5_EXTRA            65
2814 #define DMPAPER_A2                  66
2815 #define DMPAPER_A3_TRANSVERSE       67
2816 #define DMPAPER_A3_EXTRA_TRANSVERSE 68
2817
2818 #define DMBIN_UPPER             1
2819 #define DMBIN_LOWER             2
2820 #define DMBIN_MIDDLE            3
2821 #define DMBIN_MANUAL            4
2822 #define DMBIN_ENVELOPE          5
2823 #define DMBIN_ENVMANUAL         6
2824 #define DMBIN_AUTO              7
2825 #define DMBIN_LARGECAPACITY     11
2826
2827 #define DMCOLOR_MONOCHROME      1
2828 #define DMCOLOR_COLOR           2
2829
2830 #define DMTT_BITMAP             1
2831 #define DMTT_DOWNLOAD           2
2832 #define DMTT_SUBDEV             3
2833
2834 typedef struct 
2835 {
2836     INT16    cbSize;
2837     SEGPTR   lpszDocName WINE_PACKED;
2838     SEGPTR   lpszOutput WINE_PACKED;
2839 } DOCINFO16, *LPDOCINFO16;
2840
2841 typedef struct 
2842 {
2843     INT    cbSize;
2844     LPCSTR   lpszDocName;
2845     LPCSTR   lpszOutput;
2846     LPCSTR   lpszDatatype;
2847     DWORD    fwType;
2848 } DOCINFOA, *LPDOCINFOA;
2849
2850 typedef struct 
2851 {
2852     INT    cbSize;
2853     LPCWSTR  lpszDocName;
2854     LPCWSTR  lpszOutput;
2855     LPCWSTR  lpszDatatype;
2856     DWORD    fwType;
2857 } DOCINFOW, *LPDOCINFOW;
2858
2859 DECL_WINELIB_TYPE_AW(DOCINFO)
2860 DECL_WINELIB_TYPE_AW(LPDOCINFO)
2861
2862 typedef struct {
2863         UINT16          cbSize;
2864         INT16           iBorderWidth;
2865         INT16           iScrollWidth;
2866         INT16           iScrollHeight;
2867         INT16           iCaptionWidth;
2868         INT16           iCaptionHeight;
2869         LOGFONT16       lfCaptionFont;
2870         INT16           iSmCaptionWidth;
2871         INT16           iSmCaptionHeight;
2872         LOGFONT16       lfSmCaptionFont;
2873         INT16           iMenuWidth;
2874         INT16           iMenuHeight;
2875         LOGFONT16       lfMenuFont;
2876         LOGFONT16       lfStatusFont;
2877         LOGFONT16       lfMessageFont;
2878 } NONCLIENTMETRICS16,*LPNONCLIENTMETRICS16;
2879
2880 typedef struct {
2881         UINT            cbSize;
2882         INT             iBorderWidth;
2883         INT             iScrollWidth;
2884         INT             iScrollHeight;
2885         INT             iCaptionWidth;
2886         INT             iCaptionHeight;
2887         LOGFONTA        lfCaptionFont;
2888         INT             iSmCaptionWidth;
2889         INT             iSmCaptionHeight;
2890         LOGFONTA        lfSmCaptionFont;
2891         INT             iMenuWidth;
2892         INT             iMenuHeight;
2893         LOGFONTA        lfMenuFont;
2894         LOGFONTA        lfStatusFont;
2895         LOGFONTA        lfMessageFont;
2896 } NONCLIENTMETRICSA,*LPNONCLIENTMETRICSA;
2897
2898 typedef struct {
2899         UINT            cbSize;
2900         INT             iBorderWidth;
2901         INT             iScrollWidth;
2902         INT             iScrollHeight;
2903         INT             iCaptionWidth;
2904         INT             iCaptionHeight;
2905         LOGFONTW        lfCaptionFont;
2906         INT             iSmCaptionWidth;
2907         INT             iSmCaptionHeight;
2908         LOGFONTW        lfSmCaptionFont;
2909         INT             iMenuWidth;
2910         INT             iMenuHeight;
2911         LOGFONTW        lfMenuFont;
2912         LOGFONTW        lfStatusFont;
2913         LOGFONTW        lfMessageFont;
2914 } NONCLIENTMETRICSW,*LPNONCLIENTMETRICSW;
2915
2916 DECL_WINELIB_TYPE_AW(NONCLIENTMETRICS)
2917 DECL_WINELIB_TYPE_AW(LPNONCLIENTMETRICS)
2918
2919 /* Flags for PolyDraw and GetPath */
2920 #define PT_CLOSEFIGURE          0x0001
2921 #define PT_LINETO               0x0002
2922 #define PT_BEZIERTO             0x0004
2923 #define PT_MOVETO               0x0006
2924
2925 #define RDH_RECTANGLES  1
2926
2927 typedef struct _RGNDATAHEADER {
2928     DWORD       dwSize;
2929     DWORD       iType;
2930     DWORD       nCount;
2931     DWORD       nRgnSize;
2932     RECT        rcBound;
2933 } RGNDATAHEADER,*LPRGNDATAHEADER;
2934
2935 typedef struct _RGNDATA {
2936     RGNDATAHEADER       rdh;
2937     char                Buffer[1];
2938 } RGNDATA,*PRGNDATA,*LPRGNDATA;
2939
2940 typedef BOOL16 (CALLBACK* ABORTPROC16)(HDC16, INT16);
2941 typedef BOOL (CALLBACK* ABORTPROC)(HDC, INT);
2942
2943 #pragma pack(4)
2944
2945 /* Declarations for functions that exist only in Win16 */
2946
2947 VOID        WINAPI Death16(HDC16);
2948 VOID        WINAPI Resurrection16(HDC16,WORD,WORD,WORD,WORD,WORD,WORD);
2949
2950 /* Declarations for functions that exist only in Win32 */
2951
2952 BOOL      WINAPI AngleArc(HDC, INT, INT, DWORD, FLOAT, FLOAT);
2953 BOOL      WINAPI ArcTo(HDC, INT, INT, INT, INT, INT, INT, INT, INT); 
2954 HENHMETAFILE WINAPI CloseEnhMetaFile(HDC);
2955 HBRUSH    WINAPI CreateDIBPatternBrushPt(const void*,UINT);
2956 HDC       WINAPI CreateEnhMetaFileA(HDC,LPCSTR,const RECT*,LPCSTR);
2957 HDC       WINAPI CreateEnhMetaFileW(HDC,LPCWSTR,const RECT*,LPCWSTR);
2958 #define     CreateEnhMetaFile WINELIB_NAME_AW(CreateEnhMetaFile)
2959 INT       WINAPI DrawEscape(HDC,INT,INT,LPCSTR);
2960 INT16       WINAPI ExcludeVisRect16(HDC16,INT16,INT16,INT16,INT16);
2961 BOOL16      WINAPI FastWindowFrame16(HDC16,const RECT16*,INT16,INT16,DWORD);
2962 UINT16      WINAPI GDIRealizePalette16(HDC16);
2963 HPALETTE16  WINAPI GDISelectPalette16(HDC16,HPALETTE16,WORD);
2964 BOOL      WINAPI GdiComment(HDC,UINT,const BYTE *);
2965 DWORD       WINAPI GetBitmapDimension16(HBITMAP16);
2966 DWORD       WINAPI GetBrushOrg16(HDC16);
2967 BOOL      WINAPI GetCharABCWidthsFloatA(HDC,UINT,UINT,LPABCFLOAT);
2968 BOOL      WINAPI GetCharABCWidthsFloatW(HDC,UINT,UINT,LPABCFLOAT);
2969 #define     GetCharABCWidthsFloat WINELIB_NAME_AW(GetCharABCWidthsFloat)
2970 BOOL      WINAPI GetCharWidthFloatA(HDC,UINT,UINT,PFLOAT);
2971 BOOL      WINAPI GetCharWidthFloatW(HDC,UINT,UINT,PFLOAT);
2972 #define     GetCharWidthFloat WINELIB_NAME_AW(GetCharWidthFloat)
2973 BOOL      WINAPI GetColorAdjustment(HDC, LPCOLORADJUSTMENT);
2974 HFONT16     WINAPI GetCurLogFont16(HDC16);
2975 DWORD       WINAPI GetCurrentPosition16(HDC16);
2976 DWORD       WINAPI GetDCHook(HDC16,FARPROC16*);
2977 DWORD       WINAPI GetDCOrg16(HDC16);
2978 HDC16       WINAPI GetDCState16(HDC16);
2979 INT16       WINAPI GetEnvironment16(LPCSTR,LPDEVMODE16,UINT16);
2980 HGLOBAL16   WINAPI GetMetaFileBits16(HMETAFILE16);
2981 BOOL      WINAPI GetMiterLimit(HDC, PFLOAT);
2982 DWORD       WINAPI GetTextExtent16(HDC16,LPCSTR,INT16);
2983 DWORD       WINAPI GetViewportExt16(HDC16);
2984 DWORD       WINAPI GetViewportOrg16(HDC16);
2985 DWORD       WINAPI GetWindowExt16(HDC16);
2986 DWORD       WINAPI GetWindowOrg16(HDC16);
2987 HRGN16      WINAPI InquireVisRgn16(HDC16);
2988 INT16       WINAPI IntersectVisRect16(HDC16,INT16,INT16,INT16,INT16);
2989 BOOL16      WINAPI IsDCCurrentPalette16(HDC16);
2990 BOOL16      WINAPI IsGDIObject16(HGDIOBJ16);
2991 BOOL16      WINAPI IsValidMetaFile16(HMETAFILE16);
2992 BOOL      WINAPI MaskBlt(HDC,INT,INT,INT,INT,HDC,INT,INT,HBITMAP,INT,INT,DWORD);
2993 DWORD       WINAPI MoveTo16(HDC16,INT16,INT16);
2994 DWORD       WINAPI OffsetViewportOrg16(HDC16,INT16,INT16);
2995 INT16       WINAPI OffsetVisRgn16(HDC16,INT16,INT16);
2996 DWORD       WINAPI OffsetWindowOrg16(HDC16,INT16,INT16);
2997 BOOL      WINAPI PlgBlt(HDC,const POINT*,HDC,INT,INT,INT,INT,HBITMAP,INT,INT);
2998 BOOL      WINAPI PolyDraw(HDC,const POINT*,const BYTE*,DWORD);
2999 UINT16      WINAPI RealizeDefaultPalette16(HDC16);
3000 INT16       WINAPI RestoreVisRgn16(HDC16);
3001 HRGN16      WINAPI SaveVisRgn16(HDC16);
3002 DWORD       WINAPI ScaleViewportExt16(HDC16,INT16,INT16,INT16,INT16);
3003 DWORD       WINAPI ScaleWindowExt16(HDC16,INT16,INT16,INT16,INT16);
3004 INT16       WINAPI SelectVisRgn16(HDC16,HRGN16);
3005 DWORD       WINAPI SetBitmapDimension16(HBITMAP16,INT16,INT16);
3006 DWORD       WINAPI SetBrushOrg16(HDC16,INT16,INT16);
3007 BOOL      WINAPI SetColorAdjustment(HDC,const COLORADJUSTMENT*);
3008 BOOL16      WINAPI SetDCHook(HDC16,FARPROC16,DWORD);
3009 DWORD       WINAPI SetDCOrg16(HDC16,INT16,INT16);
3010 VOID        WINAPI SetDCState16(HDC16,HDC16);
3011 INT16       WINAPI SetEnvironment16(LPCSTR,LPDEVMODE16,UINT16);
3012 WORD        WINAPI SetHookFlags16(HDC16,WORD);
3013 HMETAFILE16 WINAPI SetMetaFileBits16(HGLOBAL16);
3014 BOOL      WINAPI SetMiterLimit(HDC, FLOAT, PFLOAT);
3015 DWORD       WINAPI SetViewportExt16(HDC16,INT16,INT16);
3016 DWORD       WINAPI SetViewportOrg16(HDC16,INT16,INT16);
3017 DWORD       WINAPI SetWindowExt16(HDC16,INT16,INT16);
3018 DWORD       WINAPI SetWindowOrg16(HDC16,INT16,INT16);
3019 BOOL      WINAPI CombineTransform(LPXFORM,const XFORM *,const XFORM *);
3020 HENHMETAFILE WINAPI CopyEnhMetaFileA(HENHMETAFILE,LPCSTR);
3021 HENHMETAFILE WINAPI CopyEnhMetaFileW(HENHMETAFILE,LPCWSTR);
3022 #define     CopyEnhMetaFile WINELIB_NAME_AW(CopyEnhMetaFile)
3023 HPALETTE  WINAPI CreateHalftonePalette(HDC);
3024 BOOL      WINAPI DeleteEnhMetaFile(HENHMETAFILE);
3025 INT       WINAPI ExtSelectClipRgn(HDC,HRGN,INT);
3026 HRGN      WINAPI ExtCreateRegion(const XFORM*,DWORD,const RGNDATA*);
3027 INT       WINAPI ExtEscape(HDC,INT,INT,LPCSTR,INT,LPSTR);
3028 BOOL      WINAPI FixBrushOrgEx(HDC,INT,INT,LPPOINT);
3029 HANDLE    WINAPI GetCurrentObject(HDC,UINT);
3030 BOOL      WINAPI GetDCOrgEx(HDC,LPPOINT);
3031 HENHMETAFILE WINAPI GetEnhMetaFileA(LPCSTR);
3032 HENHMETAFILE WINAPI GetEnhMetaFileW(LPCWSTR);
3033 #define     GetEnhMetaFile WINELIB_NAME_AW(GetEnhMetaFile)
3034 UINT      WINAPI GetEnhMetaFileBits(HENHMETAFILE,UINT,LPBYTE);
3035 UINT      WINAPI GetEnhMetaFileHeader(HENHMETAFILE,UINT,LPENHMETAHEADER);
3036 UINT      WINAPI GetEnhMetaFilePaletteEntries(HENHMETAFILE,UINT,LPPALETTEENTRY);
3037 INT       WINAPI GetGraphicsMode(HDC);
3038 UINT      WINAPI GetMetaFileBitsEx(HMETAFILE,UINT,LPVOID);
3039 DWORD       WINAPI GetObjectType(HANDLE);
3040 UINT      WINAPI GetTextCharsetInfo(HDC,LPFONTSIGNATURE,DWORD);
3041 BOOL      WINAPI GetTextExtentExPointA(HDC,LPCSTR,INT,INT,
3042                                            LPINT,LPINT,LPSIZE);
3043 BOOL      WINAPI GetTextExtentExPointW(HDC,LPCWSTR,INT,INT,
3044                                            LPINT,LPINT,LPSIZE);
3045 #define     GetTextExtentExPoint WINELIB_NAME_AW(GetTextExtentExPoint)
3046 BOOL      WINAPI GetWorldTransform(HDC,LPXFORM);
3047 BOOL      WINAPI ModifyWorldTransform(HDC,const XFORM *, DWORD);
3048 BOOL      WINAPI PlayEnhMetaFile(HDC,HENHMETAFILE,const RECT*);
3049 BOOL      WINAPI PlayEnhMetaFileRecord(HDC,LPHANDLETABLE,const ENHMETARECORD*,UINT);
3050 BOOL      WINAPI PolyPolyline(HDC,const POINT*,const DWORD*,DWORD);
3051 BOOL      WINAPI SetBrushOrgEx(HDC,INT,INT,LPPOINT);
3052 HENHMETAFILE WINAPI SetEnhMetaFileBits(UINT,const BYTE *);
3053 INT       WINAPI SetGraphicsMode(HDC,INT);
3054 HMETAFILE WINAPI SetMetaFileBitsEx(UINT,const BYTE*);
3055 BOOL      WINAPI SetWorldTransform(HDC,const XFORM*);
3056 BOOL      WINAPI TranslateCharsetInfo(LPDWORD,LPCHARSETINFO,DWORD);
3057
3058 /* Declarations for functions that change between Win16 and Win32 */
3059
3060 INT16       WINAPI AbortDoc16(HDC16);
3061 INT       WINAPI AbortDoc(HDC);
3062 BOOL16      WINAPI AbortPath16(HDC16);
3063 BOOL      WINAPI AbortPath(HDC);
3064 INT16       WINAPI AddFontResource16(LPCSTR);
3065 INT       WINAPI AddFontResourceA(LPCSTR);
3066 INT       WINAPI AddFontResourceW(LPCWSTR);
3067 #define     AddFontResource WINELIB_NAME_AW(AddFontResource)
3068 void        WINAPI AnimatePalette16(HPALETTE16,UINT16,UINT16,const PALETTEENTRY*);
3069 BOOL      WINAPI AnimatePalette(HPALETTE,UINT,UINT,const PALETTEENTRY*);
3070 BOOL16      WINAPI Arc16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16);
3071 BOOL      WINAPI Arc(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
3072 BOOL16      WINAPI BeginPath16(HDC16);
3073 BOOL      WINAPI BeginPath(HDC);
3074 BOOL16      WINAPI BitBlt16(HDC16,INT16,INT16,INT16,INT16,HDC16,INT16,INT16,DWORD);
3075 BOOL      WINAPI BitBlt(HDC,INT,INT,INT,INT,HDC,INT,INT,DWORD);
3076 INT       WINAPI ChoosePixelFormat(HDC,const PIXELFORMATDESCRIPTOR*);
3077 BOOL16      WINAPI Chord16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16);
3078 BOOL      WINAPI Chord(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
3079 BOOL16      WINAPI CloseFigure16(HDC16);
3080 BOOL      WINAPI CloseFigure(HDC);
3081 HMETAFILE16 WINAPI CloseMetaFile16(HDC16);
3082 HMETAFILE WINAPI CloseMetaFile(HDC);
3083 INT16       WINAPI CombineRgn16(HRGN16,HRGN16,HRGN16,INT16);
3084 INT       WINAPI CombineRgn(HRGN,HRGN,HRGN,INT);
3085 HMETAFILE16 WINAPI CopyMetaFile16(HMETAFILE16,LPCSTR);
3086 HMETAFILE WINAPI CopyMetaFileA(HMETAFILE,LPCSTR);
3087 HMETAFILE WINAPI CopyMetaFileW(HMETAFILE,LPCWSTR);
3088 #define     CopyMetaFile WINELIB_NAME_AW(CopyMetaFile)
3089 HBITMAP16   WINAPI CreateBitmap16(INT16,INT16,UINT16,UINT16,LPCVOID);
3090 HBITMAP   WINAPI CreateBitmap(INT,INT,UINT,UINT,LPCVOID);
3091 HBITMAP16   WINAPI CreateBitmapIndirect16(const BITMAP16*);
3092 HBITMAP   WINAPI CreateBitmapIndirect(const BITMAP*);
3093 HBRUSH16    WINAPI CreateBrushIndirect16(const LOGBRUSH16*);
3094 HBRUSH    WINAPI CreateBrushIndirect(const LOGBRUSH*);
3095 HBITMAP16   WINAPI CreateCompatibleBitmap16(HDC16,INT16,INT16);
3096 HBITMAP   WINAPI CreateCompatibleBitmap(HDC,INT,INT);
3097 HDC16       WINAPI CreateCompatibleDC16(HDC16);
3098 HDC       WINAPI CreateCompatibleDC(HDC);
3099 HDC16       WINAPI CreateDC16(LPCSTR,LPCSTR,LPCSTR,const DEVMODE16*);
3100 HDC       WINAPI CreateDCA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
3101 HDC       WINAPI CreateDCW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*);
3102 #define     CreateDC WINELIB_NAME_AW(CreateDC)
3103 HBITMAP16   WINAPI CreateDIBitmap16(HDC16,const BITMAPINFOHEADER*,DWORD,
3104                                     LPCVOID,const BITMAPINFO*,UINT16);
3105 HBITMAP   WINAPI CreateDIBitmap(HDC,const BITMAPINFOHEADER*,DWORD,
3106                                     LPCVOID,const BITMAPINFO*,UINT);
3107 HBRUSH16    WINAPI CreateDIBPatternBrush16(HGLOBAL16,UINT16);
3108 HBRUSH    WINAPI CreateDIBPatternBrush(HGLOBAL,UINT);
3109 HBITMAP16   WINAPI CreateDIBSection16 (HDC16, BITMAPINFO *, UINT16,
3110                                        SEGPTR *, HANDLE, DWORD offset);
3111 HBITMAP   WINAPI CreateDIBSection (HDC, BITMAPINFO *, UINT,
3112                                        LPVOID *, HANDLE, DWORD offset);
3113 HBITMAP16   WINAPI CreateDiscardableBitmap16(HDC16,INT16,INT16);
3114 HBITMAP   WINAPI CreateDiscardableBitmap(HDC,INT,INT);
3115 HRGN16      WINAPI CreateEllipticRgn16(INT16,INT16,INT16,INT16);
3116 HRGN      WINAPI CreateEllipticRgn(INT,INT,INT,INT);
3117 HRGN16      WINAPI CreateEllipticRgnIndirect16(const RECT16 *);
3118 HRGN      WINAPI CreateEllipticRgnIndirect(const RECT *);
3119 HFONT16     WINAPI CreateFont16(INT16,INT16,INT16,INT16,INT16,BYTE,BYTE,BYTE,
3120                                 BYTE,BYTE,BYTE,BYTE,BYTE,LPCSTR);
3121 HFONT     WINAPI CreateFontA(INT,INT,INT,INT,INT,DWORD,DWORD,
3122                                  DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCSTR);
3123 HFONT     WINAPI CreateFontW(INT,INT,INT,INT,INT,DWORD,DWORD,
3124                                  DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCWSTR);
3125 #define     CreateFont WINELIB_NAME_AW(CreateFont)
3126 HFONT16     WINAPI CreateFontIndirect16(const LOGFONT16*);
3127 HFONT     WINAPI CreateFontIndirectA(const LOGFONTA*);
3128 HFONT     WINAPI CreateFontIndirectW(const LOGFONTW*);
3129 #define     CreateFontIndirect WINELIB_NAME_AW(CreateFontIndirect)
3130 HBRUSH16    WINAPI CreateHatchBrush16(INT16,COLORREF);
3131 HBRUSH    WINAPI CreateHatchBrush(INT,COLORREF);
3132 HDC16       WINAPI CreateIC16(LPCSTR,LPCSTR,LPCSTR,const DEVMODE16*);
3133 HDC       WINAPI CreateICA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
3134 HDC       WINAPI CreateICW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*);
3135 #define     CreateIC WINELIB_NAME_AW(CreateIC)
3136 HDC16       WINAPI CreateMetaFile16(LPCSTR);
3137 HDC       WINAPI CreateMetaFileA(LPCSTR);
3138 HDC       WINAPI CreateMetaFileW(LPCWSTR);
3139 #define     CreateMetaFile WINELIB_NAME_AW(CreateMetaFile)
3140 HPALETTE16  WINAPI CreatePalette16(const LOGPALETTE*);
3141 HPALETTE  WINAPI CreatePalette(const LOGPALETTE*);
3142 HBRUSH16    WINAPI CreatePatternBrush16(HBITMAP16);
3143 HBRUSH    WINAPI CreatePatternBrush(HBITMAP);
3144 HPEN16      WINAPI CreatePen16(INT16,INT16,COLORREF);
3145 HPEN      WINAPI CreatePen(INT,INT,COLORREF);
3146 HPEN16      WINAPI CreatePenIndirect16(const LOGPEN16*);
3147 HPEN      WINAPI CreatePenIndirect(const LOGPEN*);
3148 HRGN16      WINAPI CreatePolyPolygonRgn16(const POINT16*,const INT16*,INT16,INT16);
3149 HRGN      WINAPI CreatePolyPolygonRgn(const POINT*,const INT*,INT,INT);
3150 HRGN16      WINAPI CreatePolygonRgn16(const POINT16*,INT16,INT16);
3151 HRGN      WINAPI CreatePolygonRgn(const POINT*,INT,INT);
3152 HRGN16      WINAPI CreateRectRgn16(INT16,INT16,INT16,INT16);
3153 HRGN      WINAPI CreateRectRgn(INT,INT,INT,INT);
3154 HRGN16      WINAPI CreateRectRgnIndirect16(const RECT16*);
3155 HRGN      WINAPI CreateRectRgnIndirect(const RECT*);
3156 HRGN16      WINAPI CreateRoundRectRgn16(INT16,INT16,INT16,INT16,INT16,INT16);
3157 HRGN      WINAPI CreateRoundRectRgn(INT,INT,INT,INT,INT,INT);
3158 BOOL16      WINAPI CreateScalableFontResource16(UINT16,LPCSTR,LPCSTR,LPCSTR);
3159 BOOL      WINAPI CreateScalableFontResourceA(DWORD,LPCSTR,LPCSTR,LPCSTR);
3160 BOOL      WINAPI CreateScalableFontResourceW(DWORD,LPCWSTR,LPCWSTR,LPCWSTR);
3161 #define     CreateScalableFontResource WINELIB_NAME_AW(CreateScalableFontResource)
3162 HBRUSH16    WINAPI CreateSolidBrush16(COLORREF);
3163 HBRUSH    WINAPI CreateSolidBrush(COLORREF);
3164 BOOL16      WINAPI DeleteDC16(HDC16);
3165 BOOL      WINAPI DeleteDC(HDC);
3166 BOOL16      WINAPI DeleteMetaFile16(HMETAFILE16);
3167 BOOL      WINAPI DeleteMetaFile(HMETAFILE);
3168 BOOL16      WINAPI DeleteObject16(HGDIOBJ16);
3169 BOOL      WINAPI DeleteObject(HGDIOBJ);
3170 INT       WINAPI DescribePixelFormat(HDC,int,UINT,
3171                                        LPPIXELFORMATDESCRIPTOR);
3172 BOOL16      WINAPI DPtoLP16(HDC16,LPPOINT16,INT16);
3173 BOOL      WINAPI DPtoLP(HDC,LPPOINT,INT);
3174 BOOL16      WINAPI Ellipse16(HDC16,INT16,INT16,INT16,INT16);
3175 BOOL      WINAPI Ellipse(HDC,INT,INT,INT,INT);
3176 INT16       WINAPI EndDoc16(HDC16);
3177 INT       WINAPI EndDoc(HDC);
3178 BOOL16      WINAPI EndPath16(HDC16);
3179 BOOL      WINAPI EndPath(HDC);
3180 INT16       WINAPI EnumFontFamilies16(HDC16,LPCSTR,FONTENUMPROC16,LPARAM);
3181 INT       WINAPI EnumFontFamiliesA(HDC,LPCSTR,FONTENUMPROCA,LPARAM);
3182 INT       WINAPI EnumFontFamiliesW(HDC,LPCWSTR,FONTENUMPROCW,LPARAM);
3183 #define     EnumFontFamilies WINELIB_NAME_AW(EnumFontFamilies)
3184 INT16       WINAPI EnumFontFamiliesEx16(HDC16,LPLOGFONT16,FONTENUMPROCEX16,LPARAM,DWORD);
3185 INT       WINAPI EnumFontFamiliesExA(HDC,LPLOGFONTA,FONTENUMPROCEXA,LPARAM,DWORD);
3186 INT       WINAPI EnumFontFamiliesExW(HDC,LPLOGFONTW,FONTENUMPROCEXW,LPARAM,DWORD);
3187 #define     EnumFontFamiliesEx WINELIB_NAME_AW(EnumFontFamiliesEx)
3188 INT16       WINAPI EnumFonts16(HDC16,LPCSTR,FONTENUMPROC16,LPARAM);
3189 INT       WINAPI EnumFontsA(HDC,LPCSTR,FONTENUMPROCA,LPARAM);
3190 INT       WINAPI EnumFontsW(HDC,LPCWSTR,FONTENUMPROCW,LPARAM);
3191 #define     EnumFonts WINELIB_NAME_AW(EnumFonts)
3192 BOOL16      WINAPI EnumMetaFile16(HDC16,HMETAFILE16,MFENUMPROC16,LPARAM);
3193 BOOL      WINAPI EnumMetaFile(HDC,HMETAFILE,MFENUMPROC,LPARAM);
3194 INT16       WINAPI EnumObjects16(HDC16,INT16,GOBJENUMPROC16,LPARAM);
3195 INT       WINAPI EnumObjects(HDC,INT,GOBJENUMPROC,LPARAM);
3196 BOOL16      WINAPI EqualRgn16(HRGN16,HRGN16);
3197 BOOL      WINAPI EqualRgn(HRGN,HRGN);
3198 INT16       WINAPI Escape16(HDC16,INT16,INT16,SEGPTR,SEGPTR);
3199 INT       WINAPI Escape(HDC,INT,INT,LPCSTR,LPVOID);
3200 INT16       WINAPI ExcludeClipRect16(HDC16,INT16,INT16,INT16,INT16);
3201 INT       WINAPI ExcludeClipRect(HDC,INT,INT,INT,INT);
3202 HPEN16      WINAPI ExtCreatePen16(DWORD,DWORD,const LOGBRUSH16*,DWORD,const DWORD*);
3203 HPEN      WINAPI ExtCreatePen(DWORD,DWORD,const LOGBRUSH*,DWORD,const DWORD*);
3204 BOOL16      WINAPI ExtFloodFill16(HDC16,INT16,INT16,COLORREF,UINT16);
3205 BOOL      WINAPI ExtFloodFill(HDC,INT,INT,COLORREF,UINT);
3206 BOOL16      WINAPI ExtTextOut16(HDC16,INT16,INT16,UINT16,const RECT16*,
3207                                 LPCSTR,UINT16,const INT16*);
3208 BOOL      WINAPI ExtTextOutA(HDC,INT,INT,UINT,const RECT*,
3209                                  LPCSTR,UINT,const INT*);
3210 BOOL      WINAPI ExtTextOutW(HDC,INT,INT,UINT,const RECT*,
3211                                  LPCWSTR,UINT,const INT*);
3212 #define     ExtTextOut WINELIB_NAME_AW(ExtTextOut)
3213 BOOL16      WINAPI FillPath16(HDC16);
3214 BOOL      WINAPI FillPath(HDC);
3215 BOOL16      WINAPI FillRgn16(HDC16,HRGN16,HBRUSH16);
3216 BOOL      WINAPI FillRgn(HDC,HRGN,HBRUSH);
3217 BOOL16      WINAPI FlattenPath16(HDC16);
3218 BOOL      WINAPI FlattenPath(HDC);
3219 BOOL16      WINAPI FloodFill16(HDC16,INT16,INT16,COLORREF);
3220 BOOL      WINAPI FloodFill(HDC,INT,INT,COLORREF);
3221 BOOL16      WINAPI FrameRgn16(HDC16,HRGN16,HBRUSH16,INT16,INT16);
3222 BOOL      WINAPI FrameRgn(HDC,HRGN,HBRUSH,INT,INT);
3223 INT16       WINAPI GetArcDirection16(HDC16);
3224 INT       WINAPI GetArcDirection(HDC);
3225 BOOL16      WINAPI GetAspectRatioFilterEx16(HDC16,LPSIZE16);
3226 BOOL      WINAPI GetAspectRatioFilterEx(HDC,LPSIZE);
3227 LONG        WINAPI GetBitmapBits16(HBITMAP16,LONG,LPVOID);
3228 LONG        WINAPI GetBitmapBits(HBITMAP,LONG,LPVOID);
3229 BOOL16      WINAPI GetBitmapDimensionEx16(HBITMAP16,LPSIZE16);
3230 BOOL      WINAPI GetBitmapDimensionEx(HBITMAP,LPSIZE);
3231 BOOL16      WINAPI GetBrushOrgEx16(HDC16,LPPOINT16);
3232 BOOL      WINAPI GetBrushOrgEx(HDC,LPPOINT);
3233 COLORREF    WINAPI GetBkColor16(HDC16);
3234 COLORREF    WINAPI GetBkColor(HDC);
3235 INT16       WINAPI GetBkMode16(HDC16);
3236 INT       WINAPI GetBkMode(HDC);
3237 UINT16      WINAPI GetBoundsRect16(HDC16,LPRECT16,UINT16);
3238 UINT      WINAPI GetBoundsRect(HDC,LPRECT,UINT);
3239 BOOL16      WINAPI GetCharABCWidths16(HDC16,UINT16,UINT16,LPABC16);
3240 BOOL      WINAPI GetCharABCWidthsA(HDC,UINT,UINT,LPABC);
3241 BOOL      WINAPI GetCharABCWidthsW(HDC,UINT,UINT,LPABC);
3242 #define     GetCharABCWidths WINELIB_NAME_AW(GetCharABCWidths)
3243 DWORD       WINAPI GetCharacterPlacementA(HDC,LPCSTR,INT,INT,GCP_RESULTSA*,DWORD);
3244 DWORD       WINAPI GetCharacterPlacementW(HDC,LPCWSTR,INT,INT,GCP_RESULTSW*,DWORD);
3245 #define     GetCharacterPlacement WINELIB_NAME_AW(GetCharacterPlacement)
3246 BOOL16      WINAPI GetCharWidth16(HDC16,UINT16,UINT16,LPINT16);
3247 BOOL      WINAPI GetCharWidth32A(HDC,UINT,UINT,LPINT);
3248 BOOL      WINAPI GetCharWidth32W(HDC,UINT,UINT,LPINT);
3249 #define     GetCharWidthA GetCharWidth32A
3250 #define     GetCharWidthW GetCharWidth32W
3251 #define     GetCharWidth32 WINELIB_NAME_AW(GetCharWidth32)
3252 #define     GetCharWidth WINELIB_NAME_AW(GetCharWidth)
3253 INT16       WINAPI GetClipBox16(HDC16,LPRECT16);
3254 INT       WINAPI GetClipBox(HDC,LPRECT);
3255 HRGN16      WINAPI GetClipRgn16(HDC16);
3256 INT       WINAPI GetClipRgn(HDC,HRGN);
3257 BOOL16      WINAPI GetCurrentPositionEx16(HDC16,LPPOINT16);
3258 BOOL      WINAPI GetCurrentPositionEx(HDC,LPPOINT);
3259 INT16       WINAPI GetDeviceCaps16(HDC16,INT16);
3260 INT       WINAPI GetDeviceCaps(HDC,INT);
3261 UINT16      WINAPI GetDIBColorTable16(HDC16,UINT16,UINT16,RGBQUAD*);
3262 UINT      WINAPI GetDIBColorTable(HDC,UINT,UINT,RGBQUAD*);
3263 INT16       WINAPI GetDIBits16(HDC16,HBITMAP16,UINT16,UINT16,LPVOID,LPBITMAPINFO,UINT16);
3264 INT       WINAPI GetDIBits(HDC,HBITMAP,UINT,UINT,LPVOID,LPBITMAPINFO,UINT);
3265 DWORD       WINAPI GetFontData(HDC,DWORD,DWORD,LPVOID,DWORD);
3266 DWORD       WINAPI GetFontLanguageInfo16(HDC16);
3267 DWORD       WINAPI GetFontLanguageInfo(HDC);
3268 DWORD       WINAPI GetGlyphOutline16(HDC16,UINT16,UINT16,LPGLYPHMETRICS16,DWORD,LPVOID,const MAT2*);
3269 DWORD       WINAPI GetGlyphOutlineA(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,LPVOID,const MAT2*);
3270 DWORD       WINAPI GetGlyphOutlineW(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,LPVOID,const MAT2*);
3271 #define     GetGlyphOutline WINELIB_NAME_AW(GetGlyphOutline)
3272 INT16       WINAPI GetKerningPairs16(HDC16,INT16,LPKERNINGPAIR16);
3273 DWORD       WINAPI GetKerningPairsA(HDC,DWORD,LPKERNINGPAIR);
3274 DWORD       WINAPI GetKerningPairsW(HDC,DWORD,LPKERNINGPAIR);
3275 #define     GetKerningPairs WINELIB_NAME_AW(GetKerningPairs)
3276 INT16       WINAPI GetMapMode16(HDC16);
3277 INT       WINAPI GetMapMode(HDC);
3278 HMETAFILE16 WINAPI GetMetaFile16(LPCSTR);
3279 HMETAFILE WINAPI GetMetaFileA(LPCSTR);
3280 HMETAFILE WINAPI GetMetaFileW(LPCWSTR);
3281 #define     GetMetaFile WINELIB_NAME_AW(GetMetaFile)
3282 DWORD       WINAPI GetNearestColor16(HDC16,DWORD);
3283 DWORD       WINAPI GetNearestColor(HDC,DWORD);
3284 UINT16      WINAPI GetNearestPaletteIndex16(HPALETTE16,COLORREF);
3285 UINT      WINAPI GetNearestPaletteIndex(HPALETTE,COLORREF);
3286 INT16       WINAPI GetObject16(HANDLE16,INT16,LPVOID);
3287 INT       WINAPI GetObjectA(HANDLE,INT,LPVOID);
3288 INT       WINAPI GetObjectW(HANDLE,INT,LPVOID);
3289 #define     GetObject WINELIB_NAME_AW(GetObject)
3290 UINT16      WINAPI GetOutlineTextMetrics16(HDC16,UINT16,LPOUTLINETEXTMETRIC16);
3291 UINT      WINAPI GetOutlineTextMetricsA(HDC,UINT,LPOUTLINETEXTMETRICA);
3292 UINT      WINAPI GetOutlineTextMetricsW(HDC,UINT,LPOUTLINETEXTMETRICW);
3293 #define     GetOutlineTextMetrics WINELIB_NAME_AW(GetOutlineTextMetrics)
3294 UINT16      WINAPI GetPaletteEntries16(HPALETTE16,UINT16,UINT16,LPPALETTEENTRY);
3295 UINT      WINAPI GetPaletteEntries(HPALETTE,UINT,UINT,LPPALETTEENTRY);
3296 INT16       WINAPI GetPath16(HDC16,LPPOINT16,LPBYTE,INT16);
3297 INT       WINAPI GetPath(HDC,LPPOINT,LPBYTE,INT);
3298 COLORREF    WINAPI GetPixel16(HDC16,INT16,INT16);
3299 COLORREF    WINAPI GetPixel(HDC,INT,INT);
3300 INT       WINAPI GetPixelFormat(HDC);
3301 INT16       WINAPI GetPolyFillMode16(HDC16);
3302 INT       WINAPI GetPolyFillMode(HDC);
3303 BOOL16      WINAPI GetRasterizerCaps16(LPRASTERIZER_STATUS,UINT16);
3304 BOOL      WINAPI GetRasterizerCaps(LPRASTERIZER_STATUS,UINT);
3305 DWORD       WINAPI GetRegionData16(HRGN16,DWORD,LPRGNDATA);
3306 DWORD       WINAPI GetRegionData(HRGN,DWORD,LPRGNDATA);
3307 INT16       WINAPI GetRelAbs16(HDC16);
3308 INT       WINAPI GetRelAbs(HDC);
3309 INT16       WINAPI GetRgnBox16(HRGN16,LPRECT16);
3310 INT       WINAPI GetRgnBox(HRGN,LPRECT);
3311 INT16       WINAPI GetROP216(HDC16);
3312 INT       WINAPI GetROP2(HDC);
3313 HGDIOBJ16   WINAPI GetStockObject16(INT16);
3314 HGDIOBJ   WINAPI GetStockObject(INT);
3315 INT16       WINAPI GetStretchBltMode16(HDC16);
3316 INT       WINAPI GetStretchBltMode(HDC);
3317 UINT16      WINAPI GetSystemPaletteEntries16(HDC16,UINT16,UINT16,LPPALETTEENTRY);
3318 UINT      WINAPI GetSystemPaletteEntries(HDC,UINT,UINT,LPPALETTEENTRY);
3319 UINT16      WINAPI GetSystemPaletteUse16(HDC16);
3320 UINT      WINAPI GetSystemPaletteUse(HDC);
3321 UINT16      WINAPI GetTextAlign16(HDC16);
3322 UINT      WINAPI GetTextAlign(HDC);
3323 INT16       WINAPI GetTextCharacterExtra16(HDC16);
3324 INT       WINAPI GetTextCharacterExtra(HDC);
3325 UINT16      WINAPI GetTextCharset16(HDC16);
3326 UINT      WINAPI GetTextCharset(HDC);
3327 COLORREF    WINAPI GetTextColor16(HDC16);
3328 COLORREF    WINAPI GetTextColor(HDC);
3329 BOOL16      WINAPI GetTextExtentPoint16(HDC16,LPCSTR,INT16,LPSIZE16);
3330 BOOL        WINAPI GetTextExtentPointA(HDC,LPCSTR,INT,LPSIZE);
3331 BOOL        WINAPI GetTextExtentPointW(HDC,LPCWSTR,INT,LPSIZE);
3332 #define     GetTextExtentPoint WINELIB_NAME_AW(GetTextExtentPoint)
3333 BOOL        WINAPI GetTextExtentPoint32A(HDC,LPCSTR,INT,LPSIZE);
3334 BOOL        WINAPI GetTextExtentPoint32W(HDC,LPCWSTR,INT,LPSIZE);
3335 #define     GetTextExtentPoint32 WINELIB_NAME_AW(GetTextExtentPoint32)
3336 INT16       WINAPI GetTextFace16(HDC16,INT16,LPSTR);
3337 INT       WINAPI GetTextFaceA(HDC,INT,LPSTR);
3338 INT       WINAPI GetTextFaceW(HDC,INT,LPWSTR);
3339 #define     GetTextFace WINELIB_NAME_AW(GetTextFace)
3340 BOOL16      WINAPI GetTextMetrics16(HDC16,LPTEXTMETRIC16);
3341 BOOL      WINAPI GetTextMetricsA(HDC,LPTEXTMETRICA);
3342 BOOL      WINAPI GetTextMetricsW(HDC,LPTEXTMETRICW);
3343 #define     GetTextMetrics WINELIB_NAME_AW(GetTextMetrics)
3344 BOOL16      WINAPI GetViewportExtEx16(HDC16,LPSIZE16);
3345 BOOL      WINAPI GetViewportExtEx(HDC,LPSIZE);
3346 BOOL16      WINAPI GetViewportOrgEx16(HDC16,LPPOINT16);
3347 BOOL      WINAPI GetViewportOrgEx(HDC,LPPOINT);
3348 BOOL16      WINAPI GetWindowExtEx16(HDC16,LPSIZE16);
3349 BOOL      WINAPI GetWindowExtEx(HDC,LPSIZE);
3350 BOOL16      WINAPI GetWindowOrgEx16(HDC16,LPPOINT16);
3351 BOOL      WINAPI GetWindowOrgEx(HDC,LPPOINT);
3352 INT16       WINAPI IntersectClipRect16(HDC16,INT16,INT16,INT16,INT16);
3353 INT       WINAPI IntersectClipRect(HDC,INT,INT,INT,INT);
3354 BOOL16      WINAPI InvertRgn16(HDC16,HRGN16);
3355 BOOL      WINAPI InvertRgn(HDC,HRGN);
3356 VOID        WINAPI LineDDA16(INT16,INT16,INT16,INT16,LINEDDAPROC16,LPARAM);
3357 BOOL      WINAPI LineDDA(INT,INT,INT,INT,LINEDDAPROC,LPARAM);
3358 BOOL16      WINAPI LineTo16(HDC16,INT16,INT16);
3359 BOOL      WINAPI LineTo(HDC,INT,INT);
3360 BOOL16      WINAPI LPtoDP16(HDC16,LPPOINT16,INT16);
3361 BOOL      WINAPI LPtoDP(HDC,LPPOINT,INT);
3362 BOOL16      WINAPI MoveToEx16(HDC16,INT16,INT16,LPPOINT16);
3363 BOOL      WINAPI MoveToEx(HDC,INT,INT,LPPOINT);
3364 INT16       WINAPI MulDiv16(INT16,INT16,INT16);
3365 /* FIXME This is defined in kernel32.spec !?*/
3366 INT       WINAPI MulDiv(INT,INT,INT);
3367 INT16       WINAPI OffsetClipRgn16(HDC16,INT16,INT16);
3368 INT       WINAPI OffsetClipRgn(HDC,INT,INT);
3369 INT16       WINAPI OffsetRgn16(HRGN16,INT16,INT16);
3370 INT       WINAPI OffsetRgn(HRGN,INT,INT);
3371 BOOL16      WINAPI OffsetViewportOrgEx16(HDC16,INT16,INT16,LPPOINT16);
3372 BOOL      WINAPI OffsetViewportOrgEx(HDC,INT,INT,LPPOINT);
3373 BOOL16      WINAPI OffsetWindowOrgEx16(HDC16,INT16,INT16,LPPOINT16);
3374 BOOL      WINAPI OffsetWindowOrgEx(HDC,INT,INT,LPPOINT);
3375 BOOL16      WINAPI PaintRgn16(HDC16,HRGN16);
3376 BOOL      WINAPI PaintRgn(HDC,HRGN);
3377 BOOL16      WINAPI PatBlt16(HDC16,INT16,INT16,INT16,INT16,DWORD);
3378 BOOL      WINAPI PatBlt(HDC,INT,INT,INT,INT,DWORD);
3379 HRGN16      WINAPI PathToRegion16(HDC16);
3380 HRGN      WINAPI PathToRegion(HDC);
3381 BOOL16      WINAPI Pie16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16);
3382 BOOL      WINAPI Pie(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
3383 BOOL16      WINAPI PlayMetaFile16(HDC16,HMETAFILE16);
3384 BOOL      WINAPI PlayMetaFile(HDC,HMETAFILE);
3385 VOID        WINAPI PlayMetaFileRecord16(HDC16,LPHANDLETABLE16,LPMETARECORD,UINT16);
3386 BOOL      WINAPI PlayMetaFileRecord(HDC,LPHANDLETABLE,LPMETARECORD,UINT);
3387 BOOL16      WINAPI PolyBezier16(HDC16,const POINT16*,INT16);
3388 BOOL      WINAPI PolyBezier(HDC,const POINT*,DWORD);
3389 BOOL16      WINAPI PolyBezierTo16(HDC16,const POINT16*,INT16);
3390 BOOL      WINAPI PolyBezierTo(HDC,const POINT*,DWORD);
3391 BOOL16      WINAPI PolyPolygon16(HDC16,const POINT16*,const INT16*,UINT16);
3392 BOOL      WINAPI PolyPolygon(HDC,const POINT*,const INT*,UINT);
3393 BOOL16      WINAPI Polygon16(HDC16,const POINT16*,INT16);
3394 BOOL      WINAPI Polygon(HDC,const POINT*,INT);
3395 BOOL16      WINAPI Polyline16(HDC16,const POINT16*,INT16);
3396 BOOL      WINAPI Polyline(HDC,const POINT*,INT);
3397 BOOL      WINAPI PolylineTo(HDC,const POINT*,DWORD);
3398 BOOL16      WINAPI PtInRegion16(HRGN16,INT16,INT16);
3399 BOOL      WINAPI PtInRegion(HRGN,INT,INT);
3400 BOOL16      WINAPI PtVisible16(HDC16,INT16,INT16);
3401 BOOL      WINAPI PtVisible(HDC,INT,INT);
3402 /* FIXME This is defined in user.spec !? */
3403 UINT16      WINAPI RealizePalette16(HDC16);
3404 UINT      WINAPI RealizePalette(HDC);
3405 BOOL16      WINAPI Rectangle16(HDC16,INT16,INT16,INT16,INT16);
3406 BOOL      WINAPI Rectangle(HDC,INT,INT,INT,INT);
3407 BOOL16      WINAPI RectInRegion16(HRGN16,const RECT16 *);
3408 BOOL      WINAPI RectInRegion(HRGN,const RECT *);
3409 BOOL16      WINAPI RectVisible16(HDC16,const RECT16*);
3410 BOOL      WINAPI RectVisible(HDC,const RECT*);
3411 BOOL16      WINAPI RemoveFontResource16(SEGPTR);
3412 BOOL      WINAPI RemoveFontResourceA(LPCSTR);
3413 BOOL      WINAPI RemoveFontResourceW(LPCWSTR);
3414 #define     RemoveFontResource WINELIB_NAME_AW(RemoveFontResource)
3415 HDC16       WINAPI ResetDC16(HDC16,const DEVMODE16 *);
3416 HDC       WINAPI ResetDCA(HDC,const DEVMODEA *);
3417 HDC       WINAPI ResetDCW(HDC,const DEVMODEW *);
3418 #define     ResetDC WINELIB_NAME_AW(ResetDC)
3419 BOOL16      WINAPI ResizePalette16(HPALETTE16,UINT16);
3420 BOOL      WINAPI ResizePalette(HPALETTE,UINT);
3421 BOOL16      WINAPI RestoreDC16(HDC16,INT16);
3422 BOOL      WINAPI RestoreDC(HDC,INT);
3423 BOOL16      WINAPI RoundRect16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16);
3424 BOOL      WINAPI RoundRect(HDC,INT,INT,INT,INT,INT,INT);
3425 INT16       WINAPI SaveDC16(HDC16);
3426 INT       WINAPI SaveDC(HDC);
3427 BOOL16      WINAPI ScaleViewportExtEx16(HDC16,INT16,INT16,INT16,INT16,LPSIZE16);
3428 BOOL      WINAPI ScaleViewportExtEx(HDC,INT,INT,INT,INT,LPSIZE);
3429 BOOL16      WINAPI ScaleWindowExtEx16(HDC16,INT16,INT16,INT16,INT16,LPSIZE16);
3430 BOOL      WINAPI ScaleWindowExtEx(HDC,INT,INT,INT,INT,LPSIZE);
3431 BOOL16      WINAPI SelectClipPath16(HDC16,INT16);
3432 BOOL      WINAPI SelectClipPath(HDC,INT);
3433 INT16       WINAPI SelectClipRgn16(HDC16,HRGN16);
3434 INT       WINAPI SelectClipRgn(HDC,HRGN);
3435 HGDIOBJ16   WINAPI SelectObject16(HDC16,HGDIOBJ16);
3436 HGDIOBJ   WINAPI SelectObject(HDC,HGDIOBJ);
3437 /* FIXME This is defined in user.spec !? */
3438 HPALETTE16  WINAPI SelectPalette16(HDC16,HPALETTE16,BOOL16);
3439 HPALETTE  WINAPI SelectPalette(HDC,HPALETTE,BOOL);
3440 INT16       WINAPI SetAbortProc16(HDC16,SEGPTR);
3441 INT       WINAPI SetAbortProc(HDC,ABORTPROC);
3442 INT16       WINAPI SetArcDirection16(HDC16,INT16);
3443 INT       WINAPI SetArcDirection(HDC,INT);
3444 LONG        WINAPI SetBitmapBits16(HBITMAP16,LONG,LPCVOID);
3445 LONG        WINAPI SetBitmapBits(HBITMAP,LONG,LPCVOID);
3446 BOOL16      WINAPI SetBitmapDimensionEx16(HBITMAP16,INT16,INT16,LPSIZE16);
3447 BOOL      WINAPI SetBitmapDimensionEx(HBITMAP,INT,INT,LPSIZE);
3448 COLORREF    WINAPI SetBkColor16(HDC16,COLORREF);
3449 COLORREF    WINAPI SetBkColor(HDC,COLORREF);
3450 INT16       WINAPI SetBkMode16(HDC16,INT16);
3451 INT       WINAPI SetBkMode(HDC,INT);
3452 UINT16      WINAPI SetBoundsRect16(HDC16,const RECT16*,UINT16);
3453 UINT      WINAPI SetBoundsRect(HDC,const RECT*,UINT);
3454 UINT16      WINAPI SetDIBColorTable16(HDC16,UINT16,UINT16,RGBQUAD*);
3455 UINT      WINAPI SetDIBColorTable(HDC,UINT,UINT,RGBQUAD*);
3456 INT16       WINAPI SetDIBits16(HDC16,HBITMAP16,UINT16,UINT16,LPCVOID,const BITMAPINFO*,UINT16);
3457 INT       WINAPI SetDIBits(HDC,HBITMAP,UINT,UINT,LPCVOID,const BITMAPINFO*,UINT);
3458 INT16       WINAPI SetDIBitsToDevice16(HDC16,INT16,INT16,INT16,INT16,INT16,
3459                          INT16,UINT16,UINT16,LPCVOID,const BITMAPINFO*,UINT16);
3460 INT       WINAPI SetDIBitsToDevice(HDC,INT,INT,DWORD,DWORD,INT,
3461                          INT,UINT,UINT,LPCVOID,const BITMAPINFO*,UINT);
3462 INT16       WINAPI SetMapMode16(HDC16,INT16);
3463 INT       WINAPI SetMapMode(HDC,INT);
3464 DWORD       WINAPI SetMapperFlags16(HDC16,DWORD);
3465 DWORD       WINAPI SetMapperFlags(HDC,DWORD);
3466 UINT16      WINAPI SetPaletteEntries16(HPALETTE16,UINT16,UINT16,LPPALETTEENTRY);
3467 UINT      WINAPI SetPaletteEntries(HPALETTE,UINT,UINT,LPPALETTEENTRY);
3468 COLORREF    WINAPI SetPixel16(HDC16,INT16,INT16,COLORREF);
3469 COLORREF    WINAPI SetPixel(HDC,INT,INT,COLORREF);
3470 BOOL      WINAPI SetPixelV(HDC,INT,INT,COLORREF);
3471 BOOL      WINAPI SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR*);
3472 INT16       WINAPI SetPolyFillMode16(HDC16,INT16);
3473 INT       WINAPI SetPolyFillMode(HDC,INT);
3474 VOID        WINAPI SetRectRgn16(HRGN16,INT16,INT16,INT16,INT16);
3475 VOID        WINAPI SetRectRgn(HRGN,INT,INT,INT,INT);
3476 INT16       WINAPI SetRelAbs16(HDC16,INT16);
3477 INT       WINAPI SetRelAbs(HDC,INT);
3478 INT16       WINAPI SetROP216(HDC16,INT16);
3479 INT       WINAPI SetROP2(HDC,INT);
3480 INT16       WINAPI SetStretchBltMode16(HDC16,INT16);
3481 INT       WINAPI SetStretchBltMode(HDC,INT);
3482 UINT16      WINAPI SetSystemPaletteUse16(HDC16,UINT16);
3483 UINT      WINAPI SetSystemPaletteUse(HDC,UINT);
3484 UINT16      WINAPI SetTextAlign16(HDC16,UINT16);
3485 UINT      WINAPI SetTextAlign(HDC,UINT);
3486 INT16       WINAPI SetTextCharacterExtra16(HDC16,INT16);
3487 INT       WINAPI SetTextCharacterExtra(HDC,INT);
3488 COLORREF    WINAPI SetTextColor16(HDC16,COLORREF);
3489 COLORREF    WINAPI SetTextColor(HDC,COLORREF);
3490 INT16       WINAPI SetTextJustification16(HDC16,INT16,INT16);
3491 BOOL      WINAPI SetTextJustification(HDC,INT,INT);
3492 BOOL16      WINAPI SetViewportExtEx16(HDC16,INT16,INT16,LPSIZE16);
3493 BOOL      WINAPI SetViewportExtEx(HDC,INT,INT,LPSIZE);
3494 BOOL16      WINAPI SetViewportOrgEx16(HDC16,INT16,INT16,LPPOINT16);
3495 BOOL      WINAPI SetViewportOrgEx(HDC,INT,INT,LPPOINT);
3496 BOOL16      WINAPI SetWindowExtEx16(HDC16,INT16,INT16,LPSIZE16);
3497 BOOL      WINAPI SetWindowExtEx(HDC,INT,INT,LPSIZE);
3498 BOOL16      WINAPI SetWindowOrgEx16(HDC16,INT16,INT16,LPPOINT16);
3499 BOOL      WINAPI SetWindowOrgEx(HDC,INT,INT,LPPOINT);
3500 HENHMETAFILE WINAPI SetWinMetaFileBits(UINT,CONST BYTE*,HDC,CONST METAFILEPICT *);
3501 INT16       WINAPI StartDoc16(HDC16,const DOCINFO16*);
3502 INT       WINAPI StartDocA(HDC,const DOCINFOA*);
3503 INT       WINAPI StartDocW(HDC,const DOCINFOW*);
3504 #define     StartDoc WINELIB_NAME_AW(StartDoc)
3505 INT16       WINAPI StartPage16(HDC16);
3506 INT       WINAPI StartPage(HDC);
3507 INT16       WINAPI EndPage16(HDC16);
3508 INT       WINAPI EndPage(HDC);
3509 BOOL16      WINAPI StretchBlt16(HDC16,INT16,INT16,INT16,INT16,HDC16,INT16,
3510                                 INT16,INT16,INT16,DWORD);
3511 BOOL      WINAPI StretchBlt(HDC,INT,INT,INT,INT,HDC,INT,
3512                                 INT,INT,INT,DWORD);
3513 INT16       WINAPI StretchDIBits16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,
3514                        INT16,INT16,const VOID*,const BITMAPINFO*,UINT16,DWORD);
3515 INT       WINAPI StretchDIBits(HDC,INT,INT,INT,INT,INT,INT,
3516                        INT,INT,const VOID*,const BITMAPINFO*,UINT,DWORD);
3517 BOOL16      WINAPI StrokeAndFillPath16(HDC16);
3518 BOOL      WINAPI StrokeAndFillPath(HDC);
3519 BOOL16      WINAPI StrokePath16(HDC16);
3520 BOOL      WINAPI StrokePath(HDC);
3521 BOOL      WINAPI SwapBuffers(HDC);
3522 BOOL16      WINAPI TextOut16(HDC16,INT16,INT16,LPCSTR,INT16);
3523 BOOL      WINAPI TextOutA(HDC,INT,INT,LPCSTR,INT);
3524 BOOL      WINAPI TextOutW(HDC,INT,INT,LPCWSTR,INT);
3525 #define     TextOut WINELIB_NAME_AW(TextOut)
3526 BOOL16      WINAPI UnrealizeObject16(HGDIOBJ16);
3527 BOOL      WINAPI UnrealizeObject(HGDIOBJ);
3528 INT16       WINAPI UpdateColors16(HDC16);
3529 BOOL      WINAPI UpdateColors(HDC);
3530 BOOL16      WINAPI WidenPath16(HDC16);
3531 BOOL      WINAPI WidenPath(HDC);
3532
3533 #ifdef __cplusplus
3534 }
3535 #endif
3536
3537 #endif /* __WINE_WINGDI_H */