source: trunk/include/win/wingdi.h@ 2567

Last change on this file since 2567 was 2567, checked in by phaller, 26 years ago

Fix: prototype for GdiFlush was wrong

File size: 83.7 KB
Line 
1/* $Id: wingdi.h,v 1.11 2000-01-29 17:37:20 phaller Exp $ */
2
3#ifndef __WINE_WINGDI_H
4#define __WINE_WINGDI_H
5
6#include "windef.h"
7
8#ifdef __cplusplus
9extern "C" {
10#endif
11
12#define _WINGDI_
13
14#include "pshpack1.h"
15
16typedef struct _ABCFLOAT {
17 FLOAT abcfA;
18 FLOAT abcfB;
19 FLOAT abcfC;
20} ABCFLOAT, *PABCFLOAT, *LPABCFLOAT;
21
22typedef struct
23{
24 WORD wFirst;
25 WORD wSecond;
26 INT iKernAmount;
27} KERNINGPAIR, *LPKERNINGPAIR;
28
29
30typedef struct
31{
32 HDC hdc;
33 BOOL fErase;
34 RECT rcPaint;
35 BOOL fRestore;
36 BOOL fIncUpdate;
37 BYTE rgbReserved[32];
38} PAINTSTRUCT, *PPAINTSTRUCT, *LPPAINTSTRUCT;
39
40
41
42typedef struct tagPIXELFORMATDESCRIPTOR {
43 WORD nSize;
44 WORD nVersion;
45 DWORD dwFlags;
46 BYTE iPixelType;
47 BYTE cColorBits;
48 BYTE cRedBits;
49 BYTE cRedShift;
50 BYTE cGreenBits;
51 BYTE cGreenShift;
52 BYTE cBlueBits;
53 BYTE cBlueShift;
54 BYTE cAlphaBits;
55 BYTE cAlphaShift;
56 BYTE cAccumBits;
57 BYTE cAccumRedBits;
58 BYTE cAccumGreenBits;
59 BYTE cAccumBlueBits;
60 BYTE cAccumAlphaBits;
61 BYTE cDepthBits;
62 BYTE cStencilBits;
63 BYTE cAuxBuffers;
64 BYTE iLayerType;
65 BYTE bReserved;
66 DWORD dwLayerMask;
67 DWORD dwVisibleMask;
68 DWORD dwDamageMask;
69} PIXELFORMATDESCRIPTOR, *LPPIXELFORMATDESCRIPTOR;
70
71typedef struct tagCOLORADJUSTMENT
72{
73 WORD caSize;
74 WORD caFlags;
75 WORD caIlluminantIndex;
76 WORD caRedGamma;
77 WORD caGreenGamma;
78 WORD caBlueGamma;
79 WORD caReferenceBlack;
80 WORD caReferenceWhite;
81 SHORT caContrast;
82 SHORT caBrightness;
83 SHORT caColorfulness;
84 SHORT caRedGreenTint;
85} COLORADJUSTMENT, *PCOLORADJUSTMENT, *LPCOLORADJUSTMENT;
86
87typedef LONG FXPT16DOT16, *LPFXPT16DOT16;
88typedef LONG FXPT2DOT30, *LPFXPT2DOT30;
89typedef LONG LCSCSTYPE;
90typedef LONG LCSGAMUTMATCH;
91
92typedef struct tagCIEXYZ
93{
94 FXPT2DOT30 ciexyzX;
95 FXPT2DOT30 ciexyzY;
96 FXPT2DOT30 ciexyzZ;
97} CIEXYZ, *LPCIEXYZ;
98
99typedef struct tagCIEXYZTRIPLE
100{
101 CIEXYZ ciexyzRed;
102 CIEXYZ ciexyzGreen;
103 CIEXYZ ciexyzBlue;
104} CIEXYZTRIPLE, *LPCIEXYZTRIPLE;
105
106typedef struct tagLOGCOLORSPACEA
107{
108 DWORD lcsSignature;
109 DWORD lcsVersion;
110 DWORD lcsSize;
111 LCSCSTYPE lcsCSType;
112 LCSGAMUTMATCH lcsIntent;
113 CIEXYZTRIPLE lcsEndpoints;
114 DWORD lcsGammaRed;
115 DWORD lcsGammaGreen;
116 DWORD lcsGammaBlue;
117 CHAR lcsFilename[_MAX_PATH];
118} LOGCOLORSPACEA, *LPLOGCOLORSPACEA;
119
120 typedef struct tagLOGCOLORSPACEW
121{
122 DWORD lcsSignature;
123 DWORD lcsVersion;
124 DWORD lcsSize;
125 LCSCSTYPE lcsCSType;
126 LCSGAMUTMATCH lcsIntent;
127 CIEXYZTRIPLE lcsEndpoints;
128 DWORD lcsGammaRed;
129 DWORD lcsGammaGreen;
130 DWORD lcsGammaBlue;
131 WCHAR lcsFilename[_MAX_PATH];
132} LOGCOLORSPACEW, *LPLOGCOLORSPACEW;
133
134DECL_WINELIB_TYPE_AW(LPLOGCOLORSPACE)
135DECL_WINELIB_TYPE_AW(LOGCOLORSPACE)
136
137#define DC_FIELDS 1
138#define DC_PAPERS 2
139#define DC_PAPERSIZE 3
140#define DC_MINEXTENT 4
141#define DC_MAXEXTENT 5
142#define DC_BINS 6
143#define DC_DUPLEX 7
144#define DC_SIZE 8
145#define DC_EXTRA 9
146#define DC_VERSION 10
147#define DC_DRIVER 11
148#define DC_BINNAMES 12
149#define DC_ENUMRESOLUTIONS 13
150#define DC_FILEDEPENDENCIES 14
151#define DC_TRUETYPE 15
152#define DC_PAPERNAMES 16
153#define DC_ORIENTATION 17
154#define DC_COPIES 18
155#define DC_BINADJUST 19
156#define DC_EMF_COMPLIANT 20
157#define DC_DATATYPE_PRODUCED 21
158#define DC_COLLATE 22
159#define DC_MANUFACTURER 23
160#define DC_MODEL 24
161
162/* Flag returned from Escape QUERYDIBSUPPORT */
163#define QDI_SETDIBITS 1
164#define QDI_GETDIBITS 2
165#define QDI_DIBTOSCREEN 4
166#define QDI_STRETCHDIB 8
167
168
169#define PR_JOBSTATUS 0x0000
170
171
172/* GDI Escape commands */
173#define NEWFRAME 1
174#define ABORTDOC 2
175#define NEXTBAND 3
176#define SETCOLORTABLE 4
177#define GETCOLORTABLE 5
178#define FLUSHOUTPUT 6
179#define DRAFTMODE 7
180#define QUERYESCSUPPORT 8
181#define SETABORTPROC 9
182#define STARTDOC 10
183#define ENDDOC 11
184#define GETPHYSPAGESIZE 12
185#define GETPRINTINGOFFSET 13
186#define GETSCALINGFACTOR 14
187#define MFCOMMENT 15
188#define GETPENWIDTH 16
189#define SETCOPYCOUNT 17
190#define SELECTPAPERSOURCE 18
191#define DEVICEDATA 19
192#define PASSTHROUGH 19
193#define GETTECHNOLGY 20
194#define GETTECHNOLOGY 20 /* yes, both of them */
195#define SETLINECAP 21
196#define SETLINEJOIN 22
197#define SETMITERLIMIT 23
198#define BANDINFO 24
199#define DRAWPATTERNRECT 25
200#define GETVECTORPENSIZE 26
201#define GETVECTORBRUSHSIZE 27
202#define ENABLEDUPLEX 28
203#define GETSETPAPERBINS 29
204#define GETSETPRINTORIENT 30
205#define ENUMPAPERBINS 31
206#define SETDIBSCALING 32
207#define EPSPRINTING 33
208#define ENUMPAPERMETRICS 34
209#define GETSETPAPERMETRICS 35
210#define POSTSCRIPT_DATA 37
211#define POSTSCRIPT_IGNORE 38
212#define MOUSETRAILS 39
213#define GETDEVICEUNITS 42
214
215#define DESKTOPVERTRES 117
216#define DESKTOPHORZRES 118
217
218#define GETEXTENDEDTEXTMETRICS 256
219#define GETEXTENTTABLE 257
220#define GETPAIRKERNTABLE 258
221#define GETTRACKKERNTABLE 259
222#define EXTTEXTOUT 512
223#define GETFACENAME 513
224#define DOWNLOADFACE 514
225#define ENABLERELATIVEWIDTHS 768
226#define ENABLEPAIRKERNING 769
227#define SETKERNTRACK 770
228#define SETALLJUSTVALUES 771
229#define SETCHARSET 772
230
231#define STRETCHBLT 2048
232#define GETSETSCREENPARAMS 3072
233#define QUERYDIBSUPPORT 3073
234#define BEGIN_PATH 4096
235#define CLIP_TO_PATH 4097
236#define END_PATH 4098
237#define EXT_DEVICE_CAPS 4099
238#define RESTORE_CTM 4100
239#define SAVE_CTM 4101
240#define SET_ARC_DIRECTION 4102
241#define SET_BACKGROUND_COLOR 4103
242#define SET_POLY_MODE 4104
243#define SET_SCREEN_ANGLE 4105
244#define SET_SPREAD 4106
245#define TRANSFORM_CTM 4107
246#define SET_CLIP_BOX 4108
247#define SET_BOUNDS 4109
248#define SET_MIRROR_MODE 4110
249#define OPENCHANNEL 4110
250#define DOWNLOADHEADER 4111
251#define CLOSECHANNEL 4112
252#define POSTSCRIPT_PASSTHROUGH 4115
253#define ENCAPSULATED_POSTSCRIPT 4116
254
255/* Spooler Error Codes */
256#define SP_NOTREPORTED 0x4000
257#define SP_ERROR (-1)
258#define SP_APPABORT (-2)
259#define SP_USERABORT (-3)
260#define SP_OUTOFDISK (-4)
261#define SP_OUTOFMEMORY (-5)
262
263
264 /* Raster operations */
265
266#define R2_BLACK 1
267#define R2_NOTMERGEPEN 2
268#define R2_MASKNOTPEN 3
269#define R2_NOTCOPYPEN 4
270#define R2_MASKPENNOT 5
271#define R2_NOT 6
272#define R2_XORPEN 7
273#define R2_NOTMASKPEN 8
274#define R2_MASKPEN 9
275#define R2_NOTXORPEN 10
276#define R2_NOP 11
277#define R2_MERGENOTPEN 12
278#define R2_COPYPEN 13
279#define R2_MERGEPENNOT 14
280#define R2_MERGEPEN 15
281#define R2_WHITE 16
282
283#define SRCCOPY 0xcc0020
284#define SRCPAINT 0xee0086
285#define SRCAND 0x8800c6
286#define SRCINVERT 0x660046
287#define SRCERASE 0x440328
288#define NOTSRCCOPY 0x330008
289#define NOTSRCERASE 0x1100a6
290#define MERGECOPY 0xc000ca
291#define MERGEPAINT 0xbb0226
292#define PATCOPY 0xf00021
293#define PATPAINT 0xfb0a09
294#define PATINVERT 0x5a0049
295#define DSTINVERT 0x550009
296#define BLACKNESS 0x000042
297#define WHITENESS 0xff0062
298
299 /* StretchBlt() modes */
300#define BLACKONWHITE 1
301#define WHITEONBLACK 2
302#define COLORONCOLOR 3
303#define HALFTONE 4
304#define MAXSTRETCHBLTMODE 4
305
306#define STRETCH_ANDSCANS BLACKONWHITE
307#define STRETCH_ORSCANS WHITEONBLACK
308#define STRETCH_DELETESCANS COLORONCOLOR
309#define STRETCH_HALFTONE HALFTONE
310
311 /* Colors */
312
313typedef DWORD COLORREF, *LPCOLORREF;
314
315#define RGB(r,g,b) ((COLORREF)((r) | ((g) << 8) | ((b) << 16)))
316#define PALETTERGB(r,g,b) (0x02000000 | RGB(r,g,b))
317#define PALETTEINDEX(i) ((COLORREF)(0x01000000 | (WORD)(i)))
318
319#define GetRValue(rgb) ((rgb) & 0xff)
320#define GetGValue(rgb) (((rgb) >> 8) & 0xff)
321#define GetBValue(rgb) (((rgb) >> 16) & 0xff)
322
323#define COLOR_SCROLLBAR 0
324#define COLOR_BACKGROUND 1
325#define COLOR_ACTIVECAPTION 2
326#define COLOR_INACTIVECAPTION 3
327#define COLOR_MENU 4
328#define COLOR_WINDOW 5
329#define COLOR_WINDOWFRAME 6
330#define COLOR_MENUTEXT 7
331#define COLOR_WINDOWTEXT 8
332#define COLOR_CAPTIONTEXT 9
333#define COLOR_ACTIVEBORDER 10
334#define COLOR_INACTIVEBORDER 11
335#define COLOR_APPWORKSPACE 12
336#define COLOR_HIGHLIGHT 13
337#define COLOR_HIGHLIGHTTEXT 14
338#define COLOR_BTNFACE 15
339#define COLOR_BTNSHADOW 16
340#define COLOR_GRAYTEXT 17
341#define COLOR_BTNTEXT 18
342#define COLOR_INACTIVECAPTIONTEXT 19
343#define COLOR_BTNHIGHLIGHT 20
344/* win95 colors */
345#define COLOR_3DDKSHADOW 21
346#define COLOR_3DLIGHT 22
347#define COLOR_INFOTEXT 23
348#define COLOR_INFOBK 24
349#define COLOR_DESKTOP COLOR_BACKGROUND
350#define COLOR_3DFACE COLOR_BTNFACE
351#define COLOR_3DSHADOW COLOR_BTNSHADOW
352#define COLOR_3DHIGHLIGHT COLOR_BTNHIGHLIGHT
353#define COLOR_3DHILIGHT COLOR_BTNHIGHLIGHT
354#define COLOR_BTNHILIGHT COLOR_BTNHIGHLIGHT
355/* win98 colors */
356#define COLOR_ALTERNATEBTNFACE 25 /* undocumented, constant's name unknown */
357#define COLOR_HOTLIGHT 26
358#define COLOR_GRADIENTACTIVECAPTION 27
359#define COLOR_GRADIENTINACTIVECAPTION 28
360
361 /* WM_CTLCOLOR values */
362#define CTLCOLOR_MSGBOX 0
363#define CTLCOLOR_EDIT 1
364#define CTLCOLOR_LISTBOX 2
365#define CTLCOLOR_BTN 3
366#define CTLCOLOR_DLG 4
367#define CTLCOLOR_SCROLLBAR 5
368#define CTLCOLOR_STATIC 6
369
370#define ICM_OFF 1
371#define ICM_ON 2
372#define ICM_QUERY 3
373
374 /* Bounds Accumulation APIs */
375#define DCB_RESET 0x0001
376#define DCB_ACCUMULATE 0x0002
377#define DCB_DIRTY DCB_ACCUMULATE
378#define DCB_SET (DCB_RESET | DCB_ACCUMULATE)
379#define DCB_ENABLE 0x0004
380#define DCB_DISABLE 0x0008
381
382 /* Bitmaps */
383typedef struct
384{
385 INT bmType;
386 INT bmWidth;
387 INT bmHeight;
388 INT bmWidthBytes;
389 WORD bmPlanes;
390 WORD bmBitsPixel;
391 LPVOID bmBits WINE_PACKED;
392} BITMAP, *LPBITMAP;
393
394
395 /* Brushes */
396typedef struct
397{
398 UINT lbStyle;
399 COLORREF lbColor;
400 INT lbHatch;
401} LOGBRUSH, *LPLOGBRUSH;
402
403
404 /* Brush styles */
405#define BS_SOLID 0
406#define BS_NULL 1
407#define BS_HOLLOW 1
408#define BS_HATCHED 2
409#define BS_PATTERN 3
410#define BS_INDEXED 4
411#define BS_DIBPATTERN 5
412#define BS_DIBPATTERNPT 6
413#define BS_PATTERN8X8 7
414#define BS_DIBPATTERN8X8 8
415#define BS_MONOPATTERN 9
416
417 /* Hatch styles */
418#define HS_HORIZONTAL 0
419#define HS_VERTICAL 1
420#define HS_FDIAGONAL 2
421#define HS_BDIAGONAL 3
422#define HS_CROSS 4
423#define HS_DIAGCROSS 5
424
425 /* Fonts */
426
427#define LF_FACESIZE 32
428#define LF_FULLFACESIZE 64
429
430#define RASTER_FONTTYPE 0x0001
431#define DEVICE_FONTTYPE 0x0002
432#define TRUETYPE_FONTTYPE 0x0004
433
434typedef struct
435{
436 INT lfHeight;
437 INT lfWidth;
438 INT lfEscapement;
439 INT lfOrientation;
440 INT lfWeight;
441 BYTE lfItalic;
442 BYTE lfUnderline;
443 BYTE lfStrikeOut;
444 BYTE lfCharSet;
445 BYTE lfOutPrecision;
446 BYTE lfClipPrecision;
447 BYTE lfQuality;
448 BYTE lfPitchAndFamily;
449 CHAR lfFaceName[LF_FACESIZE];
450} LOGFONTA, *PLOGFONTA, *LPLOGFONTA;
451
452typedef struct
453{
454 INT lfHeight;
455 INT lfWidth;
456 INT lfEscapement;
457 INT lfOrientation;
458 INT lfWeight;
459 BYTE lfItalic;
460 BYTE lfUnderline;
461 BYTE lfStrikeOut;
462 BYTE lfCharSet;
463 BYTE lfOutPrecision;
464 BYTE lfClipPrecision;
465 BYTE lfQuality;
466 BYTE lfPitchAndFamily;
467 WCHAR lfFaceName[LF_FACESIZE];
468} LOGFONTW, *PLOGFONTW, *LPLOGFONTW;
469
470DECL_WINELIB_TYPE_AW(LOGFONT)
471DECL_WINELIB_TYPE_AW(PLOGFONT)
472DECL_WINELIB_TYPE_AW(LPLOGFONT)
473
474typedef struct
475{
476 LOGFONTA elfLogFont;
477 BYTE elfFullName[LF_FULLFACESIZE] WINE_PACKED;
478 BYTE elfStyle[LF_FACESIZE] WINE_PACKED;
479} ENUMLOGFONTA, *LPENUMLOGFONTA;
480
481typedef struct
482{
483 LOGFONTW elfLogFont;
484 WCHAR elfFullName[LF_FULLFACESIZE] WINE_PACKED;
485 WCHAR elfStyle[LF_FACESIZE] WINE_PACKED;
486} ENUMLOGFONTW, *LPENUMLOGFONTW;
487
488typedef struct
489{
490 LOGFONTA elfLogFont;
491 BYTE elfFullName[LF_FULLFACESIZE] WINE_PACKED;
492 BYTE elfStyle[LF_FACESIZE] WINE_PACKED;
493 BYTE elfScript[LF_FACESIZE] WINE_PACKED;
494} ENUMLOGFONTEXA,*LPENUMLOGFONTEXA;
495
496typedef struct
497{
498 LOGFONTW elfLogFont;
499 WCHAR elfFullName[LF_FULLFACESIZE] WINE_PACKED;
500 WCHAR elfStyle[LF_FACESIZE] WINE_PACKED;
501 WCHAR elfScript[LF_FACESIZE] WINE_PACKED;
502} ENUMLOGFONTEXW,*LPENUMLOGFONTEXW;
503
504DECL_WINELIB_TYPE_AW(ENUMLOGFONT)
505DECL_WINELIB_TYPE_AW(LPENUMLOGFONT)
506DECL_WINELIB_TYPE_AW(LPENUMLOGFONTEX)
507
508/*
509 * The FONTSIGNATURE tells which Unicode ranges and which code pages
510 * have glyphs in a font.
511 *
512 * fsUsb 128-bit bitmap. The most significant bits are 10 (magic number).
513 * The remaining 126 bits map the Unicode ISO 10646 subranges
514 * for which the font provides glyphs.
515 *
516 * fsCsb 64-bit bitmap. The low 32 bits map the Windows codepages for
517 * which the font provides glyphs. The high 32 bits are for
518 * non Windows codepages.
519 */
520typedef struct
521{
522 DWORD fsUsb[4];
523 DWORD fsCsb[2];
524} FONTSIGNATURE,*LPFONTSIGNATURE;
525
526typedef struct
527{
528 UINT ciCharset; /* character set */
529 UINT ciACP; /* ANSI code page */
530 FONTSIGNATURE fs;
531} CHARSETINFO,*LPCHARSETINFO;
532
533/* Flags for TranslateCharsetInfo */
534#define TCI_SRCCHARSET 1
535#define TCI_SRCCODEPAGE 2
536#define TCI_SRCFONTSIG 3
537
538/* Flags for ModifyWorldTransform */
539#define MWT_IDENTITY 1
540#define MWT_LEFTMULTIPLY 2
541#define MWT_RIGHTMULTIPLY 3
542
543/* Object Definitions for EnumObjects() */
544#define OBJ_PEN 1
545#define OBJ_BRUSH 2
546#define OBJ_DC 3
547#define OBJ_METADC 4
548#define OBJ_PAL 5
549#define OBJ_FONT 6
550#define OBJ_BITMAP 7
551#define OBJ_REGION 8
552#define OBJ_METAFILE 9
553#define OBJ_MEMDC 10
554#define OBJ_EXTPEN 11
555#define OBJ_ENHMETADC 12
556#define OBJ_ENHMETAFILE 13
557
558
559typedef struct
560{
561 FLOAT eM11;
562 FLOAT eM12;
563 FLOAT eM21;
564 FLOAT eM22;
565 FLOAT eDx;
566 FLOAT eDy;
567} XFORM, *LPXFORM;
568
569 /* lfWeight values */
570#define FW_DONTCARE 0
571#define FW_THIN 100
572#define FW_EXTRALIGHT 200
573#define FW_ULTRALIGHT 200
574#define FW_LIGHT 300
575#define FW_NORMAL 400
576#define FW_REGULAR 400
577#define FW_MEDIUM 500
578#define FW_SEMIBOLD 600
579#define FW_DEMIBOLD 600
580#define FW_BOLD 700
581#define FW_EXTRABOLD 800
582#define FW_ULTRABOLD 800
583#define FW_HEAVY 900
584#define FW_BLACK 900
585
586 /* lfCharSet values */
587#define ANSI_CHARSET (BYTE)0 /* CP1252, ansi-0, iso8859-{1,15} */
588#define DEFAULT_CHARSET (BYTE)1
589#define SYMBOL_CHARSET (BYTE)2
590#define SHIFTJIS_CHARSET (BYTE)128 /* CP932 */
591#define HANGEUL_CHARSET (BYTE)129 /* CP949, ksc5601.1987-0 */
592#define HANGUL_CHARSET HANGEUL_CHARSET
593#define GB2312_CHARSET (BYTE)134 /* CP936, gb2312.1980-0 */
594#define CHINESEBIG5_CHARSET (BYTE)136 /* CP950, big5.et-0 */
595#define GREEK_CHARSET (BYTE)161 /* CP1253 */
596#define TURKISH_CHARSET (BYTE)162 /* CP1254, -iso8859-9 */
597#define HEBREW_CHARSET (BYTE)177 /* CP1255, -iso8859-8 */
598#define ARABIC_CHARSET (BYTE)178 /* CP1256, -iso8859-6 */
599#define BALTIC_CHARSET (BYTE)186 /* CP1257, -iso8859-10 */
600#define RUSSIAN_CHARSET (BYTE)204 /* CP1251, -iso8859-5 */
601#define EE_CHARSET (BYTE)238 /* CP1250, -iso8859-2 */
602#define EASTEUROPE_CHARSET EE_CHARSET
603#define THAI_CHARSET (BYTE)222 /* CP874, iso8859-11, tis620 */
604#define JOHAB_CHARSET (BYTE)130 /* korean (johab) CP1361 */
605#define OEM_CHARSET (BYTE)255
606/* I don't know if the values of *_CHARSET macros are defined in Windows
607 * or if we can choose them as we want. -- srtxg
608 */
609#define VISCII_CHARSET (BYTE)240 /* viscii1.1-1 */
610#define TCVN_CHARSET (BYTE)241 /* tcvn-0 */
611#define KOI8_CHARSET (BYTE)242 /* koi8-{r,u,ru} */
612#define ISO3_CHARSET (BYTE)243 /* iso8859-3 */
613#define ISO4_CHARSET (BYTE)244 /* iso8859-4 */
614
615 /* lfOutPrecision values */
616#define OUT_DEFAULT_PRECIS 0
617#define OUT_STRING_PRECIS 1
618#define OUT_CHARACTER_PRECIS 2
619#define OUT_STROKE_PRECIS 3
620#define OUT_TT_PRECIS 4
621#define OUT_DEVICE_PRECIS 5
622#define OUT_RASTER_PRECIS 6
623#define OUT_TT_ONLY_PRECIS 7
624
625 /* lfClipPrecision values */
626#define CLIP_DEFAULT_PRECIS 0x00
627#define CLIP_CHARACTER_PRECIS 0x01
628#define CLIP_STROKE_PRECIS 0x02
629#define CLIP_MASK 0x0F
630#define CLIP_LH_ANGLES 0x10
631#define CLIP_TT_ALWAYS 0x20
632#define CLIP_EMBEDDED 0x80
633
634 /* lfQuality values */
635#define DEFAULT_QUALITY 0
636#define DRAFT_QUALITY 1
637#define PROOF_QUALITY 2
638
639 /* lfPitchAndFamily pitch values */
640#define DEFAULT_PITCH 0x00
641#define FIXED_PITCH 0x01
642#define VARIABLE_PITCH 0x02
643#define FF_DONTCARE 0x00
644#define FF_ROMAN 0x10
645#define FF_SWISS 0x20
646#define FF_MODERN 0x30
647#define FF_SCRIPT 0x40
648#define FF_DECORATIVE 0x50
649
650typedef struct
651{
652 INT tmHeight;
653 INT tmAscent;
654 INT tmDescent;
655 INT tmInternalLeading;
656 INT tmExternalLeading;
657 INT tmAveCharWidth;
658 INT tmMaxCharWidth;
659 INT tmWeight;
660 INT tmOverhang;
661 INT tmDigitizedAspectX;
662 INT tmDigitizedAspectY;
663 BYTE tmFirstChar;
664 BYTE tmLastChar;
665 BYTE tmDefaultChar;
666 BYTE tmBreakChar;
667 BYTE tmItalic;
668 BYTE tmUnderlined;
669 BYTE tmStruckOut;
670 BYTE tmPitchAndFamily;
671 BYTE tmCharSet;
672} TEXTMETRICA, *LPTEXTMETRICA;
673
674typedef struct
675{
676 INT tmHeight;
677 INT tmAscent;
678 INT tmDescent;
679 INT tmInternalLeading;
680 INT tmExternalLeading;
681 INT tmAveCharWidth;
682 INT tmMaxCharWidth;
683 INT tmWeight;
684 INT tmOverhang;
685 INT tmDigitizedAspectX;
686 INT tmDigitizedAspectY;
687 WCHAR tmFirstChar;
688 WCHAR tmLastChar;
689 WCHAR tmDefaultChar;
690 WCHAR tmBreakChar;
691 BYTE tmItalic;
692 BYTE tmUnderlined;
693 BYTE tmStruckOut;
694 BYTE tmPitchAndFamily;
695 BYTE tmCharSet;
696} TEXTMETRICW, *LPTEXTMETRICW;
697
698DECL_WINELIB_TYPE_AW(TEXTMETRIC)
699DECL_WINELIB_TYPE_AW(LPTEXTMETRIC)
700
701
702typedef struct tagPANOSE
703{
704 BYTE bFamilyType;
705 BYTE bSerifStyle;
706 BYTE bWeight;
707 BYTE bProportion;
708 BYTE bContrast;
709 BYTE bStrokeVariation;
710 BYTE bArmStyle;
711 BYTE bLetterform;
712 BYTE bMidline;
713 BYTE bXHeight;
714} PANOSE;
715
716#define PAN_CULTURE_LATIN 0
717
718#define PAN_ANY 0
719#define PAN_NO_FIT 1
720
721#define PAN_FAMILY_TEXT_DISPLAY 2
722#define PAN_FAMILY_SCRIPT 3
723#define PAN_FAMILY_DECORATIVE 4
724#define PAN_FAMILY_PICTORIAL 5
725
726#define PAN_SERIF_COVE 2
727#define PAN_SERIF_OBTUSE_COVE 3
728#define PAN_SERIF_SQUARE_COVE 4
729#define PAN_SERIF_OBTUSE_SQUARE_COVE 5
730#define PAN_SERIF_SQUARE 6
731#define PAN_SERIF_THIN 7
732#define PAN_SERIF_BONE 8
733#define PAN_SERIF_EXAGGERATED 9
734#define PAN_SERIF_TRIANGLE 10
735#define PAN_SERIF_NORMAL_SANS 11
736#define PAN_SERIF_OBTUSE_SANS 12
737#define PAN_SERIF_PERP_SANS 13
738#define PAN_SERIF_FLARED 14
739#define PAN_SERIF_ROUNDED 15
740
741#define PAN_WEIGHT_VERY_LIGHT 2
742#define PAN_WEIGHT_LIGHT 3
743#define PAN_WEIGHT_THIN 4
744#define PAN_WEIGHT_BOOK 5
745#define PAN_WEIGHT_MEDIUM 6
746#define PAN_WEIGHT_DEMI 7
747#define PAN_WEIGHT_BOLD 8
748#define PAN_WEIGHT_HEAVY 9
749#define PAN_WEIGHT_BLACK 10
750#define PAN_WEIGHT_NORD 11
751
752#define PAN_PROP_OLD_STYLE 2
753#define PAN_PROP_MODERN 3
754#define PAN_PROP_EVEN_WIDTH 4
755#define PAN_PROP_EXPANDED 5
756#define PAN_PROP_CONDENSED 6
757#define PAN_PROP_VERY_EXPANDED 7
758#define PAN_PROP_VERY_CONDENSED 8
759#define PAN_PROP_MONOSPACED 9
760
761#define PAN_CONTRAST_NONE 2
762#define PAN_CONTRAST_VERY_LOW 3
763#define PAN_CONTRAST_LOW 4
764#define PAN_CONTRAST_MEDIUM_LOW 5
765#define PAN_CONTRAST_MEDIUM 6
766#define PAN_CONTRAST_MEDIUM_HIGH 7
767#define PAN_CONTRAST_HIGH 8
768#define PAN_CONTRAST_VERY_HIGH 9
769
770#define PAN_STROKE_GRADUAL_DIAG 2
771#define PAN_STROKE_GRADUAL_TRAN 3
772#define PAN_STROKE_GRADUAL_VERT 4
773#define PAN_STROKE_GRADUAL_HORZ 5
774#define PAN_STROKE_RAPID_VERT 6
775#define PAN_STROKE_RAPID_HORZ 7
776#define PAN_STROKE_INSTANT_VERT 8
777
778#define PAN_STRAIGHT_ARMS_HORZ 2
779#define PAN_STRAIGHT_ARMS_WEDGE 3
780#define PAN_STRAIGHT_ARMS_VERT 4
781#define PAN_STRAIGHT_ARMS_SINGLE_SERIF 5
782#define PAN_STRAIGHT_ARMS_DOUBLE_SERIF 6
783#define PAN_BENT_ARMS_HORZ 7
784#define PAN_BENT_ARMS_WEDGE 8
785#define PAN_BENT_ARMS_VERT 9
786#define PAN_BENT_ARMS_SINGLE_SERIF 10
787#define PAN_BENT_ARMS_DOUBLE_SERIF 11
788
789#define PAN_LETT_NORMAL_COMPACT 2
790#define PAN_LETT_NORMAL_WEIGHTED 3
791#define PAN_LETT_NORMAL_BOXED 4
792#define PAN_LETT_NORMAL_FLATTENED 5
793#define PAN_LETT_NORMAL_ROUNDED 6
794#define PAN_LETT_NORMAL_OFF_CENTER 7
795#define PAN_LETT_NORMAL_SQUARE 8
796#define PAN_LETT_OBLIQUE_COMPACT 9
797#define PAN_LETT_OBLIQUE_WEIGHTED 10
798#define PAN_LETT_OBLIQUE_BOXED 11
799#define PAN_LETT_OBLIQUE_FLATTENED 12
800#define PAN_LETT_OBLIQUE_ROUNDED 13
801#define PAN_LETT_OBLIQUE_OFF_CENTER 14
802#define PAN_LETT_OBLIQUE_SQUARE 15
803
804#define PAN_MIDLINE_STANDARD_TRIMMED 2
805#define PAN_MIDLINE_STANDARD_POINTED 3
806#define PAN_MIDLINE_STANDARD_SERIFED 4
807#define PAN_MIDLINE_HIGH_TRIMMED 5
808#define PAN_MIDLINE_HIGH_POINTED 6
809#define PAN_MIDLINE_HIGH_SERIFED 7
810#define PAN_MIDLINE_CONSTANT_TRIMMED 8
811#define PAN_MIDLINE_CONSTANT_POINTED 9
812#define PAN_MIDLINE_CONSTANT_SERIFED 10
813#define PAN_MIDLINE_LOW_TRIMMED 11
814#define PAN_MIDLINE_LOW_POINTED 12
815#define PAN_MIDLINE_LOW_SERIFED 13
816
817#define PAN_XHEIGHT_CONSTANT_SMALL 2
818#define PAN_XHEIGHT_CONSTANT_STANDARD 3
819#define PAN_XHEIGHT_CONSTANT_LARGE 4
820#define PAN_XHEIGHT_DUCKING_SMALL 5
821#define PAN_XHEIGHT_DUCKING_STANDARD 6
822#define PAN_XHEIGHT_DUCKING_LARGE 7
823
824#define ELF_VENDOR_SIZE 4
825typedef struct
826{
827 LOGFONTA elfLogFont;
828 BYTE elfFullName[LF_FULLFACESIZE];
829 BYTE elfStyle[LF_FACESIZE];
830 DWORD elfVersion;
831 DWORD elfStyleSize;
832 DWORD elfMatch;
833 DWORD elfReserved;
834 BYTE elfVendorId[ELF_VENDOR_SIZE];
835 DWORD elfCulture;
836 PANOSE elfPanose;
837} EXTLOGFONTA, *PEXTLOGFONTA;
838
839typedef struct
840{
841 LOGFONTW elfLogFont;
842 WCHAR elfFullName[LF_FULLFACESIZE];
843 WCHAR elfStyle[LF_FACESIZE];
844 DWORD elfVersion;
845 DWORD elfStyleSize;
846 DWORD elfMatch;
847 DWORD elfReserved;
848 BYTE elfVendorId[ELF_VENDOR_SIZE];
849 DWORD elfCulture;
850 PANOSE elfPanose;
851} EXTLOGFONTW, *PEXTLOGFONTW;
852
853DECL_WINELIB_TYPE_AW(EXTLOGFONT)
854DECL_WINELIB_TYPE_AW(PEXTLOGFONT)
855
856typedef struct _OUTLINETEXTMETRICA
857{
858 UINT otmSize;
859 TEXTMETRICA otmTextMetrics;
860 BYTE otmFilter;
861 PANOSE otmPanoseNumber;
862 UINT otmfsSelection;
863 UINT otmfsType;
864 INT otmsCharSlopeRise;
865 INT otmsCharSlopeRun;
866 INT otmItalicAngle;
867 UINT otmEMSquare;
868 INT otmAscent;
869 INT otmDescent;
870 UINT otmLineGap;
871 UINT otmsCapEmHeight;
872 UINT otmsXHeight;
873 RECT otmrcFontBox;
874 INT otmMacAscent;
875 INT otmMacDescent;
876 UINT otmMacLineGap;
877 UINT otmusMinimumPPEM;
878 POINT otmptSubscriptSize;
879 POINT otmptSubscriptOffset;
880 POINT otmptSuperscriptSize;
881 POINT otmptSuperscriptOffset;
882 UINT otmsStrikeoutSize;
883 INT otmsStrikeoutPosition;
884 INT otmsUnderscoreSize;
885 INT otmsUnderscorePosition;
886 LPSTR otmpFamilyName;
887 LPSTR otmpFaceName;
888 LPSTR otmpStyleName;
889 LPSTR otmpFullName;
890} OUTLINETEXTMETRICA, *LPOUTLINETEXTMETRICA;
891
892typedef struct _OUTLINETEXTMETRICW
893{
894 UINT otmSize;
895 TEXTMETRICW otmTextMetrics;
896 BYTE otmFilter;
897 PANOSE otmPanoseNumber;
898 UINT otmfsSelection;
899 UINT otmfsType;
900 INT otmsCharSlopeRise;
901 INT otmsCharSlopeRun;
902 INT otmItalicAngle;
903 UINT otmEMSquare;
904 INT otmAscent;
905 INT otmDescent;
906 UINT otmLineGap;
907 UINT otmsCapEmHeight;
908 UINT otmsXHeight;
909 RECT otmrcFontBox;
910 INT otmMacAscent;
911 INT otmMacDescent;
912 UINT otmMacLineGap;
913 UINT otmusMinimumPPEM;
914 POINT otmptSubscriptSize;
915 POINT otmptSubscriptOffset;
916 POINT otmptSuperscriptSize;
917 POINT otmptSuperscriptOffset;
918 UINT otmsStrikeoutSize;
919 INT otmsStrikeoutPosition;
920 INT otmsUnderscoreSize;
921 INT otmsUnderscorePosition;
922 LPSTR otmpFamilyName;
923 LPSTR otmpFaceName;
924 LPSTR otmpStyleName;
925 LPSTR otmpFullName;
926} OUTLINETEXTMETRICW, *LPOUTLINETEXTMETRICW;
927
928DECL_WINELIB_TYPE_AW(OUTLINETEXTMETRIC)
929DECL_WINELIB_TYPE_AW(LPOUTLINETEXTMETRIC)
930
931
932
933/* ntmFlags field flags */
934#define NTM_REGULAR 0x00000040L
935#define NTM_BOLD 0x00000020L
936#define NTM_ITALIC 0x00000001L
937
938typedef struct
939{
940 INT tmHeight;
941 INT tmAscent;
942 INT tmDescent;
943 INT tmInternalLeading;
944 INT tmExternalLeading;
945 INT tmAveCharWidth;
946 INT tmMaxCharWidth;
947 INT tmWeight;
948 INT tmOverhang;
949 INT tmDigitizedAspectX;
950 INT tmDigitizedAspectY;
951 BYTE tmFirstChar;
952 BYTE tmLastChar;
953 BYTE tmDefaultChar;
954 BYTE tmBreakChar;
955 BYTE tmItalic;
956 BYTE tmUnderlined;
957 BYTE tmStruckOut;
958 BYTE tmPitchAndFamily;
959 BYTE tmCharSet;
960 DWORD ntmFlags;
961 UINT ntmSizeEM;
962 UINT ntmCellHeight;
963 UINT ntmAvgWidth;
964} NEWTEXTMETRICA, *LPNEWTEXTMETRICA;
965
966typedef struct
967{
968 INT tmHeight;
969 INT tmAscent;
970 INT tmDescent;
971 INT tmInternalLeading;
972 INT tmExternalLeading;
973 INT tmAveCharWidth;
974 INT tmMaxCharWidth;
975 INT tmWeight;
976 INT tmOverhang;
977 INT tmDigitizedAspectX;
978 INT tmDigitizedAspectY;
979 WCHAR tmFirstChar;
980 WCHAR tmLastChar;
981 WCHAR tmDefaultChar;
982 WCHAR tmBreakChar;
983 BYTE tmItalic;
984 BYTE tmUnderlined;
985 BYTE tmStruckOut;
986 BYTE tmPitchAndFamily;
987 BYTE tmCharSet;
988 DWORD ntmFlags;
989 UINT ntmSizeEM;
990 UINT ntmCellHeight;
991 UINT ntmAvgWidth;
992} NEWTEXTMETRICW, *LPNEWTEXTMETRICW;
993
994DECL_WINELIB_TYPE_AW(NEWTEXTMETRIC)
995DECL_WINELIB_TYPE_AW(LPNEWTEXTMETRIC)
996
997typedef struct
998{
999 NEWTEXTMETRICA ntmetm;
1000 FONTSIGNATURE ntmeFontSignature;
1001} NEWTEXTMETRICEXA,*LPNEWTEXTMETRICEXA;
1002
1003typedef struct
1004{
1005 NEWTEXTMETRICW ntmetm;
1006 FONTSIGNATURE ntmeFontSignature;
1007} NEWTEXTMETRICEXW,*LPNEWTEXTMETRICEXW;
1008
1009DECL_WINELIB_TYPE_AW(NEWTEXTMETRICEX)
1010DECL_WINELIB_TYPE_AW(LPNEWTEXTMETRICEX)
1011
1012typedef INT (* CALLBACK FONTENUMPROCA)(LPENUMLOGFONTA,LPNEWTEXTMETRICA,
1013 UINT,LPARAM);
1014typedef INT (* CALLBACK FONTENUMPROCW)(LPENUMLOGFONTW,LPNEWTEXTMETRICW,
1015 UINT,LPARAM);
1016DECL_WINELIB_TYPE_AW(FONTENUMPROC)
1017
1018typedef INT (* CALLBACK FONTENUMPROCEXA)(LPENUMLOGFONTEXA,LPNEWTEXTMETRICEXA,UINT,LPARAM);
1019typedef INT (* CALLBACK FONTENUMPROCEXW)(LPENUMLOGFONTEXW,LPNEWTEXTMETRICEXW,UINT,LPARAM);
1020DECL_WINELIB_TYPE_AW(FONTENUMPROCEX)
1021
1022 /* tmPitchAndFamily bits */
1023#define TMPF_FIXED_PITCH 1 /* means variable pitch */
1024#define TMPF_VECTOR 2
1025#define TMPF_TRUETYPE 4
1026#define TMPF_DEVICE 8
1027
1028 /* Text alignment */
1029#define TA_NOUPDATECP 0x00
1030#define TA_UPDATECP 0x01
1031#define TA_LEFT 0x00
1032#define TA_RIGHT 0x02
1033#define TA_CENTER 0x06
1034#define TA_TOP 0x00
1035#define TA_BOTTOM 0x08
1036#define TA_BASELINE 0x18
1037
1038 /* ExtTextOut() parameters */
1039#define ETO_GRAYED 0x01
1040#define ETO_OPAQUE 0x02
1041#define ETO_CLIPPED 0x04
1042
1043typedef struct
1044{
1045 UINT gmBlackBoxX;
1046 UINT gmBlackBoxY;
1047 POINT gmptGlyphOrigin;
1048 INT16 gmCellIncX;
1049 INT16 gmCellIncY;
1050} GLYPHMETRICS, *LPGLYPHMETRICS;
1051
1052
1053#define GGO_METRICS 0
1054#define GGO_BITMAP 1
1055#define GGO_NATIVE 2
1056
1057typedef struct
1058{
1059 UINT16 fract;
1060 INT16 value;
1061} FIXED;
1062
1063typedef struct tagPOINTFX
1064{
1065 FIXED x;
1066 FIXED y;
1067} POINTFX, *LPPOINTFX;
1068
1069typedef struct tagTTPOLYCURVE
1070{
1071 WORD wType;
1072 WORD cpfx;
1073 POINTFX apfx[1];
1074} TTPOLYCURVE, *LPTTPOLYCURVE;
1075
1076typedef struct tagTTPOLYGONHEADER
1077{
1078 DWORD cb;
1079 DWORD dwType;
1080 POINTFX pfxStart;
1081} TTPOLYGONHEADER, *LPTTPOLYGONHEADER;
1082
1083typedef struct
1084{
1085 FIXED eM11;
1086 FIXED eM12;
1087 FIXED eM21;
1088 FIXED eM22;
1089} MAT2, *LPMAT2;
1090
1091 /* for GetCharABCWidths() */
1092typedef struct
1093{
1094 INT abcA;
1095 UINT abcB;
1096 INT abcC;
1097} ABC, *LPABC;
1098
1099
1100 /* for GetCharacterPlacement () */
1101typedef struct tagGCP_RESULTSA
1102{
1103 DWORD lStructSize;
1104 LPSTR lpOutString;
1105 UINT *lpOrder;
1106 INT *lpDx;
1107 INT *lpCaretPos;
1108 LPSTR lpClass;
1109 UINT *lpGlyphs;
1110 UINT nGlyphs;
1111 UINT nMaxFit;
1112} GCP_RESULTSA;
1113
1114typedef struct tagGCP_RESULTSW
1115{
1116 DWORD lStructSize;
1117 LPWSTR lpOutString;
1118 UINT *lpOrder;
1119 INT *lpDx;
1120 INT *lpCaretPos;
1121 LPWSTR lpClass;
1122 UINT *lpGlyphs;
1123 UINT nGlyphs;
1124 UINT nMaxFit;
1125} GCP_RESULTSW;
1126
1127DECL_WINELIB_TYPE_AW(GCP_RESULTS)
1128
1129 /* Rasterizer status */
1130typedef struct
1131{
1132 INT16 nSize;
1133 INT16 wFlags;
1134 INT16 nLanguageID;
1135} RASTERIZER_STATUS, *LPRASTERIZER_STATUS;
1136
1137#define TT_AVAILABLE 0x0001
1138#define TT_ENABLED 0x0002
1139
1140#define TT_PRIM_LINE 1
1141#define TT_PRIM_QSPLINE 2
1142#define TT_POLYGON_TYPE 24
1143
1144/* Get/SetSystemPaletteUse() values */
1145#define SYSPAL_STATIC 1
1146#define SYSPAL_NOSTATIC 2
1147
1148typedef struct tagPALETTEENTRY
1149{
1150 BYTE peRed, peGreen, peBlue, peFlags;
1151} PALETTEENTRY, *PPALETTEENTRY, *LPPALETTEENTRY;
1152
1153/* Logical palette entry flags */
1154#define PC_RESERVED 0x01
1155#define PC_EXPLICIT 0x02
1156#define PC_NOCOLLAPSE 0x04
1157
1158typedef struct
1159{
1160 WORD palVersion;
1161 WORD palNumEntries;
1162 PALETTEENTRY palPalEntry[1] WINE_PACKED;
1163} LOGPALETTE, *PLOGPALETTE, *LPLOGPALETTE;
1164
1165 /* Pens */
1166typedef struct
1167{
1168 UINT lopnStyle;
1169 POINT lopnWidth WINE_PACKED;
1170 COLORREF lopnColor WINE_PACKED;
1171} LOGPEN, *LPLOGPEN;
1172
1173
1174typedef struct tagEXTLOGPEN
1175{
1176 DWORD elpPenStyle;
1177 DWORD elpWidth;
1178 DWORD elpBrushStyle;
1179 DWORD elpColor;
1180 DWORD elpNumEntries;
1181 DWORD elpStyleEntry[1];
1182} EXTLOGPEN, *PEXTLOGPEN, *NPEXTLOGPEN, *LPEXTLOGPEN;
1183
1184#define PS_SOLID 0x00000000
1185#define PS_DASH 0x00000001
1186#define PS_DOT 0x00000002
1187#define PS_DASHDOT 0x00000003
1188#define PS_DASHDOTDOT 0x00000004
1189#define PS_NULL 0x00000005
1190#define PS_INSIDEFRAME 0x00000006
1191#define PS_USERSTYLE 0x00000007
1192#define PS_ALTERNATE 0x00000008
1193#define PS_STYLE_MASK 0x0000000f
1194
1195#define PS_ENDCAP_ROUND 0x00000000
1196#define PS_ENDCAP_SQUARE 0x00000100
1197#define PS_ENDCAP_FLAT 0x00000200
1198#define PS_ENDCAP_MASK 0x00000f00
1199
1200#define PS_JOIN_ROUND 0x00000000
1201#define PS_JOIN_BEVEL 0x00001000
1202#define PS_JOIN_MITER 0x00002000
1203#define PS_JOIN_MASK 0x0000f000
1204
1205#define PS_COSMETIC 0x00000000
1206#define PS_GEOMETRIC 0x00010000
1207#define PS_TYPE_MASK 0x000f0000
1208
1209 /* Regions */
1210
1211#define ERROR 0
1212#define NULLREGION 1
1213#define SIMPLEREGION 2
1214#define COMPLEXREGION 3
1215
1216#define RGN_AND 1
1217#define RGN_OR 2
1218#define RGN_XOR 3
1219#define RGN_DIFF 4
1220#define RGN_COPY 5
1221
1222 /* Device contexts */
1223
1224/* GetDCEx flags */
1225#define DCX_WINDOW 0x00000001
1226#define DCX_CACHE 0x00000002
1227#define DCX_CLIPCHILDREN 0x00000008
1228#define DCX_CLIPSIBLINGS 0x00000010
1229#define DCX_PARENTCLIP 0x00000020
1230#define DCX_EXCLUDERGN 0x00000040
1231#define DCX_INTERSECTRGN 0x00000080
1232#define DCX_LOCKWINDOWUPDATE 0x00000400
1233#define DCX_USESTYLE 0x00010000
1234
1235 /* Polygon modes */
1236#define ALTERNATE 1
1237#define WINDING 2
1238
1239 /* Background modes */
1240#ifdef TRANSPARENT /*Apparently some broken svr4 includes define TRANSPARENT*/
1241#undef TRANSPARENT
1242#endif
1243#define TRANSPARENT 1
1244#define OPAQUE 2
1245
1246
1247 /* Graphics Modes */
1248#define GM_COMPATIBLE 1
1249#define GM_ADVANCED 2
1250#define GM_LAST 2
1251
1252 /* Arc direction modes */
1253#define AD_COUNTERCLOCKWISE 1
1254#define AD_CLOCKWISE 2
1255
1256 /* Map modes */
1257#define MM_TEXT 1
1258#define MM_LOMETRIC 2
1259#define MM_HIMETRIC 3
1260#define MM_LOENGLISH 4
1261#define MM_HIENGLISH 5
1262#define MM_TWIPS 6
1263#define MM_ISOTROPIC 7
1264#define MM_ANISOTROPIC 8
1265
1266 /* Coordinate modes */
1267#define ABSOLUTE 1
1268#define RELATIVE 2
1269
1270 /* Flood fill modes */
1271#define FLOODFILLBORDER 0
1272#define FLOODFILLSURFACE 1
1273
1274 /* Device parameters for GetDeviceCaps() */
1275#define DRIVERVERSION 0
1276#define TECHNOLOGY 2
1277#define HORZSIZE 4
1278#define VERTSIZE 6
1279#define HORZRES 8
1280#define VERTRES 10
1281#define BITSPIXEL 12
1282#define PLANES 14
1283#define NUMBRUSHES 16
1284#define NUMPENS 18
1285#define NUMMARKERS 20
1286#define NUMFONTS 22
1287#define NUMCOLORS 24
1288#define PDEVICESIZE 26
1289#define CURVECAPS 28
1290#define LINECAPS 30
1291#define POLYGONALCAPS 32
1292#define TEXTCAPS 34
1293#define CLIPCAPS 36
1294#define RASTERCAPS 38
1295#define ASPECTX 40
1296#define ASPECTY 42
1297#define ASPECTXY 44
1298#define LOGPIXELSX 88
1299#define LOGPIXELSY 90
1300#define SIZEPALETTE 104
1301#define NUMRESERVED 106
1302#define COLORRES 108
1303
1304#define PHYSICALWIDTH 110
1305#define PHYSICALHEIGHT 111
1306#define PHYSICALOFFSETX 112
1307#define PHYSICALOFFSETY 113
1308#define SCALINGFACTORX 114
1309#define SCALINGFACTORY 115
1310
1311/* TECHNOLOGY */
1312#define DT_PLOTTER 0
1313#define DT_RASDISPLAY 1
1314#define DT_RASPRINTER 2
1315#define DT_RASCAMERA 3
1316#define DT_CHARSTREAM 4
1317#define DT_METAFILE 5
1318#define DT_DISPFILE 6
1319
1320/* CURVECAPS */
1321#define CC_NONE 0x0000
1322#define CC_CIRCLES 0x0001
1323#define CC_PIE 0x0002
1324#define CC_CHORD 0x0004
1325#define CC_ELLIPSES 0x0008
1326#define CC_WIDE 0x0010
1327#define CC_STYLED 0x0020
1328#define CC_WIDESTYLED 0x0040
1329#define CC_INTERIORS 0x0080
1330#define CC_ROUNDRECT 0x0100
1331
1332/* LINECAPS */
1333#define LC_NONE 0x0000
1334#define LC_POLYLINE 0x0002
1335#define LC_MARKER 0x0004
1336#define LC_POLYMARKER 0x0008
1337#define LC_WIDE 0x0010
1338#define LC_STYLED 0x0020
1339#define LC_WIDESTYLED 0x0040
1340#define LC_INTERIORS 0x0080
1341
1342/* POLYGONALCAPS */
1343#define PC_NONE 0x0000
1344#define PC_POLYGON 0x0001
1345#define PC_RECTANGLE 0x0002
1346#define PC_WINDPOLYGON 0x0004
1347#define PC_SCANLINE 0x0008
1348#define PC_WIDE 0x0010
1349#define PC_STYLED 0x0020
1350#define PC_WIDESTYLED 0x0040
1351#define PC_INTERIORS 0x0080
1352
1353/* TEXTCAPS */
1354#define TC_OP_CHARACTER 0x0001
1355#define TC_OP_STROKE 0x0002
1356#define TC_CP_STROKE 0x0004
1357#define TC_CR_90 0x0008
1358#define TC_CR_ANY 0x0010
1359#define TC_SF_X_YINDEP 0x0020
1360#define TC_SA_DOUBLE 0x0040
1361#define TC_SA_INTEGER 0x0080
1362#define TC_SA_CONTIN 0x0100
1363#define TC_EA_DOUBLE 0x0200
1364#define TC_IA_ABLE 0x0400
1365#define TC_UA_ABLE 0x0800
1366#define TC_SO_ABLE 0x1000
1367#define TC_RA_ABLE 0x2000
1368#define TC_VA_ABLE 0x4000
1369#define TC_RESERVED 0x8000
1370
1371/* CLIPCAPS */
1372#define CP_NONE 0x0000
1373#define CP_RECTANGLE 0x0001
1374#define CP_REGION 0x0002
1375
1376/* RASTERCAPS */
1377#define RC_NONE 0x0000
1378#define RC_BITBLT 0x0001
1379#define RC_BANDING 0x0002
1380#define RC_SCALING 0x0004
1381#define RC_BITMAP64 0x0008
1382#define RC_GDI20_OUTPUT 0x0010
1383#define RC_GDI20_STATE 0x0020
1384#define RC_SAVEBITMAP 0x0040
1385#define RC_DI_BITMAP 0x0080
1386#define RC_PALETTE 0x0100
1387#define RC_DIBTODEV 0x0200
1388#define RC_BIGFONT 0x0400
1389#define RC_STRETCHBLT 0x0800
1390#define RC_FLOODFILL 0x1000
1391#define RC_STRETCHDIB 0x2000
1392#define RC_OP_DX_OUTPUT 0x4000
1393#define RC_DEVBITS 0x8000
1394
1395 /* GetSystemMetrics() codes */
1396#define SM_CXSCREEN 0
1397#define SM_CYSCREEN 1
1398#define SM_CXVSCROLL 2
1399#define SM_CYHSCROLL 3
1400#define SM_CYCAPTION 4
1401#define SM_CXBORDER 5
1402#define SM_CYBORDER 6
1403#define SM_CXDLGFRAME 7
1404#define SM_CYDLGFRAME 8
1405#define SM_CYVTHUMB 9
1406#define SM_CXHTHUMB 10
1407#define SM_CXICON 11
1408#define SM_CYICON 12
1409#define SM_CXCURSOR 13
1410#define SM_CYCURSOR 14
1411#define SM_CYMENU 15
1412#define SM_CXFULLSCREEN 16
1413#define SM_CYFULLSCREEN 17
1414#define SM_CYKANJIWINDOW 18
1415#define SM_MOUSEPRESENT 19
1416#define SM_CYVSCROLL 20
1417#define SM_CXHSCROLL 21
1418#define SM_DEBUG 22
1419#define SM_SWAPBUTTON 23
1420#define SM_RESERVED1 24
1421#define SM_RESERVED2 25
1422#define SM_RESERVED3 26
1423#define SM_RESERVED4 27
1424#define SM_CXMIN 28
1425#define SM_CYMIN 29
1426#define SM_CXSIZE 30
1427#define SM_CYSIZE 31
1428#define SM_CXFRAME 32
1429#define SM_CYFRAME 33
1430#define SM_CXMINTRACK 34
1431#define SM_CYMINTRACK 35
1432#define SM_CXDOUBLECLK 36
1433#define SM_CYDOUBLECLK 37
1434#define SM_CXICONSPACING 38
1435#define SM_CYICONSPACING 39
1436#define SM_MENUDROPALIGNMENT 40
1437#define SM_PENWINDOWS 41
1438#define SM_DBCSENABLED 42
1439#define SM_CMOUSEBUTTONS 43
1440#define SM_CXFIXEDFRAME SM_CXDLGFRAME
1441#define SM_CYFIXEDFRAME SM_CYDLGFRAME
1442#define SM_CXSIZEFRAME SM_CXFRAME
1443#define SM_CYSIZEFRAME SM_CYFRAME
1444#define SM_SECURE 44
1445#define SM_CXEDGE 45
1446#define SM_CYEDGE 46
1447#define SM_CXMINSPACING 47
1448#define SM_CYMINSPACING 48
1449#define SM_CXSMICON 49
1450#define SM_CYSMICON 50
1451#define SM_CYSMCAPTION 51
1452#define SM_CXSMSIZE 52
1453#define SM_CYSMSIZE 53
1454#define SM_CXMENUSIZE 54
1455#define SM_CYMENUSIZE 55
1456#define SM_ARRANGE 56
1457#define SM_CXMINIMIZED 57
1458#define SM_CYMINIMIZED 58
1459#define SM_CXMAXTRACK 59
1460#define SM_CYMAXTRACK 60
1461#define SM_CXMAXIMIZED 61
1462#define SM_CYMAXIMIZED 62
1463#define SM_NETWORK 63
1464#define SM_CLEANBOOT 67
1465#define SM_CXDRAG 68
1466#define SM_CYDRAG 69
1467#define SM_SHOWSOUNDS 70
1468#define SM_CXMENUCHECK 71
1469#define SM_CYMENUCHECK 72
1470#define SM_SLOWMACHINE 73
1471#define SM_MIDEASTENABLED 74
1472#define SM_MOUSEWHEELPRESENT 75
1473#define SM_XVIRTUALSCREEN 76
1474#define SM_YVIRTUALSCREEN 77
1475#define SM_CXVIRTUALSCREEN 78
1476#define SM_CYVIRTUALSCREEN 79
1477#define SM_CMONITORS 80
1478#define SM_SAMEDISPLAYFORMAT 81
1479#define SM_CMETRICS 83
1480
1481
1482 /* Device-independent bitmaps */
1483
1484typedef struct {
1485 BYTE rgbBlue;
1486 BYTE rgbGreen;
1487 BYTE rgbRed;
1488 BYTE rgbReserved;
1489} RGBQUAD, *LPRGBQUAD;
1490
1491typedef struct {
1492 BYTE rgbtBlue;
1493 BYTE rgbtGreen;
1494 BYTE rgbtRed;
1495} RGBTRIPLE;
1496
1497typedef struct
1498{
1499 UINT16 bfType;
1500 DWORD bfSize WINE_PACKED;
1501 UINT16 bfReserved1 WINE_PACKED;
1502 UINT16 bfReserved2 WINE_PACKED;
1503 DWORD bfOffBits WINE_PACKED;
1504} BITMAPFILEHEADER;
1505
1506typedef struct
1507{
1508 DWORD biSize;
1509 LONG biWidth;
1510 LONG biHeight;
1511 WORD biPlanes;
1512 WORD biBitCount;
1513 DWORD biCompression;
1514 DWORD biSizeImage;
1515 LONG biXPelsPerMeter;
1516 LONG biYPelsPerMeter;
1517 DWORD biClrUsed;
1518 DWORD biClrImportant;
1519} BITMAPINFOHEADER, *PBITMAPINFOHEADER, *LPBITMAPINFOHEADER;
1520
1521typedef struct {
1522 DWORD bV4Size;
1523 LONG bV4Width;
1524 LONG bV4Height;
1525 WORD bV4Planes;
1526 WORD bV4BitCount;
1527 DWORD bV4V4Compression;
1528 DWORD bV4SizeImage;
1529 LONG bV4XPelsPerMeter;
1530 LONG bV4YPelsPerMeter;
1531 DWORD bV4ClrUsed;
1532 DWORD bV4ClrImportant;
1533 DWORD bV4RedMask;
1534 DWORD bV4GreenMask;
1535 DWORD bV4BlueMask;
1536 DWORD bV4AlphaMask;
1537 DWORD bV4CSType;
1538 CIEXYZTRIPLE bV4Endpoints;
1539 DWORD bV4GammaRed;
1540 DWORD bV4GammaGreen;
1541 DWORD bV4GammaBlue;
1542} BITMAPV4HEADER, *LPBITMAPV4HEADER, *PBITMAPV4HEADER;
1543
1544 /* biCompression */
1545#define BI_RGB 0
1546#define BI_RLE8 1
1547#define BI_RLE4 2
1548#define BI_BITFIELDS 3
1549
1550typedef struct {
1551 BITMAPINFOHEADER bmiHeader;
1552 RGBQUAD bmiColors[1];
1553} BITMAPINFO;
1554typedef BITMAPINFO *LPBITMAPINFO;
1555typedef BITMAPINFO *NPBITMAPINFO;
1556typedef BITMAPINFO *PBITMAPINFO;
1557
1558typedef struct
1559{
1560 DWORD bcSize;
1561 UINT16 bcWidth;
1562 UINT16 bcHeight;
1563 UINT16 bcPlanes;
1564 UINT16 bcBitCount;
1565} BITMAPCOREHEADER, *LPBITMAPCOREHEADER;
1566
1567typedef struct
1568{
1569 BITMAPCOREHEADER bmciHeader;
1570 RGBTRIPLE bmciColors[1];
1571} BITMAPCOREINFO, *LPBITMAPCOREINFO;
1572
1573#define DIB_RGB_COLORS 0
1574#define DIB_PAL_COLORS 1
1575#define CBM_INIT 4
1576
1577typedef struct
1578{
1579 BITMAP dsBm;
1580 BITMAPINFOHEADER dsBmih;
1581 DWORD dsBitfields[3];
1582 HANDLE dshSection;
1583 DWORD dsOffset;
1584} DIBSECTION,*LPDIBSECTION;
1585
1586 /* Stock GDI objects for GetStockObject() */
1587
1588#define WHITE_BRUSH 0
1589#define LTGRAY_BRUSH 1
1590#define GRAY_BRUSH 2
1591#define DKGRAY_BRUSH 3
1592#define BLACK_BRUSH 4
1593#define NULL_BRUSH 5
1594#define HOLLOW_BRUSH 5
1595#define WHITE_PEN 6
1596#define BLACK_PEN 7
1597#define NULL_PEN 8
1598#define OEM_FIXED_FONT 10
1599#define ANSI_FIXED_FONT 11
1600#define ANSI_VAR_FONT 12
1601#define SYSTEM_FONT 13
1602#define DEVICE_DEFAULT_FONT 14
1603#define DEFAULT_PALETTE 15
1604#define SYSTEM_FIXED_FONT 16
1605#define DEFAULT_GUI_FONT 17
1606
1607#define STOCK_LAST 17
1608
1609/* Metafile header structure */
1610typedef struct
1611{
1612 WORD mtType;
1613 WORD mtHeaderSize;
1614 WORD mtVersion;
1615 DWORD mtSize WINE_PACKED;
1616 WORD mtNoObjects;
1617 DWORD mtMaxRecord WINE_PACKED;
1618 WORD mtNoParameters;
1619} METAHEADER;
1620
1621/* Metafile typical record structure */
1622typedef struct
1623{
1624 DWORD rdSize;
1625 WORD rdFunction;
1626 WORD rdParm[1];
1627} METARECORD;
1628typedef METARECORD *PMETARECORD;
1629typedef METARECORD *LPMETARECORD;
1630
1631/* Handle table structure */
1632typedef struct
1633{
1634 HGDIOBJ objectHandle[1];
1635} HANDLETABLE, *LPHANDLETABLE;
1636
1637
1638/* Clipboard metafile picture structure */
1639typedef struct
1640{
1641 INT mm;
1642 INT xExt;
1643 INT yExt;
1644 HMETAFILE hMF;
1645} METAFILEPICT, *LPMETAFILEPICT;
1646
1647
1648/* Metafile functions */
1649#define META_SETBKCOLOR 0x0201
1650#define META_SETBKMODE 0x0102
1651#define META_SETMAPMODE 0x0103
1652#define META_SETROP2 0x0104
1653#define META_SETRELABS 0x0105
1654#define META_SETPOLYFILLMODE 0x0106
1655#define META_SETSTRETCHBLTMODE 0x0107
1656#define META_SETTEXTCHAREXTRA 0x0108
1657#define META_SETTEXTCOLOR 0x0209
1658#define META_SETTEXTJUSTIFICATION 0x020A
1659#define META_SETWINDOWORG 0x020B
1660#define META_SETWINDOWEXT 0x020C
1661#define META_SETVIEWPORTORG 0x020D
1662#define META_SETVIEWPORTEXT 0x020E
1663#define META_OFFSETWINDOWORG 0x020F
1664#define META_SCALEWINDOWEXT 0x0410
1665#define META_OFFSETVIEWPORTORG 0x0211
1666#define META_SCALEVIEWPORTEXT 0x0412
1667#define META_LINETO 0x0213
1668#define META_MOVETO 0x0214
1669#define META_EXCLUDECLIPRECT 0x0415
1670#define META_INTERSECTCLIPRECT 0x0416
1671#define META_ARC 0x0817
1672#define META_ELLIPSE 0x0418
1673#define META_FLOODFILL 0x0419
1674#define META_PIE 0x081A
1675#define META_RECTANGLE 0x041B
1676#define META_ROUNDRECT 0x061C
1677#define META_PATBLT 0x061D
1678#define META_SAVEDC 0x001E
1679#define META_SETPIXEL 0x041F
1680#define META_OFFSETCLIPRGN 0x0220
1681#define META_TEXTOUT 0x0521
1682#define META_BITBLT 0x0922
1683#define META_STRETCHBLT 0x0B23
1684#define META_POLYGON 0x0324
1685#define META_POLYLINE 0x0325
1686#define META_ESCAPE 0x0626
1687#define META_RESTOREDC 0x0127
1688#define META_FILLREGION 0x0228
1689#define META_FRAMEREGION 0x0429
1690#define META_INVERTREGION 0x012A
1691#define META_PAINTREGION 0x012B
1692#define META_SELECTCLIPREGION 0x012C
1693#define META_SELECTOBJECT 0x012D
1694#define META_SETTEXTALIGN 0x012E
1695#define META_DRAWTEXT 0x062F
1696#define META_CHORD 0x0830
1697#define META_SETMAPPERFLAGS 0x0231
1698#define META_EXTTEXTOUT 0x0A32
1699#define META_SETDIBTODEV 0x0D33
1700#define META_SELECTPALETTE 0x0234
1701#define META_REALIZEPALETTE 0x0035
1702#define META_ANIMATEPALETTE 0x0436
1703#define META_SETPALENTRIES 0x0037
1704#define META_POLYPOLYGON 0x0538
1705#define META_RESIZEPALETTE 0x0139
1706#define META_DIBBITBLT 0x0940
1707#define META_DIBSTRETCHBLT 0x0B41
1708#define META_DIBCREATEPATTERNBRUSH 0x0142
1709#define META_STRETCHDIB 0x0F43
1710#define META_EXTFLOODFILL 0x0548
1711#define META_RESETDC 0x014C
1712#define META_STARTDOC 0x014D
1713#define META_STARTPAGE 0x004F
1714#define META_ENDPAGE 0x0050
1715#define META_ABORTDOC 0x0052
1716#define META_ENDDOC 0x005E
1717#define META_DELETEOBJECT 0x01F0
1718#define META_CREATEPALETTE 0x00F7
1719#define META_CREATEBRUSH 0x00F8
1720#define META_CREATEPATTERNBRUSH 0x01F9
1721#define META_CREATEPENINDIRECT 0x02FA
1722#define META_CREATEFONTINDIRECT 0x02FB
1723#define META_CREATEBRUSHINDIRECT 0x02FC
1724#define META_CREATEBITMAPINDIRECT 0x02FD
1725#define META_CREATEBITMAP 0x06FE
1726#define META_CREATEREGION 0x06FF
1727#define META_UNKNOWN 0x0529 /* FIXME: unknown meta magic */
1728
1729typedef INT (* CALLBACK MFENUMPROC)(HDC,HANDLETABLE*,METARECORD*,
1730 INT,LPARAM);
1731
1732/* enhanced metafile structures and functions */
1733
1734/* note that ENHMETAHEADER is just a particular kind of ENHMETARECORD,
1735 ie. the header is just the first record in the metafile */
1736typedef struct {
1737 DWORD iType;
1738 DWORD nSize;
1739 RECTL rclBounds;
1740 RECTL rclFrame;
1741 DWORD dSignature;
1742 DWORD nVersion;
1743 DWORD nBytes;
1744 DWORD nRecords;
1745 WORD nHandles;
1746 WORD sReserved;
1747 DWORD nDescription;
1748 DWORD offDescription;
1749 DWORD nPalEntries;
1750 SIZEL szlDevice;
1751 SIZEL szlMillimeters;
1752 DWORD cbPixelFormat;
1753 DWORD offPixelFormat;
1754 DWORD bOpenGL;
1755} ENHMETAHEADER, *LPENHMETAHEADER;
1756
1757typedef struct {
1758 DWORD iType;
1759 DWORD nSize;
1760 DWORD dParm[1];
1761} ENHMETARECORD, *LPENHMETARECORD;
1762
1763typedef struct {
1764 DWORD iType;
1765 DWORD nSize;
1766} EMR, *PEMR;
1767
1768typedef struct {
1769 POINTL ptlReference;
1770 DWORD nChars;
1771 DWORD offString;
1772 DWORD fOptions;
1773 RECTL rcl;
1774 DWORD offDx;
1775} EMRTEXT, *PEMRTEXT;
1776
1777typedef struct {
1778 EMR emr;
1779} EMRABORTPATH, *PEMRABORTPATH,
1780 EMRBEGINPATH, *PEMRBEGINPATH,
1781 EMRENDPATH, *PEMRENDPATH,
1782 EMRCLOSEFIGURE, *PEMRCLOSEFIGURE,
1783 EMRFLATTENPATH, *PEMRFLATTENPATH,
1784 EMRWIDENPATH, *PEMRWIDENPATH,
1785 EMRSETMETARGN, *PEMRSETMETARGN,
1786 EMRSAVEDC, *PEMRSAVEDC,
1787 EMRREALIZEPALETTE, *PEMRREALIZEPALETTE;
1788
1789typedef struct {
1790 EMR emr;
1791 POINTL ptlCenter;
1792 DWORD nRadius;
1793 FLOAT eStartAngle;
1794 FLOAT eSweepAngle;
1795} EMRANGLEARC, *PEMRANGLEARC;
1796
1797typedef struct {
1798 EMR emr;
1799 RECTL rclBox;
1800 POINTL ptlStart;
1801 POINTL ptlEnd;
1802} EMRARC, *PEMRARC,
1803 EMRARCTO, *PEMRARCTO,
1804 EMRCHORD, *PEMRCHORD,
1805 EMRPIE, *PEMRPIE;
1806
1807typedef struct {
1808 EMR emr;
1809 RECTL rclBounds;
1810 LONG xDest;
1811 LONG yDest;
1812 LONG cxDest;
1813 LONG cyDest;
1814 DWORD dwRop;
1815 LONG xSrc;
1816 LONG ySrc;
1817 XFORM xformSrc;
1818 COLORREF crBkColorSrc;
1819 DWORD iUsegeSrc;
1820 DWORD offBmiSrc;
1821 DWORD cbBmiSrc;
1822 DWORD offBitsSrc;
1823 DWORD cbBitsSrc;
1824} EMRBITBLT, *PEMRBITBLT;
1825
1826typedef struct {
1827 EMR emr;
1828 DWORD ihBrush;
1829 LOGBRUSH lb;
1830} EMRCREATEBRUSHINDIRECT, *PEMRCREATEBRUSHINDIRECT;
1831
1832typedef struct {
1833 EMR emr;
1834 DWORD ihCS;
1835 LOGCOLORSPACEW lcs;
1836} EMRCREATECOLORSPACE, *PEMRCREATECOLORSPACE;
1837
1838typedef struct {
1839 EMR emr;
1840 DWORD ihBrush;
1841 DWORD iUsage;
1842 DWORD offBmi;
1843 DWORD cbBmi;
1844 DWORD offBits;
1845 DWORD cbBits;
1846} EMRCREATEDIBPATTERNBRUSHPT, *PEMRCREATEDIBPATTERNBRUSHPT;
1847
1848typedef struct {
1849 EMR emr;
1850 DWORD ihBrush;
1851 DWORD iUsage;
1852 DWORD offBmi;
1853 DWORD cbBmi;
1854 DWORD offBits;
1855 DWORD cbBits;
1856} EMRCREATEMONOBRUSH, *PEMRCREATEMONOBRUSH;
1857
1858typedef struct {
1859 EMR emr;
1860 DWORD ihPal;
1861 LOGPALETTE lgpl;
1862} EMRCREATEPALETTE, *PEMRCREATEPALETTE;
1863
1864typedef struct {
1865 EMR emr;
1866 DWORD ihPen;
1867 LOGPEN lopn;
1868} EMRCREATEPEN, *PEMRCREATEPEN;
1869
1870typedef struct {
1871 EMR emr;
1872 DWORD ihCS;
1873} EMRDELETECOLORSPACE, *PEMRDELETECOLORSPACE,
1874 EMRSELECTCOLORSPACE, *PEMRSELECTCOLORSPACE,
1875 EMRSETCOLORSPACE, *PEMRSETCOLORSPACE;
1876
1877typedef struct {
1878 EMR emr;
1879 DWORD ihObject;
1880} EMRDELETEOBJECT, *PEMRDELETEOBJECT,
1881 EMRSELECTOBJECT, *PEMRSELECTOBJECT;
1882
1883typedef struct {
1884 EMR emr;
1885 RECTL rclBox;
1886} EMRELLIPSE, *PEMRELLIPSE,
1887 EMRRECTANGLE, *PEMRRECTANGLE;
1888
1889typedef struct {
1890 EMR emr;
1891 DWORD nPalEntries;
1892 DWORD offPalEntries;
1893 DWORD nSizeLast;
1894} EMREOF, *PEMREOF;
1895
1896typedef struct {
1897 EMR emr;
1898 RECTL rclClip;
1899} EMREXCLUDECLIPRECT, *PEMREXCLUDECLIPRECT,
1900 EMRINTERSECTCLIPRECT, *PEMRINTERSECTCLIPRECT;
1901
1902typedef struct {
1903 EMR emr;
1904 DWORD ihFont;
1905 EXTLOGFONTW elfw;
1906} EMREXTCREATEFONTINDIRECTW, *PEMREXTCREATEFONTINDIRECTW;
1907
1908typedef struct {
1909 EMR emr;
1910 DWORD ihPen;
1911 DWORD offBmi;
1912 DWORD cbBmi;
1913 DWORD offBits;
1914 DWORD cbBits;
1915 EXTLOGPEN elp;
1916} EMREXTCREATEPEN, *PEMREXTCREATEPEN;
1917
1918typedef struct {
1919 EMR emr;
1920 POINTL ptlStart;
1921 COLORREF crColor;
1922 DWORD iMode;
1923} EMREXTFLOODFILL, *PEMREXTFLOODFILL;
1924
1925typedef struct {
1926 EMR emr;
1927 DWORD cbRgnData;
1928 DWORD iMode;
1929 BYTE RgnData[1];
1930} EMREXTSELECTCLIPRGN, *PEMREXTSELECTCLIPRGN;
1931
1932typedef struct {
1933 EMR emr;
1934 RECTL rclBounds;
1935 DWORD iGraphicsMode;
1936 FLOAT exScale;
1937 FLOAT eyScale;
1938 EMRTEXT emrtext;
1939} EMREXTTEXTOUTA, *PEMREXTTEXTOUTA,
1940 EMREXTTEXTOUTW, *PEMREXTTEXTOUTW;
1941
1942typedef struct {
1943 EMR emr;
1944 RECTL rclBounds;
1945} EMRFILLPATH, *PEMRFILLPATH,
1946 EMRSTROKEANDFILLPATH, *PEMRSTROKEANDFILLPATH,
1947 EMRSTROKEPATH, *PEMRSTROKEPATH;
1948
1949typedef struct {
1950 EMR emr;
1951 RECTL rclBounds;
1952 DWORD cbRgnData;
1953 DWORD ihBrush;
1954 BYTE RgnData[1];
1955} EMRFILLRGN, *PEMRFILLRGN;
1956
1957typedef struct {
1958 DWORD signature;
1959 DWORD nVersion;
1960 DWORD cbData;
1961 DWORD offData;
1962} EMRFORMAT, *PEMRFORMAT;
1963
1964typedef struct {
1965 EMR emr;
1966 RECTL rclBounds;
1967 DWORD cbRgnData;
1968 DWORD ihBrush;
1969 SIZEL szlStroke;
1970 BYTE RgnData[1];
1971} EMRFRAMERGN, *PEMRFRAMERGN;
1972
1973typedef struct {
1974 EMR emr;
1975 DWORD cbData;
1976 BYTE Data[1];
1977} EMRGDICOMMENT, *PEMRGDICOMMENT;
1978
1979#if 0
1980typedef struct {
1981 EMR emr;
1982 RECTL rclBounds;
1983 DWORD nVer;
1984 DWORD nTri;
1985 ULONG ulMode;
1986 TRIVERTEX Ver[1];
1987} EMRGRADIENTFILL, *PEMRGRADIENTFILL;
1988#endif
1989
1990typedef struct {
1991 EMR emr;
1992 RECTL rclBounds;
1993 DWORD cbRgnData;
1994 BYTE RgnData[1];
1995} EMRINVERTRGN, *PEMRINVERTRGN,
1996 EMRPAINTRGN, *PEMRPAINTRGN;
1997
1998typedef struct {
1999 EMR emr;
2000 POINTL ptl;
2001} EMRLINETO, *PEMRLINETO,
2002 EMRMOVETOEX, *PEMRMOVETOEX;
2003
2004typedef struct {
2005 EMR emr;
2006 RECTL rclBounds;
2007 LONG xDest;
2008 LONG yDest;
2009 LONG cxDest;
2010 LONG cyDest;
2011 DWORD dwRop;
2012 LONG xSrc;
2013 LONG ySrc;
2014 XFORM xformSrc;
2015 COLORREF crBkColorSrc;
2016 DWORD iUsageSrc;
2017 DWORD offBmiSrc;
2018 DWORD cbBmiSrc;
2019 DWORD offBitsSrc;
2020 DWORD cbBitsSrc;
2021 LONG xMask;
2022 LONG yMask;
2023 DWORD iUsageMask;
2024 DWORD offBmiMask;
2025 DWORD cbBmiMask;
2026 DWORD offBitsMask;
2027 DWORD cbBitsMask;
2028} EMRMASKBLT, *PEMRMASKBLT;
2029
2030typedef struct {
2031 EMR emr;
2032 XFORM xform;
2033 DWORD iMode;
2034} EMRMODIFYWORLDTRANSFORM, *PEMRMODIFYWORLDTRANSFORM;
2035
2036typedef struct {
2037 EMR emr;
2038 POINTL ptlOffset;
2039} EMROFFSETCLIPRGN, *PEMROFFSETCLIPRGN;
2040
2041typedef struct {
2042 EMR emr;
2043 RECTL rclBounds;
2044 POINTL aptlDst[3];
2045 LONG xSrc;
2046 LONG ySrc;
2047 LONG cxSrc;
2048 LONG cySrc;
2049 XFORM xformSrc;
2050 COLORREF crBkColorSrc;
2051 DWORD iUsageSrc;
2052 DWORD offBmiSrc;
2053 DWORD cbBmiSrc;
2054 DWORD offBitsSrc;
2055 DWORD cbBitsSrc;
2056 LONG xMask;
2057 LONG yMask;
2058 DWORD iUsageMask;
2059 DWORD offBmiMask;
2060 DWORD cbBmiMask;
2061 DWORD offBitsMask;
2062 DWORD cbBitsMask;
2063} EMRPLGBLT, *PEMRPLGBLT;
2064
2065typedef struct {
2066 EMR emr;
2067 RECTL rclBounds;
2068 DWORD cptl;
2069 POINTL aptl[1];
2070} EMRPOLYLINE, *PEMRPOLYLINE,
2071 EMRPOLYBEZIER, *PEMRPOLYBEZIER,
2072 EMRPOLYGON, *PEMRPOLYGON,
2073 EMRPOLYBEZIERTO, *PEMRPOLYBEZIERTO,
2074 EMRPOLYLINETO, *PEMRPOLYLINETO;
2075
2076typedef struct {
2077 EMR emr;
2078 RECTL rclBounds;
2079 DWORD cptl;
2080 POINTL aptl[1];
2081 BYTE abTypes[1];
2082} EMRPOLYDRAW, *PEMRPOLYDRAW;
2083
2084typedef struct {
2085 EMR emr;
2086 RECTL rclBounds;
2087 DWORD nPolys;
2088 DWORD cptl;
2089 DWORD aPolyCounts[1];
2090 POINTL aptl[1];
2091} EMRPOLYPOLYLINE, *PEMRPOLYPOLYLINE,
2092 EMRPOLYPOLYGON, *PEMRPOLYPOLYGON;
2093
2094typedef struct {
2095 EMR emr;
2096 RECTL rclBounds;
2097 DWORD iGraphicsMode;
2098 FLOAT exScale;
2099 FLOAT eyScale;
2100 LONG cStrings;
2101 EMRTEXT aemrtext[1];
2102} EMRPOLYTEXTOUTA, *PEMRPOLYTEXTOUTA,
2103 EMRPOLYTEXTOUTW, *PEMRPOLYTEXTOUTW;
2104
2105typedef struct {
2106 EMR emr;
2107 DWORD ihPal;
2108 DWORD cEntries;
2109} EMRRESIZEPALETTE, *PEMRRESIZEPALETTE;
2110
2111typedef struct {
2112 EMR emr;
2113 LONG iRelative;
2114} EMRRESTOREDC, *PEMRRESTOREDC;
2115
2116typedef struct {
2117 EMR emr;
2118 RECTL rclBox;
2119 SIZEL szlCorner;
2120} EMRROUNDRECT, *PEMRROUNDRECT;
2121
2122typedef struct {
2123 EMR emr;
2124 LONG xNum;
2125 LONG xDenom;
2126 LONG yNum;
2127 LONG yDenom;
2128} EMRSCALEVIEWPORTEXTEX, *PEMRSCALEVIEWPORTEXTEX,
2129 EMRSCALEWINDOWEXTEX, *PEMRSCALEWINDOWEXTEX;
2130
2131typedef struct {
2132 EMR emr;
2133 DWORD ihPal;
2134} EMRSELECTPALETTE, *PEMRSELECTPALETTE;
2135
2136typedef struct {
2137 EMR emr;
2138 DWORD iArcDirection;
2139} EMRSETARCDIRECTION, *PEMRSETARCDIRECTION;
2140
2141typedef struct {
2142 EMR emr;
2143 COLORREF crColor;
2144} EMRSETBKCOLOR, *PEMRSETBKCOLOR,
2145 EMRSETTEXTCOLOR, *PEMRSETTEXTCOLOR;
2146
2147typedef struct {
2148 EMR emr;
2149 POINTL ptlOrigin;
2150} EMRSETBRUSHORGEX, *PEMRSETBRUSHORGEX,
2151 EMRSETVIEWPORTORGEX, *PEMRSETVIEWPORTORGEX,
2152 EMRSETWINDOWORGEX, *PEMRSETWINDOWORGEX;
2153
2154typedef struct {
2155 EMR emr;
2156 COLORADJUSTMENT ColorAdjustment;
2157} EMRSETCOLORADJUSTMENT, *PEMRSETCOLORADJUSTMENT;
2158
2159typedef struct {
2160 EMR emr;
2161 RECTL rclBounds;
2162 LONG xDest;
2163 LONG yDest;
2164 LONG xSrc;
2165 LONG ySrc;
2166 LONG cxSrc;
2167 LONG cySrc;
2168 DWORD offBmiSrc;
2169 DWORD cbBmiSrc;
2170 DWORD offBitsSrc;
2171 DWORD cbBitsSrc;
2172 DWORD iUsageSrc;
2173 DWORD iStartScan;
2174 DWORD cScans;
2175} EMRSETDIBITSTODEIVCE, *PEMRSETDIBITSTODEVICE;
2176
2177typedef struct {
2178 EMR emr;
2179 DWORD dwFlags;
2180} EMRSETMAPPERFLAGS, *PEMRSETMAPPERFLAGS;
2181
2182typedef struct {
2183 EMR emr;
2184 FLOAT eMiterLimit;
2185} EMRSETMITERLIMIT, *PEMRSETMITERLIMIT;
2186
2187typedef struct {
2188 EMR emr;
2189 DWORD ihPal;
2190 DWORD iStart;
2191 DWORD cEntries;
2192 PALETTEENTRY aPalEntries[1];
2193} EMRSETPALETTEENTRIES, *PEMRSETPALETTEENTRIES;
2194
2195typedef struct {
2196 EMR emr;
2197 POINTL ptlPixel;
2198 COLORREF crColor;
2199} EMRSETPIXELV, *PEMRSETPIXELV;
2200
2201typedef struct {
2202 EMR emr;
2203 SIZEL szlExtent;
2204} EMRSETVIEWPORTEXTEX, *PEMRSETVIEWPORTEXTEX,
2205 EMRSETWINDOWEXTEX, *PEMRSETWINDOWEXTEX;
2206
2207typedef struct {
2208 EMR emr;
2209 XFORM xform;
2210} EMRSETWORLDTRANSFORM, *PEMRSETWORLDTRANSFORM;
2211
2212typedef struct {
2213 EMR emr;
2214 RECTL rclBounds;
2215 LONG xDest;
2216 LONG yDest;
2217 LONG cxDest;
2218 LONG cyDest;
2219 DWORD dwRop;
2220 LONG xSrc;
2221 LONG ySrc;
2222 XFORM xformSrc;
2223 COLORREF crBkColorSrc;
2224 DWORD iUsageSrc;
2225 DWORD offBmiSrc;
2226 DWORD cbBmiSrc;
2227 DWORD offBitsSrc;
2228 DWORD cbBitsSrc;
2229 LONG cxSrc;
2230 LONG cySrc;
2231} EMRSTRETCHBLT, *PEMRSTRETCHBLT;
2232
2233typedef struct {
2234 EMR emr;
2235 RECTL rclBounds;
2236 LONG xDest;
2237 LONG yDest;
2238 LONG xSrc;
2239 LONG ySrc;
2240 LONG cxSrc;
2241 LONG cySrc;
2242 DWORD offBmiSrc;
2243 DWORD cbBmiSrc;
2244 DWORD offBitsSrc;
2245 DWORD cbBitsSrc;
2246 DWORD iUsage;
2247 DWORD dwRop;
2248 LONG cxDest;
2249 LONG cyDst;
2250} EMRSTRETCHDIBITS, *PEMRSTRETCHDIBITS;
2251
2252typedef INT (* CALLBACK ENHMFENUMPROC)(HDC, LPHANDLETABLE,
2253 LPENHMETARECORD, INT, LPVOID);
2254
2255#define EMR_HEADER 1
2256#define EMR_POLYBEZIER 2
2257#define EMR_POLYGON 3
2258#define EMR_POLYLINE 4
2259#define EMR_POLYBEZIERTO 5
2260#define EMR_POLYLINETO 6
2261#define EMR_POLYPOLYLINE 7
2262#define EMR_POLYPOLYGON 8
2263#define EMR_SETWINDOWEXTEX 9
2264#define EMR_SETWINDOWORGEX 10
2265#define EMR_SETVIEWPORTEXTEX 11
2266#define EMR_SETVIEWPORTORGEX 12
2267#define EMR_SETBRUSHORGEX 13
2268#define EMR_EOF 14
2269#define EMR_SETPIXELV 15
2270#define EMR_SETMAPPERFLAGS 16
2271#define EMR_SETMAPMODE 17
2272#define EMR_SETBKMODE 18
2273#define EMR_SETPOLYFILLMODE 19
2274#define EMR_SETROP2 20
2275#define EMR_SETSTRETCHBLTMODE 21
2276#define EMR_SETTEXTALIGN 22
2277#define EMR_SETCOLORADJUSTMENT 23
2278#define EMR_SETTEXTCOLOR 24
2279#define EMR_SETBKCOLOR 25
2280#define EMR_OFFSETCLIPRGN 26
2281#define EMR_MOVETOEX 27
2282#define EMR_SETMETARGN 28
2283#define EMR_EXCLUDECLIPRECT 29
2284#define EMR_INTERSECTCLIPRECT 30
2285#define EMR_SCALEVIEWPORTEXTEX 31
2286#define EMR_SCALEWINDOWEXTEX 32
2287#define EMR_SAVEDC 33
2288#define EMR_RESTOREDC 34
2289#define EMR_SETWORLDTRANSFORM 35
2290#define EMR_MODIFYWORLDTRANSFORM 36
2291#define EMR_SELECTOBJECT 37
2292#define EMR_CREATEPEN 38
2293#define EMR_CREATEBRUSHINDIRECT 39
2294#define EMR_DELETEOBJECT 40
2295#define EMR_ANGLEARC 41
2296#define EMR_ELLIPSE 42
2297#define EMR_RECTANGLE 43
2298#define EMR_ROUNDRECT 44
2299#define EMR_ARC 45
2300#define EMR_CHORD 46
2301#define EMR_PIE 47
2302#define EMR_SELECTPALETTE 48
2303#define EMR_CREATEPALETTE 49
2304#define EMR_SETPALETTEENTRIES 50
2305#define EMR_RESIZEPALETTE 51
2306#define EMR_REALIZEPALETTE 52
2307#define EMR_EXTFLOODFILL 53
2308#define EMR_LINETO 54
2309#define EMR_ARCTO 55
2310#define EMR_POLYDRAW 56
2311#define EMR_SETARCDIRECTION 57
2312#define EMR_SETMITERLIMIT 58
2313#define EMR_BEGINPATH 59
2314#define EMR_ENDPATH 60
2315#define EMR_CLOSEFIGURE 61
2316#define EMR_FILLPATH 62
2317#define EMR_STROKEANDFILLPATH 63
2318#define EMR_STROKEPATH 64
2319#define EMR_FLATTENPATH 65
2320#define EMR_WIDENPATH 66
2321#define EMR_SELECTCLIPPATH 67
2322#define EMR_ABORTPATH 68
2323#define EMR_GDICOMMENT 70
2324#define EMR_FILLRGN 71
2325#define EMR_FRAMERGN 72
2326#define EMR_INVERTRGN 73
2327#define EMR_PAINTRGN 74
2328#define EMR_EXTSELECTCLIPRGN 75
2329#define EMR_BITBLT 76
2330#define EMR_STRETCHBLT 77
2331#define EMR_MASKBLT 78
2332#define EMR_PLGBLT 79
2333#define EMR_SETDIBITSTODEVICE 80
2334#define EMR_STRETCHDIBITS 81
2335#define EMR_EXTCREATEFONTINDIRECTW 82
2336#define EMR_EXTTEXTOUTA 83
2337#define EMR_EXTTEXTOUTW 84
2338#define EMR_POLYBEZIER16 85
2339#define EMR_POLYGON16 86
2340#define EMR_POLYLINE16 87
2341#define EMR_POLYBEZIERTO16 88
2342#define EMR_POLYLINETO16 89
2343#define EMR_POLYPOLYLINE16 90
2344#define EMR_POLYPOLYGON16 91
2345#define EMR_POLYDRAW16 92
2346#define EMR_CREATEMONOBRUSH 93
2347#define EMR_CREATEDIBPATTERNBRUSHPT 94
2348#define EMR_EXTCREATEPEN 95
2349#define EMR_POLYTEXTOUTA 96
2350#define EMR_POLYTEXTOUTW 97
2351#define EMR_SETICMMODE 98
2352#define EMR_CREATECOLORSPACE 99
2353#define EMR_SETCOLORSPACE 100
2354#define EMR_DELETECOLORSPACE 101
2355#define EMR_GLSRECORD 102
2356#define EMR_GLSBOUNDEDRECORD 103
2357#define EMR_PIXELFORMAT 104
2358
2359#define ENHMETA_SIGNATURE 1179469088
2360
2361#define CCHDEVICENAME 32
2362#define CCHFORMNAME 32
2363
2364typedef struct
2365{
2366 BYTE dmDeviceName[CCHDEVICENAME];
2367 WORD dmSpecVersion;
2368 WORD dmDriverVersion;
2369 WORD dmSize;
2370 WORD dmDriverExtra;
2371 DWORD dmFields;
2372 INT16 dmOrientation;
2373 INT16 dmPaperSize;
2374 INT16 dmPaperLength;
2375 INT16 dmPaperWidth;
2376 INT16 dmScale;
2377 INT16 dmCopies;
2378 INT16 dmDefaultSource;
2379 INT16 dmPrintQuality;
2380 INT16 dmColor;
2381 INT16 dmDuplex;
2382 INT16 dmYResolution;
2383 INT16 dmTTOption;
2384 INT16 dmCollate;
2385 BYTE dmFormName[CCHFORMNAME];
2386 WORD dmLogPixels;
2387 DWORD dmBitsPerPel;
2388 DWORD dmPelsWidth;
2389 DWORD dmPelsHeight;
2390 DWORD dmDisplayFlags;
2391 DWORD dmDisplayFrequency;
2392 DWORD dmICMMethod;
2393 DWORD dmICMIntent;
2394 DWORD dmMediaType;
2395 DWORD dmDitherType;
2396 DWORD dmReserved1;
2397 DWORD dmReserved2;
2398} DEVMODEA, *PDEVMODEA, *LPDEVMODEA;
2399
2400typedef struct
2401{
2402 WCHAR dmDeviceName[CCHDEVICENAME];
2403 WORD dmSpecVersion;
2404 WORD dmDriverVersion;
2405 WORD dmSize;
2406 WORD dmDriverExtra;
2407 DWORD dmFields;
2408 INT16 dmOrientation;
2409 INT16 dmPaperSize;
2410 INT16 dmPaperLength;
2411 INT16 dmPaperWidth;
2412 INT16 dmScale;
2413 INT16 dmCopies;
2414 INT16 dmDefaultSource;
2415 INT16 dmPrintQuality;
2416 INT16 dmColor;
2417 INT16 dmDuplex;
2418 INT16 dmYResolution;
2419 INT16 dmTTOption;
2420 INT16 dmCollate;
2421 WCHAR dmFormName[CCHFORMNAME];
2422 WORD dmLogPixels;
2423 DWORD dmBitsPerPel;
2424 DWORD dmPelsWidth;
2425 DWORD dmPelsHeight;
2426 DWORD dmDisplayFlags;
2427 DWORD dmDisplayFrequency;
2428 DWORD dmICMMethod;
2429 DWORD dmICMIntent;
2430 DWORD dmMediaType;
2431 DWORD dmDitherType;
2432 DWORD dmReserved1;
2433 DWORD dmReserved2;
2434} DEVMODEW, *PDEVMODEW, *LPDEVMODEW;
2435
2436DECL_WINELIB_TYPE_AW(DEVMODE)
2437DECL_WINELIB_TYPE_AW(PDEVMODE)
2438DECL_WINELIB_TYPE_AW(LPDEVMODE)
2439
2440#define DM_UPDATE 1
2441#define DM_COPY 2
2442#define DM_PROMPT 4
2443#define DM_MODIFY 8
2444
2445#define DM_IN_BUFFER DM_MODIFY
2446#define DM_IN_PROMPT DM_PROMPT
2447#define DM_OUT_BUFFER DM_COPY
2448#define DM_OUT_DEFAULT DM_UPDATE
2449
2450#define DM_ORIENTATION 0x00000001L
2451#define DM_PAPERSIZE 0x00000002L
2452#define DM_PAPERLENGTH 0x00000004L
2453#define DM_PAPERWIDTH 0x00000008L
2454#define DM_SCALE 0x00000010L
2455#define DM_COPIES 0x00000100L
2456#define DM_DEFAULTSOURCE 0x00000200L
2457#define DM_PRINTQUALITY 0x00000400L
2458#define DM_COLOR 0x00000800L
2459#define DM_DUPLEX 0x00001000L
2460#define DM_YRESOLUTION 0x00002000L
2461#define DM_TTOPTION 0x00004000L
2462#define DM_BITSPERPEL 0x00040000L
2463#define DM_PELSWIDTH 0x00080000L
2464#define DM_PELSHEIGHT 0x00100000L
2465#define DM_DISPLAYFLAGS 0x00200000L
2466#define DM_DISPLAYFREQUENCY 0x00400000L
2467
2468/* etc.... */
2469
2470#define DMORIENT_PORTRAIT 1
2471#define DMORIENT_LANDSCAPE 2
2472
2473#define DMPAPER_LETTER 1
2474#define DMPAPER_LETTERSMALL 2
2475#define DMPAPER_TABLOID 3
2476#define DMPAPER_LEDGER 4
2477#define DMPAPER_LEGAL 5
2478#define DMPAPER_STATEMENT 6
2479#define DMPAPER_EXECUTIVE 7
2480#define DMPAPER_A3 8
2481#define DMPAPER_A4 9
2482#define DMPAPER_A4SMALL 10
2483#define DMPAPER_A5 11
2484#define DMPAPER_B4 12
2485#define DMPAPER_B5 13
2486#define DMPAPER_FOLIO 14
2487#define DMPAPER_QUARTO 15
2488#define DMPAPER_10X14 16
2489#define DMPAPER_11X17 17
2490#define DMPAPER_NOTE 18
2491#define DMPAPER_ENV_9 19
2492#define DMPAPER_ENV_10 20
2493#define DMPAPER_ENV_11 21
2494#define DMPAPER_ENV_12 22
2495#define DMPAPER_ENV_14 23
2496#define DMPAPER_CSHEET 24
2497#define DMPAPER_DSHEET 25
2498#define DMPAPER_ESHEET 26
2499#define DMPAPER_ENV_DL 27
2500#define DMPAPER_ENV_C5 28
2501#define DMPAPER_ENV_C3 29
2502#define DMPAPER_ENV_C4 30
2503#define DMPAPER_ENV_C6 31
2504#define DMPAPER_ENV_C65 32
2505#define DMPAPER_ENV_B4 33
2506#define DMPAPER_ENV_B5 34
2507#define DMPAPER_ENV_B6 35
2508#define DMPAPER_ENV_ITALY 36
2509#define DMPAPER_ENV_MONARCH 37
2510#define DMPAPER_ENV_PERSONAL 38
2511#define DMPAPER_FANFOLD_US 39
2512#define DMPAPER_FANFOLD_STD_GERMAN 40
2513#define DMPAPER_FANFOLD_LGL_GERMAN 41
2514#define DMPAPER_ISO_B4 42
2515#define DMPAPER_JAPANESE_POSTCARD 43
2516#define DMPAPER_9X11 44
2517#define DMPAPER_10X11 45
2518#define DMPAPER_15X11 46
2519#define DMPAPER_ENV_INVITE 47
2520#define DMPAPER_RESERVED_48 48
2521#define DMPAPER_RESERVED_49 49
2522#define DMPAPER_LETTER_EXTRA 50
2523#define DMPAPER_LEGAL_EXTRA 51
2524#define DMPAPER_TABLOID_EXTRA 52
2525#define DMPAPER_A4_EXTRA 53
2526#define DMPAPER_LETTER_TRANSVERSE 54
2527#define DMPAPER_A4_TRANSVERSE 55
2528#define DMPAPER_LETTER_EXTRA_TRANSVERSE 56
2529#define DMPAPER_A_PLUS 57
2530#define DMPAPER_B_PLUS 58
2531#define DMPAPER_LETTER_PLUS 59
2532#define DMPAPER_A4_PLUS 60
2533#define DMPAPER_A5_TRANSVERSE 61
2534#define DMPAPER_B5_TRANSVERSE 62
2535#define DMPAPER_A3_EXTRA 63
2536#define DMPAPER_A5_EXTRA 64
2537#define DMPAPER_B5_EXTRA 65
2538#define DMPAPER_A2 66
2539#define DMPAPER_A3_TRANSVERSE 67
2540#define DMPAPER_A3_EXTRA_TRANSVERSE 68
2541
2542#define DMBIN_UPPER 1
2543#define DMBIN_LOWER 2
2544#define DMBIN_MIDDLE 3
2545#define DMBIN_MANUAL 4
2546#define DMBIN_ENVELOPE 5
2547#define DMBIN_ENVMANUAL 6
2548#define DMBIN_AUTO 7
2549#define DMBIN_LARGECAPACITY 11
2550
2551#define DMCOLOR_MONOCHROME 1
2552#define DMCOLOR_COLOR 2
2553
2554#define DMTT_BITMAP 1
2555#define DMTT_DOWNLOAD 2
2556#define DMTT_SUBDEV 3
2557
2558typedef struct
2559{
2560 INT cbSize;
2561 LPCSTR lpszDocName;
2562 LPCSTR lpszOutput;
2563 LPCSTR lpszDatatype;
2564 DWORD fwType;
2565} DOCINFOA, *LPDOCINFOA;
2566
2567typedef struct
2568{
2569 INT cbSize;
2570 LPCWSTR lpszDocName;
2571 LPCWSTR lpszOutput;
2572 LPCWSTR lpszDatatype;
2573 DWORD fwType;
2574} DOCINFOW, *LPDOCINFOW;
2575
2576DECL_WINELIB_TYPE_AW(DOCINFO)
2577DECL_WINELIB_TYPE_AW(LPDOCINFO)
2578
2579typedef struct {
2580 UINT cbSize;
2581 INT iBorderWidth;
2582 INT iScrollWidth;
2583 INT iScrollHeight;
2584 INT iCaptionWidth;
2585 INT iCaptionHeight;
2586 LOGFONTA lfCaptionFont;
2587 INT iSmCaptionWidth;
2588 INT iSmCaptionHeight;
2589 LOGFONTA lfSmCaptionFont;
2590 INT iMenuWidth;
2591 INT iMenuHeight;
2592 LOGFONTA lfMenuFont;
2593 LOGFONTA lfStatusFont;
2594 LOGFONTA lfMessageFont;
2595} NONCLIENTMETRICSA,*LPNONCLIENTMETRICSA;
2596
2597typedef struct {
2598 UINT cbSize;
2599 INT iBorderWidth;
2600 INT iScrollWidth;
2601 INT iScrollHeight;
2602 INT iCaptionWidth;
2603 INT iCaptionHeight;
2604 LOGFONTW lfCaptionFont;
2605 INT iSmCaptionWidth;
2606 INT iSmCaptionHeight;
2607 LOGFONTW lfSmCaptionFont;
2608 INT iMenuWidth;
2609 INT iMenuHeight;
2610 LOGFONTW lfMenuFont;
2611 LOGFONTW lfStatusFont;
2612 LOGFONTW lfMessageFont;
2613} NONCLIENTMETRICSW,*LPNONCLIENTMETRICSW;
2614
2615DECL_WINELIB_TYPE_AW(NONCLIENTMETRICS)
2616DECL_WINELIB_TYPE_AW(LPNONCLIENTMETRICS)
2617
2618/* Flags for PolyDraw and GetPath */
2619#define PT_CLOSEFIGURE 0x0001
2620#define PT_LINETO 0x0002
2621#define PT_BEZIERTO 0x0004
2622#define PT_MOVETO 0x0006
2623
2624#define RDH_RECTANGLES 1
2625
2626typedef struct _RGNDATAHEADER {
2627 DWORD dwSize;
2628 DWORD iType;
2629 DWORD nCount;
2630 DWORD nRgnSize;
2631 RECT rcBound;
2632} RGNDATAHEADER,*LPRGNDATAHEADER;
2633
2634typedef struct _RGNDATA {
2635 RGNDATAHEADER rdh;
2636 char Buffer[1];
2637} RGNDATA,*PRGNDATA,*LPRGNDATA;
2638
2639typedef BOOL (* CALLBACK ABORTPROC)(HDC, INT);
2640
2641#include "poppack.h"
2642
2643
2644/* Declarations for functions that exist only in Win32 */
2645
2646BOOL WINAPI AngleArc(HDC, INT, INT, DWORD, FLOAT, FLOAT);
2647BOOL WINAPI ArcTo(HDC, INT, INT, INT, INT, INT, INT, INT, INT);
2648HENHMETAFILE WINAPI CloseEnhMetaFile(HDC);
2649HBRUSH WINAPI CreateDIBPatternBrushPt(const void*,UINT);
2650HDC WINAPI CreateEnhMetaFileA(HDC,LPCSTR,const RECT*,LPCSTR);
2651HDC WINAPI CreateEnhMetaFileW(HDC,LPCWSTR,const RECT*,LPCWSTR);
2652INT WINAPI DrawEscape(HDC,INT,INT,LPCSTR);
2653BOOL WINAPI GdiComment(HDC,UINT,const BYTE *);
2654BOOL WINAPI GetCharABCWidthsFloatA(HDC,UINT,UINT,LPABCFLOAT);
2655BOOL WINAPI GetCharABCWidthsFloatW(HDC,UINT,UINT,LPABCFLOAT);
2656BOOL WINAPI GetCharWidthFloatA(HDC,UINT,UINT,PFLOAT);
2657BOOL WINAPI GetCharWidthFloatW(HDC,UINT,UINT,PFLOAT);
2658BOOL WINAPI GetColorAdjustment(HDC, LPCOLORADJUSTMENT);
2659DWORD WINAPI GetDCHook(HDC16,FARPROC16*);
2660BOOL WINAPI GetMiterLimit(HDC, PFLOAT);
2661BOOL WINAPI MaskBlt(HDC,INT,INT,INT,INT,HDC,INT,INT,HBITMAP,INT,INT,DWORD);
2662BOOL WINAPI PlgBlt(HDC,const POINT*,HDC,INT,INT,INT,INT,HBITMAP,INT,INT);
2663BOOL WINAPI PolyDraw(HDC,const POINT*,const BYTE*,DWORD);
2664BOOL WINAPI SetColorAdjustment(HDC,const COLORADJUSTMENT*);
2665BOOL WINAPI SetMiterLimit(HDC, FLOAT, PFLOAT);
2666BOOL WINAPI CombineTransform(LPXFORM,const XFORM *,const XFORM *);
2667HENHMETAFILE WINAPI CopyEnhMetaFileA(HENHMETAFILE,LPCSTR);
2668HENHMETAFILE WINAPI CopyEnhMetaFileW(HENHMETAFILE,LPCWSTR);
2669HPALETTE WINAPI CreateHalftonePalette(HDC);
2670BOOL WINAPI DeleteEnhMetaFile(HENHMETAFILE);
2671INT WINAPI ExtSelectClipRgn(HDC,HRGN,INT);
2672HRGN WINAPI ExtCreateRegion(const XFORM*,DWORD,const RGNDATA*);
2673INT WINAPI ExtEscape(HDC,INT,INT,LPCSTR,INT,LPSTR);
2674BOOL WINAPI FixBrushOrgEx(HDC,INT,INT,LPPOINT);
2675HANDLE WINAPI GetCurrentObject(HDC,UINT);
2676BOOL WINAPI GetDCOrgEx(HDC,LPPOINT);
2677HENHMETAFILE WINAPI GetEnhMetaFileA(LPCSTR);
2678HENHMETAFILE WINAPI GetEnhMetaFileW(LPCWSTR);
2679#define GetEnhMetaFile WINELIB_NAME_AW(GetEnhMetaFile)
2680UINT WINAPI GetEnhMetaFileBits(HENHMETAFILE,UINT,LPBYTE);
2681UINT WINAPI GetEnhMetaFileHeader(HENHMETAFILE,UINT,LPENHMETAHEADER);
2682UINT WINAPI GetEnhMetaFilePaletteEntries(HENHMETAFILE,UINT,LPPALETTEENTRY);
2683INT WINAPI GetGraphicsMode(HDC);
2684UINT WINAPI GetMetaFileBitsEx(HMETAFILE,UINT,LPVOID);
2685DWORD WINAPI GetObjectType(HANDLE);
2686UINT WINAPI GetTextCharsetInfo(HDC,LPFONTSIGNATURE,DWORD);
2687BOOL WINAPI GetTextExtentExPointA(HDC,LPCSTR,INT,INT,
2688 LPINT,LPINT,LPSIZE);
2689BOOL WINAPI GetTextExtentExPointW(HDC,LPCWSTR,INT,INT,
2690 LPINT,LPINT,LPSIZE);
2691#define GetTextExtentExPoint WINELIB_NAME_AW(GetTextExtentExPoint)
2692BOOL WINAPI GetWorldTransform(HDC,LPXFORM);
2693BOOL WINAPI ModifyWorldTransform(HDC,const XFORM *, DWORD);
2694BOOL WINAPI PlayEnhMetaFile(HDC,HENHMETAFILE,const RECT*);
2695BOOL WINAPI PlayEnhMetaFileRecord(HDC,LPHANDLETABLE,const ENHMETARECORD*,UINT);
2696BOOL WINAPI PolyPolyline(HDC,const POINT*,const DWORD*,DWORD);
2697BOOL WINAPI SetBrushOrgEx(HDC,INT,INT,LPPOINT);
2698HENHMETAFILE WINAPI SetEnhMetaFileBits(UINT,const BYTE *);
2699INT WINAPI SetGraphicsMode(HDC,INT);
2700HMETAFILE WINAPI SetMetaFileBitsEx(UINT,const BYTE*);
2701BOOL WINAPI SetWorldTransform(HDC,const XFORM*);
2702BOOL WINAPI TranslateCharsetInfo(LPDWORD,LPCHARSETINFO,DWORD);
2703
2704/* Declarations for functions that change between Win16 and Win32 */
2705
2706INT WINAPI AbortDoc(HDC);
2707BOOL WINAPI AbortPath(HDC);
2708INT WINAPI AddFontResourceA(LPCSTR);
2709INT WINAPI AddFontResourceW(LPCWSTR);
2710BOOL WINAPI AnimatePalette(HPALETTE,UINT,UINT,const PALETTEENTRY*);
2711BOOL WINAPI Arc(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
2712BOOL WINAPI BeginPath(HDC);
2713BOOL WINAPI BitBlt(HDC,INT,INT,INT,INT,HDC,INT,INT,DWORD);
2714INT WINAPI ChoosePixelFormat(HDC,const PIXELFORMATDESCRIPTOR*);
2715BOOL WINAPI Chord(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
2716BOOL WINAPI CloseFigure(HDC);
2717HMETAFILE WINAPI CloseMetaFile(HDC);
2718INT WINAPI CombineRgn(HRGN,HRGN,HRGN,INT);
2719HMETAFILE WINAPI CopyMetaFileA(HMETAFILE,LPCSTR);
2720HMETAFILE WINAPI CopyMetaFileW(HMETAFILE,LPCWSTR);
2721HBITMAP WINAPI CreateBitmap(INT,INT,UINT,UINT,LPCVOID);
2722HBITMAP WINAPI CreateBitmapIndirect(const BITMAP*);
2723HBRUSH WINAPI CreateBrushIndirect(const LOGBRUSH*);
2724HBITMAP WINAPI CreateCompatibleBitmap(HDC,INT,INT);
2725HDC WINAPI CreateCompatibleDC(HDC);
2726HDC WINAPI CreateDCA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
2727HDC WINAPI CreateDCW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*);
2728#define CreateDC WINELIB_NAME_AW(CreateDC)
2729HBITMAP WINAPI CreateDIBitmap(HDC,const BITMAPINFOHEADER*,DWORD,LPCVOID,const BITMAPINFO*,UINT);
2730HBRUSH WINAPI CreateDIBPatternBrush(HGLOBAL,UINT);
2731HBITMAP WINAPI CreateDIBSection (HDC, BITMAPINFO *, UINT,LPVOID *, HANDLE, DWORD offset);
2732HBITMAP WINAPI CreateDiscardableBitmap(HDC,INT,INT);
2733HRGN WINAPI CreateEllipticRgn(INT,INT,INT,INT);
2734HRGN WINAPI CreateEllipticRgnIndirect(const RECT *);
2735HFONT WINAPI CreateFontA(INT,INT,INT,INT,INT,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCSTR);
2736HFONT WINAPI CreateFontW(INT,INT,INT,INT,INT,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCWSTR);
2737#define CreateFont WINELIB_NAME_AW(CreateFont)
2738HFONT WINAPI CreateFontIndirectA(const LOGFONTA*);
2739HFONT WINAPI CreateFontIndirectW(const LOGFONTW*);
2740#define CreateFontIndirect WINELIB_NAME_AW(CreateFontIndirect)
2741
2742HBRUSH WINAPI CreateHatchBrush(INT,COLORREF);
2743HDC WINAPI CreateICA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
2744HDC WINAPI CreateICW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*);
2745#define CreateIC WINELIB_NAME_AW(CreateIC)
2746
2747HDC WINAPI CreateMetaFileA(LPCSTR);
2748HDC WINAPI CreateMetaFileW(LPCWSTR);
2749#define CreateMetaFile WINELIB_NAME_AW(CreateMetaFile)
2750
2751HPALETTE WINAPI CreatePalette(const LOGPALETTE*);
2752HBRUSH WINAPI CreatePatternBrush(HBITMAP);
2753HPEN WINAPI CreatePen(INT,INT,COLORREF);
2754HPEN WINAPI CreatePenIndirect(const LOGPEN*);
2755HRGN WINAPI CreatePolyPolygonRgn(const POINT*,const INT*,INT,INT);
2756HRGN WINAPI CreatePolygonRgn(const POINT*,INT,INT);
2757HRGN WINAPI CreateRectRgn(INT,INT,INT,INT);
2758HRGN WINAPI CreateRectRgnIndirect(const RECT*);
2759HRGN WINAPI CreateRoundRectRgn(INT,INT,INT,INT,INT,INT);
2760BOOL WINAPI CreateScalableFontResourceA(DWORD,LPCSTR,LPCSTR,LPCSTR);
2761BOOL WINAPI CreateScalableFontResourceW(DWORD,LPCWSTR,LPCWSTR,LPCWSTR);
2762#define CreateScalableFontResource WINELIB_NAME_AW(CreateScalableFontResource)
2763
2764HBRUSH WINAPI CreateSolidBrush(COLORREF);
2765BOOL WINAPI DeleteDC(HDC);
2766BOOL WINAPI DeleteMetaFile(HMETAFILE);
2767BOOL WINAPI DeleteObject(HGDIOBJ);
2768INT WINAPI DescribePixelFormat(HDC,int,UINT,LPPIXELFORMATDESCRIPTOR);
2769BOOL WINAPI DPtoLP(HDC,LPPOINT,INT);
2770BOOL WINAPI Ellipse(HDC,INT,INT,INT,INT);
2771INT WINAPI EndDoc(HDC);
2772BOOL WINAPI EndPath(HDC);
2773INT WINAPI EnumFontFamiliesA(HDC,LPCSTR,FONTENUMPROCA,LPARAM);
2774INT WINAPI EnumFontFamiliesW(HDC,LPCWSTR,FONTENUMPROCW,LPARAM);
2775#define EnumFontFamilies WINELIB_NAME_AW(EnumFontFamilies)
2776
2777INT WINAPI EnumFontFamiliesExA(HDC,LPLOGFONTA,FONTENUMPROCEXA,LPARAM,DWORD);
2778INT WINAPI EnumFontFamiliesExW(HDC,LPLOGFONTW,FONTENUMPROCEXW,LPARAM,DWORD);
2779#define EnumFontFamiliesEx WINELIB_NAME_AW(EnumFontFamiliesEx)
2780
2781INT WINAPI EnumFontsA(HDC,LPCSTR,FONTENUMPROCA,LPARAM);
2782INT WINAPI EnumFontsW(HDC,LPCWSTR,FONTENUMPROCW,LPARAM);
2783#define EnumFonts WINELIB_NAME_AW(EnumFonts)
2784
2785BOOL WINAPI EnumMetaFile(HDC,HMETAFILE,MFENUMPROC,LPARAM);
2786INT WINAPI EnumObjects(HDC,INT,GOBJENUMPROC,LPARAM);
2787BOOL WINAPI EqualRgn(HRGN,HRGN);
2788INT WINAPI Escape(HDC,INT,INT,LPCSTR,LPVOID);
2789INT WINAPI ExcludeClipRect(HDC,INT,INT,INT,INT);
2790HPEN WINAPI ExtCreatePen(DWORD,DWORD,const LOGBRUSH*,DWORD,const DWORD*);
2791BOOL WINAPI ExtFloodFill(HDC,INT,INT,COLORREF,UINT);
2792BOOL WINAPI ExtTextOutA(HDC,INT,INT,UINT,const RECT*,LPCSTR,UINT,const INT*);
2793BOOL WINAPI ExtTextOutW(HDC,INT,INT,UINT,const RECT*,LPCWSTR,UINT,const INT*);
2794#define ExtTextOut WINELIB_NAME_AW(ExtTextOut)
2795
2796BOOL WINAPI FillPath(HDC);
2797BOOL WINAPI FillRgn(HDC,HRGN,HBRUSH);
2798BOOL WINAPI FlattenPath(HDC);
2799BOOL WINAPI FloodFill(HDC,INT,INT,COLORREF);
2800BOOL WINAPI FrameRgn(HDC,HRGN,HBRUSH,INT,INT);
2801BOOL WINAPI GdiFlush(void);
2802INT WINAPI GetArcDirection(HDC);
2803BOOL WINAPI GetAspectRatioFilterEx(HDC,LPSIZE);
2804LONG WINAPI GetBitmapBits(HBITMAP,LONG,LPVOID);
2805BOOL WINAPI GetBitmapDimensionEx(HBITMAP,LPSIZE);
2806BOOL WINAPI GetBrushOrgEx(HDC,LPPOINT);
2807COLORREF WINAPI GetBkColor(HDC);
2808INT WINAPI GetBkMode(HDC);
2809UINT WINAPI GetBoundsRect(HDC,LPRECT,UINT);
2810BOOL WINAPI GetCharABCWidthsA(HDC,UINT,UINT,LPABC);
2811BOOL WINAPI GetCharABCWidthsW(HDC,UINT,UINT,LPABC);
2812#define GetCharWidth WINELIB_NAME_AW(GetCharWidth)
2813#define GetCharWidthA GetCharWidth32A
2814#define GetCharWidthW GetCharWidth32W
2815
2816DWORD WINAPI GetCharacterPlacementA(HDC,LPCSTR,INT,INT,GCP_RESULTSA*,DWORD);
2817DWORD WINAPI GetCharacterPlacementW(HDC,LPCWSTR,INT,INT,GCP_RESULTSW*,DWORD);
2818#define GetCharacterPlacement WINELIB_NAME_AW(GetCharacterPlacement)
2819
2820BOOL WINAPI GetCharWidthA(HDC,UINT,UINT,LPINT);
2821BOOL WINAPI GetCharWidthW(HDC,UINT,UINT,LPINT);
2822#define GetCharWidth WINELIB_NAME_AW(GetCharWidth)
2823
2824INT WINAPI GetClipBox(HDC,LPRECT);
2825INT WINAPI GetClipRgn(HDC,HRGN);
2826BOOL WINAPI GetCurrentPositionEx(HDC,LPPOINT);
2827INT WINAPI GetDeviceCaps(HDC,INT);
2828UINT WINAPI GetDIBColorTable(HDC,UINT,UINT,RGBQUAD*);
2829INT WINAPI GetDIBits(HDC,HBITMAP,UINT,UINT,LPVOID,LPBITMAPINFO,UINT);
2830DWORD WINAPI GetFontData(HDC,DWORD,DWORD,LPVOID,DWORD);
2831DWORD WINAPI GetFontLanguageInfo(HDC);
2832DWORD WINAPI GetGlyphOutlineA(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,LPVOID,const MAT2*);
2833DWORD WINAPI GetGlyphOutlineW(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,LPVOID,const MAT2*);
2834#define GetGlyphOutline WINELIB_NAME_AW(GetGlyphOutline)
2835
2836DWORD WINAPI GetKerningPairsA(HDC,DWORD,LPKERNINGPAIR);
2837DWORD WINAPI GetKerningPairsW(HDC,DWORD,LPKERNINGPAIR);
2838#define GetKerningPairs WINELIB_NAME_AW(GetKerningPairs)
2839
2840INT WINAPI GetMapMode(HDC);
2841HMETAFILE WINAPI GetMetaFileA(LPCSTR);
2842HMETAFILE WINAPI GetMetaFileW(LPCWSTR);
2843DWORD WINAPI GetNearestColor(HDC,DWORD);
2844UINT WINAPI GetNearestPaletteIndex(HPALETTE,COLORREF);
2845INT WINAPI GetObjectA(HANDLE,INT,LPVOID);
2846INT WINAPI GetObjectW(HANDLE,INT,LPVOID);
2847#define GetObject WINELIB_NAME_AW(GetObject)
2848
2849UINT WINAPI GetOutlineTextMetricsA(HDC,UINT,LPOUTLINETEXTMETRICA);
2850UINT WINAPI GetOutlineTextMetricsW(HDC,UINT,LPOUTLINETEXTMETRICW);
2851#define GetOutlineTextMetrics WINELIB_NAME_AW(GetOutlineTextMetrics)
2852
2853UINT WINAPI GetPaletteEntries(HPALETTE,UINT,UINT,LPPALETTEENTRY);
2854INT WINAPI GetPath(HDC,LPPOINT,LPBYTE,INT);
2855COLORREF WINAPI GetPixel(HDC,INT,INT);
2856INT WINAPI GetPixelFormat(HDC);
2857INT WINAPI GetPolyFillMode(HDC);
2858BOOL WINAPI GetRasterizerCaps(LPRASTERIZER_STATUS,UINT);
2859DWORD WINAPI GetRegionData(HRGN,DWORD,LPRGNDATA);
2860INT WINAPI GetRelAbs(HDC);
2861INT WINAPI GetRgnBox(HRGN,LPRECT);
2862INT WINAPI GetROP2(HDC);
2863HGDIOBJ WINAPI GetStockObject(INT);
2864INT WINAPI GetStretchBltMode(HDC);
2865UINT WINAPI GetSystemPaletteEntries(HDC,UINT,UINT,LPPALETTEENTRY);
2866UINT WINAPI GetSystemPaletteUse(HDC);
2867UINT WINAPI GetTextAlign(HDC);
2868INT WINAPI GetTextCharacterExtra(HDC);
2869UINT WINAPI GetTextCharset(HDC);
2870COLORREF WINAPI GetTextColor(HDC);
2871BOOL WINAPI GetTextExtentPointA(HDC,LPCSTR,INT,LPSIZE);
2872BOOL WINAPI GetTextExtentPointW(HDC,LPCWSTR,INT,LPSIZE);
2873#define GetTextExtentPoint WINELIB_NAME_AW(GetTextExtentPoint)
2874
2875BOOL WINAPI GetTextExtentPoint32A(HDC,LPCSTR,INT,LPSIZE);
2876BOOL WINAPI GetTextExtentPoint32W(HDC,LPCWSTR,INT,LPSIZE);
2877#define GetTextExtentPoint32 WINELIB_NAME_AW(GetTextExtentPoint32)
2878
2879INT WINAPI GetTextFaceA(HDC,INT,LPSTR);
2880INT WINAPI GetTextFaceW(HDC,INT,LPWSTR);
2881#define GetTextFace WINELIB_NAME_AW(GetTextFace)
2882
2883BOOL WINAPI GetTextMetricsA(HDC,LPTEXTMETRICA);
2884BOOL WINAPI GetTextMetricsW(HDC,LPTEXTMETRICW);
2885#define GetTextMetrics WINELIB_NAME_AW(GetTextMetrics)
2886
2887BOOL WINAPI GetViewportExtEx(HDC,LPSIZE);
2888BOOL WINAPI GetViewportOrgEx(HDC,LPPOINT);
2889BOOL WINAPI GetWindowExtEx(HDC,LPSIZE);
2890BOOL WINAPI GetWindowOrgEx(HDC,LPPOINT);
2891INT WINAPI IntersectClipRect(HDC,INT,INT,INT,INT);
2892BOOL WINAPI InvertRgn(HDC,HRGN);
2893BOOL WINAPI LineDDA(INT,INT,INT,INT,LINEDDAPROC,LPARAM);
2894BOOL WINAPI LineTo(HDC,INT,INT);
2895BOOL WINAPI LPtoDP(HDC,LPPOINT,INT);
2896BOOL WINAPI MoveToEx(HDC,INT,INT,LPPOINT);
2897/* FIXME This is defined in kernel32.spec !?*/
2898INT WINAPI MulDiv(INT,INT,INT);
2899INT WINAPI OffsetClipRgn(HDC,INT,INT);
2900INT WINAPI OffsetRgn(HRGN,INT,INT);
2901BOOL WINAPI OffsetViewportOrgEx(HDC,INT,INT,LPPOINT);
2902BOOL WINAPI OffsetWindowOrgEx(HDC,INT,INT,LPPOINT);
2903BOOL WINAPI PaintRgn(HDC,HRGN);
2904BOOL WINAPI PatBlt(HDC,INT,INT,INT,INT,DWORD);
2905HRGN WINAPI PathToRegion(HDC);
2906BOOL WINAPI Pie(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
2907BOOL WINAPI PlayMetaFile(HDC,HMETAFILE);
2908BOOL WINAPI PlayMetaFileRecord(HDC,LPHANDLETABLE,LPMETARECORD,UINT);
2909BOOL WINAPI PolyBezier(HDC,const POINT*,DWORD);
2910BOOL WINAPI PolyBezierTo(HDC,const POINT*,DWORD);
2911BOOL WINAPI PolyPolygon(HDC,const POINT*,const INT*,UINT);
2912BOOL WINAPI Polygon(HDC,const POINT*,INT);
2913BOOL WINAPI Polyline(HDC,const POINT*,INT);
2914BOOL WINAPI PolylineTo(HDC,const POINT*,DWORD);
2915BOOL WINAPI PtInRegion(HRGN,INT,INT);
2916BOOL WINAPI PtVisible(HDC,INT,INT);
2917/* FIXME This is defined in user.spec !? */
2918UINT WINAPI RealizePalette(HDC);
2919BOOL WINAPI Rectangle(HDC,INT,INT,INT,INT);
2920BOOL WINAPI RectInRegion(HRGN,const RECT *);
2921BOOL WINAPI RectVisible(HDC,const RECT*);
2922BOOL WINAPI RemoveFontResourceA(LPCSTR);
2923BOOL WINAPI RemoveFontResourceW(LPCWSTR);
2924HDC WINAPI ResetDCA(HDC,const DEVMODEA *);
2925HDC WINAPI ResetDCW(HDC,const DEVMODEW *);
2926BOOL WINAPI ResizePalette(HPALETTE,UINT);
2927BOOL WINAPI RestoreDC(HDC,INT);
2928BOOL WINAPI RoundRect(HDC,INT,INT,INT,INT,INT,INT);
2929INT WINAPI SaveDC(HDC);
2930BOOL WINAPI ScaleViewportExtEx(HDC,INT,INT,INT,INT,LPSIZE);
2931BOOL WINAPI ScaleWindowExtEx(HDC,INT,INT,INT,INT,LPSIZE);
2932BOOL WINAPI SelectClipPath(HDC,INT);
2933INT WINAPI SelectClipRgn(HDC,HRGN);
2934HGDIOBJ WINAPI SelectObject(HDC,HGDIOBJ);
2935/* FIXME This is defined in user.spec !? */
2936HPALETTE WINAPI SelectPalette(HDC,HPALETTE,BOOL);
2937INT WINAPI SetAbortProc(HDC,ABORTPROC);
2938INT WINAPI SetArcDirection(HDC,INT);
2939LONG WINAPI SetBitmapBits(HBITMAP,LONG,LPCVOID);
2940BOOL WINAPI SetBitmapDimensionEx(HBITMAP,INT,INT,LPSIZE);
2941COLORREF WINAPI SetBkColor(HDC,COLORREF);
2942INT WINAPI SetBkMode(HDC,INT);
2943UINT WINAPI SetBoundsRect(HDC,const RECT*,UINT);
2944UINT WINAPI SetDIBColorTable(HDC,UINT,UINT,RGBQUAD*);
2945INT WINAPI SetDIBits(HDC,HBITMAP,UINT,UINT,LPCVOID,const BITMAPINFO*,UINT);
2946INT WINAPI SetDIBitsToDevice(HDC,INT,INT,DWORD,DWORD,INT,INT,UINT,UINT,LPCVOID,const BITMAPINFO*,UINT);
2947INT WINAPI SetMapMode(HDC,INT);
2948DWORD WINAPI SetMapperFlags(HDC,DWORD);
2949UINT WINAPI SetPaletteEntries(HPALETTE,UINT,UINT,LPPALETTEENTRY);
2950COLORREF WINAPI SetPixel(HDC,INT,INT,COLORREF);
2951BOOL WINAPI SetPixelV(HDC,INT,INT,COLORREF);
2952BOOL WINAPI SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR*);
2953INT WINAPI SetPolyFillMode(HDC,INT);
2954BOOL WINAPI SetRectRgn(HRGN,INT,INT,INT,INT);
2955INT WINAPI SetRelAbs(HDC,INT);
2956INT WINAPI SetROP2(HDC,INT);
2957INT WINAPI SetStretchBltMode(HDC,INT);
2958UINT WINAPI SetSystemPaletteUse(HDC,UINT);
2959UINT WINAPI SetTextAlign(HDC,UINT);
2960INT WINAPI SetTextCharacterExtra(HDC,INT);
2961COLORREF WINAPI SetTextColor(HDC,COLORREF);
2962BOOL WINAPI SetTextJustification(HDC,INT,INT);
2963BOOL WINAPI SetViewportExtEx(HDC,INT,INT,LPSIZE);
2964BOOL WINAPI SetViewportOrgEx(HDC,INT,INT,LPPOINT);
2965BOOL WINAPI SetWindowExtEx(HDC,INT,INT,LPSIZE);
2966BOOL WINAPI SetWindowOrgEx(HDC,INT,INT,LPPOINT);
2967HENHMETAFILE WINAPI SetWinMetaFileBits(UINT,CONST BYTE*,HDC,CONST METAFILEPICT *);
2968INT WINAPI StartDocA(HDC,const DOCINFOA*);
2969INT WINAPI StartDocW(HDC,const DOCINFOW*);
2970#define StartDoc WINELIB_NAME_AW(StartDoc)
2971INT WINAPI StartPage(HDC);
2972INT WINAPI EndPage(HDC);
2973BOOL WINAPI StretchBlt(HDC,INT,INT,INT,INT,HDC,INT,INT,INT,INT,DWORD);
2974INT WINAPI StretchDIBits(HDC,INT,INT,INT,INT,INT,INT,INT,INT,const VOID*,const BITMAPINFO*,UINT,DWORD);
2975BOOL WINAPI StrokeAndFillPath(HDC);
2976BOOL WINAPI StrokePath(HDC);
2977BOOL WINAPI SwapBuffers(HDC);
2978BOOL WINAPI TextOutA(HDC,INT,INT,LPCSTR,INT);
2979BOOL WINAPI TextOutW(HDC,INT,INT,LPCWSTR,INT);
2980#define TextOut WINELIB_NAME_AW(TextOut)
2981
2982BOOL WINAPI UnrealizeObject(HGDIOBJ);
2983BOOL WINAPI UpdateColors(HDC);
2984BOOL WINAPI WidenPath(HDC);
2985
2986
2987typedef int (* CALLBACK ICMENUMPROCA)(LPSTR, LPARAM);
2988typedef int (* CALLBACK ICMENUMPROCW)(LPWSTR, LPARAM);
2989int WINAPI EnumICMProfilesA(HDC,ICMENUMPROCA,LPARAM);
2990int WINAPI EnumICMProfilesW(HDC,ICMENUMPROCW,LPARAM);
2991#define EnumICMProfiles WINELIB_NAME_AW(EnumICMProfiles)
2992
2993#ifdef __cplusplus
2994}
2995#endif
2996
2997#endif /* __WINE_WINGDI_H */
Note: See TracBrowser for help on using the repository browser.