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