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

Last change on this file since 4 was 4, checked in by ktk, 26 years ago

Import

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