OSDN Git Service

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