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

Last change on this file since 1036 was 1007, checked in by sandervl, 26 years ago

Yuri Dario's VAC 3.6.5 changes

File size: 82.6 KB
Line 
1/* $Id: wingdi.h,v 1.6 1999-09-22 09:46:19 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
1515 /* biCompression */
1516#define BI_RGB 0
1517#define BI_RLE8 1
1518#define BI_RLE4 2
1519
1520typedef struct {
1521 BITMAPINFOHEADER bmiHeader;
1522 RGBQUAD bmiColors[1];
1523} BITMAPINFO;
1524typedef BITMAPINFO *LPBITMAPINFO;
1525typedef BITMAPINFO *NPBITMAPINFO;
1526typedef BITMAPINFO *PBITMAPINFO;
1527
1528typedef struct
1529{
1530 DWORD bcSize;
1531 UINT16 bcWidth;
1532 UINT16 bcHeight;
1533 UINT16 bcPlanes;
1534 UINT16 bcBitCount;
1535} BITMAPCOREHEADER, *LPBITMAPCOREHEADER;
1536
1537typedef struct
1538{
1539 BITMAPCOREHEADER bmciHeader;
1540 RGBTRIPLE bmciColors[1];
1541} BITMAPCOREINFO, *LPBITMAPCOREINFO;
1542
1543#define DIB_RGB_COLORS 0
1544#define DIB_PAL_COLORS 1
1545#define CBM_INIT 4
1546
1547typedef struct
1548{
1549 BITMAP dsBm;
1550 BITMAPINFOHEADER dsBmih;
1551 DWORD dsBitfields[3];
1552 HANDLE dshSection;
1553 DWORD dsOffset;
1554} DIBSECTION,*LPDIBSECTION;
1555
1556 /* Stock GDI objects for GetStockObject() */
1557
1558#define WHITE_BRUSH 0
1559#define LTGRAY_BRUSH 1
1560#define GRAY_BRUSH 2
1561#define DKGRAY_BRUSH 3
1562#define BLACK_BRUSH 4
1563#define NULL_BRUSH 5
1564#define HOLLOW_BRUSH 5
1565#define WHITE_PEN 6
1566#define BLACK_PEN 7
1567#define NULL_PEN 8
1568#define OEM_FIXED_FONT 10
1569#define ANSI_FIXED_FONT 11
1570#define ANSI_VAR_FONT 12
1571#define SYSTEM_FONT 13
1572#define DEVICE_DEFAULT_FONT 14
1573#define DEFAULT_PALETTE 15
1574#define SYSTEM_FIXED_FONT 16
1575#define DEFAULT_GUI_FONT 17
1576
1577#define STOCK_LAST 17
1578
1579/* Metafile header structure */
1580typedef struct
1581{
1582 WORD mtType;
1583 WORD mtHeaderSize;
1584 WORD mtVersion;
1585 DWORD mtSize WINE_PACKED;
1586 WORD mtNoObjects;
1587 DWORD mtMaxRecord WINE_PACKED;
1588 WORD mtNoParameters;
1589} METAHEADER;
1590
1591/* Metafile typical record structure */
1592typedef struct
1593{
1594 DWORD rdSize;
1595 WORD rdFunction;
1596 WORD rdParm[1];
1597} METARECORD;
1598typedef METARECORD *PMETARECORD;
1599typedef METARECORD *LPMETARECORD;
1600
1601/* Handle table structure */
1602typedef struct
1603{
1604 HGDIOBJ objectHandle[1];
1605} HANDLETABLE, *LPHANDLETABLE;
1606
1607
1608/* Clipboard metafile picture structure */
1609typedef struct
1610{
1611 INT mm;
1612 INT xExt;
1613 INT yExt;
1614 HMETAFILE hMF;
1615} METAFILEPICT, *LPMETAFILEPICT;
1616
1617
1618/* Metafile functions */
1619#define META_SETBKCOLOR 0x0201
1620#define META_SETBKMODE 0x0102
1621#define META_SETMAPMODE 0x0103
1622#define META_SETROP2 0x0104
1623#define META_SETRELABS 0x0105
1624#define META_SETPOLYFILLMODE 0x0106
1625#define META_SETSTRETCHBLTMODE 0x0107
1626#define META_SETTEXTCHAREXTRA 0x0108
1627#define META_SETTEXTCOLOR 0x0209
1628#define META_SETTEXTJUSTIFICATION 0x020A
1629#define META_SETWINDOWORG 0x020B
1630#define META_SETWINDOWEXT 0x020C
1631#define META_SETVIEWPORTORG 0x020D
1632#define META_SETVIEWPORTEXT 0x020E
1633#define META_OFFSETWINDOWORG 0x020F
1634#define META_SCALEWINDOWEXT 0x0410
1635#define META_OFFSETVIEWPORTORG 0x0211
1636#define META_SCALEVIEWPORTEXT 0x0412
1637#define META_LINETO 0x0213
1638#define META_MOVETO 0x0214
1639#define META_EXCLUDECLIPRECT 0x0415
1640#define META_INTERSECTCLIPRECT 0x0416
1641#define META_ARC 0x0817
1642#define META_ELLIPSE 0x0418
1643#define META_FLOODFILL 0x0419
1644#define META_PIE 0x081A
1645#define META_RECTANGLE 0x041B
1646#define META_ROUNDRECT 0x061C
1647#define META_PATBLT 0x061D
1648#define META_SAVEDC 0x001E
1649#define META_SETPIXEL 0x041F
1650#define META_OFFSETCLIPRGN 0x0220
1651#define META_TEXTOUT 0x0521
1652#define META_BITBLT 0x0922
1653#define META_STRETCHBLT 0x0B23
1654#define META_POLYGON 0x0324
1655#define META_POLYLINE 0x0325
1656#define META_ESCAPE 0x0626
1657#define META_RESTOREDC 0x0127
1658#define META_FILLREGION 0x0228
1659#define META_FRAMEREGION 0x0429
1660#define META_INVERTREGION 0x012A
1661#define META_PAINTREGION 0x012B
1662#define META_SELECTCLIPREGION 0x012C
1663#define META_SELECTOBJECT 0x012D
1664#define META_SETTEXTALIGN 0x012E
1665#define META_DRAWTEXT 0x062F
1666#define META_CHORD 0x0830
1667#define META_SETMAPPERFLAGS 0x0231
1668#define META_EXTTEXTOUT 0x0A32
1669#define META_SETDIBTODEV 0x0D33
1670#define META_SELECTPALETTE 0x0234
1671#define META_REALIZEPALETTE 0x0035
1672#define META_ANIMATEPALETTE 0x0436
1673#define META_SETPALENTRIES 0x0037
1674#define META_POLYPOLYGON 0x0538
1675#define META_RESIZEPALETTE 0x0139
1676#define META_DIBBITBLT 0x0940
1677#define META_DIBSTRETCHBLT 0x0B41
1678#define META_DIBCREATEPATTERNBRUSH 0x0142
1679#define META_STRETCHDIB 0x0F43
1680#define META_EXTFLOODFILL 0x0548
1681#define META_RESETDC 0x014C
1682#define META_STARTDOC 0x014D
1683#define META_STARTPAGE 0x004F
1684#define META_ENDPAGE 0x0050
1685#define META_ABORTDOC 0x0052
1686#define META_ENDDOC 0x005E
1687#define META_DELETEOBJECT 0x01F0
1688#define META_CREATEPALETTE 0x00F7
1689#define META_CREATEBRUSH 0x00F8
1690#define META_CREATEPATTERNBRUSH 0x01F9
1691#define META_CREATEPENINDIRECT 0x02FA
1692#define META_CREATEFONTINDIRECT 0x02FB
1693#define META_CREATEBRUSHINDIRECT 0x02FC
1694#define META_CREATEBITMAPINDIRECT 0x02FD
1695#define META_CREATEBITMAP 0x06FE
1696#define META_CREATEREGION 0x06FF
1697#define META_UNKNOWN 0x0529 /* FIXME: unknown meta magic */
1698
1699typedef INT (* CALLBACK MFENUMPROC)(HDC,HANDLETABLE*,METARECORD*,
1700 INT,LPARAM);
1701
1702/* enhanced metafile structures and functions */
1703
1704/* note that ENHMETAHEADER is just a particular kind of ENHMETARECORD,
1705 ie. the header is just the first record in the metafile */
1706typedef struct {
1707 DWORD iType;
1708 DWORD nSize;
1709 RECTL rclBounds;
1710 RECTL rclFrame;
1711 DWORD dSignature;
1712 DWORD nVersion;
1713 DWORD nBytes;
1714 DWORD nRecords;
1715 WORD nHandles;
1716 WORD sReserved;
1717 DWORD nDescription;
1718 DWORD offDescription;
1719 DWORD nPalEntries;
1720 SIZEL szlDevice;
1721 SIZEL szlMillimeters;
1722 DWORD cbPixelFormat;
1723 DWORD offPixelFormat;
1724 DWORD bOpenGL;
1725} ENHMETAHEADER, *LPENHMETAHEADER;
1726
1727typedef struct {
1728 DWORD iType;
1729 DWORD nSize;
1730 DWORD dParm[1];
1731} ENHMETARECORD, *LPENHMETARECORD;
1732
1733typedef struct {
1734 DWORD iType;
1735 DWORD nSize;
1736} EMR, *PEMR;
1737
1738typedef struct {
1739 POINTL ptlReference;
1740 DWORD nChars;
1741 DWORD offString;
1742 DWORD fOptions;
1743 RECTL rcl;
1744 DWORD offDx;
1745} EMRTEXT, *PEMRTEXT;
1746
1747typedef struct {
1748 EMR emr;
1749} EMRABORTPATH, *PEMRABORTPATH,
1750 EMRBEGINPATH, *PEMRBEGINPATH,
1751 EMRENDPATH, *PEMRENDPATH,
1752 EMRCLOSEFIGURE, *PEMRCLOSEFIGURE,
1753 EMRFLATTENPATH, *PEMRFLATTENPATH,
1754 EMRWIDENPATH, *PEMRWIDENPATH,
1755 EMRSETMETARGN, *PEMRSETMETARGN,
1756 EMRSAVEDC, *PEMRSAVEDC,
1757 EMRREALIZEPALETTE, *PEMRREALIZEPALETTE;
1758
1759typedef struct {
1760 EMR emr;
1761 POINTL ptlCenter;
1762 DWORD nRadius;
1763 FLOAT eStartAngle;
1764 FLOAT eSweepAngle;
1765} EMRANGLEARC, *PEMRANGLEARC;
1766
1767typedef struct {
1768 EMR emr;
1769 RECTL rclBox;
1770 POINTL ptlStart;
1771 POINTL ptlEnd;
1772} EMRARC, *PEMRARC,
1773 EMRARCTO, *PEMRARCTO,
1774 EMRCHORD, *PEMRCHORD,
1775 EMRPIE, *PEMRPIE;
1776
1777typedef struct {
1778 EMR emr;
1779 RECTL rclBounds;
1780 LONG xDest;
1781 LONG yDest;
1782 LONG cxDest;
1783 LONG cyDest;
1784 DWORD dwRop;
1785 LONG xSrc;
1786 LONG ySrc;
1787 XFORM xformSrc;
1788 COLORREF crBkColorSrc;
1789 DWORD iUsegeSrc;
1790 DWORD offBmiSrc;
1791 DWORD cbBmiSrc;
1792 DWORD offBitsSrc;
1793 DWORD cbBitsSrc;
1794} EMRBITBLT, *PEMRBITBLT;
1795
1796typedef struct {
1797 EMR emr;
1798 DWORD ihBrush;
1799 LOGBRUSH lb;
1800} EMRCREATEBRUSHINDIRECT, *PEMRCREATEBRUSHINDIRECT;
1801
1802typedef struct {
1803 EMR emr;
1804 DWORD ihCS;
1805 LOGCOLORSPACEW lcs;
1806} EMRCREATECOLORSPACE, *PEMRCREATECOLORSPACE;
1807
1808typedef struct {
1809 EMR emr;
1810 DWORD ihBrush;
1811 DWORD iUsage;
1812 DWORD offBmi;
1813 DWORD cbBmi;
1814 DWORD offBits;
1815 DWORD cbBits;
1816} EMRCREATEDIBPATTERNBRUSHPT, *PEMRCREATEDIBPATTERNBRUSHPT;
1817
1818typedef struct {
1819 EMR emr;
1820 DWORD ihBrush;
1821 DWORD iUsage;
1822 DWORD offBmi;
1823 DWORD cbBmi;
1824 DWORD offBits;
1825 DWORD cbBits;
1826} EMRCREATEMONOBRUSH, *PEMRCREATEMONOBRUSH;
1827
1828typedef struct {
1829 EMR emr;
1830 DWORD ihPal;
1831 LOGPALETTE lgpl;
1832} EMRCREATEPALETTE, *PEMRCREATEPALETTE;
1833
1834typedef struct {
1835 EMR emr;
1836 DWORD ihPen;
1837 LOGPEN lopn;
1838} EMRCREATEPEN, *PEMRCREATEPEN;
1839
1840typedef struct {
1841 EMR emr;
1842 DWORD ihCS;
1843} EMRDELETECOLORSPACE, *PEMRDELETECOLORSPACE,
1844 EMRSELECTCOLORSPACE, *PEMRSELECTCOLORSPACE,
1845 EMRSETCOLORSPACE, *PEMRSETCOLORSPACE;
1846
1847typedef struct {
1848 EMR emr;
1849 DWORD ihObject;
1850} EMRDELETEOBJECT, *PEMRDELETEOBJECT,
1851 EMRSELECTOBJECT, *PEMRSELECTOBJECT;
1852
1853typedef struct {
1854 EMR emr;
1855 RECTL rclBox;
1856} EMRELLIPSE, *PEMRELLIPSE,
1857 EMRRECTANGLE, *PEMRRECTANGLE;
1858
1859typedef struct {
1860 EMR emr;
1861 DWORD nPalEntries;
1862 DWORD offPalEntries;
1863 DWORD nSizeLast;
1864} EMREOF, *PEMREOF;
1865
1866typedef struct {
1867 EMR emr;
1868 RECTL rclClip;
1869} EMREXCLUDECLIPRECT, *PEMREXCLUDECLIPRECT,
1870 EMRINTERSECTCLIPRECT, *PEMRINTERSECTCLIPRECT;
1871
1872typedef struct {
1873 EMR emr;
1874 DWORD ihFont;
1875 EXTLOGFONTW elfw;
1876} EMREXTCREATEFONTINDIRECTW, *PEMREXTCREATEFONTINDIRECTW;
1877
1878typedef struct {
1879 EMR emr;
1880 DWORD ihPen;
1881 DWORD offBmi;
1882 DWORD cbBmi;
1883 DWORD offBits;
1884 DWORD cbBits;
1885 EXTLOGPEN elp;
1886} EMREXTCREATEPEN, *PEMREXTCREATEPEN;
1887
1888typedef struct {
1889 EMR emr;
1890 POINTL ptlStart;
1891 COLORREF crColor;
1892 DWORD iMode;
1893} EMREXTFLOODFILL, *PEMREXTFLOODFILL;
1894
1895typedef struct {
1896 EMR emr;
1897 DWORD cbRgnData;
1898 DWORD iMode;
1899 BYTE RgnData[1];
1900} EMREXTSELECTCLIPRGN, *PEMREXTSELECTCLIPRGN;
1901
1902typedef struct {
1903 EMR emr;
1904 RECTL rclBounds;
1905 DWORD iGraphicsMode;
1906 FLOAT exScale;
1907 FLOAT eyScale;
1908 EMRTEXT emrtext;
1909} EMREXTTEXTOUTA, *PEMREXTTEXTOUTA,
1910 EMREXTTEXTOUTW, *PEMREXTTEXTOUTW;
1911
1912typedef struct {
1913 EMR emr;
1914 RECTL rclBounds;
1915} EMRFILLPATH, *PEMRFILLPATH,
1916 EMRSTROKEANDFILLPATH, *PEMRSTROKEANDFILLPATH,
1917 EMRSTROKEPATH, *PEMRSTROKEPATH;
1918
1919typedef struct {
1920 EMR emr;
1921 RECTL rclBounds;
1922 DWORD cbRgnData;
1923 DWORD ihBrush;
1924 BYTE RgnData[1];
1925} EMRFILLRGN, *PEMRFILLRGN;
1926
1927typedef struct {
1928 DWORD signature;
1929 DWORD nVersion;
1930 DWORD cbData;
1931 DWORD offData;
1932} EMRFORMAT, *PEMRFORMAT;
1933
1934typedef struct {
1935 EMR emr;
1936 RECTL rclBounds;
1937 DWORD cbRgnData;
1938 DWORD ihBrush;
1939 SIZEL szlStroke;
1940 BYTE RgnData[1];
1941} EMRFRAMERGN, *PEMRFRAMERGN;
1942
1943typedef struct {
1944 EMR emr;
1945 DWORD cbData;
1946 BYTE Data[1];
1947} EMRGDICOMMENT, *PEMRGDICOMMENT;
1948
1949#if 0
1950typedef struct {
1951 EMR emr;
1952 RECTL rclBounds;
1953 DWORD nVer;
1954 DWORD nTri;
1955 ULONG ulMode;
1956 TRIVERTEX Ver[1];
1957} EMRGRADIENTFILL, *PEMRGRADIENTFILL;
1958#endif
1959
1960typedef struct {
1961 EMR emr;
1962 RECTL rclBounds;
1963 DWORD cbRgnData;
1964 BYTE RgnData[1];
1965} EMRINVERTRGN, *PEMRINVERTRGN,
1966 EMRPAINTRGN, *PEMRPAINTRGN;
1967
1968typedef struct {
1969 EMR emr;
1970 POINTL ptl;
1971} EMRLINETO, *PEMRLINETO,
1972 EMRMOVETOEX, *PEMRMOVETOEX;
1973
1974typedef struct {
1975 EMR emr;
1976 RECTL rclBounds;
1977 LONG xDest;
1978 LONG yDest;
1979 LONG cxDest;
1980 LONG cyDest;
1981 DWORD dwRop;
1982 LONG xSrc;
1983 LONG ySrc;
1984 XFORM xformSrc;
1985 COLORREF crBkColorSrc;
1986 DWORD iUsageSrc;
1987 DWORD offBmiSrc;
1988 DWORD cbBmiSrc;
1989 DWORD offBitsSrc;
1990 DWORD cbBitsSrc;
1991 LONG xMask;
1992 LONG yMask;
1993 DWORD iUsageMask;
1994 DWORD offBmiMask;
1995 DWORD cbBmiMask;
1996 DWORD offBitsMask;
1997 DWORD cbBitsMask;
1998} EMRMASKBLT, *PEMRMASKBLT;
1999
2000typedef struct {
2001 EMR emr;
2002 XFORM xform;
2003 DWORD iMode;
2004} EMRMODIFYWORLDTRANSFORM, *PEMRMODIFYWORLDTRANSFORM;
2005
2006typedef struct {
2007 EMR emr;
2008 POINTL ptlOffset;
2009} EMROFFSETCLIPRGN, *PEMROFFSETCLIPRGN;
2010
2011typedef struct {
2012 EMR emr;
2013 RECTL rclBounds;
2014 POINTL aptlDst[3];
2015 LONG xSrc;
2016 LONG ySrc;
2017 LONG cxSrc;
2018 LONG cySrc;
2019 XFORM xformSrc;
2020 COLORREF crBkColorSrc;
2021 DWORD iUsageSrc;
2022 DWORD offBmiSrc;
2023 DWORD cbBmiSrc;
2024 DWORD offBitsSrc;
2025 DWORD cbBitsSrc;
2026 LONG xMask;
2027 LONG yMask;
2028 DWORD iUsageMask;
2029 DWORD offBmiMask;
2030 DWORD cbBmiMask;
2031 DWORD offBitsMask;
2032 DWORD cbBitsMask;
2033} EMRPLGBLT, *PEMRPLGBLT;
2034
2035typedef struct {
2036 EMR emr;
2037 RECTL rclBounds;
2038 DWORD cptl;
2039 POINTL aptl[1];
2040} EMRPOLYLINE, *PEMRPOLYLINE,
2041 EMRPOLYBEZIER, *PEMRPOLYBEZIER,
2042 EMRPOLYGON, *PEMRPOLYGON,
2043 EMRPOLYBEZIERTO, *PEMRPOLYBEZIERTO,
2044 EMRPOLYLINETO, *PEMRPOLYLINETO;
2045
2046typedef struct {
2047 EMR emr;
2048 RECTL rclBounds;
2049 DWORD cptl;
2050 POINTL aptl[1];
2051 BYTE abTypes[1];
2052} EMRPOLYDRAW, *PEMRPOLYDRAW;
2053
2054typedef struct {
2055 EMR emr;
2056 RECTL rclBounds;
2057 DWORD nPolys;
2058 DWORD cptl;
2059 DWORD aPolyCounts[1];
2060 POINTL aptl[1];
2061} EMRPOLYPOLYLINE, *PEMRPOLYPOLYLINE,
2062 EMRPOLYPOLYGON, *PEMRPOLYPOLYGON;
2063
2064typedef struct {
2065 EMR emr;
2066 RECTL rclBounds;
2067 DWORD iGraphicsMode;
2068 FLOAT exScale;
2069 FLOAT eyScale;
2070 LONG cStrings;
2071 EMRTEXT aemrtext[1];
2072} EMRPOLYTEXTOUTA, *PEMRPOLYTEXTOUTA,
2073 EMRPOLYTEXTOUTW, *PEMRPOLYTEXTOUTW;
2074
2075typedef struct {
2076 EMR emr;
2077 DWORD ihPal;
2078 DWORD cEntries;
2079} EMRRESIZEPALETTE, *PEMRRESIZEPALETTE;
2080
2081typedef struct {
2082 EMR emr;
2083 LONG iRelative;
2084} EMRRESTOREDC, *PEMRRESTOREDC;
2085
2086typedef struct {
2087 EMR emr;
2088 RECTL rclBox;
2089 SIZEL szlCorner;
2090} EMRROUNDRECT, *PEMRROUNDRECT;
2091
2092typedef struct {
2093 EMR emr;
2094 LONG xNum;
2095 LONG xDenom;
2096 LONG yNum;
2097 LONG yDenom;
2098} EMRSCALEVIEWPORTEXTEX, *PEMRSCALEVIEWPORTEXTEX,
2099 EMRSCALEWINDOWEXTEX, *PEMRSCALEWINDOWEXTEX;
2100
2101typedef struct {
2102 EMR emr;
2103 DWORD ihPal;
2104} EMRSELECTPALETTE, *PEMRSELECTPALETTE;
2105
2106typedef struct {
2107 EMR emr;
2108 DWORD iArcDirection;
2109} EMRSETARCDIRECTION, *PEMRSETARCDIRECTION;
2110
2111typedef struct {
2112 EMR emr;
2113 COLORREF crColor;
2114} EMRSETBKCOLOR, *PEMRSETBKCOLOR,
2115 EMRSETTEXTCOLOR, *PEMRSETTEXTCOLOR;
2116
2117typedef struct {
2118 EMR emr;
2119 POINTL ptlOrigin;
2120} EMRSETBRUSHORGEX, *PEMRSETBRUSHORGEX,
2121 EMRSETVIEWPORTORGEX, *PEMRSETVIEWPORTORGEX,
2122 EMRSETWINDOWORGEX, *PEMRSETWINDOWORGEX;
2123
2124typedef struct {
2125 EMR emr;
2126 COLORADJUSTMENT ColorAdjustment;
2127} EMRSETCOLORADJUSTMENT, *PEMRSETCOLORADJUSTMENT;
2128
2129typedef struct {
2130 EMR emr;
2131 RECTL rclBounds;
2132 LONG xDest;
2133 LONG yDest;
2134 LONG xSrc;
2135 LONG ySrc;
2136 LONG cxSrc;
2137 LONG cySrc;
2138 DWORD offBmiSrc;
2139 DWORD cbBmiSrc;
2140 DWORD offBitsSrc;
2141 DWORD cbBitsSrc;
2142 DWORD iUsageSrc;
2143 DWORD iStartScan;
2144 DWORD cScans;
2145} EMRSETDIBITSTODEIVCE, *PEMRSETDIBITSTODEVICE;
2146
2147typedef struct {
2148 EMR emr;
2149 DWORD dwFlags;
2150} EMRSETMAPPERFLAGS, *PEMRSETMAPPERFLAGS;
2151
2152typedef struct {
2153 EMR emr;
2154 FLOAT eMiterLimit;
2155} EMRSETMITERLIMIT, *PEMRSETMITERLIMIT;
2156
2157typedef struct {
2158 EMR emr;
2159 DWORD ihPal;
2160 DWORD iStart;
2161 DWORD cEntries;
2162 PALETTEENTRY aPalEntries[1];
2163} EMRSETPALETTEENTRIES, *PEMRSETPALETTEENTRIES;
2164
2165typedef struct {
2166 EMR emr;
2167 POINTL ptlPixel;
2168 COLORREF crColor;
2169} EMRSETPIXELV, *PEMRSETPIXELV;
2170
2171typedef struct {
2172 EMR emr;
2173 SIZEL szlExtent;
2174} EMRSETVIEWPORTEXTEX, *PEMRSETVIEWPORTEXTEX,
2175 EMRSETWINDOWEXTEX, *PEMRSETWINDOWEXTEX;
2176
2177typedef struct {
2178 EMR emr;
2179 XFORM xform;
2180} EMRSETWORLDTRANSFORM, *PEMRSETWORLDTRANSFORM;
2181
2182typedef struct {
2183 EMR emr;
2184 RECTL rclBounds;
2185 LONG xDest;
2186 LONG yDest;
2187 LONG cxDest;
2188 LONG cyDest;
2189 DWORD dwRop;
2190 LONG xSrc;
2191 LONG ySrc;
2192 XFORM xformSrc;
2193 COLORREF crBkColorSrc;
2194 DWORD iUsageSrc;
2195 DWORD offBmiSrc;
2196 DWORD cbBmiSrc;
2197 DWORD offBitsSrc;
2198 DWORD cbBitsSrc;
2199 LONG cxSrc;
2200 LONG cySrc;
2201} EMRSTRETCHBLT, *PEMRSTRETCHBLT;
2202
2203typedef struct {
2204 EMR emr;
2205 RECTL rclBounds;
2206 LONG xDest;
2207 LONG yDest;
2208 LONG xSrc;
2209 LONG ySrc;
2210 LONG cxSrc;
2211 LONG cySrc;
2212 DWORD offBmiSrc;
2213 DWORD cbBmiSrc;
2214 DWORD offBitsSrc;
2215 DWORD cbBitsSrc;
2216 DWORD iUsage;
2217 DWORD dwRop;
2218 LONG cxDest;
2219 LONG cyDst;
2220} EMRSTRETCHDIBITS, *PEMRSTRETCHDIBITS;
2221
2222typedef INT (* CALLBACK ENHMFENUMPROC)(HDC, LPHANDLETABLE,
2223 LPENHMETARECORD, INT, LPVOID);
2224
2225#define EMR_HEADER 1
2226#define EMR_POLYBEZIER 2
2227#define EMR_POLYGON 3
2228#define EMR_POLYLINE 4
2229#define EMR_POLYBEZIERTO 5
2230#define EMR_POLYLINETO 6
2231#define EMR_POLYPOLYLINE 7
2232#define EMR_POLYPOLYGON 8
2233#define EMR_SETWINDOWEXTEX 9
2234#define EMR_SETWINDOWORGEX 10
2235#define EMR_SETVIEWPORTEXTEX 11
2236#define EMR_SETVIEWPORTORGEX 12
2237#define EMR_SETBRUSHORGEX 13
2238#define EMR_EOF 14
2239#define EMR_SETPIXELV 15
2240#define EMR_SETMAPPERFLAGS 16
2241#define EMR_SETMAPMODE 17
2242#define EMR_SETBKMODE 18
2243#define EMR_SETPOLYFILLMODE 19
2244#define EMR_SETROP2 20
2245#define EMR_SETSTRETCHBLTMODE 21
2246#define EMR_SETTEXTALIGN 22
2247#define EMR_SETCOLORADJUSTMENT 23
2248#define EMR_SETTEXTCOLOR 24
2249#define EMR_SETBKCOLOR 25
2250#define EMR_OFFSETCLIPRGN 26
2251#define EMR_MOVETOEX 27
2252#define EMR_SETMETARGN 28
2253#define EMR_EXCLUDECLIPRECT 29
2254#define EMR_INTERSECTCLIPRECT 30
2255#define EMR_SCALEVIEWPORTEXTEX 31
2256#define EMR_SCALEWINDOWEXTEX 32
2257#define EMR_SAVEDC 33
2258#define EMR_RESTOREDC 34
2259#define EMR_SETWORLDTRANSFORM 35
2260#define EMR_MODIFYWORLDTRANSFORM 36
2261#define EMR_SELECTOBJECT 37
2262#define EMR_CREATEPEN 38
2263#define EMR_CREATEBRUSHINDIRECT 39
2264#define EMR_DELETEOBJECT 40
2265#define EMR_ANGLEARC 41
2266#define EMR_ELLIPSE 42
2267#define EMR_RECTANGLE 43
2268#define EMR_ROUNDRECT 44
2269#define EMR_ARC 45
2270#define EMR_CHORD 46
2271#define EMR_PIE 47
2272#define EMR_SELECTPALETTE 48
2273#define EMR_CREATEPALETTE 49
2274#define EMR_SETPALETTEENTRIES 50
2275#define EMR_RESIZEPALETTE 51
2276#define EMR_REALIZEPALETTE 52
2277#define EMR_EXTFLOODFILL 53
2278#define EMR_LINETO 54
2279#define EMR_ARCTO 55
2280#define EMR_POLYDRAW 56
2281#define EMR_SETARCDIRECTION 57
2282#define EMR_SETMITERLIMIT 58
2283#define EMR_BEGINPATH 59
2284#define EMR_ENDPATH 60
2285#define EMR_CLOSEFIGURE 61
2286#define EMR_FILLPATH 62
2287#define EMR_STROKEANDFILLPATH 63
2288#define EMR_STROKEPATH 64
2289#define EMR_FLATTENPATH 65
2290#define EMR_WIDENPATH 66
2291#define EMR_SELECTCLIPPATH 67
2292#define EMR_ABORTPATH 68
2293#define EMR_GDICOMMENT 70
2294#define EMR_FILLRGN 71
2295#define EMR_FRAMERGN 72
2296#define EMR_INVERTRGN 73
2297#define EMR_PAINTRGN 74
2298#define EMR_EXTSELECTCLIPRGN 75
2299#define EMR_BITBLT 76
2300#define EMR_STRETCHBLT 77
2301#define EMR_MASKBLT 78
2302#define EMR_PLGBLT 79
2303#define EMR_SETDIBITSTODEVICE 80
2304#define EMR_STRETCHDIBITS 81
2305#define EMR_EXTCREATEFONTINDIRECTW 82
2306#define EMR_EXTTEXTOUTA 83
2307#define EMR_EXTTEXTOUTW 84
2308#define EMR_POLYBEZIER16 85
2309#define EMR_POLYGON16 86
2310#define EMR_POLYLINE16 87
2311#define EMR_POLYBEZIERTO16 88
2312#define EMR_POLYLINETO16 89
2313#define EMR_POLYPOLYLINE16 90
2314#define EMR_POLYPOLYGON16 91
2315#define EMR_POLYDRAW16 92
2316#define EMR_CREATEMONOBRUSH 93
2317#define EMR_CREATEDIBPATTERNBRUSHPT 94
2318#define EMR_EXTCREATEPEN 95
2319#define EMR_POLYTEXTOUTA 96
2320#define EMR_POLYTEXTOUTW 97
2321#define EMR_SETICMMODE 98
2322#define EMR_CREATECOLORSPACE 99
2323#define EMR_SETCOLORSPACE 100
2324#define EMR_DELETECOLORSPACE 101
2325#define EMR_GLSRECORD 102
2326#define EMR_GLSBOUNDEDRECORD 103
2327#define EMR_PIXELFORMAT 104
2328
2329#define ENHMETA_SIGNATURE 1179469088
2330
2331#define CCHDEVICENAME 32
2332#define CCHFORMNAME 32
2333
2334typedef struct
2335{
2336 BYTE dmDeviceName[CCHDEVICENAME];
2337 WORD dmSpecVersion;
2338 WORD dmDriverVersion;
2339 WORD dmSize;
2340 WORD dmDriverExtra;
2341 DWORD dmFields;
2342 INT16 dmOrientation;
2343 INT16 dmPaperSize;
2344 INT16 dmPaperLength;
2345 INT16 dmPaperWidth;
2346 INT16 dmScale;
2347 INT16 dmCopies;
2348 INT16 dmDefaultSource;
2349 INT16 dmPrintQuality;
2350 INT16 dmColor;
2351 INT16 dmDuplex;
2352 INT16 dmYResolution;
2353 INT16 dmTTOption;
2354 INT16 dmCollate;
2355 BYTE dmFormName[CCHFORMNAME];
2356 WORD dmLogPixels;
2357 DWORD dmBitsPerPel;
2358 DWORD dmPelsWidth;
2359 DWORD dmPelsHeight;
2360 DWORD dmDisplayFlags;
2361 DWORD dmDisplayFrequency;
2362 DWORD dmICMMethod;
2363 DWORD dmICMIntent;
2364 DWORD dmMediaType;
2365 DWORD dmDitherType;
2366 DWORD dmReserved1;
2367 DWORD dmReserved2;
2368} DEVMODEA, *PDEVMODEA, *LPDEVMODEA;
2369
2370typedef struct
2371{
2372 WCHAR dmDeviceName[CCHDEVICENAME];
2373 WORD dmSpecVersion;
2374 WORD dmDriverVersion;
2375 WORD dmSize;
2376 WORD dmDriverExtra;
2377 DWORD dmFields;
2378 INT16 dmOrientation;
2379 INT16 dmPaperSize;
2380 INT16 dmPaperLength;
2381 INT16 dmPaperWidth;
2382 INT16 dmScale;
2383 INT16 dmCopies;
2384 INT16 dmDefaultSource;
2385 INT16 dmPrintQuality;
2386 INT16 dmColor;
2387 INT16 dmDuplex;
2388 INT16 dmYResolution;
2389 INT16 dmTTOption;
2390 INT16 dmCollate;
2391 WCHAR dmFormName[CCHFORMNAME];
2392 WORD dmLogPixels;
2393 DWORD dmBitsPerPel;
2394 DWORD dmPelsWidth;
2395 DWORD dmPelsHeight;
2396 DWORD dmDisplayFlags;
2397 DWORD dmDisplayFrequency;
2398 DWORD dmICMMethod;
2399 DWORD dmICMIntent;
2400 DWORD dmMediaType;
2401 DWORD dmDitherType;
2402 DWORD dmReserved1;
2403 DWORD dmReserved2;
2404} DEVMODEW, *PDEVMODEW, *LPDEVMODEW;
2405
2406DECL_WINELIB_TYPE_AW(DEVMODE)
2407DECL_WINELIB_TYPE_AW(PDEVMODE)
2408DECL_WINELIB_TYPE_AW(LPDEVMODE)
2409
2410#define DM_UPDATE 1
2411#define DM_COPY 2
2412#define DM_PROMPT 4
2413#define DM_MODIFY 8
2414
2415#define DM_IN_BUFFER DM_MODIFY
2416#define DM_IN_PROMPT DM_PROMPT
2417#define DM_OUT_BUFFER DM_COPY
2418#define DM_OUT_DEFAULT DM_UPDATE
2419
2420#define DM_ORIENTATION 0x00000001L
2421#define DM_PAPERSIZE 0x00000002L
2422#define DM_PAPERLENGTH 0x00000004L
2423#define DM_PAPERWIDTH 0x00000008L
2424#define DM_SCALE 0x00000010L
2425#define DM_COPIES 0x00000100L
2426#define DM_DEFAULTSOURCE 0x00000200L
2427#define DM_PRINTQUALITY 0x00000400L
2428#define DM_COLOR 0x00000800L
2429#define DM_DUPLEX 0x00001000L
2430#define DM_YRESOLUTION 0x00002000L
2431#define DM_TTOPTION 0x00004000L
2432#define DM_BITSPERPEL 0x00040000L
2433#define DM_PELSWIDTH 0x00080000L
2434#define DM_PELSHEIGHT 0x00100000L
2435#define DM_DISPLAYFLAGS 0x00200000L
2436#define DM_DISPLAYFREQUENCY 0x00400000L
2437
2438/* etc.... */
2439
2440#define DMORIENT_PORTRAIT 1
2441#define DMORIENT_LANDSCAPE 2
2442
2443#define DMPAPER_LETTER 1
2444#define DMPAPER_LETTERSMALL 2
2445#define DMPAPER_TABLOID 3
2446#define DMPAPER_LEDGER 4
2447#define DMPAPER_LEGAL 5
2448#define DMPAPER_STATEMENT 6
2449#define DMPAPER_EXECUTIVE 7
2450#define DMPAPER_A3 8
2451#define DMPAPER_A4 9
2452#define DMPAPER_A4SMALL 10
2453#define DMPAPER_A5 11
2454#define DMPAPER_B4 12
2455#define DMPAPER_B5 13
2456#define DMPAPER_FOLIO 14
2457#define DMPAPER_QUARTO 15
2458#define DMPAPER_10X14 16
2459#define DMPAPER_11X17 17
2460#define DMPAPER_NOTE 18
2461#define DMPAPER_ENV_9 19
2462#define DMPAPER_ENV_10 20
2463#define DMPAPER_ENV_11 21
2464#define DMPAPER_ENV_12 22
2465#define DMPAPER_ENV_14 23
2466#define DMPAPER_CSHEET 24
2467#define DMPAPER_DSHEET 25
2468#define DMPAPER_ESHEET 26
2469#define DMPAPER_ENV_DL 27
2470#define DMPAPER_ENV_C5 28
2471#define DMPAPER_ENV_C3 29
2472#define DMPAPER_ENV_C4 30
2473#define DMPAPER_ENV_C6 31
2474#define DMPAPER_ENV_C65 32
2475#define DMPAPER_ENV_B4 33
2476#define DMPAPER_ENV_B5 34
2477#define DMPAPER_ENV_B6 35
2478#define DMPAPER_ENV_ITALY 36
2479#define DMPAPER_ENV_MONARCH 37
2480#define DMPAPER_ENV_PERSONAL 38
2481#define DMPAPER_FANFOLD_US 39
2482#define DMPAPER_FANFOLD_STD_GERMAN 40
2483#define DMPAPER_FANFOLD_LGL_GERMAN 41
2484#define DMPAPER_ISO_B4 42
2485#define DMPAPER_JAPANESE_POSTCARD 43
2486#define DMPAPER_9X11 44
2487#define DMPAPER_10X11 45
2488#define DMPAPER_15X11 46
2489#define DMPAPER_ENV_INVITE 47
2490#define DMPAPER_RESERVED_48 48
2491#define DMPAPER_RESERVED_49 49
2492#define DMPAPER_LETTER_EXTRA 50
2493#define DMPAPER_LEGAL_EXTRA 51
2494#define DMPAPER_TABLOID_EXTRA 52
2495#define DMPAPER_A4_EXTRA 53
2496#define DMPAPER_LETTER_TRANSVERSE 54
2497#define DMPAPER_A4_TRANSVERSE 55
2498#define DMPAPER_LETTER_EXTRA_TRANSVERSE 56
2499#define DMPAPER_A_PLUS 57
2500#define DMPAPER_B_PLUS 58
2501#define DMPAPER_LETTER_PLUS 59
2502#define DMPAPER_A4_PLUS 60
2503#define DMPAPER_A5_TRANSVERSE 61
2504#define DMPAPER_B5_TRANSVERSE 62
2505#define DMPAPER_A3_EXTRA 63
2506#define DMPAPER_A5_EXTRA 64
2507#define DMPAPER_B5_EXTRA 65
2508#define DMPAPER_A2 66
2509#define DMPAPER_A3_TRANSVERSE 67
2510#define DMPAPER_A3_EXTRA_TRANSVERSE 68
2511
2512#define DMBIN_UPPER 1
2513#define DMBIN_LOWER 2
2514#define DMBIN_MIDDLE 3
2515#define DMBIN_MANUAL 4
2516#define DMBIN_ENVELOPE 5
2517#define DMBIN_ENVMANUAL 6
2518#define DMBIN_AUTO 7
2519#define DMBIN_LARGECAPACITY 11
2520
2521#define DMCOLOR_MONOCHROME 1
2522#define DMCOLOR_COLOR 2
2523
2524#define DMTT_BITMAP 1
2525#define DMTT_DOWNLOAD 2
2526#define DMTT_SUBDEV 3
2527
2528typedef struct
2529{
2530 INT cbSize;
2531 LPCSTR lpszDocName;
2532 LPCSTR lpszOutput;
2533 LPCSTR lpszDatatype;
2534 DWORD fwType;
2535} DOCINFOA, *LPDOCINFOA;
2536
2537typedef struct
2538{
2539 INT cbSize;
2540 LPCWSTR lpszDocName;
2541 LPCWSTR lpszOutput;
2542 LPCWSTR lpszDatatype;
2543 DWORD fwType;
2544} DOCINFOW, *LPDOCINFOW;
2545
2546DECL_WINELIB_TYPE_AW(DOCINFO)
2547DECL_WINELIB_TYPE_AW(LPDOCINFO)
2548
2549typedef struct {
2550 UINT cbSize;
2551 INT iBorderWidth;
2552 INT iScrollWidth;
2553 INT iScrollHeight;
2554 INT iCaptionWidth;
2555 INT iCaptionHeight;
2556 LOGFONTA lfCaptionFont;
2557 INT iSmCaptionWidth;
2558 INT iSmCaptionHeight;
2559 LOGFONTA lfSmCaptionFont;
2560 INT iMenuWidth;
2561 INT iMenuHeight;
2562 LOGFONTA lfMenuFont;
2563 LOGFONTA lfStatusFont;
2564 LOGFONTA lfMessageFont;
2565} NONCLIENTMETRICSA,*LPNONCLIENTMETRICSA;
2566
2567typedef struct {
2568 UINT cbSize;
2569 INT iBorderWidth;
2570 INT iScrollWidth;
2571 INT iScrollHeight;
2572 INT iCaptionWidth;
2573 INT iCaptionHeight;
2574 LOGFONTW lfCaptionFont;
2575 INT iSmCaptionWidth;
2576 INT iSmCaptionHeight;
2577 LOGFONTW lfSmCaptionFont;
2578 INT iMenuWidth;
2579 INT iMenuHeight;
2580 LOGFONTW lfMenuFont;
2581 LOGFONTW lfStatusFont;
2582 LOGFONTW lfMessageFont;
2583} NONCLIENTMETRICSW,*LPNONCLIENTMETRICSW;
2584
2585DECL_WINELIB_TYPE_AW(NONCLIENTMETRICS)
2586DECL_WINELIB_TYPE_AW(LPNONCLIENTMETRICS)
2587
2588/* Flags for PolyDraw and GetPath */
2589#define PT_CLOSEFIGURE 0x0001
2590#define PT_LINETO 0x0002
2591#define PT_BEZIERTO 0x0004
2592#define PT_MOVETO 0x0006
2593
2594#define RDH_RECTANGLES 1
2595
2596typedef struct _RGNDATAHEADER {
2597 DWORD dwSize;
2598 DWORD iType;
2599 DWORD nCount;
2600 DWORD nRgnSize;
2601 RECT rcBound;
2602} RGNDATAHEADER,*LPRGNDATAHEADER;
2603
2604typedef struct _RGNDATA {
2605 RGNDATAHEADER rdh;
2606 char Buffer[1];
2607} RGNDATA,*PRGNDATA,*LPRGNDATA;
2608
2609typedef BOOL (* CALLBACK ABORTPROC)(HDC, INT);
2610
2611#include "poppack.h"
2612
2613
2614/* Declarations for functions that exist only in Win32 */
2615
2616BOOL WINAPI AngleArc(HDC, INT, INT, DWORD, FLOAT, FLOAT);
2617BOOL WINAPI ArcTo(HDC, INT, INT, INT, INT, INT, INT, INT, INT);
2618HENHMETAFILE WINAPI CloseEnhMetaFile(HDC);
2619HBRUSH WINAPI CreateDIBPatternBrushPt(const void*,UINT);
2620HDC WINAPI CreateEnhMetaFileA(HDC,LPCSTR,const RECT*,LPCSTR);
2621HDC WINAPI CreateEnhMetaFileW(HDC,LPCWSTR,const RECT*,LPCWSTR);
2622INT WINAPI DrawEscape(HDC,INT,INT,LPCSTR);
2623BOOL WINAPI GdiComment(HDC,UINT,const BYTE *);
2624BOOL WINAPI GetCharABCWidthsFloatA(HDC,UINT,UINT,LPABCFLOAT);
2625BOOL WINAPI GetCharABCWidthsFloatW(HDC,UINT,UINT,LPABCFLOAT);
2626BOOL WINAPI GetCharWidthFloatA(HDC,UINT,UINT,PFLOAT);
2627BOOL WINAPI GetCharWidthFloatW(HDC,UINT,UINT,PFLOAT);
2628BOOL WINAPI GetColorAdjustment(HDC, LPCOLORADJUSTMENT);
2629DWORD WINAPI GetDCHook(HDC16,FARPROC16*);
2630BOOL WINAPI GetMiterLimit(HDC, PFLOAT);
2631BOOL WINAPI MaskBlt(HDC,INT,INT,INT,INT,HDC,INT,INT,HBITMAP,INT,INT,DWORD);
2632BOOL WINAPI PlgBlt(HDC,const POINT*,HDC,INT,INT,INT,INT,HBITMAP,INT,INT);
2633BOOL WINAPI PolyDraw(HDC,const POINT*,const BYTE*,DWORD);
2634BOOL WINAPI SetColorAdjustment(HDC,const COLORADJUSTMENT*);
2635BOOL WINAPI SetMiterLimit(HDC, FLOAT, PFLOAT);
2636BOOL WINAPI CombineTransform(LPXFORM,const XFORM *,const XFORM *);
2637HENHMETAFILE WINAPI CopyEnhMetaFileA(HENHMETAFILE,LPCSTR);
2638HENHMETAFILE WINAPI CopyEnhMetaFileW(HENHMETAFILE,LPCWSTR);
2639HPALETTE WINAPI CreateHalftonePalette(HDC);
2640BOOL WINAPI DeleteEnhMetaFile(HENHMETAFILE);
2641INT WINAPI ExtSelectClipRgn(HDC,HRGN,INT);
2642HRGN WINAPI ExtCreateRegion(const XFORM*,DWORD,const RGNDATA*);
2643INT WINAPI ExtEscape(HDC,INT,INT,LPCSTR,INT,LPSTR);
2644BOOL WINAPI FixBrushOrgEx(HDC,INT,INT,LPPOINT);
2645HANDLE WINAPI GetCurrentObject(HDC,UINT);
2646BOOL WINAPI GetDCOrgEx(HDC,LPPOINT);
2647HENHMETAFILE WINAPI GetEnhMetaFileA(LPCSTR);
2648HENHMETAFILE WINAPI GetEnhMetaFileW(LPCWSTR);
2649#define GetEnhMetaFile WINELIB_NAME_AW(GetEnhMetaFile)
2650UINT WINAPI GetEnhMetaFileBits(HENHMETAFILE,UINT,LPBYTE);
2651UINT WINAPI GetEnhMetaFileHeader(HENHMETAFILE,UINT,LPENHMETAHEADER);
2652UINT WINAPI GetEnhMetaFilePaletteEntries(HENHMETAFILE,UINT,LPPALETTEENTRY);
2653INT WINAPI GetGraphicsMode(HDC);
2654UINT WINAPI GetMetaFileBitsEx(HMETAFILE,UINT,LPVOID);
2655DWORD WINAPI GetObjectType(HANDLE);
2656UINT WINAPI GetTextCharsetInfo(HDC,LPFONTSIGNATURE,DWORD);
2657BOOL WINAPI GetTextExtentExPointA(HDC,LPCSTR,INT,INT,
2658 LPINT,LPINT,LPSIZE);
2659BOOL WINAPI GetTextExtentExPointW(HDC,LPCWSTR,INT,INT,
2660 LPINT,LPINT,LPSIZE);
2661#define GetTextExtentExPoint WINELIB_NAME_AW(GetTextExtentExPoint)
2662BOOL WINAPI GetWorldTransform(HDC,LPXFORM);
2663BOOL WINAPI ModifyWorldTransform(HDC,const XFORM *, DWORD);
2664BOOL WINAPI PlayEnhMetaFile(HDC,HENHMETAFILE,const RECT*);
2665BOOL WINAPI PlayEnhMetaFileRecord(HDC,LPHANDLETABLE,const ENHMETARECORD*,UINT);
2666BOOL WINAPI PolyPolyline(HDC,const POINT*,const DWORD*,DWORD);
2667BOOL WINAPI SetBrushOrgEx(HDC,INT,INT,LPPOINT);
2668HENHMETAFILE WINAPI SetEnhMetaFileBits(UINT,const BYTE *);
2669INT WINAPI SetGraphicsMode(HDC,INT);
2670HMETAFILE WINAPI SetMetaFileBitsEx(UINT,const BYTE*);
2671BOOL WINAPI SetWorldTransform(HDC,const XFORM*);
2672UINT WINAPI TranslateCharsetInfo(LPDWORD,LPCHARSETINFO,DWORD);
2673
2674/* Declarations for functions that change between Win16 and Win32 */
2675
2676INT WINAPI AbortDoc(HDC);
2677BOOL WINAPI AbortPath(HDC);
2678INT WINAPI AddFontResourceA(LPCSTR);
2679INT WINAPI AddFontResourceW(LPCWSTR);
2680BOOL WINAPI AnimatePalette(HPALETTE,UINT,UINT,const PALETTEENTRY*);
2681BOOL WINAPI Arc(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
2682BOOL WINAPI BeginPath(HDC);
2683BOOL WINAPI BitBlt(HDC,INT,INT,INT,INT,HDC,INT,INT,DWORD);
2684INT WINAPI ChoosePixelFormat(HDC,const PIXELFORMATDESCRIPTOR*);
2685BOOL WINAPI Chord(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
2686BOOL WINAPI CloseFigure(HDC);
2687HMETAFILE WINAPI CloseMetaFile(HDC);
2688INT WINAPI CombineRgn(HRGN,HRGN,HRGN,INT);
2689HMETAFILE WINAPI CopyMetaFileA(HMETAFILE,LPCSTR);
2690HMETAFILE WINAPI CopyMetaFileW(HMETAFILE,LPCWSTR);
2691HBITMAP WINAPI CreateBitmap(INT,INT,UINT,UINT,LPCVOID);
2692HBITMAP WINAPI CreateBitmapIndirect(const BITMAP*);
2693HBRUSH WINAPI CreateBrushIndirect(const LOGBRUSH*);
2694HBITMAP WINAPI CreateCompatibleBitmap(HDC,INT,INT);
2695HDC WINAPI CreateCompatibleDC(HDC);
2696HDC WINAPI CreateDCA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
2697HDC WINAPI CreateDCW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*);
2698HBITMAP WINAPI CreateDIBitmap(HDC,const BITMAPINFOHEADER*,DWORD,LPCVOID,const BITMAPINFO*,UINT);
2699HBRUSH WINAPI CreateDIBPatternBrush(HGLOBAL,UINT);
2700HBITMAP WINAPI CreateDIBSection (HDC, BITMAPINFO *, UINT,LPVOID *, HANDLE, DWORD offset);
2701HBITMAP WINAPI CreateDiscardableBitmap(HDC,INT,INT);
2702HRGN WINAPI CreateEllipticRgn(INT,INT,INT,INT);
2703HRGN WINAPI CreateEllipticRgnIndirect(const RECT *);
2704HFONT WINAPI CreateFontA(INT,INT,INT,INT,INT,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCSTR);
2705HFONT WINAPI CreateFontW(INT,INT,INT,INT,INT,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCWSTR);
2706#define CreateFont WINELIB_NAME_AW(CreateFont)
2707HFONT WINAPI CreateFontIndirectA(const LOGFONTA*);
2708HFONT WINAPI CreateFontIndirectW(const LOGFONTW*);
2709#define CreateFontIndirect WINELIB_NAME_AW(CreateFontIndirect)
2710
2711HBRUSH WINAPI CreateHatchBrush(INT,COLORREF);
2712HDC WINAPI CreateICA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
2713HDC WINAPI CreateICW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*);
2714#define CreateIC WINELIB_NAME_AW(CreateIC)
2715
2716HDC WINAPI CreateMetaFileA(LPCSTR);
2717HDC WINAPI CreateMetaFileW(LPCWSTR);
2718#define CreateMetaFile WINELIB_NAME_AW(CreateMetaFile)
2719
2720HPALETTE WINAPI CreatePalette(const LOGPALETTE*);
2721HBRUSH WINAPI CreatePatternBrush(HBITMAP);
2722HPEN WINAPI CreatePen(INT,INT,COLORREF);
2723HPEN WINAPI CreatePenIndirect(const LOGPEN*);
2724HRGN WINAPI CreatePolyPolygonRgn(const POINT*,const INT*,INT,INT);
2725HRGN WINAPI CreatePolygonRgn(const POINT*,INT,INT);
2726HRGN WINAPI CreateRectRgn(INT,INT,INT,INT);
2727HRGN WINAPI CreateRectRgnIndirect(const RECT*);
2728HRGN WINAPI CreateRoundRectRgn(INT,INT,INT,INT,INT,INT);
2729BOOL WINAPI CreateScalableFontResourceA(DWORD,LPCSTR,LPCSTR,LPCSTR);
2730BOOL WINAPI CreateScalableFontResourceW(DWORD,LPCWSTR,LPCWSTR,LPCWSTR);
2731#define CreateScalableFontResource WINELIB_NAME_AW(CreateScalableFontResource)
2732
2733HBRUSH WINAPI CreateSolidBrush(COLORREF);
2734BOOL WINAPI DeleteDC(HDC);
2735BOOL WINAPI DeleteMetaFile(HMETAFILE);
2736BOOL WINAPI DeleteObject(HGDIOBJ);
2737INT WINAPI DescribePixelFormat(HDC,int,UINT,LPPIXELFORMATDESCRIPTOR);
2738BOOL WINAPI DPtoLP(HDC,LPPOINT,INT);
2739BOOL WINAPI Ellipse(HDC,INT,INT,INT,INT);
2740INT WINAPI EndDoc(HDC);
2741BOOL WINAPI EndPath(HDC);
2742INT WINAPI EnumFontFamiliesA(HDC,LPCSTR,FONTENUMPROCA,LPARAM);
2743INT WINAPI EnumFontFamiliesW(HDC,LPCWSTR,FONTENUMPROCW,LPARAM);
2744#define EnumFontFamilies WINELIB_NAME_AW(EnumFontFamilies)
2745
2746INT WINAPI EnumFontFamiliesExA(HDC,LPLOGFONTA,FONTENUMPROCEXA,LPARAM,DWORD);
2747INT WINAPI EnumFontFamiliesExW(HDC,LPLOGFONTW,FONTENUMPROCEXW,LPARAM,DWORD);
2748#define EnumFontFamiliesEx WINELIB_NAME_AW(EnumFontFamiliesEx)
2749
2750INT WINAPI EnumFontsA(HDC,LPCSTR,FONTENUMPROCA,LPARAM);
2751INT WINAPI EnumFontsW(HDC,LPCWSTR,FONTENUMPROCW,LPARAM);
2752#define EnumFonts WINELIB_NAME_AW(EnumFonts)
2753
2754BOOL WINAPI EnumMetaFile(HDC,HMETAFILE,MFENUMPROC,LPARAM);
2755INT WINAPI EnumObjects(HDC,INT,GOBJENUMPROC,LPARAM);
2756BOOL WINAPI EqualRgn(HRGN,HRGN);
2757INT WINAPI Escape(HDC,INT,INT,LPCSTR,LPVOID);
2758INT WINAPI ExcludeClipRect(HDC,INT,INT,INT,INT);
2759HPEN WINAPI ExtCreatePen(DWORD,DWORD,const LOGBRUSH*,DWORD,const DWORD*);
2760BOOL WINAPI ExtFloodFill(HDC,INT,INT,COLORREF,UINT);
2761BOOL WINAPI ExtTextOutA(HDC,INT,INT,UINT,const RECT*,LPCSTR,UINT,const INT*);
2762BOOL WINAPI ExtTextOutW(HDC,INT,INT,UINT,const RECT*,LPCWSTR,UINT,const INT*);
2763#define ExtTextOut WINELIB_NAME_AW(ExtTextOut)
2764
2765BOOL WINAPI FillPath(HDC);
2766BOOL WINAPI FillRgn(HDC,HRGN,HBRUSH);
2767BOOL WINAPI FlattenPath(HDC);
2768BOOL WINAPI FloodFill(HDC,INT,INT,COLORREF);
2769BOOL WINAPI FrameRgn(HDC,HRGN,HBRUSH,INT,INT);
2770INT WINAPI GetArcDirection(HDC);
2771BOOL WINAPI GetAspectRatioFilterEx(HDC,LPSIZE);
2772LONG WINAPI GetBitmapBits(HBITMAP,LONG,LPVOID);
2773BOOL WINAPI GetBitmapDimensionEx(HBITMAP,LPSIZE);
2774BOOL WINAPI GetBrushOrgEx(HDC,LPPOINT);
2775COLORREF WINAPI GetBkColor(HDC);
2776INT WINAPI GetBkMode(HDC);
2777UINT WINAPI GetBoundsRect(HDC,LPRECT,UINT);
2778BOOL WINAPI GetCharABCWidthsA(HDC,UINT,UINT,LPABC);
2779BOOL WINAPI GetCharABCWidthsW(HDC,UINT,UINT,LPABC);
2780#define GetCharWidth WINELIB_NAME_AW(GetCharWidth)
2781#define GetCharWidthA GetCharWidth32A
2782#define GetCharWidthW GetCharWidth32W
2783
2784DWORD WINAPI GetCharacterPlacementA(HDC,LPCSTR,INT,INT,GCP_RESULTSA*,DWORD);
2785DWORD WINAPI GetCharacterPlacementW(HDC,LPCWSTR,INT,INT,GCP_RESULTSW*,DWORD);
2786#define GetCharacterPlacement WINELIB_NAME_AW(GetCharacterPlacement)
2787
2788BOOL WINAPI GetCharWidthA(HDC,UINT,UINT,LPINT);
2789BOOL WINAPI GetCharWidthW(HDC,UINT,UINT,LPINT);
2790#define GetCharWidth WINELIB_NAME_AW(GetCharWidth)
2791
2792INT WINAPI GetClipBox(HDC,LPRECT);
2793INT WINAPI GetClipRgn(HDC,HRGN);
2794BOOL WINAPI GetCurrentPositionEx(HDC,LPPOINT);
2795INT WINAPI GetDeviceCaps(HDC,INT);
2796UINT WINAPI GetDIBColorTable(HDC,UINT,UINT,RGBQUAD*);
2797INT WINAPI GetDIBits(HDC,HBITMAP,UINT,UINT,LPVOID,LPBITMAPINFO,UINT);
2798DWORD WINAPI GetFontData(HDC,DWORD,DWORD,LPVOID,DWORD);
2799DWORD WINAPI GetFontLanguageInfo(HDC);
2800DWORD WINAPI GetGlyphOutlineA(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,LPVOID,const MAT2*);
2801DWORD WINAPI GetGlyphOutlineW(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,LPVOID,const MAT2*);
2802#define GetGlyphOutline WINELIB_NAME_AW(GetGlyphOutline)
2803
2804DWORD WINAPI GetKerningPairsA(HDC,DWORD,LPKERNINGPAIR);
2805DWORD WINAPI GetKerningPairsW(HDC,DWORD,LPKERNINGPAIR);
2806#define GetKerningPairs WINELIB_NAME_AW(GetKerningPairs)
2807
2808INT WINAPI GetMapMode(HDC);
2809HMETAFILE WINAPI GetMetaFileA(LPCSTR);
2810HMETAFILE WINAPI GetMetaFileW(LPCWSTR);
2811DWORD WINAPI GetNearestColor(HDC,DWORD);
2812UINT WINAPI GetNearestPaletteIndex(HPALETTE,COLORREF);
2813INT WINAPI GetObjectA(HANDLE,INT,LPVOID);
2814INT WINAPI GetObjectW(HANDLE,INT,LPVOID);
2815#define GetObject WINELIB_NAME_AW(GetObject)
2816
2817UINT WINAPI GetOutlineTextMetricsA(HDC,UINT,LPOUTLINETEXTMETRICA);
2818UINT WINAPI GetOutlineTextMetricsW(HDC,UINT,LPOUTLINETEXTMETRICW);
2819#define GetOutlineTextMetrics WINELIB_NAME_AW(GetOutlineTextMetrics)
2820
2821UINT WINAPI GetPaletteEntries(HPALETTE,UINT,UINT,LPPALETTEENTRY);
2822INT WINAPI GetPath(HDC,LPPOINT,LPBYTE,INT);
2823COLORREF WINAPI GetPixel(HDC,INT,INT);
2824INT WINAPI GetPixelFormat(HDC);
2825INT WINAPI GetPolyFillMode(HDC);
2826BOOL WINAPI GetRasterizerCaps(LPRASTERIZER_STATUS,UINT);
2827DWORD WINAPI GetRegionData(HRGN,DWORD,LPRGNDATA);
2828INT WINAPI GetRelAbs(HDC);
2829INT WINAPI GetRgnBox(HRGN,LPRECT);
2830INT WINAPI GetROP2(HDC);
2831HGDIOBJ WINAPI GetStockObject(INT);
2832INT WINAPI GetStretchBltMode(HDC);
2833UINT WINAPI GetSystemPaletteEntries(HDC,UINT,UINT,LPPALETTEENTRY);
2834UINT WINAPI GetSystemPaletteUse(HDC);
2835UINT WINAPI GetTextAlign(HDC);
2836INT WINAPI GetTextCharacterExtra(HDC);
2837UINT WINAPI GetTextCharset(HDC);
2838COLORREF WINAPI GetTextColor(HDC);
2839BOOL WINAPI GetTextExtentPointA(HDC,LPCSTR,INT,LPSIZE);
2840BOOL WINAPI GetTextExtentPointW(HDC,LPCWSTR,INT,LPSIZE);
2841#define GetTextExtentPoint WINELIB_NAME_AW(GetTextExtentPoint)
2842
2843BOOL WINAPI GetTextExtentPoint32A(HDC,LPCSTR,INT,LPSIZE);
2844BOOL WINAPI GetTextExtentPoint32W(HDC,LPCWSTR,INT,LPSIZE);
2845#define GetTextExtentPoint32 WINELIB_NAME_AW(GetTextExtentPoint32)
2846
2847INT WINAPI GetTextFaceA(HDC,INT,LPSTR);
2848INT WINAPI GetTextFaceW(HDC,INT,LPWSTR);
2849#define GetTextFace WINELIB_NAME_AW(GetTextFace)
2850
2851BOOL WINAPI GetTextMetricsA(HDC,LPTEXTMETRICA);
2852BOOL WINAPI GetTextMetricsW(HDC,LPTEXTMETRICW);
2853#define GetTextMetrics WINELIB_NAME_AW(GetTextMetrics)
2854
2855BOOL WINAPI GetViewportExtEx(HDC,LPSIZE);
2856BOOL WINAPI GetViewportOrgEx(HDC,LPPOINT);
2857BOOL WINAPI GetWindowExtEx(HDC,LPSIZE);
2858BOOL WINAPI GetWindowOrgEx(HDC,LPPOINT);
2859INT WINAPI IntersectClipRect(HDC,INT,INT,INT,INT);
2860BOOL WINAPI InvertRgn(HDC,HRGN);
2861BOOL WINAPI LineDDA(INT,INT,INT,INT,LINEDDAPROC,LPARAM);
2862BOOL WINAPI LineTo(HDC,INT,INT);
2863BOOL WINAPI LPtoDP(HDC,LPPOINT,INT);
2864BOOL WINAPI MoveToEx(HDC,INT,INT,LPPOINT);
2865/* FIXME This is defined in kernel32.spec !?*/
2866INT WINAPI MulDiv(INT,INT,INT);
2867INT WINAPI OffsetClipRgn(HDC,INT,INT);
2868INT WINAPI OffsetRgn(HRGN,INT,INT);
2869BOOL WINAPI OffsetViewportOrgEx(HDC,INT,INT,LPPOINT);
2870BOOL WINAPI OffsetWindowOrgEx(HDC,INT,INT,LPPOINT);
2871BOOL WINAPI PaintRgn(HDC,HRGN);
2872BOOL WINAPI PatBlt(HDC,INT,INT,INT,INT,DWORD);
2873HRGN WINAPI PathToRegion(HDC);
2874BOOL WINAPI Pie(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
2875BOOL WINAPI PlayMetaFile(HDC,HMETAFILE);
2876BOOL WINAPI PlayMetaFileRecord(HDC,LPHANDLETABLE,LPMETARECORD,UINT);
2877BOOL WINAPI PolyBezier(HDC,const POINT*,DWORD);
2878BOOL WINAPI PolyBezierTo(HDC,const POINT*,DWORD);
2879BOOL WINAPI PolyPolygon(HDC,const POINT*,const INT*,UINT);
2880BOOL WINAPI Polygon(HDC,const POINT*,INT);
2881BOOL WINAPI Polyline(HDC,const POINT*,INT);
2882BOOL WINAPI PolylineTo(HDC,const POINT*,DWORD);
2883BOOL WINAPI PtInRegion(HRGN,INT,INT);
2884BOOL WINAPI PtVisible(HDC,INT,INT);
2885/* FIXME This is defined in user.spec !? */
2886UINT WINAPI RealizePalette(HDC);
2887BOOL WINAPI Rectangle(HDC,INT,INT,INT,INT);
2888BOOL WINAPI RectInRegion(HRGN,const RECT *);
2889BOOL WINAPI RectVisible(HDC,const RECT*);
2890BOOL WINAPI RemoveFontResourceA(LPCSTR);
2891BOOL WINAPI RemoveFontResourceW(LPCWSTR);
2892HDC WINAPI ResetDCA(HDC,const DEVMODEA *);
2893HDC WINAPI ResetDCW(HDC,const DEVMODEW *);
2894BOOL WINAPI ResizePalette(HPALETTE,UINT);
2895BOOL WINAPI RestoreDC(HDC,INT);
2896BOOL WINAPI RoundRect(HDC,INT,INT,INT,INT,INT,INT);
2897INT WINAPI SaveDC(HDC);
2898BOOL WINAPI ScaleViewportExtEx(HDC,INT,INT,INT,INT,LPSIZE);
2899BOOL WINAPI ScaleWindowExtEx(HDC,INT,INT,INT,INT,LPSIZE);
2900BOOL WINAPI SelectClipPath(HDC,INT);
2901INT WINAPI SelectClipRgn(HDC,HRGN);
2902HGDIOBJ WINAPI SelectObject(HDC,HGDIOBJ);
2903/* FIXME This is defined in user.spec !? */
2904HPALETTE WINAPI SelectPalette(HDC,HPALETTE,BOOL);
2905INT WINAPI SetAbortProc(HDC,ABORTPROC);
2906INT WINAPI SetArcDirection(HDC,INT);
2907LONG WINAPI SetBitmapBits(HBITMAP,LONG,LPCVOID);
2908BOOL WINAPI SetBitmapDimensionEx(HBITMAP,INT,INT,LPSIZE);
2909COLORREF WINAPI SetBkColor(HDC,COLORREF);
2910INT WINAPI SetBkMode(HDC,INT);
2911UINT WINAPI SetBoundsRect(HDC,const RECT*,UINT);
2912UINT WINAPI SetDIBColorTable(HDC,UINT,UINT,RGBQUAD*);
2913INT WINAPI SetDIBits(HDC,HBITMAP,UINT,UINT,LPCVOID,const BITMAPINFO*,UINT);
2914INT WINAPI SetDIBitsToDevice(HDC,INT,INT,DWORD,DWORD,INT,INT,UINT,UINT,LPCVOID,const BITMAPINFO*,UINT);
2915INT WINAPI SetMapMode(HDC,INT);
2916DWORD WINAPI SetMapperFlags(HDC,DWORD);
2917UINT WINAPI SetPaletteEntries(HPALETTE,UINT,UINT,LPPALETTEENTRY);
2918COLORREF WINAPI SetPixel(HDC,INT,INT,COLORREF);
2919BOOL WINAPI SetPixelV(HDC,INT,INT,COLORREF);
2920BOOL WINAPI SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR*);
2921INT WINAPI SetPolyFillMode(HDC,INT);
2922BOOL WINAPI SetRectRgn(HRGN,INT,INT,INT,INT);
2923INT WINAPI SetRelAbs(HDC,INT);
2924INT WINAPI SetROP2(HDC,INT);
2925INT WINAPI SetStretchBltMode(HDC,INT);
2926UINT WINAPI SetSystemPaletteUse(HDC,UINT);
2927UINT WINAPI SetTextAlign(HDC,UINT);
2928INT WINAPI SetTextCharacterExtra(HDC,INT);
2929COLORREF WINAPI SetTextColor(HDC,COLORREF);
2930BOOL WINAPI SetTextJustification(HDC,INT,INT);
2931BOOL WINAPI SetViewportExtEx(HDC,INT,INT,LPSIZE);
2932BOOL WINAPI SetViewportOrgEx(HDC,INT,INT,LPPOINT);
2933BOOL WINAPI SetWindowExtEx(HDC,INT,INT,LPSIZE);
2934BOOL WINAPI SetWindowOrgEx(HDC,INT,INT,LPPOINT);
2935HENHMETAFILE WINAPI SetWinMetaFileBits(UINT,CONST BYTE*,HDC,CONST METAFILEPICT *);
2936INT WINAPI StartDocA(HDC,const DOCINFOA*);
2937INT WINAPI StartDocW(HDC,const DOCINFOW*);
2938INT WINAPI StartPage(HDC);
2939INT WINAPI EndPage(HDC);
2940BOOL WINAPI StretchBlt(HDC,INT,INT,INT,INT,HDC,INT,INT,INT,INT,DWORD);
2941INT WINAPI StretchDIBits(HDC,INT,INT,INT,INT,INT,INT,INT,INT,const VOID*,const BITMAPINFO*,UINT,DWORD);
2942BOOL WINAPI StrokeAndFillPath(HDC);
2943BOOL WINAPI StrokePath(HDC);
2944BOOL WINAPI SwapBuffers(HDC);
2945BOOL WINAPI TextOutA(HDC,INT,INT,LPCSTR,INT);
2946BOOL WINAPI TextOutW(HDC,INT,INT,LPCWSTR,INT);
2947#define TextOut WINELIB_NAME_AW(TextOut)
2948
2949BOOL WINAPI UnrealizeObject(HGDIOBJ);
2950BOOL WINAPI UpdateColors(HDC);
2951BOOL WINAPI WidenPath(HDC);
2952
2953
2954typedef int (* CALLBACK ICMENUMPROCA)(LPSTR, LPARAM);
2955typedef int (* CALLBACK ICMENUMPROCW)(LPWSTR, LPARAM);
2956int WINAPI EnumICMProfilesA(HDC,ICMENUMPROCA,LPARAM);
2957int WINAPI EnumICMProfilesW(HDC,ICMENUMPROCW,LPARAM);
2958#define EnumICMProfiles WINELIB_NAME_AW(EnumICMProfiles)
2959
2960#ifdef __cplusplus
2961}
2962#endif
2963
2964#endif /* __WINE_WINGDI_H */
Note: See TracBrowser for help on using the repository browser.