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