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