qasf/tests: Test that the DMO wrapper (de)commits its source pins' allocators when...
[wine.git] / include / wingdi.h
blob7220aff089bb5e9ead8bc1129f334715ea6a20a4
1 /*
2 * Copyright (C) the Wine project
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #ifndef _WINGDI_
20 #define _WINGDI_
21 #ifndef NOGDI
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
27 #ifdef _GDI32_
28 #define WINGDIAPI
29 #else
30 #define WINGDIAPI DECLSPEC_HIDDEN
31 #endif
33 #ifdef _OPENGL32_
34 #define WGLAPI
35 #else
36 #define WGLAPI DECLSPEC_HIDDEN
37 #endif
39 typedef struct _ABCFLOAT {
40 FLOAT abcfA;
41 FLOAT abcfB;
42 FLOAT abcfC;
43 } ABCFLOAT, *PABCFLOAT, *LPABCFLOAT;
45 #define FONTMAPPER_MAX 10
47 typedef struct
49 WORD wFirst;
50 WORD wSecond;
51 INT iKernAmount;
52 } KERNINGPAIR, *LPKERNINGPAIR;
54 typedef struct tagPIXELFORMATDESCRIPTOR {
55 WORD nSize;
56 WORD nVersion;
57 DWORD dwFlags;
58 BYTE iPixelType;
59 BYTE cColorBits;
60 BYTE cRedBits;
61 BYTE cRedShift;
62 BYTE cGreenBits;
63 BYTE cGreenShift;
64 BYTE cBlueBits;
65 BYTE cBlueShift;
66 BYTE cAlphaBits;
67 BYTE cAlphaShift;
68 BYTE cAccumBits;
69 BYTE cAccumRedBits;
70 BYTE cAccumGreenBits;
71 BYTE cAccumBlueBits;
72 BYTE cAccumAlphaBits;
73 BYTE cDepthBits;
74 BYTE cStencilBits;
75 BYTE cAuxBuffers;
76 BYTE iLayerType;
77 BYTE bReserved;
78 DWORD dwLayerMask;
79 DWORD dwVisibleMask;
80 DWORD dwDamageMask;
81 } PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESCRIPTOR, *LPPIXELFORMATDESCRIPTOR;
83 #define PFD_TYPE_RGBA 0
84 #define PFD_TYPE_COLORINDEX 1
86 #define PFD_MAIN_PLANE 0
87 #define PFD_OVERLAY_PLANE 1
88 #define PFD_UNDERLAY_PLANE (-1)
90 #define PFD_DOUBLEBUFFER 0x00000001
91 #define PFD_STEREO 0x00000002
92 #define PFD_DRAW_TO_WINDOW 0x00000004
93 #define PFD_DRAW_TO_BITMAP 0x00000008
94 #define PFD_SUPPORT_GDI 0x00000010
95 #define PFD_SUPPORT_OPENGL 0x00000020
96 #define PFD_GENERIC_FORMAT 0x00000040
97 #define PFD_NEED_PALETTE 0x00000080
98 #define PFD_NEED_SYSTEM_PALETTE 0x00000100
99 #define PFD_SWAP_EXCHANGE 0x00000200
100 #define PFD_SWAP_COPY 0x00000400
101 #define PFD_SWAP_LAYER_BUFFERS 0x00000800
102 #define PFD_GENERIC_ACCELERATED 0x00001000
103 #define PFD_SUPPORT_COMPOSITION 0x00008000 /* Vista stuff */
105 #define PFD_DEPTH_DONTCARE 0x20000000
106 #define PFD_DOUBLEBUFFER_DONTCARE 0x40000000
107 #define PFD_STEREO_DONTCARE 0x80000000
109 typedef struct tagCOLORADJUSTMENT
111 WORD caSize;
112 WORD caFlags;
113 WORD caIlluminantIndex;
114 WORD caRedGamma;
115 WORD caGreenGamma;
116 WORD caBlueGamma;
117 WORD caReferenceBlack;
118 WORD caReferenceWhite;
119 SHORT caContrast;
120 SHORT caBrightness;
121 SHORT caColorfulness;
122 SHORT caRedGreenTint;
123 } COLORADJUSTMENT, *PCOLORADJUSTMENT, *LPCOLORADJUSTMENT;
125 #define CA_NEGATIVE 0x0001
126 #define CA_LOG_FILTER 0x0002
128 #define ILLUMINANT_DEVICE_DEFAULT 0
129 #define ILLUMINANT_A 1
130 #define ILLUMINANT_B 2
131 #define ILLUMINANT_C 3
132 #define ILLUMINANT_D50 4
133 #define ILLUMINANT_D55 5
134 #define ILLUMINANT_D65 6
135 #define ILLUMINANT_D75 7
136 #define ILLUMINANT_F2 8
137 #define ILLUMINANT_MAX_INDEX ILLUMINANT_F2
139 #define ILLUMINANT_TUNGSTEN ILLUMINANT_A
140 #define ILLUMINANT_DAYLIGHT ILLUMINANT_C
141 #define ILLUMINANT_FLUORESCENT ILLUMINANT_F2
142 #define ILLUMINANT_NTSC ILLUMINANT_C
144 #define RGB_GAMMA_MIN (WORD)02500
145 #define RGB_GAMMA_MAX (WORD)65000
147 #define REFERENCE_WHITE_MIN (WORD)6000
148 #define REFERENCE_WHITE_MAX (WORD)10000
149 #define REFERENCE_BLACK_MIN (WORD)0
150 #define REFERENCE_BLACK_MAX (WORD)4000
152 #define COLOR_ADJ_MIN ((SHORT)-100)
153 #define COLOR_ADJ_MAX (SHORT) 100
155 typedef LONG FXPT16DOT16, *LPFXPT16DOT16;
156 typedef LONG FXPT2DOT30, *LPFXPT2DOT30;
157 typedef LONG LCSCSTYPE;
158 typedef LONG LCSGAMUTMATCH;
160 #define LCS_sRGB 0x73524742 /* 'sRGB' */
161 #define LCS_WINDOWS_COLOR_SPACE 0x57696e20 /* 'Win ' */
163 #define LCS_CALIBRATED_RGB __MSABI_LONG(0x00000000)
164 #define LCS_DEVICE_RGB __MSABI_LONG(0x00000001)
165 #define LCS_DEVICE_CMYK __MSABI_LONG(0x00000002)
167 #define LCS_GM_BUSINESS __MSABI_LONG(0x00000001)
168 #define LCS_GM_GRAPHICS __MSABI_LONG(0x00000002)
169 #define LCS_GM_IMAGES __MSABI_LONG(0x00000004)
171 #define CM_OUT_OF_GAMUT 255
172 #define CM_IN_GAMUT 0
174 typedef struct tagCIEXYZ
176 FXPT2DOT30 ciexyzX;
177 FXPT2DOT30 ciexyzY;
178 FXPT2DOT30 ciexyzZ;
179 } CIEXYZ, *LPCIEXYZ;
181 typedef struct tagCIEXYZTRIPLE
183 CIEXYZ ciexyzRed;
184 CIEXYZ ciexyzGreen;
185 CIEXYZ ciexyzBlue;
186 } CIEXYZTRIPLE, *LPCIEXYZTRIPLE;
188 typedef struct tagLOGCOLORSPACEA
190 DWORD lcsSignature;
191 DWORD lcsVersion;
192 DWORD lcsSize;
193 LCSCSTYPE lcsCSType;
194 LCSGAMUTMATCH lcsIntent;
195 CIEXYZTRIPLE lcsEndpoints;
196 DWORD lcsGammaRed;
197 DWORD lcsGammaGreen;
198 DWORD lcsGammaBlue;
199 CHAR lcsFilename[MAX_PATH];
200 } LOGCOLORSPACEA, *LPLOGCOLORSPACEA;
202 typedef struct tagLOGCOLORSPACEW
204 DWORD lcsSignature;
205 DWORD lcsVersion;
206 DWORD lcsSize;
207 LCSCSTYPE lcsCSType;
208 LCSGAMUTMATCH lcsIntent;
209 CIEXYZTRIPLE lcsEndpoints;
210 DWORD lcsGammaRed;
211 DWORD lcsGammaGreen;
212 DWORD lcsGammaBlue;
213 WCHAR lcsFilename[MAX_PATH];
214 } LOGCOLORSPACEW, *LPLOGCOLORSPACEW;
216 DECL_WINELIB_TYPE_AW(LPLOGCOLORSPACE)
217 DECL_WINELIB_TYPE_AW(LOGCOLORSPACE)
219 #define DC_FIELDS 1
220 #define DC_PAPERS 2
221 #define DC_PAPERSIZE 3
222 #define DC_MINEXTENT 4
223 #define DC_MAXEXTENT 5
224 #define DC_BINS 6
225 #define DC_DUPLEX 7
226 #define DC_SIZE 8
227 #define DC_EXTRA 9
228 #define DC_VERSION 10
229 #define DC_DRIVER 11
230 #define DC_BINNAMES 12
231 #define DC_ENUMRESOLUTIONS 13
232 #define DC_FILEDEPENDENCIES 14
233 #define DC_TRUETYPE 15
234 #define DC_PAPERNAMES 16
235 #define DC_ORIENTATION 17
236 #define DC_COPIES 18
237 #define DC_BINADJUST 19
238 #define DC_EMF_COMPLIANT 20
239 #define DC_DATATYPE_PRODUCED 21
240 #define DC_COLLATE 22
241 #define DC_MANUFACTURER 23
242 #define DC_MODEL 24
243 #define DC_PERSONALITY 25
244 #define DC_PRINTRATE 26
245 #define DC_PRINTRATEUNIT 27
246 #define DC_PRINTERMEM 28
247 #define DC_MEDIAREADY 29
248 #define DC_STAPLE 30
249 #define DC_PRINTRATEPPM 31
250 #define DC_COLORDEVICE 32
251 #define DC_NUP 33
252 #define DC_MEDIATYPENAMES 34
253 #define DC_MEDIATYPES 35
255 #define DCTT_BITMAP __MSABI_LONG(0x00000001)
256 #define DCTT_DOWNLOAD __MSABI_LONG(0x00000002)
257 #define DCTT_SUBDEV __MSABI_LONG(0x00000004)
258 #define DCTT_DOWNLOAD_OUTLINE __MSABI_LONG(0x00000008)
260 #define DCBA_FACEUPNONE 0x0000
261 #define DCBA_FACEUPCENTER 0x0001
262 #define DCBA_FACEUPLEFT 0x0002
263 #define DCBA_FACEUPRIGHT 0x0003
264 #define DCBA_FACEDOWNNONE 0x0100
265 #define DCBA_FACEDOWNCENTER 0x0101
266 #define DCBA_FACEDOWNLEFT 0x0102
267 #define DCBA_FACEDOWNRIGHT 0x0103
269 #define PRINTRATEUNIT_PPM 1
270 #define PRINTRATEUNIT_CPS 2
271 #define PRINTRATEUNIT_LPM 3
272 #define PRINTRATEUNIT_IPM 4
274 /* Flag returned from Escape QUERYDIBSUPPORT */
275 #define QDI_SETDIBITS 1
276 #define QDI_GETDIBITS 2
277 #define QDI_DIBTOSCREEN 4
278 #define QDI_STRETCHDIB 8
281 /* GDI Escape commands */
282 #define NEWFRAME 1
283 #define ABORTDOC 2
284 #define NEXTBAND 3
285 #define SETCOLORTABLE 4
286 #define GETCOLORTABLE 5
287 #define FLUSHOUTPUT 6
288 #define DRAFTMODE 7
289 #define QUERYESCSUPPORT 8
290 #define SETABORTPROC 9
291 #define STARTDOC 10
292 #define ENDDOC 11
293 #define GETPHYSPAGESIZE 12
294 #define GETPRINTINGOFFSET 13
295 #define GETSCALINGFACTOR 14
296 #define MFCOMMENT 15
297 #define GETPENWIDTH 16
298 #define SETCOPYCOUNT 17
299 #define SELECTPAPERSOURCE 18
300 #define DEVICEDATA 19
301 #define PASSTHROUGH 19
302 #define GETTECHNOLGY 20
303 #define GETTECHNOLOGY 20 /* yes, both of them */
304 #define SETLINECAP 21
305 #define SETLINEJOIN 22
306 #define SETMITERLIMIT 23
307 #define BANDINFO 24
308 #define DRAWPATTERNRECT 25
309 #define GETVECTORPENSIZE 26
310 #define GETVECTORBRUSHSIZE 27
311 #define ENABLEDUPLEX 28
312 #define GETSETPAPERBINS 29
313 #define GETSETPRINTORIENT 30
314 #define ENUMPAPERBINS 31
315 #define SETDIBSCALING 32
316 #define EPSPRINTING 33
317 #define ENUMPAPERMETRICS 34
318 #define GETSETPAPERMETRICS 35
319 #define POSTSCRIPT_DATA 37
320 #define POSTSCRIPT_IGNORE 38
321 #define MOUSETRAILS 39
322 #define GETDEVICEUNITS 42
324 #define GETEXTENDEDTEXTMETRICS 256
325 #define GETEXTENTTABLE 257
326 #define GETPAIRKERNTABLE 258
327 #define GETTRACKKERNTABLE 259
328 #define EXTTEXTOUT 512
329 #define GETFACENAME 513
330 #define DOWNLOADFACE 514
331 #define ENABLERELATIVEWIDTHS 768
332 #define ENABLEPAIRKERNING 769
333 #define SETKERNTRACK 770
334 #define SETALLJUSTVALUES 771
335 #define SETCHARSET 772
337 #define STRETCHBLT 2048
338 #define GETSETSCREENPARAMS 3072
339 #define QUERYDIBSUPPORT 3073
340 #define BEGIN_PATH 4096
341 #define CLIP_TO_PATH 4097
342 #define END_PATH 4098
343 #define EXT_DEVICE_CAPS 4099
344 #define RESTORE_CTM 4100
345 #define SAVE_CTM 4101
346 #define SET_ARC_DIRECTION 4102
347 #define SET_BACKGROUND_COLOR 4103
348 #define SET_POLY_MODE 4104
349 #define SET_SCREEN_ANGLE 4105
350 #define SET_SPREAD 4106
351 #define TRANSFORM_CTM 4107
352 #define SET_CLIP_BOX 4108
353 #define SET_BOUNDS 4109
354 #define SET_MIRROR_MODE 4110
355 #define OPENCHANNEL 4110
356 #define DOWNLOADHEADER 4111
357 #define CLOSECHANNEL 4112
358 #define POSTSCRIPT_PASSTHROUGH 4115
359 #define ENCAPSULATED_POSTSCRIPT 4116
360 #define POSTSCRIPT_IDENTIFY 4117
361 #define POSTSCRIPT_INJECTION 4118
362 #define CHECKJPEGFORMAT 4119
363 #define CHECKPNGFORMAT 4120
364 #define GET_PS_FEATURESETTING 4121
365 #define GDIPLUS_TS_QUERYVER 4122
366 #define GDIPLUS_TS_RECORD 4123
368 /* for POSTSCRIPT_IDENTIFY */
369 #define PSIDENT_GDICENTRIC 0
370 #define PSIDENT_PSCENTRIC 1
373 #define QDI_SETDIBITS 1
374 #define QDI_GETDIBITS 2
375 #define QDI_DIBTOSCREEN 4
376 #define QDI_STRETCHDIB 8
378 /* Spooler Error Codes */
379 #define SP_NOTREPORTED 0x4000
380 #define SP_ERROR (-1)
381 #define SP_APPABORT (-2)
382 #define SP_USERABORT (-3)
383 #define SP_OUTOFDISK (-4)
384 #define SP_OUTOFMEMORY (-5)
386 #define PR_JOBSTATUS 0
388 /* Raster operations */
390 #define R2_BLACK 1
391 #define R2_NOTMERGEPEN 2
392 #define R2_MASKNOTPEN 3
393 #define R2_NOTCOPYPEN 4
394 #define R2_MASKPENNOT 5
395 #define R2_NOT 6
396 #define R2_XORPEN 7
397 #define R2_NOTMASKPEN 8
398 #define R2_MASKPEN 9
399 #define R2_NOTXORPEN 10
400 #define R2_NOP 11
401 #define R2_MERGENOTPEN 12
402 #define R2_COPYPEN 13
403 #define R2_MERGEPENNOT 14
404 #define R2_MERGEPEN 15
405 #define R2_WHITE 16
406 #define R2_LAST 16
408 #define MAKEROP4(fore,back) (DWORD)((((back)<<8)&0xFF000000)|(fore))
410 #define SRCCOPY 0xcc0020
411 #define SRCPAINT 0xee0086
412 #define SRCAND 0x8800c6
413 #define SRCINVERT 0x660046
414 #define SRCERASE 0x440328
415 #define NOTSRCCOPY 0x330008
416 #define NOTSRCERASE 0x1100a6
417 #define MERGECOPY 0xc000ca
418 #define MERGEPAINT 0xbb0226
419 #define PATCOPY 0xf00021
420 #define PATPAINT 0xfb0a09
421 #define PATINVERT 0x5a0049
422 #define DSTINVERT 0x550009
423 #define BLACKNESS 0x000042
424 #define WHITENESS 0xff0062
426 /* StretchBlt() modes */
427 #define BLACKONWHITE 1
428 #define WHITEONBLACK 2
429 #define COLORONCOLOR 3
430 #define HALFTONE 4
431 #define MAXSTRETCHBLTMODE 4
433 #define STRETCH_ANDSCANS BLACKONWHITE
434 #define STRETCH_ORSCANS WHITEONBLACK
435 #define STRETCH_DELETESCANS COLORONCOLOR
436 #define STRETCH_HALFTONE HALFTONE
438 /* Colors */
440 #define RGB(r,g,b) ((COLORREF)((BYTE)(r) | ((BYTE)(g) << 8) | ((BYTE)(b) << 16)))
441 #define PALETTERGB(r,g,b) (0x02000000 | RGB(r,g,b))
442 #define PALETTEINDEX(i) ((COLORREF)(0x01000000 | (WORD)(i)))
444 #define GetRValue(rgb) ((BYTE) (rgb) )
445 #define GetGValue(rgb) ((BYTE) ((rgb) >> 8))
446 #define GetBValue(rgb) ((BYTE) ((rgb) >> 16))
448 #define GetKValue(cmyk) ((BYTE) (cmyk) )
449 #define GetYValue(cmyk) ((BYTE) ((cmyk) >> 8))
450 #define GetMValue(cmyk) ((BYTE) ((cmyk) >> 16))
451 #define GetCValue(cmyk) ((BYTE) ((cmyk) >> 24))
453 #define CMYK(c,m,y,k) ((COLORREF)((((BYTE)(k)|((WORD)((BYTE)(y))<<8))|(((DWORD)(BYTE)(m))<<16))|(((DWORD)(BYTE)(c))<<24)))
455 /* ICM stuff */
456 typedef INT (CALLBACK *ICMENUMPROCA)(LPSTR lpszFilename,LPARAM lParam);
457 typedef INT (CALLBACK *ICMENUMPROCW)(LPWSTR lpszFilename,LPARAM lParam);
458 DECL_WINELIB_TYPE_AW(ICMENUMPROC)
461 #define ICM_OFF 1
462 #define ICM_ON 2
463 #define ICM_QUERY 3
465 /* Bounds Accumulation APIs */
466 #define DCB_RESET 0x0001
467 #define DCB_ACCUMULATE 0x0002
468 #define DCB_DIRTY DCB_ACCUMULATE
469 #define DCB_SET (DCB_RESET | DCB_ACCUMULATE)
470 #define DCB_ENABLE 0x0004
471 #define DCB_DISABLE 0x0008
473 typedef struct
475 LONG paXCount;
476 LONG paYCount;
477 LONG paXExt;
478 LONG paYExt;
479 BYTE paRGBs;
480 } PELARRAY, *PPELARRAY, *LPPELARRAY;
482 /* Bitmaps */
484 typedef struct
486 INT bmType;
487 INT bmWidth;
488 INT bmHeight;
489 INT bmWidthBytes;
490 WORD bmPlanes;
491 WORD bmBitsPixel;
492 LPVOID bmBits;
493 } BITMAP, *PBITMAP, *LPBITMAP;
496 /* Brushes */
498 typedef struct
500 UINT lbStyle;
501 COLORREF lbColor;
502 ULONG_PTR lbHatch;
503 } LOGBRUSH, *PLOGBRUSH, *LPLOGBRUSH;
505 typedef struct
507 UINT lbStyle;
508 COLORREF lbColor;
509 ULONG lbHatch;
510 } LOGBRUSH32, *PLOGBRUSH32, *LPLOGBRUSH32;
512 typedef LOGBRUSH PATTERN, *PPATTERN, *LPPATTERN;
515 /* Brush styles */
516 #define BS_SOLID 0
517 #define BS_NULL 1
518 #define BS_HOLLOW 1
519 #define BS_HATCHED 2
520 #define BS_PATTERN 3
521 #define BS_INDEXED 4
522 #define BS_DIBPATTERN 5
523 #define BS_DIBPATTERNPT 6
524 #define BS_PATTERN8X8 7
525 #define BS_DIBPATTERN8X8 8
526 #define BS_MONOPATTERN 9
528 /* Hatch styles */
529 #define HS_HORIZONTAL 0
530 #define HS_VERTICAL 1
531 #define HS_FDIAGONAL 2
532 #define HS_BDIAGONAL 3
533 #define HS_CROSS 4
534 #define HS_DIAGCROSS 5
535 #define HS_API_MAX 12
537 /* Fonts */
539 #define LF_FACESIZE 32
540 #define LF_FULLFACESIZE 64
542 #define RASTER_FONTTYPE 0x0001
543 #define DEVICE_FONTTYPE 0x0002
544 #define TRUETYPE_FONTTYPE 0x0004
546 typedef struct tagLOGFONTA
548 LONG lfHeight;
549 LONG lfWidth;
550 LONG lfEscapement;
551 LONG lfOrientation;
552 LONG lfWeight;
553 BYTE lfItalic;
554 BYTE lfUnderline;
555 BYTE lfStrikeOut;
556 BYTE lfCharSet;
557 BYTE lfOutPrecision;
558 BYTE lfClipPrecision;
559 BYTE lfQuality;
560 BYTE lfPitchAndFamily;
561 CHAR lfFaceName[LF_FACESIZE];
562 } LOGFONTA, *PLOGFONTA, *LPLOGFONTA;
564 typedef struct tagLOGFONTW
566 LONG lfHeight;
567 LONG lfWidth;
568 LONG lfEscapement;
569 LONG lfOrientation;
570 LONG lfWeight;
571 BYTE lfItalic;
572 BYTE lfUnderline;
573 BYTE lfStrikeOut;
574 BYTE lfCharSet;
575 BYTE lfOutPrecision;
576 BYTE lfClipPrecision;
577 BYTE lfQuality;
578 BYTE lfPitchAndFamily;
579 WCHAR lfFaceName[LF_FACESIZE];
580 } LOGFONTW, *PLOGFONTW, *LPLOGFONTW;
582 DECL_WINELIB_TYPE_AW(LOGFONT)
583 DECL_WINELIB_TYPE_AW(PLOGFONT)
584 DECL_WINELIB_TYPE_AW(LPLOGFONT)
586 typedef struct
588 LOGFONTA elfLogFont;
589 BYTE elfFullName[LF_FULLFACESIZE];
590 BYTE elfStyle[LF_FACESIZE];
591 } ENUMLOGFONTA, *LPENUMLOGFONTA;
593 typedef struct
595 LOGFONTW elfLogFont;
596 WCHAR elfFullName[LF_FULLFACESIZE];
597 WCHAR elfStyle[LF_FACESIZE];
598 } ENUMLOGFONTW, *LPENUMLOGFONTW;
600 DECL_WINELIB_TYPE_AW(ENUMLOGFONT)
601 DECL_WINELIB_TYPE_AW(LPENUMLOGFONT)
603 typedef struct
605 LOGFONTA elfLogFont;
606 BYTE elfFullName[LF_FULLFACESIZE];
607 BYTE elfStyle[LF_FACESIZE];
608 BYTE elfScript[LF_FACESIZE];
609 } ENUMLOGFONTEXA,*LPENUMLOGFONTEXA;
611 typedef struct
613 LOGFONTW elfLogFont;
614 WCHAR elfFullName[LF_FULLFACESIZE];
615 WCHAR elfStyle[LF_FACESIZE];
616 WCHAR elfScript[LF_FACESIZE];
617 } ENUMLOGFONTEXW,*LPENUMLOGFONTEXW;
619 DECL_WINELIB_TYPE_AW(ENUMLOGFONTEX)
620 DECL_WINELIB_TYPE_AW(LPENUMLOGFONTEX)
622 #define MM_MAX_NUMAXES 16
624 typedef struct
626 DWORD dvReserved;
627 DWORD dvNumAxes;
628 LONG dvValues[MM_MAX_NUMAXES];
629 } DESIGNVECTOR, *PDESIGNVECTOR;
631 typedef struct
633 ENUMLOGFONTEXA elfEnumLogfontEx;
634 DESIGNVECTOR elfDesignVector;
635 } ENUMLOGFONTEXDVA, *PENUMLOGFONTEXDVA;
637 typedef struct
639 ENUMLOGFONTEXW elfEnumLogfontEx;
640 DESIGNVECTOR elfDesignVector;
641 } ENUMLOGFONTEXDVW, *PENUMLOGFONTEXDVW;
643 DECL_WINELIB_TYPE_AW(ENUMLOGFONTEXDV)
644 DECL_WINELIB_TYPE_AW(PENUMLOGFONTEXDV)
647 * The FONTSIGNATURE tells which Unicode ranges and which code pages
648 * have glyphs in a font.
650 * fsUsb 128-bit bitmap. The most significant bits are 10 (magic number).
651 * The remaining 126 bits map the Unicode ISO 10646 subranges
652 * for which the font provides glyphs.
654 * fsCsb 64-bit bitmap. The low 32 bits map the Windows codepages for
655 * which the font provides glyphs. The high 32 bits are for
656 * non Windows codepages.
658 typedef struct
660 DWORD fsUsb[4];
661 DWORD fsCsb[2];
662 } FONTSIGNATURE, *PFONTSIGNATURE, *LPFONTSIGNATURE;
664 typedef struct
666 UINT ciCharset; /* character set */
667 UINT ciACP; /* ANSI code page */
668 FONTSIGNATURE fs;
669 } CHARSETINFO, *PCHARSETINFO, *LPCHARSETINFO;
671 /* Flags for TranslateCharsetInfo */
672 #define TCI_SRCCHARSET 1
673 #define TCI_SRCCODEPAGE 2
674 #define TCI_SRCFONTSIG 3
676 typedef struct
678 DWORD lsUsb[4];
679 DWORD lsCsbDefault[2];
680 DWORD lsCsbSupported[2];
681 } LOCALESIGNATURE, *PLOCALESIGNATURE, *LPLOCALESIGNATURE;
684 /* Flags for ModifyWorldTransform */
685 #define MWT_IDENTITY 1
686 #define MWT_LEFTMULTIPLY 2
687 #define MWT_RIGHTMULTIPLY 3
688 #define MWT_MIN MWT_IDENTITY
689 #define MWT_MAX MWT_RIGHTMULTIPLY
691 /* Object Definitions for EnumObjects() */
692 #define OBJ_PEN 1
693 #define OBJ_BRUSH 2
694 #define OBJ_DC 3
695 #define OBJ_METADC 4
696 #define OBJ_PAL 5
697 #define OBJ_FONT 6
698 #define OBJ_BITMAP 7
699 #define OBJ_REGION 8
700 #define OBJ_METAFILE 9
701 #define OBJ_MEMDC 10
702 #define OBJ_EXTPEN 11
703 #define OBJ_ENHMETADC 12
704 #define OBJ_ENHMETAFILE 13
705 #define OBJ_COLORSPACE 14
707 typedef struct tagXFORM
709 FLOAT eM11;
710 FLOAT eM12;
711 FLOAT eM21;
712 FLOAT eM22;
713 FLOAT eDx;
714 FLOAT eDy;
715 } XFORM, *PXFORM, *LPXFORM;
717 /* lfWeight values */
718 #define FW_DONTCARE 0
719 #define FW_THIN 100
720 #define FW_EXTRALIGHT 200
721 #define FW_ULTRALIGHT 200
722 #define FW_LIGHT 300
723 #define FW_NORMAL 400
724 #define FW_REGULAR 400
725 #define FW_MEDIUM 500
726 #define FW_SEMIBOLD 600
727 #define FW_DEMIBOLD 600
728 #define FW_BOLD 700
729 #define FW_EXTRABOLD 800
730 #define FW_ULTRABOLD 800
731 #define FW_HEAVY 900
732 #define FW_BLACK 900
734 /* lfCharSet values */
735 #define ANSI_CHARSET (BYTE)0 /* CP1252, ansi-0, iso8859-{1,15} */
736 #define DEFAULT_CHARSET (BYTE)1
737 #define SYMBOL_CHARSET (BYTE)2
738 #define SHIFTJIS_CHARSET (BYTE)128 /* CP932 */
739 #define HANGEUL_CHARSET (BYTE)129 /* CP949, ksc5601.1987-0 */
740 #define HANGUL_CHARSET HANGEUL_CHARSET
741 #define GB2312_CHARSET (BYTE)134 /* CP936, gb2312.1980-0 */
742 #define CHINESEBIG5_CHARSET (BYTE)136 /* CP950, big5.et-0 */
743 #define GREEK_CHARSET (BYTE)161 /* CP1253 */
744 #define TURKISH_CHARSET (BYTE)162 /* CP1254, -iso8859-9 */
745 #define HEBREW_CHARSET (BYTE)177 /* CP1255, -iso8859-8 */
746 #define ARABIC_CHARSET (BYTE)178 /* CP1256, -iso8859-6 */
747 #define BALTIC_CHARSET (BYTE)186 /* CP1257, -iso8859-13 */
748 #define VIETNAMESE_CHARSET (BYTE)163 /* CP1258 */
749 #define RUSSIAN_CHARSET (BYTE)204 /* CP1251, -iso8859-5 */
750 #define EE_CHARSET (BYTE)238 /* CP1250, -iso8859-2 */
751 #define EASTEUROPE_CHARSET EE_CHARSET
752 #define THAI_CHARSET (BYTE)222 /* CP874, iso8859-11, tis620 */
753 #define JOHAB_CHARSET (BYTE)130 /* korean (johab) CP1361 */
754 #define MAC_CHARSET (BYTE)77
755 #define OEM_CHARSET (BYTE)255
756 /* I don't know if the values of *_CHARSET macros are defined in Windows
757 * or if we can choose them as we want. -- srtxg
759 #define VISCII_CHARSET (BYTE)240 /* viscii1.1-1 */
760 #define TCVN_CHARSET (BYTE)241 /* tcvn-0 */
761 #define KOI8_CHARSET (BYTE)242 /* koi8-{r,u,ru} */
762 #define ISO3_CHARSET (BYTE)243 /* iso8859-3 */
763 #define ISO4_CHARSET (BYTE)244 /* iso8859-4 */
764 #define ISO10_CHARSET (BYTE)245 /* iso8859-10 */
765 #define CELTIC_CHARSET (BYTE)246 /* iso8859-14 */
767 #define FS_LATIN1 __MSABI_LONG(0x00000001)
768 #define FS_LATIN2 __MSABI_LONG(0x00000002)
769 #define FS_CYRILLIC __MSABI_LONG(0x00000004)
770 #define FS_GREEK __MSABI_LONG(0x00000008)
771 #define FS_TURKISH __MSABI_LONG(0x00000010)
772 #define FS_HEBREW __MSABI_LONG(0x00000020)
773 #define FS_ARABIC __MSABI_LONG(0x00000040)
774 #define FS_BALTIC __MSABI_LONG(0x00000080)
775 #define FS_VIETNAMESE __MSABI_LONG(0x00000100)
776 #define FS_THAI __MSABI_LONG(0x00010000)
777 #define FS_JISJAPAN __MSABI_LONG(0x00020000)
778 #define FS_CHINESESIMP __MSABI_LONG(0x00040000)
779 #define FS_WANSUNG __MSABI_LONG(0x00080000)
780 #define FS_CHINESETRAD __MSABI_LONG(0x00100000)
781 #define FS_JOHAB __MSABI_LONG(0x00200000)
782 #define FS_SYMBOL __MSABI_LONG(0x80000000)
784 /* lfOutPrecision values */
785 #define OUT_DEFAULT_PRECIS 0
786 #define OUT_STRING_PRECIS 1
787 #define OUT_CHARACTER_PRECIS 2
788 #define OUT_STROKE_PRECIS 3
789 #define OUT_TT_PRECIS 4
790 #define OUT_DEVICE_PRECIS 5
791 #define OUT_RASTER_PRECIS 6
792 #define OUT_TT_ONLY_PRECIS 7
793 #define OUT_OUTLINE_PRECIS 8
794 #define OUT_SCREEN_OUTLINE_PRECIS 9
795 #define OUT_PS_ONLY_PRECIS 10
797 /* lfClipPrecision values */
798 #define CLIP_DEFAULT_PRECIS 0x00
799 #define CLIP_CHARACTER_PRECIS 0x01
800 #define CLIP_STROKE_PRECIS 0x02
801 #define CLIP_MASK 0x0F
802 #define CLIP_LH_ANGLES 0x10
803 #define CLIP_TT_ALWAYS 0x20
804 #define CLIP_DFA_DISABLE 0x40
805 #define CLIP_EMBEDDED 0x80
807 /* lfQuality values */
808 #define DEFAULT_QUALITY 0
809 #define DRAFT_QUALITY 1
810 #define PROOF_QUALITY 2
811 #define NONANTIALIASED_QUALITY 3
812 #define ANTIALIASED_QUALITY 4
813 #define CLEARTYPE_QUALITY 5
814 #define CLEARTYPE_NATURAL_QUALITY 6
816 /* lfPitchAndFamily pitch values */
817 #define DEFAULT_PITCH 0x00
818 #define FIXED_PITCH 0x01
819 #define VARIABLE_PITCH 0x02
820 #define MONO_FONT 0x08
822 #define FF_DONTCARE 0x00
823 #define FF_ROMAN 0x10
824 #define FF_SWISS 0x20
825 #define FF_MODERN 0x30
826 #define FF_SCRIPT 0x40
827 #define FF_DECORATIVE 0x50
829 #ifndef _TEXTMETRIC_DEFINED
830 #define _TEXTMETRIC_DEFINED
832 typedef struct tagTEXTMETRICA
834 LONG tmHeight;
835 LONG tmAscent;
836 LONG tmDescent;
837 LONG tmInternalLeading;
838 LONG tmExternalLeading;
839 LONG tmAveCharWidth;
840 LONG tmMaxCharWidth;
841 LONG tmWeight;
842 LONG tmOverhang;
843 LONG tmDigitizedAspectX;
844 LONG tmDigitizedAspectY;
845 BYTE tmFirstChar;
846 BYTE tmLastChar;
847 BYTE tmDefaultChar;
848 BYTE tmBreakChar;
849 BYTE tmItalic;
850 BYTE tmUnderlined;
851 BYTE tmStruckOut;
852 BYTE tmPitchAndFamily;
853 BYTE tmCharSet;
854 } TEXTMETRICA, *LPTEXTMETRICA, *PTEXTMETRICA;
856 typedef struct tagTEXTMETRICW
858 LONG tmHeight;
859 LONG tmAscent;
860 LONG tmDescent;
861 LONG tmInternalLeading;
862 LONG tmExternalLeading;
863 LONG tmAveCharWidth;
864 LONG tmMaxCharWidth;
865 LONG tmWeight;
866 LONG tmOverhang;
867 LONG tmDigitizedAspectX;
868 LONG tmDigitizedAspectY;
869 WCHAR tmFirstChar;
870 WCHAR tmLastChar;
871 WCHAR tmDefaultChar;
872 WCHAR tmBreakChar;
873 BYTE tmItalic;
874 BYTE tmUnderlined;
875 BYTE tmStruckOut;
876 BYTE tmPitchAndFamily;
877 BYTE tmCharSet;
878 } TEXTMETRICW, *LPTEXTMETRICW, *PTEXTMETRICW;
880 DECL_WINELIB_TYPE_AW(TEXTMETRIC)
881 DECL_WINELIB_TYPE_AW(PTEXTMETRIC)
882 DECL_WINELIB_TYPE_AW(LPTEXTMETRIC)
883 #endif /* _TEXTMETRIC_DEFINED */
886 typedef struct tagPANOSE
888 BYTE bFamilyType;
889 BYTE bSerifStyle;
890 BYTE bWeight;
891 BYTE bProportion;
892 BYTE bContrast;
893 BYTE bStrokeVariation;
894 BYTE bArmStyle;
895 BYTE bLetterform;
896 BYTE bMidline;
897 BYTE bXHeight;
898 } PANOSE, *LPPANOSE;
900 #define PANOSE_COUNT 10
902 #define PAN_FAMILYTYPE_INDEX 0
903 #define PAN_SERIFSTYLE_INDEX 1
904 #define PAN_WEIGHT_INDEX 2
905 #define PAN_PROPORTION_INDEX 3
906 #define PAN_CONTRAST_INDEX 4
907 #define PAN_STROKEVARIATION_INDEX 5
908 #define PAN_ARMSTYLE_INDEX 6
909 #define PAN_LETTERFORM_INDEX 7
910 #define PAN_MIDLINE_INDEX 8
911 #define PAN_XHEIGHT_INDEX 9
913 #define PAN_CULTURE_LATIN 0
915 #define PAN_ANY 0
916 #define PAN_NO_FIT 1
918 #define PAN_FAMILY_TEXT_DISPLAY 2
919 #define PAN_FAMILY_SCRIPT 3
920 #define PAN_FAMILY_DECORATIVE 4
921 #define PAN_FAMILY_PICTORIAL 5
923 #define PAN_SERIF_COVE 2
924 #define PAN_SERIF_OBTUSE_COVE 3
925 #define PAN_SERIF_SQUARE_COVE 4
926 #define PAN_SERIF_OBTUSE_SQUARE_COVE 5
927 #define PAN_SERIF_SQUARE 6
928 #define PAN_SERIF_THIN 7
929 #define PAN_SERIF_BONE 8
930 #define PAN_SERIF_EXAGGERATED 9
931 #define PAN_SERIF_TRIANGLE 10
932 #define PAN_SERIF_NORMAL_SANS 11
933 #define PAN_SERIF_OBTUSE_SANS 12
934 #define PAN_SERIF_PERP_SANS 13
935 #define PAN_SERIF_FLARED 14
936 #define PAN_SERIF_ROUNDED 15
938 #define PAN_WEIGHT_VERY_LIGHT 2
939 #define PAN_WEIGHT_LIGHT 3
940 #define PAN_WEIGHT_THIN 4
941 #define PAN_WEIGHT_BOOK 5
942 #define PAN_WEIGHT_MEDIUM 6
943 #define PAN_WEIGHT_DEMI 7
944 #define PAN_WEIGHT_BOLD 8
945 #define PAN_WEIGHT_HEAVY 9
946 #define PAN_WEIGHT_BLACK 10
947 #define PAN_WEIGHT_NORD 11
949 #define PAN_PROP_OLD_STYLE 2
950 #define PAN_PROP_MODERN 3
951 #define PAN_PROP_EVEN_WIDTH 4
952 #define PAN_PROP_EXPANDED 5
953 #define PAN_PROP_CONDENSED 6
954 #define PAN_PROP_VERY_EXPANDED 7
955 #define PAN_PROP_VERY_CONDENSED 8
956 #define PAN_PROP_MONOSPACED 9
958 #define PAN_CONTRAST_NONE 2
959 #define PAN_CONTRAST_VERY_LOW 3
960 #define PAN_CONTRAST_LOW 4
961 #define PAN_CONTRAST_MEDIUM_LOW 5
962 #define PAN_CONTRAST_MEDIUM 6
963 #define PAN_CONTRAST_MEDIUM_HIGH 7
964 #define PAN_CONTRAST_HIGH 8
965 #define PAN_CONTRAST_VERY_HIGH 9
967 #define PAN_STROKE_GRADUAL_DIAG 2
968 #define PAN_STROKE_GRADUAL_TRAN 3
969 #define PAN_STROKE_GRADUAL_VERT 4
970 #define PAN_STROKE_GRADUAL_HORZ 5
971 #define PAN_STROKE_RAPID_VERT 6
972 #define PAN_STROKE_RAPID_HORZ 7
973 #define PAN_STROKE_INSTANT_VERT 8
975 #define PAN_STRAIGHT_ARMS_HORZ 2
976 #define PAN_STRAIGHT_ARMS_WEDGE 3
977 #define PAN_STRAIGHT_ARMS_VERT 4
978 #define PAN_STRAIGHT_ARMS_SINGLE_SERIF 5
979 #define PAN_STRAIGHT_ARMS_DOUBLE_SERIF 6
980 #define PAN_BENT_ARMS_HORZ 7
981 #define PAN_BENT_ARMS_WEDGE 8
982 #define PAN_BENT_ARMS_VERT 9
983 #define PAN_BENT_ARMS_SINGLE_SERIF 10
984 #define PAN_BENT_ARMS_DOUBLE_SERIF 11
986 #define PAN_LETT_NORMAL_COMPACT 2
987 #define PAN_LETT_NORMAL_WEIGHTED 3
988 #define PAN_LETT_NORMAL_BOXED 4
989 #define PAN_LETT_NORMAL_FLATTENED 5
990 #define PAN_LETT_NORMAL_ROUNDED 6
991 #define PAN_LETT_NORMAL_OFF_CENTER 7
992 #define PAN_LETT_NORMAL_SQUARE 8
993 #define PAN_LETT_OBLIQUE_COMPACT 9
994 #define PAN_LETT_OBLIQUE_WEIGHTED 10
995 #define PAN_LETT_OBLIQUE_BOXED 11
996 #define PAN_LETT_OBLIQUE_FLATTENED 12
997 #define PAN_LETT_OBLIQUE_ROUNDED 13
998 #define PAN_LETT_OBLIQUE_OFF_CENTER 14
999 #define PAN_LETT_OBLIQUE_SQUARE 15
1001 #define PAN_MIDLINE_STANDARD_TRIMMED 2
1002 #define PAN_MIDLINE_STANDARD_POINTED 3
1003 #define PAN_MIDLINE_STANDARD_SERIFED 4
1004 #define PAN_MIDLINE_HIGH_TRIMMED 5
1005 #define PAN_MIDLINE_HIGH_POINTED 6
1006 #define PAN_MIDLINE_HIGH_SERIFED 7
1007 #define PAN_MIDLINE_CONSTANT_TRIMMED 8
1008 #define PAN_MIDLINE_CONSTANT_POINTED 9
1009 #define PAN_MIDLINE_CONSTANT_SERIFED 10
1010 #define PAN_MIDLINE_LOW_TRIMMED 11
1011 #define PAN_MIDLINE_LOW_POINTED 12
1012 #define PAN_MIDLINE_LOW_SERIFED 13
1014 #define PAN_XHEIGHT_CONSTANT_SMALL 2
1015 #define PAN_XHEIGHT_CONSTANT_STANDARD 3
1016 #define PAN_XHEIGHT_CONSTANT_LARGE 4
1017 #define PAN_XHEIGHT_DUCKING_SMALL 5
1018 #define PAN_XHEIGHT_DUCKING_STANDARD 6
1019 #define PAN_XHEIGHT_DUCKING_LARGE 7
1021 #define ELF_VENDOR_SIZE 4
1022 typedef struct
1024 LOGFONTA elfLogFont;
1025 BYTE elfFullName[LF_FULLFACESIZE];
1026 BYTE elfStyle[LF_FACESIZE];
1027 DWORD elfVersion;
1028 DWORD elfStyleSize;
1029 DWORD elfMatch;
1030 DWORD elfReserved;
1031 BYTE elfVendorId[ELF_VENDOR_SIZE];
1032 DWORD elfCulture;
1033 PANOSE elfPanose;
1034 } EXTLOGFONTA, *PEXTLOGFONTA, *LPEXTLOGFONTA;
1036 typedef struct
1038 LOGFONTW elfLogFont;
1039 WCHAR elfFullName[LF_FULLFACESIZE];
1040 WCHAR elfStyle[LF_FACESIZE];
1041 DWORD elfVersion;
1042 DWORD elfStyleSize;
1043 DWORD elfMatch;
1044 DWORD elfReserved;
1045 BYTE elfVendorId[ELF_VENDOR_SIZE];
1046 DWORD elfCulture;
1047 PANOSE elfPanose;
1048 } EXTLOGFONTW, *PEXTLOGFONTW, *LPEXTLOGFONTW;
1050 DECL_WINELIB_TYPE_AW(EXTLOGFONT)
1051 DECL_WINELIB_TYPE_AW(PEXTLOGFONT)
1052 DECL_WINELIB_TYPE_AW(LPEXTLOGFONT)
1054 #define ELF_VERSION 0
1055 #define ELF_CULTURE_LATIN 0
1057 typedef struct _OUTLINETEXTMETRICA
1059 UINT otmSize;
1060 TEXTMETRICA otmTextMetrics;
1061 BYTE otmFiller;
1062 PANOSE otmPanoseNumber;
1063 UINT otmfsSelection;
1064 UINT otmfsType;
1065 INT otmsCharSlopeRise;
1066 INT otmsCharSlopeRun;
1067 INT otmItalicAngle;
1068 UINT otmEMSquare;
1069 INT otmAscent;
1070 INT otmDescent;
1071 UINT otmLineGap;
1072 UINT otmsCapEmHeight;
1073 UINT otmsXHeight;
1074 RECT otmrcFontBox;
1075 INT otmMacAscent;
1076 INT otmMacDescent;
1077 UINT otmMacLineGap;
1078 UINT otmusMinimumPPEM;
1079 POINT otmptSubscriptSize;
1080 POINT otmptSubscriptOffset;
1081 POINT otmptSuperscriptSize;
1082 POINT otmptSuperscriptOffset;
1083 UINT otmsStrikeoutSize;
1084 INT otmsStrikeoutPosition;
1085 INT otmsUnderscoreSize;
1086 INT otmsUnderscorePosition;
1087 LPSTR otmpFamilyName;
1088 LPSTR otmpFaceName;
1089 LPSTR otmpStyleName;
1090 LPSTR otmpFullName;
1091 } OUTLINETEXTMETRICA, *POUTLINETEXTMETRICA, *LPOUTLINETEXTMETRICA;
1093 typedef struct _OUTLINETEXTMETRICW
1095 UINT otmSize;
1096 TEXTMETRICW otmTextMetrics;
1097 BYTE otmFiller;
1098 PANOSE otmPanoseNumber;
1099 UINT otmfsSelection;
1100 UINT otmfsType;
1101 INT otmsCharSlopeRise;
1102 INT otmsCharSlopeRun;
1103 INT otmItalicAngle;
1104 UINT otmEMSquare;
1105 INT otmAscent;
1106 INT otmDescent;
1107 UINT otmLineGap;
1108 UINT otmsCapEmHeight;
1109 UINT otmsXHeight;
1110 RECT otmrcFontBox;
1111 INT otmMacAscent;
1112 INT otmMacDescent;
1113 UINT otmMacLineGap;
1114 UINT otmusMinimumPPEM;
1115 POINT otmptSubscriptSize;
1116 POINT otmptSubscriptOffset;
1117 POINT otmptSuperscriptSize;
1118 POINT otmptSuperscriptOffset;
1119 UINT otmsStrikeoutSize;
1120 INT otmsStrikeoutPosition;
1121 INT otmsUnderscoreSize;
1122 INT otmsUnderscorePosition;
1123 LPSTR otmpFamilyName;
1124 LPSTR otmpFaceName;
1125 LPSTR otmpStyleName;
1126 LPSTR otmpFullName;
1127 } OUTLINETEXTMETRICW, *POUTLINETEXTMETRICW, *LPOUTLINETEXTMETRICW;
1129 DECL_WINELIB_TYPE_AW(OUTLINETEXTMETRIC)
1130 DECL_WINELIB_TYPE_AW(POUTLINETEXTMETRIC)
1131 DECL_WINELIB_TYPE_AW(LPOUTLINETEXTMETRIC)
1133 typedef struct
1135 INT x;
1136 INT y;
1137 UINT n;
1138 LPCSTR lpstr;
1139 UINT uiFlags;
1140 RECT rcl;
1141 INT *pdx;
1142 } POLYTEXTA, *PPOLYTEXTA, *LPPOLYTEXTA;
1144 typedef struct
1146 INT x;
1147 INT y;
1148 UINT n;
1149 LPCWSTR lpstr;
1150 UINT uiFlags;
1151 RECT rcl;
1152 INT *pdx;
1153 } POLYTEXTW, *PPOLYTEXTW, *LPPOLYTEXTW;
1155 DECL_WINELIB_TYPE_AW(POLYTEXT)
1156 DECL_WINELIB_TYPE_AW(PPOLYTEXT)
1157 DECL_WINELIB_TYPE_AW(LPPOLYTEXT)
1160 /* ntmFlags field flags */
1161 #define NTM_REGULAR __MSABI_LONG(0x00000040)
1162 #define NTM_BOLD __MSABI_LONG(0x00000020)
1163 #define NTM_ITALIC __MSABI_LONG(0x00000001)
1165 #define NTM_NONNEGATIVE_AC 0x00010000
1166 #define NTM_PS_OPENTYPE 0x00020000
1167 #define NTM_TT_OPENTYPE 0x00040000
1168 #define NTM_MULTIPLEMASTER 0x00080000
1169 #define NTM_TYPE1 0x00100000
1170 #define NTM_DSIG 0x00200000
1173 typedef struct
1175 LONG tmHeight;
1176 LONG tmAscent;
1177 LONG tmDescent;
1178 LONG tmInternalLeading;
1179 LONG tmExternalLeading;
1180 LONG tmAveCharWidth;
1181 LONG tmMaxCharWidth;
1182 LONG tmWeight;
1183 LONG tmOverhang;
1184 LONG tmDigitizedAspectX;
1185 LONG tmDigitizedAspectY;
1186 BYTE tmFirstChar;
1187 BYTE tmLastChar;
1188 BYTE tmDefaultChar;
1189 BYTE tmBreakChar;
1190 BYTE tmItalic;
1191 BYTE tmUnderlined;
1192 BYTE tmStruckOut;
1193 BYTE tmPitchAndFamily;
1194 BYTE tmCharSet;
1195 DWORD ntmFlags;
1196 UINT ntmSizeEM;
1197 UINT ntmCellHeight;
1198 UINT ntmAvgWidth;
1199 } NEWTEXTMETRICA, *PNEWTEXTMETRICA, *LPNEWTEXTMETRICA;
1201 typedef struct
1203 LONG tmHeight;
1204 LONG tmAscent;
1205 LONG tmDescent;
1206 LONG tmInternalLeading;
1207 LONG tmExternalLeading;
1208 LONG tmAveCharWidth;
1209 LONG tmMaxCharWidth;
1210 LONG tmWeight;
1211 LONG tmOverhang;
1212 LONG tmDigitizedAspectX;
1213 LONG tmDigitizedAspectY;
1214 WCHAR tmFirstChar;
1215 WCHAR tmLastChar;
1216 WCHAR tmDefaultChar;
1217 WCHAR tmBreakChar;
1218 BYTE tmItalic;
1219 BYTE tmUnderlined;
1220 BYTE tmStruckOut;
1221 BYTE tmPitchAndFamily;
1222 BYTE tmCharSet;
1223 DWORD ntmFlags;
1224 UINT ntmSizeEM;
1225 UINT ntmCellHeight;
1226 UINT ntmAvgWidth;
1227 } NEWTEXTMETRICW, *PNEWTEXTMETRICW, *LPNEWTEXTMETRICW;
1229 DECL_WINELIB_TYPE_AW(NEWTEXTMETRIC)
1230 DECL_WINELIB_TYPE_AW(PNEWTEXTMETRIC)
1231 DECL_WINELIB_TYPE_AW(LPNEWTEXTMETRIC)
1233 typedef struct
1235 NEWTEXTMETRICA ntmTm;
1236 FONTSIGNATURE ntmFontSig;
1237 } NEWTEXTMETRICEXA;
1239 typedef struct
1241 NEWTEXTMETRICW ntmTm;
1242 FONTSIGNATURE ntmFontSig;
1243 } NEWTEXTMETRICEXW;
1245 DECL_WINELIB_TYPE_AW(NEWTEXTMETRICEX)
1247 #if defined(STRICT)
1249 #if !defined(NOTEXTMETRIC)
1250 typedef int (CALLBACK *OLDFONTENUMPROCA)(const LOGFONTA *, const TEXTMETRICA *, DWORD, LPARAM);
1251 typedef int (CALLBACK *OLDFONTENUMPROCW)(const LOGFONTW *, const TEXTMETRICW *, DWORD, LPARAM);
1252 #else /* !defined(NOTEXTMETRIC) */
1253 typedef int (CALLBACK *OLDFONTENUMPROCA)(const LOGFONTA *, const VOID *, DWORD, LPARAM);
1254 typedef int (CALLBACK *OLDFONTENUMPROCW)(const LOGFONTW *, const VOID *, DWORD, LPARAM);
1255 #endif /* !defined(NOTEXTMETRIC) */
1256 DECL_WINELIB_TYPE_AW(OLDFONTENUMPROC)
1258 typedef OLDFONTENUMPROCA FONTENUMPROCA;
1259 typedef OLDFONTENUMPROCW FONTENUMPROCW;
1260 DECL_WINELIB_TYPE_AW(FONTENUMPROC)
1262 typedef INT (CALLBACK *GOBJENUMPROC)(LPVOID, LPARAM);
1263 typedef VOID (CALLBACK *LINEDDAPROC)(INT, INT, LPARAM);
1265 #else /* defined(STRICT) */
1267 typedef FARPROC OLDFONTENUMPROC;
1269 typedef FARPROC FONTENUMPROCA;
1270 typedef FARPROC FONTENUMPROCW;
1271 DECL_WINELIB_TYPE_AW(FONTENUMPROC)
1273 typedef FARPROC GOBJENUMPROC;
1274 typedef FARPROC LINEDDAPROC;
1276 #endif /* defined(STRICT) */
1278 /* tmPitchAndFamily bits */
1279 #define TMPF_FIXED_PITCH 1 /* means variable pitch */
1280 #define TMPF_VECTOR 2
1281 #define TMPF_TRUETYPE 4
1282 #define TMPF_DEVICE 8
1284 /* Text alignment */
1285 #define TA_NOUPDATECP 0x00
1286 #define TA_UPDATECP 0x01
1287 #define TA_LEFT 0x00
1288 #define TA_RIGHT 0x02
1289 #define TA_CENTER 0x06
1290 #define TA_TOP 0x00
1291 #define TA_BOTTOM 0x08
1292 #define TA_BASELINE 0x18
1293 #define TA_RTLREADING 0x100
1294 #define TA_MASK TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLREADING
1296 #define VTA_BASELINE TA_BASELINE
1297 #define VTA_LEFT TA_BOTTOM
1298 #define VTA_RIGHT TA_TOP
1299 #define VTA_CENTER TA_CENTER
1300 #define VTA_BOTTOM TA_RIGHT
1301 #define VTA_TOP TA_LEFT
1304 /* ExtTextOut() parameters */
1305 #define ETO_GRAYED 0x0001
1306 #define ETO_OPAQUE 0x0002
1307 #define ETO_CLIPPED 0x0004
1308 #define ETO_GLYPH_INDEX 0x0010
1309 #define ETO_RTLREADING 0x0080
1310 #define ETO_NUMERICSLOCAL 0x0400
1311 #define ETO_NUMERICSLATIN 0x0800
1312 #define ETO_IGNORELANGUAGE 0x1000
1313 #define ETO_PDY 0x2000
1315 #define ASPECT_FILTERING 0x0001
1317 /* for GetGlyphIndices() */
1318 #define GGI_MARK_NONEXISTING_GLYPHS 0x0001
1320 typedef struct
1322 UINT gmBlackBoxX;
1323 UINT gmBlackBoxY;
1324 POINT gmptGlyphOrigin;
1325 SHORT gmCellIncX;
1326 SHORT gmCellIncY;
1327 } GLYPHMETRICS, *LPGLYPHMETRICS;
1330 #define GGO_METRICS 0
1331 #define GGO_BITMAP 1
1332 #define GGO_NATIVE 2
1333 #define GGO_BEZIER 3
1334 #define GGO_GRAY2_BITMAP 4
1335 #define GGO_GRAY4_BITMAP 5
1336 #define GGO_GRAY8_BITMAP 6
1337 #define GGO_GLYPH_INDEX 0x80
1338 #define GGO_UNHINTED 0x100
1340 #ifdef __WINESRC__
1341 #define WINE_GGO_GRAY16_BITMAP 0x10
1342 #define WINE_GGO_HRGB_BITMAP 0x11
1343 #define WINE_GGO_HBGR_BITMAP 0x12
1344 #define WINE_GGO_VRGB_BITMAP 0x13
1345 #define WINE_GGO_VBGR_BITMAP 0x14
1346 #endif
1348 typedef struct
1350 WORD fract;
1351 SHORT value;
1352 } FIXED;
1354 typedef struct tagPOINTFX
1356 FIXED x;
1357 FIXED y;
1358 } POINTFX, *LPPOINTFX;
1360 typedef struct tagTTPOLYCURVE
1362 WORD wType;
1363 WORD cpfx;
1364 POINTFX apfx[1];
1365 } TTPOLYCURVE, *LPTTPOLYCURVE;
1367 typedef struct tagTTPOLYGONHEADER
1369 DWORD cb;
1370 DWORD dwType;
1371 POINTFX pfxStart;
1372 } TTPOLYGONHEADER, *LPTTPOLYGONHEADER;
1374 typedef struct
1376 FIXED eM11;
1377 FIXED eM12;
1378 FIXED eM21;
1379 FIXED eM22;
1380 } MAT2, *LPMAT2;
1382 /* for GetCharABCWidths() */
1383 typedef struct
1385 INT abcA;
1386 UINT abcB;
1387 INT abcC;
1388 } ABC, *PABC, *LPABC;
1391 /* for GetCharacterPlacement () */
1393 #define GCP_DBCS 0x0001
1394 #define GCP_REORDER 0x0002
1395 #define GCP_USEKERNING 0x0008
1396 #define GCP_GLYPHSHAPE 0x0010
1397 #define GCP_LIGATE 0x0020
1398 #define GCP_DIACRITIC 0x0100
1399 #define GCP_KASHIDA 0x0200
1400 #define GCP_ERROR 0x8000
1401 #define FLI_MASK 0x103b
1402 #define GCP_JUSTIFY __MSABI_LONG(0x00010000)
1403 #define FLI_GLYPHS __MSABI_LONG(0x00040000)
1404 #define GCP_CLASSIN __MSABI_LONG(0x00080000)
1405 #define GCP_MAXEXTENT __MSABI_LONG(0x00100000)
1406 #define GCP_JUSTIFYIN __MSABI_LONG(0x00200000)
1407 #define GCP_DISPLAYZWG __MSABI_LONG(0x00400000)
1408 #define GCP_SYMSWAPOFF __MSABI_LONG(0x00800000)
1409 #define GCP_NUMERICOVERRIDE __MSABI_LONG(0x01000000)
1410 #define GCP_NEUTRALOVERRIDE __MSABI_LONG(0x02000000)
1411 #define GCP_NUMERICSLATIN __MSABI_LONG(0x04000000)
1412 #define GCP_NUMERICSLOCAL __MSABI_LONG(0x08000000)
1414 #define GCPCLASS_LATIN 1
1415 #define GCPCLASS_HEBREW 2
1416 #define GCPCLASS_ARABIC 3
1417 #define GCPCLASS_NEUTRAL 4
1418 #define GCPCLASS_LOCALNUMBER 5
1419 #define GCPCLASS_LATINNUMBER 6
1420 #define GCPCLASS_LATINNUMERICTERMINATOR 7
1421 #define GCPCLASS_LATINNUMERICSEPARATOR 8
1422 #define GCPCLASS_NUMERICSEPARATOR 9
1423 #define GCPCLASS_PREBOUNDLTR 0x80
1424 #define GCPCLASS_PREBOUNDRTL 0x40
1425 #define GCPCLASS_POSTBOUNDLTR 0x20
1426 #define GCPCLASS_POSTBOUNDRTL 0x10
1428 #define GCPGLYPH_LINKBEFORE 0x8000
1429 #define GCPGLYPH_LINKAFTER 0x4000
1432 typedef struct tagGCP_RESULTSA{
1433 DWORD lStructSize;
1434 LPSTR lpOutString;
1435 UINT *lpOrder;
1436 INT *lpDx;
1437 INT *lpCaretPos;
1438 LPSTR lpClass;
1439 LPWSTR lpGlyphs;
1440 UINT nGlyphs;
1441 UINT nMaxFit;
1442 } GCP_RESULTSA, *LPGCP_RESULTSA;
1444 typedef struct tagGCP_RESULTSW
1446 DWORD lStructSize;
1447 LPWSTR lpOutString;
1448 UINT *lpOrder;
1449 INT *lpDx;
1450 INT *lpCaretPos;
1451 LPSTR lpClass;
1452 LPWSTR lpGlyphs;
1453 UINT nGlyphs;
1454 UINT nMaxFit;
1455 } GCP_RESULTSW, *LPGCP_RESULTSW;
1457 DECL_WINELIB_TYPE_AW(GCP_RESULTS)
1458 DECL_WINELIB_TYPE_AW(LPGCP_RESULTS)
1460 /* Rasterizer status */
1461 typedef struct
1463 SHORT nSize;
1464 SHORT wFlags;
1465 SHORT nLanguageID;
1466 } RASTERIZER_STATUS, *LPRASTERIZER_STATUS;
1468 #define TT_AVAILABLE 0x0001
1469 #define TT_ENABLED 0x0002
1471 #define TT_PRIM_LINE 1
1472 #define TT_PRIM_QSPLINE 2
1473 #define TT_PRIM_CSPLINE 3
1474 #define TT_POLYGON_TYPE 24
1476 /* OpenGL defines */
1477 typedef struct {
1478 FLOAT x;
1479 FLOAT y;
1480 } POINTFLOAT, *PPOINTFLOAT;
1482 typedef struct {
1483 FLOAT gmfBlackBoxX;
1484 FLOAT gmfBlackBoxY;
1485 POINTFLOAT gmfptGlyphOrigin;
1486 FLOAT gmfCellIncX;
1487 FLOAT gmfCellIncY;
1488 } GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, *LPGLYPHMETRICSFLOAT;
1490 typedef struct {
1491 WORD nSize;
1492 WORD nVersion;
1493 DWORD dwFlags;
1494 BYTE iPixelType;
1495 BYTE cColorBits;
1496 BYTE cRedBits;
1497 BYTE cRedShift;
1498 BYTE cGreenBits;
1499 BYTE cGreenShift;
1500 BYTE cBlueBits;
1501 BYTE cBlueShift;
1502 BYTE cAlphaBits;
1503 BYTE cAlphaShift;
1504 BYTE cAccumBits;
1505 BYTE cAccumRedBits;
1506 BYTE cAccumGreenBits;
1507 BYTE cAccumBlueBits;
1508 BYTE cAccumAlphaBits;
1509 BYTE cDepthBits;
1510 BYTE cStencilBits;
1511 BYTE cAuxBuffers;
1512 BYTE iLayerPlane;
1513 BYTE bReserved;
1514 COLORREF crTransparent;
1515 } LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, *LPLAYERPLANEDESCRIPTOR;
1517 /* Get/SetSystemPaletteUse() values */
1518 #define SYSPAL_ERROR 0
1519 #define SYSPAL_STATIC 1
1520 #define SYSPAL_NOSTATIC 2
1521 #define SYSPAL_NOSTATIC256 3
1523 #ifndef _PALETTEENTRY_DEFINED
1524 #define _PALETTEENTRY_DEFINED
1525 typedef struct tagPALETTEENTRY
1527 BYTE peRed, peGreen, peBlue, peFlags;
1528 } PALETTEENTRY, *PPALETTEENTRY, *LPPALETTEENTRY;
1529 #endif
1531 /* Logical palette entry flags */
1532 #define PC_RESERVED 0x01
1533 #define PC_EXPLICIT 0x02
1534 #define PC_NOCOLLAPSE 0x04
1536 #ifndef _LOGPALETTE_DEFINED
1537 #define _LOGPALETTE_DEFINED
1538 typedef struct tagLOGPALETTE
1540 WORD palVersion;
1541 WORD palNumEntries;
1542 PALETTEENTRY palPalEntry[1];
1543 } LOGPALETTE, *PLOGPALETTE, *LPLOGPALETTE, *NPLOGPALETTE;
1544 #endif
1546 /* Pens */
1548 typedef struct
1550 UINT lopnStyle;
1551 POINT lopnWidth;
1552 COLORREF lopnColor;
1553 } LOGPEN, *LPLOGPEN;
1556 typedef struct tagEXTLOGPEN
1558 DWORD elpPenStyle;
1559 DWORD elpWidth;
1560 UINT elpBrushStyle;
1561 COLORREF elpColor;
1562 ULONG_PTR elpHatch;
1563 DWORD elpNumEntries;
1564 DWORD elpStyleEntry[1];
1565 } EXTLOGPEN, *PEXTLOGPEN, *NPEXTLOGPEN, *LPEXTLOGPEN;
1567 #define PS_SOLID 0x00000000
1568 #define PS_DASH 0x00000001
1569 #define PS_DOT 0x00000002
1570 #define PS_DASHDOT 0x00000003
1571 #define PS_DASHDOTDOT 0x00000004
1572 #define PS_NULL 0x00000005
1573 #define PS_INSIDEFRAME 0x00000006
1574 #define PS_USERSTYLE 0x00000007
1575 #define PS_ALTERNATE 0x00000008
1576 #define PS_STYLE_MASK 0x0000000f
1578 #define PS_ENDCAP_ROUND 0x00000000
1579 #define PS_ENDCAP_SQUARE 0x00000100
1580 #define PS_ENDCAP_FLAT 0x00000200
1581 #define PS_ENDCAP_MASK 0x00000f00
1583 #define PS_JOIN_ROUND 0x00000000
1584 #define PS_JOIN_BEVEL 0x00001000
1585 #define PS_JOIN_MITER 0x00002000
1586 #define PS_JOIN_MASK 0x0000f000
1588 #define PS_COSMETIC 0x00000000
1589 #define PS_GEOMETRIC 0x00010000
1590 #define PS_TYPE_MASK 0x000f0000
1592 /* Regions */
1594 #define ERROR 0
1595 #define NULLREGION 1
1596 #define SIMPLEREGION 2
1597 #define COMPLEXREGION 3
1598 #define RGN_ERROR ERROR
1600 #define RGN_AND 1
1601 #define RGN_OR 2
1602 #define RGN_XOR 3
1603 #define RGN_DIFF 4
1604 #define RGN_COPY 5
1605 #define RGN_MIN RGN_AND
1606 #define RGN_MAX RGN_COPY
1608 #define SYSRGN 4
1610 /* Device contexts */
1612 /* Polygon modes */
1613 #define ALTERNATE 1
1614 #define WINDING 2
1615 #define POLYFILL_LAST 2
1617 /* Background modes */
1618 /* Apparently some broken svr4 includes define TRANSPARENT */
1619 #undef TRANSPARENT
1620 #define TRANSPARENT 1
1621 #define OPAQUE 2
1622 #define BKMODE_LAST 2
1624 /* Graphics Modes */
1625 #define GM_COMPATIBLE 1
1626 #define GM_ADVANCED 2
1627 #define GM_LAST 2
1629 /* Arc direction modes */
1630 #define AD_COUNTERCLOCKWISE 1
1631 #define AD_CLOCKWISE 2
1633 /* Map modes */
1634 #define MM_TEXT 1
1635 #define MM_LOMETRIC 2
1636 #define MM_HIMETRIC 3
1637 #define MM_LOENGLISH 4
1638 #define MM_HIENGLISH 5
1639 #define MM_TWIPS 6
1640 #define MM_ISOTROPIC 7
1641 #define MM_ANISOTROPIC 8
1643 #define MM_MIN MM_TEXT
1644 #define MM_MAX MM_ANISOTROPIC
1645 #define MM_MAX_FIXEDSCALE MM_TWIPS
1647 /* Coordinate modes */
1648 #define ABSOLUTE 1
1649 #define RELATIVE 2
1651 /* Flood fill modes */
1652 #define FLOODFILLBORDER 0
1653 #define FLOODFILLSURFACE 1
1655 /* Device parameters for GetDeviceCaps() */
1656 #define DRIVERVERSION 0
1657 #define TECHNOLOGY 2
1658 #define HORZSIZE 4
1659 #define VERTSIZE 6
1660 #define HORZRES 8
1661 #define VERTRES 10
1662 #define BITSPIXEL 12
1663 #define PLANES 14
1664 #define NUMBRUSHES 16
1665 #define NUMPENS 18
1666 #define NUMMARKERS 20
1667 #define NUMFONTS 22
1668 #define NUMCOLORS 24
1669 #define PDEVICESIZE 26
1670 #define CURVECAPS 28
1671 #define LINECAPS 30
1672 #define POLYGONALCAPS 32
1673 #define TEXTCAPS 34
1674 #define CLIPCAPS 36
1675 #define RASTERCAPS 38
1676 #define ASPECTX 40
1677 #define ASPECTY 42
1678 #define ASPECTXY 44
1679 #define LOGPIXELSX 88
1680 #define LOGPIXELSY 90
1681 #define CAPS1 94
1682 #define SIZEPALETTE 104
1683 #define NUMRESERVED 106
1684 #define COLORRES 108
1686 #define PHYSICALWIDTH 110
1687 #define PHYSICALHEIGHT 111
1688 #define PHYSICALOFFSETX 112
1689 #define PHYSICALOFFSETY 113
1690 #define SCALINGFACTORX 114
1691 #define SCALINGFACTORY 115
1692 #define VREFRESH 116
1693 #define DESKTOPVERTRES 117
1694 #define DESKTOPHORZRES 118
1695 #define BLTALIGNMENT 119
1696 #define SHADEBLENDCAPS 120
1697 #define COLORMGMTCAPS 121
1699 /* TECHNOLOGY */
1700 #define DT_PLOTTER 0
1701 #define DT_RASDISPLAY 1
1702 #define DT_RASPRINTER 2
1703 #define DT_RASCAMERA 3
1704 #define DT_CHARSTREAM 4
1705 #define DT_METAFILE 5
1706 #define DT_DISPFILE 6
1708 /* CURVECAPS */
1709 #define CC_NONE 0x0000
1710 #define CC_CIRCLES 0x0001
1711 #define CC_PIE 0x0002
1712 #define CC_CHORD 0x0004
1713 #define CC_ELLIPSES 0x0008
1714 #define CC_WIDE 0x0010
1715 #define CC_STYLED 0x0020
1716 #define CC_WIDESTYLED 0x0040
1717 #define CC_INTERIORS 0x0080
1718 #define CC_ROUNDRECT 0x0100
1720 /* LINECAPS */
1721 #define LC_NONE 0x0000
1722 #define LC_POLYLINE 0x0002
1723 #define LC_MARKER 0x0004
1724 #define LC_POLYMARKER 0x0008
1725 #define LC_WIDE 0x0010
1726 #define LC_STYLED 0x0020
1727 #define LC_WIDESTYLED 0x0040
1728 #define LC_INTERIORS 0x0080
1730 /* POLYGONALCAPS */
1731 #define PC_NONE 0x0000
1732 #define PC_POLYGON 0x0001
1733 #define PC_RECTANGLE 0x0002
1734 #define PC_WINDPOLYGON 0x0004
1735 #define PC_TRAPEZOID 0x0004
1736 #define PC_SCANLINE 0x0008
1737 #define PC_WIDE 0x0010
1738 #define PC_STYLED 0x0020
1739 #define PC_WIDESTYLED 0x0040
1740 #define PC_INTERIORS 0x0080
1741 #define PC_POLYPOLYGON 0x0100
1742 #define PC_PATHS 0x0200
1744 /* TEXTCAPS */
1745 #define TC_OP_CHARACTER 0x0001
1746 #define TC_OP_STROKE 0x0002
1747 #define TC_CP_STROKE 0x0004
1748 #define TC_CR_90 0x0008
1749 #define TC_CR_ANY 0x0010
1750 #define TC_SF_X_YINDEP 0x0020
1751 #define TC_SA_DOUBLE 0x0040
1752 #define TC_SA_INTEGER 0x0080
1753 #define TC_SA_CONTIN 0x0100
1754 #define TC_EA_DOUBLE 0x0200
1755 #define TC_IA_ABLE 0x0400
1756 #define TC_UA_ABLE 0x0800
1757 #define TC_SO_ABLE 0x1000
1758 #define TC_RA_ABLE 0x2000
1759 #define TC_VA_ABLE 0x4000
1760 #define TC_RESERVED 0x8000
1761 #define TC_SCROLLBLT 0x00010000
1763 /* CLIPCAPS */
1764 #define CP_NONE 0x0000
1765 #define CP_RECTANGLE 0x0001
1766 #define CP_REGION 0x0002
1768 /* RASTERCAPS */
1769 #define RC_NONE 0x0000
1770 #define RC_BITBLT 0x0001
1771 #define RC_BANDING 0x0002
1772 #define RC_SCALING 0x0004
1773 #define RC_BITMAP64 0x0008
1774 #define RC_GDI20_OUTPUT 0x0010
1775 #define RC_GDI20_STATE 0x0020
1776 #define RC_SAVEBITMAP 0x0040
1777 #define RC_DI_BITMAP 0x0080
1778 #define RC_PALETTE 0x0100
1779 #define RC_DIBTODEV 0x0200
1780 #define RC_BIGFONT 0x0400
1781 #define RC_STRETCHBLT 0x0800
1782 #define RC_FLOODFILL 0x1000
1783 #define RC_STRETCHDIB 0x2000
1784 #define RC_OP_DX_OUTPUT 0x4000
1785 #define RC_DEVBITS 0x8000
1787 /* CAPS1 */
1788 #define C1_TRANSPARENT 0x0001
1789 #define TC_TT_ABLE 0x0002
1790 #define C1_TT_CR_ANY 0x0004
1791 #define C1_EMF_COMPLIANT 0x0008
1792 #define C1_DIBENGINE 0x0010
1793 #define C1_GAMMA_RAMP 0x0040
1794 #define C1_REINIT_ABLE 0x0080
1795 #define C1_GLYPH_INDEX 0x0100
1796 #define C1_BIT_PACKED 0x0200
1797 #define C1_BYTE_PACKED 0x0400
1798 #define C1_COLORCURSOR 0x0800
1799 #define C1_CMYK_ABLE 0x1000
1800 #define C1_SLOW_CARD 0x2000
1802 /* SHADEBLENDCAPS */
1803 #define SB_NONE 0x0000
1804 #define SB_CONST_ALPHA 0x0001
1805 #define SB_PIXEL_ALPHA 0x0002
1806 #define SB_PREMULT_ALPHA 0x0004
1807 #define SB_GRAD_RECT 0x0010
1808 #define SB_GRAD_TRI 0x0020
1810 /* Device-independent bitmaps */
1812 typedef struct tagRGBQUAD {
1813 BYTE rgbBlue;
1814 BYTE rgbGreen;
1815 BYTE rgbRed;
1816 BYTE rgbReserved;
1817 } RGBQUAD, *LPRGBQUAD;
1819 typedef struct tagRGBTRIPLE {
1820 BYTE rgbtBlue;
1821 BYTE rgbtGreen;
1822 BYTE rgbtRed;
1823 } RGBTRIPLE;
1825 #include <pshpack2.h>
1826 typedef struct
1828 WORD bfType;
1829 DWORD bfSize;
1830 WORD bfReserved1;
1831 WORD bfReserved2;
1832 DWORD bfOffBits;
1833 } BITMAPFILEHEADER, *PBITMAPFILEHEADER, *LPBITMAPFILEHEADER;
1834 #include <poppack.h>
1836 #define MAKEPOINTS(l) (*((POINTS *)&(l)))
1838 typedef struct
1840 DWORD biSize;
1841 LONG biWidth;
1842 LONG biHeight;
1843 WORD biPlanes;
1844 WORD biBitCount;
1845 DWORD biCompression;
1846 DWORD biSizeImage;
1847 LONG biXPelsPerMeter;
1848 LONG biYPelsPerMeter;
1849 DWORD biClrUsed;
1850 DWORD biClrImportant;
1851 } BITMAPINFOHEADER, *PBITMAPINFOHEADER, *LPBITMAPINFOHEADER;
1853 typedef struct
1855 DWORD bV4Size;
1856 LONG bV4Width;
1857 LONG bV4Height;
1858 WORD bV4Planes;
1859 WORD bV4BitCount;
1860 DWORD bV4V4Compression;
1861 DWORD bV4SizeImage;
1862 LONG bV4XPelsPerMeter;
1863 LONG bV4YPelsPerMeter;
1864 DWORD bV4ClrUsed;
1865 DWORD bV4ClrImportant;
1866 DWORD bV4RedMask;
1867 DWORD bV4GreenMask;
1868 DWORD bV4BlueMask;
1869 DWORD bV4AlphaMask;
1870 DWORD bV4CSType;
1871 CIEXYZTRIPLE bV4Endpoints;
1872 DWORD bV4GammaRed;
1873 DWORD bV4GammaGreen;
1874 DWORD bV4GammaBlue;
1875 } BITMAPV4HEADER, *PBITMAPV4HEADER;
1877 typedef struct {
1878 DWORD bV5Size;
1879 LONG bV5Width;
1880 LONG bV5Height;
1881 WORD bV5Planes;
1882 WORD bV5BitCount;
1883 DWORD bV5Compression;
1884 DWORD bV5SizeImage;
1885 LONG bV5XPelsPerMeter;
1886 LONG bV5YPelsPerMeter;
1887 DWORD bV5ClrUsed;
1888 DWORD bV5ClrImportant;
1889 DWORD bV5RedMask;
1890 DWORD bV5GreenMask;
1891 DWORD bV5BlueMask;
1892 DWORD bV5AlphaMask;
1893 DWORD bV5CSType;
1894 CIEXYZTRIPLE bV5Endpoints;
1895 DWORD bV5GammaRed;
1896 DWORD bV5GammaGreen;
1897 DWORD bV5GammaBlue;
1898 DWORD bV5Intent;
1899 DWORD bV5ProfileData;
1900 DWORD bV5ProfileSize;
1901 DWORD bV5Reserved;
1902 } BITMAPV5HEADER, *LPBITMAPV5HEADER, *PBITMAPV5HEADER;
1904 #define PROFILE_LINKED 0x4c494e4b /* 'LINK' */
1905 #define PROFILE_EMBEDDED 0x4d424544 /* 'MBED' */
1908 /* biCompression */
1909 #define BI_RGB 0
1910 #define BI_RLE8 1
1911 #define BI_RLE4 2
1912 #define BI_BITFIELDS 3
1913 #define BI_JPEG 4
1914 #define BI_PNG 5
1916 typedef struct tagBITMAPINFO
1918 BITMAPINFOHEADER bmiHeader;
1919 RGBQUAD bmiColors[1];
1920 } BITMAPINFO, *PBITMAPINFO, *LPBITMAPINFO;
1922 typedef struct
1924 DWORD bcSize;
1925 WORD bcWidth;
1926 WORD bcHeight;
1927 WORD bcPlanes;
1928 WORD bcBitCount;
1929 } BITMAPCOREHEADER, *PBITMAPCOREHEADER, *LPBITMAPCOREHEADER;
1931 typedef struct
1933 BITMAPCOREHEADER bmciHeader;
1934 RGBTRIPLE bmciColors[1];
1935 } BITMAPCOREINFO, *PBITMAPCOREINFO, *LPBITMAPCOREINFO;
1937 #define DIB_RGB_COLORS 0
1938 #define DIB_PAL_COLORS 1
1939 #define CBM_INIT 4
1941 typedef struct
1943 BITMAP dsBm;
1944 BITMAPINFOHEADER dsBmih;
1945 DWORD dsBitfields[3];
1946 HANDLE dshSection;
1947 DWORD dsOffset;
1948 } DIBSECTION, *PDIBSECTION, *LPDIBSECTION;
1950 /* Stock GDI objects for GetStockObject() */
1952 #define WHITE_BRUSH 0
1953 #define LTGRAY_BRUSH 1
1954 #define GRAY_BRUSH 2
1955 #define DKGRAY_BRUSH 3
1956 #define BLACK_BRUSH 4
1957 #define NULL_BRUSH 5
1958 #define HOLLOW_BRUSH 5
1959 #define WHITE_PEN 6
1960 #define BLACK_PEN 7
1961 #define NULL_PEN 8
1962 #define OEM_FIXED_FONT 10
1963 #define ANSI_FIXED_FONT 11
1964 #define ANSI_VAR_FONT 12
1965 #define SYSTEM_FONT 13
1966 #define DEVICE_DEFAULT_FONT 14
1967 #define DEFAULT_PALETTE 15
1968 #define SYSTEM_FIXED_FONT 16
1969 #define DEFAULT_GUI_FONT 17
1970 #define DC_BRUSH 18
1971 #define DC_PEN 19
1973 #define STOCK_LAST 19
1975 #define CLR_INVALID 0xffffffff
1977 typedef USHORT COLOR16;
1979 typedef struct _TRIVERTEX
1981 LONG x;
1982 LONG y;
1983 COLOR16 Red;
1984 COLOR16 Green;
1985 COLOR16 Blue;
1986 COLOR16 Alpha;
1987 } TRIVERTEX, *PTRIVERTEX, *LPTRIVERTEX;
1989 typedef struct _GRADIENT_TRIANGLE
1991 ULONG Vertex1;
1992 ULONG Vertex2;
1993 ULONG Vertex3;
1994 } GRADIENT_TRIANGLE, *PGRADIENT_TRIANGLE, *LPGRADIENT_TRIANGLE;
1996 typedef struct _GRADIENT_RECT
1998 ULONG UpperLeft;
1999 ULONG LowerRight;
2000 } GRADIENT_RECT, *PGRADIENT_RECT, *LPGRADIENT_RECT;
2002 #define AC_SRC_OVER 0x00
2003 #define AC_SRC_ALPHA 0x01
2005 typedef struct _BLENDFUNCTION
2007 BYTE BlendOp;
2008 BYTE BlendFlags;
2009 BYTE SourceConstantAlpha;
2010 BYTE AlphaFormat;
2011 } BLENDFUNCTION, *PBLENDFUNCTION;
2013 #define GRADIENT_FILL_RECT_H 0x00000000
2014 #define GRADIENT_FILL_RECT_V 0x00000001
2015 #define GRADIENT_FILL_TRIANGLE 0x00000002
2016 #define GRADIENT_FILL_OP_FLAG 0x000000ff
2019 /* Metafile header structure */
2020 #include <pshpack2.h>
2021 typedef struct
2023 WORD mtType;
2024 WORD mtHeaderSize;
2025 WORD mtVersion;
2026 DWORD mtSize;
2027 WORD mtNoObjects;
2028 DWORD mtMaxRecord;
2029 WORD mtNoParameters;
2030 } METAHEADER, *PMETAHEADER, *LPMETAHEADER;
2031 #include <poppack.h>
2033 /* Metafile typical record structure */
2034 typedef struct
2036 DWORD rdSize;
2037 WORD rdFunction;
2038 WORD rdParm[1];
2039 } METARECORD, *PMETARECORD, *LPMETARECORD;
2041 /* Handle table structure */
2043 typedef struct
2045 HGDIOBJ objectHandle[1];
2046 } HANDLETABLE, *PHANDLETABLE, *LPHANDLETABLE;
2049 /* Clipboard metafile picture structure */
2050 typedef struct
2052 LONG mm;
2053 LONG xExt;
2054 LONG yExt;
2055 HMETAFILE hMF;
2056 } METAFILEPICT, *LPMETAFILEPICT;
2059 /* Metafile functions */
2060 #define META_SETBKCOLOR 0x0201
2061 #define META_SETBKMODE 0x0102
2062 #define META_SETMAPMODE 0x0103
2063 #define META_SETROP2 0x0104
2064 #define META_SETRELABS 0x0105
2065 #define META_SETPOLYFILLMODE 0x0106
2066 #define META_SETSTRETCHBLTMODE 0x0107
2067 #define META_SETTEXTCHAREXTRA 0x0108
2068 #define META_SETTEXTCOLOR 0x0209
2069 #define META_SETTEXTJUSTIFICATION 0x020A
2070 #define META_SETWINDOWORG 0x020B
2071 #define META_SETWINDOWEXT 0x020C
2072 #define META_SETVIEWPORTORG 0x020D
2073 #define META_SETVIEWPORTEXT 0x020E
2074 #define META_OFFSETWINDOWORG 0x020F
2075 #define META_SCALEWINDOWEXT 0x0410
2076 #define META_OFFSETVIEWPORTORG 0x0211
2077 #define META_SCALEVIEWPORTEXT 0x0412
2078 #define META_LINETO 0x0213
2079 #define META_MOVETO 0x0214
2080 #define META_EXCLUDECLIPRECT 0x0415
2081 #define META_INTERSECTCLIPRECT 0x0416
2082 #define META_ARC 0x0817
2083 #define META_ELLIPSE 0x0418
2084 #define META_FLOODFILL 0x0419
2085 #define META_PIE 0x081A
2086 #define META_RECTANGLE 0x041B
2087 #define META_ROUNDRECT 0x061C
2088 #define META_PATBLT 0x061D
2089 #define META_SAVEDC 0x001E
2090 #define META_SETPIXEL 0x041F
2091 #define META_OFFSETCLIPRGN 0x0220
2092 #define META_TEXTOUT 0x0521
2093 #define META_BITBLT 0x0922
2094 #define META_STRETCHBLT 0x0B23
2095 #define META_POLYGON 0x0324
2096 #define META_POLYLINE 0x0325
2097 #define META_ESCAPE 0x0626
2098 #define META_RESTOREDC 0x0127
2099 #define META_FILLREGION 0x0228
2100 #define META_FRAMEREGION 0x0429
2101 #define META_INVERTREGION 0x012A
2102 #define META_PAINTREGION 0x012B
2103 #define META_SELECTCLIPREGION 0x012C
2104 #define META_SELECTOBJECT 0x012D
2105 #define META_SETTEXTALIGN 0x012E
2106 #define META_DRAWTEXT 0x062F
2107 #define META_CHORD 0x0830
2108 #define META_SETMAPPERFLAGS 0x0231
2109 #define META_EXTTEXTOUT 0x0A32
2110 #define META_SETDIBTODEV 0x0D33
2111 #define META_SELECTPALETTE 0x0234
2112 #define META_REALIZEPALETTE 0x0035
2113 #define META_ANIMATEPALETTE 0x0436
2114 #define META_SETPALENTRIES 0x0037
2115 #define META_POLYPOLYGON 0x0538
2116 #define META_RESIZEPALETTE 0x0139
2117 #define META_DIBBITBLT 0x0940
2118 #define META_DIBSTRETCHBLT 0x0B41
2119 #define META_DIBCREATEPATTERNBRUSH 0x0142
2120 #define META_STRETCHDIB 0x0F43
2121 #define META_EXTFLOODFILL 0x0548
2122 #define META_RESETDC 0x014C
2123 #define META_STARTDOC 0x014D
2124 #define META_STARTPAGE 0x004F
2125 #define META_ENDPAGE 0x0050
2126 #define META_ABORTDOC 0x0052
2127 #define META_ENDDOC 0x005E
2128 #define META_SETLAYOUT 0x0149
2129 #define META_DELETEOBJECT 0x01F0
2130 #define META_CREATEPALETTE 0x00F7
2131 #define META_CREATEBRUSH 0x00F8
2132 #define META_CREATEPATTERNBRUSH 0x01F9
2133 #define META_CREATEPENINDIRECT 0x02FA
2134 #define META_CREATEFONTINDIRECT 0x02FB
2135 #define META_CREATEBRUSHINDIRECT 0x02FC
2136 #define META_CREATEBITMAPINDIRECT 0x02FD
2137 #define META_CREATEBITMAP 0x06FE
2138 #define META_CREATEREGION 0x06FF
2139 #define META_UNKNOWN 0x0529 /* FIXME: unknown meta magic */
2141 typedef INT (CALLBACK *MFENUMPROC)(HDC,HANDLETABLE*,METARECORD*,
2142 INT,LPARAM);
2144 /* enhanced metafile structures and functions */
2146 /* note that ENHMETAHEADER is just a particular kind of ENHMETARECORD,
2147 ie. the header is just the first record in the metafile */
2148 typedef struct {
2149 DWORD iType;
2150 DWORD nSize;
2151 RECTL rclBounds;
2152 RECTL rclFrame;
2153 DWORD dSignature;
2154 DWORD nVersion;
2155 DWORD nBytes;
2156 DWORD nRecords;
2157 WORD nHandles;
2158 WORD sReserved;
2159 DWORD nDescription;
2160 DWORD offDescription;
2161 DWORD nPalEntries;
2162 SIZEL szlDevice;
2163 SIZEL szlMillimeters;
2164 DWORD cbPixelFormat;
2165 DWORD offPixelFormat;
2166 DWORD bOpenGL;
2167 SIZEL szlMicrometers;
2168 } ENHMETAHEADER, *PENHMETAHEADER, *LPENHMETAHEADER;
2170 typedef struct {
2171 DWORD iType;
2172 DWORD nSize;
2173 DWORD dParm[1];
2174 } ENHMETARECORD, *LPENHMETARECORD;
2176 typedef struct {
2177 DWORD iType;
2178 DWORD nSize;
2179 } EMR, *PEMR;
2181 typedef struct {
2182 POINTL ptlReference;
2183 DWORD nChars;
2184 DWORD offString;
2185 DWORD fOptions;
2186 RECTL rcl;
2187 DWORD offDx;
2188 } EMRTEXT, *PEMRTEXT;
2190 typedef struct {
2191 EMR emr;
2192 } EMRABORTPATH, *PEMRABORTPATH,
2193 EMRBEGINPATH, *PEMRBEGINPATH,
2194 EMRENDPATH, *PEMRENDPATH,
2195 EMRCLOSEFIGURE, *PEMRCLOSEFIGURE,
2196 EMRFLATTENPATH, *PEMRFLATTENPATH,
2197 EMRWIDENPATH, *PEMRWIDENPATH,
2198 EMRSETMETARGN, *PEMRSETMETARGN,
2199 EMRSAVEDC, *PEMRSAVEDC,
2200 EMRREALIZEPALETTE, *PEMRREALIZEPALETTE;
2202 typedef struct {
2203 EMR emr;
2204 POINTL ptlCenter;
2205 DWORD nRadius;
2206 FLOAT eStartAngle;
2207 FLOAT eSweepAngle;
2208 } EMRANGLEARC, *PEMRANGLEARC;
2210 typedef struct {
2211 EMR emr;
2212 RECTL rclBox;
2213 POINTL ptlStart;
2214 POINTL ptlEnd;
2215 } EMRARC, *PEMRARC,
2216 EMRARCTO, *PEMRARCTO,
2217 EMRCHORD, *PEMRCHORD,
2218 EMRPIE, *PEMRPIE;
2220 typedef struct {
2221 EMR emr;
2222 RECTL rclBounds;
2223 LONG xDest;
2224 LONG yDest;
2225 LONG cxDest;
2226 LONG cyDest;
2227 DWORD dwRop;
2228 LONG xSrc;
2229 LONG ySrc;
2230 XFORM xformSrc;
2231 COLORREF crBkColorSrc;
2232 DWORD iUsageSrc;
2233 DWORD offBmiSrc;
2234 DWORD cbBmiSrc;
2235 DWORD offBitsSrc;
2236 DWORD cbBitsSrc;
2237 } EMRBITBLT, *PEMRBITBLT;
2239 typedef struct {
2240 EMR emr;
2241 DWORD ihBrush;
2242 LOGBRUSH32 lb;
2243 } EMRCREATEBRUSHINDIRECT, *PEMRCREATEBRUSHINDIRECT;
2245 typedef struct {
2246 EMR emr;
2247 DWORD ihCS;
2248 LOGCOLORSPACEA lcs;
2249 } EMRCREATECOLORSPACE, *PEMRCREATECOLORSPACE;
2251 typedef struct {
2252 EMR emr;
2253 DWORD ihCS;
2254 LOGCOLORSPACEW lcs;
2255 DWORD dwFlags;
2256 DWORD cbData;
2257 BYTE Data[1];
2258 } EMRCREATECOLORSPACEW, *PEMRCREATECOLORSPACEW;
2260 typedef struct {
2261 EMR emr;
2262 DWORD ihBrush;
2263 DWORD iUsage;
2264 DWORD offBmi;
2265 DWORD cbBmi;
2266 DWORD offBits;
2267 DWORD cbBits;
2268 } EMRCREATEDIBPATTERNBRUSHPT, *PEMRCREATEDIBPATTERNBRUSHPT;
2270 typedef struct {
2271 EMR emr;
2272 DWORD ihBrush;
2273 DWORD iUsage;
2274 DWORD offBmi;
2275 DWORD cbBmi;
2276 DWORD offBits;
2277 DWORD cbBits;
2278 } EMRCREATEMONOBRUSH, *PEMRCREATEMONOBRUSH;
2280 typedef struct {
2281 EMR emr;
2282 DWORD ihPal;
2283 LOGPALETTE lgpl;
2284 } EMRCREATEPALETTE, *PEMRCREATEPALETTE;
2286 typedef struct {
2287 EMR emr;
2288 DWORD ihPen;
2289 LOGPEN lopn;
2290 } EMRCREATEPEN, *PEMRCREATEPEN;
2292 typedef struct {
2293 EMR emr;
2294 DWORD ihCS;
2295 } EMRDELETECOLORSPACE, *PEMRDELETECOLORSPACE,
2296 EMRSELECTCOLORSPACE, *PEMRSELECTCOLORSPACE,
2297 EMRSETCOLORSPACE, *PEMRSETCOLORSPACE;
2299 typedef struct {
2300 EMR emr;
2301 DWORD ihObject;
2302 } EMRDELETEOBJECT, *PEMRDELETEOBJECT,
2303 EMRSELECTOBJECT, *PEMRSELECTOBJECT;
2305 typedef struct {
2306 EMR emr;
2307 RECTL rclBox;
2308 } EMRELLIPSE, *PEMRELLIPSE,
2309 EMRRECTANGLE, *PEMRRECTANGLE;
2311 typedef struct {
2312 EMR emr;
2313 DWORD nPalEntries;
2314 DWORD offPalEntries;
2315 DWORD nSizeLast;
2316 } EMREOF, *PEMREOF;
2318 typedef struct {
2319 EMR emr;
2320 RECTL rclClip;
2321 } EMREXCLUDECLIPRECT, *PEMREXCLUDECLIPRECT,
2322 EMRINTERSECTCLIPRECT, *PEMRINTERSECTCLIPRECT;
2324 typedef struct {
2325 EMR emr;
2326 DWORD ihFont;
2327 EXTLOGFONTW elfw;
2328 } EMREXTCREATEFONTINDIRECTW, *PEMREXTCREATEFONTINDIRECTW;
2330 typedef struct {
2331 EMR emr;
2332 DWORD ihPen;
2333 DWORD offBmi;
2334 DWORD cbBmi;
2335 DWORD offBits;
2336 DWORD cbBits;
2337 EXTLOGPEN elp;
2338 } EMREXTCREATEPEN, *PEMREXTCREATEPEN;
2340 typedef struct {
2341 EMR emr;
2342 POINTL ptlStart;
2343 COLORREF crColor;
2344 DWORD iMode;
2345 } EMREXTFLOODFILL, *PEMREXTFLOODFILL;
2347 typedef struct {
2348 EMR emr;
2349 DWORD cbRgnData;
2350 DWORD iMode;
2351 BYTE RgnData[1];
2352 } EMREXTSELECTCLIPRGN, *PEMREXTSELECTCLIPRGN;
2354 typedef struct {
2355 EMR emr;
2356 RECTL rclBounds;
2357 DWORD iGraphicsMode;
2358 FLOAT exScale;
2359 FLOAT eyScale;
2360 EMRTEXT emrtext;
2361 } EMREXTTEXTOUTA, *PEMREXTTEXTOUTA,
2362 EMREXTTEXTOUTW, *PEMREXTTEXTOUTW;
2364 typedef struct {
2365 EMR emr;
2366 RECTL rclBounds;
2367 } EMRFILLPATH, *PEMRFILLPATH,
2368 EMRSTROKEANDFILLPATH, *PEMRSTROKEANDFILLPATH,
2369 EMRSTROKEPATH, *PEMRSTROKEPATH;
2371 typedef struct {
2372 EMR emr;
2373 RECTL rclBounds;
2374 DWORD cbRgnData;
2375 DWORD ihBrush;
2376 BYTE RgnData[1];
2377 } EMRFILLRGN, *PEMRFILLRGN;
2379 typedef struct {
2380 DWORD dSignature;
2381 DWORD nVersion;
2382 DWORD cbData;
2383 DWORD offData;
2384 } EMRFORMAT, *PEMRFORMAT;
2386 typedef struct {
2387 EMR emr;
2388 RECTL rclBounds;
2389 DWORD cbRgnData;
2390 DWORD ihBrush;
2391 SIZEL szlStroke;
2392 BYTE RgnData[1];
2393 } EMRFRAMERGN, *PEMRFRAMERGN;
2395 typedef struct {
2396 EMR emr;
2397 DWORD cbData;
2398 BYTE Data[1];
2399 } EMRGDICOMMENT, *PEMRGDICOMMENT;
2401 typedef struct {
2402 EMR emr;
2403 RECTL rclBounds;
2404 DWORD nVer;
2405 DWORD nTri;
2406 ULONG ulMode;
2407 TRIVERTEX Ver[1];
2408 } EMRGRADIENTFILL, *PEMRGRADIENTFILL;
2410 typedef struct {
2411 EMR emr;
2412 RECTL rclBounds;
2413 DWORD cbRgnData;
2414 BYTE RgnData[1];
2415 } EMRINVERTRGN, *PEMRINVERTRGN,
2416 EMRPAINTRGN, *PEMRPAINTRGN;
2418 typedef struct {
2419 EMR emr;
2420 POINTL ptl;
2421 } EMRLINETO, *PEMRLINETO,
2422 EMRMOVETOEX, *PEMRMOVETOEX;
2424 typedef struct {
2425 EMR emr;
2426 RECTL rclBounds;
2427 LONG xDest;
2428 LONG yDest;
2429 LONG cxDest;
2430 LONG cyDest;
2431 DWORD dwRop;
2432 LONG xSrc;
2433 LONG ySrc;
2434 XFORM xformSrc;
2435 COLORREF crBkColorSrc;
2436 DWORD iUsageSrc;
2437 DWORD offBmiSrc;
2438 DWORD cbBmiSrc;
2439 DWORD offBitsSrc;
2440 DWORD cbBitsSrc;
2441 LONG xMask;
2442 LONG yMask;
2443 DWORD iUsageMask;
2444 DWORD offBmiMask;
2445 DWORD cbBmiMask;
2446 DWORD offBitsMask;
2447 DWORD cbBitsMask;
2448 } EMRMASKBLT, *PEMRMASKBLT;
2450 typedef struct {
2451 EMR emr;
2452 XFORM xform;
2453 DWORD iMode;
2454 } EMRMODIFYWORLDTRANSFORM, *PEMRMODIFYWORLDTRANSFORM;
2456 typedef struct {
2457 EMR emr;
2458 POINTL ptlOffset;
2459 } EMROFFSETCLIPRGN, *PEMROFFSETCLIPRGN;
2461 typedef struct {
2462 EMR emr;
2463 RECTL rclBounds;
2464 POINTL aptlDest[3];
2465 LONG xSrc;
2466 LONG ySrc;
2467 LONG cxSrc;
2468 LONG cySrc;
2469 XFORM xformSrc;
2470 COLORREF crBkColorSrc;
2471 DWORD iUsageSrc;
2472 DWORD offBmiSrc;
2473 DWORD cbBmiSrc;
2474 DWORD offBitsSrc;
2475 DWORD cbBitsSrc;
2476 LONG xMask;
2477 LONG yMask;
2478 DWORD iUsageMask;
2479 DWORD offBmiMask;
2480 DWORD cbBmiMask;
2481 DWORD offBitsMask;
2482 DWORD cbBitsMask;
2483 } EMRPLGBLT, *PEMRPLGBLT;
2485 typedef struct {
2486 EMR emr;
2487 RECTL rclBounds;
2488 DWORD cptl;
2489 POINTL aptl[1];
2490 } EMRPOLYLINE, *PEMRPOLYLINE,
2491 EMRPOLYBEZIER, *PEMRPOLYBEZIER,
2492 EMRPOLYGON, *PEMRPOLYGON,
2493 EMRPOLYBEZIERTO, *PEMRPOLYBEZIERTO,
2494 EMRPOLYLINETO, *PEMRPOLYLINETO;
2496 typedef struct {
2497 EMR emr;
2498 RECTL rclBounds;
2499 DWORD cpts;
2500 POINTS apts[1];
2501 } EMRPOLYLINE16, *PEMRPOLYLINE16,
2502 EMRPOLYBEZIER16, *PEMRPOLYBEZIER16,
2503 EMRPOLYGON16, *PEMRPOLYGON16,
2504 EMRPOLYBEZIERTO16, *PEMRPOLYBEZIERTO16,
2505 EMRPOLYLINETO16, *PEMRPOLYLINETO16;
2507 typedef struct {
2508 EMR emr;
2509 RECTL rclBounds;
2510 DWORD cpts;
2511 POINTS apts[1];
2512 BYTE abTypes[1];
2513 } EMRPOLYDRAW16, *PEMRPOLYDRAW16;
2515 typedef struct {
2516 EMR emr;
2517 RECTL rclBounds;
2518 DWORD nPolys;
2519 DWORD cpts;
2520 DWORD aPolyCounts[1];
2521 POINTS apts[1];
2522 } EMRPOLYPOLYLINE16, *PEMRPOLYPOLYLINE16,
2523 EMRPOLYPOLYGON16, *PEMRPOLYPOLYGON16;
2525 typedef struct {
2526 EMR emr;
2527 RECTL rclBounds;
2528 DWORD cptl;
2529 POINTL aptl[1];
2530 BYTE abTypes[1];
2531 } EMRPOLYDRAW, *PEMRPOLYDRAW;
2533 typedef struct {
2534 EMR emr;
2535 RECTL rclBounds;
2536 DWORD nPolys;
2537 DWORD cptl;
2538 DWORD aPolyCounts[1];
2539 POINTL aptl[1];
2540 } EMRPOLYPOLYLINE, *PEMRPOLYPOLYLINE,
2541 EMRPOLYPOLYGON, *PEMRPOLYPOLYGON;
2543 typedef struct {
2544 EMR emr;
2545 RECTL rclBounds;
2546 DWORD iGraphicsMode;
2547 FLOAT exScale;
2548 FLOAT eyScale;
2549 LONG cStrings;
2550 EMRTEXT aemrtext[1];
2551 } EMRPOLYTEXTOUTA, *PEMRPOLYTEXTOUTA,
2552 EMRPOLYTEXTOUTW, *PEMRPOLYTEXTOUTW;
2554 typedef struct {
2555 EMR emr;
2556 DWORD ihPal;
2557 DWORD cEntries;
2558 } EMRRESIZEPALETTE, *PEMRRESIZEPALETTE;
2560 typedef struct {
2561 EMR emr;
2562 LONG iRelative;
2563 } EMRRESTOREDC, *PEMRRESTOREDC;
2565 typedef struct {
2566 EMR emr;
2567 RECTL rclBox;
2568 SIZEL szlCorner;
2569 } EMRROUNDRECT, *PEMRROUNDRECT;
2571 typedef struct {
2572 EMR emr;
2573 LONG xNum;
2574 LONG xDenom;
2575 LONG yNum;
2576 LONG yDenom;
2577 } EMRSCALEVIEWPORTEXTEX, *PEMRSCALEVIEWPORTEXTEX,
2578 EMRSCALEWINDOWEXTEX, *PEMRSCALEWINDOWEXTEX;
2580 typedef struct {
2581 EMR emr;
2582 DWORD iMode;
2583 } EMRSELECTCLIPPATH, *PEMRSELECTCLIPPATH,
2584 EMRSETBKMODE, *PEMRSETBKMODE,
2585 EMRSETMAPMODE, *PEMRSETMAPMODE,
2586 EMRSETPOLYFILLMODE, *PEMRSETPOLYFILLMODE,
2587 EMRSETROP2, *PEMRSETROP2,
2588 EMRSETSTRETCHBLTMODE, *PEMRSETSTRETCHBLTMODE,
2589 EMRSETTEXTALIGN, *PEMRSETTEXTALIGN,
2590 EMRSETICMMODE, *PEMRSETICMMODE,
2591 EMRSETLAYOUT, *PEMRSETLAYOUT;
2593 typedef struct {
2594 EMR emr;
2595 DWORD ihPal;
2596 } EMRSELECTPALETTE, *PEMRSELECTPALETTE;
2598 typedef struct {
2599 EMR emr;
2600 DWORD iArcDirection;
2601 } EMRSETARCDIRECTION, *PEMRSETARCDIRECTION;
2603 typedef struct {
2604 EMR emr;
2605 COLORREF crColor;
2606 } EMRSETBKCOLOR, *PEMRSETBKCOLOR,
2607 EMRSETTEXTCOLOR, *PEMRSETTEXTCOLOR;
2609 typedef struct {
2610 EMR emr;
2611 POINTL ptlOrigin;
2612 } EMRSETBRUSHORGEX, *PEMRSETBRUSHORGEX,
2613 EMRSETVIEWPORTORGEX, *PEMRSETVIEWPORTORGEX,
2614 EMRSETWINDOWORGEX, *PEMRSETWINDOWORGEX;
2616 typedef struct {
2617 EMR emr;
2618 COLORADJUSTMENT ColorAdjustment;
2619 } EMRSETCOLORADJUSTMENT, *PEMRSETCOLORADJUSTMENT;
2621 typedef struct {
2622 EMR emr;
2623 RECTL rclBounds;
2624 LONG xDest;
2625 LONG yDest;
2626 LONG xSrc;
2627 LONG ySrc;
2628 LONG cxSrc;
2629 LONG cySrc;
2630 DWORD offBmiSrc;
2631 DWORD cbBmiSrc;
2632 DWORD offBitsSrc;
2633 DWORD cbBitsSrc;
2634 DWORD iUsageSrc;
2635 DWORD iStartScan;
2636 DWORD cScans;
2637 } EMRSETDIBITSTODEVICE, *PEMRSETDIBITSTODEVICE;
2639 typedef struct {
2640 EMR emr;
2641 DWORD dwFlags;
2642 } EMRSETMAPPERFLAGS, *PEMRSETMAPPERFLAGS;
2644 typedef struct {
2645 EMR emr;
2646 FLOAT eMiterLimit;
2647 } EMRSETMITERLIMIT, *PEMRSETMITERLIMIT;
2649 typedef struct {
2650 EMR emr;
2651 DWORD ihPal;
2652 DWORD iStart;
2653 DWORD cEntries;
2654 PALETTEENTRY aPalEntries[1];
2655 } EMRSETPALETTEENTRIES, *PEMRSETPALETTEENTRIES;
2657 typedef struct {
2658 EMR emr;
2659 POINTL ptlPixel;
2660 COLORREF crColor;
2661 } EMRSETPIXELV, *PEMRSETPIXELV;
2663 typedef struct {
2664 EMR emr;
2665 SIZEL szlExtent;
2666 } EMRSETVIEWPORTEXTEX, *PEMRSETVIEWPORTEXTEX,
2667 EMRSETWINDOWEXTEX, *PEMRSETWINDOWEXTEX;
2669 typedef struct {
2670 EMR emr;
2671 XFORM xform;
2672 } EMRSETWORLDTRANSFORM, *PEMRSETWORLDTRANSFORM;
2674 typedef struct {
2675 EMR emr;
2676 RECTL rclBounds;
2677 LONG xDest;
2678 LONG yDest;
2679 LONG cxDest;
2680 LONG cyDest;
2681 DWORD dwRop;
2682 LONG xSrc;
2683 LONG ySrc;
2684 XFORM xformSrc;
2685 COLORREF crBkColorSrc;
2686 DWORD iUsageSrc;
2687 DWORD offBmiSrc;
2688 DWORD cbBmiSrc;
2689 DWORD offBitsSrc;
2690 DWORD cbBitsSrc;
2691 LONG cxSrc;
2692 LONG cySrc;
2693 } EMRSTRETCHBLT, *PEMRSTRETCHBLT;
2695 typedef struct {
2696 EMR emr;
2697 RECTL rclBounds;
2698 LONG xDest;
2699 LONG yDest;
2700 LONG cxDest;
2701 LONG cyDest;
2702 DWORD dwRop;
2703 LONG xSrc;
2704 LONG ySrc;
2705 XFORM xformSrc;
2706 COLORREF crBkColorSrc;
2707 DWORD iUsageSrc;
2708 DWORD offBmiSrc;
2709 DWORD cbBmiSrc;
2710 DWORD offBitsSrc;
2711 DWORD cbBitsSrc;
2712 LONG cxSrc;
2713 LONG cySrc;
2714 } EMRALPHABLEND, *PEMRALPHABLEND;
2716 typedef struct {
2717 EMR emr;
2718 RECTL rclBounds;
2719 LONG xDest;
2720 LONG yDest;
2721 LONG xSrc;
2722 LONG ySrc;
2723 LONG cxSrc;
2724 LONG cySrc;
2725 DWORD offBmiSrc;
2726 DWORD cbBmiSrc;
2727 DWORD offBitsSrc;
2728 DWORD cbBitsSrc;
2729 DWORD iUsageSrc;
2730 DWORD dwRop;
2731 LONG cxDest;
2732 LONG cyDest;
2733 } EMRSTRETCHDIBITS, *PEMRSTRETCHDIBITS;
2735 typedef struct {
2736 EMR emr;
2737 PIXELFORMATDESCRIPTOR pfd;
2738 } EMRPIXELFORMAT, *PEMRPIXELFORMAT;
2740 typedef struct tagEMRGLSRECORD {
2741 EMR emr;
2742 DWORD cbData;
2743 BYTE Data[1];
2744 } EMRGLSRECORD, *PEMRGLSRECORD;
2746 typedef struct {
2747 EMR emr;
2748 RECTL rclBounds;
2749 DWORD cbData;
2750 BYTE Data[1];
2751 } EMRGLSBOUNDEDRECORD, *PEMRGLSBOUNDEDRECORD;
2753 typedef INT (CALLBACK *ENHMFENUMPROC)(HDC, HANDLETABLE *,
2754 const ENHMETARECORD *, INT, LPARAM);
2756 #define EMR_HEADER 1
2757 #define EMR_POLYBEZIER 2
2758 #define EMR_POLYGON 3
2759 #define EMR_POLYLINE 4
2760 #define EMR_POLYBEZIERTO 5
2761 #define EMR_POLYLINETO 6
2762 #define EMR_POLYPOLYLINE 7
2763 #define EMR_POLYPOLYGON 8
2764 #define EMR_SETWINDOWEXTEX 9
2765 #define EMR_SETWINDOWORGEX 10
2766 #define EMR_SETVIEWPORTEXTEX 11
2767 #define EMR_SETVIEWPORTORGEX 12
2768 #define EMR_SETBRUSHORGEX 13
2769 #define EMR_EOF 14
2770 #define EMR_SETPIXELV 15
2771 #define EMR_SETMAPPERFLAGS 16
2772 #define EMR_SETMAPMODE 17
2773 #define EMR_SETBKMODE 18
2774 #define EMR_SETPOLYFILLMODE 19
2775 #define EMR_SETROP2 20
2776 #define EMR_SETSTRETCHBLTMODE 21
2777 #define EMR_SETTEXTALIGN 22
2778 #define EMR_SETCOLORADJUSTMENT 23
2779 #define EMR_SETTEXTCOLOR 24
2780 #define EMR_SETBKCOLOR 25
2781 #define EMR_OFFSETCLIPRGN 26
2782 #define EMR_MOVETOEX 27
2783 #define EMR_SETMETARGN 28
2784 #define EMR_EXCLUDECLIPRECT 29
2785 #define EMR_INTERSECTCLIPRECT 30
2786 #define EMR_SCALEVIEWPORTEXTEX 31
2787 #define EMR_SCALEWINDOWEXTEX 32
2788 #define EMR_SAVEDC 33
2789 #define EMR_RESTOREDC 34
2790 #define EMR_SETWORLDTRANSFORM 35
2791 #define EMR_MODIFYWORLDTRANSFORM 36
2792 #define EMR_SELECTOBJECT 37
2793 #define EMR_CREATEPEN 38
2794 #define EMR_CREATEBRUSHINDIRECT 39
2795 #define EMR_DELETEOBJECT 40
2796 #define EMR_ANGLEARC 41
2797 #define EMR_ELLIPSE 42
2798 #define EMR_RECTANGLE 43
2799 #define EMR_ROUNDRECT 44
2800 #define EMR_ARC 45
2801 #define EMR_CHORD 46
2802 #define EMR_PIE 47
2803 #define EMR_SELECTPALETTE 48
2804 #define EMR_CREATEPALETTE 49
2805 #define EMR_SETPALETTEENTRIES 50
2806 #define EMR_RESIZEPALETTE 51
2807 #define EMR_REALIZEPALETTE 52
2808 #define EMR_EXTFLOODFILL 53
2809 #define EMR_LINETO 54
2810 #define EMR_ARCTO 55
2811 #define EMR_POLYDRAW 56
2812 #define EMR_SETARCDIRECTION 57
2813 #define EMR_SETMITERLIMIT 58
2814 #define EMR_BEGINPATH 59
2815 #define EMR_ENDPATH 60
2816 #define EMR_CLOSEFIGURE 61
2817 #define EMR_FILLPATH 62
2818 #define EMR_STROKEANDFILLPATH 63
2819 #define EMR_STROKEPATH 64
2820 #define EMR_FLATTENPATH 65
2821 #define EMR_WIDENPATH 66
2822 #define EMR_SELECTCLIPPATH 67
2823 #define EMR_ABORTPATH 68
2824 #define EMR_GDICOMMENT 70
2825 #define EMR_FILLRGN 71
2826 #define EMR_FRAMERGN 72
2827 #define EMR_INVERTRGN 73
2828 #define EMR_PAINTRGN 74
2829 #define EMR_EXTSELECTCLIPRGN 75
2830 #define EMR_BITBLT 76
2831 #define EMR_STRETCHBLT 77
2832 #define EMR_MASKBLT 78
2833 #define EMR_PLGBLT 79
2834 #define EMR_SETDIBITSTODEVICE 80
2835 #define EMR_STRETCHDIBITS 81
2836 #define EMR_EXTCREATEFONTINDIRECTW 82
2837 #define EMR_EXTTEXTOUTA 83
2838 #define EMR_EXTTEXTOUTW 84
2839 #define EMR_POLYBEZIER16 85
2840 #define EMR_POLYGON16 86
2841 #define EMR_POLYLINE16 87
2842 #define EMR_POLYBEZIERTO16 88
2843 #define EMR_POLYLINETO16 89
2844 #define EMR_POLYPOLYLINE16 90
2845 #define EMR_POLYPOLYGON16 91
2846 #define EMR_POLYDRAW16 92
2847 #define EMR_CREATEMONOBRUSH 93
2848 #define EMR_CREATEDIBPATTERNBRUSHPT 94
2849 #define EMR_EXTCREATEPEN 95
2850 #define EMR_POLYTEXTOUTA 96
2851 #define EMR_POLYTEXTOUTW 97
2852 #define EMR_SETICMMODE 98
2853 #define EMR_CREATECOLORSPACE 99
2854 #define EMR_SETCOLORSPACE 100
2855 #define EMR_DELETECOLORSPACE 101
2856 #define EMR_GLSRECORD 102
2857 #define EMR_GLSBOUNDEDRECORD 103
2858 #define EMR_PIXELFORMAT 104
2859 #define EMR_DRAWESCAPE 105
2860 #define EMR_EXTESCAPE 106
2861 #define EMR_STARTDOC 107
2862 #define EMR_SMALLTEXTOUT 108
2863 #define EMR_FORCEUFIMAPPING 109
2864 #define EMR_NAMEDESCAPE 110
2865 #define EMR_COLORCORRECTPALETTE 111
2866 #define EMR_SETICMPROFILEA 112
2867 #define EMR_SETICMPROFILEW 113
2868 #define EMR_ALPHABLEND 114
2869 #define EMR_SETLAYOUT 115
2870 #define EMR_TRANSPARENTBLT 116
2871 #define EMR_RESERVED_117 117
2872 #define EMR_GRADIENTFILL 118
2873 #define EMR_SETLINKEDUFI 119
2874 #define EMR_SETTEXTJUSTIFICATION 120
2875 #define EMR_COLORMATCHTOTARGETW 121
2876 #define EMR_CREATECOLORSPACEW 122
2878 #define EMR_MIN 1
2879 #define EMR_MAX 122
2881 #define ENHMETA_SIGNATURE 1179469088
2882 #define ENHMETA_STOCK_OBJECT 0x80000000
2884 #define GDICOMMENT_IDENTIFIER 0x43494447
2885 #define GDICOMMENT_WINDOWS_METAFILE 0x80000001
2886 #define GDICOMMENT_BEGINGROUP 0x00000002
2887 #define GDICOMMENT_ENDGROUP 0x00000003
2888 #define GDICOMMENT_MULTIFORMATS 0x40000004
2889 #define GDICOMMENT_UNICODE_STRING 0x00000040
2890 #define GDICOMMENT_UNICODE_END 0x00000080
2891 #define EPS_SIGNATURE 0x46535045
2893 #define CCHDEVICENAME 32
2894 #define CCHFORMNAME 32
2896 typedef struct
2898 BYTE dmDeviceName[CCHDEVICENAME];
2899 WORD dmSpecVersion;
2900 WORD dmDriverVersion;
2901 WORD dmSize;
2902 WORD dmDriverExtra;
2903 DWORD dmFields;
2904 union {
2905 struct {
2906 short dmOrientation;
2907 short dmPaperSize;
2908 short dmPaperLength;
2909 short dmPaperWidth;
2910 short dmScale;
2911 short dmCopies;
2912 short dmDefaultSource;
2913 short dmPrintQuality;
2914 } DUMMYSTRUCTNAME1;
2915 struct {
2916 POINTL dmPosition;
2917 DWORD dmDisplayOrientation;
2918 DWORD dmDisplayFixedOutput;
2919 } DUMMYSTRUCTNAME2;
2920 } DUMMYUNIONNAME1;
2921 short dmColor;
2922 short dmDuplex;
2923 short dmYResolution;
2924 short dmTTOption;
2925 short dmCollate;
2926 BYTE dmFormName[CCHFORMNAME];
2927 WORD dmLogPixels;
2928 DWORD dmBitsPerPel;
2929 DWORD dmPelsWidth;
2930 DWORD dmPelsHeight;
2931 union {
2932 DWORD dmDisplayFlags;
2933 DWORD dmNup;
2934 } DUMMYUNIONNAME2;
2935 DWORD dmDisplayFrequency;
2936 DWORD dmICMMethod;
2937 DWORD dmICMIntent;
2938 DWORD dmMediaType;
2939 DWORD dmDitherType;
2940 DWORD dmReserved1;
2941 DWORD dmReserved2;
2942 DWORD dmPanningWidth;
2943 DWORD dmPanningHeight;
2944 } DEVMODEA, *PDEVMODEA, *LPDEVMODEA;
2946 typedef struct
2948 WCHAR dmDeviceName[CCHDEVICENAME];
2949 WORD dmSpecVersion;
2950 WORD dmDriverVersion;
2951 WORD dmSize;
2952 WORD dmDriverExtra;
2953 DWORD dmFields;
2954 union {
2955 struct {
2956 short dmOrientation;
2957 short dmPaperSize;
2958 short dmPaperLength;
2959 short dmPaperWidth;
2960 short dmScale;
2961 short dmCopies;
2962 short dmDefaultSource;
2963 short dmPrintQuality;
2964 } DUMMYSTRUCTNAME1;
2965 struct {
2966 POINTL dmPosition;
2967 DWORD dmDisplayOrientation;
2968 DWORD dmDisplayFixedOutput;
2969 } DUMMYSTRUCTNAME2;
2970 } DUMMYUNIONNAME1;
2971 short dmColor;
2972 short dmDuplex;
2973 short dmYResolution;
2974 short dmTTOption;
2975 short dmCollate;
2976 WCHAR dmFormName[CCHFORMNAME];
2977 WORD dmLogPixels;
2978 DWORD dmBitsPerPel;
2979 DWORD dmPelsWidth;
2980 DWORD dmPelsHeight;
2981 union {
2982 DWORD dmDisplayFlags;
2983 DWORD dmNup;
2984 } DUMMYUNIONNAME2;
2985 DWORD dmDisplayFrequency;
2986 DWORD dmICMMethod;
2987 DWORD dmICMIntent;
2988 DWORD dmMediaType;
2989 DWORD dmDitherType;
2990 DWORD dmReserved1;
2991 DWORD dmReserved2;
2992 DWORD dmPanningWidth;
2993 DWORD dmPanningHeight;
2994 } DEVMODEW, *PDEVMODEW, *LPDEVMODEW;
2996 DECL_WINELIB_TYPE_AW(DEVMODE)
2997 DECL_WINELIB_TYPE_AW(PDEVMODE)
2998 DECL_WINELIB_TYPE_AW(LPDEVMODE)
3000 #define DM_SPECVERSION 0x401
3001 #define DM_UPDATE 1
3002 #define DM_COPY 2
3003 #define DM_PROMPT 4
3004 #define DM_MODIFY 8
3006 #define DM_IN_BUFFER DM_MODIFY
3007 #define DM_IN_PROMPT DM_PROMPT
3008 #define DM_OUT_BUFFER DM_COPY
3009 #define DM_OUT_DEFAULT DM_UPDATE
3011 #define DM_ORIENTATION __MSABI_LONG(0x00000001)
3012 #define DM_PAPERSIZE __MSABI_LONG(0x00000002)
3013 #define DM_PAPERLENGTH __MSABI_LONG(0x00000004)
3014 #define DM_PAPERWIDTH __MSABI_LONG(0x00000008)
3015 #define DM_SCALE __MSABI_LONG(0x00000010)
3016 #define DM_POSITION __MSABI_LONG(0x00000020)
3017 #define DM_NUP __MSABI_LONG(0x00000040)
3018 #define DM_DISPLAYORIENTATION __MSABI_LONG(0x00000080)
3019 #define DM_COPIES __MSABI_LONG(0x00000100)
3020 #define DM_DEFAULTSOURCE __MSABI_LONG(0x00000200)
3021 #define DM_PRINTQUALITY __MSABI_LONG(0x00000400)
3022 #define DM_COLOR __MSABI_LONG(0x00000800)
3023 #define DM_DUPLEX __MSABI_LONG(0x00001000)
3024 #define DM_YRESOLUTION __MSABI_LONG(0x00002000)
3025 #define DM_TTOPTION __MSABI_LONG(0x00004000)
3026 #define DM_COLLATE __MSABI_LONG(0x00008000)
3027 #define DM_FORMNAME __MSABI_LONG(0x00010000)
3028 #define DM_LOGPIXELS __MSABI_LONG(0x00020000)
3029 #define DM_BITSPERPEL __MSABI_LONG(0x00040000)
3030 #define DM_PELSWIDTH __MSABI_LONG(0x00080000)
3031 #define DM_PELSHEIGHT __MSABI_LONG(0x00100000)
3032 #define DM_DISPLAYFLAGS __MSABI_LONG(0x00200000)
3033 #define DM_DISPLAYFREQUENCY __MSABI_LONG(0x00400000)
3034 #define DM_ICMMETHOD __MSABI_LONG(0x00800000)
3035 #define DM_ICMINTENT __MSABI_LONG(0x01000000)
3036 #define DM_MEDIATYPE __MSABI_LONG(0x02000000)
3037 #define DM_DITHERTYPE __MSABI_LONG(0x04000000)
3038 #define DM_PANNINGWIDTH __MSABI_LONG(0x08000000)
3039 #define DM_PANNINGHEIGHT __MSABI_LONG(0x10000000)
3040 #define DM_DISPLAYFIXEDOUTPUT __MSABI_LONG(0x20000000)
3042 #define DM_GRAYSCALE 1
3043 #define DM_INTERLACED 2
3044 #define DMDISPLAYFLAGS_TEXTMODE 4
3046 #define DMORIENT_PORTRAIT 1
3047 #define DMORIENT_LANDSCAPE 2
3049 #define DMPAPER_FIRST DMPAPER_LETTER
3050 #define DMPAPER_LETTER 1
3051 #define DMPAPER_LETTERSMALL 2
3052 #define DMPAPER_TABLOID 3
3053 #define DMPAPER_LEDGER 4
3054 #define DMPAPER_LEGAL 5
3055 #define DMPAPER_STATEMENT 6
3056 #define DMPAPER_EXECUTIVE 7
3057 #define DMPAPER_A3 8
3058 #define DMPAPER_A4 9
3059 #define DMPAPER_A4SMALL 10
3060 #define DMPAPER_A5 11
3061 #define DMPAPER_B4 12
3062 #define DMPAPER_B5 13
3063 #define DMPAPER_FOLIO 14
3064 #define DMPAPER_QUARTO 15
3065 #define DMPAPER_10X14 16
3066 #define DMPAPER_11X17 17
3067 #define DMPAPER_NOTE 18
3068 #define DMPAPER_ENV_9 19
3069 #define DMPAPER_ENV_10 20
3070 #define DMPAPER_ENV_11 21
3071 #define DMPAPER_ENV_12 22
3072 #define DMPAPER_ENV_14 23
3073 #define DMPAPER_CSHEET 24
3074 #define DMPAPER_DSHEET 25
3075 #define DMPAPER_ESHEET 26
3076 #define DMPAPER_ENV_DL 27
3077 #define DMPAPER_ENV_C5 28
3078 #define DMPAPER_ENV_C3 29
3079 #define DMPAPER_ENV_C4 30
3080 #define DMPAPER_ENV_C6 31
3081 #define DMPAPER_ENV_C65 32
3082 #define DMPAPER_ENV_B4 33
3083 #define DMPAPER_ENV_B5 34
3084 #define DMPAPER_ENV_B6 35
3085 #define DMPAPER_ENV_ITALY 36
3086 #define DMPAPER_ENV_MONARCH 37
3087 #define DMPAPER_ENV_PERSONAL 38
3088 #define DMPAPER_FANFOLD_US 39
3089 #define DMPAPER_FANFOLD_STD_GERMAN 40
3090 #define DMPAPER_FANFOLD_LGL_GERMAN 41
3091 #define DMPAPER_ISO_B4 42
3092 #define DMPAPER_JAPANESE_POSTCARD 43
3093 #define DMPAPER_9X11 44
3094 #define DMPAPER_10X11 45
3095 #define DMPAPER_15X11 46
3096 #define DMPAPER_ENV_INVITE 47
3097 #define DMPAPER_RESERVED_48 48
3098 #define DMPAPER_RESERVED_49 49
3099 #define DMPAPER_LETTER_EXTRA 50
3100 #define DMPAPER_LEGAL_EXTRA 51
3101 #define DMPAPER_TABLOID_EXTRA 52
3102 #define DMPAPER_A4_EXTRA 53
3103 #define DMPAPER_LETTER_TRANSVERSE 54
3104 #define DMPAPER_A4_TRANSVERSE 55
3105 #define DMPAPER_LETTER_EXTRA_TRANSVERSE 56
3106 #define DMPAPER_A_PLUS 57
3107 #define DMPAPER_B_PLUS 58
3108 #define DMPAPER_LETTER_PLUS 59
3109 #define DMPAPER_A4_PLUS 60
3110 #define DMPAPER_A5_TRANSVERSE 61
3111 #define DMPAPER_B5_TRANSVERSE 62
3112 #define DMPAPER_A3_EXTRA 63
3113 #define DMPAPER_A5_EXTRA 64
3114 #define DMPAPER_B5_EXTRA 65
3115 #define DMPAPER_A2 66
3116 #define DMPAPER_A3_TRANSVERSE 67
3117 #define DMPAPER_A3_EXTRA_TRANSVERSE 68
3118 #define DMPAPER_DBL_JAPANESE_POSTCARD 69
3119 #define DMPAPER_A6 70
3120 #define DMPAPER_JENV_KAKU2 71
3121 #define DMPAPER_JENV_KAKU3 72
3122 #define DMPAPER_JENV_CHOU3 73
3123 #define DMPAPER_JENV_CHOU4 74
3124 #define DMPAPER_LETTER_ROTATED 75
3125 #define DMPAPER_A3_ROTATED 76
3126 #define DMPAPER_A4_ROTATED 77
3127 #define DMPAPER_A5_ROTATED 78
3128 #define DMPAPER_B4_JIS_ROTATED 79
3129 #define DMPAPER_B5_JIS_ROTATED 80
3130 #define DMPAPER_JAPANESE_POSTCARD_ROTATED 81
3131 #define DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED 82
3132 #define DMPAPER_A6_ROTATED 83
3133 #define DMPAPER_JENV_KAKU2_ROTATED 84
3134 #define DMPAPER_JENV_KAKU3_ROTATED 85
3135 #define DMPAPER_JENV_CHOU3_ROTATED 86
3136 #define DMPAPER_JENV_CHOU4_ROTATED 87
3137 #define DMPAPER_B6_JIS 88
3138 #define DMPAPER_B6_JIS_ROTATED 89
3139 #define DMPAPER_12X11 90
3140 #define DMPAPER_JENV_YOU4 91
3141 #define DMPAPER_JENV_YOU4_ROTATED 92
3142 #define DMPAPER_P16K 93
3143 #define DMPAPER_P32K 94
3144 #define DMPAPER_P32KBIG 95
3145 #define DMPAPER_PENV_1 96
3146 #define DMPAPER_PENV_2 97
3147 #define DMPAPER_PENV_3 98
3148 #define DMPAPER_PENV_4 99
3149 #define DMPAPER_PENV_5 100
3150 #define DMPAPER_PENV_6 101
3151 #define DMPAPER_PENV_7 102
3152 #define DMPAPER_PENV_8 103
3153 #define DMPAPER_PENV_9 104
3154 #define DMPAPER_PENV_10 105
3155 #define DMPAPER_P16K_ROTATED 106
3156 #define DMPAPER_P32K_ROTATED 107
3157 #define DMPAPER_P32KBIG_ROTATED 108
3158 #define DMPAPER_PENV_1_ROTATED 109
3159 #define DMPAPER_PENV_2_ROTATED 110
3160 #define DMPAPER_PENV_3_ROTATED 111
3161 #define DMPAPER_PENV_4_ROTATED 112
3162 #define DMPAPER_PENV_5_ROTATED 113
3163 #define DMPAPER_PENV_6_ROTATED 114
3164 #define DMPAPER_PENV_7_ROTATED 115
3165 #define DMPAPER_PENV_8_ROTATED 116
3166 #define DMPAPER_PENV_9_ROTATED 117
3167 #define DMPAPER_PENV_10_ROTATED 118
3169 #define DMPAPER_LAST DMPAPER_PENV_10_ROTATED
3170 #define DMPAPER_USER 256
3172 #define DMBIN_FIRST DMBIN_UPPER
3173 #define DMBIN_UPPER 1
3174 #define DMBIN_ONLYONE 1
3175 #define DMBIN_LOWER 2
3176 #define DMBIN_MIDDLE 3
3177 #define DMBIN_MANUAL 4
3178 #define DMBIN_ENVELOPE 5
3179 #define DMBIN_ENVMANUAL 6
3180 #define DMBIN_AUTO 7
3181 #define DMBIN_TRACTOR 8
3182 #define DMBIN_SMALLFMT 9
3183 #define DMBIN_LARGEFMT 10
3184 #define DMBIN_LARGECAPACITY 11
3185 #define DMBIN_CASSETTE 14
3186 #define DMBIN_FORMSOURCE 15
3187 #define DMBIN_LAST DMBIN_FORMSOURCE
3188 #define DMBIN_USER 256
3190 #define DMRES_DRAFT (-1)
3191 #define DMRES_LOW (-2)
3192 #define DMRES_MEDIUM (-3)
3193 #define DMRES_HIGH (-4)
3195 #define DMCOLOR_MONOCHROME 1
3196 #define DMCOLOR_COLOR 2
3198 #define DMDUP_SIMPLEX 1
3199 #define DMDUP_VERTICAL 2
3200 #define DMDUP_HORIZONTAL 3
3202 #define DMTT_BITMAP 1
3203 #define DMTT_DOWNLOAD 2
3204 #define DMTT_SUBDEV 3
3205 #define DMTT_DOWNLOAD_OUTLINE 4
3207 #define DMCOLLATE_FALSE 0
3208 #define DMCOLLATE_TRUE 1
3210 #define DMICMMETHOD_NONE 1
3211 #define DMICMMETHOD_SYSTEM 2
3212 #define DMICMMETHOD_DRIVER 3
3213 #define DMICMMETHOD_DEVICE 4
3214 #define DMICMMETHOD_USER 256
3216 #define DMICM_SATURATE 1
3217 #define DMICM_CONTRAST 2
3218 #define DMICM_COLORMETRIC 3
3219 #define DMICM_USER 256
3221 #define DMMEDIA_STANDARD 1
3222 #define DMMEDIA_TRANSPARENCY 2
3223 #define DMMEDIA_GLOSSY 3
3224 #define DMMEDIA_USER 256
3226 #define DMDITHER_NONE 1
3227 #define DMDITHER_COARSE 2
3228 #define DMDITHER_FINE 3
3229 #define DMDITHER_LINEART 4
3230 #define DMDITHER_GRAYSCALE 5
3231 #define DMDITHER_USER 256
3233 #define DMDO_DEFAULT 0
3234 #define DMDO_90 1
3235 #define DMDO_180 2
3236 #define DMDO_270 3
3238 #define DMDFO_DEFAULT 0
3239 #define DMDFO_STRETCH 1
3240 #define DMDFO_CENTER 2
3242 typedef struct
3244 INT cbSize;
3245 LPCSTR lpszDocName;
3246 LPCSTR lpszOutput;
3247 LPCSTR lpszDatatype;
3248 DWORD fwType;
3249 } DOCINFOA, *LPDOCINFOA;
3251 typedef struct
3253 INT cbSize;
3254 LPCWSTR lpszDocName;
3255 LPCWSTR lpszOutput;
3256 LPCWSTR lpszDatatype;
3257 DWORD fwType;
3258 } DOCINFOW, *LPDOCINFOW;
3260 DECL_WINELIB_TYPE_AW(DOCINFO)
3261 DECL_WINELIB_TYPE_AW(LPDOCINFO)
3263 #define DI_APPBANDING 0x0001
3265 /* Flags for PolyDraw and GetPath */
3266 #define PT_CLOSEFIGURE 0x0001
3267 #define PT_LINETO 0x0002
3268 #define PT_BEZIERTO 0x0004
3269 #define PT_MOVETO 0x0006
3271 #define RDH_RECTANGLES 1
3273 typedef struct _RGNDATAHEADER {
3274 DWORD dwSize;
3275 DWORD iType;
3276 DWORD nCount;
3277 DWORD nRgnSize;
3278 RECT rcBound;
3279 } RGNDATAHEADER,*PRGNDATAHEADER;
3281 typedef struct _RGNDATA {
3282 RGNDATAHEADER rdh;
3283 char Buffer[1];
3284 } RGNDATA,*PRGNDATA,*LPRGNDATA;
3286 typedef BOOL (CALLBACK *ABORTPROC)(HDC, INT);
3288 typedef enum {
3289 DISPLAYCONFIG_DEVICE_INFO_SET_SOURCE_DPI_SCALE = (int)-4,
3290 DISPLAYCONFIG_DEVICE_INFO_GET_SOURCE_DPI_SCALE = (int)-3,
3291 DISPLAYCONFIG_DEVICE_INFO_GET_SOURCE_NAME = (int)1,
3292 DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_NAME = (int)2,
3293 DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_PREFERRED_MODE = (int)3,
3294 DISPLAYCONFIG_DEVICE_INFO_GET_ADAPTER_NAME = (int)4,
3295 DISPLAYCONFIG_DEVICE_INFO_SET_TARGET_PERSISTENCE = (int)5,
3296 DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_BASE_TYPE = (int)6,
3297 DISPLAYCONFIG_DEVICE_INFO_GET_SUPPORT_VIRTUAL_RESOLUTION = (int)7,
3298 DISPLAYCONFIG_DEVICE_INFO_SET_SUPPORT_VIRTUAL_RESOLUTION = (int)8,
3299 DISPLAYCONFIG_DEVICE_INFO_GET_ADVANCED_COLOR_INFO = (int)9,
3300 DISPLAYCONFIG_DEVICE_INFO_SET_ADVANCED_COLOR_STATE = (int)10,
3301 DISPLAYCONFIG_DEVICE_INFO_GET_SDR_WHITE_LEVEL = (int)11,
3302 DISPLAYCONFIG_DEVICE_INFO_FORCE_UINT32 = (int)0xffffffff
3303 } DISPLAYCONFIG_DEVICE_INFO_TYPE;
3305 typedef struct DISPLAYCONFIG_DEVICE_INFO_HEADER {
3306 DISPLAYCONFIG_DEVICE_INFO_TYPE type;
3307 UINT32 size;
3308 LUID adapterId;
3309 UINT32 id;
3310 } DISPLAYCONFIG_DEVICE_INFO_HEADER;
3312 typedef struct {
3313 DWORD cb;
3314 CHAR DeviceName[32];
3315 CHAR DeviceString[128];
3316 DWORD StateFlags;
3317 CHAR DeviceID[128];
3318 CHAR DeviceKey[128];
3319 } DISPLAY_DEVICEA,*PDISPLAY_DEVICEA,*LPDISPLAY_DEVICEA;
3321 typedef struct {
3322 DWORD cb;
3323 WCHAR DeviceName[32];
3324 WCHAR DeviceString[128];
3325 DWORD StateFlags;
3326 WCHAR DeviceID[128];
3327 WCHAR DeviceKey[128];
3328 } DISPLAY_DEVICEW,*PDISPLAY_DEVICEW,*LPDISPLAY_DEVICEW;
3329 DECL_WINELIB_TYPE_AW(DISPLAY_DEVICE)
3330 DECL_WINELIB_TYPE_AW(PDISPLAY_DEVICE)
3331 DECL_WINELIB_TYPE_AW(LPDISPLAY_DEVICE)
3333 /* DISPLAY_DEVICE.StateFlags for adapters */
3334 #define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP 0x00000001
3335 #define DISPLAY_DEVICE_MULTI_DRIVER 0x00000002
3336 #define DISPLAY_DEVICE_PRIMARY_DEVICE 0x00000004
3337 #define DISPLAY_DEVICE_MIRRORING_DRIVER 0x00000008
3338 #define DISPLAY_DEVICE_VGA_COMPATIBLE 0x00000010
3339 #define DISPLAY_DEVICE_REMOVABLE 0x00000020
3340 #define DISPLAY_DEVICE_ACC_DRIVER 0x00000040
3341 #define DISPLAY_DEVICE_UNSAFE_MODES_ON 0x00080000
3342 #define DISPLAY_DEVICE_TS_COMPATIBLE 0x00200000
3343 #define DISPLAY_DEVICE_RDPUDD 0x01000000
3344 #define DISPLAY_DEVICE_DISCONNECT 0x02000000
3345 #define DISPLAY_DEVICE_REMOTE 0x04000000
3346 #define DISPLAY_DEVICE_MODESPRUNED 0x08000000
3348 /* DISPLAY_DEVICE.StateFlags for monitors */
3349 #define DISPLAY_DEVICE_ACTIVE 0x00000001
3350 #define DISPLAY_DEVICE_ATTACHED 0x00000002
3352 typedef struct DISPLAYCONFIG_DESKTOP_IMAGE_INFO
3354 POINTL PathSourceSize;
3355 RECTL DesktopImageRegion;
3356 RECTL DesktopImageClip;
3357 } DISPLAYCONFIG_DESKTOP_IMAGE_INFO;
3359 typedef enum
3361 DISPLAYCONFIG_MODE_INFO_TYPE_SOURCE = 1,
3362 DISPLAYCONFIG_MODE_INFO_TYPE_TARGET = 2,
3363 DISPLAYCONFIG_MODE_INFO_TYPE_DESKTOP_IMAGE = 3,
3364 DISPLAYCONFIG_MODE_INFO_TYPE_FORCE_UINT32 = 0xffffffff
3365 } DISPLAYCONFIG_MODE_INFO_TYPE;
3367 typedef enum
3369 DISPLAYCONFIG_PIXELFORMAT_8BPP = 1,
3370 DISPLAYCONFIG_PIXELFORMAT_16BPP = 2,
3371 DISPLAYCONFIG_PIXELFORMAT_24BPP = 3,
3372 DISPLAYCONFIG_PIXELFORMAT_32BPP = 4,
3373 DISPLAYCONFIG_PIXELFORMAT_NONGDI = 5,
3374 DISPLAYCONFIG_PIXELFORMAT_FORCE_UINT32 = 0xffffffff
3375 } DISPLAYCONFIG_PIXELFORMAT;
3377 typedef enum
3379 DISPLAYCONFIG_ROTATION_IDENTITY = 1,
3380 DISPLAYCONFIG_ROTATION_ROTATE90 = 2,
3381 DISPLAYCONFIG_ROTATION_ROTATE180 = 3,
3382 DISPLAYCONFIG_ROTATION_ROTATE270 = 4,
3383 DISPLAYCONFIG_ROTATION_FORCE_UINT32 = 0xffffffff
3384 } DISPLAYCONFIG_ROTATION;
3386 typedef enum
3388 DISPLAYCONFIG_SCALING_IDENTITY = 1,
3389 DISPLAYCONFIG_SCALING_CENTERED = 2,
3390 DISPLAYCONFIG_SCALING_STRETCHED = 3,
3391 DISPLAYCONFIG_SCALING_ASPECTRATIOCENTEREDMAX = 4,
3392 DISPLAYCONFIG_SCALING_CUSTOM = 5,
3393 DISPLAYCONFIG_SCALING_PREFERRED = 128,
3394 DISPLAYCONFIG_SCALING_FORCE_UINT32 = 0xffffffff
3395 } DISPLAYCONFIG_SCALING;
3397 typedef enum
3399 DISPLAYCONFIG_SCANLINE_ORDERING_UNSPECIFIED = 0,
3400 DISPLAYCONFIG_SCANLINE_ORDERING_PROGRESSIVE = 1,
3401 DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED = 2,
3402 DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_UPPERFIELDFIRST = DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED,
3403 DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_LOWERFIELDFIRST = 3,
3404 DISPLAYCONFIG_SCANLINE_ORDERING_FORCE_UINT32 = 0xffffffff
3405 } DISPLAYCONFIG_SCANLINE_ORDERING;
3407 typedef enum
3409 DISPLAYCONFIG_TOPOLOGY_INTERNAL = 0x00000001,
3410 DISPLAYCONFIG_TOPOLOGY_CLONE = 0x00000002,
3411 DISPLAYCONFIG_TOPOLOGY_EXTEND = 0x00000004,
3412 DISPLAYCONFIG_TOPOLOGY_EXTERNAL = 0x00000008,
3413 DISPLAYCONFIG_TOPOLOGY_FORCE_UINT32 = 0xffffffff
3414 } DISPLAYCONFIG_TOPOLOGY_ID;
3416 typedef enum
3418 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_OTHER = (int) -1,
3419 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HD15 = (int) 0,
3420 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SVIDEO = (int) 1,
3421 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_COMPOSITE_VIDEO = (int) 2,
3422 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_COMPONENT_VIDEO = (int) 3,
3423 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DVI = (int) 4,
3424 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HDMI = (int) 5,
3425 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_LVDS = (int) 6,
3426 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_D_JPN = (int) 8,
3427 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDI = (int) 9,
3428 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EXTERNAL = (int) 10,
3429 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EMBEDDED = (int) 11,
3430 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EXTERNAL = (int) 12,
3431 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EMBEDDED = (int) 13,
3432 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDTVDONGLE = (int) 14,
3433 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_MIRACAST = (int) 15,
3434 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL = (int) 0x80000000,
3435 DISPLAYCONFIG_OUTPUT_TECHNOLOGY_FORCE_UINT32 = (int) 0xffffffff
3436 } DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY;
3438 typedef enum
3440 DISPLAYCONFIG_COLOR_ENCODING_RGB = 0,
3441 DISPLAYCONFIG_COLOR_ENCODING_YCBCR444 = 1,
3442 DISPLAYCONFIG_COLOR_ENCODING_YCBCR422 = 2,
3443 DISPLAYCONFIG_COLOR_ENCODING_YCBCR420 = 3,
3444 DISPLAYCONFIG_COLOR_ENCODING_INTENSITY = 4,
3445 DISPLAYCONFIG_COLOR_ENCODING_FORCE_UINT32 = 0xffffffff
3446 } DISPLAYCONFIG_COLOR_ENCODING;
3448 typedef struct DISPLAYCONFIG_2DREGION
3450 UINT32 cx;
3451 UINT32 cy;
3452 } DISPLAYCONFIG_2DREGION;
3454 typedef struct DISPLAYCONFIG_RATIONAL
3456 UINT32 Numerator;
3457 UINT32 Denominator;
3458 } DISPLAYCONFIG_RATIONAL;
3460 typedef struct DISPLAYCONFIG_PATH_SOURCE_INFO
3462 LUID adapterId;
3463 UINT32 id;
3464 union {
3465 UINT32 modeInfoIdx;
3466 struct {
3467 UINT32 cloneGroupId :16;
3468 UINT32 sourceModeInfoIdx :16;
3469 } DUMMYSTRUCTNAME;
3470 } DUMMYUNIONNAME;
3471 UINT32 statusFlags;
3472 } DISPLAYCONFIG_PATH_SOURCE_INFO;
3474 typedef struct DISPLAYCONFIG_SOURCE_MODE
3476 UINT32 width;
3477 UINT32 height;
3478 DISPLAYCONFIG_PIXELFORMAT pixelFormat;
3479 POINTL position;
3480 } DISPLAYCONFIG_SOURCE_MODE;
3482 typedef struct DISPLAYCONFIG_VIDEO_SIGNAL_INFO
3484 UINT64 pixelRate;
3485 DISPLAYCONFIG_RATIONAL hSyncFreq;
3486 DISPLAYCONFIG_RATIONAL vSyncFreq;
3487 DISPLAYCONFIG_2DREGION activeSize;
3488 DISPLAYCONFIG_2DREGION totalSize;
3489 union {
3490 struct {
3491 UINT32 videoStandard :16;
3492 UINT32 vSyncFreqDivider :6;
3493 UINT32 reserved :10;
3494 } AdditionalSignalInfo;
3495 UINT32 videoStandard;
3496 } DUMMYUNIONNAME;
3497 DISPLAYCONFIG_SCANLINE_ORDERING scanLineOrdering;
3498 } DISPLAYCONFIG_VIDEO_SIGNAL_INFO;
3500 typedef struct DISPLAYCONFIG_PATH_TARGET_INFO
3502 LUID adapterId;
3503 UINT32 id;
3504 union {
3505 UINT32 modeInfoIdx;
3506 struct {
3507 UINT32 desktopModeInfoIdx :16;
3508 UINT32 targetModeInfoIdx :16;
3509 } DUMMYSTRUCTNAME;
3510 } DUMMYUNIONNAME;
3511 DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY outputTechnology;
3512 DISPLAYCONFIG_ROTATION rotation;
3513 DISPLAYCONFIG_SCALING scaling;
3514 DISPLAYCONFIG_RATIONAL refreshRate;
3515 DISPLAYCONFIG_SCANLINE_ORDERING scanLineOrdering;
3516 BOOL targetAvailable;
3517 UINT32 statusFlags;
3518 } DISPLAYCONFIG_PATH_TARGET_INFO;
3520 typedef struct DISPLAYCONFIG_TARGET_MODE
3522 DISPLAYCONFIG_VIDEO_SIGNAL_INFO targetVideoSignalInfo;
3523 } DISPLAYCONFIG_TARGET_MODE;
3525 typedef struct DISPLAYCONFIG_PATH_INFO
3527 DISPLAYCONFIG_PATH_SOURCE_INFO sourceInfo;
3528 DISPLAYCONFIG_PATH_TARGET_INFO targetInfo;
3529 UINT32 flags;
3530 } DISPLAYCONFIG_PATH_INFO;
3532 typedef struct DISPLAYCONFIG_MODE_INFO
3534 DISPLAYCONFIG_MODE_INFO_TYPE infoType;
3535 UINT32 id;
3536 LUID adapterId;
3537 union {
3538 DISPLAYCONFIG_TARGET_MODE targetMode;
3539 DISPLAYCONFIG_SOURCE_MODE sourceMode;
3540 DISPLAYCONFIG_DESKTOP_IMAGE_INFO desktopImageInfo;
3541 } DUMMYUNIONNAME;
3542 } DISPLAYCONFIG_MODE_INFO;
3544 typedef struct DISPLAYCONFIG_SOURCE_DEVICE_NAME {
3545 DISPLAYCONFIG_DEVICE_INFO_HEADER header;
3546 WCHAR viewGdiDeviceName[CCHDEVICENAME];
3547 } DISPLAYCONFIG_SOURCE_DEVICE_NAME;
3549 typedef struct DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS {
3550 union {
3551 struct {
3552 UINT32 friendlyNameFromEdid :1;
3553 UINT32 friendlyNameForced :1;
3554 UINT32 edidIdsValid :1;
3555 UINT32 reserved :29;
3556 } DUMMYSTRUCTNAME;
3557 UINT32 value;
3558 } DUMMYUNIONNAME;
3559 } DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS;
3561 typedef struct DISPLAYCONFIG_TARGET_DEVICE_NAME {
3562 DISPLAYCONFIG_DEVICE_INFO_HEADER header;
3563 DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS flags;
3564 DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY outputTechnology;
3565 UINT16 edidManufactureId;
3566 UINT16 edidProductCodeId;
3567 UINT32 connectorInstance;
3568 WCHAR monitorFriendlyDeviceName[64];
3569 WCHAR monitorDevicePath[128];
3570 } DISPLAYCONFIG_TARGET_DEVICE_NAME;
3572 typedef struct DISPLAYCONFIG_TARGET_PREFERRED_MODE {
3573 DISPLAYCONFIG_DEVICE_INFO_HEADER header;
3574 UINT32 width;
3575 UINT32 height;
3576 DISPLAYCONFIG_TARGET_MODE targetMode;
3577 } DISPLAYCONFIG_TARGET_PREFERRED_MODE;
3579 typedef struct DISPLAYCONFIG_ADAPTER_NAME {
3580 DISPLAYCONFIG_DEVICE_INFO_HEADER header;
3581 WCHAR adapterDevicePath[128];
3582 } DISPLAYCONFIG_ADAPTER_NAME;
3584 typedef struct DISPLAYCONFIG_SET_TARGET_PERSISTENCE {
3585 DISPLAYCONFIG_DEVICE_INFO_HEADER header;
3586 union {
3587 struct {
3588 UINT32 bootPersistenceOn :1;
3589 UINT32 reserved :31;
3590 } DUMMYSTRUCTNAME;
3591 UINT32 value;
3592 } DUMMYUNIONNAME;
3593 } DISPLAYCONFIG_SET_TARGET_PERSISTENCE;
3595 typedef struct DISPLAYCONFIG_TARGET_BASE_TYPE {
3596 DISPLAYCONFIG_DEVICE_INFO_HEADER header;
3597 DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY baseOutputTechnology;
3598 } DISPLAYCONFIG_TARGET_BASE_TYPE;
3600 typedef struct DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION {
3601 DISPLAYCONFIG_DEVICE_INFO_HEADER header;
3602 union {
3603 struct {
3604 UINT32 disableMonitorVirtualResolution :1;
3605 UINT32 reserved :31;
3606 } DUMMYSTRUCTNAME;
3607 UINT32 value;
3608 } DUMMYUNIONNAME;
3609 } DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION;
3611 typedef struct DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO {
3612 DISPLAYCONFIG_DEVICE_INFO_HEADER header;
3613 union {
3614 struct {
3615 UINT32 advancedColorSupported :1;
3616 UINT32 advancedColorEnabled :1;
3617 UINT32 wideColorEnforced :1;
3618 UINT32 advancedColorForceDisabled :1;
3619 UINT32 reserved :28;
3620 } DUMMYSTRUCTNAME;
3621 UINT32 value;
3622 } DUMMYUNIONNAME;
3623 DISPLAYCONFIG_COLOR_ENCODING colorEncoding;
3624 UINT32 bitsPerColorChannel;
3625 } DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO;
3627 typedef struct DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE {
3628 DISPLAYCONFIG_DEVICE_INFO_HEADER header;
3629 union {
3630 struct {
3631 UINT32 enableAdvancedColor :1;
3632 UINT32 reserved :31;
3633 } DUMMYSTRUCTNAME;
3634 UINT32 value;
3635 } DUMMYUNIONNAME;
3636 } DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE;
3638 typedef struct DISPLAYCONFIG_SDR_WHITE_LEVEL {
3639 DISPLAYCONFIG_DEVICE_INFO_HEADER header;
3640 ULONG SDRWhiteLevel;
3641 } DISPLAYCONFIG_SDR_WHITE_LEVEL;
3643 /* Scale steps are relative to the recommended scale. For example:
3644 * Scale : 100% 125% 150% 175% 200% 225% 250% 300% 350% 400% 450% 500%
3645 * DPI : 96 120 144 168 192 216 240 288 336 384 432 480
3646 * ^ ^ ^ ^
3647 * | | Recommended scale, step is 0. |
3648 * | Current scale, step is -2. Max scale step is 6.
3649 * Minimum scale, step is -4.
3651 * The scale values can be found in the display settings drop-down. The algorithm to calculate the
3652 * recommended scale is unclear.
3654 typedef struct DISPLAYCONFIG_GET_SOURCE_DPI_SCALE
3656 DISPLAYCONFIG_DEVICE_INFO_HEADER header;
3657 int minRelativeScaleStep; /* Minimum scale step relative to the recommended scale */
3658 int curRelativeScaleStep; /* Current scale step relative to the recommended scale */
3659 int maxRelativeScaleStep; /* Maximum scale step relative to the recommended scale */
3660 } DISPLAYCONFIG_GET_SOURCE_DPI_SCALE;
3662 typedef struct DISPLAYCONFIG_SET_SOURCE_DPI_SCALE
3664 DISPLAYCONFIG_DEVICE_INFO_HEADER header;
3665 int relativeScaleStep; /* Target scale step relative to the recommended scale */
3666 } DISPLAYCONFIG_SET_SOURCE_DPI_SCALE;
3668 #define DISPLAYCONFIG_PATH_MODE_IDX_INVALID 0xffffffff
3669 #define DISPLAYCONFIG_PATH_TARGET_MODE_IDX_INVALID 0xffff
3670 #define DISPLAYCONFIG_PATH_DESKTOP_IMAGE_IDX_INVALID 0xffff
3671 #define DISPLAYCONFIG_PATH_SOURCE_MODE_IDX_INVALID 0xffff
3672 #define DISPLAYCONFIG_PATH_CLONE_GROUP_INVALID 0xffff
3674 #define DISPLAYCONFIG_SOURCE_IN_USE 0x00000001
3676 #define DISPLAYCONFIG_TARGET_IN_USE 0x00000001
3677 #define DISPLAYCONFIG_TARGET_FORCIBLE 0x00000002
3678 #define DISPLAYCONFIG_TARGET_FORCED_AVAILABILITY_BOOT 0x00000004
3679 #define DISPLAYCONFIG_TARGET_FORCED_AVAILABILITY_PATH 0x00000008
3680 #define DISPLAYCONFIG_TARGET_FORCED_AVAILABILITY_SYSTEM 0x00000010
3681 #define DISPLAYCONFIG_TARGET_IS_HMD 0x00000020
3683 #define DISPLAYCONFIG_PATH_ACTIVE 0x00000001
3684 #define DISPLAYCONFIG_PATH_SUPPORT_VIRTUAL_MODE 0x00000008
3686 /* For GetDisplayConfigBufferSizes */
3687 #define QDC_ALL_PATHS 0x00000001
3688 #define QDC_ONLY_ACTIVE_PATHS 0x00000002
3689 #define QDC_DATABASE_CURRENT 0x00000004
3690 #define QDC_VIRTUAL_MODE_AWARE 0x00000010
3691 #define QDC_INCLUDE_HMD 0x00000020
3693 #define GDI_ERROR (~0u)
3694 #define HGDI_ERROR ((HANDLE)~(ULONG_PTR)0)
3696 /* AddFontResourceEx flags */
3697 #define FR_PRIVATE 0x10
3698 #define FR_NOT_ENUM 0x20
3700 /* Mirroring flags */
3701 #define LAYOUT_LTR 0x00000000
3702 #define LAYOUT_RTL 0x00000001
3703 #define LAYOUT_BITMAPORIENTATIONPRESERVED 0x00000008
3704 #define NOMIRRORBITMAP 0x80000000
3706 /* For DRAWPATTERNRECT Escape */
3707 typedef struct _DRAWPATRECT
3709 POINT ptPosition;
3710 POINT ptSize;
3711 WORD wStyle;
3712 WORD wPattern;
3713 } DRAWPATRECT, *PDRAWPATRECT;
3715 typedef struct tagWCRANGE {
3716 WCHAR wcLow;
3717 USHORT cGlyphs;
3718 } WCRANGE, *PWCRANGE, *LPWCRANGE;
3720 typedef struct tagGLYPHSET {
3721 DWORD cbThis;
3722 DWORD flAccel;
3723 DWORD cGlyphsSupported;
3724 DWORD cRanges;
3725 WCRANGE ranges[1];
3726 } GLYPHSET, *PGLYPHSET, *LPGLYPHSET;
3728 #define GS_8BIT_INDICES 0x00000001
3730 WINGDIAPI INT WINAPI AbortDoc(HDC);
3731 WINGDIAPI BOOL WINAPI AbortPath(HDC);
3732 WINGDIAPI INT WINAPI AddFontResourceA(LPCSTR);
3733 WINGDIAPI INT WINAPI AddFontResourceW(LPCWSTR);
3734 #define AddFontResource WINELIB_NAME_AW(AddFontResource)
3735 WINGDIAPI INT WINAPI AddFontResourceExA(LPCSTR, DWORD, PVOID);
3736 WINGDIAPI INT WINAPI AddFontResourceExW(LPCWSTR, DWORD, PVOID);
3737 #define AddFontResourceEx WINELIB_NAME_AW(AddFontResourceEx)
3738 WINGDIAPI HANDLE WINAPI AddFontMemResourceEx(PVOID, DWORD, PVOID, DWORD *);
3739 WINGDIAPI BOOL WINAPI AlphaBlend(HDC,int,int,int,int,HDC,int,int,int,int,BLENDFUNCTION);
3740 WINGDIAPI BOOL WINAPI AngleArc(HDC, INT, INT, DWORD, FLOAT, FLOAT);
3741 WINGDIAPI BOOL WINAPI AnimatePalette(HPALETTE,UINT,UINT,const PALETTEENTRY*);
3742 WINGDIAPI BOOL WINAPI Arc(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
3743 WINGDIAPI BOOL WINAPI ArcTo(HDC, INT, INT, INT, INT, INT, INT, INT, INT);
3744 WINGDIAPI BOOL WINAPI BeginPath(HDC);
3745 WINGDIAPI BOOL WINAPI BitBlt(HDC,INT,INT,INT,INT,HDC,INT,INT,DWORD);
3746 WINGDIAPI INT WINAPI ChoosePixelFormat(HDC,const PIXELFORMATDESCRIPTOR*);
3747 WINGDIAPI BOOL WINAPI Chord(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
3748 WINGDIAPI HENHMETAFILE WINAPI CloseEnhMetaFile(HDC);
3749 WINGDIAPI BOOL WINAPI CloseFigure(HDC);
3750 WINGDIAPI HMETAFILE WINAPI CloseMetaFile(HDC);
3751 WINGDIAPI INT WINAPI CombineRgn(HRGN,HRGN,HRGN,INT);
3752 WINGDIAPI BOOL WINAPI CombineTransform(LPXFORM,const XFORM *,const XFORM *);
3753 WINGDIAPI HENHMETAFILE WINAPI CopyEnhMetaFileA(HENHMETAFILE,LPCSTR);
3754 WINGDIAPI HENHMETAFILE WINAPI CopyEnhMetaFileW(HENHMETAFILE,LPCWSTR);
3755 #define CopyEnhMetaFile WINELIB_NAME_AW(CopyEnhMetaFile)
3756 WINGDIAPI HMETAFILE WINAPI CopyMetaFileA(HMETAFILE,LPCSTR);
3757 WINGDIAPI HMETAFILE WINAPI CopyMetaFileW(HMETAFILE,LPCWSTR);
3758 #define CopyMetaFile WINELIB_NAME_AW(CopyMetaFile)
3759 WINGDIAPI HBITMAP WINAPI CreateBitmap(INT,INT,UINT,UINT,LPCVOID);
3760 WINGDIAPI HBITMAP WINAPI CreateBitmapIndirect(const BITMAP*);
3761 WINGDIAPI HBRUSH WINAPI CreateBrushIndirect(const LOGBRUSH*);
3762 WINGDIAPI HCOLORSPACE WINAPI CreateColorSpaceA(LPLOGCOLORSPACEA);
3763 WINGDIAPI HCOLORSPACE WINAPI CreateColorSpaceW(LPLOGCOLORSPACEW);
3764 #define CreateColorSpace WINELIB_NAME_AW(CreateColorSpace)
3765 WINGDIAPI HBITMAP WINAPI CreateCompatibleBitmap(HDC,INT,INT);
3766 WINGDIAPI HDC WINAPI CreateCompatibleDC(HDC);
3767 WINGDIAPI HDC WINAPI CreateDCA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
3768 WINGDIAPI HDC WINAPI CreateDCW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*);
3769 #define CreateDC WINELIB_NAME_AW(CreateDC)
3770 WINGDIAPI HBITMAP WINAPI CreateDIBitmap(HDC,const BITMAPINFOHEADER*,DWORD,LPCVOID,const BITMAPINFO*,UINT);
3771 WINGDIAPI HBRUSH WINAPI CreateDIBPatternBrush(HGLOBAL,UINT);
3772 WINGDIAPI HBRUSH WINAPI CreateDIBPatternBrushPt(const void*,UINT);
3773 WINGDIAPI HBITMAP WINAPI CreateDIBSection(HDC, const BITMAPINFO *, UINT, void **, HANDLE, DWORD offset);
3774 WINGDIAPI HBITMAP WINAPI CreateDiscardableBitmap(HDC,INT,INT);
3775 WINGDIAPI HRGN WINAPI CreateEllipticRgn(INT,INT,INT,INT);
3776 WINGDIAPI HRGN WINAPI CreateEllipticRgnIndirect(const RECT *);
3777 WINGDIAPI HDC WINAPI CreateEnhMetaFileA(HDC,LPCSTR,const RECT*,LPCSTR);
3778 WINGDIAPI HDC WINAPI CreateEnhMetaFileW(HDC,LPCWSTR,const RECT*,LPCWSTR);
3779 #define CreateEnhMetaFile WINELIB_NAME_AW(CreateEnhMetaFile)
3780 WINGDIAPI HFONT WINAPI CreateFontA(INT,INT,INT,INT,INT,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCSTR);
3781 WINGDIAPI HFONT WINAPI CreateFontW(INT,INT,INT,INT,INT,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCWSTR);
3782 #define CreateFont WINELIB_NAME_AW(CreateFont)
3783 WINGDIAPI HFONT WINAPI CreateFontIndirectA(const LOGFONTA*);
3784 WINGDIAPI HFONT WINAPI CreateFontIndirectW(const LOGFONTW*);
3785 #define CreateFontIndirect WINELIB_NAME_AW(CreateFontIndirect)
3786 WINGDIAPI HFONT WINAPI CreateFontIndirectExA(const ENUMLOGFONTEXDVA*);
3787 WINGDIAPI HFONT WINAPI CreateFontIndirectExW(const ENUMLOGFONTEXDVW*);
3788 #define CreateFontIndirectEx WINELIB_NAME_AW(CreateFontIndirectEx)
3789 WINGDIAPI HPALETTE WINAPI CreateHalftonePalette(HDC);
3790 WINGDIAPI HBRUSH WINAPI CreateHatchBrush(INT,COLORREF);
3791 WINGDIAPI HDC WINAPI CreateICA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
3792 WINGDIAPI HDC WINAPI CreateICW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*);
3793 #define CreateIC WINELIB_NAME_AW(CreateIC)
3794 WINGDIAPI HDC WINAPI CreateMetaFileA(LPCSTR);
3795 WINGDIAPI HDC WINAPI CreateMetaFileW(LPCWSTR);
3796 #define CreateMetaFile WINELIB_NAME_AW(CreateMetaFile)
3797 WINGDIAPI HPALETTE WINAPI CreatePalette(const LOGPALETTE*);
3798 WINGDIAPI HBRUSH WINAPI CreatePatternBrush(HBITMAP);
3799 WINGDIAPI HPEN WINAPI CreatePen(INT,INT,COLORREF);
3800 WINGDIAPI HPEN WINAPI CreatePenIndirect(const LOGPEN*);
3801 WINGDIAPI HRGN WINAPI CreatePolyPolygonRgn(const POINT*,const INT*,INT,INT);
3802 WINGDIAPI HRGN WINAPI CreatePolygonRgn(const POINT*,INT,INT);
3803 WINGDIAPI HRGN WINAPI CreateRectRgn(INT,INT,INT,INT);
3804 WINGDIAPI HRGN WINAPI CreateRectRgnIndirect(const RECT*);
3805 WINGDIAPI HRGN WINAPI CreateRoundRectRgn(INT,INT,INT,INT,INT,INT);
3806 WINGDIAPI BOOL WINAPI CreateScalableFontResourceA(DWORD,LPCSTR,LPCSTR,LPCSTR);
3807 WINGDIAPI BOOL WINAPI CreateScalableFontResourceW(DWORD,LPCWSTR,LPCWSTR,LPCWSTR);
3808 #define CreateScalableFontResource WINELIB_NAME_AW(CreateScalableFontResource)
3809 WINGDIAPI HBRUSH WINAPI CreateSolidBrush(COLORREF);
3810 WINGDIAPI BOOL WINAPI DPtoLP(HDC,LPPOINT,INT);
3811 WINGDIAPI BOOL WINAPI DeleteColorSpace(HCOLORSPACE);
3812 WINGDIAPI BOOL WINAPI DeleteDC(HDC);
3813 WINGDIAPI BOOL WINAPI DeleteEnhMetaFile(HENHMETAFILE);
3814 WINGDIAPI BOOL WINAPI DeleteMetaFile(HMETAFILE);
3815 WINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ);
3816 WINGDIAPI INT WINAPI DescribePixelFormat(HDC,int,UINT,LPPIXELFORMATDESCRIPTOR);
3817 WINGDIAPI INT WINAPI DrawEscape(HDC,INT,INT,LPCSTR);
3818 WINGDIAPI BOOL WINAPI Ellipse(HDC,INT,INT,INT,INT);
3819 WINGDIAPI INT WINAPI EndDoc(HDC);
3820 WINGDIAPI BOOL WINAPI EndPath(HDC);
3821 WINGDIAPI BOOL WINAPI EnumEnhMetaFile(HDC,HENHMETAFILE,ENHMFENUMPROC,LPVOID,const RECT*);
3822 WINGDIAPI INT WINAPI EnumFontFamiliesA(HDC,LPCSTR,FONTENUMPROCA,LPARAM);
3823 WINGDIAPI INT WINAPI EnumFontFamiliesW(HDC,LPCWSTR,FONTENUMPROCW,LPARAM);
3824 #define EnumFontFamilies WINELIB_NAME_AW(EnumFontFamilies)
3825 WINGDIAPI INT WINAPI EnumFontFamiliesExA(HDC,LPLOGFONTA,FONTENUMPROCA,LPARAM,DWORD);
3826 WINGDIAPI INT WINAPI EnumFontFamiliesExW(HDC,LPLOGFONTW,FONTENUMPROCW,LPARAM,DWORD);
3827 #define EnumFontFamiliesEx WINELIB_NAME_AW(EnumFontFamiliesEx)
3828 WINGDIAPI INT WINAPI EnumFontsA(HDC,LPCSTR,FONTENUMPROCA,LPARAM);
3829 WINGDIAPI INT WINAPI EnumFontsW(HDC,LPCWSTR,FONTENUMPROCW,LPARAM);
3830 #define EnumFonts WINELIB_NAME_AW(EnumFonts)
3831 WINGDIAPI INT WINAPI EnumICMProfilesA(HDC,ICMENUMPROCA,LPARAM);
3832 WINGDIAPI INT WINAPI EnumICMProfilesW(HDC,ICMENUMPROCW,LPARAM);
3833 #define EnumICMProfiles WINELIB_NAME_AW(EnumICMProfiles)
3834 WINGDIAPI BOOL WINAPI EnumMetaFile(HDC,HMETAFILE,MFENUMPROC,LPARAM);
3835 WINGDIAPI INT WINAPI EnumObjects(HDC,INT,GOBJENUMPROC,LPARAM);
3836 WINGDIAPI BOOL WINAPI EqualRgn(HRGN,HRGN);
3837 WINGDIAPI INT WINAPI Escape(HDC,INT,INT,LPCSTR,LPVOID);
3838 WINGDIAPI INT WINAPI ExcludeClipRect(HDC,INT,INT,INT,INT);
3839 WINGDIAPI HPEN WINAPI ExtCreatePen(DWORD,DWORD,const LOGBRUSH*,DWORD,const DWORD*);
3840 WINGDIAPI HRGN WINAPI ExtCreateRegion(const XFORM*,DWORD,const RGNDATA*);
3841 WINGDIAPI INT WINAPI ExtEscape(HDC,INT,INT,LPCSTR,INT,LPSTR);
3842 WINGDIAPI BOOL WINAPI ExtFloodFill(HDC,INT,INT,COLORREF,UINT);
3843 WINGDIAPI INT WINAPI ExtSelectClipRgn(HDC,HRGN,INT);
3844 WINGDIAPI BOOL WINAPI ExtTextOutA(HDC,INT,INT,UINT,const RECT*,LPCSTR,UINT,const INT*);
3845 WINGDIAPI BOOL WINAPI ExtTextOutW(HDC,INT,INT,UINT,const RECT*,LPCWSTR,UINT,const INT*);
3846 #define ExtTextOut WINELIB_NAME_AW(ExtTextOut)
3847 WINGDIAPI BOOL WINAPI FillPath(HDC);
3848 WINGDIAPI BOOL WINAPI FillRgn(HDC,HRGN,HBRUSH);
3849 WINGDIAPI BOOL WINAPI FixBrushOrgEx(HDC,INT,INT,LPPOINT);
3850 WINGDIAPI BOOL WINAPI FlattenPath(HDC);
3851 WINGDIAPI BOOL WINAPI FloodFill(HDC,INT,INT,COLORREF);
3852 WINGDIAPI BOOL WINAPI FrameRgn(HDC,HRGN,HBRUSH,INT,INT);
3853 WINGDIAPI BOOL WINAPI GdiAlphaBlend(HDC,int,int,int,int,HDC,int,int,int,int,BLENDFUNCTION);
3854 WINGDIAPI BOOL WINAPI GdiComment(HDC,UINT,const BYTE *);
3855 WINGDIAPI DEVMODEW * WINAPI GdiConvertToDevmodeW(const DEVMODEA *);
3856 WINGDIAPI BOOL WINAPI GdiFlush(void);
3857 WINGDIAPI DWORD WINAPI GdiGetBatchLimit(void);
3858 WINGDIAPI LONG WINAPI GdiGetCharDimensions(HDC, LPTEXTMETRICW, LONG *);
3859 WINGDIAPI DWORD WINAPI GdiGetCodePage(HDC);
3860 WINGDIAPI BOOL WINAPI GdiGradientFill(HDC,PTRIVERTEX,ULONG,PVOID,ULONG,ULONG);
3861 WINGDIAPI BOOL WINAPI GdiIsMetaFileDC(HDC);
3862 WINGDIAPI BOOL WINAPI GdiIsMetaPrintDC(HDC);
3863 WINGDIAPI BOOL WINAPI GdiIsPlayMetafileDC(HDC);
3864 WINGDIAPI DWORD WINAPI GdiSetBatchLimit(DWORD);
3865 WINGDIAPI BOOL WINAPI GdiTransparentBlt(HDC,int,int,int,int,HDC,int,int,int,int,UINT);
3866 WINGDIAPI INT WINAPI GetArcDirection(HDC);
3867 WINGDIAPI BOOL WINAPI GetAspectRatioFilterEx(HDC,LPSIZE);
3868 WINGDIAPI LONG WINAPI GetBitmapBits(HBITMAP,LONG,LPVOID);
3869 WINGDIAPI BOOL WINAPI GetBitmapDimensionEx(HBITMAP,LPSIZE);
3870 WINGDIAPI BOOL WINAPI GetBrushOrgEx(HDC,LPPOINT);
3871 WINGDIAPI COLORREF WINAPI GetBkColor(HDC);
3872 WINGDIAPI INT WINAPI GetBkMode(HDC);
3873 WINGDIAPI UINT WINAPI GetBoundsRect(HDC,LPRECT,UINT);
3874 WINGDIAPI BOOL WINAPI GetCharABCWidthsA(HDC,UINT,UINT,LPABC);
3875 WINGDIAPI BOOL WINAPI GetCharABCWidthsW(HDC,UINT,UINT,LPABC);
3876 #define GetCharABCWidths WINELIB_NAME_AW(GetCharABCWidths)
3877 WINGDIAPI BOOL WINAPI GetCharABCWidthsFloatA(HDC,UINT,UINT,LPABCFLOAT);
3878 WINGDIAPI BOOL WINAPI GetCharABCWidthsFloatW(HDC,UINT,UINT,LPABCFLOAT);
3879 #define GetCharABCWidthsFloat WINELIB_NAME_AW(GetCharABCWidthsFloat)
3880 WINGDIAPI BOOL WINAPI GetCharABCWidthsI(HDC,UINT,UINT,LPWORD,LPABC);
3881 WINGDIAPI DWORD WINAPI GetCharacterPlacementA(HDC,LPCSTR,INT,INT,GCP_RESULTSA*,DWORD);
3882 WINGDIAPI DWORD WINAPI GetCharacterPlacementW(HDC,LPCWSTR,INT,INT,GCP_RESULTSW*,DWORD);
3883 #define GetCharacterPlacement WINELIB_NAME_AW(GetCharacterPlacement)
3884 WINGDIAPI BOOL WINAPI GetCharWidth32A(HDC,UINT,UINT,LPINT);
3885 WINGDIAPI BOOL WINAPI GetCharWidth32W(HDC,UINT,UINT,LPINT);
3886 #define GetCharWidth32 WINELIB_NAME_AW(GetCharWidth32)
3887 WINGDIAPI BOOL WINAPI GetCharWidthA(HDC,UINT,UINT,LPINT);
3888 WINGDIAPI BOOL WINAPI GetCharWidthI(HDC,UINT,UINT,LPWORD,LPINT);
3889 WINGDIAPI BOOL WINAPI GetCharWidthW(HDC,UINT,UINT,LPINT);
3890 #define GetCharWidth WINELIB_NAME_AW(GetCharWidth)
3891 WINGDIAPI BOOL WINAPI GetCharWidthFloatA(HDC,UINT,UINT,PFLOAT);
3892 WINGDIAPI BOOL WINAPI GetCharWidthFloatW(HDC,UINT,UINT,PFLOAT);
3893 #define GetCharWidthFloat WINELIB_NAME_AW(GetCharWidthFloat)
3894 WINGDIAPI INT WINAPI GetClipBox(HDC,LPRECT);
3895 WINGDIAPI INT WINAPI GetClipRgn(HDC,HRGN);
3896 WINGDIAPI BOOL WINAPI GetColorAdjustment(HDC, LPCOLORADJUSTMENT);
3897 WINGDIAPI HCOLORSPACE WINAPI GetColorSpace(HDC);
3898 WINGDIAPI HGDIOBJ WINAPI GetCurrentObject(HDC,UINT);
3899 WINGDIAPI BOOL WINAPI GetCurrentPositionEx(HDC,LPPOINT);
3900 WINGDIAPI INT WINAPI GetDeviceCaps(HDC,INT);
3901 WINGDIAPI BOOL WINAPI GetDeviceGammaRamp(HDC,LPVOID);
3902 WINGDIAPI COLORREF WINAPI GetDCBrushColor(HDC);
3903 WINGDIAPI BOOL WINAPI GetDCOrgEx(HDC,LPPOINT);
3904 WINGDIAPI COLORREF WINAPI GetDCPenColor(HDC);
3905 WINGDIAPI UINT WINAPI GetDIBColorTable(HDC,UINT,UINT,RGBQUAD*);
3906 WINGDIAPI INT WINAPI GetDIBits(HDC,HBITMAP,UINT,UINT,LPVOID,LPBITMAPINFO,UINT);
3907 WINGDIAPI HENHMETAFILE WINAPI GetEnhMetaFileA(LPCSTR);
3908 WINGDIAPI HENHMETAFILE WINAPI GetEnhMetaFileW(LPCWSTR);
3909 #define GetEnhMetaFile WINELIB_NAME_AW(GetEnhMetaFile)
3910 WINGDIAPI UINT WINAPI GetEnhMetaFileBits(HENHMETAFILE,UINT,LPBYTE);
3911 WINGDIAPI UINT WINAPI GetEnhMetaFileDescriptionA(HENHMETAFILE,UINT,LPSTR);
3912 WINGDIAPI UINT WINAPI GetEnhMetaFileDescriptionW(HENHMETAFILE,UINT,LPWSTR);
3913 #define GetEnhMetaFileDescription WINELIB_NAME_AW(GetEnhMetaFileDescription)
3914 WINGDIAPI UINT WINAPI GetEnhMetaFileHeader(HENHMETAFILE,UINT,LPENHMETAHEADER);
3915 WINGDIAPI UINT WINAPI GetEnhMetaFilePaletteEntries(HENHMETAFILE,UINT,LPPALETTEENTRY);
3916 WINGDIAPI DWORD WINAPI GetFontData(HDC,DWORD,DWORD,LPVOID,DWORD);
3917 WINGDIAPI DWORD WINAPI GetFontLanguageInfo(HDC);
3918 WINGDIAPI DWORD WINAPI GetFontUnicodeRanges(HDC,LPGLYPHSET);
3919 WINGDIAPI DWORD WINAPI GetGlyphIndicesA(HDC,LPCSTR,INT,LPWORD,DWORD);
3920 WINGDIAPI DWORD WINAPI GetGlyphIndicesW(HDC,LPCWSTR,INT,LPWORD,DWORD);
3921 #define GetGlyphIndices WINELIB_NAME_AW(GetGlyphIndices)
3922 WINGDIAPI DWORD WINAPI GetGlyphOutlineA(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,LPVOID,const MAT2*);
3923 WINGDIAPI DWORD WINAPI GetGlyphOutlineW(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,LPVOID,const MAT2*);
3924 #define GetGlyphOutline WINELIB_NAME_AW(GetGlyphOutline)
3925 WINGDIAPI INT WINAPI GetGraphicsMode(HDC);
3926 WINGDIAPI BOOL WINAPI GetICMProfileA(HDC,LPDWORD,LPSTR);
3927 WINGDIAPI BOOL WINAPI GetICMProfileW(HDC,LPDWORD,LPWSTR);
3928 #define GetICMProfile WINELIB_NAME_AW(GetICMProfile)
3929 WINGDIAPI DWORD WINAPI GetKerningPairsA(HDC,DWORD,LPKERNINGPAIR);
3930 WINGDIAPI DWORD WINAPI GetKerningPairsW(HDC,DWORD,LPKERNINGPAIR);
3931 #define GetKerningPairs WINELIB_NAME_AW(GetKerningPairs)
3932 WINGDIAPI DWORD WINAPI GetLayout(HDC);
3933 WINGDIAPI BOOL WINAPI GetLogColorSpaceA(HCOLORSPACE,LPLOGCOLORSPACEA,DWORD);
3934 WINGDIAPI BOOL WINAPI GetLogColorSpaceW(HCOLORSPACE,LPLOGCOLORSPACEW,DWORD);
3935 #define GetLogColorSpace WINELIB_NAME_AW(GetLogColorSpace)
3936 WINGDIAPI INT WINAPI GetMapMode(HDC);
3937 WINGDIAPI HMETAFILE WINAPI GetMetaFileA(LPCSTR);
3938 WINGDIAPI HMETAFILE WINAPI GetMetaFileW(LPCWSTR);
3939 #define GetMetaFile WINELIB_NAME_AW(GetMetaFile)
3940 WINGDIAPI UINT WINAPI GetMetaFileBitsEx(HMETAFILE,UINT,LPVOID);
3941 WINGDIAPI INT WINAPI GetMetaRgn(HDC,HRGN);
3942 WINGDIAPI BOOL WINAPI GetMiterLimit(HDC, PFLOAT);
3943 WINGDIAPI DWORD WINAPI GetNearestColor(HDC,DWORD);
3944 WINGDIAPI UINT WINAPI GetNearestPaletteIndex(HPALETTE,COLORREF);
3945 WINGDIAPI INT WINAPI GetObjectA(HGDIOBJ,INT,LPVOID);
3946 WINGDIAPI INT WINAPI GetObjectW(HGDIOBJ,INT,LPVOID);
3947 #define GetObject WINELIB_NAME_AW(GetObject)
3948 WINGDIAPI DWORD WINAPI GetObjectType(HGDIOBJ);
3949 WINGDIAPI UINT WINAPI GetOutlineTextMetricsA(HDC,UINT,LPOUTLINETEXTMETRICA);
3950 WINGDIAPI UINT WINAPI GetOutlineTextMetricsW(HDC,UINT,LPOUTLINETEXTMETRICW);
3951 #define GetOutlineTextMetrics WINELIB_NAME_AW(GetOutlineTextMetrics)
3952 WINGDIAPI UINT WINAPI GetPaletteEntries(HPALETTE,UINT,UINT,LPPALETTEENTRY);
3953 WINGDIAPI INT WINAPI GetPath(HDC,LPPOINT,LPBYTE,INT);
3954 WINGDIAPI COLORREF WINAPI GetPixel(HDC,INT,INT);
3955 WINGDIAPI INT WINAPI GetPixelFormat(HDC);
3956 WINGDIAPI INT WINAPI GetPolyFillMode(HDC);
3957 WINGDIAPI INT WINAPI GetRandomRgn(HDC,HRGN,INT);
3958 WINGDIAPI BOOL WINAPI GetRasterizerCaps(LPRASTERIZER_STATUS,UINT);
3959 WINGDIAPI DWORD WINAPI GetRegionData(HRGN,DWORD,LPRGNDATA);
3960 WINGDIAPI INT WINAPI GetRelAbs(HDC,DWORD);
3961 WINGDIAPI INT WINAPI GetRgnBox(HRGN,LPRECT);
3962 WINGDIAPI INT WINAPI GetROP2(HDC);
3963 WINGDIAPI HGDIOBJ WINAPI GetStockObject(INT);
3964 WINGDIAPI INT WINAPI GetStretchBltMode(HDC);
3965 WINGDIAPI UINT WINAPI GetSystemPaletteEntries(HDC,UINT,UINT,LPPALETTEENTRY);
3966 WINGDIAPI UINT WINAPI GetSystemPaletteUse(HDC);
3967 WINGDIAPI UINT WINAPI GetTextAlign(HDC);
3968 WINGDIAPI INT WINAPI GetTextCharacterExtra(HDC);
3969 WINGDIAPI UINT WINAPI GetTextCharset(HDC);
3970 WINGDIAPI UINT WINAPI GetTextCharsetInfo(HDC,LPFONTSIGNATURE,DWORD);
3971 WINGDIAPI COLORREF WINAPI GetTextColor(HDC);
3972 WINGDIAPI BOOL WINAPI GetTextExtentExPointA(HDC,LPCSTR,INT,INT,LPINT,LPINT,LPSIZE);
3973 WINGDIAPI BOOL WINAPI GetTextExtentExPointW(HDC,LPCWSTR,INT,INT,LPINT,LPINT,LPSIZE);
3974 #define GetTextExtentExPoint WINELIB_NAME_AW(GetTextExtentExPoint)
3975 WINGDIAPI BOOL WINAPI GetTextExtentPointA(HDC,LPCSTR,INT,LPSIZE);
3976 WINGDIAPI BOOL WINAPI GetTextExtentPointW(HDC,LPCWSTR,INT,LPSIZE);
3977 #define GetTextExtentPoint WINELIB_NAME_AW(GetTextExtentPoint)
3978 WINGDIAPI BOOL WINAPI GetTextExtentPoint32A(HDC,LPCSTR,INT,LPSIZE);
3979 WINGDIAPI BOOL WINAPI GetTextExtentPoint32W(HDC,LPCWSTR,INT,LPSIZE);
3980 #define GetTextExtentPoint32 WINELIB_NAME_AW(GetTextExtentPoint32)
3981 WINGDIAPI BOOL WINAPI GetTextExtentExPointI(HDC,const WORD*,INT,INT,LPINT,LPINT,LPSIZE);
3982 WINGDIAPI BOOL WINAPI GetTextExtentPointI(HDC,const WORD*,INT,LPSIZE);
3983 WINGDIAPI INT WINAPI GetTextFaceA(HDC,INT,LPSTR);
3984 WINGDIAPI INT WINAPI GetTextFaceW(HDC,INT,LPWSTR);
3985 #define GetTextFace WINELIB_NAME_AW(GetTextFace)
3986 WINGDIAPI BOOL WINAPI GetTextMetricsA(HDC,LPTEXTMETRICA);
3987 WINGDIAPI BOOL WINAPI GetTextMetricsW(HDC,LPTEXTMETRICW);
3988 #define GetTextMetrics WINELIB_NAME_AW(GetTextMetrics)
3989 WINGDIAPI BOOL WINAPI GetTransform(HDC,DWORD,XFORM*);
3990 WINGDIAPI BOOL WINAPI GetViewportExtEx(HDC,LPSIZE);
3991 WINGDIAPI BOOL WINAPI GetViewportOrgEx(HDC,LPPOINT);
3992 WINGDIAPI BOOL WINAPI GetWindowExtEx(HDC,LPSIZE);
3993 WINGDIAPI BOOL WINAPI GetWindowOrgEx(HDC,LPPOINT);
3994 WINGDIAPI UINT WINAPI GetWinMetaFileBits(HENHMETAFILE,UINT,LPBYTE,INT,HDC);
3995 WINGDIAPI BOOL WINAPI GetWorldTransform(HDC,LPXFORM);
3996 WINGDIAPI BOOL WINAPI GradientFill(HDC,PTRIVERTEX,ULONG,PVOID,ULONG,ULONG);
3997 WINGDIAPI INT WINAPI IntersectClipRect(HDC,INT,INT,INT,INT);
3998 WINGDIAPI BOOL WINAPI InvertRgn(HDC,HRGN);
3999 WINGDIAPI BOOL WINAPI LineDDA(INT,INT,INT,INT,LINEDDAPROC,LPARAM);
4000 WINGDIAPI BOOL WINAPI LineTo(HDC,INT,INT);
4001 WINGDIAPI BOOL WINAPI LPtoDP(HDC,LPPOINT,INT);
4002 WINGDIAPI BOOL WINAPI MaskBlt(HDC,INT,INT,INT,INT,HDC,INT,INT,HBITMAP,INT,INT,DWORD);
4003 WINGDIAPI BOOL WINAPI MirrorRgn(HWND,HRGN);
4004 WINGDIAPI BOOL WINAPI ModifyWorldTransform(HDC,const XFORM *, DWORD);
4005 WINGDIAPI BOOL WINAPI MoveToEx(HDC,INT,INT,LPPOINT);
4006 WINGDIAPI INT WINAPI OffsetClipRgn(HDC,INT,INT);
4007 WINGDIAPI INT WINAPI OffsetRgn(HRGN,INT,INT);
4008 WINGDIAPI BOOL WINAPI OffsetViewportOrgEx(HDC,INT,INT,LPPOINT);
4009 WINGDIAPI BOOL WINAPI OffsetWindowOrgEx(HDC,INT,INT,LPPOINT);
4010 WINGDIAPI BOOL WINAPI PaintRgn(HDC,HRGN);
4011 WINGDIAPI BOOL WINAPI PatBlt(HDC,INT,INT,INT,INT,DWORD);
4012 WINGDIAPI HRGN WINAPI PathToRegion(HDC);
4013 WINGDIAPI BOOL WINAPI Pie(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
4014 WINGDIAPI BOOL WINAPI PlayEnhMetaFile(HDC,HENHMETAFILE,const RECT*);
4015 WINGDIAPI BOOL WINAPI PlayEnhMetaFileRecord(HDC,LPHANDLETABLE,const ENHMETARECORD*,UINT);
4016 WINGDIAPI BOOL WINAPI PlayMetaFile(HDC,HMETAFILE);
4017 WINGDIAPI BOOL WINAPI PlayMetaFileRecord(HDC,LPHANDLETABLE,LPMETARECORD,UINT);
4018 WINGDIAPI BOOL WINAPI PlgBlt(HDC,const POINT*,HDC,INT,INT,INT,INT,HBITMAP,INT,INT);
4019 WINGDIAPI BOOL WINAPI PolyBezier(HDC,const POINT*,DWORD);
4020 WINGDIAPI BOOL WINAPI PolyBezierTo(HDC,const POINT*,DWORD);
4021 WINGDIAPI BOOL WINAPI PolyDraw(HDC,const POINT*,const BYTE*,DWORD);
4022 WINGDIAPI BOOL WINAPI PolyPolygon(HDC,const POINT*,const INT*,UINT);
4023 WINGDIAPI BOOL WINAPI PolyPolyline(HDC,const POINT*,const DWORD*,DWORD);
4024 WINGDIAPI BOOL WINAPI Polygon(HDC,const POINT*,INT);
4025 WINGDIAPI BOOL WINAPI Polyline(HDC,const POINT*,INT);
4026 WINGDIAPI BOOL WINAPI PolylineTo(HDC,const POINT*,DWORD);
4027 WINGDIAPI BOOL WINAPI PtInRegion(HRGN,INT,INT);
4028 WINGDIAPI BOOL WINAPI PtVisible(HDC,INT,INT);
4029 WINGDIAPI UINT WINAPI RealizePalette(HDC);
4030 WINGDIAPI BOOL WINAPI Rectangle(HDC,INT,INT,INT,INT);
4031 WINGDIAPI BOOL WINAPI RectInRegion(HRGN,const RECT *);
4032 WINGDIAPI BOOL WINAPI RectVisible(HDC,const RECT*);
4033 WINGDIAPI BOOL WINAPI RemoveFontMemResourceEx(HANDLE);
4034 WINGDIAPI BOOL WINAPI RemoveFontResourceA(LPCSTR);
4035 WINGDIAPI BOOL WINAPI RemoveFontResourceW(LPCWSTR);
4036 #define RemoveFontResource WINELIB_NAME_AW(RemoveFontResource)
4037 WINGDIAPI BOOL WINAPI RemoveFontResourceExA(LPCSTR, DWORD, PVOID);
4038 WINGDIAPI BOOL WINAPI RemoveFontResourceExW(LPCWSTR, DWORD, PVOID);
4039 #define RemoveFontResourceEx WINELIB_NAME_AW(RemoveFontResourceEx)
4040 WINGDIAPI HDC WINAPI ResetDCA(HDC,const DEVMODEA *);
4041 WINGDIAPI HDC WINAPI ResetDCW(HDC,const DEVMODEW *);
4042 #define ResetDC WINELIB_NAME_AW(ResetDC)
4043 WINGDIAPI BOOL WINAPI ResizePalette(HPALETTE,UINT);
4044 WINGDIAPI BOOL WINAPI RestoreDC(HDC,INT);
4045 WINGDIAPI BOOL WINAPI RoundRect(HDC,INT,INT,INT,INT,INT,INT);
4046 WINGDIAPI INT WINAPI SaveDC(HDC);
4047 WINGDIAPI BOOL WINAPI ScaleViewportExtEx(HDC,INT,INT,INT,INT,LPSIZE);
4048 WINGDIAPI BOOL WINAPI ScaleWindowExtEx(HDC,INT,INT,INT,INT,LPSIZE);
4049 WINGDIAPI BOOL WINAPI SelectClipPath(HDC,INT);
4050 WINGDIAPI INT WINAPI SelectClipRgn(HDC,HRGN);
4051 WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC,HGDIOBJ);
4052 WINGDIAPI HPALETTE WINAPI SelectPalette(HDC,HPALETTE,BOOL);
4053 WINGDIAPI INT WINAPI SetAbortProc(HDC,ABORTPROC);
4054 WINGDIAPI INT WINAPI SetArcDirection(HDC,INT);
4055 WINGDIAPI LONG WINAPI SetBitmapBits(HBITMAP,LONG,LPCVOID);
4056 WINGDIAPI BOOL WINAPI SetBitmapDimensionEx(HBITMAP,INT,INT,LPSIZE);
4057 WINGDIAPI COLORREF WINAPI SetBkColor(HDC,COLORREF);
4058 WINGDIAPI INT WINAPI SetBkMode(HDC,INT);
4059 WINGDIAPI UINT WINAPI SetBoundsRect(HDC,const RECT*,UINT);
4060 WINGDIAPI BOOL WINAPI SetBrushOrgEx(HDC,INT,INT,LPPOINT);
4061 WINGDIAPI BOOL WINAPI SetColorAdjustment(HDC,const COLORADJUSTMENT*);
4062 WINGDIAPI HCOLORSPACE WINAPI SetColorSpace(HDC,HCOLORSPACE);
4063 WINGDIAPI BOOL WINAPI SetDeviceGammaRamp(HDC,LPVOID);
4064 WINGDIAPI COLORREF WINAPI SetDCBrushColor(HDC,COLORREF);
4065 WINGDIAPI COLORREF WINAPI SetDCPenColor(HDC, COLORREF);
4066 WINGDIAPI UINT WINAPI SetDIBColorTable(HDC,UINT,UINT,const RGBQUAD*);
4067 WINGDIAPI INT WINAPI SetDIBits(HDC,HBITMAP,UINT,UINT,LPCVOID,const BITMAPINFO*,UINT);
4068 WINGDIAPI INT WINAPI SetDIBitsToDevice(HDC,INT,INT,DWORD,DWORD,INT,INT,UINT,UINT,LPCVOID,const BITMAPINFO*,UINT);
4069 WINGDIAPI HENHMETAFILE WINAPI SetEnhMetaFileBits(UINT,const BYTE *);
4070 WINGDIAPI INT WINAPI SetGraphicsMode(HDC,INT);
4071 WINGDIAPI INT WINAPI SetICMMode(HDC,INT);
4072 WINGDIAPI BOOL WINAPI SetICMProfileA(HDC,LPSTR);
4073 WINGDIAPI BOOL WINAPI SetICMProfileW(HDC,LPWSTR);
4074 #define SetICMProfile WINELIB_NAME_AW(SetICMProfile)
4075 WINGDIAPI DWORD WINAPI SetLayout(HDC,DWORD);
4076 WINGDIAPI INT WINAPI SetMapMode(HDC,INT);
4077 WINGDIAPI DWORD WINAPI SetMapperFlags(HDC,DWORD);
4078 WINGDIAPI HMETAFILE WINAPI SetMetaFileBitsEx(UINT,const BYTE*);
4079 WINGDIAPI INT WINAPI SetMetaRgn(HDC);
4080 WINGDIAPI BOOL WINAPI SetMiterLimit(HDC, FLOAT, PFLOAT);
4081 WINGDIAPI UINT WINAPI SetPaletteEntries(HPALETTE,UINT,UINT,const PALETTEENTRY*);
4082 WINGDIAPI COLORREF WINAPI SetPixel(HDC,INT,INT,COLORREF);
4083 WINGDIAPI BOOL WINAPI SetPixelV(HDC,INT,INT,COLORREF);
4084 WINGDIAPI BOOL WINAPI SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR*);
4085 WINGDIAPI INT WINAPI SetPolyFillMode(HDC,INT);
4086 WINGDIAPI BOOL WINAPI SetRectRgn(HRGN,INT,INT,INT,INT);
4087 WINGDIAPI INT WINAPI SetRelAbs(HDC,INT);
4088 WINGDIAPI INT WINAPI SetROP2(HDC,INT);
4089 WINGDIAPI INT WINAPI SetStretchBltMode(HDC,INT);
4090 WINGDIAPI UINT WINAPI SetSystemPaletteUse(HDC,UINT);
4091 WINGDIAPI UINT WINAPI SetTextAlign(HDC,UINT);
4092 WINGDIAPI INT WINAPI SetTextCharacterExtra(HDC,INT);
4093 WINGDIAPI COLORREF WINAPI SetTextColor(HDC,COLORREF);
4094 WINGDIAPI BOOL WINAPI SetTextJustification(HDC,INT,INT);
4095 WINGDIAPI BOOL WINAPI SetViewportExtEx(HDC,INT,INT,LPSIZE);
4096 WINGDIAPI BOOL WINAPI SetViewportOrgEx(HDC,INT,INT,LPPOINT);
4097 WINGDIAPI BOOL WINAPI SetWindowExtEx(HDC,INT,INT,LPSIZE);
4098 WINGDIAPI BOOL WINAPI SetWindowOrgEx(HDC,INT,INT,LPPOINT);
4099 WINGDIAPI HENHMETAFILE WINAPI SetWinMetaFileBits(UINT,const BYTE*,HDC,const METAFILEPICT *);
4100 WINGDIAPI BOOL WINAPI SetWorldTransform(HDC,const XFORM*);
4101 WINGDIAPI INT WINAPI StartDocA(HDC,const DOCINFOA*);
4102 WINGDIAPI INT WINAPI StartDocW(HDC,const DOCINFOW*);
4103 #define StartDoc WINELIB_NAME_AW(StartDoc)
4104 WINGDIAPI INT WINAPI StartPage(HDC);
4105 WINGDIAPI INT WINAPI EndPage(HDC);
4106 WINGDIAPI BOOL WINAPI StretchBlt(HDC,INT,INT,INT,INT,HDC,INT,INT,INT,INT,DWORD);
4107 WINGDIAPI INT WINAPI StretchDIBits(HDC,INT,INT,INT,INT,INT,INT,INT,INT,const VOID*,const BITMAPINFO*,UINT,DWORD);
4108 WINGDIAPI BOOL WINAPI StrokeAndFillPath(HDC);
4109 WINGDIAPI BOOL WINAPI StrokePath(HDC);
4110 WINGDIAPI BOOL WINAPI SwapBuffers(HDC);
4111 WINGDIAPI BOOL WINAPI TextOutA(HDC,INT,INT,LPCSTR,INT);
4112 WINGDIAPI BOOL WINAPI TextOutW(HDC,INT,INT,LPCWSTR,INT);
4113 #define TextOut WINELIB_NAME_AW(TextOut)
4114 WINGDIAPI BOOL WINAPI TranslateCharsetInfo(LPDWORD,LPCHARSETINFO,DWORD);
4115 WINGDIAPI BOOL WINAPI TransparentBlt(HDC,int,int,int,int,HDC,int,int,int,int,UINT);
4116 WINGDIAPI BOOL WINAPI UnrealizeObject(HGDIOBJ);
4117 WINGDIAPI BOOL WINAPI UpdateColors(HDC);
4118 WINGDIAPI BOOL WINAPI UpdateICMRegKeyA(DWORD,LPSTR,LPSTR,UINT);
4119 WINGDIAPI BOOL WINAPI UpdateICMRegKeyW(DWORD,LPWSTR,LPWSTR,UINT);
4120 #define UpdateICMRegKey WINELIB_NAME_AW(UpdateICMRegKey)
4121 WINGDIAPI BOOL WINAPI WidenPath(HDC);
4122 WINGDIAPI BOOL WINAPI PolyTextOutA(HDC,const POLYTEXTA*,INT);
4123 WINGDIAPI BOOL WINAPI PolyTextOutW(HDC,const POLYTEXTW*,INT);
4124 #define PolyTextOut WINELIB_NAME_AW(PolyTextOut)
4126 /* These defines are used by wglSwapLayerBuffers */
4127 #define WGL_SWAP_MAIN_PLANE (1 << 0)
4128 #define WGL_SWAP_OVERLAY1 (1 << 1)
4129 #define WGL_SWAP_OVERLAY2 (1 << 2)
4130 #define WGL_SWAP_OVERLAY3 (1 << 3)
4131 #define WGL_SWAP_OVERLAY4 (1 << 4)
4132 #define WGL_SWAP_OVERLAY5 (1 << 5)
4133 #define WGL_SWAP_OVERLAY6 (1 << 6)
4134 #define WGL_SWAP_OVERLAY7 (1 << 7)
4135 #define WGL_SWAP_OVERLAY8 (1 << 8)
4136 #define WGL_SWAP_OVERLAY9 (1 << 9)
4137 #define WGL_SWAP_OVERLAY10 (1 << 10)
4138 #define WGL_SWAP_OVERLAY11 (1 << 11)
4139 #define WGL_SWAP_OVERLAY12 (1 << 12)
4140 #define WGL_SWAP_OVERLAY13 (1 << 13)
4141 #define WGL_SWAP_OVERLAY14 (1 << 14)
4142 #define WGL_SWAP_OVERLAY15 (1 << 15)
4143 #define WGL_SWAP_UNDERLAY1 (1 << 16)
4144 #define WGL_SWAP_UNDERLAY2 (1 << 17)
4145 #define WGL_SWAP_UNDERLAY3 (1 << 18)
4146 #define WGL_SWAP_UNDERLAY4 (1 << 19)
4147 #define WGL_SWAP_UNDERLAY5 (1 << 20)
4148 #define WGL_SWAP_UNDERLAY6 (1 << 21)
4149 #define WGL_SWAP_UNDERLAY7 (1 << 22)
4150 #define WGL_SWAP_UNDERLAY8 (1 << 23)
4151 #define WGL_SWAP_UNDERLAY9 (1 << 24)
4152 #define WGL_SWAP_UNDERLAY10 (1 << 25)
4153 #define WGL_SWAP_UNDERLAY11 (1 << 26)
4154 #define WGL_SWAP_UNDERLAY12 (1 << 27)
4155 #define WGL_SWAP_UNDERLAY13 (1 << 28)
4156 #define WGL_SWAP_UNDERLAY14 (1 << 29)
4157 #define WGL_SWAP_UNDERLAY15 (1 << 30)
4159 #define WGL_FONT_LINES 0
4160 #define WGL_FONT_POLYGONS 1
4162 /* WGL prototypes */
4163 WGLAPI HGLRC WINAPI wglCreateContext(HDC);
4164 WGLAPI HGLRC WINAPI wglCreateLayerContext(HDC,INT);
4165 WGLAPI BOOL WINAPI wglCopyContext(HGLRC,HGLRC,UINT);
4166 WGLAPI BOOL WINAPI wglDeleteContext(HGLRC);
4167 WGLAPI BOOL WINAPI wglDescribeLayerPlane(HDC,INT,INT,UINT,LPLAYERPLANEDESCRIPTOR);
4168 WGLAPI HGLRC WINAPI wglGetCurrentContext(void);
4169 WGLAPI HDC WINAPI wglGetCurrentDC(void);
4170 WGLAPI INT WINAPI wglGetLayerPaletteEntries(HDC,INT,INT,INT,const COLORREF *);
4171 WGLAPI PROC WINAPI wglGetProcAddress(LPCSTR);
4172 WGLAPI BOOL WINAPI wglMakeCurrent(HDC,HGLRC);
4173 WGLAPI BOOL WINAPI wglRealizeLayerPalette(HDC,INT,BOOL);
4174 WGLAPI INT WINAPI wglSetLayerPaletteEntries(HDC,INT,INT,INT,const COLORREF *);
4175 WGLAPI BOOL WINAPI wglShareLists(HGLRC,HGLRC);
4176 WGLAPI BOOL WINAPI wglSwapLayerBuffers(HDC,UINT);
4177 WGLAPI BOOL WINAPI wglUseFontBitmapsA(HDC,DWORD,DWORD,DWORD);
4178 WGLAPI BOOL WINAPI wglUseFontBitmapsW(HDC,DWORD,DWORD,DWORD);
4179 #define wglUseFontBitmaps WINELIB_NAME_AW(wglUseFontBitmaps)
4180 WGLAPI BOOL WINAPI wglUseFontOutlinesA(HDC,DWORD,DWORD,DWORD,FLOAT,FLOAT,INT,LPGLYPHMETRICSFLOAT);
4181 WGLAPI BOOL WINAPI wglUseFontOutlinesW(HDC,DWORD,DWORD,DWORD,FLOAT,FLOAT,INT,LPGLYPHMETRICSFLOAT);
4182 #define wglUseFontOutlines WINELIB_NAME_AW(wglUseFontOutlines)
4184 #ifdef __cplusplus
4186 #endif
4188 #endif /* !NOGDI */
4189 #endif /* _WINGDI_ */