[MSVCRT_WINETEST] Sync with Wine Staging 1.7.55. CORE-10536
[reactos.git] / reactos / include / psdk / wingdi.h
1 #ifndef _WINGDI_H
2 #define _WINGDI_H
3 #define _WINGDI_
4
5 #ifndef NOGDI
6
7 #ifdef __cplusplus
8 extern "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_SETTEXTCOLOR 0x209
219 #define META_SETTEXTJUSTIFICATION 0x20A
220 #define META_SETWINDOWORG 0x20B
221 #define META_SETWINDOWEXT 0x20C
222 #define META_SETVIEWPORTORG 0x20D
223 #define META_SETVIEWPORTEXT 0x20E
224 #define META_OFFSETWINDOWORG 0x20F
225 #define META_SCALEWINDOWEXT 0x410
226 #define META_OFFSETVIEWPORTORG 0x211
227 #define META_SCALEVIEWPORTEXT 0x412
228 #define META_LINETO 0x213
229 #define META_MOVETO 0x214
230 #define META_EXCLUDECLIPRECT 0x415
231 #define META_INTERSECTCLIPRECT 0x416
232 #define META_ARC 0x817
233 #define META_ELLIPSE 0x418
234 #define META_FLOODFILL 0x419
235 #define META_PIE 0x81A
236 #define META_RECTANGLE 0x41B
237 #define META_ROUNDRECT 0x61C
238 #define META_PATBLT 0x61D
239 #define META_SAVEDC 0x1E
240 #define META_SETPIXEL 0x41F
241 #define META_OFFSETCLIPRGN 0x220
242 #define META_TEXTOUT 0x521
243 #define META_BITBLT 0x922
244 #define META_STRETCHBLT 0xB23
245 #define META_POLYGON 0x324
246 #define META_POLYLINE 0x325
247 #define META_ESCAPE 0x626
248 #define META_RESTOREDC 0x127
249 #define META_FILLREGION 0x228
250 #define META_FRAMEREGION 0x429
251 #define META_INVERTREGION 0x12A
252 #define META_PAINTREGION 0x12B
253 #define META_SELECTCLIPREGION 0x12C
254 #define META_SELECTOBJECT 0x12D
255 #define META_SETTEXTALIGN 0x12E
256 #define META_CHORD 0x830
257 #define META_SETMAPPERFLAGS 0x231
258 #define META_EXTTEXTOUT 0xa32
259 #define META_SETDIBTODEV 0xd33
260 #define META_SELECTPALETTE 0x234
261 #define META_REALIZEPALETTE 0x35
262 #define META_ANIMATEPALETTE 0x436
263 #define META_SETPALENTRIES 0x37
264 #define META_POLYPOLYGON 0x538
265 #define META_RESIZEPALETTE 0x139
266 #define META_DIBBITBLT 0x940
267 #define META_DIBSTRETCHBLT 0xb41
268 #define META_DIBCREATEPATTERNBRUSH 0x142
269 #define META_STRETCHDIB 0xf43
270 #define META_EXTFLOODFILL 0x548
271 #define META_DELETEOBJECT 0x1f0
272 #define META_CREATEPALETTE 0xf7
273 #define META_CREATEPATTERNBRUSH 0x1F9
274 #define META_CREATEPENINDIRECT 0x2FA
275 #define META_CREATEFONTINDIRECT 0x2FB
276 #define META_CREATEBRUSHINDIRECT 0x2FC
277 #define META_CREATEREGION 0x6FF
278 #define META_DRAWTEXT 0x062F
279 #define META_RESETDC 0x014C
280 #define META_STARTDOC 0x014D
281 #define META_STARTPAGE 0x004F
282 #define META_ENDPAGE 0x0050
283 #define META_ABORTDOC 0x0052
284 #define META_ENDDOC 0x005E
285 #define META_CREATEBRUSH 0x00F8
286 #define META_CREATEBITMAPINDIRECT 0x02FD
287 #define META_CREATEBITMAP 0x06FE
288 #define PT_MOVETO 6
289 #define PT_LINETO 2
290 #define PT_BEZIERTO 4
291 #define PT_CLOSEFIGURE 1
292 #define ELF_VENDOR_SIZE 4
293 #define ELF_VERSION 0
294 #define ELF_CULTURE_LATIN 0
295 #define PFD_TYPE_RGBA 0
296 #define PFD_TYPE_COLORINDEX 1
297 #define PFD_MAIN_PLANE 0
298 #define PFD_OVERLAY_PLANE 1
299 #define PFD_UNDERLAY_PLANE (-1)
300 #define PFD_DOUBLEBUFFER 1
301 #define PFD_STEREO 2
302 #define PFD_DRAW_TO_WINDOW 4
303 #define PFD_DRAW_TO_BITMAP 8
304 #define PFD_SUPPORT_GDI 16
305 #define PFD_SUPPORT_OPENGL 32
306 #define PFD_GENERIC_FORMAT 64
307 #define PFD_NEED_PALETTE 128
308 #define PFD_NEED_SYSTEM_PALETTE 0x00000100
309 #define PFD_SWAP_EXCHANGE 0x00000200
310 #define PFD_SWAP_COPY 0x00000400
311 #define PFD_SWAP_LAYER_BUFFERS 0x00000800
312 #define PFD_GENERIC_ACCELERATED 0x00001000
313 #define PFD_DEPTH_DONTCARE 0x20000000
314 #define PFD_DOUBLEBUFFER_DONTCARE 0x40000000
315 #define PFD_STEREO_DONTCARE 0x80000000
316 #define SP_ERROR (-1)
317 #define SP_OUTOFDISK (-4)
318 #define SP_OUTOFMEMORY (-5)
319 #define SP_USERABORT (-3)
320 #define SP_APPABORT (-2)
321 #define BLACKNESS 0x42
322 #define NOTSRCERASE 0x1100A6
323 #define NOTSRCCOPY 0x330008
324 #define SRCERASE 0x440328
325 #define DSTINVERT 0x550009
326 #define PATINVERT 0x5A0049
327 #define SRCINVERT 0x660046
328 #define SRCAND 0x8800C6
329 #define MERGEPAINT 0xBB0226
330 #define MERGECOPY 0xC000CA
331 #define SRCCOPY 0xCC0020
332 #define SRCPAINT 0xEE0086
333 #define PATCOPY 0xF00021
334 #define PATPAINT 0xFB0A09
335 #define WHITENESS 0xFF0062
336 #define R2_BLACK 1
337 #define R2_COPYPEN 13
338 #define R2_MASKNOTPEN 3
339 #define R2_MASKPEN 9
340 #define R2_MASKPENNOT 5
341 #define R2_MERGENOTPEN 12
342 #define R2_MERGEPEN 15
343 #define R2_MERGEPENNOT 14
344 #define R2_NOP 11
345 #define R2_NOT 6
346 #define R2_NOTCOPYPEN 4
347 #define R2_NOTMASKPEN 8
348 #define R2_NOTMERGEPEN 2
349 #define R2_NOTXORPEN 10
350 #define R2_WHITE 16
351 #define R2_XORPEN 7
352 #define CM_OUT_OF_GAMUT 255
353 #define CM_IN_GAMUT 0
354 #define RGN_AND 1
355 #define RGN_COPY 5
356 #define RGN_DIFF 4
357 #define RGN_OR 2
358 #define RGN_XOR 3
359 #define NULLREGION 1
360 #define SIMPLEREGION 2
361 #define COMPLEXREGION 3
362 #define ERROR 0
363 #define CBM_INIT 4
364 #define DIB_PAL_COLORS 1
365 #define DIB_RGB_COLORS 0
366 #define FW_DONTCARE 0
367 #define FW_THIN 100
368 #define FW_EXTRALIGHT 200
369 #define FW_ULTRALIGHT FW_EXTRALIGHT
370 #define FW_LIGHT 300
371 #define FW_NORMAL 400
372 #define FW_REGULAR 400
373 #define FW_MEDIUM 500
374 #define FW_SEMIBOLD 600
375 #define FW_DEMIBOLD FW_SEMIBOLD
376 #define FW_BOLD 700
377 #define FW_EXTRABOLD 800
378 #define FW_ULTRABOLD FW_EXTRABOLD
379 #define FW_HEAVY 900
380 #define FW_BLACK FW_HEAVY
381 #define ANSI_CHARSET 0
382 #define DEFAULT_CHARSET 1
383 #define SYMBOL_CHARSET 2
384 #define SHIFTJIS_CHARSET 128
385 #define HANGEUL_CHARSET 129
386 #define HANGUL_CHARSET 129
387 #define GB2312_CHARSET 134
388 #define CHINESEBIG5_CHARSET 136
389 #define GREEK_CHARSET 161
390 #define TURKISH_CHARSET 162
391 #define HEBREW_CHARSET 177
392 #define ARABIC_CHARSET 178
393 #define BALTIC_CHARSET 186
394 #define RUSSIAN_CHARSET 204
395 #define THAI_CHARSET 222
396 #define EE_CHARSET 238
397 #define EASTEUROPE_CHARSET 238
398 #define OEM_CHARSET 255
399 #define JOHAB_CHARSET 130
400 #define VIETNAMESE_CHARSET 163
401 #define MAC_CHARSET 77
402 /* I don't know if the values of *_CHARSET macros are defined in Windows
403 * or if we can choose them as we want. -- srtxg
404 */
405 #define VISCII_CHARSET (BYTE)240 /* viscii1.1-1 */
406 #define TCVN_CHARSET (BYTE)241 /* tcvn-0 */
407 #define KOI8_CHARSET (BYTE)242 /* koi8-{r,u,ru} */
408 #define ISO3_CHARSET (BYTE)243 /* iso8859-3 */
409 #define ISO4_CHARSET (BYTE)244 /* iso8859-4 */
410 #define ISO10_CHARSET (BYTE)245 /* iso8859-10 */
411 #define CELTIC_CHARSET (BYTE)246 /* iso8859-14 */
412
413 #define OUT_DEFAULT_PRECIS 0
414 #define OUT_STRING_PRECIS 1
415 #define OUT_CHARACTER_PRECIS 2
416 #define OUT_STROKE_PRECIS 3
417 #define OUT_TT_PRECIS 4
418 #define OUT_DEVICE_PRECIS 5
419 #define OUT_RASTER_PRECIS 6
420 #define OUT_TT_ONLY_PRECIS 7
421 #define OUT_OUTLINE_PRECIS 8
422 #define OUT_SCREEN_OUTLINE_PRECIS 9
423 #define OUT_PS_ONLY_PRECIS 10
424 #define CLIP_DEFAULT_PRECIS 0
425 #define CLIP_CHARACTER_PRECIS 1
426 #define CLIP_STROKE_PRECIS 2
427 #define CLIP_MASK 15
428 #define CLIP_LH_ANGLES 16
429 #define CLIP_TT_ALWAYS 32
430 #if (_WIN32_WINNT >= _WIN32_WINNT_LONGHORN)
431 #define CLIP_DFA_DISABLE 64
432 #endif
433 #define CLIP_EMBEDDED 128
434 #define DEFAULT_QUALITY 0
435 #define DRAFT_QUALITY 1
436 #define PROOF_QUALITY 2
437 #define NONANTIALIASED_QUALITY 3
438 #define ANTIALIASED_QUALITY 4
439 #define CLEARTYPE_QUALITY 5
440 #define CLEARTYPE_NATURAL_QUALITY 6
441 #define DEFAULT_PITCH 0
442 #define FIXED_PITCH 1
443 #define VARIABLE_PITCH 2
444 #define MONO_FONT 8
445 #define FF_DECORATIVE 80
446 #define FF_DONTCARE 0
447 #define FF_MODERN 48
448 #define FF_ROMAN 16
449 #define FF_SCRIPT 64
450 #define FF_SWISS 32
451 #define PANOSE_COUNT 10
452 #define PAN_FAMILYTYPE_INDEX 0
453 #define PAN_SERIFSTYLE_INDEX 1
454 #define PAN_WEIGHT_INDEX 2
455 #define PAN_PROPORTION_INDEX 3
456 #define PAN_CONTRAST_INDEX 4
457 #define PAN_STROKEVARIATION_INDEX 5
458 #define PAN_ARMSTYLE_INDEX 6
459 #define PAN_LETTERFORM_INDEX 7
460 #define PAN_MIDLINE_INDEX 8
461 #define PAN_XHEIGHT_INDEX 9
462 #define PAN_CULTURE_LATIN 0
463 #define PAN_ANY 0
464 #define PAN_NO_FIT 1
465 #define PAN_FAMILY_TEXT_DISPLAY 2
466 #define PAN_FAMILY_SCRIPT 3
467 #define PAN_FAMILY_DECORATIVE 4
468 #define PAN_FAMILY_PICTORIAL 5
469 #define PAN_SERIF_COVE 2
470 #define PAN_SERIF_OBTUSE_COVE 3
471 #define PAN_SERIF_SQUARE_COVE 4
472 #define PAN_SERIF_OBTUSE_SQUARE_COVE 5
473 #define PAN_SERIF_SQUARE 6
474 #define PAN_SERIF_THIN 7
475 #define PAN_SERIF_BONE 8
476 #define PAN_SERIF_EXAGGERATED 9
477 #define PAN_SERIF_TRIANGLE 10
478 #define PAN_SERIF_NORMAL_SANS 11
479 #define PAN_SERIF_OBTUSE_SANS 12
480 #define PAN_SERIF_PERP_SANS 13
481 #define PAN_SERIF_FLARED 14
482 #define PAN_SERIF_ROUNDED 15
483 #define PAN_WEIGHT_VERY_LIGHT 2
484 #define PAN_WEIGHT_LIGHT 3
485 #define PAN_WEIGHT_THIN 4
486 #define PAN_WEIGHT_BOOK 5
487 #define PAN_WEIGHT_MEDIUM 6
488 #define PAN_WEIGHT_DEMI 7
489 #define PAN_WEIGHT_BOLD 8
490 #define PAN_WEIGHT_HEAVY 9
491 #define PAN_WEIGHT_BLACK 10
492 #define PAN_WEIGHT_NORD 11
493 #define PAN_PROP_OLD_STYLE 2
494 #define PAN_PROP_MODERN 3
495 #define PAN_PROP_EVEN_WIDTH 4
496 #define PAN_PROP_EXPANDED 5
497 #define PAN_PROP_CONDENSED 6
498 #define PAN_PROP_VERY_EXPANDED 7
499 #define PAN_PROP_VERY_CONDENSED 8
500 #define PAN_PROP_MONOSPACED 9
501 #define PAN_CONTRAST_NONE 2
502 #define PAN_CONTRAST_VERY_LOW 3
503 #define PAN_CONTRAST_LOW 4
504 #define PAN_CONTRAST_MEDIUM_LOW 5
505 #define PAN_CONTRAST_MEDIUM 6
506 #define PAN_CONTRAST_MEDIUM_HIGH 7
507 #define PAN_CONTRAST_HIGH 8
508 #define PAN_CONTRAST_VERY_HIGH 9
509 #define PAN_STROKE_GRADUAL_DIAG 2
510 #define PAN_STROKE_GRADUAL_TRAN 3
511 #define PAN_STROKE_GRADUAL_VERT 4
512 #define PAN_STROKE_GRADUAL_HORZ 5
513 #define PAN_STROKE_RAPID_VERT 6
514 #define PAN_STROKE_RAPID_HORZ 7
515 #define PAN_STROKE_INSTANT_VERT 8
516 #define PAN_STRAIGHT_ARMS_HORZ 2
517 #define PAN_STRAIGHT_ARMS_WEDGE 3
518 #define PAN_STRAIGHT_ARMS_VERT 4
519 #define PAN_STRAIGHT_ARMS_SINGLE_SERIF 5
520 #define PAN_STRAIGHT_ARMS_DOUBLE_SERIF 6
521 #define PAN_BENT_ARMS_HORZ 7
522 #define PAN_BENT_ARMS_WEDGE 8
523 #define PAN_BENT_ARMS_VERT 9
524 #define PAN_BENT_ARMS_SINGLE_SERIF 10
525 #define PAN_BENT_ARMS_DOUBLE_SERIF 11
526 #define PAN_LETT_NORMAL_CONTACT 2
527 #define PAN_LETT_NORMAL_WEIGHTED 3
528 #define PAN_LETT_NORMAL_BOXED 4
529 #define PAN_LETT_NORMAL_FLATTENED 5
530 #define PAN_LETT_NORMAL_ROUNDED 6
531 #define PAN_LETT_NORMAL_OFF_CENTER 7
532 #define PAN_LETT_NORMAL_SQUARE 8
533 #define PAN_LETT_OBLIQUE_CONTACT 9
534 #define PAN_LETT_OBLIQUE_WEIGHTED 10
535 #define PAN_LETT_OBLIQUE_BOXED 11
536 #define PAN_LETT_OBLIQUE_FLATTENED 12
537 #define PAN_LETT_OBLIQUE_ROUNDED 13
538 #define PAN_LETT_OBLIQUE_OFF_CENTER 14
539 #define PAN_LETT_OBLIQUE_SQUARE 15
540 #define PAN_MIDLINE_STANDARD_TRIMMED 2
541 #define PAN_MIDLINE_STANDARD_POINTED 3
542 #define PAN_MIDLINE_STANDARD_SERIFED 4
543 #define PAN_MIDLINE_HIGH_TRIMMED 5
544 #define PAN_MIDLINE_HIGH_POINTED 6
545 #define PAN_MIDLINE_HIGH_SERIFED 7
546 #define PAN_MIDLINE_CONSTANT_TRIMMED 8
547 #define PAN_MIDLINE_CONSTANT_POINTED 9
548 #define PAN_MIDLINE_CONSTANT_SERIFED 10
549 #define PAN_MIDLINE_LOW_TRIMMED 11
550 #define PAN_MIDLINE_LOW_POINTED 12
551 #define PAN_MIDLINE_LOW_SERIFED 13
552 #define PAN_XHEIGHT_CONSTANT_SMALL 2
553 #define PAN_XHEIGHT_CONSTANT_STD 3
554 #define PAN_XHEIGHT_CONSTANT_LARGE 4
555 #define PAN_XHEIGHT_DUCKING_SMALL 5
556 #define PAN_XHEIGHT_DUCKING_STD 6
557 #define PAN_XHEIGHT_DUCKING_LARGE 7
558 #define FS_LATIN1 1
559 #define FS_LATIN2 2
560 #define FS_CYRILLIC 4
561 #define FS_GREEK 8
562 #define FS_TURKISH 16
563 #define FS_HEBREW 32
564 #define FS_ARABIC 64
565 #define FS_BALTIC 128
566 #define FS_VIETNAMESE 256
567 #define FS_THAI 0x10000
568 #define FS_JISJAPAN 0x20000
569 #define FS_CHINESESIMP 0x40000
570 #define FS_WANSUNG 0x80000
571 #define FS_CHINESETRAD 0x100000
572 #define FS_JOHAB 0x200000
573 #define FS_SYMBOL 0x80000000
574 #define HS_BDIAGONAL 3
575 #define HS_CROSS 4
576 #define HS_DIAGCROSS 5
577 #define HS_FDIAGONAL 2
578 #define HS_HORIZONTAL 0
579 #define HS_VERTICAL 1
580 #define HS_API_MAX 12
581 #define PS_GEOMETRIC 65536
582 #define PS_COSMETIC 0
583 #define PS_ALTERNATE 8
584 #define PS_SOLID 0
585 #define PS_DASH 1
586 #define PS_DOT 2
587 #define PS_DASHDOT 3
588 #define PS_DASHDOTDOT 4
589 #define PS_NULL 5
590 #define PS_USERSTYLE 7
591 #define PS_INSIDEFRAME 6
592 #define PS_ENDCAP_ROUND 0
593 #define PS_ENDCAP_SQUARE 256
594 #define PS_ENDCAP_FLAT 512
595 #define PS_JOIN_BEVEL 4096
596 #define PS_JOIN_MITER 8192
597 #define PS_JOIN_ROUND 0
598 #define PS_JOIN_MASK 0x0000F000
599 #define PS_STYLE_MASK 15
600 #define PS_ENDCAP_MASK 3840
601 #define PS_TYPE_MASK 983040
602 #define ALTERNATE 1
603 #define WINDING 2
604 #define POLYFILL_LAST 2
605 #define DC_BINNAMES 12
606 #define DC_BINS 6
607 #define DC_COPIES 18
608 #define DC_DRIVER 11
609 #define DC_DATATYPE_PRODUCED 21
610 #define DC_DUPLEX 7
611 #define DC_EMF_COMPLIANT 20
612 #define DC_ENUMRESOLUTIONS 13
613 #define DC_EXTRA 9
614 #define DC_FIELDS 1
615 #define DC_FILEDEPENDENCIES 14
616 #define DC_MAXEXTENT 5
617 #define DC_MINEXTENT 4
618 #define DC_ORIENTATION 17
619 #define DC_PAPERNAMES 16
620 #define DC_PAPERS 2
621 #define DC_PAPERSIZE 3
622 #define DC_SIZE 8
623 #define DC_TRUETYPE 15
624 #define DCTT_BITMAP 1
625 #define DCTT_DOWNLOAD 2
626 #define DCTT_SUBDEV 4
627 #define DCTT_DOWNLOAD_OUTLINE 8
628 #define DC_VERSION 10
629 #define DC_BINADJUST 19
630 #define DC_EMF_COMPLIANT 20
631 #define DC_DATATYPE_PRODUCED 21
632 #define DC_MANUFACTURER 23
633 #define DC_MODEL 24
634 #define DCBA_FACEUPNONE 0
635 #define DCBA_FACEUPCENTER 1
636 #define DCBA_FACEUPLEFT 2
637 #define DCBA_FACEUPRIGHT 3
638 #define DCBA_FACEDOWNNONE 256
639 #define DCBA_FACEDOWNCENTER 257
640 #define DCBA_FACEDOWNLEFT 258
641 #define DCBA_FACEDOWNRIGHT 259
642 #define FLOODFILLBORDER 0
643 #define FLOODFILLSURFACE 1
644 #define ETO_GRAYED 0x00001
645 #define ETO_OPAQUE 0x00002
646 #define ETO_CLIPPED 0x00004
647 #if (WINVER >= 0x0400)
648 #define ETO_GLYPH_INDEX 0x00010
649 #define ETO_RTLREADING 0x00080
650 #define ETO_NUMERICSLOCAL 0x00400
651 #define ETO_NUMERICSLATIN 0x00800
652 #define ETO_IGNORELANGUAGE 0x01000
653 #endif
654 #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
655 #define ETO_PDY 0x02000
656 #endif
657 #if (_WIN32_WINNT >= _WIN32_WINNT_LONGHORN)
658 #define ETO_REVERSE_INDEX_MAP 0x10000
659 #endif
660 #define GDICOMMENT_WINDOWS_METAFILE (-2147483647)
661 #define GDICOMMENT_BEGINGROUP 2
662 #define GDICOMMENT_ENDGROUP 3
663 #define GDICOMMENT_MULTIFORMATS 1073741828
664 #define GDICOMMENT_IDENTIFIER 1128875079
665 #define AD_COUNTERCLOCKWISE 1
666 #define AD_CLOCKWISE 2
667 #define RDH_RECTANGLES 1
668 #define GCPCLASS_LATIN 1
669 #define GCPCLASS_HEBREW 2
670 #define GCPCLASS_ARABIC 2
671 #define GCPCLASS_NEUTRAL 3
672 #define GCPCLASS_LOCALNUMBER 4
673 #define GCPCLASS_LATINNUMBER 5
674 #define GCPCLASS_LATINNUMERICTERMINATOR 6
675 #define GCPCLASS_LATINNUMERICSEPARATOR 7
676 #define GCPCLASS_NUMERICSEPARATOR 8
677 #define GCPCLASS_PREBOUNDLTR 128
678 #define GCPCLASS_PREBOUNDRTL 64
679 #define GCPCLASS_POSTBOUNDLTR 32
680 #define GCPCLASS_POSTBOUNDRTL 16
681 #define GCPGLYPH_LINKBEFORE 0x8000
682 #define GCPGLYPH_LINKAFTER 0x4000
683 #define DCB_DISABLE 8
684 #define DCB_ENABLE 4
685 #define DCB_RESET 1
686 #define DCB_SET 3
687 #define DCB_ACCUMULATE 2
688 #define DCB_DIRTY 2
689 #define OBJ_BRUSH 2
690 #define OBJ_PEN 1
691 #define OBJ_PAL 5
692 #define OBJ_FONT 6
693 #define OBJ_BITMAP 7
694 #define OBJ_EXTPEN 11
695 #define OBJ_REGION 8
696 #define OBJ_DC 3
697 #define OBJ_MEMDC 10
698 #define OBJ_METAFILE 9
699 #define OBJ_METADC 4
700 #define OBJ_ENHMETAFILE 13
701 #define OBJ_ENHMETADC 12
702 #define OBJ_COLORSPACE 14
703 #define DRIVERVERSION 0
704 #define TECHNOLOGY 2
705 #define DT_PLOTTER 0
706 #define DT_RASDISPLAY 1
707 #define DT_RASPRINTER 2
708 #define DT_RASCAMERA 3
709 #define DT_CHARSTREAM 4
710 #define DT_METAFILE 5
711 #define DT_DISPFILE 6
712 #define HORZSIZE 4
713 #define VERTSIZE 6
714 #define HORZRES 8
715 #define VERTRES 10
716 #define LOGPIXELSX 88
717 #define LOGPIXELSY 90
718 #define BITSPIXEL 12
719 #define PLANES 14
720 #define NUMBRUSHES 16
721 #define NUMPENS 18
722 #define NUMFONTS 22
723 #define NUMCOLORS 24
724 #define NUMMARKERS 20
725 #define ASPECTX 40
726 #define ASPECTY 42
727 #define ASPECTXY 44
728 #define PDEVICESIZE 26
729 #define CLIPCAPS 36
730 #define SIZEPALETTE 104
731 #define NUMRESERVED 106
732 #define COLORRES 108
733 #define PHYSICALWIDTH 110
734 #define PHYSICALHEIGHT 111
735 #define PHYSICALOFFSETX 112
736 #define PHYSICALOFFSETY 113
737 #define SCALINGFACTORX 114
738 #define SCALINGFACTORY 115
739 #define VREFRESH 116
740 #define DESKTOPHORZRES 118
741 #define DESKTOPVERTRES 117
742 #define BLTALIGNMENT 119
743 #define RASTERCAPS 38
744 #define RC_BANDING 2
745 #define RC_BITBLT 1
746 #define RC_BITMAP64 8
747 #define RC_DI_BITMAP 128
748 #define RC_DIBTODEV 512
749 #define RC_FLOODFILL 4096
750 #define RC_GDI20_OUTPUT 16
751 #define RC_PALETTE 256
752 #define RC_SCALING 4
753 #define RC_STRETCHBLT 2048
754 #define RC_STRETCHDIB 8192
755 #define RC_DEVBITS 0x8000
756 #define RC_OP_DX_OUTPUT 0x4000
757 #define CURVECAPS 28
758 #define CC_NONE 0
759 #define CC_CIRCLES 1
760 #define CC_PIE 2
761 #define CC_CHORD 4
762 #define CC_ELLIPSES 8
763 #define CC_WIDE 16
764 #define CC_STYLED 32
765 #define CC_WIDESTYLED 64
766 #define CC_INTERIORS 128
767 #define CC_ROUNDRECT 256
768 #define LINECAPS 30
769 #define LC_NONE 0
770 #define LC_POLYLINE 2
771 #define LC_MARKER 4
772 #define LC_POLYMARKER 8
773 #define LC_WIDE 16
774 #define LC_STYLED 32
775 #define LC_WIDESTYLED 64
776 #define LC_INTERIORS 128
777 #define POLYGONALCAPS 32
778 #define RC_BANDING 2
779 #define RC_BIGFONT 1024
780 #define RC_BITBLT 1
781 #define RC_BITMAP64 8
782 #define RC_DEVBITS 0x8000
783 #define RC_DI_BITMAP 128
784 #define RC_GDI20_OUTPUT 16
785 #define RC_GDI20_STATE 32
786 #define RC_NONE 0
787 #define RC_OP_DX_OUTPUT 0x4000
788 #define RC_PALETTE 256
789 #define RC_SAVEBITMAP 64
790 #define RC_SCALING 4
791 #define PC_NONE 0
792 #define PC_POLYGON 1
793 #define PC_POLYPOLYGON 256
794 #define PC_PATHS 512
795 #define PC_RECTANGLE 2
796 #define PC_WINDPOLYGON 4
797 #define PC_SCANLINE 8
798 #define PC_TRAPEZOID 4
799 #define PC_WIDE 16
800 #define PC_STYLED 32
801 #define PC_WIDESTYLED 64
802 #define PC_INTERIORS 128
803 #define PC_PATHS 512
804 #define TEXTCAPS 34
805 #define TC_OP_CHARACTER 1
806 #define TC_OP_STROKE 2
807 #define TC_CP_STROKE 4
808 #define TC_CR_90 8
809 #define TC_CR_ANY 16
810 #define TC_SF_X_YINDEP 32
811 #define TC_SA_DOUBLE 64
812 #define TC_SA_INTEGER 128
813 #define TC_SA_CONTIN 256
814 #define TC_EA_DOUBLE 512
815 #define TC_IA_ABLE 1024
816 #define TC_UA_ABLE 2048
817 #define TC_SO_ABLE 4096
818 #define TC_RA_ABLE 8192
819 #define TC_VA_ABLE 16384
820 #define TC_RESERVED 32768
821 #define TC_SCROLLBLT 65536
822 /* CLIPCAPS */
823 #define CP_NONE 0
824 #define CP_RECTANGLE 1
825 #define CP_REGION 2
826 #define GCP_DBCS 1
827 #define GCP_ERROR 0x8000
828 #define GCP_CLASSIN 0x80000
829 #define GCP_DIACRITIC 256
830 #define GCP_DISPLAYZWG 0x400000
831 #define GCP_GLYPHSHAPE 16
832 #define GCP_JUSTIFY 0x10000
833 #define GCP_JUSTIFYIN 0x200000
834 #define GCP_KASHIDA 1024
835 #define GCP_LIGATE 32
836 #define GCP_MAXEXTENT 0x100000
837 #define GCP_NEUTRALOVERRIDE 0x2000000
838 #define GCP_NUMERICOVERRIDE 0x1000000
839 #define GCP_NUMERICSLATIN 0x4000000
840 #define GCP_NUMERICSLOCAL 0x8000000
841 #define GCP_REORDER 2
842 #define GCP_SYMSWAPOFF 0x800000
843 #define GCP_USEKERNING 8
844 #define FLI_GLYPHS 0x40000
845 #define FLI_MASK 0x103b
846 #define GGO_METRICS 0
847 #define GGO_BITMAP 1
848 #define GGO_NATIVE 2
849 #define GGO_BEZIER 3
850 #define GGO_GRAY2_BITMAP 4
851 #define GGO_GRAY4_BITMAP 5
852 #define GGO_GRAY8_BITMAP 6
853 #define GGO_GLYPH_INDEX 128
854 #define GGO_UNHINTED 256
855 #ifdef __WINESRC__
856 #define WINE_GGO_GRAY16_BITMAP 0x10
857 #define WINE_GGO_HRGB_BITMAP 0x11
858 #define WINE_GGO_HBGR_BITMAP 0x12
859 #define WINE_GGO_VRGB_BITMAP 0x13
860 #define WINE_GGO_VBGR_BITMAP 0x14
861 #endif
862 #define GM_COMPATIBLE 1
863 #define GM_ADVANCED 2
864 #define GM_LAST 2
865 #define MM_ANISOTROPIC 8
866 #define MM_HIENGLISH 5
867 #define MM_HIMETRIC 3
868 #define MM_ISOTROPIC 7
869 #define MM_LOENGLISH 4
870 #define MM_LOMETRIC 2
871 #define MM_TEXT 1
872 #define MM_TWIPS 6
873 #define MM_MAX_FIXEDSCALE MM_TWIPS
874 #define MM_MIN MM_TEXT
875 #define MM_MAX MM_ANISOTROPIC
876 #define ABSOLUTE 1
877 #define RELATIVE 2
878 #define PC_EXPLICIT 2
879 #define PC_NOCOLLAPSE 4
880 #define PC_RESERVED 1
881 #define CLR_INVALID 0xFFFFFFFF
882 #define PT_MOVETO 6
883 #define PT_LINETO 2
884 #define PT_BEZIERTO 4
885 #define PT_CLOSEFIGURE 1
886 #define TT_AVAILABLE 1
887 #define TT_ENABLED 2
888
889 #ifdef __WINESRC__
890 #define WINE_TT_SUBPIXEL_RENDERING_ENABLED 0x4000
891 #define WINE_TT_HINTER_ENABLED 0x8000
892 #endif
893
894 #define BLACK_BRUSH 4
895 #define DKGRAY_BRUSH 3
896 #define GRAY_BRUSH 2
897 #define HOLLOW_BRUSH 5
898 #define LTGRAY_BRUSH 1
899 #define NULL_BRUSH 5
900 #define WHITE_BRUSH 0
901 #define BLACK_PEN 7
902 #define NULL_PEN 8
903 #define WHITE_PEN 6
904 #define ANSI_FIXED_FONT 11
905 #define ANSI_VAR_FONT 12
906 #define DEVICE_DEFAULT_FONT 14
907 #define DEFAULT_GUI_FONT 17
908 #define OEM_FIXED_FONT 10
909 #define SYSTEM_FONT 13
910 #define SYSTEM_FIXED_FONT 16
911 #define DEFAULT_PALETTE 15
912 #if (_WIN32_WINNT >= 0x0500)
913 #define DC_BRUSH 18
914 #define DC_PEN 19
915 #endif
916 #if (_WIN32_WINNT >= 0x0500)
917 #define STOCK_LAST 19
918 #elif (WINVER >= 0x0400)
919 #define STOCK_LAST 17
920 #else
921 #define STOCK_LAST 16
922 #endif
923 #define SYSPAL_NOSTATIC 2
924 #define SYSPAL_STATIC 1
925 #define SYSPAL_ERROR 0
926 #define TA_BASELINE 24
927 #define TA_BOTTOM 8
928 #define TA_TOP 0
929 #define TA_CENTER 6
930 #define TA_LEFT 0
931 #define TA_RIGHT 2
932 #define TA_RTLREADING 256
933 #define TA_NOUPDATECP 0
934 #define TA_UPDATECP 1
935 #define TA_MASK (TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLREADING)
936 #define VTA_BASELINE 24
937 #define VTA_CENTER 6
938 #define VTA_LEFT TA_BOTTOM
939 #define VTA_RIGHT TA_TOP
940 #define VTA_BOTTOM TA_RIGHT
941 #define VTA_TOP TA_LEFT
942 #define MWT_IDENTITY 1
943 #define MWT_LEFTMULTIPLY 2
944 #define MWT_RIGHTMULTIPLY 3
945 #define MWT_MIN MWT_IDENTITY
946 #define MWT_MAX MWT_RIGHTMULTIPLY
947 #define OPAQUE 2
948 #define TRANSPARENT 1
949 #define BKMODE_LAST 2
950 #define BLACKONWHITE 1
951 #define WHITEONBLACK 2
952 #define COLORONCOLOR 3
953 #define HALFTONE 4
954 #define MAXSTRETCHBLTMODE 4
955 #define STRETCH_ANDSCANS 1
956 #define STRETCH_DELETESCANS 3
957 #define STRETCH_HALFTONE 4
958 #define STRETCH_ORSCANS 2
959 #define TCI_SRCCHARSET 1
960 #define TCI_SRCCODEPAGE 2
961 #define TCI_SRCFONTSIG 3
962 #define TCI_SRCLOCALE 4096
963 #if (_WIN32_WINNT >= 0x0500)
964 #define SHADEBLENDCAPS 120
965 #define COLORMGMTCAPS 121
966 /* SHADEBLENDCAPS */
967 #define SB_NONE 0x00000000
968 #define SB_CONST_ALPHA 0x00000001
969 #define SB_PIXEL_ALPHA 0x00000002
970 #define SB_PREMULT_ALPHA 0x00000004
971 #define SB_GRAD_RECT 0x00000010
972 #define SB_GRAD_TRI 0x00000020
973 /* Color Management caps */
974 #define CM_NONE 0x00000000
975 #define CM_DEVICE_ICM 0x00000001
976 #define CM_GAMMA_RAMP 0x00000002
977 #define CM_CMYK_COLOR 0x00000004
978 #endif
979 #define ICM_ON 2
980 #define ICM_OFF 1
981 #define ICM_QUERY 3
982 #define NEWFRAME 1
983 #define ABORTDOC 2
984 #define NEXTBAND 3
985 #define SETCOLORTABLE 4
986 #define GETCOLORTABLE 5
987 #define FLUSHOUTPUT 6
988 #define DRAFTMODE 7
989 #define QUERYESCSUPPORT 8
990 #define SETABORTPROC 9
991 #define STARTDOC 10
992 #define ENDDOC 11
993 #define GETPHYSPAGESIZE 12
994 #define GETPRINTINGOFFSET 13
995 #define GETSCALINGFACTOR 14
996 #define MFCOMMENT 15
997 #define GETPENWIDTH 16
998 #define SETCOPYCOUNT 17
999 #define SELECTPAPERSOURCE 18
1000 #define DEVICEDATA 19
1001 #define PASSTHROUGH 19
1002 #define GETTECHNOLGY 20
1003 #define GETTECHNOLOGY 20
1004 #define SETLINECAP 21
1005 #define SETLINEJOIN 22
1006 #define SETMITERLIMIT 23
1007 #define BANDINFO 24
1008 #define DRAWPATTERNRECT 25
1009 #define GETVECTORPENSIZE 26
1010 #define GETVECTORBRUSHSIZE 27
1011 #define ENABLEDUPLEX 28
1012 #define GETSETPAPERBINS 29
1013 #define GETSETPRINTORIENT 30
1014 #define ENUMPAPERBINS 31
1015 #define SETDIBSCALING 32
1016 #define EPSPRINTING 33
1017 #define ENUMPAPERMETRICS 34
1018 #define GETSETPAPERMETRICS 35
1019 #define POSTSCRIPT_DATA 37
1020 #define POSTSCRIPT_IGNORE 38
1021 #define MOUSETRAILS 39
1022 #define GETDEVICEUNITS 42
1023 #define GETEXTENDEDTEXTMETRICS 256
1024 #define GETEXTENTTABLE 257
1025 #define GETPAIRKERNTABLE 258
1026 #define GETTRACKKERNTABLE 259
1027 #define EXTTEXTOUT 512
1028 #define GETFACENAME 513
1029 #define DOWNLOADFACE 514
1030 #define ENABLERELATIVEWIDTHS 768
1031 #define ENABLEPAIRKERNING 769
1032 #define SETKERNTRACK 770
1033 #define SETALLJUSTVALUES 771
1034 #define SETCHARSET 772
1035 #define STRETCHBLT 2048
1036 #define GETSETSCREENPARAMS 3072
1037 #define QUERYDIBSUPPORT 3073
1038 #define BEGIN_PATH 4096
1039 #define CLIP_TO_PATH 4097
1040 #define END_PATH 4098
1041 #define EXT_DEVICE_CAPS 4099
1042 #define RESTORE_CTM 4100
1043 #define SAVE_CTM 4101
1044 #define SET_ARC_DIRECTION 4102
1045 #define SET_BACKGROUND_COLOR 4103
1046 #define SET_POLY_MODE 4104
1047 #define SET_SCREEN_ANGLE 4105
1048 #define SET_SPREAD 4106
1049 #define TRANSFORM_CTM 4107
1050 #define SET_CLIP_BOX 4108
1051 #define SET_BOUNDS 4109
1052 #define SET_MIRROR_MODE 4110
1053 #define OPENCHANNEL 4110
1054 #define DOWNLOADHEADER 4111
1055 #define CLOSECHANNEL 4112
1056 #define POSTSCRIPT_PASSTHROUGH 4115
1057 #define ENCAPSULATED_POSTSCRIPT 4116
1058 #define QDI_SETDIBITS 1
1059 #define QDI_GETDIBITS 2
1060 #define QDI_DIBTOSCREEN 4
1061 #define QDI_STRETCHDIB 8
1062 #define SP_NOTREPORTED 0x4000
1063 #define PR_JOBSTATUS 0
1064 #define ASPECT_FILTERING 1
1065 #define GS_8BIT_INDICES 0x00000001
1066 #define GGI_MARK_NONEXISTING_GLYPHS 0X0001
1067 #define BS_SOLID 0
1068 #define BS_NULL 1
1069 #define BS_HOLLOW 1
1070 #define BS_HATCHED 2
1071 #define BS_PATTERN 3
1072 #define BS_INDEXED 4
1073 #define BS_DIBPATTERN 5
1074 #define BS_DIBPATTERNPT 6
1075 #define BS_PATTERN8X8 7
1076 #define BS_DIBPATTERN8X8 8
1077 #define BS_MONOPATTERN 9
1078 #define LCS_CALIBRATED_RGB 0
1079 #define LCS_DEVICE_RGB 1
1080 #define LCS_DEVICE_CMYK 2
1081 #define LCS_GM_BUSINESS 1
1082 #define LCS_GM_GRAPHICS 2
1083 #define LCS_GM_IMAGES 4
1084 #define LCS_GM_ABS_COLORIMETRIC 8
1085 #define LCS_SIGNATURE 0x50534F43 // 'PSOC'
1086 #define LCS_sRGB 'sRGB'
1087 #define LCS_WINDOWS_COLOR_SPACE 'Win '
1088 #define RASTER_FONTTYPE 1
1089 #define DEVICE_FONTTYPE 2
1090 #define TRUETYPE_FONTTYPE 4
1091 #define DMORIENT_PORTRAIT 1
1092 #define DMORIENT_LANDSCAPE 2
1093 #define DMPAPER_FIRST 1
1094 #define DMPAPER_LETTER 1
1095 #define DMPAPER_LETTERSMALL 2
1096 #define DMPAPER_TABLOID 3
1097 #define DMPAPER_LEDGER 4
1098 #define DMPAPER_LEGAL 5
1099 #define DMPAPER_STATEMENT 6
1100 #define DMPAPER_EXECUTIVE 7
1101 #define DMPAPER_A3 8
1102 #define DMPAPER_A4 9
1103 #define DMPAPER_A4SMALL 10
1104 #define DMPAPER_A5 11
1105 #define DMPAPER_B4 12
1106 #define DMPAPER_B5 13
1107 #define DMPAPER_FOLIO 14
1108 #define DMPAPER_QUARTO 15
1109 #define DMPAPER_10X14 16
1110 #define DMPAPER_11X17 17
1111 #define DMPAPER_NOTE 18
1112 #define DMPAPER_ENV_9 19
1113 #define DMPAPER_ENV_10 20
1114 #define DMPAPER_ENV_11 21
1115 #define DMPAPER_ENV_12 22
1116 #define DMPAPER_ENV_14 23
1117 #define DMPAPER_CSHEET 24
1118 #define DMPAPER_DSHEET 25
1119 #define DMPAPER_ESHEET 26
1120 #define DMPAPER_ENV_DL 27
1121 #define DMPAPER_ENV_C5 28
1122 #define DMPAPER_ENV_C3 29
1123 #define DMPAPER_ENV_C4 30
1124 #define DMPAPER_ENV_C6 31
1125 #define DMPAPER_ENV_C65 32
1126 #define DMPAPER_ENV_B4 33
1127 #define DMPAPER_ENV_B5 34
1128 #define DMPAPER_ENV_B6 35
1129 #define DMPAPER_ENV_ITALY 36
1130 #define DMPAPER_ENV_MONARCH 37
1131 #define DMPAPER_ENV_PERSONAL 38
1132 #define DMPAPER_FANFOLD_US 39
1133 #define DMPAPER_FANFOLD_STD_GERMAN 40
1134 #define DMPAPER_FANFOLD_LGL_GERMAN 41
1135 #define DMPAPER_ISO_B4 42
1136 #define DMPAPER_JAPANESE_POSTCARD 43
1137 #define DMPAPER_9X11 44
1138 #define DMPAPER_10X11 45
1139 #define DMPAPER_15X11 46
1140 #define DMPAPER_ENV_INVITE 47
1141 #define DMPAPER_RESERVED_48 48
1142 #define DMPAPER_RESERVED_49 49
1143 #define DMPAPER_LETTER_EXTRA 50
1144 #define DMPAPER_LEGAL_EXTRA 51
1145 #define DMPAPER_TABLOID_EXTRA 52
1146 #define DMPAPER_A4_EXTRA 53
1147 #define DMPAPER_LETTER_TRANSVERSE 54
1148 #define DMPAPER_A4_TRANSVERSE 55
1149 #define DMPAPER_LETTER_EXTRA_TRANSVERSE 56
1150 #define DMPAPER_A_PLUS 57
1151 #define DMPAPER_B_PLUS 58
1152 #define DMPAPER_LETTER_PLUS 59
1153 #define DMPAPER_A4_PLUS 60
1154 #define DMPAPER_A5_TRANSVERSE 61
1155 #define DMPAPER_B5_TRANSVERSE 62
1156 #define DMPAPER_A3_EXTRA 63
1157 #define DMPAPER_A5_EXTRA 64
1158 #define DMPAPER_B5_EXTRA 65
1159 #define DMPAPER_A2 66
1160 #define DMPAPER_A3_TRANSVERSE 67
1161 #define DMPAPER_A3_EXTRA_TRANSVERSE 68
1162 #define DMPAPER_LAST 68
1163 #define DMPAPER_USER 256
1164 #define DMBIN_FIRST 1
1165 #define DMBIN_UPPER 1
1166 #define DMBIN_ONLYONE 1
1167 #define DMBIN_LOWER 2
1168 #define DMBIN_MIDDLE 3
1169 #define DMBIN_MANUAL 4
1170 #define DMBIN_ENVELOPE 5
1171 #define DMBIN_ENVMANUAL 6
1172 #define DMBIN_AUTO 7
1173 #define DMBIN_TRACTOR 8
1174 #define DMBIN_SMALLFMT 9
1175 #define DMBIN_LARGEFMT 10
1176 #define DMBIN_LARGECAPACITY 11
1177 #define DMBIN_CASSETTE 14
1178 #define DMBIN_FORMSOURCE 15
1179 #define DMBIN_LAST 15
1180 #define DMBIN_USER 256
1181 #define DMRES_DRAFT (-1)
1182 #define DMRES_LOW (-2)
1183 #define DMRES_MEDIUM (-3)
1184 #define DMRES_HIGH (-4)
1185 #define DMCOLOR_MONOCHROME 1
1186 #define DMCOLOR_COLOR 2
1187 #define DMDUP_SIMPLEX 1
1188 #define DMDUP_VERTICAL 2
1189 #define DMDUP_HORIZONTAL 3
1190 #define DMTT_BITMAP 1
1191 #define DMTT_DOWNLOAD 2
1192 #define DMTT_SUBDEV 3
1193 #define DMTT_DOWNLOAD_OUTLINE 4
1194 #define DMCOLLATE_FALSE 0
1195 #define DMCOLLATE_TRUE 1
1196
1197
1198 #define DMDO_DEFAULT 0
1199 #define DMDO_90 1
1200 #define DMDO_180 2
1201 #define DMDO_270 3
1202
1203 #define DMDFO_DEFAULT 0
1204 #define DMDFO_STRETCH 1
1205 #define DMDFO_CENTER 2
1206
1207
1208 #define DM_GRAYSCALE 0x00000001
1209 #define DM_INTERLACED 0x00000002
1210 #define DMDISPLAYFLAGS_TEXTMODE 0x00000004
1211
1212
1213 #define DM_UPDATE 1
1214 #define DM_COPY 2
1215 #define DM_PROMPT 4
1216 #define DM_MODIFY 8
1217 #define DM_IN_BUFFER DM_MODIFY
1218 #define DM_IN_PROMPT DM_PROMPT
1219 #define DM_OUT_BUFFER DM_COPY
1220 #define DM_OUT_DEFAULT DM_UPDATE
1221
1222
1223 #if (WINVER >= 0x0500) || (_WIN32_WINNT >= _WIN32_WINNT_NT4)
1224 #define DM_SPECVERSION 0x0401
1225 #elif (WINVER >= 0x0400)
1226 #define DM_SPECVERSION 0x0400
1227 #else
1228 #define DM_SPECVERSION 0x0320
1229 #endif
1230
1231 #define DM_ORIENTATION 0x00000001
1232 #define DM_PAPERSIZE 0x00000002
1233 #define DM_PAPERLENGTH 0x00000004
1234 #define DM_PAPERWIDTH 0x00000008
1235 #define DM_SCALE 0x00000010
1236 #define DM_POSITION 0x00000020
1237 #define DM_NUP 0x00000040
1238 #define DM_DISPLAYORIENTATION 0x00000080
1239 #define DM_COPIES 0x00000100
1240 #define DM_DEFAULTSOURCE 0x00000200
1241 #define DM_PRINTQUALITY 0x00000400
1242 #define DM_COLOR 0x00000800
1243 #define DM_DUPLEX 0x00001000
1244 #define DM_YRESOLUTION 0x00002000
1245 #define DM_TTOPTION 0x00004000
1246 #define DM_COLLATE 0x00008000
1247 #define DM_FORMNAME 0x00010000
1248 #define DM_LOGPIXELS 0x00020000
1249 #define DM_BITSPERPEL 0x00040000
1250 #define DM_PELSWIDTH 0x00080000
1251 #define DM_PELSHEIGHT 0x00100000
1252 #define DM_DISPLAYFLAGS 0x00200000
1253 #define DM_DISPLAYFREQUENCY 0x00400000
1254 #define DM_ICMMETHOD 0x00800000
1255 #define DM_ICMINTENT 0x01000000
1256 #define DM_MEDIATYPE 0x02000000
1257 #define DM_DITHERTYPE 0x04000000
1258 #define DM_PANNINGWIDTH 0x08000000
1259 #define DM_PANNINGHEIGHT 0x10000000
1260 #if (WINVER >= 0x0501)
1261 #define DM_DISPLAYFIXEDOUTPUT 0x20000000
1262 #endif
1263
1264 #define DMICMMETHOD_NONE 1
1265 #define DMICMMETHOD_SYSTEM 2
1266 #define DMICMMETHOD_DRIVER 3
1267 #define DMICMMETHOD_DEVICE 4
1268 #define DMICMMETHOD_USER 256
1269 #define DMICM_SATURATE 1
1270 #define DMICM_CONTRAST 2
1271 #define DMICM_COLORMETRIC 3
1272 #define DMICM_USER 256
1273 #define DMMEDIA_STANDARD 1
1274 #define DMMEDIA_TRANSPARENCY 2
1275 #define DMMEDIA_GLOSSY 3
1276 #define DMMEDIA_USER 256
1277 #define DMDITHER_NONE 1
1278 #define DMDITHER_COARSE 2
1279 #define DMDITHER_FINE 3
1280 #define DMDITHER_LINEART 4
1281 #define DMDITHER_ERRORDIFFUSION 5
1282 #define DMDITHER_RESERVED6 6
1283 #define DMDITHER_RESERVED7 7
1284 #define DMDITHER_RESERVED8 8
1285 #define DMDITHER_RESERVED9 9
1286 #define DMDITHER_GRAYSCALE 10
1287 #define DMDITHER_USER 256
1288 #define GDI_ERROR 0xFFFFFFFF
1289 #define HGDI_ERROR ((HANDLE)GDI_ERROR)
1290 #define TMPF_FIXED_PITCH 1
1291 #define TMPF_VECTOR 2
1292 #define TMPF_TRUETYPE 4
1293 #define TMPF_DEVICE 8
1294 #define NTM_ITALIC 1
1295 #define NTM_BOLD 32
1296 #define NTM_REGULAR 64
1297 #define TT_POLYGON_TYPE 24
1298 #define TT_PRIM_LINE 1
1299 #define TT_PRIM_QSPLINE 2
1300 #define TT_PRIM_CSPLINE 3
1301 #define FONTMAPPER_MAX 10
1302 #define ENHMETA_STOCK_OBJECT 0x80000000
1303 #define WGL_FONT_LINES 0
1304 #define WGL_FONT_POLYGONS 1
1305 #define LPD_DOUBLEBUFFER 1
1306 #define LPD_STEREO 2
1307 #define LPD_SUPPORT_GDI 16
1308 #define LPD_SUPPORT_OPENGL 32
1309 #define LPD_SHARE_DEPTH 64
1310 #define LPD_SHARE_STENCIL 128
1311 #define LPD_SHARE_ACCUM 256
1312 #define LPD_SWAP_EXCHANGE 512
1313 #define LPD_SWAP_COPY 1024
1314 #define LPD_TRANSPARENT 4096
1315 #define LPD_TYPE_RGBA 0
1316 #define LPD_TYPE_COLORINDEX 1
1317 #define WGL_SWAP_MAIN_PLANE 1
1318 #define WGL_SWAP_OVERLAY1 2
1319 #define WGL_SWAP_OVERLAY2 4
1320 #define WGL_SWAP_OVERLAY3 8
1321 #define WGL_SWAP_OVERLAY4 16
1322 #define WGL_SWAP_OVERLAY5 32
1323 #define WGL_SWAP_OVERLAY6 64
1324 #define WGL_SWAP_OVERLAY7 128
1325 #define WGL_SWAP_OVERLAY8 256
1326 #define WGL_SWAP_OVERLAY9 512
1327 #define WGL_SWAP_OVERLAY10 1024
1328 #define WGL_SWAP_OVERLAY11 2048
1329 #define WGL_SWAP_OVERLAY12 4096
1330 #define WGL_SWAP_OVERLAY13 8192
1331 #define WGL_SWAP_OVERLAY14 16384
1332 #define WGL_SWAP_OVERLAY15 32768
1333 #define WGL_SWAP_UNDERLAY1 65536
1334 #define WGL_SWAP_UNDERLAY2 0x20000
1335 #define WGL_SWAP_UNDERLAY3 0x40000
1336 #define WGL_SWAP_UNDERLAY4 0x80000
1337 #define WGL_SWAP_UNDERLAY5 0x100000
1338 #define WGL_SWAP_UNDERLAY6 0x200000
1339 #define WGL_SWAP_UNDERLAY7 0x400000
1340 #define WGL_SWAP_UNDERLAY8 0x800000
1341 #define WGL_SWAP_UNDERLAY9 0x1000000
1342 #define WGL_SWAP_UNDERLAY10 0x2000000
1343 #define WGL_SWAP_UNDERLAY11 0x4000000
1344 #define WGL_SWAP_UNDERLAY12 0x8000000
1345 #define WGL_SWAP_UNDERLAY13 0x10000000
1346 #define WGL_SWAP_UNDERLAY14 0x20000000
1347 #define WGL_SWAP_UNDERLAY15 0x40000000
1348 #define AC_SRC_OVER 0
1349 #define LAYOUT_LTR 0
1350 #define LAYOUT_RTL 1 // Right to left
1351 #define LAYOUT_BTT 2 // Bottom to top
1352 #define LAYOUT_VBH 4 // Vertical before horizontal
1353 #define LAYOUT_ORIENTATIONMASK (LAYOUT_RTL | LAYOUT_BTT | LAYOUT_VBH)
1354 #define LAYOUT_BITMAPORIENTATIONPRESERVED 8
1355 #define CAPTUREBLT 0x40000000
1356 #define NOMIRRORBITMAP 0x80000000
1357 #if (WINVER > 0x400)
1358 #define CS_ENABLE 0x00000001
1359 #define CS_DISABLE 0x00000002
1360 #define CS_DELETE_TRANSFORM 0x00000003
1361 #endif
1362
1363
1364
1365 #if (WINVER > 0x500)
1366 #define GRADIENT_FILL_RECT_H 0x00
1367 #define GRADIENT_FILL_RECT_V 0x01
1368 #define GRADIENT_FILL_TRIANGLE 0x02
1369 #define GRADIENT_FILL_OP_FLAG 0xff
1370 #define COLORMATCHTOTARGET_EMBEDED 0x00000001
1371 #define CREATECOLORSPACE_EMBEDED 0x00000001
1372 #define SETICMPROFILE_EMBEDED 0x00000001
1373 #endif
1374
1375 #define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP 0x00000001
1376 #define DISPLAY_DEVICE_MULTI_DRIVER 0x00000002
1377 #define DISPLAY_DEVICE_PRIMARY_DEVICE 0x00000004
1378 #define DISPLAY_DEVICE_MIRRORING_DRIVER 0x00000008
1379 #define DISPLAY_DEVICE_VGA_COMPATIBLE 0x00000010
1380 #define DISPLAY_DEVICE_REMOVABLE 0x00000020
1381 #define DISPLAY_DEVICE_DISCONNECT 0x02000000
1382 #define DISPLAY_DEVICE_REMOTE 0x04000000
1383 #define DISPLAY_DEVICE_MODESPRUNED 0x08000000
1384 #ifndef RC_INVOKED
1385 typedef struct _ABC {
1386 int abcA;
1387 UINT abcB;
1388 int abcC;
1389 } ABC, *PABC, *LPABC;
1390 typedef struct _ABCFLOAT {
1391 FLOAT abcfA;
1392 FLOAT abcfB;
1393 FLOAT abcfC;
1394 } ABCFLOAT, *PABCFLOAT, *LPABCFLOAT;
1395 typedef struct tagBITMAP {
1396 LONG bmType;
1397 LONG bmWidth;
1398 LONG bmHeight;
1399 LONG bmWidthBytes;
1400 WORD bmPlanes;
1401 WORD bmBitsPixel;
1402 LPVOID bmBits;
1403 } BITMAP,*PBITMAP,*LPBITMAP;
1404 typedef struct tagBITMAPCOREHEADER {
1405 DWORD bcSize;
1406 WORD bcWidth;
1407 WORD bcHeight;
1408 WORD bcPlanes;
1409 WORD bcBitCount;
1410 } BITMAPCOREHEADER,*LPBITMAPCOREHEADER,*PBITMAPCOREHEADER;
1411 #include "pshpack1.h"
1412 typedef struct tagRGBTRIPLE {
1413 BYTE rgbtBlue;
1414 BYTE rgbtGreen;
1415 BYTE rgbtRed;
1416 } RGBTRIPLE,*LPRGBTRIPLE;
1417 #include "poppack.h"
1418 #include "pshpack2.h"
1419 typedef struct tagBITMAPFILEHEADER {
1420 WORD bfType;
1421 DWORD bfSize;
1422 WORD bfReserved1;
1423 WORD bfReserved2;
1424 DWORD bfOffBits;
1425 } BITMAPFILEHEADER,*LPBITMAPFILEHEADER,*PBITMAPFILEHEADER;
1426 #include "poppack.h"
1427 typedef struct _BITMAPCOREINFO {
1428 BITMAPCOREHEADER bmciHeader;
1429 RGBTRIPLE bmciColors[1];
1430 } BITMAPCOREINFO,*LPBITMAPCOREINFO,*PBITMAPCOREINFO;
1431 typedef struct tagBITMAPINFOHEADER{
1432 DWORD biSize;
1433 LONG biWidth;
1434 LONG biHeight;
1435 WORD biPlanes;
1436 WORD biBitCount;
1437 DWORD biCompression;
1438 DWORD biSizeImage;
1439 LONG biXPelsPerMeter;
1440 LONG biYPelsPerMeter;
1441 DWORD biClrUsed;
1442 DWORD biClrImportant;
1443 } BITMAPINFOHEADER,*LPBITMAPINFOHEADER,*PBITMAPINFOHEADER;
1444 typedef struct tagRGBQUAD {
1445 BYTE rgbBlue;
1446 BYTE rgbGreen;
1447 BYTE rgbRed;
1448 BYTE rgbReserved;
1449 } RGBQUAD,*LPRGBQUAD;
1450 typedef struct tagBITMAPINFO {
1451 BITMAPINFOHEADER bmiHeader;
1452 RGBQUAD bmiColors[1];
1453 } BITMAPINFO,*LPBITMAPINFO,*PBITMAPINFO;
1454 typedef long FXPT16DOT16,*LPFXPT16DOT16;
1455 typedef long FXPT2DOT30,*LPFXPT2DOT30;
1456 typedef struct tagCIEXYZ {
1457 FXPT2DOT30 ciexyzX;
1458 FXPT2DOT30 ciexyzY;
1459 FXPT2DOT30 ciexyzZ;
1460 } CIEXYZ,*LPCIEXYZ;
1461 typedef struct tagCIEXYZTRIPLE {
1462 CIEXYZ ciexyzRed;
1463 CIEXYZ ciexyzGreen;
1464 CIEXYZ ciexyzBlue;
1465 } CIEXYZTRIPLE,*LPCIEXYZTRIPLE;
1466 typedef struct {
1467 DWORD bV4Size;
1468 LONG bV4Width;
1469 LONG bV4Height;
1470 WORD bV4Planes;
1471 WORD bV4BitCount;
1472 DWORD bV4V4Compression;
1473 DWORD bV4SizeImage;
1474 LONG bV4XPelsPerMeter;
1475 LONG bV4YPelsPerMeter;
1476 DWORD bV4ClrUsed;
1477 DWORD bV4ClrImportant;
1478 DWORD bV4RedMask;
1479 DWORD bV4GreenMask;
1480 DWORD bV4BlueMask;
1481 DWORD bV4AlphaMask;
1482 DWORD bV4CSType;
1483 CIEXYZTRIPLE bV4Endpoints;
1484 DWORD bV4GammaRed;
1485 DWORD bV4GammaGreen;
1486 DWORD bV4GammaBlue;
1487 } BITMAPV4HEADER,*LPBITMAPV4HEADER,*PBITMAPV4HEADER;
1488 #if (WINVER >= 0x500)
1489 typedef struct {
1490 DWORD bV5Size;
1491 LONG bV5Width;
1492 LONG bV5Height;
1493 WORD bV5Planes;
1494 WORD bV5BitCount;
1495 DWORD bV5Compression;
1496 DWORD bV5SizeImage;
1497 LONG bV5XPelsPerMeter;
1498 LONG bV5YPelsPerMeter;
1499 DWORD bV5ClrUsed;
1500 DWORD bV5ClrImportant;
1501 DWORD bV5RedMask;
1502 DWORD bV5GreenMask;
1503 DWORD bV5BlueMask;
1504 DWORD bV5AlphaMask;
1505 DWORD bV5CSType;
1506 CIEXYZTRIPLE bV5Endpoints;
1507 DWORD bV5GammaRed;
1508 DWORD bV5GammaGreen;
1509 DWORD bV5GammaBlue;
1510 DWORD bV5Intent;
1511 DWORD bV5ProfileData;
1512 DWORD bV5ProfileSize;
1513 DWORD bV5Reserved;
1514 } BITMAPV5HEADER,*LPBITMAPV5HEADER,*PBITMAPV5HEADER;
1515 #endif
1516 typedef struct tagFONTSIGNATURE {
1517 DWORD fsUsb[4];
1518 DWORD fsCsb[2];
1519 } FONTSIGNATURE, *PFONTSIGNATURE,*LPFONTSIGNATURE;
1520 typedef struct tagCHARSETINFO {
1521 UINT ciCharset;
1522 UINT ciACP;
1523 FONTSIGNATURE fs;
1524 } CHARSETINFO, *PCHARSETINFO, *LPCHARSETINFO;
1525 typedef struct tagCOLORADJUSTMENT {
1526 WORD caSize;
1527 WORD caFlags;
1528 WORD caIlluminantIndex;
1529 WORD caRedGamma;
1530 WORD caGreenGamma;
1531 WORD caBlueGamma;
1532 WORD caReferenceBlack;
1533 WORD caReferenceWhite;
1534 SHORT caContrast;
1535 SHORT caBrightness;
1536 SHORT caColorfulness;
1537 SHORT caRedGreenTint;
1538 } COLORADJUSTMENT, *PCOLORADJUSTMENT, FAR *LPCOLORADJUSTMENT;
1539 typedef struct _devicemodeA {
1540 BYTE dmDeviceName[CCHDEVICENAME];
1541 WORD dmSpecVersion;
1542 WORD dmDriverVersion;
1543 WORD dmSize;
1544 WORD dmDriverExtra;
1545 DWORD dmFields;
1546 _ANONYMOUS_UNION union {
1547 _ANONYMOUS_STRUCT struct {
1548 short dmOrientation;
1549 short dmPaperSize;
1550 short dmPaperLength;
1551 short dmPaperWidth;
1552 short dmScale;
1553 short dmCopies;
1554 short dmDefaultSource;
1555 short dmPrintQuality;
1556 } DUMMYSTRUCTNAME1;
1557 struct {
1558 POINTL dmPosition;
1559 DWORD dmDisplayOrientation;
1560 DWORD dmDisplayFixedOutput;
1561 } DUMMYSTRUCTNAME2;
1562 } DUMMYUNIONNAME1;
1563 short dmColor;
1564 short dmDuplex;
1565 short dmYResolution;
1566 short dmTTOption;
1567 short dmCollate;
1568 BYTE dmFormName[CCHFORMNAME];
1569 WORD dmLogPixels;
1570 DWORD dmBitsPerPel;
1571 DWORD dmPelsWidth;
1572 DWORD dmPelsHeight;
1573 _ANONYMOUS_UNION union {
1574 DWORD dmDisplayFlags;
1575 DWORD dmNup;
1576 } DUMMYUNIONNAME2;
1577 DWORD dmDisplayFrequency;
1578 #if(WINVER >= 0x0400)
1579 DWORD dmICMMethod;
1580 DWORD dmICMIntent;
1581 DWORD dmMediaType;
1582 DWORD dmDitherType;
1583 DWORD dmReserved1;
1584 DWORD dmReserved2;
1585 #if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)
1586 DWORD dmPanningWidth;
1587 DWORD dmPanningHeight;
1588 #endif
1589 #endif /* WINVER >= 0x0400 */
1590 } DEVMODEA,*LPDEVMODEA,*PDEVMODEA;
1591 typedef struct _devicemodeW {
1592 WCHAR dmDeviceName[CCHDEVICENAME];
1593 WORD dmSpecVersion;
1594 WORD dmDriverVersion;
1595 WORD dmSize;
1596 WORD dmDriverExtra;
1597 DWORD dmFields;
1598 _ANONYMOUS_UNION union {
1599 _ANONYMOUS_STRUCT struct {
1600 short dmOrientation;
1601 short dmPaperSize;
1602 short dmPaperLength;
1603 short dmPaperWidth;
1604 short dmScale;
1605 short dmCopies;
1606 short dmDefaultSource;
1607 short dmPrintQuality;
1608 } DUMMYSTRUCTNAME1;
1609 struct {
1610 POINTL dmPosition;
1611 DWORD dmDisplayOrientation;
1612 DWORD dmDisplayFixedOutput;
1613 } DUMMYSTRUCTNAME2;
1614 } DUMMYUNIONNAME1;
1615 short dmColor;
1616 short dmDuplex;
1617 short dmYResolution;
1618 short dmTTOption;
1619 short dmCollate;
1620 WCHAR dmFormName[CCHFORMNAME];
1621 WORD dmLogPixels;
1622 DWORD dmBitsPerPel;
1623 DWORD dmPelsWidth;
1624 DWORD dmPelsHeight;
1625 _ANONYMOUS_UNION union {
1626 DWORD dmDisplayFlags;
1627 DWORD dmNup;
1628 } DUMMYUNIONNAME2;
1629 DWORD dmDisplayFrequency;
1630 #if(WINVER >= 0x0400)
1631 DWORD dmICMMethod;
1632 DWORD dmICMIntent;
1633 DWORD dmMediaType;
1634 DWORD dmDitherType;
1635 DWORD dmReserved1;
1636 DWORD dmReserved2;
1637 #if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)
1638 DWORD dmPanningWidth;
1639 DWORD dmPanningHeight;
1640 #endif
1641 #endif /* WINVER >= 0x0400 */
1642 } DEVMODEW,*LPDEVMODEW,*PDEVMODEW,*NPDEVMODEW;
1643 typedef struct tagDIBSECTION {
1644 BITMAP dsBm;
1645 BITMAPINFOHEADER dsBmih;
1646 DWORD dsBitfields[3];
1647 HANDLE dshSection;
1648 DWORD dsOffset;
1649 } DIBSECTION,*PDIBSECTION,*LPDIBSECTION;
1650 typedef struct _DOCINFOA {
1651 int cbSize;
1652 LPCSTR lpszDocName;
1653 LPCSTR lpszOutput;
1654 LPCSTR lpszDatatype;
1655 DWORD fwType;
1656 } DOCINFOA,*LPDOCINFOA;
1657 typedef struct _DOCINFOW {
1658 int cbSize;
1659 LPCWSTR lpszDocName;
1660 LPCWSTR lpszOutput;
1661 LPCWSTR lpszDatatype;
1662 DWORD fwType;
1663 } DOCINFOW,*LPDOCINFOW;
1664 typedef struct tagEMR {
1665 DWORD iType;
1666 DWORD nSize;
1667 } EMR,*PEMR;
1668
1669 #if(WINVER >= 0x0400)
1670 typedef struct tagEMRGLSRECORD {
1671 EMR emr;
1672 DWORD cbData;
1673 BYTE Data[1];
1674 } EMRGLSRECORD, *PEMRGLSRECORD;
1675 typedef struct tagEMRGLSBOUNDEDRECORD {
1676 EMR emr;
1677 RECTL rclBounds;
1678 DWORD cbData;
1679 BYTE Data[1];
1680 } EMRGLSBOUNDEDRECORD, *PEMRGLSBOUNDEDRECORD;
1681 #endif
1682 typedef struct tagEMRANGLEARC {
1683 EMR emr;
1684 POINTL ptlCenter;
1685 DWORD nRadius;
1686 FLOAT eStartAngle;
1687 FLOAT eSweepAngle;
1688 } EMRANGLEARC,*PEMRANGLEARC;
1689 typedef struct tagEMRARC {
1690 EMR emr;
1691 RECTL rclBox;
1692 POINTL ptlStart;
1693 POINTL ptlEnd;
1694 } EMRARC,*PEMRARC,EMRARCTO,*PEMRARCTO,EMRCHORD,*PEMRCHORD,EMRPIE,*PEMRPIE;
1695 typedef struct _XFORM {
1696 FLOAT eM11;
1697 FLOAT eM12;
1698 FLOAT eM21;
1699 FLOAT eM22;
1700 FLOAT eDx;
1701 FLOAT eDy;
1702 } XFORM,*PXFORM,*LPXFORM;
1703 typedef struct tagEMRBITBLT {
1704 EMR emr;
1705 RECTL rclBounds;
1706 LONG xDest;
1707 LONG yDest;
1708 LONG cxDest;
1709 LONG cyDest;
1710 DWORD dwRop;
1711 LONG xSrc;
1712 LONG ySrc;
1713 XFORM xformSrc;
1714 COLORREF crBkColorSrc;
1715 DWORD iUsageSrc;
1716 DWORD offBmiSrc;
1717 DWORD cbBmiSrc;
1718 DWORD offBitsSrc;
1719 DWORD cbBitsSrc;
1720 } EMRBITBLT,*PEMRBITBLT;
1721 typedef struct tagLOGBRUSH {
1722 UINT lbStyle;
1723 COLORREF lbColor;
1724 ULONG_PTR lbHatch;
1725 } LOGBRUSH,*PLOGBRUSH,*LPLOGBRUSH;
1726 typedef LOGBRUSH PATTERN,*PPATTERN,*LPPATTERN;
1727 typedef struct tagLOGBRUSH32 {
1728 UINT lbStyle;
1729 COLORREF lbColor;
1730 ULONG lbHatch;
1731 } LOGBRUSH32, *PLOGBRUSH32;
1732 typedef struct tagEMRCREATEBRUSHINDIRECT {
1733 EMR emr;
1734 DWORD ihBrush;
1735 LOGBRUSH32 lb;
1736 } EMRCREATEBRUSHINDIRECT,*PEMRCREATEBRUSHINDIRECT;
1737 typedef LONG LCSCSTYPE;
1738 typedef LONG LCSGAMUTMATCH;
1739 typedef struct tagLOGCOLORSPACEA {
1740 DWORD lcsSignature;
1741 DWORD lcsVersion;
1742 DWORD lcsSize;
1743 LCSCSTYPE lcsCSType;
1744 LCSGAMUTMATCH lcsIntent;
1745 CIEXYZTRIPLE lcsEndpoints;
1746 DWORD lcsGammaRed;
1747 DWORD lcsGammaGreen;
1748 DWORD lcsGammaBlue;
1749 CHAR lcsFilename[MAX_PATH];
1750 } LOGCOLORSPACEA,*LPLOGCOLORSPACEA;
1751 typedef struct tagLOGCOLORSPACEW {
1752 DWORD lcsSignature;
1753 DWORD lcsVersion;
1754 DWORD lcsSize;
1755 LCSCSTYPE lcsCSType;
1756 LCSGAMUTMATCH lcsIntent;
1757 CIEXYZTRIPLE lcsEndpoints;
1758 DWORD lcsGammaRed;
1759 DWORD lcsGammaGreen;
1760 DWORD lcsGammaBlue;
1761 WCHAR lcsFilename[MAX_PATH];
1762 } LOGCOLORSPACEW,*LPLOGCOLORSPACEW;
1763 typedef struct tagEMRCREATECOLORSPACEW {
1764 EMR emr;
1765 DWORD ihCS;
1766 LOGCOLORSPACEW lcs;
1767 DWORD dwFlags;
1768 DWORD cbData;
1769 BYTE Data[1];
1770 } EMRCREATECOLORSPACEW, *PEMRCREATECOLORSPACEW;
1771 typedef struct tagEMRCREATECOLORSPACE {
1772 EMR emr;
1773 DWORD ihCS;
1774 LOGCOLORSPACEA lcs;
1775 } EMRCREATECOLORSPACE,*PEMRCREATECOLORSPACE;
1776 typedef struct tagEMRCREATEDIBPATTERNBRUSHPT {
1777 EMR emr;
1778 DWORD ihBrush;
1779 DWORD iUsage;
1780 DWORD offBmi;
1781 DWORD cbBmi;
1782 DWORD offBits;
1783 DWORD cbBits;
1784 } EMRCREATEDIBPATTERNBRUSHPT,*PEMRCREATEDIBPATTERNBRUSHPT;
1785 typedef struct tagEMRCREATEMONOBRUSH {
1786 EMR emr;
1787 DWORD ihBrush;
1788 DWORD iUsage;
1789 DWORD offBmi;
1790 DWORD cbBmi;
1791 DWORD offBits;
1792 DWORD cbBits;
1793 } EMRCREATEMONOBRUSH,*PEMRCREATEMONOBRUSH;
1794
1795 #ifndef _PALETTEENTRY_DEFINED
1796 #define _PALETTEENTRY_DEFINED
1797 typedef struct tagPALETTEENTRY {
1798 BYTE peRed;
1799 BYTE peGreen;
1800 BYTE peBlue;
1801 BYTE peFlags;
1802 } PALETTEENTRY,*LPPALETTEENTRY,*PPALETTEENTRY;
1803 #endif
1804
1805 #ifndef _LOGPALETTE_DEFINED
1806 #define _LOGPALETTE_DEFINED
1807 typedef struct tagLOGPALETTE {
1808 WORD palVersion;
1809 WORD palNumEntries;
1810 _Field_size_opt_(palNumEntries) PALETTEENTRY palPalEntry[1];
1811 } LOGPALETTE, *NPLOGPALETTE, *PLOGPALETTE, *LPLOGPALETTE;
1812 #endif
1813
1814 typedef struct tagEMRCREATEPALETTE {
1815 EMR emr;
1816 DWORD ihPal;
1817 LOGPALETTE lgpl;
1818 } EMRCREATEPALETTE,*PEMRCREATEPALETTE;
1819 typedef struct tagLOGPEN {
1820 UINT lopnStyle;
1821 POINT lopnWidth;
1822 COLORREF lopnColor;
1823 } LOGPEN,*PLOGPEN,*LPLOGPEN;
1824 typedef struct tagEMRCREATEPEN {
1825 EMR emr;
1826 DWORD ihPen;
1827 LOGPEN lopn;
1828 } EMRCREATEPEN,*PEMRCREATEPEN;
1829 typedef struct tagEMRELLIPSE {
1830 EMR emr;
1831 RECTL rclBox;
1832 } EMRELLIPSE,*PEMRELLIPSE,EMRRECTANGLE,*PEMRRECTANGLE;
1833 typedef struct tagEMREOF {
1834 EMR emr;
1835 DWORD nPalEntries;
1836 DWORD offPalEntries;
1837 DWORD nSizeLast;
1838 } EMREOF,*PEMREOF;
1839 typedef struct tagEMREXCLUDECLIPRECT {
1840 EMR emr;
1841 RECTL rclClip;
1842 } EMREXCLUDECLIPRECT,*PEMREXCLUDECLIPRECT,EMRINTERSECTCLIPRECT,*PEMRINTERSECTCLIPRECT;
1843 typedef struct tagPANOSE {
1844 BYTE bFamilyType;
1845 BYTE bSerifStyle;
1846 BYTE bWeight;
1847 BYTE bProportion;
1848 BYTE bContrast;
1849 BYTE bStrokeVariation;
1850 BYTE bArmStyle;
1851 BYTE bLetterform;
1852 BYTE bMidline;
1853 BYTE bXHeight;
1854 } PANOSE, *LPPANOSE;
1855 typedef struct tagLOGFONTA {
1856 LONG lfHeight;
1857 LONG lfWidth;
1858 LONG lfEscapement;
1859 LONG lfOrientation;
1860 LONG lfWeight;
1861 BYTE lfItalic;
1862 BYTE lfUnderline;
1863 BYTE lfStrikeOut;
1864 BYTE lfCharSet;
1865 BYTE lfOutPrecision;
1866 BYTE lfClipPrecision;
1867 BYTE lfQuality;
1868 BYTE lfPitchAndFamily;
1869 CHAR lfFaceName[LF_FACESIZE];
1870 } LOGFONTA,*PLOGFONTA,*LPLOGFONTA;
1871 typedef struct tagLOGFONTW {
1872 LONG lfHeight;
1873 LONG lfWidth;
1874 LONG lfEscapement;
1875 LONG lfOrientation;
1876 LONG lfWeight;
1877 BYTE lfItalic;
1878 BYTE lfUnderline;
1879 BYTE lfStrikeOut;
1880 BYTE lfCharSet;
1881 BYTE lfOutPrecision;
1882 BYTE lfClipPrecision;
1883 BYTE lfQuality;
1884 BYTE lfPitchAndFamily;
1885 WCHAR lfFaceName[LF_FACESIZE];
1886 } LOGFONTW,*PLOGFONTW,*LPLOGFONTW;
1887 typedef struct tagEXTLOGFONTA {
1888 LOGFONTA elfLogFont;
1889 BYTE elfFullName[LF_FULLFACESIZE];
1890 BYTE elfStyle[LF_FACESIZE];
1891 DWORD elfVersion;
1892 DWORD elfStyleSize;
1893 DWORD elfMatch;
1894 DWORD elfReserved;
1895 BYTE elfVendorId[ELF_VENDOR_SIZE];
1896 DWORD elfCulture;
1897 PANOSE elfPanose;
1898 } EXTLOGFONTA,*PEXTLOGFONTA,*LPEXTLOGFONTA;
1899 typedef struct tagEXTLOGFONTW {
1900 LOGFONTW elfLogFont;
1901 WCHAR elfFullName[LF_FULLFACESIZE];
1902 WCHAR elfStyle[LF_FACESIZE];
1903 DWORD elfVersion;
1904 DWORD elfStyleSize;
1905 DWORD elfMatch;
1906 DWORD elfReserved;
1907 BYTE elfVendorId[ELF_VENDOR_SIZE];
1908 DWORD elfCulture;
1909 PANOSE elfPanose;
1910 } EXTLOGFONTW,*PEXTLOGFONTW,*LPEXTLOGFONTW;
1911 typedef struct tagEMREXTCREATEFONTINDIRECTW {
1912 EMR emr;
1913 DWORD ihFont;
1914 EXTLOGFONTW elfw;
1915 } EMREXTCREATEFONTINDIRECTW,*PEMREXTCREATEFONTINDIRECTW;
1916 typedef struct tagEXTLOGPEN {
1917 DWORD elpPenStyle;
1918 DWORD elpWidth;
1919 UINT elpBrushStyle;
1920 COLORREF elpColor;
1921 ULONG_PTR elpHatch;
1922 DWORD elpNumEntries;
1923 DWORD elpStyleEntry[1];
1924 } EXTLOGPEN,*PEXTLOGPEN,*LPEXTLOGPEN,*NPEXTLOGPEN;
1925 typedef struct tagEMREXTCREATEPEN {
1926 EMR emr;
1927 DWORD ihPen;
1928 DWORD offBmi;
1929 DWORD cbBmi;
1930 DWORD offBits;
1931 DWORD cbBits;
1932 EXTLOGPEN elp;
1933 } EMREXTCREATEPEN,*PEMREXTCREATEPEN;
1934 typedef struct tagEMREXTFLOODFILL {
1935 EMR emr;
1936 POINTL ptlStart;
1937 COLORREF crColor;
1938 DWORD iMode;
1939 } EMREXTFLOODFILL,*PEMREXTFLOODFILL;
1940 typedef struct tagEMREXTSELECTCLIPRGN {
1941 EMR emr;
1942 DWORD cbRgnData;
1943 DWORD iMode;
1944 BYTE RgnData[1];
1945 } EMREXTSELECTCLIPRGN,*PEMREXTSELECTCLIPRGN;
1946 typedef struct tagEMRTEXT {
1947 POINTL ptlReference;
1948 DWORD nChars;
1949 DWORD offString;
1950 DWORD fOptions;
1951 RECTL rcl;
1952 DWORD offDx;
1953 } EMRTEXT,*PEMRTEXT;
1954 typedef struct tagEMREXTTEXTOUTA {
1955 EMR emr;
1956 RECTL rclBounds;
1957 DWORD iGraphicsMode;
1958 FLOAT exScale;
1959 FLOAT eyScale;
1960 EMRTEXT emrtext;
1961 } EMREXTTEXTOUTA,*PEMREXTTEXTOUTA,EMREXTTEXTOUTW,*PEMREXTTEXTOUTW;
1962 typedef struct tagEMRFILLPATH {
1963 EMR emr;
1964 RECTL rclBounds;
1965 } EMRFILLPATH,*PEMRFILLPATH,EMRSTROKEANDFILLPATH,*PEMRSTROKEANDFILLPATH,EMRSTROKEPATH,*PEMRSTROKEPATH;
1966 typedef struct tagEMRFILLRGN {
1967 EMR emr;
1968 RECTL rclBounds;
1969 DWORD cbRgnData;
1970 DWORD ihBrush;
1971 BYTE RgnData[1];
1972 } EMRFILLRGN,*PEMRFILLRGN;
1973 typedef struct tagEMRFORMAT {
1974 DWORD dSignature;
1975 DWORD nVersion;
1976 DWORD cbData;
1977 DWORD offData;
1978 } EMRFORMAT, *PEMRFORMAT;
1979
1980
1981 typedef struct tagEMRSETCOLORSPACE
1982 {
1983 EMR emr;
1984 DWORD ihCS;
1985 } EMRSETCOLORSPACE, *PEMRSETCOLORSPACE, EMRSELECTCOLORSPACE, *PEMRSELECTCOLORSPACE,
1986 EMRDELETECOLORSPACE, *PEMRDELETECOLORSPACE;
1987
1988 typedef struct tagEMRFRAMERGN {
1989 EMR emr;
1990 RECTL rclBounds;
1991 DWORD cbRgnData;
1992 DWORD ihBrush;
1993 SIZEL szlStroke;
1994 BYTE RgnData[1];
1995 } EMRFRAMERGN,*PEMRFRAMERGN;
1996 typedef struct tagEMRGDICOMMENT {
1997 EMR emr;
1998 DWORD cbData;
1999 BYTE Data[1];
2000 } EMRGDICOMMENT,*PEMRGDICOMMENT;
2001 typedef struct tagEMRINVERTRGN {
2002 EMR emr;
2003 RECTL rclBounds;
2004 DWORD cbRgnData;
2005 BYTE RgnData[1];
2006 } EMRINVERTRGN,*PEMRINVERTRGN,EMRPAINTRGN,*PEMRPAINTRGN;
2007 typedef struct tagEMRLINETO {
2008 EMR emr;
2009 POINTL ptl;
2010 } EMRLINETO,*PEMRLINETO,EMRMOVETOEX,*PEMRMOVETOEX;
2011 typedef struct tagEMRMASKBLT {
2012 EMR emr;
2013 RECTL rclBounds;
2014 LONG xDest;
2015 LONG yDest;
2016 LONG cxDest;
2017 LONG cyDest;
2018 DWORD dwRop;
2019 LONG xSrc;
2020 LONG ySrc;
2021 XFORM xformSrc;
2022 COLORREF crBkColorSrc;
2023 DWORD iUsageSrc;
2024 DWORD offBmiSrc;
2025 DWORD cbBmiSrc;
2026 DWORD offBitsSrc;
2027 DWORD cbBitsSrc;
2028 LONG xMask;
2029 LONG yMask;
2030 DWORD iUsageMask;
2031 DWORD offBmiMask;
2032 DWORD cbBmiMask;
2033 DWORD offBitsMask;
2034 DWORD cbBitsMask;
2035 } EMRMASKBLT,*PEMRMASKBLT;
2036 typedef struct tagEMRMODIFYWORLDTRANSFORM {
2037 EMR emr;
2038 XFORM xform;
2039 DWORD iMode;
2040 } EMRMODIFYWORLDTRANSFORM,*PEMRMODIFYWORLDTRANSFORM;
2041 typedef struct tagEMROFFSETCLIPRGN {
2042 EMR emr;
2043 POINTL ptlOffset;
2044 } EMROFFSETCLIPRGN,*PEMROFFSETCLIPRGN;
2045 typedef struct tagEMRPLGBLT {
2046 EMR emr;
2047 RECTL rclBounds;
2048 POINTL aptlDest[3];
2049 LONG xSrc;
2050 LONG ySrc;
2051 LONG cxSrc;
2052 LONG cySrc;
2053 XFORM xformSrc;
2054 COLORREF crBkColorSrc;
2055 DWORD iUsageSrc;
2056 DWORD offBmiSrc;
2057 DWORD cbBmiSrc;
2058 DWORD offBitsSrc;
2059 DWORD cbBitsSrc;
2060 LONG xMask;
2061 LONG yMask;
2062 DWORD iUsageMask;
2063 DWORD offBmiMask;
2064 DWORD cbBmiMask;
2065 DWORD offBitsMask;
2066 DWORD cbBitsMask;
2067 } EMRPLGBLT,*PEMRPLGBLT;
2068 typedef struct tagEMRPOLYDRAW {
2069 EMR emr;
2070 RECTL rclBounds;
2071 DWORD cptl;
2072 POINTL aptl[1];
2073 BYTE abTypes[1];
2074 } EMRPOLYDRAW,*PEMRPOLYDRAW;
2075 typedef struct tagEMRPOLYDRAW16 {
2076 EMR emr;
2077 RECTL rclBounds;
2078 DWORD cpts;
2079 POINTS apts[1];
2080 BYTE abTypes[1];
2081 } EMRPOLYDRAW16,*PEMRPOLYDRAW16;
2082 typedef struct tagEMRPOLYLINE {
2083 EMR emr;
2084 RECTL rclBounds;
2085 DWORD cptl;
2086 POINTL aptl[1];
2087 } EMRPOLYLINE,*PEMRPOLYLINE,EMRPOLYBEZIER,*PEMRPOLYBEZIER,EMRPOLYGON,*PEMRPOLYGON,EMRPOLYBEZIERTO,*PEMRPOLYBEZIERTO,EMRPOLYLINETO,*PEMRPOLYLINETO;
2088 typedef struct tagEMRPOLYLINE16 {
2089 EMR emr;
2090 RECTL rclBounds;
2091 DWORD cpts;
2092 POINTS apts[1];
2093 } EMRPOLYLINE16,*PEMRPOLYLINE16,EMRPOLYBEZIER16,*PEMRPOLYBEZIER16,EMRPOLYGON16,*PEMRPOLYGON16,EMRPOLYBEZIERTO16,*PEMRPOLYBEZIERTO16,EMRPOLYLINETO16,*PEMRPOLYLINETO16;
2094 typedef struct tagEMRPOLYPOLYLINE {
2095 EMR emr;
2096 RECTL rclBounds;
2097 DWORD nPolys;
2098 DWORD cptl;
2099 DWORD aPolyCounts[1];
2100 POINTL aptl[1];
2101 } EMRPOLYPOLYLINE,*PEMRPOLYPOLYLINE,EMRPOLYPOLYGON,*PEMRPOLYPOLYGON;
2102 typedef struct tagEMRPOLYPOLYLINE16 {
2103 EMR emr;
2104 RECTL rclBounds;
2105 DWORD nPolys;
2106 DWORD cpts;
2107 DWORD aPolyCounts[1];
2108 POINTS apts[1];
2109 } EMRPOLYPOLYLINE16,*PEMRPOLYPOLYLINE16,EMRPOLYPOLYGON16,*PEMRPOLYPOLYGON16;
2110 typedef struct tagEMRPOLYTEXTOUTA {
2111 EMR emr;
2112 RECTL rclBounds;
2113 DWORD iGraphicsMode;
2114 FLOAT exScale;
2115 FLOAT eyScale;
2116 LONG cStrings;
2117 EMRTEXT aemrtext[1];
2118 } EMRPOLYTEXTOUTA,*PEMRPOLYTEXTOUTA,EMRPOLYTEXTOUTW,*PEMRPOLYTEXTOUTW;
2119 typedef struct tagEMRRESIZEPALETTE {
2120 EMR emr;
2121 DWORD ihPal;
2122 DWORD cEntries;
2123 } EMRRESIZEPALETTE,*PEMRRESIZEPALETTE;
2124 typedef struct tagEMRRESTOREDC {
2125 EMR emr;
2126 LONG iRelative;
2127 } EMRRESTOREDC,*PEMRRESTOREDC;
2128 typedef struct tagEMRROUNDRECT {
2129 EMR emr;
2130 RECTL rclBox;
2131 SIZEL szlCorner;
2132 } EMRROUNDRECT,*PEMRROUNDRECT;
2133 typedef struct tagEMRSCALEVIEWPORTEXTEX {
2134 EMR emr;
2135 LONG xNum;
2136 LONG xDenom;
2137 LONG yNum;
2138 LONG yDenom;
2139 } EMRSCALEVIEWPORTEXTEX,*PEMRSCALEVIEWPORTEXTEX,EMRSCALEWINDOWEXTEX,*PEMRSCALEWINDOWEXTEX;
2140
2141
2142 typedef struct tagEMRSELECTOBJECT {
2143 EMR emr;
2144 DWORD ihObject;
2145 } EMRSELECTOBJECT,*PEMRSELECTOBJECT,EMRDELETEOBJECT,*PEMRDELETEOBJECT;
2146 typedef struct tagEMRSELECTPALETTE {
2147 EMR emr;
2148 DWORD ihPal;
2149 } EMRSELECTPALETTE,*PEMRSELECTPALETTE;
2150 typedef struct tagEMRSETARCDIRECTION {
2151 EMR emr;
2152 DWORD iArcDirection;
2153 } EMRSETARCDIRECTION,*PEMRSETARCDIRECTION;
2154 typedef struct tagEMRSETTEXTCOLOR {
2155 EMR emr;
2156 COLORREF crColor;
2157 } EMRSETBKCOLOR,*PEMRSETBKCOLOR,EMRSETTEXTCOLOR,*PEMRSETTEXTCOLOR;
2158 typedef struct tagEMRSETCOLORADJUSTMENT {
2159 EMR emr;
2160 COLORADJUSTMENT ColorAdjustment;
2161 } EMRSETCOLORADJUSTMENT,*PEMRSETCOLORADJUSTMENT;
2162 typedef struct tagEMRSETDIBITSTODEVICE {
2163 EMR emr;
2164 RECTL rclBounds;
2165 LONG xDest;
2166 LONG yDest;
2167 LONG xSrc;
2168 LONG ySrc;
2169 LONG cxSrc;
2170 LONG cySrc;
2171 DWORD offBmiSrc;
2172 DWORD cbBmiSrc;
2173 DWORD offBitsSrc;
2174 DWORD cbBitsSrc;
2175 DWORD iUsageSrc;
2176 DWORD iStartScan;
2177 DWORD cScans;
2178 } EMRSETDIBITSTODEVICE,*PEMRSETDIBITSTODEVICE;
2179 typedef struct tagEMRSETMAPPERFLAGS {
2180 EMR emr;
2181 DWORD dwFlags;
2182 } EMRSETMAPPERFLAGS,*PEMRSETMAPPERFLAGS;
2183 typedef struct tagEMRSETMITERLIMIT {
2184 EMR emr;
2185 FLOAT eMiterLimit;
2186 } EMRSETMITERLIMIT,*PEMRSETMITERLIMIT;
2187 typedef struct tagEMRSETPALETTEENTRIES {
2188 EMR emr;
2189 DWORD ihPal;
2190 DWORD iStart;
2191 DWORD cEntries;
2192 PALETTEENTRY aPalEntries[1];
2193 } EMRSETPALETTEENTRIES,*PEMRSETPALETTEENTRIES;
2194 typedef struct tagEMRSETPIXELV {
2195 EMR emr;
2196 POINTL ptlPixel;
2197 COLORREF crColor;
2198 } EMRSETPIXELV,*PEMRSETPIXELV;
2199 typedef struct tagEMRSETVIEWPORTEXTEX {
2200 EMR emr;
2201 SIZEL szlExtent;
2202 } EMRSETVIEWPORTEXTEX,*PEMRSETVIEWPORTEXTEX,EMRSETWINDOWEXTEX,*PEMRSETWINDOWEXTEX;
2203 typedef struct tagEMRSETVIEWPORTORGEX {
2204 EMR emr;
2205 POINTL ptlOrigin;
2206 } EMRSETVIEWPORTORGEX,*PEMRSETVIEWPORTORGEX,EMRSETWINDOWORGEX,*PEMRSETWINDOWORGEX,EMRSETBRUSHORGEX,*PEMRSETBRUSHORGEX;
2207 typedef struct tagEMRSETWORLDTRANSFORM {
2208 EMR emr;
2209 XFORM xform;
2210 } EMRSETWORLDTRANSFORM,*PEMRSETWORLDTRANSFORM;
2211 typedef struct tagEMRSTRETCHBLT {
2212 EMR emr;
2213 RECTL rclBounds;
2214 LONG xDest;
2215 LONG yDest;
2216 LONG cxDest;
2217 LONG cyDest;
2218 DWORD dwRop;
2219 LONG xSrc;
2220 LONG ySrc;
2221 XFORM xformSrc;
2222 COLORREF crBkColorSrc;
2223 DWORD iUsageSrc;
2224 DWORD offBmiSrc;
2225 DWORD cbBmiSrc;
2226 DWORD offBitsSrc;
2227 DWORD cbBitsSrc;
2228 LONG cxSrc;
2229 LONG cySrc;
2230 } EMRSTRETCHBLT,*PEMRSTRETCHBLT;
2231 typedef struct tagEMRALPHABLEND {
2232 EMR emr;
2233 RECTL rclBounds;
2234 LONG xDest;
2235 LONG yDest;
2236 LONG cxDest;
2237 LONG cyDest;
2238 DWORD dwRop;
2239 LONG xSrc;
2240 LONG ySrc;
2241 XFORM xformSrc;
2242 COLORREF crBkColorSrc;
2243 DWORD iUsageSrc;
2244 DWORD offBmiSrc;
2245 DWORD cbBmiSrc;
2246 DWORD offBitsSrc;
2247 DWORD cbBitsSrc;
2248 LONG cxSrc;
2249 LONG cySrc;
2250 } EMRALPHABLEND, *PEMRALPHABLEND;
2251 typedef struct tagEMRSTRETCHDIBITS {
2252 EMR emr;
2253 RECTL rclBounds;
2254 LONG xDest;
2255 LONG yDest;
2256 LONG xSrc;
2257 LONG ySrc;
2258 LONG cxSrc;
2259 LONG cySrc;
2260 DWORD offBmiSrc;
2261 DWORD cbBmiSrc;
2262 DWORD offBitsSrc;
2263 DWORD cbBitsSrc;
2264 DWORD iUsageSrc;
2265 DWORD dwRop;
2266 LONG cxDest;
2267 LONG cyDest;
2268 } EMRSTRETCHDIBITS,*PEMRSTRETCHDIBITS;
2269 typedef struct tagABORTPATH {
2270 EMR emr;
2271 } EMRABORTPATH,*PEMRABORTPATH,EMRBEGINPATH,*PEMRBEGINPATH,EMRENDPATH,*PEMRENDPATH,EMRCLOSEFIGURE,*PEMRCLOSEFIGURE,EMRFLATTENPATH,*PEMRFLATTENPATH,EMRWIDENPATH,*PEMRWIDENPATH,EMRSETMETARGN,*PEMRSETMETARGN,EMRSAVEDC,*PEMRSAVEDC,EMRREALIZEPALETTE,*PEMRREALIZEPALETTE;
2272 typedef struct tagEMRSELECTCLIPPATH {
2273 EMR emr;
2274 DWORD iMode;
2275 } EMRSELECTCLIPPATH,*PEMRSELECTCLIPPATH, EMRSETBKMODE,*PEMRSETBKMODE, EMRSETMAPMODE, *PEMRSETMAPMODE,
2276 EMRSETPOLYFILLMODE, *PEMRSETPOLYFILLMODE, EMRSETROP2, *PEMRSETROP2, EMRSETSTRETCHBLTMODE, *PEMRSETSTRETCHBLTMODE,
2277 EMRSETICMMODE, *PEMRSETICMMODE, EMRSETTEXTALIGN,
2278 #if(WINVER >= 0x0500)
2279 EMRSETLAYOUT, *PEMRSETLAYOUT,
2280 #endif
2281 *PEMRSETTEXTALIGN;
2282
2283 #include "pshpack2.h"
2284 typedef struct tagMETAHEADER {
2285 WORD mtType;
2286 WORD mtHeaderSize;
2287 WORD mtVersion;
2288 DWORD mtSize;
2289 WORD mtNoObjects;
2290 DWORD mtMaxRecord;
2291 WORD mtNoParameters;
2292 } METAHEADER,*PMETAHEADER,*LPMETAHEADER;
2293 #include "poppack.h"
2294 typedef struct tagENHMETAHEADER {
2295 DWORD iType;
2296 DWORD nSize;
2297 RECTL rclBounds;
2298 RECTL rclFrame;
2299 DWORD dSignature;
2300 DWORD nVersion;
2301 DWORD nBytes;
2302 DWORD nRecords;
2303 WORD nHandles;
2304 WORD sReserved;
2305 DWORD nDescription;
2306 DWORD offDescription;
2307 DWORD nPalEntries;
2308 SIZEL szlDevice;
2309 SIZEL szlMillimeters;
2310 #if (WINVER >= 0x0400)
2311 DWORD cbPixelFormat;
2312 DWORD offPixelFormat;
2313 DWORD bOpenGL;
2314 #endif
2315 #if (WINVER >= 0x0500)
2316 SIZEL szlMicrometers;
2317 #endif
2318 } ENHMETAHEADER,*PENHMETAHEADER,*LPENHMETAHEADER;
2319 typedef struct tagMETARECORD {
2320 DWORD rdSize;
2321 WORD rdFunction;
2322 WORD rdParm[1];
2323 } METARECORD,*PMETARECORD,*LPMETARECORD;
2324 typedef struct tagENHMETARECORD {
2325 DWORD iType;
2326 DWORD nSize;
2327 DWORD dParm[1];
2328 } ENHMETARECORD,*LPENHMETARECORD;
2329 typedef struct tagHANDLETABLE {
2330 HGDIOBJ objectHandle[1];
2331 } HANDLETABLE,*PHANDLETABLE, *LPHANDLETABLE;
2332
2333 #ifndef _TEXTMETRIC_DEFINED
2334 #define _TEXTMETRIC_DEFINED
2335 typedef struct tagTEXTMETRICA {
2336 LONG tmHeight;
2337 LONG tmAscent;
2338 LONG tmDescent;
2339 LONG tmInternalLeading;
2340 LONG tmExternalLeading;
2341 LONG tmAveCharWidth;
2342 LONG tmMaxCharWidth;
2343 LONG tmWeight;
2344 LONG tmOverhang;
2345 LONG tmDigitizedAspectX;
2346 LONG tmDigitizedAspectY;
2347 BYTE tmFirstChar;
2348 BYTE tmLastChar;
2349 BYTE tmDefaultChar;
2350 BYTE tmBreakChar;
2351 BYTE tmItalic;
2352 BYTE tmUnderlined;
2353 BYTE tmStruckOut;
2354 BYTE tmPitchAndFamily;
2355 BYTE tmCharSet;
2356 } TEXTMETRICA,*PTEXTMETRICA,*LPTEXTMETRICA;
2357 typedef struct tagTEXTMETRICW {
2358 LONG tmHeight;
2359 LONG tmAscent;
2360 LONG tmDescent;
2361 LONG tmInternalLeading;
2362 LONG tmExternalLeading;
2363 LONG tmAveCharWidth;
2364 LONG tmMaxCharWidth;
2365 LONG tmWeight;
2366 LONG tmOverhang;
2367 LONG tmDigitizedAspectX;
2368 LONG tmDigitizedAspectY;
2369 WCHAR tmFirstChar;
2370 WCHAR tmLastChar;
2371 WCHAR tmDefaultChar;
2372 WCHAR tmBreakChar;
2373 BYTE tmItalic;
2374 BYTE tmUnderlined;
2375 BYTE tmStruckOut;
2376 BYTE tmPitchAndFamily;
2377 BYTE tmCharSet;
2378 } TEXTMETRICW,*PTEXTMETRICW,*LPTEXTMETRICW;
2379 #endif
2380
2381 typedef struct _RGNDATAHEADER {
2382 DWORD dwSize;
2383 DWORD iType;
2384 DWORD nCount;
2385 DWORD nRgnSize;
2386 RECT rcBound;
2387 } RGNDATAHEADER, *PRGNDATAHEADER;
2388 typedef struct _RGNDATA {
2389 RGNDATAHEADER rdh;
2390 char Buffer[1];
2391 } RGNDATA,*PRGNDATA, *LPRGNDATA;
2392 /* for GetRandomRgn */
2393 #define SYSRGN 4
2394 typedef struct tagGCP_RESULTSA {
2395 DWORD lStructSize;
2396 LPSTR lpOutString;
2397 UINT *lpOrder;
2398 INT *lpDx;
2399 INT *lpCaretPos;
2400 LPSTR lpClass;
2401 LPWSTR lpGlyphs;
2402 UINT nGlyphs;
2403 UINT nMaxFit;
2404 } GCP_RESULTSA,*LPGCP_RESULTSA;
2405 typedef struct tagGCP_RESULTSW {
2406 DWORD lStructSize;
2407 LPWSTR lpOutString;
2408 UINT *lpOrder;
2409 INT *lpDx;
2410 INT *lpCaretPos;
2411 LPWSTR lpClass;
2412 LPWSTR lpGlyphs;
2413 UINT nGlyphs;
2414 UINT nMaxFit;
2415 } GCP_RESULTSW,*LPGCP_RESULTSW;
2416 typedef struct _GLYPHMETRICS {
2417 UINT gmBlackBoxX;
2418 UINT gmBlackBoxY;
2419 POINT gmptGlyphOrigin;
2420 short gmCellIncX;
2421 short gmCellIncY;
2422 } GLYPHMETRICS,*LPGLYPHMETRICS;
2423 #if (_WIN32_WINNT >= 0x0500)
2424 typedef struct tagWCRANGE
2425 {
2426 WCHAR wcLow;
2427 USHORT cGlyphs;
2428 } WCRANGE, *PWCRANGE, *LPWCRANGE;
2429 typedef struct tagGLYPHSET
2430 {
2431 DWORD cbThis;
2432 DWORD flAccel;
2433 DWORD cGlyphsSupported;
2434 DWORD cRanges;
2435 WCRANGE ranges[1];
2436 } GLYPHSET, *PGLYPHSET, *LPGLYPHSET;
2437 #endif
2438 typedef struct tagKERNINGPAIR {
2439 WORD wFirst;
2440 WORD wSecond;
2441 int iKernAmount;
2442 } KERNINGPAIR,*LPKERNINGPAIR;
2443 typedef struct _FIXED {
2444 WORD fract;
2445 short value;
2446 } FIXED;
2447 typedef struct _MAT2 {
2448 FIXED eM11;
2449 FIXED eM12;
2450 FIXED eM21;
2451 FIXED eM22;
2452 } MAT2,*LPMAT2;
2453 typedef struct _OUTLINETEXTMETRICA {
2454 UINT otmSize;
2455 TEXTMETRICA otmTextMetrics;
2456 BYTE otmFiller;
2457 PANOSE otmPanoseNumber;
2458 UINT otmfsSelection;
2459 UINT otmfsType;
2460 int otmsCharSlopeRise;
2461 int otmsCharSlopeRun;
2462 int otmItalicAngle;
2463 UINT otmEMSquare;
2464 int otmAscent;
2465 int otmDescent;
2466 UINT otmLineGap;
2467 UINT otmsCapEmHeight;
2468 UINT otmsXHeight;
2469 RECT otmrcFontBox;
2470 int otmMacAscent;
2471 int otmMacDescent;
2472 UINT otmMacLineGap;
2473 UINT otmusMinimumPPEM;
2474 POINT otmptSubscriptSize;
2475 POINT otmptSubscriptOffset;
2476 POINT otmptSuperscriptSize;
2477 POINT otmptSuperscriptOffset;
2478 UINT otmsStrikeoutSize;
2479 int otmsStrikeoutPosition;
2480 int otmsUnderscoreSize;
2481 int otmsUnderscorePosition;
2482 PSTR otmpFamilyName;
2483 PSTR otmpFaceName;
2484 PSTR otmpStyleName;
2485 PSTR otmpFullName;
2486 } OUTLINETEXTMETRICA,*POUTLINETEXTMETRICA,*LPOUTLINETEXTMETRICA;
2487 typedef struct _OUTLINETEXTMETRICW {
2488 UINT otmSize;
2489 TEXTMETRICW otmTextMetrics;
2490 BYTE otmFiller;
2491 PANOSE otmPanoseNumber;
2492 UINT otmfsSelection;
2493 UINT otmfsType;
2494 int otmsCharSlopeRise;
2495 int otmsCharSlopeRun;
2496 int otmItalicAngle;
2497 UINT otmEMSquare;
2498 int otmAscent;
2499 int otmDescent;
2500 UINT otmLineGap;
2501 UINT otmsCapEmHeight;
2502 UINT otmsXHeight;
2503 RECT otmrcFontBox;
2504 int otmMacAscent;
2505 int otmMacDescent;
2506 UINT otmMacLineGap;
2507 UINT otmusMinimumPPEM;
2508 POINT otmptSubscriptSize;
2509 POINT otmptSubscriptOffset;
2510 POINT otmptSuperscriptSize;
2511 POINT otmptSuperscriptOffset;
2512 UINT otmsStrikeoutSize;
2513 int otmsStrikeoutPosition;
2514 int otmsUnderscoreSize;
2515 int otmsUnderscorePosition;
2516 PSTR otmpFamilyName;
2517 PSTR otmpFaceName;
2518 PSTR otmpStyleName;
2519 PSTR otmpFullName;
2520 } OUTLINETEXTMETRICW,*POUTLINETEXTMETRICW,*LPOUTLINETEXTMETRICW;
2521 typedef struct _RASTERIZER_STATUS {
2522 short nSize;
2523 short wFlags;
2524 short nLanguageID;
2525 } RASTERIZER_STATUS,*LPRASTERIZER_STATUS;
2526 typedef struct _POLYTEXTA {
2527 int x;
2528 int y;
2529 UINT n;
2530 LPCSTR lpstr;
2531 UINT uiFlags;
2532 RECT rcl;
2533 int *pdx;
2534 } POLYTEXTA, *PPOLYTEXTA, *LPPOLYTEXTA;
2535 typedef struct _POLYTEXTW {
2536 int x;
2537 int y;
2538 UINT n;
2539 LPCWSTR lpstr;
2540 UINT uiFlags;
2541 RECT rcl;
2542 int *pdx;
2543 } POLYTEXTW, *PPOLYTEXTW, *LPPOLYTEXTW;
2544 typedef struct tagPIXELFORMATDESCRIPTOR {
2545 WORD nSize;
2546 WORD nVersion;
2547 DWORD dwFlags;
2548 BYTE iPixelType;
2549 BYTE cColorBits;
2550 BYTE cRedBits;
2551 BYTE cRedShift;
2552 BYTE cGreenBits;
2553 BYTE cGreenShift;
2554 BYTE cBlueBits;
2555 BYTE cBlueShift;
2556 BYTE cAlphaBits;
2557 BYTE cAlphaShift;
2558 BYTE cAccumBits;
2559 BYTE cAccumRedBits;
2560 BYTE cAccumGreenBits;
2561 BYTE cAccumBlueBits;
2562 BYTE cAccumAlphaBits;
2563 BYTE cDepthBits;
2564 BYTE cStencilBits;
2565 BYTE cAuxBuffers;
2566 BYTE iLayerType;
2567 BYTE bReserved;
2568 DWORD dwLayerMask;
2569 DWORD dwVisibleMask;
2570 DWORD dwDamageMask;
2571 } PIXELFORMATDESCRIPTOR,*PPIXELFORMATDESCRIPTOR,*LPPIXELFORMATDESCRIPTOR;
2572
2573 typedef struct tagEMRPIXELFORMAT
2574 {
2575 EMR emr;
2576 PIXELFORMATDESCRIPTOR pfd;
2577 } EMRPIXELFORMAT, *PEMRPIXELFORMAT;
2578
2579 typedef struct tagMETAFILEPICT {
2580 LONG mm;
2581 LONG xExt;
2582 LONG yExt;
2583 HMETAFILE hMF;
2584 } METAFILEPICT,*LPMETAFILEPICT;
2585 typedef struct tagLOCALESIGNATURE {
2586 DWORD lsUsb[4];
2587 DWORD lsCsbDefault[2];
2588 DWORD lsCsbSupported[2];
2589 } LOCALESIGNATURE,*PLOCALESIGNATURE,*LPLOCALESIGNATURE;
2590 typedef LONG LCSTYPE;
2591 #include "pshpack4.h"
2592 typedef struct tagNEWTEXTMETRICA {
2593 LONG tmHeight;
2594 LONG tmAscent;
2595 LONG tmDescent;
2596 LONG tmInternalLeading;
2597 LONG tmExternalLeading;
2598 LONG tmAveCharWidth;
2599 LONG tmMaxCharWidth;
2600 LONG tmWeight;
2601 LONG tmOverhang;
2602 LONG tmDigitizedAspectX;
2603 LONG tmDigitizedAspectY;
2604 BYTE tmFirstChar;
2605 BYTE tmLastChar;
2606 BYTE tmDefaultChar;
2607 BYTE tmBreakChar;
2608 BYTE tmItalic;
2609 BYTE tmUnderlined;
2610 BYTE tmStruckOut;
2611 BYTE tmPitchAndFamily;
2612 BYTE tmCharSet;
2613 DWORD ntmFlags;
2614 UINT ntmSizeEM;
2615 UINT ntmCellHeight;
2616 UINT ntmAvgWidth;
2617 } NEWTEXTMETRICA,*PNEWTEXTMETRICA,*LPNEWTEXTMETRICA;
2618 typedef struct tagNEWTEXTMETRICW {
2619 LONG tmHeight;
2620 LONG tmAscent;
2621 LONG tmDescent;
2622 LONG tmInternalLeading;
2623 LONG tmExternalLeading;
2624 LONG tmAveCharWidth;
2625 LONG tmMaxCharWidth;
2626 LONG tmWeight;
2627 LONG tmOverhang;
2628 LONG tmDigitizedAspectX;
2629 LONG tmDigitizedAspectY;
2630 WCHAR tmFirstChar;
2631 WCHAR tmLastChar;
2632 WCHAR tmDefaultChar;
2633 WCHAR tmBreakChar;
2634 BYTE tmItalic;
2635 BYTE tmUnderlined;
2636 BYTE tmStruckOut;
2637 BYTE tmPitchAndFamily;
2638 BYTE tmCharSet;
2639 DWORD ntmFlags;
2640 UINT ntmSizeEM;
2641 UINT ntmCellHeight;
2642 UINT ntmAvgWidth;
2643 } NEWTEXTMETRICW,*PNEWTEXTMETRICW,*LPNEWTEXTMETRICW;
2644 #include "poppack.h"
2645 typedef struct tagNEWTEXTMETRICEXA {
2646 NEWTEXTMETRICA ntmTm;
2647 FONTSIGNATURE ntmFontSig;
2648 } NEWTEXTMETRICEXA;
2649 typedef struct tagNEWTEXTMETRICEXW {
2650 NEWTEXTMETRICW ntmTm;
2651 FONTSIGNATURE ntmFontSig;
2652 } NEWTEXTMETRICEXW;
2653 typedef struct tagPELARRAY {
2654 LONG paXCount;
2655 LONG paYCount;
2656 LONG paXExt;
2657 LONG paYExt;
2658 BYTE paRGBs;
2659 } PELARRAY,*PPELARRAY,*LPPELARRAY;
2660 typedef struct tagENUMLOGFONTA {
2661 LOGFONTA elfLogFont;
2662 BYTE elfFullName[LF_FULLFACESIZE];
2663 BYTE elfStyle[LF_FACESIZE];
2664 } ENUMLOGFONTA,*LPENUMLOGFONTA;
2665 typedef struct tagENUMLOGFONTW {
2666 LOGFONTW elfLogFont;
2667 WCHAR elfFullName[LF_FULLFACESIZE];
2668 WCHAR elfStyle[LF_FACESIZE];
2669 } ENUMLOGFONTW,*LPENUMLOGFONTW;
2670 typedef struct tagENUMLOGFONTEXA {
2671 LOGFONTA elfLogFont;
2672 BYTE elfFullName[LF_FULLFACESIZE];
2673 BYTE elfStyle[LF_FACESIZE];
2674 BYTE elfScript[LF_FACESIZE];
2675 } ENUMLOGFONTEXA,*LPENUMLOGFONTEXA;
2676 typedef struct tagENUMLOGFONTEXW {
2677 LOGFONTW elfLogFont;
2678 WCHAR elfFullName[LF_FULLFACESIZE];
2679 WCHAR elfStyle[LF_FACESIZE];
2680 WCHAR elfScript[LF_FACESIZE];
2681 } ENUMLOGFONTEXW,*LPENUMLOGFONTEXW;
2682 typedef struct tagPOINTFX {
2683 FIXED x;
2684 FIXED y;
2685 } POINTFX,*LPPOINTFX;
2686 typedef struct tagTTPOLYCURVE {
2687 WORD wType;
2688 WORD cpfx;
2689 POINTFX apfx[1];
2690 } TTPOLYCURVE,*LPTTPOLYCURVE;
2691 typedef struct tagTTPOLYGONHEADER {
2692 DWORD cb;
2693 DWORD dwType;
2694 POINTFX pfxStart;
2695 } TTPOLYGONHEADER,*LPTTPOLYGONHEADER;
2696 typedef struct _POINTFLOAT {
2697 FLOAT x;
2698 FLOAT y;
2699 } POINTFLOAT,*PPOINTFLOAT;
2700 typedef struct _GLYPHMETRICSFLOAT {
2701 FLOAT gmfBlackBoxX;
2702 FLOAT gmfBlackBoxY;
2703 POINTFLOAT gmfptGlyphOrigin;
2704 FLOAT gmfCellIncX;
2705 FLOAT gmfCellIncY;
2706 } GLYPHMETRICSFLOAT,*PGLYPHMETRICSFLOAT,*LPGLYPHMETRICSFLOAT;
2707 typedef struct tagLAYERPLANEDESCRIPTOR {
2708 WORD nSize;
2709 WORD nVersion;
2710 DWORD dwFlags;
2711 BYTE iPixelType;
2712 BYTE cColorBits;
2713 BYTE cRedBits;
2714 BYTE cRedShift;
2715 BYTE cGreenBits;
2716 BYTE cGreenShift;
2717 BYTE cBlueBits;
2718 BYTE cBlueShift;
2719 BYTE cAlphaBits;
2720 BYTE cAlphaShift;
2721 BYTE cAccumBits;
2722 BYTE cAccumRedBits;
2723 BYTE cAccumGreenBits;
2724 BYTE cAccumBlueBits;
2725 BYTE cAccumAlphaBits;
2726 BYTE cDepthBits;
2727 BYTE cStencilBits;
2728 BYTE cAuxBuffers;
2729 BYTE iLayerPlane;
2730 BYTE bReserved;
2731 COLORREF crTransparent;
2732 } LAYERPLANEDESCRIPTOR,*PLAYERPLANEDESCRIPTOR,*LPLAYERPLANEDESCRIPTOR;
2733 typedef struct _BLENDFUNCTION {
2734 BYTE BlendOp;
2735 BYTE BlendFlags;
2736 BYTE SourceConstantAlpha;
2737 BYTE AlphaFormat;
2738 } BLENDFUNCTION,*PBLENDFUNCTION,*LPBLENDFUNCTION;
2739 #define STAMP_DESIGNVECTOR (0x8000000 + 'd' + ('v' << 8))
2740 #define STAMP_AXESLIST (0x8000000 + 'a' + ('l' << 8))
2741 #define MM_MAX_NUMAXES 16
2742 typedef struct _DESIGNVECTOR {
2743 DWORD dvReserved;
2744 DWORD dvNumAxes;
2745 LONG dvValues[MM_MAX_NUMAXES];
2746 } DESIGNVECTOR, *PDESIGNVECTOR, *LPDESIGNVECTOR;
2747 typedef struct tagENUMLOGFONTEXDVA
2748 {
2749 ENUMLOGFONTEXA elfEnumLogfontEx;
2750 DESIGNVECTOR elfDesignVector;
2751 } ENUMLOGFONTEXDVA, *PENUMLOGFONTEXDVA, *LPENUMLOGFONTEXDVA;
2752 typedef struct tagENUMLOGFONTEXDVW
2753 {
2754 ENUMLOGFONTEXW elfEnumLogfontEx;
2755 DESIGNVECTOR elfDesignVector;
2756 } ENUMLOGFONTEXDVW, *PENUMLOGFONTEXDVW, *LPENUMLOGFONTEXDVW;
2757 typedef USHORT COLOR16;
2758 typedef struct _TRIVERTEX {
2759 LONG x;
2760 LONG y;
2761 COLOR16 Red;
2762 COLOR16 Green;
2763 COLOR16 Blue;
2764 COLOR16 Alpha;
2765 } TRIVERTEX, *PTRIVERTEX, *LPTRIVERTEX;
2766 typedef struct _GRADIENT_TRIANGLE {
2767 ULONG Vertex1;
2768 ULONG Vertex2;
2769 ULONG Vertex3;
2770 } GRADIENT_TRIANGLE,*PGRADIENT_TRIANGLE,*LPGRADIENT_TRIANGLE;
2771 typedef struct _GRADIENT_RECT {
2772 ULONG UpperLeft;
2773 ULONG LowerRight;
2774 }GRADIENT_RECT,*PGRADIENT_RECT,*LPGRADIENT_RECT;
2775 typedef struct _DISPLAY_DEVICEA {
2776 DWORD cb;
2777 CHAR DeviceName[32];
2778 CHAR DeviceString[128];
2779 DWORD StateFlags;
2780 CHAR DeviceID[128];
2781 CHAR DeviceKey[128];
2782 } DISPLAY_DEVICEA, *PDISPLAY_DEVICEA, *LPDISPLAY_DEVICEA;
2783 typedef struct _DISPLAY_DEVICEW {
2784 DWORD cb;
2785 WCHAR DeviceName[32];
2786 WCHAR DeviceString[128];
2787 DWORD StateFlags;
2788 WCHAR DeviceID[128];
2789 WCHAR DeviceKey[128];
2790 } DISPLAY_DEVICEW, *PDISPLAY_DEVICEW, *LPDISPLAY_DEVICEW;
2791 #define MM_MAX_AXES_NAMELEN 16
2792 typedef struct _AXISINFOA
2793 {
2794 LONG axMinValue;
2795 LONG axMaxValue;
2796 BYTE axAxisName[MM_MAX_AXES_NAMELEN];
2797 } AXISINFOA, *PAXISINFOA, *LPAXISINFOA;
2798 typedef struct _AXISINFOW
2799 {
2800 LONG axMinValue;
2801 LONG axMaxValue;
2802 WCHAR axAxisName[MM_MAX_AXES_NAMELEN];
2803 } AXISINFOW, *PAXISINFOW, *LPAXISINFOW;
2804 typedef struct _AXESLISTA
2805 {
2806 DWORD axlReserved;
2807 DWORD axlNumAxes;
2808 AXISINFOA axlAxisInfo[MM_MAX_NUMAXES];
2809 } AXESLISTA, *PAXESLISTA, *LPAXESLISTA;
2810 typedef struct _AXESLISTW
2811 {
2812 DWORD axlReserved;
2813 DWORD axlNumAxes;
2814 AXISINFOW axlAxisInfo[MM_MAX_NUMAXES];
2815 } AXESLISTW, *PAXESLISTW, *LPAXESLISTW;
2816 typedef struct _ENUMTEXTMETRICA
2817 {
2818 NEWTEXTMETRICEXA etmNewTextMetricEx;
2819 AXESLISTA etmAxesList;
2820 } ENUMTEXTMETRICA, *PENUMTEXTMETRICA, *LPENUMTEXTMETRICA;
2821 typedef struct _ENUMTEXTMETRICW
2822 {
2823 NEWTEXTMETRICEXW etmNewTextMetricEx;
2824 AXESLISTW etmAxesList;
2825 } ENUMTEXTMETRICW, *PENUMTEXTMETRICW, *LPENUMTEXTMETRICW;
2826
2827
2828 #if defined(STRICT)
2829
2830 #if !defined(NOTEXTMETRIC)
2831
2832 typedef int (CALLBACK *OLDFONTENUMPROCA)(CONST LOGFONTA *, CONST TEXTMETRICA *, DWORD, LPARAM);
2833 typedef int (CALLBACK *OLDFONTENUMPROCW)(CONST LOGFONTW *, CONST TEXTMETRICW *, DWORD, LPARAM);
2834
2835 #else
2836
2837 typedef int (CALLBACK* OLDFONTENUMPROCA)(CONST LOGFONTA *, CONST VOID *, DWORD, LPARAM);
2838 typedef int (CALLBACK* OLDFONTENUMPROCW)(CONST LOGFONTW *, CONST VOID *, DWORD, LPARAM);
2839
2840 #endif
2841
2842 #ifdef UNICODE
2843 #define OLDFONTENUMPROC OLDFONTENUMPROCW
2844 #else
2845 #define OLDFONTENUMPROC OLDFONTENUMPROCA
2846 #endif
2847
2848 typedef OLDFONTENUMPROCA FONTENUMPROCA;
2849 typedef OLDFONTENUMPROCW FONTENUMPROCW;
2850
2851 #ifdef UNICODE
2852 typedef FONTENUMPROCW FONTENUMPROC;
2853 #else
2854 typedef FONTENUMPROCA FONTENUMPROC;
2855 #endif
2856
2857 typedef INT (CALLBACK *GOBJENUMPROC)(LPVOID, LPARAM);
2858 typedef VOID (CALLBACK *LINEDDAPROC)(INT, INT, LPARAM);
2859
2860 #else // defined(STRICT)
2861
2862 typedef FARPROC OLDFONTENUMPROC;
2863 typedef FARPROC FONTENUMPROCA;
2864 typedef FARPROC FONTENUMPROCW;
2865
2866 #ifdef UNICODE
2867 typedef FONTENUMPROCW FONTENUMPROC;
2868 #else
2869 typedef FONTENUMPROCA FONTENUMPROC;
2870 #endif
2871
2872 typedef FARPROC GOBJENUMPROC;
2873 typedef FARPROC LINEDDAPROC;
2874
2875 #endif
2876
2877
2878 typedef BOOL (CALLBACK *ABORTPROC)(HDC,int);
2879
2880 typedef int
2881 (CALLBACK *MFENUMPROC)(
2882 _In_ HDC hdc,
2883 _In_reads_(nObj) HANDLETABLE FAR* lpht,
2884 _In_ METARECORD FAR* lpMR,
2885 _In_ int nObj,
2886 _In_opt_ LPARAM param);
2887
2888 typedef int
2889 (CALLBACK *ENHMFENUMPROC)(
2890 _In_ HDC hdc,
2891 _In_reads_(nHandles) HANDLETABLE FAR* lpht,
2892 _In_ CONST ENHMETARECORD * lpmr,
2893 _In_ int nHandles,
2894 _In_opt_ LPARAM data);
2895
2896 typedef int (CALLBACK *ICMENUMPROCA)(LPSTR,LPARAM);
2897 typedef int (CALLBACK *ICMENUMPROCW)(LPWSTR,LPARAM);
2898 typedef UINT (CALLBACK *LPFNDEVMODE)(HWND,HMODULE,LPDEVMODEA,LPSTR,LPSTR,LPDEVMODEA,LPSTR,UINT);
2899 typedef DWORD (CALLBACK *LPFNDEVCAPS)(LPSTR,LPSTR,UINT,LPSTR,LPDEVMODEA);
2900
2901
2902 #define GetRValue(rgb) ((BYTE)(rgb))
2903 #define GetGValue(rgb) ((BYTE)(((WORD)(rgb)) >> 8))
2904 #define GetBValue(rgb) ((BYTE)((rgb)>>16))
2905 #define GetAValue(rgb) ((BYTE)((rgb)>>24))
2906
2907 #define RGB(r,g,b) ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8))|(((DWORD)(BYTE)(b))<<16)))
2908 #define RGBA(r,g,b,a) ((COLORREF)((((DWORD)(BYTE)(a))<<24) | RGB(r,g,b)))
2909 #define PALETTERGB(r,g,b) (0x02000000 | RGB(r,g,b))
2910 #define PALETTEINDEX(i) ((COLORREF)(0x01000000 | (DWORD)(WORD)(i)))
2911
2912 #define MAKEPOINTS(l) (*((POINTS*)&(l)))
2913 #define MAKEROP4(f,b) (DWORD)((((b)<<8)&0xFF000000)|(f))
2914
2915 INT
2916 WINAPI
2917 AbortDoc(
2918 _In_ HDC hdc);
2919
2920 BOOL
2921 WINAPI
2922 AbortPath(
2923 _In_ HDC hdc);
2924
2925 int
2926 WINAPI
2927 AddFontResourceA(
2928 _In_ LPCSTR pszFilename);
2929
2930 int
2931 WINAPI
2932 AddFontResourceW(
2933 _In_ LPCWSTR pszFilename);
2934
2935 HANDLE
2936 WINAPI
2937 AddFontMemResourceEx(
2938 _In_reads_bytes_(cjSize) PVOID pvFileView,
2939 _In_ DWORD cjSize,
2940 _Reserved_ PVOID pvResrved,
2941 _In_ DWORD* pNumFonts);
2942
2943 INT
2944 WINAPI
2945 AddFontResourceExA(
2946 _In_ LPCSTR pszFilename,
2947 _In_ DWORD fl,
2948 _Reserved_ PVOID pvReserved);
2949
2950 INT
2951 WINAPI
2952 AddFontResourceExW(
2953 _In_ LPCWSTR pszFilename,
2954 _In_ DWORD fl,
2955 _Reserved_ PVOID pvReserved);
2956
2957 BOOL
2958 WINAPI
2959 AngleArc(
2960 _In_ HDC hdc,
2961 _In_ INT x,
2962 _In_ INT y,
2963 _In_ DWORD dwRadius,
2964 _In_ FLOAT eStartAngle,
2965 _In_ FLOAT eSweepAngle);
2966
2967 BOOL
2968 WINAPI
2969 AnimatePalette(
2970 _In_ HPALETTE hPal,
2971 _In_ UINT iStartIndex,
2972 _In_ UINT cEntries,
2973 _In_reads_(cEntries) CONST PALETTEENTRY *ppe);
2974
2975 BOOL
2976 WINAPI
2977 Arc(
2978 _In_ HDC hdc,
2979 _In_ INT xLeft,
2980 _In_ INT yTop,
2981 _In_ INT xRight,
2982 _In_ INT yBottom,
2983 _In_ INT xStartArc,
2984 _In_ INT yStartArc,
2985 _In_ INT xEndArc,
2986 _In_ INT yEndArc);
2987
2988 BOOL
2989 WINAPI
2990 ArcTo(
2991 _In_ HDC hdc,
2992 _In_ INT xLeft,
2993 _In_ INT yTop,
2994 _In_ INT xRight,
2995 _In_ INT yBottom,
2996 _In_ INT xRadial1,
2997 _In_ INT yRadial1,
2998 _In_ INT xRadial2,
2999 _In_ INT yRadial2);
3000
3001 BOOL
3002 WINAPI
3003 BeginPath(
3004 _In_ HDC hdc);
3005
3006 BOOL
3007 WINAPI
3008 BitBlt(
3009 _In_ HDC hdcDest,
3010 _In_ INT xDest,
3011 _In_ INT yDest,
3012 _In_ INT cxDest,
3013 _In_ INT cyDest,
3014 _In_opt_ HDC hdcSrc,
3015 _In_ INT xSrc,
3016 _In_ INT ySrc,
3017 _In_ DWORD dwRop);
3018
3019 BOOL
3020 WINAPI
3021 CancelDC(
3022 _In_ HDC hdc);
3023
3024 BOOL
3025 WINAPI
3026 CheckColorsInGamut(
3027 _In_ HDC hdc,
3028 _In_reads_(nCount) LPVOID pRGBTriple,
3029 _Out_writes_bytes_(nCount) LPVOID pvBuffer,
3030 _In_ DWORD nCount);
3031
3032 BOOL
3033 WINAPI
3034 Chord(
3035 _In_ HDC hdc,
3036 _In_ INT xLeft,
3037 _In_ INT yTop,
3038 _In_ INT xRight,
3039 _In_ INT yBottom,
3040 _In_ INT xRadial1,
3041 _In_ INT yRadial1,
3042 _In_ INT xRadial2,
3043 _In_ INT yRadial2);
3044
3045 int
3046 WINAPI
3047 ChoosePixelFormat(
3048 _In_ HDC hdc,
3049 _In_ const PIXELFORMATDESCRIPTOR* ppfd);
3050
3051 HENHMETAFILE
3052 WINAPI
3053 CloseEnhMetaFile(
3054 _In_ HDC hdc);
3055
3056 BOOL
3057 WINAPI
3058 CloseFigure(
3059 _In_ HDC hdc);
3060
3061 HMETAFILE
3062 WINAPI
3063 CloseMetaFile(
3064 _In_ HDC hdc);
3065
3066 BOOL
3067 WINAPI
3068 ColorMatchToTarget(
3069 _In_ HDC hdc,
3070 _In_ HDC hdcTarget,
3071 _In_ DWORD uAction);
3072
3073 int
3074 WINAPI
3075 CombineRgn(
3076 _In_opt_ HRGN hrgnDest,
3077 _In_opt_ HRGN hrgnSrc1,
3078 _In_opt_ HRGN hrgnSrc2,
3079 _In_ int fnCombineMode);
3080
3081 BOOL
3082 WINAPI
3083 CombineTransform(
3084 _Out_ LPXFORM pxformResult,
3085 _In_ const XFORM* pxform1,
3086 _In_ const XFORM* pxform2);
3087
3088 HENHMETAFILE
3089 WINAPI
3090 CopyEnhMetaFileA(
3091 _In_ HENHMETAFILE hemfSrc,
3092 _In_opt_ LPCSTR pszFile);
3093
3094 HENHMETAFILE
3095 WINAPI
3096 CopyEnhMetaFileW(
3097 _In_ HENHMETAFILE hemfSrc,
3098 _In_opt_ LPCWSTR pszFile);
3099
3100 HMETAFILE
3101 WINAPI
3102 CopyMetaFileA(
3103 _In_ HMETAFILE hmfSrc,
3104 _In_opt_ LPCSTR pszFile);
3105
3106 HMETAFILE
3107 WINAPI
3108 CopyMetaFileW(
3109 _In_ HMETAFILE hmfSrc,
3110 _In_opt_ LPCWSTR pszFile);
3111
3112 HBITMAP
3113 WINAPI
3114 CreateBitmap(
3115 _In_ INT cx,
3116 _In_ INT cy,
3117 _In_ UINT cPlanes,
3118 _In_ UINT cBitsPerPel,
3119 _In_opt_ const VOID* pvBits);
3120
3121 HBITMAP
3122 WINAPI
3123 CreateBitmapIndirect(
3124 _In_ const BITMAP* pbm);
3125
3126 HBRUSH
3127 WINAPI
3128 CreateBrushIndirect(
3129 _In_ const LOGBRUSH* plb);
3130
3131 HCOLORSPACE
3132 WINAPI
3133 CreateColorSpaceA(
3134 _In_ LPLOGCOLORSPACEA pLogColorSpace);
3135
3136 HCOLORSPACE
3137 WINAPI
3138 CreateColorSpaceW(
3139 _In_ LPLOGCOLORSPACEW pLogColorSpace);
3140
3141 HBITMAP
3142 WINAPI
3143 CreateCompatibleBitmap(
3144 _In_ HDC hdc,
3145 _In_ INT cx,
3146 _In_ INT cy);
3147
3148 HDC
3149 WINAPI
3150 CreateCompatibleDC(
3151 _In_opt_ HDC hdc);
3152
3153 HDC
3154 WINAPI
3155 CreateDCA(
3156 _In_opt_ LPCSTR pszDriver,
3157 _In_opt_ LPCSTR pszDevice,
3158 _In_opt_ LPCSTR pszOutput,
3159 _In_opt_ const DEVMODEA* pdmInit);
3160
3161 HDC
3162 WINAPI
3163 CreateDCW(
3164 _In_opt_ LPCWSTR pszDriver,
3165 _In_opt_ LPCWSTR pszDevice,
3166 _In_opt_ LPCWSTR psz,
3167 _In_opt_ const DEVMODEW* pdmInit);
3168
3169 HBITMAP
3170 WINAPI
3171 CreateDIBitmap(
3172 _In_ HDC hdc,
3173 _In_opt_ const BITMAPINFOHEADER* pbmih,
3174 _In_ DWORD fdwInit,
3175 _In_opt_ const VOID* pvInit,
3176 _In_opt_ const BITMAPINFO* pbmi,
3177 _In_ UINT uUsage);
3178
3179 HBRUSH
3180 WINAPI
3181 CreateDIBPatternBrush(
3182 _In_ HGLOBAL hglbDIBPacked,
3183 _In_ UINT uUsage);
3184
3185 HBRUSH
3186 WINAPI
3187 CreateDIBPatternBrushPt(
3188 _In_ const VOID* pvPackedDIB,
3189 _In_ UINT uUsage);
3190
3191 #define GDI_WIDTHBYTES(bits) ((DWORD)(((bits) + 31) & (~31)) / 8)
3192 #define GDI_DIBWIDTHBYTES(bi) (DWORD)GDI_WIDTHBYTES((DWORD)(bi).biWidth * (DWORD)(bi).biBitCount)
3193 #define GDI__DIBSIZE(bi) (GDI_DIBWIDTHBYTES(bi) * (DWORD)(bi).biHeight)
3194 #define GDI_DIBSIZE(bi) ((bi).biHeight < 0 ? (-1) * (GDI__DIBSIZE(bi)) : GDI__DIBSIZE(bi))
3195
3196 _Success_(return != NULL)
3197 HBITMAP
3198 WINAPI
3199 CreateDIBSection(
3200 _In_opt_ HDC hdc,
3201 _In_ const BITMAPINFO *pbmi,
3202 _In_ UINT usage,
3203 _When_((pbmi->bmiHeader.biBitCount != 0), _Outptr_result_bytebuffer_(GDI_DIBSIZE((pbmi->bmiHeader))))
3204 _When_((pbmi->bmiHeader.biBitCount == 0), _Outptr_result_bytebuffer_((pbmi->bmiHeader).biSizeImage))
3205 VOID **ppvBits,
3206 _In_opt_ HANDLE hSection,
3207 _In_ DWORD offset);
3208
3209 HBITMAP WINAPI CreateDiscardableBitmap(_In_ HDC, _In_ int, _In_ int);
3210 HRGN WINAPI CreateEllipticRgn(_In_ int, _In_ int, _In_ int, _In_ int);
3211 HRGN WINAPI CreateEllipticRgnIndirect(_In_ LPCRECT);
3212 HDC WINAPI CreateEnhMetaFileA(_In_opt_ HDC, _In_opt_ LPCSTR, _In_opt_ LPCRECT, _In_opt_ LPCSTR);
3213 HDC WINAPI CreateEnhMetaFileW(_In_opt_ HDC, _In_opt_ LPCWSTR, _In_opt_ LPCRECT, _In_opt_ LPCWSTR);
3214 HFONT WINAPI CreateFontA(_In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_opt_ LPCSTR);
3215 HFONT WINAPI CreateFontW(_In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_opt_ LPCWSTR);
3216 HFONT WINAPI CreateFontIndirectA(_In_ const LOGFONTA*);
3217 HFONT WINAPI CreateFontIndirectW(_In_ const LOGFONTW*);
3218 HFONT WINAPI CreateFontIndirectExA(const ENUMLOGFONTEXDVA *);
3219 HFONT WINAPI CreateFontIndirectExW(const ENUMLOGFONTEXDVW *);
3220 HPALETTE WINAPI CreateHalftonePalette(_In_opt_ HDC);
3221 HBRUSH WINAPI CreateHatchBrush(_In_ int, _In_ COLORREF);
3222 HDC WINAPI CreateICA(_In_opt_ LPCSTR, _In_opt_ LPCSTR, _In_opt_ LPCSTR, _In_opt_ const DEVMODEA*);
3223 HDC WINAPI CreateICW(_In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_opt_ const DEVMODEW*);
3224 HDC WINAPI CreateMetaFileA(_In_opt_ LPCSTR);
3225 HDC WINAPI CreateMetaFileW(_In_opt_ LPCWSTR);
3226
3227 HPALETTE
3228 WINAPI
3229 CreatePalette(
3230 _In_reads_(_Inexpressible_(2*sizeof(WORD) + plpal->palNumEntries * sizeof(PALETTEENTRY))) const LOGPALETTE*);
3231
3232 HBRUSH WINAPI CreatePatternBrush(_In_ HBITMAP);
3233 HPEN WINAPI CreatePen(_In_ int, _In_ int, _In_ COLORREF);
3234 HPEN WINAPI CreatePenIndirect(_In_ const LOGPEN*);
3235
3236 HRGN
3237 WINAPI
3238 CreatePolygonRgn(
3239 _In_reads_(cPoint) const POINT *pptl,
3240 _In_ int cPoint,
3241 _In_ int iMode);
3242
3243 HRGN
3244 WINAPI
3245 CreatePolyPolygonRgn(
3246 _In_ const POINT *pptl,
3247 _In_reads_(cPoly) const INT *pc,
3248 _In_ int cPoly,
3249 _In_ int iMode);
3250
3251 HRGN WINAPI CreateRectRgn(_In_ int, _In_ int, _In_ int, _In_ int);
3252 HRGN WINAPI CreateRectRgnIndirect(_In_ LPCRECT);
3253 HRGN WINAPI CreateRoundRectRgn(_In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int);
3254 BOOL WINAPI CreateScalableFontResourceA(_In_ DWORD, _In_ LPCSTR, _In_ LPCSTR, _In_opt_ LPCSTR);
3255 BOOL WINAPI CreateScalableFontResourceW(_In_ DWORD, _In_ LPCWSTR, _In_ LPCWSTR, _In_opt_ LPCWSTR);
3256 HBRUSH WINAPI CreateSolidBrush(_In_ COLORREF);
3257 BOOL WINAPI DeleteColorSpace(_In_ HCOLORSPACE);
3258 BOOL WINAPI DeleteDC(_In_ HDC);
3259 BOOL WINAPI DeleteEnhMetaFile(_In_opt_ HENHMETAFILE);
3260 BOOL WINAPI DeleteMetaFile(_In_ HMETAFILE);
3261 BOOL WINAPI DeleteObject(_In_ HGDIOBJ);
3262
3263 int
3264 WINAPI
3265 DescribePixelFormat(
3266 _In_ HDC hdc,
3267 _In_ int iPixelFormat,
3268 _In_ UINT nBytes,
3269 _Out_writes_bytes_opt_(nBytes) LPPIXELFORMATDESCRIPTOR ppfd);
3270
3271 DWORD
3272 WINAPI
3273 DeviceCapabilitiesA(
3274 _In_ LPCSTR pDevice,
3275 _In_opt_ LPCSTR pPort,
3276 _In_ WORD fwCapability,
3277 _Out_writes_opt_(_Inexpressible_(1)) LPSTR pOutput,
3278 _In_opt_ const DEVMODEA *pDevMode);
3279
3280 DWORD
3281 WINAPI
3282 DeviceCapabilitiesW(
3283 _In_ LPCWSTR pDevice,
3284 _In_opt_ LPCWSTR pPort,
3285 _In_ WORD fwCapability,
3286 _Out_writes_opt_(_Inexpressible_(1)) LPWSTR pOutput,
3287 _In_opt_ const DEVMODEW *pDevMode);
3288
3289 BOOL
3290 WINAPI
3291 DPtoLP(
3292 _In_ HDC hdc,
3293 _Inout_updates_(c) LPPOINT lppt,
3294 _In_ int c);
3295
3296 int
3297 WINAPI
3298 DrawEscape(
3299 _In_ HDC hdc,
3300 _In_ int iEscape,
3301 _In_ int cjIn,
3302 _In_reads_bytes_opt_(cjIn) LPCSTR lpIn);
3303
3304 BOOL WINAPI Ellipse(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int);
3305 int WINAPI EndDoc(_In_ HDC);
3306 int WINAPI EndPage(_In_ HDC);
3307 BOOL WINAPI EndPath(_In_ HDC);
3308 BOOL WINAPI EnumEnhMetaFile(_In_opt_ HDC, _In_ HENHMETAFILE, _In_ ENHMFENUMPROC, _In_opt_ PVOID, _In_opt_ LPCRECT);
3309 int WINAPI EnumFontFamiliesA(_In_ HDC, _In_opt_ LPCSTR, _In_ FONTENUMPROCA, _In_ LPARAM);
3310 int WINAPI EnumFontFamiliesW(_In_ HDC, _In_opt_ LPCWSTR, _In_ FONTENUMPROCW, _In_ LPARAM);
3311 int WINAPI EnumFontFamiliesExA(_In_ HDC, _In_ PLOGFONTA, _In_ FONTENUMPROCA, _In_ LPARAM, _In_ DWORD);
3312 int WINAPI EnumFontFamiliesExW(_In_ HDC, _In_ PLOGFONTW, _In_ FONTENUMPROCW, _In_ LPARAM, _In_ DWORD);
3313 int WINAPI EnumFontsA(_In_ HDC, _In_opt_ LPCSTR, _In_ FONTENUMPROCA, _In_ LPARAM);
3314 int WINAPI EnumFontsW(_In_ HDC, _In_opt_ LPCWSTR, _In_ FONTENUMPROCW, _In_ LPARAM);
3315 int WINAPI EnumICMProfilesA(_In_ HDC, _In_ ICMENUMPROCA, _In_opt_ LPARAM);
3316 int WINAPI EnumICMProfilesW(_In_ HDC, _In_ ICMENUMPROCW, _In_opt_ LPARAM);
3317 BOOL WINAPI EnumMetaFile(_In_ HDC, _In_ HMETAFILE, _In_ MFENUMPROC, _In_opt_ LPARAM);
3318 int WINAPI EnumObjects(_In_ HDC, _In_ int, _In_ GOBJENUMPROC, _In_ LPARAM);
3319 BOOL WINAPI EqualRgn(_In_ HRGN, _In_ HRGN);
3320
3321 int
3322 WINAPI
3323 Escape(
3324 _In_ HDC hdc,
3325 _In_ int iEscape,
3326 _In_ int cjIn,
3327 _In_reads_bytes_opt_(cjIn) LPCSTR pvIn,
3328 _Out_opt_ LPVOID pvOut);
3329
3330 int WINAPI ExcludeClipRect(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int);
3331 int WINAPI ExcludeUpdateRgn(HDC,HWND);
3332
3333 HPEN
3334 WINAPI
3335 ExtCreatePen(
3336 _In_ DWORD iPenStyle,
3337 _In_ DWORD cWidth,
3338 _In_ const LOGBRUSH *plbrush,
3339 _In_ DWORD cStyle,
3340 _In_reads_opt_(cStyle) const DWORD *pstyle);
3341
3342 HRGN
3343 WINAPI
3344 ExtCreateRegion(
3345 _In_opt_ const XFORM *lpx,
3346 _In_ DWORD nCount,
3347 _In_reads_bytes_(nCount) const RGNDATA *lpData);
3348
3349 int
3350 WINAPI
3351 ExtEscape(
3352 _In_ HDC hdc,
3353 _In_ int iEscape,
3354 _In_ int cjInput,
3355 _In_reads_bytes_opt_(cjInput) LPCSTR lpInData,
3356 _In_ int cjOutput,
3357 _Out_writes_bytes_opt_(cjOutput) LPSTR lpOutData);
3358
3359 BOOL WINAPI ExtFloodFill(_In_ HDC, _In_ int, _In_ int, _In_ COLORREF, _In_ UINT);
3360 int WINAPI ExtSelectClipRgn(_In_ HDC, _In_opt_ HRGN, _In_ int);
3361
3362 BOOL
3363 WINAPI
3364 ExtTextOutA(
3365 _In_ HDC hdc,
3366 _In_ int x,
3367 _In_ int y,
3368 _In_ UINT options,
3369 _In_opt_ const RECT *lprect,
3370 _In_reads_opt_(c) LPCSTR lpString,
3371 _In_ UINT c,
3372 _In_reads_opt_(c) const INT *lpDx);
3373
3374 BOOL
3375 WINAPI
3376 ExtTextOutW(
3377 _In_ HDC hdc,
3378 _In_ int x,
3379 _In_ int y,
3380 _In_ UINT options,
3381 _In_opt_ const RECT *lprect,
3382 _In_reads_opt_(c) LPCWSTR lpString,
3383 _In_ UINT c,
3384 _In_reads_opt_(c) const INT *lpDx);
3385
3386 BOOL WINAPI FillPath(_In_ HDC);
3387 int WINAPI FillRect(HDC,LPCRECT,HBRUSH);
3388 int WINAPI FillRgn(_In_ HDC, _In_ HRGN, _In_ HBRUSH);
3389 BOOL WINAPI FixBrushOrgEx(_In_ HDC, _In_ int, _In_ int, _In_opt_ LPPOINT);
3390 BOOL WINAPI FlattenPath(_In_ HDC);
3391 BOOL WINAPI FloodFill(_In_ HDC, _In_ int, _In_ int, _In_ COLORREF);
3392 BOOL WINAPI FrameRgn(_In_ HDC, _In_ HRGN, _In_ HBRUSH, _In_ int, _In_ int);
3393 BOOL WINAPI GdiAlphaBlend(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ BLENDFUNCTION);
3394
3395 BOOL
3396 WINAPI
3397 GdiComment(
3398 _In_ HDC hdc,
3399 _In_ UINT nSize,
3400 _In_reads_bytes_(nSize) const BYTE *lpData);
3401
3402 DEVMODEW * WINAPI GdiConvertToDevmodeW(const DEVMODEA *);
3403 BOOL WINAPI GdiFlush(void);
3404 LONG WINAPI GdiGetCharDimensions(HDC, LPTEXTMETRICW, LONG *);
3405 DWORD WINAPI GdiGetCodePage(HDC);
3406 DWORD WINAPI GdiGetBatchLimit(void);
3407 DWORD WINAPI GdiSetBatchLimit(_In_ DWORD);
3408
3409 BOOL
3410 WINAPI
3411 GdiGradientFill(
3412 _In_ HDC hdc,
3413 _In_reads_(nVertex) PTRIVERTEX pVertex,
3414 _In_ ULONG nVertex,
3415 _In_ PVOID pMesh,
3416 _In_ ULONG nCount,
3417 _In_ ULONG ulMode);
3418
3419 BOOL WINAPI GdiTransparentBlt(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT);
3420 BOOL WINAPI GdiIsMetaFileDC(HDC);
3421
3422 #define GetKValue(cmyk) ((BYTE)(cmyk))
3423 #define GetYValue(cmyk) ((BYTE)((cmyk)>> 8))
3424 #define GetMValue(cmyk) ((BYTE)((cmyk)>>16))
3425 #define GetCValue(cmyk) ((BYTE)((cmyk)>>24))
3426 #define CMYK(c,m,y,k) ((COLORREF)((((BYTE)(k)|((WORD)((BYTE)(y))<<8))|(((DWORD)(BYTE)(m))<<16))|(((DWORD)(BYTE)(c))<<24)))
3427
3428 int WINAPI GetArcDirection(_In_ HDC);
3429 BOOL WINAPI GetAspectRatioFilterEx(_In_ HDC, _Out_ LPSIZE);
3430
3431 LONG
3432 WINAPI
3433 GetBitmapBits(
3434 _In_ HBITMAP hbit,
3435 _In_ LONG cb,
3436 _Out_writes_bytes_(cb) LPVOID lpvBits);
3437
3438 BOOL WINAPI GetBitmapDimensionEx(_In_ HBITMAP, _Out_ LPSIZE);
3439 COLORREF WINAPI GetBkColor(_In_ HDC);
3440 int WINAPI GetBkMode(_In_ HDC);
3441 UINT WINAPI GetBoundsRect(_In_ HDC, _Out_ LPRECT, _In_ UINT);
3442 BOOL WINAPI GetBrushOrgEx(_In_ HDC, _Out_ LPPOINT);
3443
3444 BOOL
3445 WINAPI
3446 GetCharABCWidthsA(
3447 _In_ HDC hdc,
3448 _In_ UINT wFirst,
3449 _In_ UINT wLast,
3450 _Out_writes_(wLast - wFirst + 1) LPABC lpABC);
3451
3452 BOOL
3453 WINAPI
3454 GetCharABCWidthsW(
3455 _In_ HDC hdc,
3456 _In_ UINT wFirst,
3457 _In_ UINT wLast,
3458 _Out_writes_(wLast - wFirst + 1) LPABC lpABC);
3459
3460 BOOL
3461 WINAPI
3462 GetCharABCWidthsFloatA(
3463 _In_ HDC hdc,
3464 _In_ UINT iFirst,
3465 _In_ UINT iLast,
3466 _Out_writes_(iLast + 1 - iFirst) LPABCFLOAT lpABC);
3467
3468 BOOL
3469 WINAPI
3470 GetCharABCWidthsFloatW(
3471 _In_ HDC hdc,
3472 _In_ UINT iFirst,
3473 _In_ UINT iLast,
3474 _Out_writes_(iLast + 1 - iFirst) LPABCFLOAT lpABC);
3475
3476 BOOL
3477 WINAPI
3478 GetCharABCWidthsI(
3479 _In_ HDC hdc,
3480 _In_ UINT giFirst,
3481 _In_ UINT cgi,
3482 _In_reads_opt_(cgi) LPWORD pgi,
3483 _Out_writes_(cgi) LPABC pabc);
3484
3485 DWORD
3486 WINAPI
3487 GetCharacterPlacementA(
3488 _In_ HDC hdc,
3489 _In_reads_(nCount) LPCSTR lpString,
3490 _In_ int nCount,
3491 _In_ int nMexExtent,
3492 _Inout_ LPGCP_RESULTSA lpResults,
3493 _In_ DWORD dwFlags);
3494
3495 DWORD
3496 WINAPI
3497 GetCharacterPlacementW(
3498 _In_ HDC hdc,
3499 _In_reads_(nCount) LPCWSTR lpString,
3500 _In_ int nCount,
3501 _In_ int nMexExtent,
3502 _Inout_ LPGCP_RESULTSW lpResults,
3503 _In_ DWORD dwFlags);
3504
3505 BOOL
3506 WINAPI
3507 GetCharWidth32A(
3508 _In_ HDC hdc,
3509 _In_ UINT iFirst,
3510 _In_ UINT iLast,
3511 _Out_writes_(iLast + 1 - iFirst) LPINT lpBuffer);
3512
3513 BOOL
3514 WINAPI
3515 GetCharWidth32W(
3516 _In_ HDC hdc,
3517 _In_ UINT iFirst,
3518 _In_ UINT iLast,
3519 _Out_writes_(iLast + 1 - iFirst) LPINT lpBuffer);
3520
3521 BOOL
3522 WINAPI
3523 GetCharWidthA(
3524 _In_ HDC hdc,
3525 _In_ UINT iFirst,
3526 _In_ UINT iLast,
3527 _Out_writes_(iLast + 1 - iFirst) LPINT lpBuffer);
3528
3529 BOOL
3530 WINAPI
3531 GetCharWidthW(
3532 _In_ HDC hdc,
3533 _In_ UINT iFirst,
3534 _In_ UINT iLast,
3535 _Out_writes_(iLast + 1 - iFirst) LPINT lpBuffer);
3536
3537 BOOL
3538 WINAPI
3539 GetCharWidthI(
3540 _In_ HDC hdc,
3541 _In_ UINT giFirst,
3542 _In_ UINT cgi,
3543 _In_reads_opt_(cgi) LPWORD pgi,
3544 _Out_writes_(cgi) LPINT piWidths);
3545
3546 BOOL
3547 WINAPI
3548 GetCharWidthFloatA(
3549 _In_ HDC hdc,
3550 _In_ UINT iFirst,
3551 _In_ UINT iLast,
3552 _Out_writes_(iLast + 1 - iFirst) PFLOAT lpBuffer);
3553
3554 BOOL
3555 WINAPI
3556 GetCharWidthFloatW(
3557 _In_ HDC hdc,
3558 _In_ UINT iFirst,
3559 _In_ UINT iLast,
3560 _Out_writes_(iLast + 1 - iFirst) PFLOAT lpBuffer);
3561
3562 int WINAPI GetClipBox(_In_ HDC, _Out_ LPRECT);
3563 int WINAPI GetClipRgn(_In_ HDC, _In_ HRGN);
3564 BOOL WINAPI GetColorAdjustment(_In_ HDC, _Out_ LPCOLORADJUSTMENT);
3565 HCOLORSPACE WINAPI GetColorSpace(_In_ HDC);
3566 HGDIOBJ WINAPI GetCurrentObject(_In_ HDC, _In_ UINT);
3567 BOOL WINAPI GetCurrentPositionEx(_In_ HDC, _Out_ LPPOINT);
3568 HCURSOR WINAPI GetCursor(void);
3569 BOOL WINAPI GetDCOrgEx(_In_ HDC, _Out_ LPPOINT);
3570 #if (_WIN32_WINNT >= 0x0500)
3571 COLORREF WINAPI GetDCBrushColor(_In_ HDC);
3572 COLORREF WINAPI GetDCPenColor(_In_ HDC);
3573 #endif
3574 int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int);
3575
3576 BOOL
3577 WINAPI
3578 GetDeviceGammaRamp(
3579 _In_ HDC hdc,
3580 _Out_writes_bytes_(3*256*2) LPVOID lpRamp);
3581
3582 _Ret_range_(0,cEntries)
3583 UINT
3584 WINAPI
3585 GetDIBColorTable(
3586 _In_ HDC hdc,
3587 _In_ UINT iStart,
3588 _In_ UINT cEntries,
3589 _Out_writes_to_(cEntries,return) RGBQUAD *prgbq);
3590
3591 int
3592 WINAPI
3593 GetDIBits(
3594 _In_ HDC hdc,
3595 _In_ HBITMAP hbm,
3596 _In_ UINT start,
3597 _In_ UINT cLines,
3598 _Out_opt_ LPVOID lpvBits,
3599 _At_((LPBITMAPINFOHEADER)lpbmi, _Inout_) LPBITMAPINFO lpbmi,
3600 _In_ UINT usage);
3601
3602 HENHMETAFILE WINAPI GetEnhMetaFileA(_In_ LPCSTR);
3603 HENHMETAFILE WINAPI GetEnhMetaFileW(_In_ LPCWSTR);
3604
3605 UINT
3606 WINAPI
3607 GetEnhMetaFileBits(
3608 _In_ HENHMETAFILE hEMF,
3609 _In_ UINT nSize,
3610 _Out_writes_bytes_opt_(nSize) LPBYTE lpData);
3611
3612 UINT
3613 WINAPI
3614 GetEnhMetaFileDescriptionA(
3615 _In_ HENHMETAFILE hemf,
3616 _In_ UINT cchBuffer,
3617 _Out_writes_opt_(cchBuffer) LPSTR lpDescription);
3618
3619 UINT
3620 WINAPI
3621 GetEnhMetaFileDescriptionW(
3622 _In_ HENHMETAFILE hemf,
3623 _In_ UINT cchBuffer,
3624 _Out_writes_opt_(cchBuffer) LPWSTR lpDescription);
3625
3626 UINT
3627 WINAPI
3628 GetEnhMetaFileHeader(
3629 _In_ HENHMETAFILE hemf,
3630 _In_ UINT nSize,
3631 _Out_writes_bytes_opt_(nSize) LPENHMETAHEADER lpEnhMetaHeader);
3632
3633 UINT
3634 WINAPI
3635 GetEnhMetaFilePaletteEntries(
3636 _In_ HENHMETAFILE hemf,
3637 _In_ UINT nNumEntries,
3638 _Out_writes_opt_(nNumEntries) LPPALETTEENTRY lpPaletteEntries);
3639
3640 UINT
3641 WINAPI
3642 GetEnhMetaFilePixelFormat(
3643 _In_ HENHMETAFILE hemf,
3644 _In_ UINT cbBuffer,
3645 _Out_writes_bytes_opt_(cbBuffer) PIXELFORMATDESCRIPTOR *ppfd);
3646
3647 _Success_(return != GDI_ERROR)
3648 DWORD
3649 WINAPI
3650 GetFontData(
3651 _In_ HDC hdc,
3652 _In_ DWORD dwTable,
3653 _In_ DWORD dwOffset,
3654 _Out_writes_bytes_to_opt_(cjBuffer, return) PVOID pvBuffer,
3655 _In_ DWORD cjBuffer);
3656
3657 DWORD WINAPI GetFontLanguageInfo(_In_ HDC);
3658 #if (_WIN32_WINNT >= 0x0500)
3659 DWORD WINAPI GetFontUnicodeRanges(_In_ HDC, _Out_opt_ LPGLYPHSET);
3660 #endif
3661
3662 DWORD
3663 WINAPI
3664 GetGlyphIndicesA(
3665 _In_ HDC hdc,
3666 _In_reads_(c) LPCSTR lpstr,
3667 _In_ int c,
3668 _Out_writes_(c) LPWORD pgi,
3669 _In_ DWORD fl);
3670
3671 DWORD
3672 WINAPI
3673 GetGlyphIndicesW(
3674 _In_ HDC hdc,
3675 _In_reads_(c) LPCWSTR lpstr,
3676 _In_ int c,
3677 _Out_writes_(c) LPWORD pgi,
3678 _In_ DWORD fl);
3679
3680 DWORD
3681 WINAPI
3682 GetGlyphOutlineA