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