ReactOS 0.4.15-dev-7906-g1b85a5f
wingdi.h
Go to the documentation of this file.
1#ifndef _WINGDI_H
2#define _WINGDI_H
3#define _WINGDI_
4
5#ifndef NOGDI
6
7#ifdef __cplusplus
8extern "C" {
9#endif
10
11#ifdef _MSC_VER
12#pragma warning(push)
13#pragma warning(disable:4201)
14#pragma warning(disable:4820)
15#endif
16
17/* Get/SetSystemPaletteUse() values */
18#define SYSPAL_ERROR 0
19#define SYSPAL_STATIC 1
20#define SYSPAL_NOSTATIC 2
21#define SYSPAL_NOSTATIC256 3
22
23#define WINGDIAPI
24
25#define NTM_NONNEGATIVE_AC 0x00010000
26#define NTM_PS_OPENTYPE 0x00020000
27#define NTM_TT_OPENTYPE 0x00040000
28#define NTM_MULTIPLEMASTER 0x00080000
29#define NTM_TYPE1 0x00100000
30#define NTM_DSIG 0x00200000
31
32#define AC_SRC_OVER 0
33#define AC_SRC_ALPHA 1
34#define BI_RGB 0
35#define BI_RLE8 1
36#define BI_RLE4 2
37#define BI_BITFIELDS 3
38#define BI_JPEG 4
39#define BI_PNG 5
40#define LF_FACESIZE 32
41#define LF_FULLFACESIZE 64
42#define CA_NEGATIVE 1
43#define CA_LOG_FILTER 2
44#define ILLUMINANT_DEVICE_DEFAULT 0
45#define ILLUMINANT_A 1
46#define ILLUMINANT_B 2
47#define ILLUMINANT_C 3
48#define ILLUMINANT_D50 4
49#define ILLUMINANT_D55 5
50#define ILLUMINANT_D65 6
51#define ILLUMINANT_D75 7
52#define ILLUMINANT_F2 8
53#define ILLUMINANT_MAX_INDEX ILLUMINANT_F2
54#define ILLUMINANT_TUNGSTEN ILLUMINANT_A
55#define ILLUMINANT_DAYLIGHT ILLUMINANT_C
56#define ILLUMINANT_FLUORESCENT ILLUMINANT_F2
57#define ILLUMINANT_NTSC ILLUMINANT_C
58#define RGB_GAMMA_MIN 2500
59#define RGB_GAMMA_MAX 65000
60#define REFERENCE_WHITE_MIN 6000
61#define REFERENCE_WHITE_MAX 10000
62#define REFERENCE_BLACK_MIN 0
63#define REFERENCE_BLACK_MAX 4000
64#define COLOR_ADJ_MIN (-100)
65#define COLOR_ADJ_MAX 100
66#define CCHDEVICENAME 32
67#define CCHFORMNAME 32
68#define DI_COMPAT 4
69#define DI_DEFAULTSIZE 8
70#define DI_IMAGE 2
71#define DI_MASK 1
72#define DI_NORMAL 3
73#define DI_APPBANDING 1
74#define DI_NOMIRROR 16
75#define EMR_HEADER 1
76#define EMR_POLYBEZIER 2
77#define EMR_POLYGON 3
78#define EMR_POLYLINE 4
79#define EMR_POLYBEZIERTO 5
80#define EMR_POLYLINETO 6
81#define EMR_POLYPOLYLINE 7
82#define EMR_POLYPOLYGON 8
83#define EMR_SETWINDOWEXTEX 9
84#define EMR_SETWINDOWORGEX 10
85#define EMR_SETVIEWPORTEXTEX 11
86#define EMR_SETVIEWPORTORGEX 12
87#define EMR_SETBRUSHORGEX 13
88#define EMR_EOF 14
89#define EMR_SETPIXELV 15
90#define EMR_SETMAPPERFLAGS 16
91#define EMR_SETMAPMODE 17
92#define EMR_SETBKMODE 18
93#define EMR_SETPOLYFILLMODE 19
94#define EMR_SETROP2 20
95#define EMR_SETSTRETCHBLTMODE 21
96#define EMR_SETTEXTALIGN 22
97#define EMR_SETCOLORADJUSTMENT 23
98#define EMR_SETTEXTCOLOR 24
99#define EMR_SETBKCOLOR 25
100#define EMR_OFFSETCLIPRGN 26
101#define EMR_MOVETOEX 27
102#define EMR_SETMETARGN 28
103#define EMR_EXCLUDECLIPRECT 29
104#define EMR_INTERSECTCLIPRECT 30
105#define EMR_SCALEVIEWPORTEXTEX 31
106#define EMR_SCALEWINDOWEXTEX 32
107#define EMR_SAVEDC 33
108#define EMR_RESTOREDC 34
109#define EMR_SETWORLDTRANSFORM 35
110#define EMR_MODIFYWORLDTRANSFORM 36
111#define EMR_SELECTOBJECT 37
112#define EMR_CREATEPEN 38
113#define EMR_CREATEBRUSHINDIRECT 39
114#define EMR_DELETEOBJECT 40
115#define EMR_ANGLEARC 41
116#define EMR_ELLIPSE 42
117#define EMR_RECTANGLE 43
118#define EMR_ROUNDRECT 44
119#define EMR_ARC 45
120#define EMR_CHORD 46
121#define EMR_PIE 47
122#define EMR_SELECTPALETTE 48
123#define EMR_CREATEPALETTE 49
124#define EMR_SETPALETTEENTRIES 50
125#define EMR_RESIZEPALETTE 51
126#define EMR_REALIZEPALETTE 52
127#define EMR_EXTFLOODFILL 53
128#define EMR_LINETO 54
129#define EMR_ARCTO 55
130#define EMR_POLYDRAW 56
131#define EMR_SETARCDIRECTION 57
132#define EMR_SETMITERLIMIT 58
133#define EMR_BEGINPATH 59
134#define EMR_ENDPATH 60
135#define EMR_CLOSEFIGURE 61
136#define EMR_FILLPATH 62
137#define EMR_STROKEANDFILLPATH 63
138#define EMR_STROKEPATH 64
139#define EMR_FLATTENPATH 65
140#define EMR_WIDENPATH 66
141#define EMR_SELECTCLIPPATH 67
142#define EMR_ABORTPATH 68
143#define EMR_GDICOMMENT 70
144#define EMR_FILLRGN 71
145#define EMR_FRAMERGN 72
146#define EMR_INVERTRGN 73
147#define EMR_PAINTRGN 74
148#define EMR_EXTSELECTCLIPRGN 75
149#define EMR_BITBLT 76
150#define EMR_STRETCHBLT 77
151#define EMR_MASKBLT 78
152#define EMR_PLGBLT 79
153#define EMR_SETDIBITSTODEVICE 80
154#define EMR_STRETCHDIBITS 81
155#define EMR_EXTCREATEFONTINDIRECTW 82
156#define EMR_EXTTEXTOUTA 83
157#define EMR_EXTTEXTOUTW 84
158#define EMR_POLYBEZIER16 85
159#define EMR_POLYGON16 86
160#define EMR_POLYLINE16 87
161#define EMR_POLYBEZIERTO16 88
162#define EMR_POLYLINETO16 89
163#define EMR_POLYPOLYLINE16 90
164#define EMR_POLYPOLYGON16 91
165#define EMR_POLYDRAW16 92
166#define EMR_CREATEMONOBRUSH 93
167#define EMR_CREATEDIBPATTERNBRUSHPT 94
168#define EMR_EXTCREATEPEN 95
169#define EMR_POLYTEXTOUTA 96
170#define EMR_POLYTEXTOUTW 97
171#define EMR_SETICMMODE 98
172#define EMR_CREATECOLORSPACE 99
173#define EMR_SETCOLORSPACE 100
174#define EMR_DELETECOLORSPACE 101
175#define EMR_GLSRECORD 102
176#define EMR_GLSBOUNDEDRECORD 103
177#define EMR_PIXELFORMAT 104
178#if (_WIN32_WINNT >= 0x0500)
179#define EMR_DRAWESCAPE 105
180#define EMR_EXTESCAPE 106
181#define EMR_STARTDOC 107
182#define EMR_SMALLTEXTOUT 108
183#define EMR_FORCEUFIMAPPING 109
184#define EMR_NAMEDESCAPE 110
185#define EMR_COLORCORRECTPALETTE 111
186#define EMR_SETICMPROFILEA 112
187#define EMR_SETICMPROFILEW 113
188#define EMR_ALPHABLEND 114
189#define EMR_ALPHADIBBLEND 115
190#define EMR_SETLAYOUT 115
191#define EMR_TRANSPARENTBLT 116
192#define EMR_TRANSPARENTDIB 117
193#define EMR_RESERVED_117 117
194#define EMR_GRADIENTFILL 118
195#define EMR_SETLINKEDUFIS 119
196#define EMR_SETTEXTJUSTIFICATION 120
197#define EMR_COLORMATCHTOTARGETW 121
198#define EMR_CREATECOLORSPACEW 122
199
200#define EMR_MIN 1
201#define EMR_MAX 122
202
203#endif
204#define ENHMETA_SIGNATURE 1179469088
205#define EPS_SIGNATURE 0x46535045
206#if (_WIN32_WINNT >= 0x0500)
207#define FR_PRIVATE 0x10
208#define FR_NOT_ENUM 0x20
209#endif
210#define META_SETBKCOLOR 0x201
211#define META_SETBKMODE 0x102
212#define META_SETMAPMODE 0x103
213#define META_SETROP2 0x104
214#define META_SETRELABS 0x105
215#define META_SETPOLYFILLMODE 0x106
216#define META_SETSTRETCHBLTMODE 0x107
217#define META_SETTEXTCHAREXTRA 0x108
218#define META_SETLAYOUT 0x149
219#define META_SETTEXTCOLOR 0x209
220#define META_SETTEXTJUSTIFICATION 0x20A
221#define META_SETWINDOWORG 0x20B
222#define META_SETWINDOWEXT 0x20C
223#define META_SETVIEWPORTORG 0x20D
224#define META_SETVIEWPORTEXT 0x20E
225#define META_OFFSETWINDOWORG 0x20F
226#define META_SCALEWINDOWEXT 0x410
227#define META_OFFSETVIEWPORTORG 0x211
228#define META_SCALEVIEWPORTEXT 0x412
229#define META_LINETO 0x213
230#define META_MOVETO 0x214
231#define META_EXCLUDECLIPRECT 0x415
232#define META_INTERSECTCLIPRECT 0x416
233#define META_ARC 0x817
234#define META_ELLIPSE 0x418
235#define META_FLOODFILL 0x419
236#define META_PIE 0x81A
237#define META_RECTANGLE 0x41B
238#define META_ROUNDRECT 0x61C
239#define META_PATBLT 0x61D
240#define META_SAVEDC 0x1E
241#define META_SETPIXEL 0x41F
242#define META_OFFSETCLIPRGN 0x220
243#define META_TEXTOUT 0x521
244#define META_BITBLT 0x922
245#define META_STRETCHBLT 0xB23
246#define META_POLYGON 0x324
247#define META_POLYLINE 0x325
248#define META_ESCAPE 0x626
249#define META_RESTOREDC 0x127
250#define META_FILLREGION 0x228
251#define META_FRAMEREGION 0x429
252#define META_INVERTREGION 0x12A
253#define META_PAINTREGION 0x12B
254#define META_SELECTCLIPREGION 0x12C
255#define META_SELECTOBJECT 0x12D
256#define META_SETTEXTALIGN 0x12E
257#define META_CHORD 0x830
258#define META_SETMAPPERFLAGS 0x231
259#define META_EXTTEXTOUT 0xa32
260#define META_SETDIBTODEV 0xd33
261#define META_SELECTPALETTE 0x234
262#define META_REALIZEPALETTE 0x35
263#define META_ANIMATEPALETTE 0x436
264#define META_SETPALENTRIES 0x37
265#define META_POLYPOLYGON 0x538
266#define META_RESIZEPALETTE 0x139
267#define META_DIBBITBLT 0x940
268#define META_DIBSTRETCHBLT 0xb41
269#define META_DIBCREATEPATTERNBRUSH 0x142
270#define META_STRETCHDIB 0xf43
271#define META_EXTFLOODFILL 0x548
272#define META_DELETEOBJECT 0x1f0
273#define META_CREATEPALETTE 0xf7
274#define META_CREATEPATTERNBRUSH 0x1F9
275#define META_CREATEPENINDIRECT 0x2FA
276#define META_CREATEFONTINDIRECT 0x2FB
277#define META_CREATEBRUSHINDIRECT 0x2FC
278#define META_CREATEREGION 0x6FF
279#define META_DRAWTEXT 0x062F
280#define META_RESETDC 0x014C
281#define META_STARTDOC 0x014D
282#define META_STARTPAGE 0x004F
283#define META_ENDPAGE 0x0050
284#define META_ABORTDOC 0x0052
285#define META_ENDDOC 0x005E
286#define META_CREATEBRUSH 0x00F8
287#define META_CREATEBITMAPINDIRECT 0x02FD
288#define META_CREATEBITMAP 0x06FE
289#define PT_MOVETO 6
290#define PT_LINETO 2
291#define PT_BEZIERTO 4
292#define PT_CLOSEFIGURE 1
293#define ELF_VENDOR_SIZE 4
294#define ELF_VERSION 0
295#define ELF_CULTURE_LATIN 0
296#define PFD_TYPE_RGBA 0
297#define PFD_TYPE_COLORINDEX 1
298#define PFD_MAIN_PLANE 0
299#define PFD_OVERLAY_PLANE 1
300#define PFD_UNDERLAY_PLANE (-1)
301#define PFD_DOUBLEBUFFER 1
302#define PFD_STEREO 2
303#define PFD_DRAW_TO_WINDOW 4
304#define PFD_DRAW_TO_BITMAP 8
305#define PFD_SUPPORT_GDI 16
306#define PFD_SUPPORT_OPENGL 32
307#define PFD_GENERIC_FORMAT 64
308#define PFD_NEED_PALETTE 128
309#define PFD_NEED_SYSTEM_PALETTE 0x00000100
310#define PFD_SWAP_EXCHANGE 0x00000200
311#define PFD_SWAP_COPY 0x00000400
312#define PFD_SWAP_LAYER_BUFFERS 0x00000800
313#define PFD_GENERIC_ACCELERATED 0x00001000
314#define PFD_SUPPORT_COMPOSITION 0x00008000
315#define PFD_DEPTH_DONTCARE 0x20000000
316#define PFD_DOUBLEBUFFER_DONTCARE 0x40000000
317#define PFD_STEREO_DONTCARE 0x80000000
318#define SP_ERROR (-1)
319#define SP_OUTOFDISK (-4)
320#define SP_OUTOFMEMORY (-5)
321#define SP_USERABORT (-3)
322#define SP_APPABORT (-2)
323#define BLACKNESS 0x42
324#define NOTSRCERASE 0x1100A6
325#define NOTSRCCOPY 0x330008
326#define SRCERASE 0x440328
327#define DSTINVERT 0x550009
328#define PATINVERT 0x5A0049
329#define SRCINVERT 0x660046
330#define SRCAND 0x8800C6
331#define MERGEPAINT 0xBB0226
332#define MERGECOPY 0xC000CA
333#define SRCCOPY 0xCC0020
334#define SRCPAINT 0xEE0086
335#define PATCOPY 0xF00021
336#define PATPAINT 0xFB0A09
337#define WHITENESS 0xFF0062
338#define R2_BLACK 1
339#define R2_COPYPEN 13
340#define R2_MASKNOTPEN 3
341#define R2_MASKPEN 9
342#define R2_MASKPENNOT 5
343#define R2_MERGENOTPEN 12
344#define R2_MERGEPEN 15
345#define R2_MERGEPENNOT 14
346#define R2_NOP 11
347#define R2_NOT 6
348#define R2_NOTCOPYPEN 4
349#define R2_NOTMASKPEN 8
350#define R2_NOTMERGEPEN 2
351#define R2_NOTXORPEN 10
352#define R2_WHITE 16
353#define R2_XORPEN 7
354#define CM_OUT_OF_GAMUT 255
355#define CM_IN_GAMUT 0
356#define RGN_AND 1
357#define RGN_COPY 5
358#define RGN_DIFF 4
359#define RGN_OR 2
360#define RGN_XOR 3
361#define NULLREGION 1
362#define SIMPLEREGION 2
363#define COMPLEXREGION 3
364#define ERROR 0
365#define CBM_INIT 4
366#define DIB_PAL_COLORS 1
367#define DIB_RGB_COLORS 0
368#define FW_DONTCARE 0
369#define FW_THIN 100
370#define FW_EXTRALIGHT 200
371#define FW_ULTRALIGHT FW_EXTRALIGHT
372#define FW_LIGHT 300
373#define FW_NORMAL 400
374#define FW_REGULAR 400
375#define FW_MEDIUM 500
376#define FW_SEMIBOLD 600
377#define FW_DEMIBOLD FW_SEMIBOLD
378#define FW_BOLD 700
379#define FW_EXTRABOLD 800
380#define FW_ULTRABOLD FW_EXTRABOLD
381#define FW_HEAVY 900
382#define FW_BLACK FW_HEAVY
383#define ANSI_CHARSET 0
384#define DEFAULT_CHARSET 1
385#define SYMBOL_CHARSET 2
386#define SHIFTJIS_CHARSET 128
387#define HANGEUL_CHARSET 129
388#define HANGUL_CHARSET 129
389#define GB2312_CHARSET 134
390#define CHINESEBIG5_CHARSET 136
391#define GREEK_CHARSET 161
392#define TURKISH_CHARSET 162
393#define HEBREW_CHARSET 177
394#define ARABIC_CHARSET 178
395#define BALTIC_CHARSET 186
396#define RUSSIAN_CHARSET 204
397#define THAI_CHARSET 222
398#define EE_CHARSET 238
399#define EASTEUROPE_CHARSET 238
400#define OEM_CHARSET 255
401#define JOHAB_CHARSET 130
402#define VIETNAMESE_CHARSET 163
403#define MAC_CHARSET 77
404/* I don't know if the values of *_CHARSET macros are defined in Windows
405 * or if we can choose them as we want. -- srtxg
406 */
407#define VISCII_CHARSET (BYTE)240 /* viscii1.1-1 */
408#define TCVN_CHARSET (BYTE)241 /* tcvn-0 */
409#define KOI8_CHARSET (BYTE)242 /* koi8-{r,u,ru} */
410#define ISO3_CHARSET (BYTE)243 /* iso8859-3 */
411#define ISO4_CHARSET (BYTE)244 /* iso8859-4 */
412#define ISO10_CHARSET (BYTE)245 /* iso8859-10 */
413#define CELTIC_CHARSET (BYTE)246 /* iso8859-14 */
414
415#define OUT_DEFAULT_PRECIS 0
416#define OUT_STRING_PRECIS 1
417#define OUT_CHARACTER_PRECIS 2
418#define OUT_STROKE_PRECIS 3
419#define OUT_TT_PRECIS 4
420#define OUT_DEVICE_PRECIS 5
421#define OUT_RASTER_PRECIS 6
422#define OUT_TT_ONLY_PRECIS 7
423#define OUT_OUTLINE_PRECIS 8
424#define OUT_SCREEN_OUTLINE_PRECIS 9
425#define OUT_PS_ONLY_PRECIS 10
426#define CLIP_DEFAULT_PRECIS 0
427#define CLIP_CHARACTER_PRECIS 1
428#define CLIP_STROKE_PRECIS 2
429#define CLIP_MASK 15
430#define CLIP_LH_ANGLES 16
431#define CLIP_TT_ALWAYS 32
432#if (_WIN32_WINNT >= _WIN32_WINNT_LONGHORN)
433#define CLIP_DFA_DISABLE 64
434#endif
435#define CLIP_EMBEDDED 128
436#define DEFAULT_QUALITY 0
437#define DRAFT_QUALITY 1
438#define PROOF_QUALITY 2
439#define NONANTIALIASED_QUALITY 3
440#define ANTIALIASED_QUALITY 4
441#define CLEARTYPE_QUALITY 5
442#define CLEARTYPE_NATURAL_QUALITY 6
443#define DEFAULT_PITCH 0
444#define FIXED_PITCH 1
445#define VARIABLE_PITCH 2
446#define MONO_FONT 8
447#define FF_DECORATIVE 80
448#define FF_DONTCARE 0
449#define FF_MODERN 48
450#define FF_ROMAN 16
451#define FF_SCRIPT 64
452#define FF_SWISS 32
453#define PANOSE_COUNT 10
454#define PAN_FAMILYTYPE_INDEX 0
455#define PAN_SERIFSTYLE_INDEX 1
456#define PAN_WEIGHT_INDEX 2
457#define PAN_PROPORTION_INDEX 3
458#define PAN_CONTRAST_INDEX 4
459#define PAN_STROKEVARIATION_INDEX 5
460#define PAN_ARMSTYLE_INDEX 6
461#define PAN_LETTERFORM_INDEX 7
462#define PAN_MIDLINE_INDEX 8
463#define PAN_XHEIGHT_INDEX 9
464#define PAN_CULTURE_LATIN 0
465#define PAN_ANY 0
466#define PAN_NO_FIT 1
467#define PAN_FAMILY_TEXT_DISPLAY 2
468#define PAN_FAMILY_SCRIPT 3
469#define PAN_FAMILY_DECORATIVE 4
470#define PAN_FAMILY_PICTORIAL 5
471#define PAN_SERIF_COVE 2
472#define PAN_SERIF_OBTUSE_COVE 3
473#define PAN_SERIF_SQUARE_COVE 4
474#define PAN_SERIF_OBTUSE_SQUARE_COVE 5
475#define PAN_SERIF_SQUARE 6
476#define PAN_SERIF_THIN 7
477#define PAN_SERIF_BONE 8
478#define PAN_SERIF_EXAGGERATED 9
479#define PAN_SERIF_TRIANGLE 10
480#define PAN_SERIF_NORMAL_SANS 11
481#define PAN_SERIF_OBTUSE_SANS 12
482#define PAN_SERIF_PERP_SANS 13
483#define PAN_SERIF_FLARED 14
484#define PAN_SERIF_ROUNDED 15
485#define PAN_WEIGHT_VERY_LIGHT 2
486#define PAN_WEIGHT_LIGHT 3
487#define PAN_WEIGHT_THIN 4
488#define PAN_WEIGHT_BOOK 5
489#define PAN_WEIGHT_MEDIUM 6
490#define PAN_WEIGHT_DEMI 7
491#define PAN_WEIGHT_BOLD 8
492#define PAN_WEIGHT_HEAVY 9
493#define PAN_WEIGHT_BLACK 10
494#define PAN_WEIGHT_NORD 11
495#define PAN_PROP_OLD_STYLE 2
496#define PAN_PROP_MODERN 3
497#define PAN_PROP_EVEN_WIDTH 4
498#define PAN_PROP_EXPANDED 5
499#define PAN_PROP_CONDENSED 6
500#define PAN_PROP_VERY_EXPANDED 7
501#define PAN_PROP_VERY_CONDENSED 8
502#define PAN_PROP_MONOSPACED 9
503#define PAN_CONTRAST_NONE 2
504#define PAN_CONTRAST_VERY_LOW 3
505#define PAN_CONTRAST_LOW 4
506#define PAN_CONTRAST_MEDIUM_LOW 5
507#define PAN_CONTRAST_MEDIUM 6
508#define PAN_CONTRAST_MEDIUM_HIGH 7
509#define PAN_CONTRAST_HIGH 8
510#define PAN_CONTRAST_VERY_HIGH 9
511#define PAN_STROKE_GRADUAL_DIAG 2
512#define PAN_STROKE_GRADUAL_TRAN 3
513#define PAN_STROKE_GRADUAL_VERT 4
514#define PAN_STROKE_GRADUAL_HORZ 5
515#define PAN_STROKE_RAPID_VERT 6
516#define PAN_STROKE_RAPID_HORZ 7
517#define PAN_STROKE_INSTANT_VERT 8
518#define PAN_STRAIGHT_ARMS_HORZ 2
519#define PAN_STRAIGHT_ARMS_WEDGE 3
520#define PAN_STRAIGHT_ARMS_VERT 4
521#define PAN_STRAIGHT_ARMS_SINGLE_SERIF 5
522#define PAN_STRAIGHT_ARMS_DOUBLE_SERIF 6
523#define PAN_BENT_ARMS_HORZ 7
524#define PAN_BENT_ARMS_WEDGE 8
525#define PAN_BENT_ARMS_VERT 9
526#define PAN_BENT_ARMS_SINGLE_SERIF 10
527#define PAN_BENT_ARMS_DOUBLE_SERIF 11
528#define PAN_LETT_NORMAL_CONTACT 2
529#define PAN_LETT_NORMAL_WEIGHTED 3
530#define PAN_LETT_NORMAL_BOXED 4
531#define PAN_LETT_NORMAL_FLATTENED 5
532#define PAN_LETT_NORMAL_ROUNDED 6
533#define PAN_LETT_NORMAL_OFF_CENTER 7
534#define PAN_LETT_NORMAL_SQUARE 8
535#define PAN_LETT_OBLIQUE_CONTACT 9
536#define PAN_LETT_OBLIQUE_WEIGHTED 10
537#define PAN_LETT_OBLIQUE_BOXED 11
538#define PAN_LETT_OBLIQUE_FLATTENED 12
539#define PAN_LETT_OBLIQUE_ROUNDED 13
540#define PAN_LETT_OBLIQUE_OFF_CENTER 14
541#define PAN_LETT_OBLIQUE_SQUARE 15
542#define PAN_MIDLINE_STANDARD_TRIMMED 2
543#define PAN_MIDLINE_STANDARD_POINTED 3
544#define PAN_MIDLINE_STANDARD_SERIFED 4
545#define PAN_MIDLINE_HIGH_TRIMMED 5
546#define PAN_MIDLINE_HIGH_POINTED 6
547#define PAN_MIDLINE_HIGH_SERIFED 7
548#define PAN_MIDLINE_CONSTANT_TRIMMED 8
549#define PAN_MIDLINE_CONSTANT_POINTED 9
550#define PAN_MIDLINE_CONSTANT_SERIFED 10
551#define PAN_MIDLINE_LOW_TRIMMED 11
552#define PAN_MIDLINE_LOW_POINTED 12
553#define PAN_MIDLINE_LOW_SERIFED 13
554#define PAN_XHEIGHT_CONSTANT_SMALL 2
555#define PAN_XHEIGHT_CONSTANT_STD 3
556#define PAN_XHEIGHT_CONSTANT_LARGE 4
557#define PAN_XHEIGHT_DUCKING_SMALL 5
558#define PAN_XHEIGHT_DUCKING_STD 6
559#define PAN_XHEIGHT_DUCKING_LARGE 7
560#define FS_LATIN1 1
561#define FS_LATIN2 2
562#define FS_CYRILLIC 4
563#define FS_GREEK 8
564#define FS_TURKISH 16
565#define FS_HEBREW 32
566#define FS_ARABIC 64
567#define FS_BALTIC 128
568#define FS_VIETNAMESE 256
569#define FS_THAI 0x10000
570#define FS_JISJAPAN 0x20000
571#define FS_CHINESESIMP 0x40000
572#define FS_WANSUNG 0x80000
573#define FS_CHINESETRAD 0x100000
574#define FS_JOHAB 0x200000
575#define FS_SYMBOL 0x80000000
576#define HS_BDIAGONAL 3
577#define HS_CROSS 4
578#define HS_DIAGCROSS 5
579#define HS_FDIAGONAL 2
580#define HS_HORIZONTAL 0
581#define HS_VERTICAL 1
582#define HS_API_MAX 12
583#define PS_GEOMETRIC 65536
584#define PS_COSMETIC 0
585#define PS_ALTERNATE 8
586#define PS_SOLID 0
587#define PS_DASH 1
588#define PS_DOT 2
589#define PS_DASHDOT 3
590#define PS_DASHDOTDOT 4
591#define PS_NULL 5
592#define PS_USERSTYLE 7
593#define PS_INSIDEFRAME 6
594#define PS_ENDCAP_ROUND 0
595#define PS_ENDCAP_SQUARE 256
596#define PS_ENDCAP_FLAT 512
597#define PS_JOIN_BEVEL 4096
598#define PS_JOIN_MITER 8192
599#define PS_JOIN_ROUND 0
600#define PS_JOIN_MASK 0x0000F000
601#define PS_STYLE_MASK 15
602#define PS_ENDCAP_MASK 3840
603#define PS_TYPE_MASK 983040
604#define ALTERNATE 1
605#define WINDING 2
606#define POLYFILL_LAST 2
607#define DC_BINNAMES 12
608#define DC_BINS 6
609#define DC_COPIES 18
610#define DC_DRIVER 11
611#define DC_DATATYPE_PRODUCED 21
612#define DC_DUPLEX 7
613#define DC_EMF_COMPLIANT 20
614#define DC_ENUMRESOLUTIONS 13
615#define DC_EXTRA 9
616#define DC_FIELDS 1
617#define DC_FILEDEPENDENCIES 14
618#define DC_MAXEXTENT 5
619#define DC_MINEXTENT 4
620#define DC_ORIENTATION 17
621#define DC_PAPERNAMES 16
622#define DC_PAPERS 2
623#define DC_PAPERSIZE 3
624#define DC_SIZE 8
625#define DC_TRUETYPE 15
626#define DCTT_BITMAP 1
627#define DCTT_DOWNLOAD 2
628#define DCTT_SUBDEV 4
629#define DCTT_DOWNLOAD_OUTLINE 8
630#define DC_VERSION 10
631#define DC_BINADJUST 19
632#define DC_EMF_COMPLIANT 20
633#define DC_DATATYPE_PRODUCED 21
634#define DC_MANUFACTURER 23
635#define DC_MODEL 24
636#define DCBA_FACEUPNONE 0
637#define DCBA_FACEUPCENTER 1
638#define DCBA_FACEUPLEFT 2
639#define DCBA_FACEUPRIGHT 3
640#define DCBA_FACEDOWNNONE 256
641#define DCBA_FACEDOWNCENTER 257
642#define DCBA_FACEDOWNLEFT 258
643#define DCBA_FACEDOWNRIGHT 259
644#define FLOODFILLBORDER 0
645#define FLOODFILLSURFACE 1
646#define ETO_GRAYED 0x00001
647#define ETO_OPAQUE 0x00002
648#define ETO_CLIPPED 0x00004
649#if (WINVER >= 0x0400)
650#define ETO_GLYPH_INDEX 0x00010
651#define ETO_RTLREADING 0x00080
652#define ETO_NUMERICSLOCAL 0x00400
653#define ETO_NUMERICSLATIN 0x00800
654#define ETO_IGNORELANGUAGE 0x01000
655#endif
656#if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
657#define ETO_PDY 0x02000
658#endif
659#if (_WIN32_WINNT >= _WIN32_WINNT_LONGHORN)
660#define ETO_REVERSE_INDEX_MAP 0x10000
661#endif
662#define GDICOMMENT_WINDOWS_METAFILE (-2147483647)
663#define GDICOMMENT_BEGINGROUP 2
664#define GDICOMMENT_ENDGROUP 3
665#define GDICOMMENT_MULTIFORMATS 1073741828
666#define GDICOMMENT_IDENTIFIER 1128875079
667#define AD_COUNTERCLOCKWISE 1
668#define AD_CLOCKWISE 2
669#define RDH_RECTANGLES 1
670#define GCPCLASS_LATIN 1
671#define GCPCLASS_HEBREW 2
672#define GCPCLASS_ARABIC 2
673#define GCPCLASS_NEUTRAL 3
674#define GCPCLASS_LOCALNUMBER 4
675#define GCPCLASS_LATINNUMBER 5
676#define GCPCLASS_LATINNUMERICTERMINATOR 6
677#define GCPCLASS_LATINNUMERICSEPARATOR 7
678#define GCPCLASS_NUMERICSEPARATOR 8
679#define GCPCLASS_PREBOUNDLTR 128
680#define GCPCLASS_PREBOUNDRTL 64
681#define GCPCLASS_POSTBOUNDLTR 32
682#define GCPCLASS_POSTBOUNDRTL 16
683#define GCPGLYPH_LINKBEFORE 0x8000
684#define GCPGLYPH_LINKAFTER 0x4000
685#define DCB_DISABLE 8
686#define DCB_ENABLE 4
687#define DCB_RESET 1
688#define DCB_SET 3
689#define DCB_ACCUMULATE 2
690#define DCB_DIRTY 2
691#define OBJ_BRUSH 2
692#define OBJ_PEN 1
693#define OBJ_PAL 5
694#define OBJ_FONT 6
695#define OBJ_BITMAP 7
696#define OBJ_EXTPEN 11
697#define OBJ_REGION 8
698#define OBJ_DC 3
699#define OBJ_MEMDC 10
700#define OBJ_METAFILE 9
701#define OBJ_METADC 4
702#define OBJ_ENHMETAFILE 13
703#define OBJ_ENHMETADC 12
704#define OBJ_COLORSPACE 14
705#define DRIVERVERSION 0
706#define TECHNOLOGY 2
707#define DT_PLOTTER 0
708#define DT_RASDISPLAY 1
709#define DT_RASPRINTER 2
710#define DT_RASCAMERA 3
711#define DT_CHARSTREAM 4
712#define DT_METAFILE 5
713#define DT_DISPFILE 6
714#define HORZSIZE 4
715#define VERTSIZE 6
716#define HORZRES 8
717#define VERTRES 10
718#define LOGPIXELSX 88
719#define LOGPIXELSY 90
720#define BITSPIXEL 12
721#define PLANES 14
722#define NUMBRUSHES 16
723#define NUMPENS 18
724#define NUMFONTS 22
725#define NUMCOLORS 24
726#define NUMMARKERS 20
727#define ASPECTX 40
728#define ASPECTY 42
729#define ASPECTXY 44
730#define PDEVICESIZE 26
731#define CLIPCAPS 36
732#define SIZEPALETTE 104
733#define NUMRESERVED 106
734#define COLORRES 108
735#define PHYSICALWIDTH 110
736#define PHYSICALHEIGHT 111
737#define PHYSICALOFFSETX 112
738#define PHYSICALOFFSETY 113
739#define SCALINGFACTORX 114
740#define SCALINGFACTORY 115
741#define VREFRESH 116
742#define DESKTOPHORZRES 118
743#define DESKTOPVERTRES 117
744#define BLTALIGNMENT 119
745#define RASTERCAPS 38
746#define RC_BANDING 2
747#define RC_BITBLT 1
748#define RC_BITMAP64 8
749#define RC_DI_BITMAP 128
750#define RC_DIBTODEV 512
751#define RC_FLOODFILL 4096
752#define RC_GDI20_OUTPUT 16
753#define RC_PALETTE 256
754#define RC_SCALING 4
755#define RC_STRETCHBLT 2048
756#define RC_STRETCHDIB 8192
757#define RC_DEVBITS 0x8000
758#define RC_OP_DX_OUTPUT 0x4000
759#define CURVECAPS 28
760#define CC_NONE 0
761#define CC_CIRCLES 1
762#define CC_PIE 2
763#define CC_CHORD 4
764#define CC_ELLIPSES 8
765#define CC_WIDE 16
766#define CC_STYLED 32
767#define CC_WIDESTYLED 64
768#define CC_INTERIORS 128
769#define CC_ROUNDRECT 256
770#define LINECAPS 30
771#define LC_NONE 0
772#define LC_POLYLINE 2
773#define LC_MARKER 4
774#define LC_POLYMARKER 8
775#define LC_WIDE 16
776#define LC_STYLED 32
777#define LC_WIDESTYLED 64
778#define LC_INTERIORS 128
779#define POLYGONALCAPS 32
780#define RC_BANDING 2
781#define RC_BIGFONT 1024
782#define RC_BITBLT 1
783#define RC_BITMAP64 8
784#define RC_DEVBITS 0x8000
785#define RC_DI_BITMAP 128
786#define RC_GDI20_OUTPUT 16
787#define RC_GDI20_STATE 32
788#define RC_NONE 0
789#define RC_OP_DX_OUTPUT 0x4000
790#define RC_PALETTE 256
791#define RC_SAVEBITMAP 64
792#define RC_SCALING 4
793#define PC_NONE 0
794#define PC_POLYGON 1
795#define PC_POLYPOLYGON 256
796#define PC_PATHS 512
797#define PC_RECTANGLE 2
798#define PC_WINDPOLYGON 4
799#define PC_SCANLINE 8
800#define PC_TRAPEZOID 4
801#define PC_WIDE 16
802#define PC_STYLED 32
803#define PC_WIDESTYLED 64
804#define PC_INTERIORS 128
805#define PC_PATHS 512
806#define TEXTCAPS 34
807#define TC_OP_CHARACTER 1
808#define TC_OP_STROKE 2
809#define TC_CP_STROKE 4
810#define TC_CR_90 8
811#define TC_CR_ANY 16
812#define TC_SF_X_YINDEP 32
813#define TC_SA_DOUBLE 64
814#define TC_SA_INTEGER 128
815#define TC_SA_CONTIN 256
816#define TC_EA_DOUBLE 512
817#define TC_IA_ABLE 1024
818#define TC_UA_ABLE 2048
819#define TC_SO_ABLE 4096
820#define TC_RA_ABLE 8192
821#define TC_VA_ABLE 16384
822#define TC_RESERVED 32768
823#define TC_SCROLLBLT 65536
824/* CLIPCAPS */
825#define CP_NONE 0
826#define CP_RECTANGLE 1
827#define CP_REGION 2
828#define GCP_DBCS 1
829#define GCP_ERROR 0x8000
830#define GCP_CLASSIN 0x80000
831#define GCP_DIACRITIC 256
832#define GCP_DISPLAYZWG 0x400000
833#define GCP_GLYPHSHAPE 16
834#define GCP_JUSTIFY 0x10000
835#define GCP_JUSTIFYIN 0x200000
836#define GCP_KASHIDA 1024
837#define GCP_LIGATE 32
838#define GCP_MAXEXTENT 0x100000
839#define GCP_NEUTRALOVERRIDE 0x2000000
840#define GCP_NUMERICOVERRIDE 0x1000000
841#define GCP_NUMERICSLATIN 0x4000000
842#define GCP_NUMERICSLOCAL 0x8000000
843#define GCP_REORDER 2
844#define GCP_SYMSWAPOFF 0x800000
845#define GCP_USEKERNING 8
846#define FLI_GLYPHS 0x40000
847#define FLI_MASK 0x103b
848#define GGO_METRICS 0
849#define GGO_BITMAP 1
850#define GGO_NATIVE 2
851#define GGO_BEZIER 3
852#define GGO_GRAY2_BITMAP 4
853#define GGO_GRAY4_BITMAP 5
854#define GGO_GRAY8_BITMAP 6
855#define GGO_GLYPH_INDEX 128
856#define GGO_UNHINTED 256
857#ifdef __WINESRC__
858#define WINE_GGO_GRAY16_BITMAP 0x10
859#define WINE_GGO_HRGB_BITMAP 0x11
860#define WINE_GGO_HBGR_BITMAP 0x12
861#define WINE_GGO_VRGB_BITMAP 0x13
862#define WINE_GGO_VBGR_BITMAP 0x14
863#endif
864#define GM_COMPATIBLE 1
865#define GM_ADVANCED 2
866#define GM_LAST 2
867#define MM_ANISOTROPIC 8
868#define MM_HIENGLISH 5
869#define MM_HIMETRIC 3
870#define MM_ISOTROPIC 7
871#define MM_LOENGLISH 4
872#define MM_LOMETRIC 2
873#define MM_TEXT 1
874#define MM_TWIPS 6
875#define MM_MAX_FIXEDSCALE MM_TWIPS
876#define MM_MIN MM_TEXT
877#define MM_MAX MM_ANISOTROPIC
878#define ABSOLUTE 1
879#define RELATIVE 2
880#define PC_EXPLICIT 2
881#define PC_NOCOLLAPSE 4
882#define PC_RESERVED 1
883#define CLR_INVALID 0xFFFFFFFF
884#define PT_MOVETO 6
885#define PT_LINETO 2
886#define PT_BEZIERTO 4
887#define PT_CLOSEFIGURE 1
888#define TT_AVAILABLE 1
889#define TT_ENABLED 2
890
891#ifdef __WINESRC__
892#define WINE_TT_SUBPIXEL_RENDERING_ENABLED 0x4000
893#define WINE_TT_HINTER_ENABLED 0x8000
894#endif
895
896#define BLACK_BRUSH 4
897#define DKGRAY_BRUSH 3
898#define GRAY_BRUSH 2
899#define HOLLOW_BRUSH 5
900#define LTGRAY_BRUSH 1
901#define NULL_BRUSH 5
902#define WHITE_BRUSH 0
903#define BLACK_PEN 7
904#define NULL_PEN 8
905#define WHITE_PEN 6
906#define ANSI_FIXED_FONT 11
907#define ANSI_VAR_FONT 12
908#define DEVICE_DEFAULT_FONT 14
909#define DEFAULT_GUI_FONT 17
910#define OEM_FIXED_FONT 10
911#define SYSTEM_FONT 13
912#define SYSTEM_FIXED_FONT 16
913#define DEFAULT_PALETTE 15
914#if (_WIN32_WINNT >= 0x0500)
915#define DC_BRUSH 18
916#define DC_PEN 19
917#endif
918#if (_WIN32_WINNT >= 0x0500)
919#define STOCK_LAST 19
920#elif (WINVER >= 0x0400)
921#define STOCK_LAST 17
922#else
923#define STOCK_LAST 16
924#endif
925#define SYSPAL_NOSTATIC 2
926#define SYSPAL_STATIC 1
927#define SYSPAL_ERROR 0
928#define TA_BASELINE 24
929#define TA_BOTTOM 8
930#define TA_TOP 0
931#define TA_CENTER 6
932#define TA_LEFT 0
933#define TA_RIGHT 2
934#define TA_RTLREADING 256
935#define TA_NOUPDATECP 0
936#define TA_UPDATECP 1
937#define TA_MASK (TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLREADING)
938#define VTA_BASELINE 24
939#define VTA_CENTER 6
940#define VTA_LEFT TA_BOTTOM
941#define VTA_RIGHT TA_TOP
942#define VTA_BOTTOM TA_RIGHT
943#define VTA_TOP TA_LEFT
944#define MWT_IDENTITY 1
945#define MWT_LEFTMULTIPLY 2
946#define MWT_RIGHTMULTIPLY 3
947#define MWT_MIN MWT_IDENTITY
948#define MWT_MAX MWT_RIGHTMULTIPLY
949#define OPAQUE 2
950#define TRANSPARENT 1
951#define BKMODE_LAST 2
952#define BLACKONWHITE 1
953#define WHITEONBLACK 2
954#define COLORONCOLOR 3
955#define HALFTONE 4
956#define MAXSTRETCHBLTMODE 4
957#define STRETCH_ANDSCANS 1
958#define STRETCH_DELETESCANS 3
959#define STRETCH_HALFTONE 4
960#define STRETCH_ORSCANS 2
961#define TCI_SRCCHARSET 1
962#define TCI_SRCCODEPAGE 2
963#define TCI_SRCFONTSIG 3
964#define TCI_SRCLOCALE 4096
965#if (_WIN32_WINNT >= 0x0500)
966#define SHADEBLENDCAPS 120
967#define COLORMGMTCAPS 121
968/* SHADEBLENDCAPS */
969#define SB_NONE 0x00000000
970#define SB_CONST_ALPHA 0x00000001
971#define SB_PIXEL_ALPHA 0x00000002
972#define SB_PREMULT_ALPHA 0x00000004
973#define SB_GRAD_RECT 0x00000010
974#define SB_GRAD_TRI 0x00000020
975/* Color Management caps */
976#define CM_NONE 0x00000000
977#define CM_DEVICE_ICM 0x00000001
978#define CM_GAMMA_RAMP 0x00000002
979#define CM_CMYK_COLOR 0x00000004
980#endif
981#define ICM_ON 2
982#define ICM_OFF 1
983#define ICM_QUERY 3
984
985#if (WINVER >= 0x0400)
986typedef struct _DRAWPATRECT {
987 POINT ptPosition;
988 POINT ptSize;
989 WORD wStyle;
990 WORD wPattern;
991} DRAWPATRECT, *PDRAWPATRECT;
992#endif
993
994#define NEWFRAME 1
995#define ABORTDOC 2
996#define NEXTBAND 3
997#define SETCOLORTABLE 4
998#define GETCOLORTABLE 5
999#define FLUSHOUTPUT 6
1000#define DRAFTMODE 7
1001#define QUERYESCSUPPORT 8
1002#define SETABORTPROC 9
1003#define STARTDOC 10
1004#define ENDDOC 11
1005#define GETPHYSPAGESIZE 12
1006#define GETPRINTINGOFFSET 13
1007#define GETSCALINGFACTOR 14
1008#define MFCOMMENT 15
1009#define GETPENWIDTH 16
1010#define SETCOPYCOUNT 17
1011#define SELECTPAPERSOURCE 18
1012#define DEVICEDATA 19
1013#define PASSTHROUGH 19
1014#define GETTECHNOLGY 20
1015#define GETTECHNOLOGY 20
1016#define SETLINECAP 21
1017#define SETLINEJOIN 22
1018#define SETMITERLIMIT 23
1019#define BANDINFO 24
1020#define DRAWPATTERNRECT 25
1021#define GETVECTORPENSIZE 26
1022#define GETVECTORBRUSHSIZE 27
1023#define ENABLEDUPLEX 28
1024#define GETSETPAPERBINS 29
1025#define GETSETPRINTORIENT 30
1026#define ENUMPAPERBINS 31
1027#define SETDIBSCALING 32
1028#define EPSPRINTING 33
1029#define ENUMPAPERMETRICS 34
1030#define GETSETPAPERMETRICS 35
1031#define POSTSCRIPT_DATA 37
1032#define POSTSCRIPT_IGNORE 38
1033#define MOUSETRAILS 39
1034#define GETDEVICEUNITS 42
1035#define GETEXTENDEDTEXTMETRICS 256
1036#define GETEXTENTTABLE 257
1037#define GETPAIRKERNTABLE 258
1038#define GETTRACKKERNTABLE 259
1039#define EXTTEXTOUT 512
1040#define GETFACENAME 513
1041#define DOWNLOADFACE 514
1042#define ENABLERELATIVEWIDTHS 768
1043#define ENABLEPAIRKERNING 769
1044#define SETKERNTRACK 770
1045#define SETALLJUSTVALUES 771
1046#define SETCHARSET 772
1047#define STRETCHBLT 2048
1048#define METAFILE_DRIVER 2049
1049#define GETSETSCREENPARAMS 3072
1050#define QUERYDIBSUPPORT 3073
1051#define BEGIN_PATH 4096
1052#define CLIP_TO_PATH 4097
1053#define END_PATH 4098
1054#define EXT_DEVICE_CAPS 4099
1055#define RESTORE_CTM 4100
1056#define SAVE_CTM 4101
1057#define SET_ARC_DIRECTION 4102
1058#define SET_BACKGROUND_COLOR 4103
1059#define SET_POLY_MODE 4104
1060#define SET_SCREEN_ANGLE 4105
1061#define SET_SPREAD 4106
1062#define TRANSFORM_CTM 4107
1063#define SET_CLIP_BOX 4108
1064#define SET_BOUNDS 4109
1065#define SET_MIRROR_MODE 4110
1066#define OPENCHANNEL 4110
1067#define DOWNLOADHEADER 4111
1068#define CLOSECHANNEL 4112
1069#define POSTSCRIPT_PASSTHROUGH 4115
1070#define ENCAPSULATED_POSTSCRIPT 4116
1071#define POSTSCRIPT_IDENTIFY 4117
1072#define POSTSCRIPT_INJECTION 4118
1073#define CHECKJPEGFORMAT 4119
1074#define CHECKPNGFORMAT 4120
1075#define GET_PS_FEATURESETTING 4121
1076#define SPCLPASSTHROUGH2 4568
1077#define QDI_SETDIBITS 1
1078#define QDI_GETDIBITS 2
1079#define QDI_DIBTOSCREEN 4
1080#define QDI_STRETCHDIB 8
1081#define SP_NOTREPORTED 0x4000
1082#define PR_JOBSTATUS 0
1083#define ASPECT_FILTERING 1
1084#define GS_8BIT_INDICES 0x00000001
1085#define GGI_MARK_NONEXISTING_GLYPHS 0X0001
1086#define BS_SOLID 0
1087#define BS_NULL 1
1088#define BS_HOLLOW 1
1089#define BS_HATCHED 2
1090#define BS_PATTERN 3
1091#define BS_INDEXED 4
1092#define BS_DIBPATTERN 5
1093#define BS_DIBPATTERNPT 6
1094#define BS_PATTERN8X8 7
1095#define BS_DIBPATTERN8X8 8
1096#define BS_MONOPATTERN 9
1097#define LCS_CALIBRATED_RGB 0
1098#define LCS_DEVICE_RGB 1
1099#define LCS_DEVICE_CMYK 2
1100#define LCS_GM_BUSINESS 1
1101#define LCS_GM_GRAPHICS 2
1102#define LCS_GM_IMAGES 4
1103#define LCS_GM_ABS_COLORIMETRIC 8
1104#define LCS_SIGNATURE 0x50534F43 // 'PSOC'
1105#define LCS_sRGB 'sRGB'
1106#define LCS_WINDOWS_COLOR_SPACE 'Win '
1107#define RASTER_FONTTYPE 1
1108#define DEVICE_FONTTYPE 2
1109#define TRUETYPE_FONTTYPE 4
1110#define DMORIENT_PORTRAIT 1
1111#define DMORIENT_LANDSCAPE 2
1112#define DMPAPER_FIRST 1
1113#define DMPAPER_LETTER 1
1114#define DMPAPER_LETTERSMALL 2
1115#define DMPAPER_TABLOID 3
1116#define DMPAPER_LEDGER 4
1117#define DMPAPER_LEGAL 5
1118#define DMPAPER_STATEMENT 6
1119#define DMPAPER_EXECUTIVE 7
1120#define DMPAPER_A3 8
1121#define DMPAPER_A4 9
1122#define DMPAPER_A4SMALL 10
1123#define DMPAPER_A5 11
1124#define DMPAPER_B4 12
1125#define DMPAPER_B5 13
1126#define DMPAPER_FOLIO 14
1127#define DMPAPER_QUARTO 15
1128#define DMPAPER_10X14 16
1129#define DMPAPER_11X17 17
1130#define DMPAPER_NOTE 18
1131#define DMPAPER_ENV_9 19
1132#define DMPAPER_ENV_10 20
1133#define DMPAPER_ENV_11 21
1134#define DMPAPER_ENV_12 22
1135#define DMPAPER_ENV_14 23
1136#define DMPAPER_CSHEET 24
1137#define DMPAPER_DSHEET 25
1138#define DMPAPER_ESHEET 26
1139#define DMPAPER_ENV_DL 27
1140#define DMPAPER_ENV_C5 28
1141#define DMPAPER_ENV_C3 29
1142#define DMPAPER_ENV_C4 30
1143#define DMPAPER_ENV_C6 31
1144#define DMPAPER_ENV_C65 32
1145#define DMPAPER_ENV_B4 33
1146#define DMPAPER_ENV_B5 34
1147#define DMPAPER_ENV_B6 35
1148#define DMPAPER_ENV_ITALY 36
1149#define DMPAPER_ENV_MONARCH 37
1150#define DMPAPER_ENV_PERSONAL 38
1151#define DMPAPER_FANFOLD_US 39
1152#define DMPAPER_FANFOLD_STD_GERMAN 40
1153#define DMPAPER_FANFOLD_LGL_GERMAN 41
1154#define DMPAPER_ISO_B4 42
1155#define DMPAPER_JAPANESE_POSTCARD 43
1156#define DMPAPER_9X11 44
1157#define DMPAPER_10X11 45
1158#define DMPAPER_15X11 46
1159#define DMPAPER_ENV_INVITE 47
1160#define DMPAPER_RESERVED_48 48
1161#define DMPAPER_RESERVED_49 49
1162#define DMPAPER_LETTER_EXTRA 50
1163#define DMPAPER_LEGAL_EXTRA 51
1164#define DMPAPER_TABLOID_EXTRA 52
1165#define DMPAPER_A4_EXTRA 53
1166#define DMPAPER_LETTER_TRANSVERSE 54
1167#define DMPAPER_A4_TRANSVERSE 55
1168#define DMPAPER_LETTER_EXTRA_TRANSVERSE 56
1169#define DMPAPER_A_PLUS 57
1170#define DMPAPER_B_PLUS 58
1171#define DMPAPER_LETTER_PLUS 59
1172#define DMPAPER_A4_PLUS 60
1173#define DMPAPER_A5_TRANSVERSE 61
1174#define DMPAPER_B5_TRANSVERSE 62
1175#define DMPAPER_A3_EXTRA 63
1176#define DMPAPER_A5_EXTRA 64
1177#define DMPAPER_B5_EXTRA 65
1178#define DMPAPER_A2 66
1179#define DMPAPER_A3_TRANSVERSE 67
1180#define DMPAPER_A3_EXTRA_TRANSVERSE 68
1181#define DMPAPER_LAST 68
1182#define DMPAPER_USER 256
1183#define DMBIN_FIRST 1
1184#define DMBIN_UPPER 1
1185#define DMBIN_ONLYONE 1
1186#define DMBIN_LOWER 2
1187#define DMBIN_MIDDLE 3
1188#define DMBIN_MANUAL 4
1189#define DMBIN_ENVELOPE 5
1190#define DMBIN_ENVMANUAL 6
1191#define DMBIN_AUTO 7
1192#define DMBIN_TRACTOR 8
1193#define DMBIN_SMALLFMT 9
1194#define DMBIN_LARGEFMT 10
1195#define DMBIN_LARGECAPACITY 11
1196#define DMBIN_CASSETTE 14
1197#define DMBIN_FORMSOURCE 15
1198#define DMBIN_LAST 15
1199#define DMBIN_USER 256
1200#define DMRES_DRAFT (-1)
1201#define DMRES_LOW (-2)
1202#define DMRES_MEDIUM (-3)
1203#define DMRES_HIGH (-4)
1204#define DMCOLOR_MONOCHROME 1
1205#define DMCOLOR_COLOR 2
1206#define DMDUP_SIMPLEX 1
1207#define DMDUP_VERTICAL 2
1208#define DMDUP_HORIZONTAL 3
1209#define DMTT_BITMAP 1
1210#define DMTT_DOWNLOAD 2
1211#define DMTT_SUBDEV 3
1212#define DMTT_DOWNLOAD_OUTLINE 4
1213#define DMCOLLATE_FALSE 0
1214#define DMCOLLATE_TRUE 1
1215
1216
1217#define DMDO_DEFAULT 0
1218#define DMDO_90 1
1219#define DMDO_180 2
1220#define DMDO_270 3
1221
1222#define DMDFO_DEFAULT 0
1223#define DMDFO_STRETCH 1
1224#define DMDFO_CENTER 2
1225
1226
1227#define DM_GRAYSCALE 0x00000001
1228#define DM_INTERLACED 0x00000002
1229#define DMDISPLAYFLAGS_TEXTMODE 0x00000004
1230
1231
1232#define DM_UPDATE 1
1233#define DM_COPY 2
1234#define DM_PROMPT 4
1235#define DM_MODIFY 8
1236#define DM_IN_BUFFER DM_MODIFY
1237#define DM_IN_PROMPT DM_PROMPT
1238#define DM_OUT_BUFFER DM_COPY
1239#define DM_OUT_DEFAULT DM_UPDATE
1240
1241
1242#if (WINVER >= 0x0500) || (_WIN32_WINNT >= _WIN32_WINNT_NT4)
1243#define DM_SPECVERSION 0x0401
1244#elif (WINVER >= 0x0400)
1245#define DM_SPECVERSION 0x0400
1246#else
1247#define DM_SPECVERSION 0x0320
1248#endif
1249
1250#define DM_ORIENTATION 0x00000001
1251#define DM_PAPERSIZE 0x00000002
1252#define DM_PAPERLENGTH 0x00000004
1253#define DM_PAPERWIDTH 0x00000008
1254#define DM_SCALE 0x00000010
1255#define DM_POSITION 0x00000020
1256#define DM_NUP 0x00000040
1257#define DM_DISPLAYORIENTATION 0x00000080
1258#define DM_COPIES 0x00000100
1259#define DM_DEFAULTSOURCE 0x00000200
1260#define DM_PRINTQUALITY 0x00000400
1261#define DM_COLOR 0x00000800
1262#define DM_DUPLEX 0x00001000
1263#define DM_YRESOLUTION 0x00002000
1264#define DM_TTOPTION 0x00004000
1265#define DM_COLLATE 0x00008000
1266#define DM_FORMNAME 0x00010000
1267#define DM_LOGPIXELS 0x00020000
1268#define DM_BITSPERPEL 0x00040000
1269#define DM_PELSWIDTH 0x00080000
1270#define DM_PELSHEIGHT 0x00100000
1271#define DM_DISPLAYFLAGS 0x00200000
1272#define DM_DISPLAYFREQUENCY 0x00400000
1273#define DM_ICMMETHOD 0x00800000
1274#define DM_ICMINTENT 0x01000000
1275#define DM_MEDIATYPE 0x02000000
1276#define DM_DITHERTYPE 0x04000000
1277#define DM_PANNINGWIDTH 0x08000000
1278#define DM_PANNINGHEIGHT 0x10000000
1279#if (WINVER >= 0x0501)
1280#define DM_DISPLAYFIXEDOUTPUT 0x20000000
1281#endif
1282
1283#define QDC_ALL_PATHS 0x00000001
1284
1285#define DMICMMETHOD_NONE 1
1286#define DMICMMETHOD_SYSTEM 2
1287#define DMICMMETHOD_DRIVER 3
1288#define DMICMMETHOD_DEVICE 4
1289#define DMICMMETHOD_USER 256
1290#define DMICM_SATURATE 1
1291#define DMICM_CONTRAST 2
1292#define DMICM_COLORMETRIC 3
1293#define DMICM_USER 256
1294#define DMMEDIA_STANDARD 1
1295#define DMMEDIA_TRANSPARENCY 2
1296#define DMMEDIA_GLOSSY 3
1297#define DMMEDIA_USER 256
1298#define DMDITHER_NONE 1
1299#define DMDITHER_COARSE 2
1300#define DMDITHER_FINE 3
1301#define DMDITHER_LINEART 4
1302#define DMDITHER_ERRORDIFFUSION 5
1303#define DMDITHER_RESERVED6 6
1304#define DMDITHER_RESERVED7 7
1305#define DMDITHER_RESERVED8 8
1306#define DMDITHER_RESERVED9 9
1307#define DMDITHER_GRAYSCALE 10
1308#define DMDITHER_USER 256
1309#define GDI_ERROR 0xFFFFFFFF
1310#define HGDI_ERROR ((HANDLE)GDI_ERROR)
1311#define TMPF_FIXED_PITCH 1
1312#define TMPF_VECTOR 2
1313#define TMPF_TRUETYPE 4
1314#define TMPF_DEVICE 8
1315#define NTM_ITALIC 1
1316#define NTM_BOLD 32
1317#define NTM_REGULAR 64
1318#define TT_POLYGON_TYPE 24
1319#define TT_PRIM_LINE 1
1320#define TT_PRIM_QSPLINE 2
1321#define TT_PRIM_CSPLINE 3
1322#define FONTMAPPER_MAX 10
1323#define ENHMETA_STOCK_OBJECT 0x80000000
1324#define WGL_FONT_LINES 0
1325#define WGL_FONT_POLYGONS 1
1326#define LPD_DOUBLEBUFFER 1
1327#define LPD_STEREO 2
1328#define LPD_SUPPORT_GDI 16
1329#define LPD_SUPPORT_OPENGL 32
1330#define LPD_SHARE_DEPTH 64
1331#define LPD_SHARE_STENCIL 128
1332#define LPD_SHARE_ACCUM 256
1333#define LPD_SWAP_EXCHANGE 512
1334#define LPD_SWAP_COPY 1024
1335#define LPD_TRANSPARENT 4096
1336#define LPD_TYPE_RGBA 0
1337#define LPD_TYPE_COLORINDEX 1
1338#define WGL_SWAP_MAIN_PLANE 1
1339#define WGL_SWAP_OVERLAY1 2
1340#define WGL_SWAP_OVERLAY2 4
1341#define WGL_SWAP_OVERLAY3 8
1342#define WGL_SWAP_OVERLAY4 16
1343#define WGL_SWAP_OVERLAY5 32
1344#define WGL_SWAP_OVERLAY6 64
1345#define WGL_SWAP_OVERLAY7 128
1346#define WGL_SWAP_OVERLAY8 256
1347#define WGL_SWAP_OVERLAY9 512
1348#define WGL_SWAP_OVERLAY10 1024
1349#define WGL_SWAP_OVERLAY11 2048
1350#define WGL_SWAP_OVERLAY12 4096
1351#define WGL_SWAP_OVERLAY13 8192
1352#define WGL_SWAP_OVERLAY14 16384
1353#define WGL_SWAP_OVERLAY15 32768
1354#define WGL_SWAP_UNDERLAY1 65536
1355#define WGL_SWAP_UNDERLAY2 0x20000
1356#define WGL_SWAP_UNDERLAY3 0x40000
1357#define WGL_SWAP_UNDERLAY4 0x80000
1358#define WGL_SWAP_UNDERLAY5 0x100000
1359#define WGL_SWAP_UNDERLAY6 0x200000
1360#define WGL_SWAP_UNDERLAY7 0x400000
1361#define WGL_SWAP_UNDERLAY8 0x800000
1362#define WGL_SWAP_UNDERLAY9 0x1000000
1363#define WGL_SWAP_UNDERLAY10 0x2000000
1364#define WGL_SWAP_UNDERLAY11 0x4000000
1365#define WGL_SWAP_UNDERLAY12 0x8000000
1366#define WGL_SWAP_UNDERLAY13 0x10000000
1367#define WGL_SWAP_UNDERLAY14 0x20000000
1368#define WGL_SWAP_UNDERLAY15 0x40000000
1369#define AC_SRC_OVER 0
1370#define LAYOUT_LTR 0
1371#define LAYOUT_RTL 1 // Right to left
1372#define LAYOUT_BTT 2 // Bottom to top
1373#define LAYOUT_VBH 4 // Vertical before horizontal
1374#define LAYOUT_ORIENTATIONMASK (LAYOUT_RTL | LAYOUT_BTT | LAYOUT_VBH)
1375#define LAYOUT_BITMAPORIENTATIONPRESERVED 8
1376#define CAPTUREBLT 0x40000000
1377#define NOMIRRORBITMAP 0x80000000
1378#if (WINVER > 0x400)
1379#define CS_ENABLE 0x00000001
1380#define CS_DISABLE 0x00000002
1381#define CS_DELETE_TRANSFORM 0x00000003
1382#endif
1383
1384
1385
1386#if (WINVER > 0x500)
1387#define GRADIENT_FILL_RECT_H 0x00
1388#define GRADIENT_FILL_RECT_V 0x01
1389#define GRADIENT_FILL_TRIANGLE 0x02
1390#define GRADIENT_FILL_OP_FLAG 0xff
1391#define COLORMATCHTOTARGET_EMBEDED 0x00000001
1392#define CREATECOLORSPACE_EMBEDED 0x00000001
1393#define SETICMPROFILE_EMBEDED 0x00000001
1394#endif
1395
1396#define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP 0x00000001
1397#define DISPLAY_DEVICE_MULTI_DRIVER 0x00000002
1398#define DISPLAY_DEVICE_PRIMARY_DEVICE 0x00000004
1399#define DISPLAY_DEVICE_MIRRORING_DRIVER 0x00000008
1400#define DISPLAY_DEVICE_VGA_COMPATIBLE 0x00000010
1401#define DISPLAY_DEVICE_REMOVABLE 0x00000020
1402#define DISPLAY_DEVICE_DISCONNECT 0x02000000
1403#define DISPLAY_DEVICE_REMOTE 0x04000000
1404#define DISPLAY_DEVICE_MODESPRUNED 0x08000000
1405
1406#define DISPLAY_DEVICE_ACTIVE 0x00000001
1407#define DISPLAY_DEVICE_ATTACHED 0x00000002
1408
1409#ifndef RC_INVOKED
1410typedef struct _ABC {
1411 int abcA;
1413 int abcC;
1415typedef struct _ABCFLOAT {
1420typedef struct tagBITMAP {
1429typedef struct tagBITMAPCOREHEADER {
1436#include "pshpack1.h"
1437typedef struct tagRGBTRIPLE {
1442#include "poppack.h"
1443#include "pshpack2.h"
1444typedef struct tagBITMAPFILEHEADER {
1451#include "poppack.h"
1452typedef struct _BITMAPCOREINFO {
1456typedef struct tagBITMAPINFOHEADER{
1458 LONG biWidth;
1459 LONG biHeight;
1469typedef struct tagRGBQUAD {
1475typedef struct tagBITMAPINFO {
1481typedef struct tagCIEXYZ {
1486typedef struct tagCIEXYZTRIPLE {
1491typedef struct {
1513#if (WINVER >= 0x500)
1514typedef struct {
1515 DWORD bV5Size;
1516 LONG bV5Width;
1517 LONG bV5Height;
1518 WORD bV5Planes;
1519 WORD bV5BitCount;
1520 DWORD bV5Compression;
1521 DWORD bV5SizeImage;
1522 LONG bV5XPelsPerMeter;
1523 LONG bV5YPelsPerMeter;
1524 DWORD bV5ClrUsed;
1525 DWORD bV5ClrImportant;
1526 DWORD bV5RedMask;
1527 DWORD bV5GreenMask;
1528 DWORD bV5BlueMask;
1529 DWORD bV5AlphaMask;
1530 DWORD bV5CSType;
1531 CIEXYZTRIPLE bV5Endpoints;
1532 DWORD bV5GammaRed;
1533 DWORD bV5GammaGreen;
1534 DWORD bV5GammaBlue;
1535 DWORD bV5Intent;
1536 DWORD bV5ProfileData;
1537 DWORD bV5ProfileSize;
1538 DWORD bV5Reserved;
1539} BITMAPV5HEADER,*LPBITMAPV5HEADER,*PBITMAPV5HEADER;
1540#endif
1541typedef struct tagFONTSIGNATURE {
1545typedef struct tagCHARSETINFO {
1550typedef struct tagCOLORADJUSTMENT {
1564typedef struct _devicemodeA {
1571 _ANONYMOUS_UNION union {
1572 _ANONYMOUS_STRUCT struct {
1577 short dmScale;
1582 struct {
1588 short dmColor;
1598 _ANONYMOUS_UNION union {
1603#if(WINVER >= 0x0400)
1604 DWORD dmICMMethod;
1605 DWORD dmICMIntent;
1606 DWORD dmMediaType;
1607 DWORD dmDitherType;
1608 DWORD dmReserved1;
1609 DWORD dmReserved2;
1610#if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)
1611 DWORD dmPanningWidth;
1612 DWORD dmPanningHeight;
1613#endif
1614#endif /* WINVER >= 0x0400 */
1616typedef struct _devicemodeW {
1623 _ANONYMOUS_UNION union {
1624 _ANONYMOUS_STRUCT struct {
1629 short dmScale;
1634 struct {
1640 short dmColor;
1650 _ANONYMOUS_UNION union {
1655#if(WINVER >= 0x0400)
1656 DWORD dmICMMethod;
1657 DWORD dmICMIntent;
1658 DWORD dmMediaType;
1659 DWORD dmDitherType;
1660 DWORD dmReserved1;
1661 DWORD dmReserved2;
1662#if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)
1663 DWORD dmPanningWidth;
1664 DWORD dmPanningHeight;
1665#endif
1666#endif /* WINVER >= 0x0400 */
1668typedef struct tagDIBSECTION {
1675typedef struct _DOCINFOA {
1682typedef struct _DOCINFOW {
1689typedef struct tagEMR {
1693
1694#if(WINVER >= 0x0400)
1695typedef struct tagEMRGLSRECORD {
1696 EMR emr;
1697 DWORD cbData;
1698 BYTE Data[1];
1699} EMRGLSRECORD, *PEMRGLSRECORD;
1700typedef struct tagEMRGLSBOUNDEDRECORD {
1701 EMR emr;
1702 RECTL rclBounds;
1703 DWORD cbData;
1704 BYTE Data[1];
1705} EMRGLSBOUNDEDRECORD, *PEMRGLSBOUNDEDRECORD;
1706#endif
1707typedef struct tagEMRANGLEARC {
1714typedef struct tagEMRARC {
1720typedef struct _XFORM {
1728typedef struct tagEMRBITBLT {
1746typedef struct tagLOGBRUSH {
1752typedef struct tagLOGBRUSH32 {
1764typedef struct tagLOGCOLORSPACEA {
1776typedef struct tagLOGCOLORSPACEW {
1819
1820#ifndef _PALETTEENTRY_DEFINED
1821#define _PALETTEENTRY_DEFINED
1822typedef struct tagPALETTEENTRY {
1828#endif
1829
1830#ifndef _LOGPALETTE_DEFINED
1831#define _LOGPALETTE_DEFINED
1832typedef struct tagLOGPALETTE {
1837#endif
1838
1839typedef struct tagEMRCREATEPALETTE {
1844typedef struct tagLOGPEN {
1849typedef struct tagEMRCREATEPEN {
1854typedef struct tagEMRELLIPSE {
1858typedef struct tagEMREOF {
1868typedef struct tagPANOSE {
1880typedef struct tagLOGFONTA {
1896typedef struct tagLOGFONTW {
1912typedef struct tagEXTLOGFONTA {
1924typedef struct tagEXTLOGFONTW {
1941typedef struct tagEXTLOGPEN {
1950typedef struct tagEMREXTCREATEPEN {
1959typedef struct tagEMREXTFLOODFILL {
1971typedef struct tagEMRTEXT {
1979typedef struct tagEMREXTTEXTOUTA {
1987typedef struct tagEMRFILLPATH {
1991typedef struct tagEMRFILLRGN {
1998typedef struct tagEMRFORMAT {
2004
2005
2007{
2012
2013typedef struct tagEMRFRAMERGN {
2021typedef struct tagEMRGDICOMMENT {
2026typedef struct tagEMRINVERTRGN {
2032typedef struct tagEMRLINETO {
2036typedef struct tagEMRMASKBLT {
2066typedef struct tagEMROFFSETCLIPRGN {
2070typedef struct tagEMRPLGBLT {
2093typedef struct tagEMRPOLYDRAW {
2100typedef struct tagEMRPOLYDRAW16 {
2107typedef struct tagEMRPOLYLINE {
2113typedef struct tagEMRPOLYLINE16 {
2119typedef struct tagEMRPOLYPOLYLINE {
2127typedef struct tagEMRPOLYPOLYLINE16 {
2135typedef struct tagEMRPOLYTEXTOUTA {
2144typedef struct tagEMRRESIZEPALETTE {
2149typedef struct tagEMRRESTOREDC {
2153typedef struct tagEMRROUNDRECT {
2165
2166
2167typedef struct tagEMRSELECTOBJECT {
2171typedef struct tagEMRSELECTPALETTE {
2179typedef struct tagEMRSETTEXTCOLOR {
2204typedef struct tagEMRSETMAPPERFLAGS {
2208typedef struct tagEMRSETMITERLIMIT {
2219typedef struct tagEMRSETPIXELV {
2236typedef struct tagEMRSTRETCHBLT {
2256typedef struct tagEMRALPHABLEND {
2276typedef struct tagEMRSTRETCHDIBITS {
2294typedef struct tagABORTPATH {
2297typedef struct tagEMRSELECTCLIPPATH {
2303#if(WINVER >= 0x0500)
2304 EMRSETLAYOUT, *PEMRSETLAYOUT,
2305#endif
2307
2308#include "pshpack2.h"
2309typedef struct tagMETAHEADER {
2318#include "poppack.h"
2319typedef struct tagENHMETAHEADER {
2335#if (WINVER >= 0x0400)
2336 DWORD cbPixelFormat;
2337 DWORD offPixelFormat;
2338 DWORD bOpenGL;
2339#endif
2340#if (WINVER >= 0x0500)
2341 SIZEL szlMicrometers;
2342#endif
2344typedef struct tagMETARECORD {
2349typedef struct tagENHMETARECORD {
2354typedef struct tagHANDLETABLE {
2357
2358#ifndef _TEXTMETRIC_DEFINED
2359#define _TEXTMETRIC_DEFINED
2360typedef struct tagTEXTMETRICA {
2382typedef struct tagTEXTMETRICW {
2404#endif
2405
2406typedef struct _RGNDATAHEADER {
2407 DWORD dwSize;
2408 DWORD iType;
2409 DWORD nCount;
2411 RECT rcBound;
2413typedef struct _RGNDATA {
2415 char Buffer[1];
2417/* for GetRandomRgn */
2418#define SYSRGN 4
2419typedef struct tagGCP_RESULTSA {
2430typedef struct tagGCP_RESULTSW {
2441typedef struct _GLYPHMETRICS {
2448#if (_WIN32_WINNT >= 0x0500)
2449typedef struct tagWCRANGE
2450{
2451 WCHAR wcLow;
2453} WCRANGE, *PWCRANGE, *LPWCRANGE;
2454typedef struct tagGLYPHSET
2455{
2456 DWORD cbThis;
2457 DWORD flAccel;
2458 DWORD cGlyphsSupported;
2459 DWORD cRanges;
2460 WCRANGE ranges[1];
2461} GLYPHSET, *PGLYPHSET, *LPGLYPHSET;
2462#endif
2463typedef struct tagKERNINGPAIR {
2468typedef struct _FIXED {
2470 short value;
2472typedef struct _MAT2 {
2478typedef struct _OUTLINETEXTMETRICA {
2512typedef struct _OUTLINETEXTMETRICW {
2546typedef struct _RASTERIZER_STATUS {
2547 short nSize;
2548 short wFlags;
2551typedef struct _POLYTEXTA {
2552 int x;
2553 int y;
2558 int *pdx;
2560typedef struct _POLYTEXTW {
2561 int x;
2562 int y;
2567 int *pdx;
2597
2598typedef struct tagEMRPIXELFORMAT
2599{
2603
2604typedef struct tagMETAFILEPICT {
2608 HMETAFILE hMF;
2610typedef struct tagLOCALESIGNATURE {
2616#include "pshpack4.h"
2617typedef struct tagNEWTEXTMETRICA {
2643typedef struct tagNEWTEXTMETRICW {
2669#include "poppack.h"
2670typedef struct tagNEWTEXTMETRICEXA {
2674typedef struct tagNEWTEXTMETRICEXW {
2678typedef struct tagPELARRAY {
2685typedef struct tagENUMLOGFONTA {
2690typedef struct tagENUMLOGFONTW {
2695typedef struct tagENUMLOGFONTEXA {
2701typedef struct tagENUMLOGFONTEXW {
2707typedef struct tagPOINTFX {
2711typedef struct tagTTPOLYCURVE {
2716typedef struct tagTTPOLYGONHEADER {
2721typedef struct _POINTFLOAT {
2725typedef struct _GLYPHMETRICSFLOAT {
2758typedef struct _BLENDFUNCTION {
2764#define STAMP_DESIGNVECTOR (0x8000000 + 'd' + ('v' << 8))
2765#define STAMP_AXESLIST (0x8000000 + 'a' + ('l' << 8))
2766#define MM_MAX_NUMAXES 16
2767typedef struct _DESIGNVECTOR {
2773{
2778{
2783typedef struct _TRIVERTEX {
2791typedef struct tagEMRGRADIENTFILL {
2799typedef struct _GRADIENT_TRIANGLE {
2804typedef struct _GRADIENT_RECT {
2808typedef struct _DISPLAY_DEVICEA {
2816typedef struct _DISPLAY_DEVICEW {
2824#define MM_MAX_AXES_NAMELEN 16
2825typedef struct _AXISINFOA
2826{
2831typedef struct _AXISINFOW
2832{
2837typedef struct _AXESLISTA
2838{
2843typedef struct _AXESLISTW
2844{
2849typedef struct _ENUMTEXTMETRICA
2850{
2854typedef struct _ENUMTEXTMETRICW
2855{
2859
2860
2861#if defined(STRICT)
2862
2863#if !defined(NOTEXTMETRIC)
2864
2865typedef int (CALLBACK *OLDFONTENUMPROCA)(CONST LOGFONTA *, CONST TEXTMETRICA *, DWORD, LPARAM);
2866typedef int (CALLBACK *OLDFONTENUMPROCW)(CONST LOGFONTW *, CONST TEXTMETRICW *, DWORD, LPARAM);
2867
2868#else
2869
2870typedef int (CALLBACK* OLDFONTENUMPROCA)(CONST LOGFONTA *, CONST VOID *, DWORD, LPARAM);
2871typedef int (CALLBACK* OLDFONTENUMPROCW)(CONST LOGFONTW *, CONST VOID *, DWORD, LPARAM);
2872
2873#endif
2874
2875#ifdef UNICODE
2876#define OLDFONTENUMPROC OLDFONTENUMPROCW
2877#else
2878#define OLDFONTENUMPROC OLDFONTENUMPROCA
2879#endif
2880
2881typedef OLDFONTENUMPROCA FONTENUMPROCA;
2882typedef OLDFONTENUMPROCW FONTENUMPROCW;
2883
2884#ifdef UNICODE
2886#else
2888#endif
2889
2891typedef VOID (CALLBACK *LINEDDAPROC)(INT, INT, LPARAM);
2892
2893#else // defined(STRICT)
2894
2898
2899#ifdef UNICODE
2901#else
2903#endif
2904
2907
2908#endif
2909
2910
2912
2913typedef int
2915 _In_ HDC hdc,
2916 _In_reads_(nObj) HANDLETABLE FAR* lpht,
2917 _In_ METARECORD FAR* lpMR,
2918 _In_ int nObj,
2920
2921typedef int
2923 _In_ HDC hdc,
2924 _In_reads_(nHandles) HANDLETABLE FAR* lpht,
2925 _In_ CONST ENHMETARECORD * lpmr,
2926 _In_ int nHandles,
2928
2933
2934
2935#define GetRValue(rgb) ((BYTE)(rgb))
2936#define GetGValue(rgb) ((BYTE)(((WORD)(rgb)) >> 8))
2937#define GetBValue(rgb) ((BYTE)((rgb)>>16))
2938#define GetAValue(rgb) ((BYTE)((rgb)>>24))
2939
2940#define RGB(r,g,b) ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8))|(((DWORD)(BYTE)(b))<<16)))
2941#define RGBA(r,g,b,a) ((COLORREF)((((DWORD)(BYTE)(a))<<24) | RGB(r,g,b)))
2942#define PALETTERGB(r,g,b) (0x02000000 | RGB(r,g,b))
2943#define PALETTEINDEX(i) ((COLORREF)(0x01000000 | (DWORD)(WORD)(i)))
2944
2945#define MAKEPOINTS(l) (*((POINTS*)&(l)))
2946#define MAKEROP4(f,b) (DWORD)((((b)<<8)&0xFF000000)|(f))
2947
2948INT
2949WINAPI
2951 _In_ HDC hdc);
2952
2953BOOL
2954WINAPI
2956 _In_ HDC hdc);
2957
2958int
2959WINAPI
2961 _In_ LPCSTR pszFilename);
2962
2963int
2964WINAPI
2966 _In_ LPCWSTR pszFilename);
2967
2968HANDLE
2969WINAPI
2971 _In_reads_bytes_(cjSize) PVOID pvFileView,
2973 _Reserved_ PVOID pvResrved,
2974 _In_ DWORD* pNumFonts);
2975
2976INT
2977WINAPI
2979 _In_ LPCSTR pszFilename,
2980 _In_ DWORD fl,
2982
2983INT
2984WINAPI
2986 _In_ LPCWSTR pszFilename,
2987 _In_ DWORD fl,
2989
2990BOOL
2991WINAPI
2992AngleArc(
2993 _In_ HDC hdc,
2994 _In_ INT x,
2995 _In_ INT y,
2996 _In_ DWORD dwRadius,
2997 _In_ FLOAT eStartAngle,
2998 _In_ FLOAT eSweepAngle);
2999
3000BOOL
3001WINAPI
3003 _In_ HPALETTE hPal,
3004 _In_ UINT iStartIndex,
3007
3008BOOL
3009WINAPI
3010Arc(
3011 _In_ HDC hdc,
3012 _In_ INT xLeft,
3013 _In_ INT yTop,
3014 _In_ INT xRight,
3015 _In_ INT yBottom,
3016 _In_ INT xStartArc,
3017 _In_ INT yStartArc,
3018 _In_ INT xEndArc,
3019 _In_ INT yEndArc);
3020
3021BOOL
3022WINAPI
3023ArcTo(
3024 _In_ HDC hdc,
3025 _In_ INT xLeft,
3026 _In_ INT yTop,
3027 _In_ INT xRight,
3028 _In_ INT yBottom,
3029 _In_ INT xRadial1,
3030 _In_ INT yRadial1,
3031 _In_ INT xRadial2,
3032 _In_ INT yRadial2);
3033
3034BOOL
3035WINAPI
3037 _In_ HDC hdc);
3038
3039BOOL
3040WINAPI
3041BitBlt(
3042 _In_ HDC hdcDest,
3043 _In_ INT xDest,
3044 _In_ INT yDest,
3045 _In_ INT cxDest,
3046 _In_ INT cyDest,
3048 _In_ INT xSrc,
3049 _In_ INT ySrc,
3050 _In_ DWORD dwRop);
3051
3052BOOL
3053WINAPI
3055 _In_ HDC hdc);
3056
3057BOOL
3058WINAPI
3060 _In_ HDC hdc,
3061 _In_reads_(nCount) LPVOID pRGBTriple,
3062 _Out_writes_bytes_(nCount) LPVOID pvBuffer,
3063 _In_ DWORD nCount);
3064
3065BOOL
3066WINAPI
3067Chord(
3068 _In_ HDC hdc,
3069 _In_ INT xLeft,
3070 _In_ INT yTop,
3071 _In_ INT xRight,
3072 _In_ INT yBottom,
3073 _In_ INT xRadial1,
3074 _In_ INT yRadial1,
3075 _In_ INT xRadial2,
3076 _In_ INT yRadial2);
3077
3078int
3079WINAPI
3081 _In_ HDC hdc,
3083
3084HENHMETAFILE
3085WINAPI
3087 _In_ HDC hdc);
3088
3089BOOL
3090WINAPI
3092 _In_ HDC hdc);
3093
3094HMETAFILE
3095WINAPI
3097 _In_ HDC hdc);
3098
3099BOOL
3100WINAPI
3102 _In_ HDC hdc,
3104 _In_ DWORD uAction);
3105
3106int
3107WINAPI
3109 _In_opt_ HRGN hrgnDest,
3110 _In_opt_ HRGN hrgnSrc1,
3111 _In_opt_ HRGN hrgnSrc2,
3112 _In_ int fnCombineMode);
3113
3114BOOL
3115WINAPI
3117 _Out_ LPXFORM pxformResult,
3118 _In_ const XFORM* pxform1,
3119 _In_ const XFORM* pxform2);
3120
3121HENHMETAFILE
3122WINAPI
3124 _In_ HENHMETAFILE hemfSrc,
3125 _In_opt_ LPCSTR pszFile);
3126
3127HENHMETAFILE
3128WINAPI
3130 _In_ HENHMETAFILE hemfSrc,
3131 _In_opt_ LPCWSTR pszFile);
3132
3133HMETAFILE
3134WINAPI
3136 _In_ HMETAFILE hmfSrc,
3137 _In_opt_ LPCSTR pszFile);
3138
3139HMETAFILE
3140WINAPI
3142 _In_ HMETAFILE hmfSrc,
3143 _In_opt_ LPCWSTR pszFile);
3144
3145HBITMAP
3146WINAPI
3148 _In_ INT cx,
3149 _In_ INT cy,
3150 _In_ UINT cPlanes,
3151 _In_ UINT cBitsPerPel,
3152 _In_opt_ const VOID* pvBits);
3153
3154HBITMAP
3155WINAPI
3157 _In_ const BITMAP* pbm);
3158
3159HBRUSH
3160WINAPI
3162 _In_ const LOGBRUSH* plb);
3163
3164HCOLORSPACE
3165WINAPI
3168
3169HCOLORSPACE
3170WINAPI
3173
3174HBITMAP
3175WINAPI
3177 _In_ HDC hdc,
3178 _In_ INT cx,
3179 _In_ INT cy);
3180
3181HDC
3182WINAPI
3184 _In_opt_ HDC hdc);
3185
3186HDC
3187WINAPI
3189 _In_opt_ LPCSTR pszDriver,
3190 _In_opt_ LPCSTR pszDevice,
3191 _In_opt_ LPCSTR pszOutput,
3192 _In_opt_ const DEVMODEA* pdmInit);
3193
3194HDC
3195WINAPI
3197 _In_opt_ LPCWSTR pszDriver,
3198 _In_opt_ LPCWSTR pszDevice,
3199 _In_opt_ LPCWSTR psz,
3200 _In_opt_ const DEVMODEW* pdmInit);
3201
3202HBITMAP
3203WINAPI
3205 _In_ HDC hdc,
3206 _In_opt_ const BITMAPINFOHEADER* pbmih,
3207 _In_ DWORD fdwInit,
3208 _In_opt_ const VOID* pvInit,
3209 _In_opt_ const BITMAPINFO* pbmi,
3210 _In_ UINT uUsage);
3211
3212HBRUSH
3213WINAPI
3215 _In_ HGLOBAL hglbDIBPacked,
3216 _In_ UINT uUsage);
3217
3218HBRUSH
3219WINAPI
3221 _In_ const VOID* pvPackedDIB,
3222 _In_ UINT uUsage);
3223
3224#define GDI_WIDTHBYTES(bits) ((DWORD)(((bits) + 31) & (~31)) / 8)
3225#define GDI_DIBWIDTHBYTES(bi) (DWORD)GDI_WIDTHBYTES((DWORD)(bi).biWidth * (DWORD)(bi).biBitCount)
3226#define GDI__DIBSIZE(bi) (GDI_DIBWIDTHBYTES(bi) * (DWORD)(bi).biHeight)
3227#define GDI_DIBSIZE(bi) ((bi).biHeight < 0 ? (-1) * (GDI__DIBSIZE(bi)) : GDI__DIBSIZE(bi))
3228
3229_Success_(return != NULL)
3230HBITMAP
3231WINAPI
3238 VOID **ppvBits,
3241
3243HRGN WINAPI CreateEllipticRgn(_In_ int, _In_ int, _In_ int, _In_ int);
3259
3260HPALETTE
3261WINAPI
3263 _In_reads_(_Inexpressible_(2*sizeof(WORD) + plpal->palNumEntries * sizeof(PALETTEENTRY))) const LOGPALETTE*);
3264
3268
3269HRGN
3270WINAPI
3272 _In_reads_(cPoint) const POINT *pptl,
3273 _In_ int cPoint,
3274 _In_ int iMode);
3275
3276HRGN
3277WINAPI
3279 _In_ const POINT *pptl,
3280 _In_reads_(cPoly) const INT *pc,
3281 _In_ int cPoly,
3282 _In_ int iMode);
3283
3284HRGN WINAPI CreateRectRgn(_In_ int, _In_ int, _In_ int, _In_ int);
3286HRGN WINAPI CreateRoundRectRgn(_In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int);