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

Last change on this file since 1566 was 1118, checked in by sandervl, 26 years ago

Lots of changes by several people (see changelog for 4 October

File size: 83.5 KB
Line 
1/* $Id: wingdi.h,v 1.7 1999-10-04 09:55:51 sandervl 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
1012
1013typedef INT (* CALLBACK FONTENUMPROCA)(LPENUMLOGFONTA,LPNEWTEXTMETRICA,
1014 UINT,LPARAM);
1015typedef INT (* CALLBACK FONTENUMPROCW)(LPENUMLOGFONTW,LPNEWTEXTMETRICW,
1016 UINT,LPARAM);
1017DECL_WINELIB_TYPE_AW(FONTENUMPROC)
1018
1019typedef INT (* CALLBACK FONTENUMPROCEXA)(LPENUMLOGFONTEXA,LPNEWTEXTMETRICEXA,UINT,LPARAM);
1020typedef INT (* CALLBACK FONTENUMPROCEXW)(LPENUMLOGFONTEXW,LPNEWTEXTMETRICEXW,UINT,LPARAM);
1021DECL_WINELIB_TYPE_AW(FONTENUMPROCEX)
1022
1023 /* tmPitchAndFamily bits */
1024#define TMPF_FIXED_PITCH 1 /* means variable pitch */
1025#define TMPF_VECTOR 2
1026#define TMPF_TRUETYPE 4
1027#define TMPF_DEVICE 8
1028
1029 /* Text alignment */
1030#define TA_NOUPDATECP 0x00
1031#define TA_UPDATECP 0x01
1032#define TA_LEFT 0x00
1033#define TA_RIGHT 0x02
1034#define TA_CENTER 0x06
1035#define TA_TOP 0x00
1036#define TA_BOTTOM 0x08
1037#define TA_BASELINE 0x18
1038
1039 /* ExtTextOut() parameters */
1040#define ETO_GRAYED 0x01
1041#define ETO_OPAQUE 0x02
1042#define ETO_CLIPPED 0x04
1043
1044typedef struct
1045{
1046 UINT gmBlackBoxX;
1047 UINT gmBlackBoxY;
1048 POINT gmptGlyphOrigin;
1049 INT16 gmCellIncX;
1050 INT16 gmCellIncY;
1051} GLYPHMETRICS, *LPGLYPHMETRICS;
1052
1053
1054#define GGO_METRICS 0
1055#define GGO_BITMAP 1
1056#define GGO_NATIVE 2
1057
1058typedef struct
1059{
1060 UINT16 fract;
1061 INT16 value;
1062} FIXED;
1063
1064typedef struct tagPOINTFX
1065{
1066 FIXED x;
1067 FIXED y;
1068} POINTFX, *LPPOINTFX;
1069
1070typedef struct tagTTPOLYCURVE
1071{
1072 WORD wType;
1073 WORD cpfx;
1074 POINTFX apfx[1];
1075} TTPOLYCURVE, *LPTTPOLYCURVE;
1076
1077typedef struct tagTTPOLYGONHEADER
1078{
1079 DWORD cb;
1080 DWORD dwType;
1081 POINTFX pfxStart;
1082} TTPOLYGONHEADER, *LPTTPOLYGONHEADER;
1083
1084typedef struct
1085{
1086 FIXED eM11;
1087 FIXED eM12;
1088 FIXED eM21;
1089 FIXED eM22;
1090} MAT2, *LPMAT2;
1091
1092 /* for GetCharABCWidths() */
1093typedef struct
1094{
1095 INT abcA;
1096 UINT abcB;
1097 INT abcC;
1098} ABC, *LPABC;
1099
1100
1101 /* for GetCharacterPlacement () */
1102typedef struct tagGCP_RESULTSA
1103{
1104 DWORD lStructSize;
1105 LPSTR lpOutString;
1106 UINT *lpOrder;
1107 INT *lpDx;
1108 INT *lpCaretPos;
1109 LPSTR lpClass;
1110 UINT *lpGlyphs;
1111 UINT nGlyphs;
1112 UINT nMaxFit;
1113} GCP_RESULTSA;
1114
1115typedef struct tagGCP_RESULTSW
1116{
1117 DWORD lStructSize;
1118 LPWSTR lpOutString;
1119 UINT *lpOrder;
1120 INT *lpDx;
1121 INT *lpCaretPos;
1122 LPWSTR lpClass;
1123 UINT *lpGlyphs;
1124 UINT nGlyphs;
1125 UINT nMaxFit;
1126} GCP_RESULTSW;
1127
1128DECL_WINELIB_TYPE_AW(GCP_RESULTS)
1129
1130 /* Rasterizer status */
1131typedef struct
1132{
1133 INT16 nSize;
1134 INT16 wFlags;
1135 INT16 nLanguageID;
1136} RASTERIZER_STATUS, *LPRASTERIZER_STATUS;
1137
1138#define TT_AVAILABLE 0x0001
1139#define TT_ENABLED 0x0002
1140
1141#define TT_PRIM_LINE 1
1142#define TT_PRIM_QSPLINE 2
1143#define TT_POLYGON_TYPE 24
1144
1145/* Get/SetSystemPaletteUse() values */
1146#define SYSPAL_STATIC 1
1147#define SYSPAL_NOSTATIC 2
1148
1149typedef struct tagPALETTEENTRY
1150{
1151 BYTE peRed, peGreen, peBlue, peFlags;
1152} PALETTEENTRY, *PPALETTEENTRY, *LPPALETTEENTRY;
1153
1154/* Logical palette entry flags */
1155#define PC_RESERVED 0x01
1156#define PC_EXPLICIT 0x02
1157#define PC_NOCOLLAPSE 0x04
1158
1159typedef struct
1160{
1161 WORD palVersion;
1162 WORD palNumEntries;
1163 PALETTEENTRY palPalEntry[1] WINE_PACKED;
1164} LOGPALETTE, *PLOGPALETTE, *LPLOGPALETTE;
1165
1166 /* Pens */
1167typedef struct
1168{
1169 UINT lopnStyle;
1170 POINT lopnWidth WINE_PACKED;
1171 COLORREF lopnColor WINE_PACKED;
1172} LOGPEN, *LPLOGPEN;
1173
1174
1175typedef struct tagEXTLOGPEN
1176{
1177 DWORD elpPenStyle;
1178 DWORD elpWidth;
1179 DWORD elpBrushStyle;
1180 DWORD elpColor;
1181 DWORD elpNumEntries;
1182 DWORD elpStyleEntry[1];
1183} EXTLOGPEN, *PEXTLOGPEN, *NPEXTLOGPEN, *LPEXTLOGPEN;
1184
1185#define PS_SOLID 0x00000000
1186#define PS_DASH 0x00000001
1187#define PS_DOT 0x00000002
1188#define PS_DASHDOT 0x00000003
1189#define PS_DASHDOTDOT 0x00000004
1190#define PS_NULL 0x00000005
1191#define PS_INSIDEFRAME 0x00000006
1192#define PS_USERSTYLE 0x00000007
1193#define PS_ALTERNATE 0x00000008
1194#define PS_STYLE_MASK 0x0000000f
1195
1196#define PS_ENDCAP_ROUND 0x00000000
1197#define PS_ENDCAP_SQUARE 0x00000100
1198#define PS_ENDCAP_FLAT 0x00000200
1199#define PS_ENDCAP_MASK 0x00000f00
1200
1201#define PS_JOIN_ROUND 0x00000000
1202#define PS_JOIN_BEVEL 0x00001000
1203#define PS_JOIN_MITER 0x00002000
1204#define PS_JOIN_MASK 0x0000f000
1205
1206#define PS_COSMETIC 0x00000000
1207#define PS_GEOMETRIC 0x00010000
1208#define PS_TYPE_MASK 0x000f0000
1209
1210 /* Regions */
1211
1212#define ERROR 0
1213#define NULLREGION 1
1214#define SIMPLEREGION 2
1215#define COMPLEXREGION 3
1216
1217#define RGN_AND 1
1218#define RGN_OR 2
1219#define RGN_XOR 3
1220#define RGN_DIFF 4
1221#define RGN_COPY 5
1222
1223 /* Device contexts */
1224
1225/* GetDCEx flags */
1226#define DCX_WINDOW 0x00000001
1227#define DCX_CACHE 0x00000002
1228#define DCX_CLIPCHILDREN 0x00000008
1229#define DCX_CLIPSIBLINGS 0x00000010
1230#define DCX_PARENTCLIP 0x00000020
1231#define DCX_EXCLUDERGN 0x00000040
1232#define DCX_INTERSECTRGN 0x00000080
1233#define DCX_LOCKWINDOWUPDATE 0x00000400
1234#define DCX_USESTYLE 0x00010000
1235
1236 /* Polygon modes */
1237#define ALTERNATE 1
1238#define WINDING 2
1239
1240 /* Background modes */
1241#ifdef TRANSPARENT /*Apparently some broken svr4 includes define TRANSPARENT*/
1242#undef TRANSPARENT
1243#endif
1244#define TRANSPARENT 1
1245#define OPAQUE 2
1246
1247
1248 /* Graphics Modes */
1249#define GM_COMPATIBLE 1
1250#define GM_ADVANCED 2
1251#define GM_LAST 2
1252
1253 /* Arc direction modes */
1254#define AD_COUNTERCLOCKWISE 1
1255#define AD_CLOCKWISE 2
1256
1257 /* Map modes */
1258#define MM_TEXT 1
1259#define MM_LOMETRIC 2
1260#define MM_HIMETRIC 3
1261#define MM_LOENGLISH 4
1262#define MM_HIENGLISH 5
1263#define MM_TWIPS 6
1264#define MM_ISOTROPIC 7
1265#define MM_ANISOTROPIC 8
1266
1267 /* Coordinate modes */
1268#define ABSOLUTE 1
1269#define RELATIVE 2
1270
1271 /* Flood fill modes */
1272#define FLOODFILLBORDER 0
1273#define FLOODFILLSURFACE 1
1274
1275 /* Device parameters for GetDeviceCaps() */
1276#define DRIVERVERSION 0
1277#define TECHNOLOGY 2
1278#define HORZSIZE 4
1279#define VERTSIZE 6
1280#define HORZRES 8
1281#define VERTRES 10
1282#define BITSPIXEL 12
1283#define PLANES 14
1284#define NUMBRUSHES 16
1285#define NUMPENS 18
1286#define NUMMARKERS 20
1287#define NUMFONTS 22
1288#define NUMCOLORS 24
1289#define PDEVICESIZE 26
1290#define CURVECAPS 28
1291#define LINECAPS 30
1292#define POLYGONALCAPS 32
1293#define TEXTCAPS 34
1294#define CLIPCAPS 36
1295#define RASTERCAPS 38
1296#define ASPECTX 40
1297#define ASPECTY 42
1298#define ASPECTXY 44
1299#define LOGPIXELSX 88
1300#define LOGPIXELSY 90
1301#define SIZEPALETTE 104
1302#define NUMRESERVED 106
1303#define COLORRES 108
1304
1305/* TECHNOLOGY */
1306#define DT_PLOTTER 0
1307#define DT_RASDISPLAY 1
1308#define DT_RASPRINTER 2
1309#define DT_RASCAMERA 3
1310#define DT_CHARSTREAM 4
1311#define DT_METAFILE 5
1312#define DT_DISPFILE 6
1313
1314/* CURVECAPS */
1315#define CC_NONE 0x0000
1316#define CC_CIRCLES 0x0001
1317#define CC_PIE 0x0002
1318#define CC_CHORD 0x0004
1319#define CC_ELLIPSES 0x0008
1320#define CC_WIDE 0x0010
1321#define CC_STYLED 0x0020
1322#define CC_WIDESTYLED 0x0040
1323#define CC_INTERIORS 0x0080
1324#define CC_ROUNDRECT 0x0100
1325
1326/* LINECAPS */
1327#define LC_NONE 0x0000
1328#define LC_POLYLINE 0x0002
1329#define LC_MARKER 0x0004
1330#define LC_POLYMARKER 0x0008
1331#define LC_WIDE 0x0010
1332#define LC_STYLED 0x0020
1333#define LC_WIDESTYLED 0x0040
1334#define LC_INTERIORS 0x0080
1335
1336/* POLYGONALCAPS */
1337#define PC_NONE 0x0000
1338#define PC_POLYGON 0x0001
1339#define PC_RECTANGLE 0x0002
1340#define PC_WINDPOLYGON 0x0004
1341#define PC_SCANLINE 0x0008
1342#define PC_WIDE 0x0010
1343#define PC_STYLED 0x0020
1344#define PC_WIDESTYLED 0x0040
1345#define PC_INTERIORS 0x0080
1346
1347/* TEXTCAPS */
1348#define TC_OP_CHARACTER 0x0001
1349#define TC_OP_STROKE 0x0002
1350#define TC_CP_STROKE 0x0004
1351#define TC_CR_90 0x0008
1352#define TC_CR_ANY 0x0010
1353#define TC_SF_X_YINDEP 0x0020
1354#define TC_SA_DOUBLE 0x0040
1355#define TC_SA_INTEGER 0x0080
1356#define TC_SA_CONTIN 0x0100
1357#define TC_EA_DOUBLE 0x0200
1358#define TC_IA_ABLE 0x0400
1359#define TC_UA_ABLE 0x0800
1360#define TC_SO_ABLE 0x1000
1361#define TC_RA_ABLE 0x2000
1362#define TC_VA_ABLE 0x4000
1363#define TC_RESERVED 0x8000
1364
1365/* CLIPCAPS */
1366#define CP_NONE 0x0000
1367#define CP_RECTANGLE 0x0001
1368#define CP_REGION 0x0002
1369
1370/* RASTERCAPS */
1371#define RC_NONE 0x0000
1372#define RC_BITBLT 0x0001
1373#define RC_BANDING 0x0002
1374#define RC_SCALING 0x0004
1375#define RC_BITMAP64 0x0008
1376#define RC_GDI20_OUTPUT 0x0010
1377#define RC_GDI20_STATE 0x0020
1378#define RC_SAVEBITMAP 0x0040
1379#define RC_DI_BITMAP 0x0080
1380#define RC_PALETTE 0x0100
1381#define RC_DIBTODEV 0x0200
1382#define RC_BIGFONT 0x0400
1383#define RC_STRETCHBLT 0x0800
1384#define RC_FLOODFILL 0x1000
1385#define RC_STRETCHDIB 0x2000
1386#define RC_OP_DX_OUTPUT 0x4000
1387#define RC_DEVBITS 0x8000
1388
1389 /* GetSystemMetrics() codes */
1390#define SM_CXSCREEN 0
1391#define SM_CYSCREEN 1
1392#define SM_CXVSCROLL 2
1393#define SM_CYHSCROLL 3
1394#define SM_CYCAPTION 4
1395#define SM_CXBORDER 5
1396#define SM_CYBORDER 6
1397#define SM_CXDLGFRAME 7
1398#define SM_CYDLGFRAME 8
1399#define SM_CYVTHUMB 9
1400#define SM_CXHTHUMB 10
1401#define SM_CXICON 11
1402#define SM_CYICON 12
1403#define SM_CXCURSOR 13
1404#define SM_CYCURSOR 14
1405#define SM_CYMENU 15
1406#define SM_CXFULLSCREEN 16
1407#define SM_CYFULLSCREEN 17
1408#define SM_CYKANJIWINDOW 18
1409#define SM_MOUSEPRESENT 19
1410#define SM_CYVSCROLL 20
1411#define SM_CXHSCROLL 21
1412#define SM_DEBUG 22
1413#define SM_SWAPBUTTON 23
1414#define SM_RESERVED1 24
1415#define SM_RESERVED2 25
1416#define SM_RESERVED3 26
1417#define SM_RESERVED4 27
1418#define SM_CXMIN 28
1419#define SM_CYMIN 29
1420#define SM_CXSIZE 30
1421#define SM_CYSIZE 31
1422#define SM_CXFRAME 32
1423#define SM_CYFRAME 33
1424#define SM_CXMINTRACK 34
1425#define SM_CYMINTRACK 35
1426#define SM_CXDOUBLECLK 36
1427#define SM_CYDOUBLECLK 37
1428#define SM_CXICONSPACING 38
1429#define SM_CYICONSPACING 39
1430#define SM_MENUDROPALIGNMENT 40
1431#define SM_PENWINDOWS 41
1432#define SM_DBCSENABLED 42
1433#define SM_CMOUSEBUTTONS 43
1434#define SM_CXFIXEDFRAME SM_CXDLGFRAME
1435#define SM_CYFIXEDFRAME SM_CYDLGFRAME
1436#define SM_CXSIZEFRAME SM_CXFRAME
1437#define SM_CYSIZEFRAME SM_CYFRAME
1438#define SM_SECURE 44
1439#define SM_CXEDGE 45
1440#define SM_CYEDGE 46
1441#define SM_CXMINSPACING 47
1442#define SM_CYMINSPACING 48
1443#define SM_CXSMICON 49
1444#define SM_CYSMICON 50
1445#define SM_CYSMCAPTION 51
1446#define SM_CXSMSIZE 52
1447#define SM_CYSMSIZE 53
1448#define SM_CXMENUSIZE 54
1449#define SM_CYMENUSIZE 55
1450#define SM_ARRANGE 56
1451#define SM_CXMINIMIZED 57
1452#define SM_CYMINIMIZED 58
1453#define SM_CXMAXTRACK 59
1454#define SM_CYMAXTRACK 60
1455#define SM_CXMAXIMIZED 61
1456#define SM_CYMAXIMIZED 62
1457#define SM_NETWORK 63
1458#define SM_CLEANBOOT 67
1459#define SM_CXDRAG 68
1460#define SM_CYDRAG 69
1461#define SM_SHOWSOUNDS 70
1462#define SM_CXMENUCHECK 71
1463#define SM_CYMENUCHECK 72
1464#define SM_SLOWMACHINE 73
1465#define SM_MIDEASTENABLED 74
1466#define SM_MOUSEWHEELPRESENT 75
1467#define SM_XVIRTUALSCREEN 76
1468#define SM_YVIRTUALSCREEN 77
1469#define SM_CXVIRTUALSCREEN 78
1470#define SM_CYVIRTUALSCREEN 79
1471#define SM_CMONITORS 80
1472#define SM_SAMEDISPLAYFORMAT 81
1473#define SM_CMETRICS 83
1474
1475
1476 /* Device-independent bitmaps */
1477
1478typedef struct {
1479 BYTE rgbBlue;
1480 BYTE rgbGreen;
1481 BYTE rgbRed;
1482 BYTE rgbReserved;
1483} RGBQUAD, *LPRGBQUAD;
1484
1485typedef struct {
1486 BYTE rgbtBlue;
1487 BYTE rgbtGreen;
1488 BYTE rgbtRed;
1489} RGBTRIPLE;
1490
1491typedef struct
1492{
1493 UINT16 bfType;
1494 DWORD bfSize WINE_PACKED;
1495 UINT16 bfReserved1 WINE_PACKED;
1496 UINT16 bfReserved2 WINE_PACKED;
1497 DWORD bfOffBits WINE_PACKED;
1498} BITMAPFILEHEADER;
1499
1500typedef struct
1501{
1502 DWORD biSize;
1503 LONG biWidth;
1504 LONG biHeight;
1505 WORD biPlanes;
1506 WORD biBitCount;
1507 DWORD biCompression;
1508 DWORD biSizeImage;
1509 LONG biXPelsPerMeter;
1510 LONG biYPelsPerMeter;
1511 DWORD biClrUsed;
1512 DWORD biClrImportant;
1513} BITMAPINFOHEADER, *PBITMAPINFOHEADER, *LPBITMAPINFOHEADER;
1514
1515typedef struct {
1516 DWORD bV4Size;
1517 LONG bV4Width;
1518 LONG bV4Height;
1519 WORD bV4Planes;
1520 WORD bV4BitCount;
1521 DWORD bV4V4Compression;
1522 DWORD bV4SizeImage;
1523 LONG bV4XPelsPerMeter;
1524 LONG bV4YPelsPerMeter;
1525 DWORD bV4ClrUsed;
1526 DWORD bV4ClrImportant;
1527 DWORD bV4RedMask;
1528 DWORD bV4GreenMask;
1529 DWORD bV4BlueMask;
1530 DWORD bV4AlphaMask;
1531 DWORD bV4CSType;
1532 CIEXYZTRIPLE bV4Endpoints;
1533 DWORD bV4GammaRed;
1534 DWORD bV4GammaGreen;
1535 DWORD bV4GammaBlue;
1536} BITMAPV4HEADER, *LPBITMAPV4HEADER, *PBITMAPV4HEADER;
1537
1538 /* biCompression */
1539#define BI_RGB 0
1540#define BI_RLE8 1
1541#define BI_RLE4 2
1542#define BI_BITFIELDS 3
1543
1544typedef struct {
1545 BITMAPINFOHEADER bmiHeader;
1546 RGBQUAD bmiColors[1];
1547} BITMAPINFO;
1548typedef BITMAPINFO *LPBITMAPINFO;
1549typedef BITMAPINFO *NPBITMAPINFO;
1550typedef BITMAPINFO *PBITMAPINFO;
1551
1552typedef struct
1553{
1554 DWORD bcSize;
1555 UINT16 bcWidth;
1556 UINT16 bcHeight;
1557 UINT16 bcPlanes;
1558 UINT16 bcBitCount;
1559} BITMAPCOREHEADER, *LPBITMAPCOREHEADER;
1560
1561typedef struct
1562{
1563 BITMAPCOREHEADER bmciHeader;
1564 RGBTRIPLE bmciColors[1];
1565} BITMAPCOREINFO, *LPBITMAPCOREINFO;
1566
1567#define DIB_RGB_COLORS 0
1568#define DIB_PAL_COLORS 1
1569#define CBM_INIT 4
1570
1571typedef struct
1572{
1573 BITMAP dsBm;
1574 BITMAPINFOHEADER dsBmih;
1575 DWORD dsBitfields[3];
1576 HANDLE dshSection;
1577 DWORD dsOffset;
1578} DIBSECTION,*LPDIBSECTION;
1579
1580 /* Stock GDI objects for GetStockObject() */
1581
1582#define WHITE_BRUSH 0
1583#define LTGRAY_BRUSH 1
1584#define GRAY_BRUSH 2
1585#define DKGRAY_BRUSH 3
1586#define BLACK_BRUSH 4
1587#define NULL_BRUSH 5
1588#define HOLLOW_BRUSH 5
1589#define WHITE_PEN 6
1590#define BLACK_PEN 7
1591#define NULL_PEN 8
1592#define OEM_FIXED_FONT 10
1593#define ANSI_FIXED_FONT 11
1594#define ANSI_VAR_FONT 12
1595#define SYSTEM_FONT 13
1596#define DEVICE_DEFAULT_FONT 14
1597#define DEFAULT_PALETTE 15
1598#define SYSTEM_FIXED_FONT 16
1599#define DEFAULT_GUI_FONT 17
1600
1601#define STOCK_LAST 17
1602
1603/* Metafile header structure */
1604typedef struct
1605{
1606 WORD mtType;
1607 WORD mtHeaderSize;
1608 WORD mtVersion;
1609 DWORD mtSize WINE_PACKED;
1610 WORD mtNoObjects;
1611 DWORD mtMaxRecord WINE_PACKED;
1612 WORD mtNoParameters;
1613} METAHEADER;
1614
1615/* Metafile typical record structure */
1616typedef struct
1617{
1618 DWORD rdSize;
1619 WORD rdFunction;
1620 WORD rdParm[1];
1621} METARECORD;
1622typedef METARECORD *PMETARECORD;
1623typedef METARECORD *LPMETARECORD;
1624
1625/* Handle table structure */
1626typedef struct
1627{
1628 HGDIOBJ objectHandle[1];
1629} HANDLETABLE, *LPHANDLETABLE;
1630
1631
1632/* Clipboard metafile picture structure */
1633typedef struct
1634{
1635 INT mm;
1636 INT xExt;
1637 INT yExt;
1638 HMETAFILE hMF;
1639} METAFILEPICT, *LPMETAFILEPICT;
1640
1641
1642/* Metafile functions */
1643#define META_SETBKCOLOR 0x0201
1644#define META_SETBKMODE 0x0102
1645#define META_SETMAPMODE 0x0103
1646#define META_SETROP2 0x0104
1647#define META_SETRELABS 0x0105
1648#define META_SETPOLYFILLMODE 0x0106
1649#define META_SETSTRETCHBLTMODE 0x0107
1650#define META_SETTEXTCHAREXTRA 0x0108
1651#define META_SETTEXTCOLOR 0x0209
1652#define META_SETTEXTJUSTIFICATION 0x020A
1653#define META_SETWINDOWORG 0x020B
1654#define META_SETWINDOWEXT 0x020C
1655#define META_SETVIEWPORTORG 0x020D
1656#define META_SETVIEWPORTEXT 0x020E
1657#define META_OFFSETWINDOWORG 0x020F
1658#define META_SCALEWINDOWEXT 0x0410
1659#define META_OFFSETVIEWPORTORG 0x0211
1660#define META_SCALEVIEWPORTEXT 0x0412
1661#define META_LINETO 0x0213
1662#define META_MOVETO 0x0214
1663#define META_EXCLUDECLIPRECT 0x0415
1664#define META_INTERSECTCLIPRECT 0x0416
1665#define META_ARC 0x0817
1666#define META_ELLIPSE 0x0418
1667#define META_FLOODFILL 0x0419
1668#define META_PIE 0x081A
1669#define META_RECTANGLE 0x041B
1670#define META_ROUNDRECT 0x061C
1671#define META_PATBLT 0x061D
1672#define META_SAVEDC 0x001E
1673#define META_SETPIXEL 0x041F
1674#define META_OFFSETCLIPRGN 0x0220
1675#define META_TEXTOUT 0x0521
1676#define META_BITBLT 0x0922
1677#define META_STRETCHBLT 0x0B23
1678#define META_POLYGON 0x0324
1679#define META_POLYLINE 0x0325
1680#define META_ESCAPE 0x0626
1681#define META_RESTOREDC 0x0127
1682#define META_FILLREGION 0x0228
1683#define META_FRAMEREGION 0x0429
1684#define META_INVERTREGION 0x012A
1685#define META_PAINTREGION 0x012B
1686#define META_SELECTCLIPREGION 0x012C
1687#define META_SELECTOBJECT 0x012D
1688#define META_SETTEXTALIGN 0x012E
1689#define META_DRAWTEXT 0x062F
1690#define META_CHORD 0x0830
1691#define META_SETMAPPERFLAGS 0x0231
1692#define META_EXTTEXTOUT 0x0A32
1693#define META_SETDIBTODEV 0x0D33
1694#define META_SELECTPALETTE 0x0234
1695#define META_REALIZEPALETTE 0x0035
1696#define META_ANIMATEPALETTE 0x0436
1697#define META_SETPALENTRIES 0x0037
1698#define META_POLYPOLYGON 0x0538
1699#define META_RESIZEPALETTE 0x0139
1700#define META_DIBBITBLT 0x0940
1701#define META_DIBSTRETCHBLT 0x0B41
1702#define META_DIBCREATEPATTERNBRUSH 0x0142
1703#define META_STRETCHDIB 0x0F43
1704#define META_EXTFLOODFILL 0x0548
1705#define META_RESETDC 0x014C
1706#define META_STARTDOC 0x014D
1707#define META_STARTPAGE 0x004F
1708#define META_ENDPAGE 0x0050
1709#define META_ABORTDOC 0x0052
1710#define META_ENDDOC 0x005E
1711#define META_DELETEOBJECT 0x01F0
1712#define META_CREATEPALETTE 0x00F7
1713#define META_CREATEBRUSH 0x00F8
1714#define META_CREATEPATTERNBRUSH 0x01F9
1715#define META_CREATEPENINDIRECT 0x02FA
1716#define META_CREATEFONTINDIRECT 0x02FB
1717#define META_CREATEBRUSHINDIRECT 0x02FC
1718#define META_CREATEBITMAPINDIRECT 0x02FD
1719#define META_CREATEBITMAP 0x06FE
1720#define META_CREATEREGION 0x06FF
1721#define META_UNKNOWN 0x0529 /* FIXME: unknown meta magic */
1722
1723typedef INT (* CALLBACK MFENUMPROC)(HDC,HANDLETABLE*,METARECORD*,
1724 INT,LPARAM);
1725
1726/* enhanced metafile structures and functions */
1727
1728/* note that ENHMETAHEADER is just a particular kind of ENHMETARECORD,
1729 ie. the header is just the first record in the metafile */
1730typedef struct {
1731 DWORD iType;
1732 DWORD nSize;
1733 RECTL rclBounds;
1734 RECTL rclFrame;
1735 DWORD dSignature;
1736 DWORD nVersion;
1737 DWORD nBytes;
1738 DWORD nRecords;
1739 WORD nHandles;
1740 WORD sReserved;
1741 DWORD nDescription;
1742 DWORD offDescription;
1743 DWORD nPalEntries;
1744 SIZEL szlDevice;
1745 SIZEL szlMillimeters;
1746 DWORD cbPixelFormat;
1747 DWORD offPixelFormat;
1748 DWORD bOpenGL;
1749} ENHMETAHEADER, *LPENHMETAHEADER;
1750
1751typedef struct {
1752 DWORD iType;
1753 DWORD nSize;
1754 DWORD dParm[1];
1755} ENHMETARECORD, *LPENHMETARECORD;
1756
1757typedef struct {
1758 DWORD iType;
1759 DWORD nSize;
1760} EMR, *PEMR;
1761
1762typedef struct {
1763 POINTL ptlReference;
1764 DWORD nChars;
1765 DWORD offString;
1766 DWORD fOptions;
1767 RECTL rcl;
1768 DWORD offDx;
1769} EMRTEXT, *PEMRTEXT;
1770
1771typedef struct {
1772 EMR emr;
1773} EMRABORTPATH, *PEMRABORTPATH,
1774 EMRBEGINPATH, *PEMRBEGINPATH,
1775 EMRENDPATH, *PEMRENDPATH,
1776 EMRCLOSEFIGURE, *PEMRCLOSEFIGURE,
1777 EMRFLATTENPATH, *PEMRFLATTENPATH,
1778 EMRWIDENPATH, *PEMRWIDENPATH,
1779 EMRSETMETARGN, *PEMRSETMETARGN,
1780 EMRSAVEDC, *PEMRSAVEDC,
1781 EMRREALIZEPALETTE, *PEMRREALIZEPALETTE;
1782
1783typedef struct {
1784 EMR emr;
1785 POINTL ptlCenter;
1786 DWORD nRadius;
1787 FLOAT eStartAngle;
1788 FLOAT eSweepAngle;
1789} EMRANGLEARC, *PEMRANGLEARC;
1790
1791typedef struct {
1792 EMR emr;
1793 RECTL rclBox;
1794 POINTL ptlStart;
1795 POINTL ptlEnd;
1796} EMRARC, *PEMRARC,
1797 EMRARCTO, *PEMRARCTO,
1798 EMRCHORD, *PEMRCHORD,
1799 EMRPIE, *PEMRPIE;
1800
1801typedef struct {
1802 EMR emr;
1803 RECTL rclBounds;
1804 LONG xDest;
1805 LONG yDest;
1806 LONG cxDest;
1807 LONG cyDest;
1808 DWORD dwRop;
1809 LONG xSrc;
1810 LONG ySrc;
1811 XFORM xformSrc;
1812 COLORREF crBkColorSrc;
1813 DWORD iUsegeSrc;
1814 DWORD offBmiSrc;
1815 DWORD cbBmiSrc;
1816 DWORD offBitsSrc;
1817 DWORD cbBitsSrc;
1818} EMRBITBLT, *PEMRBITBLT;
1819
1820typedef struct {
1821 EMR emr;
1822 DWORD ihBrush;
1823 LOGBRUSH lb;
1824} EMRCREATEBRUSHINDIRECT, *PEMRCREATEBRUSHINDIRECT;
1825
1826typedef struct {
1827 EMR emr;
1828 DWORD ihCS;
1829 LOGCOLORSPACEW lcs;
1830} EMRCREATECOLORSPACE, *PEMRCREATECOLORSPACE;
1831
1832typedef struct {
1833 EMR emr;
1834 DWORD ihBrush;
1835 DWORD iUsage;
1836 DWORD offBmi;
1837 DWORD cbBmi;
1838 DWORD offBits;
1839 DWORD cbBits;
1840} EMRCREATEDIBPATTERNBRUSHPT, *PEMRCREATEDIBPATTERNBRUSHPT;
1841
1842typedef struct {
1843 EMR emr;
1844 DWORD ihBrush;
1845 DWORD iUsage;
1846 DWORD offBmi;
1847 DWORD cbBmi;
1848 DWORD offBits;
1849 DWORD cbBits;
1850} EMRCREATEMONOBRUSH, *PEMRCREATEMONOBRUSH;
1851
1852typedef struct {
1853 EMR emr;
1854 DWORD ihPal;
1855 LOGPALETTE lgpl;
1856} EMRCREATEPALETTE, *PEMRCREATEPALETTE;
1857
1858typedef struct {
1859 EMR emr;
1860 DWORD ihPen;
1861 LOGPEN lopn;
1862} EMRCREATEPEN, *PEMRCREATEPEN;
1863
1864typedef struct {
1865 EMR emr;
1866 DWORD ihCS;
1867} EMRDELETECOLORSPACE, *PEMRDELETECOLORSPACE,
1868 EMRSELECTCOLORSPACE, *PEMRSELECTCOLORSPACE,
1869 EMRSETCOLORSPACE, *PEMRSETCOLORSPACE;
1870
1871typedef struct {
1872 EMR emr;
1873 DWORD ihObject;
1874} EMRDELETEOBJECT, *PEMRDELETEOBJECT,
1875 EMRSELECTOBJECT, *PEMRSELECTOBJECT;
1876
1877typedef struct {
1878 EMR emr;
1879 RECTL rclBox;
1880} EMRELLIPSE, *PEMRELLIPSE,
1881 EMRRECTANGLE, *PEMRRECTANGLE;
1882
1883typedef struct {
1884 EMR emr;
1885 DWORD nPalEntries;
1886 DWORD offPalEntries;
1887 DWORD nSizeLast;
1888} EMREOF, *PEMREOF;
1889
1890typedef struct {
1891 EMR emr;
1892 RECTL rclClip;
1893} EMREXCLUDECLIPRECT, *PEMREXCLUDECLIPRECT,
1894 EMRINTERSECTCLIPRECT, *PEMRINTERSECTCLIPRECT;
1895
1896typedef struct {
1897 EMR emr;
1898 DWORD ihFont;
1899 EXTLOGFONTW elfw;
1900} EMREXTCREATEFONTINDIRECTW, *PEMREXTCREATEFONTINDIRECTW;
1901
1902typedef struct {
1903 EMR emr;
1904 DWORD ihPen;
1905 DWORD offBmi;
1906 DWORD cbBmi;
1907 DWORD offBits;
1908 DWORD cbBits;
1909 EXTLOGPEN elp;
1910} EMREXTCREATEPEN, *PEMREXTCREATEPEN;
1911
1912typedef struct {
1913 EMR emr;
1914 POINTL ptlStart;
1915 COLORREF crColor;
1916 DWORD iMode;
1917} EMREXTFLOODFILL, *PEMREXTFLOODFILL;
1918
1919typedef struct {
1920 EMR emr;
1921 DWORD cbRgnData;
1922 DWORD iMode;
1923 BYTE RgnData[1];
1924} EMREXTSELECTCLIPRGN, *PEMREXTSELECTCLIPRGN;
1925
1926typedef struct {
1927 EMR emr;
1928 RECTL rclBounds;
1929 DWORD iGraphicsMode;
1930 FLOAT exScale;
1931 FLOAT eyScale;
1932 EMRTEXT emrtext;
1933} EMREXTTEXTOUTA, *PEMREXTTEXTOUTA,
1934 EMREXTTEXTOUTW, *PEMREXTTEXTOUTW;
1935
1936typedef struct {
1937 EMR emr;
1938 RECTL rclBounds;
1939} EMRFILLPATH, *PEMRFILLPATH,
1940 EMRSTROKEANDFILLPATH, *PEMRSTROKEANDFILLPATH,
1941 EMRSTROKEPATH, *PEMRSTROKEPATH;
1942
1943typedef struct {
1944 EMR emr;
1945 RECTL rclBounds;
1946 DWORD cbRgnData;
1947 DWORD ihBrush;
1948 BYTE RgnData[1];
1949} EMRFILLRGN, *PEMRFILLRGN;
1950
1951typedef struct {
1952 DWORD signature;
1953 DWORD nVersion;
1954 DWORD cbData;
1955 DWORD offData;
1956} EMRFORMAT, *PEMRFORMAT;
1957
1958typedef struct {
1959 EMR emr;
1960 RECTL rclBounds;
1961 DWORD cbRgnData;
1962 DWORD ihBrush;
1963 SIZEL szlStroke;
1964 BYTE RgnData[1];
1965} EMRFRAMERGN, *PEMRFRAMERGN;
1966
1967typedef struct {
1968 EMR emr;
1969 DWORD cbData;
1970 BYTE Data[1];
1971} EMRGDICOMMENT, *PEMRGDICOMMENT;
1972
1973#if 0
1974typedef struct {
1975 EMR emr;
1976 RECTL rclBounds;
1977 DWORD nVer;
1978 DWORD nTri;
1979 ULONG ulMode;
1980 TRIVERTEX Ver[1];
1981} EMRGRADIENTFILL, *PEMRGRADIENTFILL;
1982#endif
1983
1984typedef struct {
1985 EMR emr;
1986 RECTL rclBounds;
1987 DWORD cbRgnData;
1988 BYTE RgnData[1];
1989} EMRINVERTRGN, *PEMRINVERTRGN,
1990 EMRPAINTRGN, *PEMRPAINTRGN;
1991
1992typedef struct {
1993 EMR emr;
1994 POINTL ptl;
1995} EMRLINETO, *PEMRLINETO,
1996 EMRMOVETOEX, *PEMRMOVETOEX;
1997
1998typedef struct {
1999 EMR emr;
2000 RECTL rclBounds;
2001 LONG xDest;
2002 LONG yDest;
2003 LONG cxDest;
2004 LONG cyDest;
2005 DWORD dwRop;
2006 LONG xSrc;
2007 LONG ySrc;
2008 XFORM xformSrc;
2009 COLORREF crBkColorSrc;
2010 DWORD iUsageSrc;
2011 DWORD offBmiSrc;
2012 DWORD cbBmiSrc;
2013 DWORD offBitsSrc;
2014 DWORD cbBitsSrc;
2015 LONG xMask;
2016 LONG yMask;
2017 DWORD iUsageMask;
2018 DWORD offBmiMask;
2019 DWORD cbBmiMask;
2020 DWORD offBitsMask;
2021 DWORD cbBitsMask;
2022} EMRMASKBLT, *PEMRMASKBLT;
2023
2024typedef struct {
2025 EMR emr;
2026 XFORM xform;
2027 DWORD iMode;
2028} EMRMODIFYWORLDTRANSFORM, *PEMRMODIFYWORLDTRANSFORM;
2029
2030typedef struct {
2031 EMR emr;
2032 POINTL ptlOffset;
2033} EMROFFSETCLIPRGN, *PEMROFFSETCLIPRGN;
2034
2035typedef struct {
2036 EMR emr;
2037 RECTL rclBounds;
2038 POINTL aptlDst[3];
2039 LONG xSrc;
2040 LONG ySrc;
2041 LONG cxSrc;
2042 LONG cySrc;
2043 XFORM xformSrc;
2044 COLORREF crBkColorSrc;
2045 DWORD iUsageSrc;
2046 DWORD offBmiSrc;
2047 DWORD cbBmiSrc;
2048 DWORD offBitsSrc;
2049 DWORD cbBitsSrc;
2050 LONG xMask;
2051 LONG yMask;
2052 DWORD iUsageMask;
2053 DWORD offBmiMask;
2054 DWORD cbBmiMask;
2055 DWORD offBitsMask;
2056 DWORD cbBitsMask;
2057} EMRPLGBLT, *PEMRPLGBLT;
2058
2059typedef struct {
2060 EMR emr;
2061 RECTL rclBounds;
2062 DWORD cptl;
2063 POINTL aptl[1];
2064} EMRPOLYLINE, *PEMRPOLYLINE,
2065 EMRPOLYBEZIER, *PEMRPOLYBEZIER,
2066 EMRPOLYGON, *PEMRPOLYGON,
2067 EMRPOLYBEZIERTO, *PEMRPOLYBEZIERTO,
2068 EMRPOLYLINETO, *PEMRPOLYLINETO;
2069
2070typedef struct {
2071 EMR emr;
2072 RECTL rclBounds;
2073 DWORD cptl;
2074 POINTL aptl[1];
2075 BYTE abTypes[1];
2076} EMRPOLYDRAW, *PEMRPOLYDRAW;
2077
2078typedef struct {
2079 EMR emr;
2080 RECTL rclBounds;
2081 DWORD nPolys;
2082 DWORD cptl;
2083 DWORD aPolyCounts[1];
2084 POINTL aptl[1];
2085} EMRPOLYPOLYLINE, *PEMRPOLYPOLYLINE,
2086 EMRPOLYPOLYGON, *PEMRPOLYPOLYGON;
2087
2088typedef struct {
2089 EMR emr;
2090 RECTL rclBounds;
2091 DWORD iGraphicsMode;
2092 FLOAT exScale;
2093 FLOAT eyScale;
2094 LONG cStrings;
2095 EMRTEXT aemrtext[1];
2096} EMRPOLYTEXTOUTA, *PEMRPOLYTEXTOUTA,
2097 EMRPOLYTEXTOUTW, *PEMRPOLYTEXTOUTW;
2098
2099typedef struct {
2100 EMR emr;
2101 DWORD ihPal;
2102 DWORD cEntries;
2103} EMRRESIZEPALETTE, *PEMRRESIZEPALETTE;
2104
2105typedef struct {
2106 EMR emr;
2107 LONG iRelative;
2108} EMRRESTOREDC, *PEMRRESTOREDC;
2109
2110typedef struct {
2111 EMR emr;
2112 RECTL rclBox;
2113 SIZEL szlCorner;
2114} EMRROUNDRECT, *PEMRROUNDRECT;
2115
2116typedef struct {
2117 EMR emr;
2118 LONG xNum;
2119 LONG xDenom;
2120 LONG yNum;
2121 LONG yDenom;
2122} EMRSCALEVIEWPORTEXTEX, *PEMRSCALEVIEWPORTEXTEX,
2123 EMRSCALEWINDOWEXTEX, *PEMRSCALEWINDOWEXTEX;
2124
2125typedef struct {
2126 EMR emr;
2127 DWORD ihPal;
2128} EMRSELECTPALETTE, *PEMRSELECTPALETTE;
2129
2130typedef struct {
2131 EMR emr;
2132 DWORD iArcDirection;
2133} EMRSETARCDIRECTION, *PEMRSETARCDIRECTION;
2134
2135typedef struct {
2136 EMR emr;
2137 COLORREF crColor;
2138} EMRSETBKCOLOR, *PEMRSETBKCOLOR,
2139 EMRSETTEXTCOLOR, *PEMRSETTEXTCOLOR;
2140
2141typedef struct {
2142 EMR emr;
2143 POINTL ptlOrigin;
2144} EMRSETBRUSHORGEX, *PEMRSETBRUSHORGEX,
2145 EMRSETVIEWPORTORGEX, *PEMRSETVIEWPORTORGEX,
2146 EMRSETWINDOWORGEX, *PEMRSETWINDOWORGEX;
2147
2148typedef struct {
2149 EMR emr;
2150 COLORADJUSTMENT ColorAdjustment;
2151} EMRSETCOLORADJUSTMENT, *PEMRSETCOLORADJUSTMENT;
2152
2153typedef struct {
2154 EMR emr;
2155 RECTL rclBounds;
2156 LONG xDest;
2157 LONG yDest;
2158 LONG xSrc;
2159 LONG ySrc;
2160 LONG cxSrc;
2161 LONG cySrc;
2162 DWORD offBmiSrc;
2163 DWORD cbBmiSrc;
2164 DWORD offBitsSrc;
2165 DWORD cbBitsSrc;
2166 DWORD iUsageSrc;
2167 DWORD iStartScan;
2168 DWORD cScans;
2169} EMRSETDIBITSTODEIVCE, *PEMRSETDIBITSTODEVICE;
2170
2171typedef struct {
2172 EMR emr;
2173 DWORD dwFlags;
2174} EMRSETMAPPERFLAGS, *PEMRSETMAPPERFLAGS;
2175
2176typedef struct {
2177 EMR emr;
2178 FLOAT eMiterLimit;
2179} EMRSETMITERLIMIT, *PEMRSETMITERLIMIT;
2180
2181typedef struct {
2182 EMR emr;
2183 DWORD ihPal;
2184 DWORD iStart;
2185 DWORD cEntries;
2186 PALETTEENTRY aPalEntries[1];
2187} EMRSETPALETTEENTRIES, *PEMRSETPALETTEENTRIES;
2188
2189typedef struct {
2190 EMR emr;
2191 POINTL ptlPixel;
2192 COLORREF crColor;
2193} EMRSETPIXELV, *PEMRSETPIXELV;
2194
2195typedef struct {
2196 EMR emr;
2197 SIZEL szlExtent;
2198} EMRSETVIEWPORTEXTEX, *PEMRSETVIEWPORTEXTEX,
2199 EMRSETWINDOWEXTEX, *PEMRSETWINDOWEXTEX;
2200
2201typedef struct {
2202 EMR emr;
2203 XFORM xform;
2204} EMRSETWORLDTRANSFORM, *PEMRSETWORLDTRANSFORM;
2205
2206typedef struct {
2207 EMR emr;
2208 RECTL rclBounds;
2209 LONG xDest;
2210 LONG yDest;
2211 LONG cxDest;
2212 LONG cyDest;
2213 DWORD dwRop;
2214 LONG xSrc;
2215 LONG ySrc;
2216 XFORM xformSrc;
2217 COLORREF crBkColorSrc;
2218 DWORD iUsageSrc;
2219 DWORD offBmiSrc;
2220 DWORD cbBmiSrc;
2221 DWORD offBitsSrc;
2222 DWORD cbBitsSrc;
2223 LONG cxSrc;
2224 LONG cySrc;
2225} EMRSTRETCHBLT, *PEMRSTRETCHBLT;
2226
2227typedef struct {
2228 EMR emr;
2229 RECTL rclBounds;
2230 LONG xDest;
2231 LONG yDest;
2232 LONG xSrc;
2233 LONG ySrc;
2234 LONG cxSrc;
2235 LONG cySrc;
2236 DWORD offBmiSrc;
2237 DWORD cbBmiSrc;
2238 DWORD offBitsSrc;
2239 DWORD cbBitsSrc;
2240 DWORD iUsage;
2241 DWORD dwRop;
2242 LONG cxDest;
2243 LONG cyDst;
2244} EMRSTRETCHDIBITS, *PEMRSTRETCHDIBITS;
2245
2246typedef INT (* CALLBACK ENHMFENUMPROC)(HDC, LPHANDLETABLE,
2247 LPENHMETARECORD, INT, LPVOID);
2248
2249#define EMR_HEADER 1
2250#define EMR_POLYBEZIER 2
2251#define EMR_POLYGON 3
2252#define EMR_POLYLINE 4
2253#define EMR_POLYBEZIERTO 5
2254#define EMR_POLYLINETO 6
2255#define EMR_POLYPOLYLINE 7
2256#define EMR_POLYPOLYGON 8
2257#define EMR_SETWINDOWEXTEX 9
2258#define EMR_SETWINDOWORGEX 10
2259#define EMR_SETVIEWPORTEXTEX 11
2260#define EMR_SETVIEWPORTORGEX 12
2261#define EMR_SETBRUSHORGEX 13
2262#define EMR_EOF 14
2263#define EMR_SETPIXELV 15
2264#define EMR_SETMAPPERFLAGS 16
2265#define EMR_SETMAPMODE 17
2266#define EMR_SETBKMODE 18
2267#define EMR_SETPOLYFILLMODE 19
2268#define EMR_SETROP2 20
2269#define EMR_SETSTRETCHBLTMODE 21
2270#define EMR_SETTEXTALIGN 22
2271#define EMR_SETCOLORADJUSTMENT 23
2272#define EMR_SETTEXTCOLOR 24
2273#define EMR_SETBKCOLOR 25
2274#define EMR_OFFSETCLIPRGN 26
2275#define EMR_MOVETOEX 27
2276#define EMR_SETMETARGN 28
2277#define EMR_EXCLUDECLIPRECT 29
2278#define EMR_INTERSECTCLIPRECT 30
2279#define EMR_SCALEVIEWPORTEXTEX 31
2280#define EMR_SCALEWINDOWEXTEX 32
2281#define EMR_SAVEDC 33
2282#define EMR_RESTOREDC 34
2283#define EMR_SETWORLDTRANSFORM 35
2284#define EMR_MODIFYWORLDTRANSFORM 36
2285#define EMR_SELECTOBJECT 37
2286#define EMR_CREATEPEN 38
2287#define EMR_CREATEBRUSHINDIRECT 39
2288#define EMR_DELETEOBJECT 40
2289#define EMR_ANGLEARC 41
2290#define EMR_ELLIPSE 42
2291#define EMR_RECTANGLE 43
2292#define EMR_ROUNDRECT 44
2293#define EMR_ARC 45
2294#define EMR_CHORD 46
2295#define EMR_PIE 47
2296#define EMR_SELECTPALETTE 48
2297#define EMR_CREATEPALETTE 49
2298#define EMR_SETPALETTEENTRIES 50
2299#define EMR_RESIZEPALETTE 51
2300#define EMR_REALIZEPALETTE 52
2301#define EMR_EXTFLOODFILL 53
2302#define EMR_LINETO 54
2303#define EMR_ARCTO 55
2304#define EMR_POLYDRAW 56
2305#define EMR_SETARCDIRECTION 57
2306#define EMR_SETMITERLIMIT 58
2307#define EMR_BEGINPATH 59
2308#define EMR_ENDPATH 60
2309#define EMR_CLOSEFIGURE 61
2310#define EMR_FILLPATH 62
2311#define EMR_STROKEANDFILLPATH 63
2312#define EMR_STROKEPATH 64
2313#define EMR_FLATTENPATH 65
2314#define EMR_WIDENPATH 66
2315#define EMR_SELECTCLIPPATH 67
2316#define EMR_ABORTPATH 68
2317#define EMR_GDICOMMENT 70
2318#define EMR_FILLRGN 71
2319#define EMR_FRAMERGN 72
2320#define EMR_INVERTRGN 73
2321#define EMR_PAINTRGN 74
2322#define EMR_EXTSELECTCLIPRGN 75
2323#define EMR_BITBLT 76
2324#define EMR_STRETCHBLT 77
2325#define EMR_MASKBLT 78
2326#define EMR_PLGBLT 79
2327#define EMR_SETDIBITSTODEVICE 80
2328#define EMR_STRETCHDIBITS 81
2329#define EMR_EXTCREATEFONTINDIRECTW 82
2330#define EMR_EXTTEXTOUTA 83
2331#define EMR_EXTTEXTOUTW 84
2332#define EMR_POLYBEZIER16 85
2333#define EMR_POLYGON16 86
2334#define EMR_POLYLINE16 87
2335#define EMR_POLYBEZIERTO16 88
2336#define EMR_POLYLINETO16 89
2337#define EMR_POLYPOLYLINE16 90
2338#define EMR_POLYPOLYGON16 91
2339#define EMR_POLYDRAW16 92
2340#define EMR_CREATEMONOBRUSH 93
2341#define EMR_CREATEDIBPATTERNBRUSHPT 94
2342#define EMR_EXTCREATEPEN 95
2343#define EMR_POLYTEXTOUTA 96
2344#define EMR_POLYTEXTOUTW 97
2345#define EMR_SETICMMODE 98
2346#define EMR_CREATECOLORSPACE 99
2347#define EMR_SETCOLORSPACE 100
2348#define EMR_DELETECOLORSPACE 101
2349#define EMR_GLSRECORD 102
2350#define EMR_GLSBOUNDEDRECORD 103
2351#define EMR_PIXELFORMAT 104
2352
2353#define ENHMETA_SIGNATURE 1179469088
2354
2355#define CCHDEVICENAME 32
2356#define CCHFORMNAME 32
2357
2358typedef struct
2359{
2360 BYTE dmDeviceName[CCHDEVICENAME];
2361 WORD dmSpecVersion;
2362 WORD dmDriverVersion;
2363 WORD dmSize;
2364 WORD dmDriverExtra;
2365 DWORD dmFields;
2366 INT16 dmOrientation;
2367 INT16 dmPaperSize;
2368 INT16 dmPaperLength;
2369 INT16 dmPaperWidth;
2370 INT16 dmScale;
2371 INT16 dmCopies;
2372 INT16 dmDefaultSource;
2373 INT16 dmPrintQuality;
2374 INT16 dmColor;
2375 INT16 dmDuplex;
2376 INT16 dmYResolution;
2377 INT16 dmTTOption;
2378 INT16 dmCollate;
2379 BYTE dmFormName[CCHFORMNAME];
2380 WORD dmLogPixels;
2381 DWORD dmBitsPerPel;
2382 DWORD dmPelsWidth;
2383 DWORD dmPelsHeight;
2384 DWORD dmDisplayFlags;
2385 DWORD dmDisplayFrequency;
2386 DWORD dmICMMethod;
2387 DWORD dmICMIntent;
2388 DWORD dmMediaType;
2389 DWORD dmDitherType;
2390 DWORD dmReserved1;
2391 DWORD dmReserved2;
2392} DEVMODEA, *PDEVMODEA, *LPDEVMODEA;
2393
2394typedef struct
2395{
2396 WCHAR dmDeviceName[CCHDEVICENAME];
2397 WORD dmSpecVersion;
2398 WORD dmDriverVersion;
2399 WORD dmSize;
2400 WORD dmDriverExtra;
2401 DWORD dmFields;
2402 INT16 dmOrientation;
2403 INT16 dmPaperSize;
2404 INT16 dmPaperLength;
2405 INT16 dmPaperWidth;
2406 INT16 dmScale;
2407 INT16 dmCopies;
2408 INT16 dmDefaultSource;
2409 INT16 dmPrintQuality;
2410 INT16 dmColor;
2411 INT16 dmDuplex;
2412 INT16 dmYResolution;
2413 INT16 dmTTOption;
2414 INT16 dmCollate;
2415 WCHAR dmFormName[CCHFORMNAME];
2416 WORD dmLogPixels;
2417 DWORD dmBitsPerPel;
2418 DWORD dmPelsWidth;
2419 DWORD dmPelsHeight;
2420 DWORD dmDisplayFlags;
2421 DWORD dmDisplayFrequency;
2422 DWORD dmICMMethod;
2423 DWORD dmICMIntent;
2424 DWORD dmMediaType;
2425 DWORD dmDitherType;
2426 DWORD dmReserved1;
2427 DWORD dmReserved2;
2428} DEVMODEW, *PDEVMODEW, *LPDEVMODEW;
2429
2430DECL_WINELIB_TYPE_AW(DEVMODE)
2431DECL_WINELIB_TYPE_AW(PDEVMODE)
2432DECL_WINELIB_TYPE_AW(LPDEVMODE)
2433
2434#define DM_UPDATE 1
2435#define DM_COPY 2
2436#define DM_PROMPT 4
2437#define DM_MODIFY 8
2438
2439#define DM_IN_BUFFER DM_MODIFY
2440#define DM_IN_PROMPT DM_PROMPT
2441#define DM_OUT_BUFFER DM_COPY
2442#define DM_OUT_DEFAULT DM_UPDATE
2443
2444#define DM_ORIENTATION 0x00000001L
2445#define DM_PAPERSIZE 0x00000002L
2446#define DM_PAPERLENGTH 0x00000004L
2447#define DM_PAPERWIDTH 0x00000008L
2448#define DM_SCALE 0x00000010L
2449#define DM_COPIES 0x00000100L
2450#define DM_DEFAULTSOURCE 0x00000200L
2451#define DM_PRINTQUALITY 0x00000400L
2452#define DM_COLOR 0x00000800L
2453#define DM_DUPLEX 0x00001000L
2454#define DM_YRESOLUTION 0x00002000L
2455#define DM_TTOPTION 0x00004000L
2456#define DM_BITSPERPEL 0x00040000L
2457#define DM_PELSWIDTH 0x00080000L
2458#define DM_PELSHEIGHT 0x00100000L
2459#define DM_DISPLAYFLAGS 0x00200000L
2460#define DM_DISPLAYFREQUENCY 0x00400000L
2461
2462/* etc.... */
2463
2464#define DMORIENT_PORTRAIT 1
2465#define DMORIENT_LANDSCAPE 2
2466
2467#define DMPAPER_LETTER 1
2468#define DMPAPER_LETTERSMALL 2
2469#define DMPAPER_TABLOID 3
2470#define DMPAPER_LEDGER 4
2471#define DMPAPER_LEGAL 5
2472#define DMPAPER_STATEMENT 6
2473#define DMPAPER_EXECUTIVE 7
2474#define DMPAPER_A3 8
2475#define DMPAPER_A4 9
2476#define DMPAPER_A4SMALL 10
2477#define DMPAPER_A5 11
2478#define DMPAPER_B4 12
2479#define DMPAPER_B5 13
2480#define DMPAPER_FOLIO 14
2481#define DMPAPER_QUARTO 15
2482#define DMPAPER_10X14 16
2483#define DMPAPER_11X17 17
2484#define DMPAPER_NOTE 18
2485#define DMPAPER_ENV_9 19
2486#define DMPAPER_ENV_10 20
2487#define DMPAPER_ENV_11 21
2488#define DMPAPER_ENV_12 22
2489#define DMPAPER_ENV_14 23
2490#define DMPAPER_CSHEET 24
2491#define DMPAPER_DSHEET 25
2492#define DMPAPER_ESHEET 26
2493#define DMPAPER_ENV_DL 27
2494#define DMPAPER_ENV_C5 28
2495#define DMPAPER_ENV_C3 29
2496#define DMPAPER_ENV_C4 30
2497#define DMPAPER_ENV_C6 31
2498#define DMPAPER_ENV_C65 32
2499#define DMPAPER_ENV_B4 33
2500#define DMPAPER_ENV_B5 34
2501#define DMPAPER_ENV_B6 35
2502#define DMPAPER_ENV_ITALY 36
2503#define DMPAPER_ENV_MONARCH 37
2504#define DMPAPER_ENV_PERSONAL 38
2505#define DMPAPER_FANFOLD_US 39
2506#define DMPAPER_FANFOLD_STD_GERMAN 40
2507#define DMPAPER_FANFOLD_LGL_GERMAN 41
2508#define DMPAPER_ISO_B4 42
2509#define DMPAPER_JAPANESE_POSTCARD 43
2510#define DMPAPER_9X11 44
2511#define DMPAPER_10X11 45
2512#define DMPAPER_15X11 46
2513#define DMPAPER_ENV_INVITE 47
2514#define DMPAPER_RESERVED_48 48
2515#define DMPAPER_RESERVED_49 49
2516#define DMPAPER_LETTER_EXTRA 50
2517#define DMPAPER_LEGAL_EXTRA 51
2518#define DMPAPER_TABLOID_EXTRA 52
2519#define DMPAPER_A4_EXTRA 53
2520#define DMPAPER_LETTER_TRANSVERSE 54
2521#define DMPAPER_A4_TRANSVERSE 55
2522#define DMPAPER_LETTER_EXTRA_TRANSVERSE 56
2523#define DMPAPER_A_PLUS 57
2524#define DMPAPER_B_PLUS 58
2525#define DMPAPER_LETTER_PLUS 59
2526#define DMPAPER_A4_PLUS 60
2527#define DMPAPER_A5_TRANSVERSE 61
2528#define DMPAPER_B5_TRANSVERSE 62
2529#define DMPAPER_A3_EXTRA 63
2530#define DMPAPER_A5_EXTRA 64
2531#define DMPAPER_B5_EXTRA 65
2532#define DMPAPER_A2 66
2533#define DMPAPER_A3_TRANSVERSE 67
2534#define DMPAPER_A3_EXTRA_TRANSVERSE 68
2535
2536#define DMBIN_UPPER 1
2537#define DMBIN_LOWER 2
2538#define DMBIN_MIDDLE 3
2539#define DMBIN_MANUAL 4
2540#define DMBIN_ENVELOPE 5
2541#define DMBIN_ENVMANUAL 6
2542#define DMBIN_AUTO 7
2543#define DMBIN_LARGECAPACITY 11
2544
2545#define DMCOLOR_MONOCHROME 1
2546#define DMCOLOR_COLOR 2
2547
2548#define DMTT_BITMAP 1
2549#define DMTT_DOWNLOAD 2
2550#define DMTT_SUBDEV 3
2551
2552typedef struct
2553{
2554 INT cbSize;
2555 LPCSTR lpszDocName;
2556 LPCSTR lpszOutput;
2557 LPCSTR lpszDatatype;
2558 DWORD fwType;
2559} DOCINFOA, *LPDOCINFOA;
2560
2561typedef struct
2562{
2563 INT cbSize;
2564 LPCWSTR lpszDocName;
2565 LPCWSTR lpszOutput;
2566 LPCWSTR lpszDatatype;
2567 DWORD fwType;
2568} DOCINFOW, *LPDOCINFOW;
2569
2570DECL_WINELIB_TYPE_AW(DOCINFO)
2571DECL_WINELIB_TYPE_AW(LPDOCINFO)
2572
2573typedef struct {
2574 UINT cbSize;
2575 INT iBorderWidth;
2576 INT iScrollWidth;
2577 INT iScrollHeight;
2578 INT iCaptionWidth;
2579 INT iCaptionHeight;
2580 LOGFONTA lfCaptionFont;
2581 INT iSmCaptionWidth;
2582 INT iSmCaptionHeight;
2583 LOGFONTA lfSmCaptionFont;
2584 INT iMenuWidth;
2585 INT iMenuHeight;
2586 LOGFONTA lfMenuFont;
2587 LOGFONTA lfStatusFont;
2588 LOGFONTA lfMessageFont;
2589} NONCLIENTMETRICSA,*LPNONCLIENTMETRICSA;
2590
2591typedef struct {
2592 UINT cbSize;
2593 INT iBorderWidth;
2594 INT iScrollWidth;
2595 INT iScrollHeight;
2596 INT iCaptionWidth;
2597 INT iCaptionHeight;
2598 LOGFONTW lfCaptionFont;
2599 INT iSmCaptionWidth;
2600 INT iSmCaptionHeight;
2601 LOGFONTW lfSmCaptionFont;
2602 INT iMenuWidth;
2603 INT iMenuHeight;
2604 LOGFONTW lfMenuFont;
2605 LOGFONTW lfStatusFont;
2606 LOGFONTW lfMessageFont;
2607} NONCLIENTMETRICSW,*LPNONCLIENTMETRICSW;
2608
2609DECL_WINELIB_TYPE_AW(NONCLIENTMETRICS)
2610DECL_WINELIB_TYPE_AW(LPNONCLIENTMETRICS)
2611
2612/* Flags for PolyDraw and GetPath */
2613#define PT_CLOSEFIGURE 0x0001
2614#define PT_LINETO 0x0002
2615#define PT_BEZIERTO 0x0004
2616#define PT_MOVETO 0x0006
2617
2618#define RDH_RECTANGLES 1
2619
2620typedef struct _RGNDATAHEADER {
2621 DWORD dwSize;
2622 DWORD iType;
2623 DWORD nCount;
2624 DWORD nRgnSize;
2625 RECT rcBound;
2626} RGNDATAHEADER,*LPRGNDATAHEADER;
2627
2628typedef struct _RGNDATA {
2629 RGNDATAHEADER rdh;
2630 char Buffer[1];
2631} RGNDATA,*PRGNDATA,*LPRGNDATA;
2632
2633typedef BOOL (* CALLBACK ABORTPROC)(HDC, INT);
2634
2635#include "poppack.h"
2636
2637
2638/* Declarations for functions that exist only in Win32 */
2639
2640BOOL WINAPI AngleArc(HDC, INT, INT, DWORD, FLOAT, FLOAT);
2641BOOL WINAPI ArcTo(HDC, INT, INT, INT, INT, INT, INT, INT, INT);
2642HENHMETAFILE WINAPI CloseEnhMetaFile(HDC);
2643HBRUSH WINAPI CreateDIBPatternBrushPt(const void*,UINT);
2644HDC WINAPI CreateEnhMetaFileA(HDC,LPCSTR,const RECT*,LPCSTR);
2645HDC WINAPI CreateEnhMetaFileW(HDC,LPCWSTR,const RECT*,LPCWSTR);
2646INT WINAPI DrawEscape(HDC,INT,INT,LPCSTR);
2647BOOL WINAPI GdiComment(HDC,UINT,const BYTE *);
2648BOOL WINAPI GetCharABCWidthsFloatA(HDC,UINT,UINT,LPABCFLOAT);
2649BOOL WINAPI GetCharABCWidthsFloatW(HDC,UINT,UINT,LPABCFLOAT);
2650BOOL WINAPI GetCharWidthFloatA(HDC,UINT,UINT,PFLOAT);
2651BOOL WINAPI GetCharWidthFloatW(HDC,UINT,UINT,PFLOAT);
2652BOOL WINAPI GetColorAdjustment(HDC, LPCOLORADJUSTMENT);
2653DWORD WINAPI GetDCHook(HDC16,FARPROC16*);
2654BOOL WINAPI GetMiterLimit(HDC, PFLOAT);
2655BOOL WINAPI MaskBlt(HDC,INT,INT,INT,INT,HDC,INT,INT,HBITMAP,INT,INT,DWORD);
2656BOOL WINAPI PlgBlt(HDC,const POINT*,HDC,INT,INT,INT,INT,HBITMAP,INT,INT);
2657BOOL WINAPI PolyDraw(HDC,const POINT*,const BYTE*,DWORD);
2658BOOL WINAPI SetColorAdjustment(HDC,const COLORADJUSTMENT*);
2659BOOL WINAPI SetMiterLimit(HDC, FLOAT, PFLOAT);
2660BOOL WINAPI CombineTransform(LPXFORM,const XFORM *,const XFORM *);
2661HENHMETAFILE WINAPI CopyEnhMetaFileA(HENHMETAFILE,LPCSTR);
2662HENHMETAFILE WINAPI CopyEnhMetaFileW(HENHMETAFILE,LPCWSTR);
2663HPALETTE WINAPI CreateHalftonePalette(HDC);
2664BOOL WINAPI DeleteEnhMetaFile(HENHMETAFILE);
2665INT WINAPI ExtSelectClipRgn(HDC,HRGN,INT);
2666HRGN WINAPI ExtCreateRegion(const XFORM*,DWORD,const RGNDATA*);
2667INT WINAPI ExtEscape(HDC,INT,INT,LPCSTR,INT,LPSTR);
2668BOOL WINAPI FixBrushOrgEx(HDC,INT,INT,LPPOINT);
2669HANDLE WINAPI GetCurrentObject(HDC,UINT);
2670BOOL WINAPI GetDCOrgEx(HDC,LPPOINT);
2671HENHMETAFILE WINAPI GetEnhMetaFileA(LPCSTR);
2672HENHMETAFILE WINAPI GetEnhMetaFileW(LPCWSTR);
2673#define GetEnhMetaFile WINELIB_NAME_AW(GetEnhMetaFile)
2674UINT WINAPI GetEnhMetaFileBits(HENHMETAFILE,UINT,LPBYTE);
2675UINT WINAPI GetEnhMetaFileHeader(HENHMETAFILE,UINT,LPENHMETAHEADER);
2676UINT WINAPI GetEnhMetaFilePaletteEntries(HENHMETAFILE,UINT,LPPALETTEENTRY);
2677INT WINAPI GetGraphicsMode(HDC);
2678UINT WINAPI GetMetaFileBitsEx(HMETAFILE,UINT,LPVOID);
2679DWORD WINAPI GetObjectType(HANDLE);
2680UINT WINAPI GetTextCharsetInfo(HDC,LPFONTSIGNATURE,DWORD);
2681BOOL WINAPI GetTextExtentExPointA(HDC,LPCSTR,INT,INT,
2682 LPINT,LPINT,LPSIZE);
2683BOOL WINAPI GetTextExtentExPointW(HDC,LPCWSTR,INT,INT,
2684 LPINT,LPINT,LPSIZE);
2685#define GetTextExtentExPoint WINELIB_NAME_AW(GetTextExtentExPoint)
2686BOOL WINAPI GetWorldTransform(HDC,LPXFORM);
2687BOOL WINAPI ModifyWorldTransform(HDC,const XFORM *, DWORD);
2688BOOL WINAPI PlayEnhMetaFile(HDC,HENHMETAFILE,const RECT*);
2689BOOL WINAPI PlayEnhMetaFileRecord(HDC,LPHANDLETABLE,const ENHMETARECORD*,UINT);
2690BOOL WINAPI PolyPolyline(HDC,const POINT*,const DWORD*,DWORD);
2691BOOL WINAPI SetBrushOrgEx(HDC,INT,INT,LPPOINT);
2692HENHMETAFILE WINAPI SetEnhMetaFileBits(UINT,const BYTE *);
2693INT WINAPI SetGraphicsMode(HDC,INT);
2694HMETAFILE WINAPI SetMetaFileBitsEx(UINT,const BYTE*);
2695BOOL WINAPI SetWorldTransform(HDC,const XFORM*);
2696UINT WINAPI TranslateCharsetInfo(LPDWORD,LPCHARSETINFO,DWORD);
2697
2698/* Declarations for functions that change between Win16 and Win32 */
2699
2700INT WINAPI AbortDoc(HDC);
2701BOOL WINAPI AbortPath(HDC);
2702INT WINAPI AddFontResourceA(LPCSTR);
2703INT WINAPI AddFontResourceW(LPCWSTR);
2704BOOL WINAPI AnimatePalette(HPALETTE,UINT,UINT,const PALETTEENTRY*);
2705BOOL WINAPI Arc(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
2706BOOL WINAPI BeginPath(HDC);
2707BOOL WINAPI BitBlt(HDC,INT,INT,INT,INT,HDC,INT,INT,DWORD);
2708INT WINAPI ChoosePixelFormat(HDC,const PIXELFORMATDESCRIPTOR*);
2709BOOL WINAPI Chord(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
2710BOOL WINAPI CloseFigure(HDC);
2711HMETAFILE WINAPI CloseMetaFile(HDC);
2712INT WINAPI CombineRgn(HRGN,HRGN,HRGN,INT);
2713HMETAFILE WINAPI CopyMetaFileA(HMETAFILE,LPCSTR);
2714HMETAFILE WINAPI CopyMetaFileW(HMETAFILE,LPCWSTR);
2715HBITMAP WINAPI CreateBitmap(INT,INT,UINT,UINT,LPCVOID);
2716HBITMAP WINAPI CreateBitmapIndirect(const BITMAP*);
2717HBRUSH WINAPI CreateBrushIndirect(const LOGBRUSH*);
2718HBITMAP WINAPI CreateCompatibleBitmap(HDC,INT,INT);
2719HDC WINAPI CreateCompatibleDC(HDC);
2720HDC WINAPI CreateDCA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
2721HDC WINAPI CreateDCW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*);
2722#define CreateDC WINELIB_NAME_AW(CreateDC)
2723HBITMAP WINAPI CreateDIBitmap(HDC,const BITMAPINFOHEADER*,DWORD,LPCVOID,const BITMAPINFO*,UINT);
2724HBRUSH WINAPI CreateDIBPatternBrush(HGLOBAL,UINT);
2725HBITMAP WINAPI CreateDIBSection (HDC, BITMAPINFO *, UINT,LPVOID *, HANDLE, DWORD offset);
2726HBITMAP WINAPI CreateDiscardableBitmap(HDC,INT,INT);
2727HRGN WINAPI CreateEllipticRgn(INT,INT,INT,INT);
2728HRGN WINAPI CreateEllipticRgnIndirect(const RECT *);
2729HFONT WINAPI CreateFontA(INT,INT,INT,INT,INT,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCSTR);
2730HFONT WINAPI CreateFontW(INT,INT,INT,INT,INT,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCWSTR);
2731#define CreateFont WINELIB_NAME_AW(CreateFont)
2732HFONT WINAPI CreateFontIndirectA(const LOGFONTA*);
2733HFONT WINAPI CreateFontIndirectW(const LOGFONTW*);
2734#define CreateFontIndirect WINELIB_NAME_AW(CreateFontIndirect)
2735
2736HBRUSH WINAPI CreateHatchBrush(INT,COLORREF);
2737HDC WINAPI CreateICA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
2738HDC WINAPI CreateICW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*);
2739#define CreateIC WINELIB_NAME_AW(CreateIC)
2740
2741HDC WINAPI CreateMetaFileA(LPCSTR);
2742HDC WINAPI CreateMetaFileW(LPCWSTR);
2743#define CreateMetaFile WINELIB_NAME_AW(CreateMetaFile)
2744
2745HPALETTE WINAPI CreatePalette(const LOGPALETTE*);
2746HBRUSH WINAPI CreatePatternBrush(HBITMAP);
2747HPEN WINAPI CreatePen(INT,INT,COLORREF);
2748HPEN WINAPI CreatePenIndirect(const LOGPEN*);
2749HRGN WINAPI CreatePolyPolygonRgn(const POINT*,const INT*,INT,INT);
2750HRGN WINAPI CreatePolygonRgn(const POINT*,INT,INT);
2751HRGN WINAPI CreateRectRgn(INT,INT,INT,INT);
2752HRGN WINAPI CreateRectRgnIndirect(const RECT*);
2753HRGN WINAPI CreateRoundRectRgn(INT,INT,INT,INT,INT,INT);
2754BOOL WINAPI CreateScalableFontResourceA(DWORD,LPCSTR,LPCSTR,LPCSTR);
2755BOOL WINAPI CreateScalableFontResourceW(DWORD,LPCWSTR,LPCWSTR,LPCWSTR);
2756#define CreateScalableFontResource WINELIB_NAME_AW(CreateScalableFontResource)
2757
2758HBRUSH WINAPI CreateSolidBrush(COLORREF);
2759BOOL WINAPI DeleteDC(HDC);
2760BOOL WINAPI DeleteMetaFile(HMETAFILE);
2761BOOL WINAPI DeleteObject(HGDIOBJ);
2762INT WINAPI DescribePixelFormat(HDC,int,UINT,LPPIXELFORMATDESCRIPTOR);
2763BOOL WINAPI DPtoLP(HDC,LPPOINT,INT);
2764BOOL WINAPI Ellipse(HDC,INT,INT,INT,INT);
2765INT WINAPI EndDoc(HDC);
2766BOOL WINAPI EndPath(HDC);
2767INT WINAPI EnumFontFamiliesA(HDC,LPCSTR,FONTENUMPROCA,LPARAM);
2768INT WINAPI EnumFontFamiliesW(HDC,LPCWSTR,FONTENUMPROCW,LPARAM);
2769#define EnumFontFamilies WINELIB_NAME_AW(EnumFontFamilies)
2770
2771INT WINAPI EnumFontFamiliesExA(HDC,LPLOGFONTA,FONTENUMPROCEXA,LPARAM,DWORD);
2772INT WINAPI EnumFontFamiliesExW(HDC,LPLOGFONTW,FONTENUMPROCEXW,LPARAM,DWORD);
2773#define EnumFontFamiliesEx WINELIB_NAME_AW(EnumFontFamiliesEx)
2774
2775INT WINAPI EnumFontsA(HDC,LPCSTR,FONTENUMPROCA,LPARAM);
2776INT WINAPI EnumFontsW(HDC,LPCWSTR,FONTENUMPROCW,LPARAM);
2777#define EnumFonts WINELIB_NAME_AW(EnumFonts)
2778
2779BOOL WINAPI EnumMetaFile(HDC,HMETAFILE,MFENUMPROC,LPARAM);
2780INT WINAPI EnumObjects(HDC,INT,GOBJENUMPROC,LPARAM);
2781BOOL WINAPI EqualRgn(HRGN,HRGN);
2782INT WINAPI Escape(HDC,INT,INT,LPCSTR,LPVOID);
2783INT WINAPI ExcludeClipRect(HDC,INT,INT,INT,INT);
2784HPEN WINAPI ExtCreatePen(DWORD,DWORD,const LOGBRUSH*,DWORD,const DWORD*);
2785BOOL WINAPI ExtFloodFill(HDC,INT,INT,COLORREF,UINT);
2786BOOL WINAPI ExtTextOutA(HDC,INT,INT,UINT,const RECT*,LPCSTR,UINT,const INT*);
2787BOOL WINAPI ExtTextOutW(HDC,INT,INT,UINT,const RECT*,LPCWSTR,UINT,const INT*);
2788#define ExtTextOut WINELIB_NAME_AW(ExtTextOut)
2789
2790BOOL WINAPI FillPath(HDC);
2791BOOL WINAPI FillRgn(HDC,HRGN,HBRUSH);
2792BOOL WINAPI FlattenPath(HDC);
2793BOOL WINAPI FloodFill(HDC,INT,INT,COLORREF);
2794BOOL WINAPI FrameRgn(HDC,HRGN,HBRUSH,INT,INT);
2795INT WINAPI GetArcDirection(HDC);
2796BOOL WINAPI GetAspectRatioFilterEx(HDC,LPSIZE);
2797LONG WINAPI GetBitmapBits(HBITMAP,LONG,LPVOID);
2798BOOL WINAPI GetBitmapDimensionEx(HBITMAP,LPSIZE);
2799BOOL WINAPI GetBrushOrgEx(HDC,LPPOINT);
2800COLORREF WINAPI GetBkColor(HDC);
2801INT WINAPI GetBkMode(HDC);
2802UINT WINAPI GetBoundsRect(HDC,LPRECT,UINT);
2803BOOL WINAPI GetCharABCWidthsA(HDC,UINT,UINT,LPABC);
2804BOOL WINAPI GetCharABCWidthsW(HDC,UINT,UINT,LPABC);
2805#define GetCharWidth WINELIB_NAME_AW(GetCharWidth)
2806#define GetCharWidthA GetCharWidth32A
2807#define GetCharWidthW GetCharWidth32W
2808
2809DWORD WINAPI GetCharacterPlacementA(HDC,LPCSTR,INT,INT,GCP_RESULTSA*,DWORD);
2810DWORD WINAPI GetCharacterPlacementW(HDC,LPCWSTR,INT,INT,GCP_RESULTSW*,DWORD);
2811#define GetCharacterPlacement WINELIB_NAME_AW(GetCharacterPlacement)
2812
2813BOOL WINAPI GetCharWidthA(HDC,UINT,UINT,LPINT);
2814BOOL WINAPI GetCharWidthW(HDC,UINT,UINT,LPINT);
2815#define GetCharWidth WINELIB_NAME_AW(GetCharWidth)
2816
2817INT WINAPI GetClipBox(HDC,LPRECT);
2818INT WINAPI GetClipRgn(HDC,HRGN);
2819BOOL WINAPI GetCurrentPositionEx(HDC,LPPOINT);
2820INT WINAPI GetDeviceCaps(HDC,INT);
2821UINT WINAPI GetDIBColorTable(HDC,UINT,UINT,RGBQUAD*);
2822INT WINAPI GetDIBits(HDC,HBITMAP,UINT,UINT,LPVOID,LPBITMAPINFO,UINT);
2823DWORD WINAPI GetFontData(HDC,DWORD,DWORD,LPVOID,DWORD);
2824DWORD WINAPI GetFontLanguageInfo(HDC);
2825DWORD WINAPI GetGlyphOutlineA(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,LPVOID,const MAT2*);
2826DWORD WINAPI GetGlyphOutlineW(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,LPVOID,const MAT2*);
2827#define GetGlyphOutline WINELIB_NAME_AW(GetGlyphOutline)
2828
2829DWORD WINAPI GetKerningPairsA(HDC,DWORD,LPKERNINGPAIR);
2830DWORD WINAPI GetKerningPairsW(HDC,DWORD,LPKERNINGPAIR);
2831#define GetKerningPairs WINELIB_NAME_AW(GetKerningPairs)
2832
2833INT WINAPI GetMapMode(HDC);
2834HMETAFILE WINAPI GetMetaFileA(LPCSTR);
2835HMETAFILE WINAPI GetMetaFileW(LPCWSTR);
2836DWORD WINAPI GetNearestColor(HDC,DWORD);
2837UINT WINAPI GetNearestPaletteIndex(HPALETTE,COLORREF);
2838INT WINAPI GetObjectA(HANDLE,INT,LPVOID);
2839INT WINAPI GetObjectW(HANDLE,INT,LPVOID);
2840#define GetObject WINELIB_NAME_AW(GetObject)
2841
2842UINT WINAPI GetOutlineTextMetricsA(HDC,UINT,LPOUTLINETEXTMETRICA);
2843UINT WINAPI GetOutlineTextMetricsW(HDC,UINT,LPOUTLINETEXTMETRICW);
2844#define GetOutlineTextMetrics WINELIB_NAME_AW(GetOutlineTextMetrics)
2845
2846UINT WINAPI GetPaletteEntries(HPALETTE,UINT,UINT,LPPALETTEENTRY);
2847INT WINAPI GetPath(HDC,LPPOINT,LPBYTE,INT);
2848COLORREF WINAPI GetPixel(HDC,INT,INT);
2849INT WINAPI GetPixelFormat(HDC);
2850INT WINAPI GetPolyFillMode(HDC);
2851BOOL WINAPI GetRasterizerCaps(LPRASTERIZER_STATUS,UINT);
2852DWORD WINAPI GetRegionData(HRGN,DWORD,LPRGNDATA);
2853INT WINAPI GetRelAbs(HDC);
2854INT WINAPI GetRgnBox(HRGN,LPRECT);
2855INT WINAPI GetROP2(HDC);
2856HGDIOBJ WINAPI GetStockObject(INT);
2857INT WINAPI GetStretchBltMode(HDC);
2858UINT WINAPI GetSystemPaletteEntries(HDC,UINT,UINT,LPPALETTEENTRY);
2859UINT WINAPI GetSystemPaletteUse(HDC);
2860UINT WINAPI GetTextAlign(HDC);
2861INT WINAPI GetTextCharacterExtra(HDC);
2862UINT WINAPI GetTextCharset(HDC);
2863COLORREF WINAPI GetTextColor(HDC);
2864BOOL WINAPI GetTextExtentPointA(HDC,LPCSTR,INT,LPSIZE);
2865BOOL WINAPI GetTextExtentPointW(HDC,LPCWSTR,INT,LPSIZE);
2866#define GetTextExtentPoint WINELIB_NAME_AW(GetTextExtentPoint)
2867
2868BOOL WINAPI GetTextExtentPoint32A(HDC,LPCSTR,INT,LPSIZE);
2869BOOL WINAPI GetTextExtentPoint32W(HDC,LPCWSTR,INT,LPSIZE);
2870#define GetTextExtentPoint32 WINELIB_NAME_AW(GetTextExtentPoint32)
2871
2872INT WINAPI GetTextFaceA(HDC,INT,LPSTR);
2873INT WINAPI GetTextFaceW(HDC,INT,LPWSTR);
2874#define GetTextFace WINELIB_NAME_AW(GetTextFace)
2875
2876BOOL WINAPI GetTextMetricsA(HDC,LPTEXTMETRICA);
2877BOOL WINAPI GetTextMetricsW(HDC,LPTEXTMETRICW);
2878#define GetTextMetrics WINELIB_NAME_AW(GetTextMetrics)
2879
2880BOOL WINAPI GetViewportExtEx(HDC,LPSIZE);
2881BOOL WINAPI GetViewportOrgEx(HDC,LPPOINT);
2882BOOL WINAPI GetWindowExtEx(HDC,LPSIZE);
2883BOOL WINAPI GetWindowOrgEx(HDC,LPPOINT);
2884INT WINAPI IntersectClipRect(HDC,INT,INT,INT,INT);
2885BOOL WINAPI InvertRgn(HDC,HRGN);
2886BOOL WINAPI LineDDA(INT,INT,INT,INT,LINEDDAPROC,LPARAM);
2887BOOL WINAPI LineTo(HDC,INT,INT);
2888BOOL WINAPI LPtoDP(HDC,LPPOINT,INT);
2889BOOL WINAPI MoveToEx(HDC,INT,INT,LPPOINT);
2890/* FIXME This is defined in kernel32.spec !?*/
2891INT WINAPI MulDiv(INT,INT,INT);
2892INT WINAPI OffsetClipRgn(HDC,INT,INT);
2893INT WINAPI OffsetRgn(HRGN,INT,INT);
2894BOOL WINAPI OffsetViewportOrgEx(HDC,INT,INT,LPPOINT);
2895BOOL WINAPI OffsetWindowOrgEx(HDC,INT,INT,LPPOINT);
2896BOOL WINAPI PaintRgn(HDC,HRGN);
2897BOOL WINAPI PatBlt(HDC,INT,INT,INT,INT,DWORD);
2898HRGN WINAPI PathToRegion(HDC);
2899BOOL WINAPI Pie(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
2900BOOL WINAPI PlayMetaFile(HDC,HMETAFILE);
2901BOOL WINAPI PlayMetaFileRecord(HDC,LPHANDLETABLE,LPMETARECORD,UINT);
2902BOOL WINAPI PolyBezier(HDC,const POINT*,DWORD);
2903BOOL WINAPI PolyBezierTo(HDC,const POINT*,DWORD);
2904BOOL WINAPI PolyPolygon(HDC,const POINT*,const INT*,UINT);
2905BOOL WINAPI Polygon(HDC,const POINT*,INT);
2906BOOL WINAPI Polyline(HDC,const POINT*,INT);
2907BOOL WINAPI PolylineTo(HDC,const POINT*,DWORD);
2908BOOL WINAPI PtInRegion(HRGN,INT,INT);
2909BOOL WINAPI PtVisible(HDC,INT,INT);
2910/* FIXME This is defined in user.spec !? */
2911UINT WINAPI RealizePalette(HDC);
2912BOOL WINAPI Rectangle(HDC,INT,INT,INT,INT);
2913BOOL WINAPI RectInRegion(HRGN,const RECT *);
2914BOOL WINAPI RectVisible(HDC,const RECT*);
2915BOOL WINAPI RemoveFontResourceA(LPCSTR);
2916BOOL WINAPI RemoveFontResourceW(LPCWSTR);
2917HDC WINAPI ResetDCA(HDC,const DEVMODEA *);
2918HDC WINAPI ResetDCW(HDC,const DEVMODEW *);
2919BOOL WINAPI ResizePalette(HPALETTE,UINT);
2920BOOL WINAPI RestoreDC(HDC,INT);
2921BOOL WINAPI RoundRect(HDC,INT,INT,INT,INT,INT,INT);
2922INT WINAPI SaveDC(HDC);
2923BOOL WINAPI ScaleViewportExtEx(HDC,INT,INT,INT,INT,LPSIZE);
2924BOOL WINAPI ScaleWindowExtEx(HDC,INT,INT,INT,INT,LPSIZE);
2925BOOL WINAPI SelectClipPath(HDC,INT);
2926INT WINAPI SelectClipRgn(HDC,HRGN);
2927HGDIOBJ WINAPI SelectObject(HDC,HGDIOBJ);
2928/* FIXME This is defined in user.spec !? */
2929HPALETTE WINAPI SelectPalette(HDC,HPALETTE,BOOL);
2930INT WINAPI SetAbortProc(HDC,ABORTPROC);
2931INT WINAPI SetArcDirection(HDC,INT);
2932LONG WINAPI SetBitmapBits(HBITMAP,LONG,LPCVOID);
2933BOOL WINAPI SetBitmapDimensionEx(HBITMAP,INT,INT,LPSIZE);
2934COLORREF WINAPI SetBkColor(HDC,COLORREF);
2935INT WINAPI SetBkMode(HDC,INT);
2936UINT WINAPI SetBoundsRect(HDC,const RECT*,UINT);
2937UINT WINAPI SetDIBColorTable(HDC,UINT,UINT,RGBQUAD*);
2938INT WINAPI SetDIBits(HDC,HBITMAP,UINT,UINT,LPCVOID,const BITMAPINFO*,UINT);
2939INT WINAPI SetDIBitsToDevice(HDC,INT,INT,DWORD,DWORD,INT,INT,UINT,UINT,LPCVOID,const BITMAPINFO*,UINT);
2940INT WINAPI SetMapMode(HDC,INT);
2941DWORD WINAPI SetMapperFlags(HDC,DWORD);
2942UINT WINAPI SetPaletteEntries(HPALETTE,UINT,UINT,LPPALETTEENTRY);
2943COLORREF WINAPI SetPixel(HDC,INT,INT,COLORREF);
2944BOOL WINAPI SetPixelV(HDC,INT,INT,COLORREF);
2945BOOL WINAPI SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR*);
2946INT WINAPI SetPolyFillMode(HDC,INT);
2947BOOL WINAPI SetRectRgn(HRGN,INT,INT,INT,INT);
2948INT WINAPI SetRelAbs(HDC,INT);
2949INT WINAPI SetROP2(HDC,INT);
2950INT WINAPI SetStretchBltMode(HDC,INT);
2951UINT WINAPI SetSystemPaletteUse(HDC,UINT);
2952UINT WINAPI SetTextAlign(HDC,UINT);
2953INT WINAPI SetTextCharacterExtra(HDC,INT);
2954COLORREF WINAPI SetTextColor(HDC,COLORREF);
2955BOOL WINAPI SetTextJustification(HDC,INT,INT);
2956BOOL WINAPI SetViewportExtEx(HDC,INT,INT,LPSIZE);
2957BOOL WINAPI SetViewportOrgEx(HDC,INT,INT,LPPOINT);
2958BOOL WINAPI SetWindowExtEx(HDC,INT,INT,LPSIZE);
2959BOOL WINAPI SetWindowOrgEx(HDC,INT,INT,LPPOINT);
2960HENHMETAFILE WINAPI SetWinMetaFileBits(UINT,CONST BYTE*,HDC,CONST METAFILEPICT *);
2961INT WINAPI StartDocA(HDC,const DOCINFOA*);
2962INT WINAPI StartDocW(HDC,const DOCINFOW*);
2963#define StartDoc WINELIB_NAME_AW(StartDoc)
2964INT WINAPI StartPage(HDC);
2965INT WINAPI EndPage(HDC);
2966BOOL WINAPI StretchBlt(HDC,INT,INT,INT,INT,HDC,INT,INT,INT,INT,DWORD);
2967INT WINAPI StretchDIBits(HDC,INT,INT,INT,INT,INT,INT,INT,INT,const VOID*,const BITMAPINFO*,UINT,DWORD);
2968BOOL WINAPI StrokeAndFillPath(HDC);
2969BOOL WINAPI StrokePath(HDC);
2970BOOL WINAPI SwapBuffers(HDC);
2971BOOL WINAPI TextOutA(HDC,INT,INT,LPCSTR,INT);
2972BOOL WINAPI TextOutW(HDC,INT,INT,LPCWSTR,INT);
2973#define TextOut WINELIB_NAME_AW(TextOut)
2974
2975BOOL WINAPI UnrealizeObject(HGDIOBJ);
2976BOOL WINAPI UpdateColors(HDC);
2977BOOL WINAPI WidenPath(HDC);
2978
2979
2980typedef int (* CALLBACK ICMENUMPROCA)(LPSTR, LPARAM);
2981typedef int (* CALLBACK ICMENUMPROCW)(LPWSTR, LPARAM);
2982int WINAPI EnumICMProfilesA(HDC,ICMENUMPROCA,LPARAM);
2983int WINAPI EnumICMProfilesW(HDC,ICMENUMPROCW,LPARAM);
2984#define EnumICMProfiles WINELIB_NAME_AW(EnumICMProfiles)
2985
2986#ifdef __cplusplus
2987}
2988#endif
2989
2990#endif /* __WINE_WINGDI_H */
Note: See TracBrowser for help on using the repository browser.