Updated the example with the new configuration entries.
[wine/multimedia.git] / include / wingdi.h
blob5f19c2bbb3a60a436a267f1f6a202a2d6f670728
1 #ifndef __WINE_WINGDI_H
2 #define __WINE_WINGDI_H
4 #include "windef.h"
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
10 #define _WINGDI_
12 #pragma pack(1)
14 typedef struct _ABCFLOAT {
15 FLOAT abcfA;
16 FLOAT abcfB;
17 FLOAT abcfC;
18 } ABCFLOAT, *PABCFLOAT, *LPABCFLOAT;
20 typedef struct
22 WORD wFirst;
23 WORD wSecond;
24 INT16 iKernAmount;
25 } KERNINGPAIR16, *LPKERNINGPAIR16;
27 typedef struct
29 WORD wFirst;
30 WORD wSecond;
31 INT iKernAmount;
32 } KERNINGPAIR, *LPKERNINGPAIR;
35 typedef struct
37 HDC16 hdc;
38 BOOL16 fErase;
39 RECT16 rcPaint;
40 BOOL16 fRestore;
41 BOOL16 fIncUpdate;
42 BYTE rgbReserved[16];
43 } PAINTSTRUCT16, *LPPAINTSTRUCT16;
45 typedef struct
47 HDC hdc;
48 BOOL fErase;
49 RECT rcPaint;
50 BOOL fRestore;
51 BOOL fIncUpdate;
52 BYTE rgbReserved[32];
53 } PAINTSTRUCT, *PPAINTSTRUCT, *LPPAINTSTRUCT;
57 typedef struct tagPIXELFORMATDESCRIPTOR {
58 WORD nSize;
59 WORD nVersion;
60 DWORD dwFlags;
61 BYTE iPixelType;
62 BYTE cColorBits;
63 BYTE cRedBits;
64 BYTE cRedShift;
65 BYTE cGreenBits;
66 BYTE cGreenShift;
67 BYTE cBlueBits;
68 BYTE cBlueShift;
69 BYTE cAlphaBits;
70 BYTE cAlphaShift;
71 BYTE cAccumBits;
72 BYTE cAccumRedBits;
73 BYTE cAccumGreenBits;
74 BYTE cAccumBlueBits;
75 BYTE cAccumAlphaBits;
76 BYTE cDepthBits;
77 BYTE cStencilBits;
78 BYTE cAuxBuffers;
79 BYTE iLayerType;
80 BYTE bReserved;
81 DWORD dwLayerMask;
82 DWORD dwVisibleMask;
83 DWORD dwDamageMask;
84 } PIXELFORMATDESCRIPTOR, *LPPIXELFORMATDESCRIPTOR;
86 typedef struct tagCOLORADJUSTMENT
88 WORD caSize;
89 WORD caFlags;
90 WORD caIlluminantIndex;
91 WORD caRedGamma;
92 WORD caGreenGamma;
93 WORD caBlueGamma;
94 WORD caReferenceBlack;
95 WORD caReferenceWhite;
96 SHORT caContrast;
97 SHORT caBrightness;
98 SHORT caColorfulness;
99 SHORT caRedGreenTint;
100 } COLORADJUSTMENT, *PCOLORADJUSTMENT, *LPCOLORADJUSTMENT;
102 typedef LONG FXPT16DOT16, *LPFXPT16DOT16;
103 typedef LONG FXPT2DOT30, *LPFXPT2DOT30;
104 typedef LONG LCSCSTYPE;
105 typedef LONG LCSGAMUTMATCH;
107 typedef struct tagCIEXYZ
109 FXPT2DOT30 ciexyzX;
110 FXPT2DOT30 ciexyzY;
111 FXPT2DOT30 ciexyzZ;
112 } CIEXYZ, *LPCIEXYZ;
114 typedef struct tagCIEXYZTRIPLE
116 CIEXYZ ciexyzRed;
117 CIEXYZ ciexyzGreen;
118 CIEXYZ ciexyzBlue;
119 } CIEXYZTRIPLE, *LPCIEXYZTRIPLE;
121 typedef struct tagLOGCOLORSPACEA
123 DWORD lcsSignature;
124 DWORD lcsVersion;
125 DWORD lcsSize;
126 LCSCSTYPE lcsCSType;
127 LCSGAMUTMATCH lcsIntent;
128 CIEXYZTRIPLE lcsEndpoints;
129 DWORD lcsGammaRed;
130 DWORD lcsGammaGreen;
131 DWORD lcsGammaBlue;
132 CHAR lcsFilename[_MAX_PATH];
133 } LOGCOLORSPACEA, *LPLOGCOLORSPACEA;
135 typedef struct tagLOGCOLORSPACEW
137 DWORD lcsSignature;
138 DWORD lcsVersion;
139 DWORD lcsSize;
140 LCSCSTYPE lcsCSType;
141 LCSGAMUTMATCH lcsIntent;
142 CIEXYZTRIPLE lcsEndpoints;
143 DWORD lcsGammaRed;
144 DWORD lcsGammaGreen;
145 DWORD lcsGammaBlue;
146 WCHAR lcsFilename[_MAX_PATH];
147 } LOGCOLORSPACEW, *LPLOGCOLORSPACEW;
149 DECL_WINELIB_TYPE_AW(LPLOGCOLORSPACE)
150 DECL_WINELIB_TYPE_AW(LOGCOLORSPACE)
152 #define DC_FIELDS 1
153 #define DC_PAPERS 2
154 #define DC_PAPERSIZE 3
155 #define DC_MINEXTENT 4
156 #define DC_MAXEXTENT 5
157 #define DC_BINS 6
158 #define DC_DUPLEX 7
159 #define DC_SIZE 8
160 #define DC_EXTRA 9
161 #define DC_VERSION 10
162 #define DC_DRIVER 11
163 #define DC_BINNAMES 12
164 #define DC_ENUMRESOLUTIONS 13
165 #define DC_FILEDEPENDENCIES 14
166 #define DC_TRUETYPE 15
167 #define DC_PAPERNAMES 16
168 #define DC_ORIENTATION 17
169 #define DC_COPIES 18
170 #define DC_BINADJUST 19
171 #define DC_EMF_COMPLIANT 20
172 #define DC_DATATYPE_PRODUCED 21
173 #define DC_COLLATE 22
174 #define DC_MANUFACTURER 23
175 #define DC_MODEL 24
177 /* Flag returned from Escape QUERYDIBSUPPORT */
178 #define QDI_SETDIBITS 1
179 #define QDI_GETDIBITS 2
180 #define QDI_DIBTOSCREEN 4
181 #define QDI_STRETCHDIB 8
184 #define PR_JOBSTATUS 0x0000
187 /* GDI Escape commands */
188 #define NEWFRAME 1
189 #define ABORTDOC 2
190 #define NEXTBAND 3
191 #define SETCOLORTABLE 4
192 #define GETCOLORTABLE 5
193 #define FLUSHOUTPUT 6
194 #define DRAFTMODE 7
195 #define QUERYESCSUPPORT 8
196 #define SETABORTPROC 9
197 #define STARTDOC 10
198 #define ENDDOC 11
199 #define GETPHYSPAGESIZE 12
200 #define GETPRINTINGOFFSET 13
201 #define GETSCALINGFACTOR 14
202 #define MFCOMMENT 15
203 #define GETPENWIDTH 16
204 #define SETCOPYCOUNT 17
205 #define SELECTPAPERSOURCE 18
206 #define DEVICEDATA 19
207 #define PASSTHROUGH 19
208 #define GETTECHNOLGY 20
209 #define GETTECHNOLOGY 20 /* yes, both of them */
210 #define SETLINECAP 21
211 #define SETLINEJOIN 22
212 #define SETMITERLIMIT 23
213 #define BANDINFO 24
214 #define DRAWPATTERNRECT 25
215 #define GETVECTORPENSIZE 26
216 #define GETVECTORBRUSHSIZE 27
217 #define ENABLEDUPLEX 28
218 #define GETSETPAPERBINS 29
219 #define GETSETPRINTORIENT 30
220 #define ENUMPAPERBINS 31
221 #define SETDIBSCALING 32
222 #define EPSPRINTING 33
223 #define ENUMPAPERMETRICS 34
224 #define GETSETPAPERMETRICS 35
225 #define POSTSCRIPT_DATA 37
226 #define POSTSCRIPT_IGNORE 38
227 #define MOUSETRAILS 39
228 #define GETDEVICEUNITS 42
230 #define GETEXTENDEDTEXTMETRICS 256
231 #define GETEXTENTTABLE 257
232 #define GETPAIRKERNTABLE 258
233 #define GETTRACKKERNTABLE 259
234 #define EXTTEXTOUT 512
235 #define GETFACENAME 513
236 #define DOWNLOADFACE 514
237 #define ENABLERELATIVEWIDTHS 768
238 #define ENABLEPAIRKERNING 769
239 #define SETKERNTRACK 770
240 #define SETALLJUSTVALUES 771
241 #define SETCHARSET 772
243 #define STRETCHBLT 2048
244 #define GETSETSCREENPARAMS 3072
245 #define QUERYDIBSUPPORT 3073
246 #define BEGIN_PATH 4096
247 #define CLIP_TO_PATH 4097
248 #define END_PATH 4098
249 #define EXT_DEVICE_CAPS 4099
250 #define RESTORE_CTM 4100
251 #define SAVE_CTM 4101
252 #define SET_ARC_DIRECTION 4102
253 #define SET_BACKGROUND_COLOR 4103
254 #define SET_POLY_MODE 4104
255 #define SET_SCREEN_ANGLE 4105
256 #define SET_SPREAD 4106
257 #define TRANSFORM_CTM 4107
258 #define SET_CLIP_BOX 4108
259 #define SET_BOUNDS 4109
260 #define SET_MIRROR_MODE 4110
261 #define OPENCHANNEL 4110
262 #define DOWNLOADHEADER 4111
263 #define CLOSECHANNEL 4112
264 #define POSTSCRIPT_PASSTHROUGH 4115
265 #define ENCAPSULATED_POSTSCRIPT 4116
267 /* Spooler Error Codes */
268 #define SP_NOTREPORTED 0x4000
269 #define SP_ERROR (-1)
270 #define SP_APPABORT (-2)
271 #define SP_USERABORT (-3)
272 #define SP_OUTOFDISK (-4)
273 #define SP_OUTOFMEMORY (-5)
276 /* Raster operations */
278 #define R2_BLACK 1
279 #define R2_NOTMERGEPEN 2
280 #define R2_MASKNOTPEN 3
281 #define R2_NOTCOPYPEN 4
282 #define R2_MASKPENNOT 5
283 #define R2_NOT 6
284 #define R2_XORPEN 7
285 #define R2_NOTMASKPEN 8
286 #define R2_MASKPEN 9
287 #define R2_NOTXORPEN 10
288 #define R2_NOP 11
289 #define R2_MERGENOTPEN 12
290 #define R2_COPYPEN 13
291 #define R2_MERGEPENNOT 14
292 #define R2_MERGEPEN 15
293 #define R2_WHITE 16
295 #define SRCCOPY 0xcc0020
296 #define SRCPAINT 0xee0086
297 #define SRCAND 0x8800c6
298 #define SRCINVERT 0x660046
299 #define SRCERASE 0x440328
300 #define NOTSRCCOPY 0x330008
301 #define NOTSRCERASE 0x1100a6
302 #define MERGECOPY 0xc000ca
303 #define MERGEPAINT 0xbb0226
304 #define PATCOPY 0xf00021
305 #define PATPAINT 0xfb0a09
306 #define PATINVERT 0x5a0049
307 #define DSTINVERT 0x550009
308 #define BLACKNESS 0x000042
309 #define WHITENESS 0xff0062
311 /* StretchBlt() modes */
312 #define BLACKONWHITE 1
313 #define WHITEONBLACK 2
314 #define COLORONCOLOR 3
316 #define STRETCH_ANDSCANS BLACKONWHITE
317 #define STRETCH_ORSCANS WHITEONBLACK
318 #define STRETCH_DELETESCANS COLORONCOLOR
320 /* Colors */
322 typedef DWORD COLORREF, *LPCOLORREF;
324 #define RGB(r,g,b) ((COLORREF)((r) | ((g) << 8) | ((b) << 16)))
325 #define PALETTERGB(r,g,b) (0x02000000 | RGB(r,g,b))
326 #define PALETTEINDEX(i) ((COLORREF)(0x01000000 | (WORD)(i)))
328 #define GetRValue(rgb) ((rgb) & 0xff)
329 #define GetGValue(rgb) (((rgb) >> 8) & 0xff)
330 #define GetBValue(rgb) (((rgb) >> 16) & 0xff)
332 #define COLOR_SCROLLBAR 0
333 #define COLOR_BACKGROUND 1
334 #define COLOR_ACTIVECAPTION 2
335 #define COLOR_INACTIVECAPTION 3
336 #define COLOR_MENU 4
337 #define COLOR_WINDOW 5
338 #define COLOR_WINDOWFRAME 6
339 #define COLOR_MENUTEXT 7
340 #define COLOR_WINDOWTEXT 8
341 #define COLOR_CAPTIONTEXT 9
342 #define COLOR_ACTIVEBORDER 10
343 #define COLOR_INACTIVEBORDER 11
344 #define COLOR_APPWORKSPACE 12
345 #define COLOR_HIGHLIGHT 13
346 #define COLOR_HIGHLIGHTTEXT 14
347 #define COLOR_BTNFACE 15
348 #define COLOR_BTNSHADOW 16
349 #define COLOR_GRAYTEXT 17
350 #define COLOR_BTNTEXT 18
351 #define COLOR_INACTIVECAPTIONTEXT 19
352 #define COLOR_BTNHIGHLIGHT 20
353 /* win95 colors */
354 #define COLOR_3DDKSHADOW 21
355 #define COLOR_3DLIGHT 22
356 #define COLOR_INFOTEXT 23
357 #define COLOR_INFOBK 24
358 #define COLOR_DESKTOP COLOR_BACKGROUND
359 #define COLOR_3DFACE COLOR_BTNFACE
360 #define COLOR_3DSHADOW COLOR_BTNSHADOW
361 #define COLOR_3DHIGHLIGHT COLOR_BTNHIGHLIGHT
362 #define COLOR_3DHILIGHT COLOR_BTNHIGHLIGHT
363 #define COLOR_BTNHILIGHT COLOR_BTNHIGHLIGHT
364 /* win98 colors */
365 #define COLOR_ALTERNATEBTNFACE 25 /* undocumented, constant's name unknown */
366 #define COLOR_HOTLIGHT 26
367 #define COLOR_GRADIENTACTIVECAPTION 27
368 #define COLOR_GRADIENTINACTIVECAPTION 28
370 /* WM_CTLCOLOR values */
371 #define CTLCOLOR_MSGBOX 0
372 #define CTLCOLOR_EDIT 1
373 #define CTLCOLOR_LISTBOX 2
374 #define CTLCOLOR_BTN 3
375 #define CTLCOLOR_DLG 4
376 #define CTLCOLOR_SCROLLBAR 5
377 #define CTLCOLOR_STATIC 6
379 #define ICM_OFF 1
380 #define ICM_ON 2
381 #define ICM_QUERY 3
383 /* Bounds Accumulation APIs */
384 #define DCB_RESET 0x0001
385 #define DCB_ACCUMULATE 0x0002
386 #define DCB_DIRTY DCB_ACCUMULATE
387 #define DCB_SET (DCB_RESET | DCB_ACCUMULATE)
388 #define DCB_ENABLE 0x0004
389 #define DCB_DISABLE 0x0008
391 /* Bitmaps */
393 typedef struct
395 INT16 bmType;
396 INT16 bmWidth;
397 INT16 bmHeight;
398 INT16 bmWidthBytes;
399 BYTE bmPlanes;
400 BYTE bmBitsPixel;
401 SEGPTR bmBits WINE_PACKED;
402 } BITMAP16, *LPBITMAP16;
404 typedef struct
406 INT bmType;
407 INT bmWidth;
408 INT bmHeight;
409 INT bmWidthBytes;
410 WORD bmPlanes;
411 WORD bmBitsPixel;
412 LPVOID bmBits WINE_PACKED;
413 } BITMAP, *LPBITMAP;
416 /* Brushes */
418 typedef struct
420 UINT16 lbStyle;
421 COLORREF lbColor WINE_PACKED;
422 INT16 lbHatch;
423 } LOGBRUSH16, *LPLOGBRUSH16;
425 typedef struct
427 UINT lbStyle;
428 COLORREF lbColor;
429 INT lbHatch;
430 } LOGBRUSH, *LPLOGBRUSH;
433 /* Brush styles */
434 #define BS_SOLID 0
435 #define BS_NULL 1
436 #define BS_HOLLOW 1
437 #define BS_HATCHED 2
438 #define BS_PATTERN 3
439 #define BS_INDEXED 4
440 #define BS_DIBPATTERN 5
441 #define BS_DIBPATTERNPT 6
442 #define BS_PATTERN8X8 7
443 #define BS_DIBPATTERN8X8 8
444 #define BS_MONOPATTERN 9
446 /* Hatch styles */
447 #define HS_HORIZONTAL 0
448 #define HS_VERTICAL 1
449 #define HS_FDIAGONAL 2
450 #define HS_BDIAGONAL 3
451 #define HS_CROSS 4
452 #define HS_DIAGCROSS 5
454 /* Fonts */
456 #define LF_FACESIZE 32
457 #define LF_FULLFACESIZE 64
459 #define RASTER_FONTTYPE 0x0001
460 #define DEVICE_FONTTYPE 0x0002
461 #define TRUETYPE_FONTTYPE 0x0004
463 typedef struct
465 INT16 lfHeight;
466 INT16 lfWidth;
467 INT16 lfEscapement;
468 INT16 lfOrientation;
469 INT16 lfWeight;
470 BYTE lfItalic;
471 BYTE lfUnderline;
472 BYTE lfStrikeOut;
473 BYTE lfCharSet;
474 BYTE lfOutPrecision;
475 BYTE lfClipPrecision;
476 BYTE lfQuality;
477 BYTE lfPitchAndFamily;
478 CHAR lfFaceName[LF_FACESIZE] WINE_PACKED;
479 } LOGFONT16, *LPLOGFONT16;
481 typedef struct
483 INT lfHeight;
484 INT lfWidth;
485 INT lfEscapement;
486 INT lfOrientation;
487 INT lfWeight;
488 BYTE lfItalic;
489 BYTE lfUnderline;
490 BYTE lfStrikeOut;
491 BYTE lfCharSet;
492 BYTE lfOutPrecision;
493 BYTE lfClipPrecision;
494 BYTE lfQuality;
495 BYTE lfPitchAndFamily;
496 CHAR lfFaceName[LF_FACESIZE];
497 } LOGFONTA, *PLOGFONTA, *LPLOGFONTA;
499 typedef struct
501 INT lfHeight;
502 INT lfWidth;
503 INT lfEscapement;
504 INT lfOrientation;
505 INT lfWeight;
506 BYTE lfItalic;
507 BYTE lfUnderline;
508 BYTE lfStrikeOut;
509 BYTE lfCharSet;
510 BYTE lfOutPrecision;
511 BYTE lfClipPrecision;
512 BYTE lfQuality;
513 BYTE lfPitchAndFamily;
514 WCHAR lfFaceName[LF_FACESIZE];
515 } LOGFONTW, *PLOGFONTW, *LPLOGFONTW;
517 DECL_WINELIB_TYPE_AW(LOGFONT)
518 DECL_WINELIB_TYPE_AW(PLOGFONT)
519 DECL_WINELIB_TYPE_AW(LPLOGFONT)
521 typedef struct
523 LOGFONT16 elfLogFont;
524 BYTE elfFullName[LF_FULLFACESIZE] WINE_PACKED;
525 BYTE elfStyle[LF_FACESIZE] WINE_PACKED;
526 } ENUMLOGFONT16, *LPENUMLOGFONT16;
528 typedef struct
530 LOGFONTA elfLogFont;
531 BYTE elfFullName[LF_FULLFACESIZE] WINE_PACKED;
532 BYTE elfStyle[LF_FACESIZE] WINE_PACKED;
533 } ENUMLOGFONTA, *LPENUMLOGFONTA;
535 typedef struct
537 LOGFONTW elfLogFont;
538 WCHAR elfFullName[LF_FULLFACESIZE] WINE_PACKED;
539 WCHAR elfStyle[LF_FACESIZE] WINE_PACKED;
540 } ENUMLOGFONTW, *LPENUMLOGFONTW;
542 typedef struct
544 LOGFONT16 elfLogFont;
545 BYTE elfFullName[LF_FULLFACESIZE] WINE_PACKED;
546 BYTE elfStyle[LF_FACESIZE] WINE_PACKED;
547 BYTE elfScript[LF_FACESIZE] WINE_PACKED;
548 } ENUMLOGFONTEX16, *LPENUMLOGFONTEX16;
550 typedef struct
552 LOGFONTA elfLogFont;
553 BYTE elfFullName[LF_FULLFACESIZE] WINE_PACKED;
554 BYTE elfStyle[LF_FACESIZE] WINE_PACKED;
555 BYTE elfScript[LF_FACESIZE] WINE_PACKED;
556 } ENUMLOGFONTEXA,*LPENUMLOGFONTEXA;
558 typedef struct
560 LOGFONTW elfLogFont;
561 WCHAR elfFullName[LF_FULLFACESIZE] WINE_PACKED;
562 WCHAR elfStyle[LF_FACESIZE] WINE_PACKED;
563 WCHAR elfScript[LF_FACESIZE] WINE_PACKED;
564 } ENUMLOGFONTEXW,*LPENUMLOGFONTEXW;
566 DECL_WINELIB_TYPE_AW(ENUMLOGFONT)
567 DECL_WINELIB_TYPE_AW(LPENUMLOGFONT)
568 DECL_WINELIB_TYPE_AW(LPENUMLOGFONTEX)
571 * The FONTSIGNATURE tells which Unicode ranges and which code pages
572 * have glyphs in a font.
574 * fsUsb 128-bit bitmap. The most significant bits are 10 (magic number).
575 * The remaining 126 bits map the Unicode ISO 10646 subranges
576 * for which the font provides glyphs.
578 * fsCsb 64-bit bitmap. The low 32 bits map the Windows codepages for
579 * which the font provides glyphs. The high 32 bits are for
580 * non Windows codepages.
582 typedef struct
584 DWORD fsUsb[4];
585 DWORD fsCsb[2];
586 } FONTSIGNATURE,*LPFONTSIGNATURE;
588 typedef struct
590 UINT ciCharset; /* character set */
591 UINT ciACP; /* ANSI code page */
592 FONTSIGNATURE fs;
593 } CHARSETINFO,*LPCHARSETINFO;
595 /* Flags for TranslateCharsetInfo */
596 #define TCI_SRCCHARSET 1
597 #define TCI_SRCCODEPAGE 2
598 #define TCI_SRCFONTSIG 3
600 /* Flags for ModifyWorldTransform */
601 #define MWT_IDENTITY 1
602 #define MWT_LEFTMULTIPLY 2
603 #define MWT_RIGHTMULTIPLY 3
605 /* Object Definitions for EnumObjects() */
606 #define OBJ_PEN 1
607 #define OBJ_BRUSH 2
608 #define OBJ_DC 3
609 #define OBJ_METADC 4
610 #define OBJ_PAL 5
611 #define OBJ_FONT 6
612 #define OBJ_BITMAP 7
613 #define OBJ_REGION 8
614 #define OBJ_METAFILE 9
615 #define OBJ_MEMDC 10
616 #define OBJ_EXTPEN 11
617 #define OBJ_ENHMETADC 12
618 #define OBJ_ENHMETAFILE 13
621 typedef struct
623 FLOAT eM11;
624 FLOAT eM12;
625 FLOAT eM21;
626 FLOAT eM22;
627 FLOAT eDx;
628 FLOAT eDy;
629 } XFORM, *LPXFORM;
631 typedef struct
633 INT16 txfHeight;
634 INT16 txfWidth;
635 INT16 txfEscapement;
636 INT16 txfOrientation;
637 INT16 txfWeight;
638 CHAR txfItalic;
639 CHAR txfUnderline;
640 CHAR txfStrikeOut;
641 CHAR txfOutPrecision;
642 CHAR txfClipPrecision;
643 INT16 txfAccelerator WINE_PACKED;
644 INT16 txfOverhang WINE_PACKED;
645 } TEXTXFORM16, *LPTEXTXFORM16;
647 typedef struct
649 INT16 dfType;
650 INT16 dfPoints;
651 INT16 dfVertRes;
652 INT16 dfHorizRes;
653 INT16 dfAscent;
654 INT16 dfInternalLeading;
655 INT16 dfExternalLeading;
656 CHAR dfItalic;
657 CHAR dfUnderline;
658 CHAR dfStrikeOut;
659 INT16 dfWeight;
660 BYTE dfCharSet;
661 INT16 dfPixWidth;
662 INT16 dfPixHeight;
663 CHAR dfPitchAndFamily;
664 INT16 dfAvgWidth;
665 INT16 dfMaxWidth;
666 CHAR dfFirstChar;
667 CHAR dfLastChar;
668 CHAR dfDefaultChar;
669 CHAR dfBreakChar;
670 INT16 dfWidthBytes;
671 LONG dfDevice;
672 LONG dfFace;
673 LONG dfBitsPointer;
674 LONG dfBitsOffset;
675 CHAR dfReserved;
676 LONG dfFlags;
677 INT16 dfAspace;
678 INT16 dfBspace;
679 INT16 dfCspace;
680 LONG dfColorPointer;
681 LONG dfReserved1[4];
682 } FONTINFO16, *LPFONTINFO16;
684 /* lfWeight values */
685 #define FW_DONTCARE 0
686 #define FW_THIN 100
687 #define FW_EXTRALIGHT 200
688 #define FW_ULTRALIGHT 200
689 #define FW_LIGHT 300
690 #define FW_NORMAL 400
691 #define FW_REGULAR 400
692 #define FW_MEDIUM 500
693 #define FW_SEMIBOLD 600
694 #define FW_DEMIBOLD 600
695 #define FW_BOLD 700
696 #define FW_EXTRABOLD 800
697 #define FW_ULTRABOLD 800
698 #define FW_HEAVY 900
699 #define FW_BLACK 900
701 /* lfCharSet values */
702 #define ANSI_CHARSET (BYTE)0 /* CP1252, ansi-0, iso8859-{1,15} */
703 #define DEFAULT_CHARSET (BYTE)1
704 #define SYMBOL_CHARSET (BYTE)2
705 #define SHIFTJIS_CHARSET (BYTE)128 /* CP932 */
706 #define HANGEUL_CHARSET (BYTE)129 /* CP949, ksc5601.1987-0 */
707 #define HANGUL_CHARSET HANGEUL_CHARSET
708 #define GB2312_CHARSET (BYTE)134 /* CP936, gb2312.1980-0 */
709 #define CHINESEBIG5_CHARSET (BYTE)136 /* CP950, big5.et-0 */
710 #define GREEK_CHARSET (BYTE)161 /* CP1253 */
711 #define TURKISH_CHARSET (BYTE)162 /* CP1254, -iso8859-9 */
712 #define HEBREW_CHARSET (BYTE)177 /* CP1255, -iso8859-8 */
713 #define ARABIC_CHARSET (BYTE)178 /* CP1256, -iso8859-6 */
714 #define BALTIC_CHARSET (BYTE)186 /* CP1257, -iso8859-10 */
715 #define RUSSIAN_CHARSET (BYTE)204 /* CP1251, -iso8859-5 */
716 #define EE_CHARSET (BYTE)238 /* CP1250, -iso8859-2 */
717 #define EASTEUROPE_CHARSET EE_CHARSET
718 #define THAI_CHARSET (BYTE)222 /* CP874, iso8859-11, tis620 */
719 #define JOHAB_CHARSET (BYTE)130 /* korean (johab) CP1361 */
720 #define OEM_CHARSET (BYTE)255
721 /* I don't know if the values of *_CHARSET macros are defined in Windows
722 * or if we can choose them as we want. -- srtxg
724 #define VISCII_CHARSET (BYTE)240 /* viscii1.1-1 */
725 #define TCVN_CHARSET (BYTE)241 /* tcvn-0 */
726 #define KOI8_CHARSET (BYTE)242 /* koi8-{r,u,ru} */
727 #define ISO3_CHARSET (BYTE)243 /* iso8859-3 */
728 #define ISO4_CHARSET (BYTE)244 /* iso8859-4 */
730 /* lfOutPrecision values */
731 #define OUT_DEFAULT_PRECIS 0
732 #define OUT_STRING_PRECIS 1
733 #define OUT_CHARACTER_PRECIS 2
734 #define OUT_STROKE_PRECIS 3
735 #define OUT_TT_PRECIS 4
736 #define OUT_DEVICE_PRECIS 5
737 #define OUT_RASTER_PRECIS 6
738 #define OUT_TT_ONLY_PRECIS 7
740 /* lfClipPrecision values */
741 #define CLIP_DEFAULT_PRECIS 0x00
742 #define CLIP_CHARACTER_PRECIS 0x01
743 #define CLIP_STROKE_PRECIS 0x02
744 #define CLIP_MASK 0x0F
745 #define CLIP_LH_ANGLES 0x10
746 #define CLIP_TT_ALWAYS 0x20
747 #define CLIP_EMBEDDED 0x80
749 /* lfQuality values */
750 #define DEFAULT_QUALITY 0
751 #define DRAFT_QUALITY 1
752 #define PROOF_QUALITY 2
754 /* lfPitchAndFamily pitch values */
755 #define DEFAULT_PITCH 0x00
756 #define FIXED_PITCH 0x01
757 #define VARIABLE_PITCH 0x02
758 #define FF_DONTCARE 0x00
759 #define FF_ROMAN 0x10
760 #define FF_SWISS 0x20
761 #define FF_MODERN 0x30
762 #define FF_SCRIPT 0x40
763 #define FF_DECORATIVE 0x50
765 typedef struct
767 INT16 tmHeight;
768 INT16 tmAscent;
769 INT16 tmDescent;
770 INT16 tmInternalLeading;
771 INT16 tmExternalLeading;
772 INT16 tmAveCharWidth;
773 INT16 tmMaxCharWidth;
774 INT16 tmWeight;
775 BYTE tmItalic;
776 BYTE tmUnderlined;
777 BYTE tmStruckOut;
778 BYTE tmFirstChar;
779 BYTE tmLastChar;
780 BYTE tmDefaultChar;
781 BYTE tmBreakChar;
782 BYTE tmPitchAndFamily;
783 BYTE tmCharSet;
784 INT16 tmOverhang WINE_PACKED;
785 INT16 tmDigitizedAspectX WINE_PACKED;
786 INT16 tmDigitizedAspectY WINE_PACKED;
787 } TEXTMETRIC16, *LPTEXTMETRIC16;
789 typedef struct
791 INT tmHeight;
792 INT tmAscent;
793 INT tmDescent;
794 INT tmInternalLeading;
795 INT tmExternalLeading;
796 INT tmAveCharWidth;
797 INT tmMaxCharWidth;
798 INT tmWeight;
799 INT tmOverhang;
800 INT tmDigitizedAspectX;
801 INT tmDigitizedAspectY;
802 BYTE tmFirstChar;
803 BYTE tmLastChar;
804 BYTE tmDefaultChar;
805 BYTE tmBreakChar;
806 BYTE tmItalic;
807 BYTE tmUnderlined;
808 BYTE tmStruckOut;
809 BYTE tmPitchAndFamily;
810 BYTE tmCharSet;
811 } TEXTMETRICA, *LPTEXTMETRICA;
813 typedef struct
815 INT tmHeight;
816 INT tmAscent;
817 INT tmDescent;
818 INT tmInternalLeading;
819 INT tmExternalLeading;
820 INT tmAveCharWidth;
821 INT tmMaxCharWidth;
822 INT tmWeight;
823 INT tmOverhang;
824 INT tmDigitizedAspectX;
825 INT tmDigitizedAspectY;
826 WCHAR tmFirstChar;
827 WCHAR tmLastChar;
828 WCHAR tmDefaultChar;
829 WCHAR tmBreakChar;
830 BYTE tmItalic;
831 BYTE tmUnderlined;
832 BYTE tmStruckOut;
833 BYTE tmPitchAndFamily;
834 BYTE tmCharSet;
835 } TEXTMETRICW, *LPTEXTMETRICW;
837 DECL_WINELIB_TYPE_AW(TEXTMETRIC)
838 DECL_WINELIB_TYPE_AW(LPTEXTMETRIC)
841 typedef struct tagPANOSE
843 BYTE bFamilyType;
844 BYTE bSerifStyle;
845 BYTE bWeight;
846 BYTE bProportion;
847 BYTE bContrast;
848 BYTE bStrokeVariation;
849 BYTE bArmStyle;
850 BYTE bLetterform;
851 BYTE bMidline;
852 BYTE bXHeight;
853 } PANOSE;
856 typedef struct _OUTLINETEXTMETRICA
858 UINT otmSize;
859 TEXTMETRICA otmTextMetrics;
860 BYTE otmFilter;
861 PANOSE otmPanoseNumber;
862 UINT otmfsSelection;
863 UINT otmfsType;
864 INT otmsCharSlopeRise;
865 INT otmsCharSlopeRun;
866 INT otmItalicAngle;
867 UINT otmEMSquare;
868 INT otmAscent;
869 INT otmDescent;
870 UINT otmLineGap;
871 UINT otmsCapEmHeight;
872 UINT otmsXHeight;
873 RECT otmrcFontBox;
874 INT otmMacAscent;
875 INT otmMacDescent;
876 UINT otmMacLineGap;
877 UINT otmusMinimumPPEM;
878 POINT otmptSubscriptSize;
879 POINT otmptSubscriptOffset;
880 POINT otmptSuperscriptSize;
881 POINT otmptSuperscriptOffset;
882 UINT otmsStrikeoutSize;
883 INT otmsStrikeoutPosition;
884 INT otmsUnderscoreSize;
885 INT otmsUnderscorePosition;
886 LPSTR otmpFamilyName;
887 LPSTR otmpFaceName;
888 LPSTR otmpStyleName;
889 LPSTR otmpFullName;
890 } OUTLINETEXTMETRICA, *LPOUTLINETEXTMETRICA;
892 typedef struct _OUTLINETEXTMETRICW
894 UINT otmSize;
895 TEXTMETRICW otmTextMetrics;
896 BYTE otmFilter;
897 PANOSE otmPanoseNumber;
898 UINT otmfsSelection;
899 UINT otmfsType;
900 INT otmsCharSlopeRise;
901 INT otmsCharSlopeRun;
902 INT otmItalicAngle;
903 UINT otmEMSquare;
904 INT otmAscent;
905 INT otmDescent;
906 UINT otmLineGap;
907 UINT otmsCapEmHeight;
908 UINT otmsXHeight;
909 RECT otmrcFontBox;
910 INT otmMacAscent;
911 INT otmMacDescent;
912 UINT otmMacLineGap;
913 UINT otmusMinimumPPEM;
914 POINT otmptSubscriptSize;
915 POINT otmptSubscriptOffset;
916 POINT otmptSuperscriptSize;
917 POINT otmptSuperscriptOffset;
918 UINT otmsStrikeoutSize;
919 INT otmsStrikeoutPosition;
920 INT otmsUnderscoreSize;
921 INT otmsUnderscorePosition;
922 LPSTR otmpFamilyName;
923 LPSTR otmpFaceName;
924 LPSTR otmpStyleName;
925 LPSTR otmpFullName;
926 } OUTLINETEXTMETRICW, *LPOUTLINETEXTMETRICW;
928 typedef struct _OUTLINETEXTMETRIC16
930 UINT16 otmSize;
931 TEXTMETRIC16 otmTextMetrics;
932 BYTE otmFilter;
933 PANOSE otmPanoseNumber;
934 UINT16 otmfsSelection;
935 UINT16 otmfsType;
936 INT16 otmsCharSlopeRise;
937 INT16 otmsCharSlopeRun;
938 INT16 otmItalicAngle;
939 UINT16 otmEMSquare;
940 INT16 otmAscent;
941 INT16 otmDescent;
942 UINT16 otmLineGap;
943 UINT16 otmsCapEmHeight;
944 UINT16 otmsXHeight;
945 RECT16 otmrcFontBox;
946 INT16 otmMacAscent;
947 INT16 otmMacDescent;
948 UINT16 otmMacLineGap;
949 UINT16 otmusMinimumPPEM;
950 POINT16 otmptSubscriptSize;
951 POINT16 otmptSubscriptOffset;
952 POINT16 otmptSuperscriptSize;
953 POINT16 otmptSuperscriptOffset;
954 UINT16 otmsStrikeoutSize;
955 INT16 otmsStrikeoutPosition;
956 INT16 otmsUnderscoreSize;
957 INT otmsUnderscorePosition;
958 LPSTR otmpFamilyName;
959 LPSTR otmpFaceName;
960 LPSTR otmpStyleName;
961 LPSTR otmpFullName;
962 } OUTLINETEXTMETRIC16,*LPOUTLINETEXTMETRIC16;
964 DECL_WINELIB_TYPE_AW(OUTLINETEXTMETRIC)
965 DECL_WINELIB_TYPE_AW(LPOUTLINETEXTMETRIC)
969 /* ntmFlags field flags */
970 #define NTM_REGULAR 0x00000040L
971 #define NTM_BOLD 0x00000020L
972 #define NTM_ITALIC 0x00000001L
974 typedef struct
976 INT16 tmHeight;
977 INT16 tmAscent;
978 INT16 tmDescent;
979 INT16 tmInternalLeading;
980 INT16 tmExternalLeading;
981 INT16 tmAveCharWidth;
982 INT16 tmMaxCharWidth;
983 INT16 tmWeight;
984 BYTE tmItalic;
985 BYTE tmUnderlined;
986 BYTE tmStruckOut;
987 BYTE tmFirstChar;
988 BYTE tmLastChar;
989 BYTE tmDefaultChar;
990 BYTE tmBreakChar;
991 BYTE tmPitchAndFamily;
992 BYTE tmCharSet;
993 INT16 tmOverhang WINE_PACKED;
994 INT16 tmDigitizedAspectX WINE_PACKED;
995 INT16 tmDigitizedAspectY WINE_PACKED;
996 DWORD ntmFlags;
997 UINT16 ntmSizeEM;
998 UINT16 ntmCellHeight;
999 UINT16 ntmAvgWidth;
1000 } NEWTEXTMETRIC16,*LPNEWTEXTMETRIC16;
1002 typedef struct
1004 INT tmHeight;
1005 INT tmAscent;
1006 INT tmDescent;
1007 INT tmInternalLeading;
1008 INT tmExternalLeading;
1009 INT tmAveCharWidth;
1010 INT tmMaxCharWidth;
1011 INT tmWeight;
1012 INT tmOverhang;
1013 INT tmDigitizedAspectX;
1014 INT tmDigitizedAspectY;
1015 BYTE tmFirstChar;
1016 BYTE tmLastChar;
1017 BYTE tmDefaultChar;
1018 BYTE tmBreakChar;
1019 BYTE tmItalic;
1020 BYTE tmUnderlined;
1021 BYTE tmStruckOut;
1022 BYTE tmPitchAndFamily;
1023 BYTE tmCharSet;
1024 DWORD ntmFlags;
1025 UINT ntmSizeEM;
1026 UINT ntmCellHeight;
1027 UINT ntmAvgWidth;
1028 } NEWTEXTMETRICA, *LPNEWTEXTMETRICA;
1030 typedef struct
1032 INT tmHeight;
1033 INT tmAscent;
1034 INT tmDescent;
1035 INT tmInternalLeading;
1036 INT tmExternalLeading;
1037 INT tmAveCharWidth;
1038 INT tmMaxCharWidth;
1039 INT tmWeight;
1040 INT tmOverhang;
1041 INT tmDigitizedAspectX;
1042 INT tmDigitizedAspectY;
1043 WCHAR tmFirstChar;
1044 WCHAR tmLastChar;
1045 WCHAR tmDefaultChar;
1046 WCHAR tmBreakChar;
1047 BYTE tmItalic;
1048 BYTE tmUnderlined;
1049 BYTE tmStruckOut;
1050 BYTE tmPitchAndFamily;
1051 BYTE tmCharSet;
1052 DWORD ntmFlags;
1053 UINT ntmSizeEM;
1054 UINT ntmCellHeight;
1055 UINT ntmAvgWidth;
1056 } NEWTEXTMETRICW, *LPNEWTEXTMETRICW;
1058 DECL_WINELIB_TYPE_AW(NEWTEXTMETRIC)
1059 DECL_WINELIB_TYPE_AW(LPNEWTEXTMETRIC)
1061 typedef struct
1063 NEWTEXTMETRIC16 ntmetm;
1064 FONTSIGNATURE ntmeFontSignature;
1065 } NEWTEXTMETRICEX16,*LPNEWTEXTMETRICEX16;
1067 typedef struct
1069 NEWTEXTMETRICA ntmetm;
1070 FONTSIGNATURE ntmeFontSignature;
1071 } NEWTEXTMETRICEXA,*LPNEWTEXTMETRICEXA;
1073 typedef struct
1075 NEWTEXTMETRICW ntmetm;
1076 FONTSIGNATURE ntmeFontSignature;
1077 } NEWTEXTMETRICEXW,*LPNEWTEXTMETRICEXW;
1079 DECL_WINELIB_TYPE_AW(NEWTEXTMETRICEX)
1080 DECL_WINELIB_TYPE_AW(LPNEWTEXTMETRICEX)
1083 typedef INT16 (CALLBACK *FONTENUMPROC16)(SEGPTR,SEGPTR,UINT16,LPARAM);
1084 typedef INT (CALLBACK *FONTENUMPROCA)(LPENUMLOGFONTA,LPNEWTEXTMETRICA,
1085 UINT,LPARAM);
1086 typedef INT (CALLBACK *FONTENUMPROCW)(LPENUMLOGFONTW,LPNEWTEXTMETRICW,
1087 UINT,LPARAM);
1088 DECL_WINELIB_TYPE_AW(FONTENUMPROC)
1090 typedef INT16 (CALLBACK *FONTENUMPROCEX16)(SEGPTR,SEGPTR,UINT16,LPARAM);
1091 typedef INT (CALLBACK *FONTENUMPROCEXA)(LPENUMLOGFONTEXA,LPNEWTEXTMETRICEXA,UINT,LPARAM);
1092 typedef INT (CALLBACK *FONTENUMPROCEXW)(LPENUMLOGFONTEXW,LPNEWTEXTMETRICEXW,UINT,LPARAM);
1093 DECL_WINELIB_TYPE_AW(FONTENUMPROCEX)
1095 /* tmPitchAndFamily bits */
1096 #define TMPF_FIXED_PITCH 1 /* means variable pitch */
1097 #define TMPF_VECTOR 2
1098 #define TMPF_TRUETYPE 4
1099 #define TMPF_DEVICE 8
1101 /* Text alignment */
1102 #define TA_NOUPDATECP 0x00
1103 #define TA_UPDATECP 0x01
1104 #define TA_LEFT 0x00
1105 #define TA_RIGHT 0x02
1106 #define TA_CENTER 0x06
1107 #define TA_TOP 0x00
1108 #define TA_BOTTOM 0x08
1109 #define TA_BASELINE 0x18
1111 /* ExtTextOut() parameters */
1112 #define ETO_GRAYED 0x01
1113 #define ETO_OPAQUE 0x02
1114 #define ETO_CLIPPED 0x04
1116 typedef struct
1118 UINT16 gmBlackBoxX;
1119 UINT16 gmBlackBoxY;
1120 POINT16 gmptGlyphOrigin;
1121 INT16 gmCellIncX;
1122 INT16 gmCellIncY;
1123 } GLYPHMETRICS16, *LPGLYPHMETRICS16;
1125 typedef struct
1127 UINT gmBlackBoxX;
1128 UINT gmBlackBoxY;
1129 POINT gmptGlyphOrigin;
1130 INT16 gmCellIncX;
1131 INT16 gmCellIncY;
1132 } GLYPHMETRICS, *LPGLYPHMETRICS;
1135 #define GGO_METRICS 0
1136 #define GGO_BITMAP 1
1137 #define GGO_NATIVE 2
1139 typedef struct
1141 UINT16 fract;
1142 INT16 value;
1143 } FIXED;
1145 typedef struct tagPOINTFX
1147 FIXED x;
1148 FIXED y;
1149 } POINTFX, *LPPOINTFX;
1151 typedef struct tagTTPOLYCURVE
1153 WORD wType;
1154 WORD cpfx;
1155 POINTFX apfx[1];
1156 } TTPOLYCURVE, *LPTTPOLYCURVE;
1158 typedef struct tagTTPOLYGONHEADER
1160 DWORD cb;
1161 DWORD dwType;
1162 POINTFX pfxStart;
1163 } TTPOLYGONHEADER, *LPTTPOLYGONHEADER;
1165 typedef struct
1167 FIXED eM11;
1168 FIXED eM12;
1169 FIXED eM21;
1170 FIXED eM22;
1171 } MAT2, *LPMAT2;
1173 /* for GetCharABCWidths() */
1174 typedef struct
1176 INT16 abcA;
1177 UINT16 abcB;
1178 INT16 abcC;
1179 } ABC16, *LPABC16;
1181 typedef struct
1183 INT abcA;
1184 UINT abcB;
1185 INT abcC;
1186 } ABC, *LPABC;
1189 /* for GetCharacterPlacement () */
1190 typedef struct tagGCP_RESULTSA
1192 DWORD lStructSize;
1193 LPSTR lpOutString;
1194 UINT *lpOrder;
1195 INT *lpDx;
1196 INT *lpCaretPos;
1197 LPSTR lpClass;
1198 UINT *lpGlyphs;
1199 UINT nGlyphs;
1200 UINT nMaxFit;
1201 } GCP_RESULTSA;
1203 typedef struct tagGCP_RESULTSW
1205 DWORD lStructSize;
1206 LPWSTR lpOutString;
1207 UINT *lpOrder;
1208 INT *lpDx;
1209 INT *lpCaretPos;
1210 LPWSTR lpClass;
1211 UINT *lpGlyphs;
1212 UINT nGlyphs;
1213 UINT nMaxFit;
1214 } GCP_RESULTSW;
1216 DECL_WINELIB_TYPE_AW(GCP_RESULTS)
1218 /* Rasterizer status */
1219 typedef struct
1221 INT16 nSize;
1222 INT16 wFlags;
1223 INT16 nLanguageID;
1224 } RASTERIZER_STATUS, *LPRASTERIZER_STATUS;
1226 #define TT_AVAILABLE 0x0001
1227 #define TT_ENABLED 0x0002
1229 /* Get/SetSystemPaletteUse() values */
1230 #define SYSPAL_STATIC 1
1231 #define SYSPAL_NOSTATIC 2
1233 typedef struct tagPALETTEENTRY
1235 BYTE peRed, peGreen, peBlue, peFlags;
1236 } PALETTEENTRY, *PPALETTEENTRY, *LPPALETTEENTRY;
1238 /* Logical palette entry flags */
1239 #define PC_RESERVED 0x01
1240 #define PC_EXPLICIT 0x02
1241 #define PC_NOCOLLAPSE 0x04
1243 typedef struct
1245 WORD palVersion;
1246 WORD palNumEntries;
1247 PALETTEENTRY palPalEntry[1] WINE_PACKED;
1248 } LOGPALETTE, *PLOGPALETTE, *LPLOGPALETTE;
1250 /* Pens */
1252 typedef struct
1254 UINT16 lopnStyle;
1255 POINT16 lopnWidth WINE_PACKED;
1256 COLORREF lopnColor WINE_PACKED;
1257 } LOGPEN16, *LPLOGPEN16;
1259 typedef struct
1261 UINT lopnStyle;
1262 POINT lopnWidth WINE_PACKED;
1263 COLORREF lopnColor WINE_PACKED;
1264 } LOGPEN, *LPLOGPEN;
1267 typedef struct tagEXTLOGPEN
1269 DWORD elpPenStyle;
1270 DWORD elpWidth;
1271 DWORD elpBrushStyle;
1272 DWORD elpColor;
1273 DWORD elpNumEntries;
1274 DWORD elpStyleEntry[1];
1275 } EXTLOGPEN, *PEXTLOGPEN, *NPEXTLOGPEN, *LPEXTLOGPEN;
1277 #define PS_SOLID 0x00000000
1278 #define PS_DASH 0x00000001
1279 #define PS_DOT 0x00000002
1280 #define PS_DASHDOT 0x00000003
1281 #define PS_DASHDOTDOT 0x00000004
1282 #define PS_NULL 0x00000005
1283 #define PS_INSIDEFRAME 0x00000006
1284 #define PS_USERSTYLE 0x00000007
1285 #define PS_ALTERNATE 0x00000008
1286 #define PS_STYLE_MASK 0x0000000f
1288 #define PS_ENDCAP_ROUND 0x00000000
1289 #define PS_ENDCAP_SQUARE 0x00000100
1290 #define PS_ENDCAP_FLAT 0x00000200
1291 #define PS_ENDCAP_MASK 0x00000f00
1293 #define PS_JOIN_ROUND 0x00000000
1294 #define PS_JOIN_BEVEL 0x00001000
1295 #define PS_JOIN_MITER 0x00002000
1296 #define PS_JOIN_MASK 0x0000f000
1298 #define PS_COSMETIC 0x00000000
1299 #define PS_GEOMETRIC 0x00010000
1300 #define PS_TYPE_MASK 0x000f0000
1302 /* Regions */
1304 #define ERROR 0
1305 #define NULLREGION 1
1306 #define SIMPLEREGION 2
1307 #define COMPLEXREGION 3
1309 #define RGN_AND 1
1310 #define RGN_OR 2
1311 #define RGN_XOR 3
1312 #define RGN_DIFF 4
1313 #define RGN_COPY 5
1315 /* Device contexts */
1317 /* GetDCEx flags */
1318 #define DCX_WINDOW 0x00000001
1319 #define DCX_CACHE 0x00000002
1320 #define DCX_CLIPCHILDREN 0x00000008
1321 #define DCX_CLIPSIBLINGS 0x00000010
1322 #define DCX_PARENTCLIP 0x00000020
1323 #define DCX_EXCLUDERGN 0x00000040
1324 #define DCX_INTERSECTRGN 0x00000080
1325 #define DCX_LOCKWINDOWUPDATE 0x00000400
1326 #define DCX_USESTYLE 0x00010000
1328 /* Polygon modes */
1329 #define ALTERNATE 1
1330 #define WINDING 2
1332 /* Background modes */
1333 #ifdef TRANSPARENT /*Apparently some broken svr4 includes define TRANSPARENT*/
1334 #undef TRANSPARENT
1335 #endif
1336 #define TRANSPARENT 1
1337 #define OPAQUE 2
1340 /* Graphics Modes */
1341 #define GM_COMPATIBLE 1
1342 #define GM_ADVANCED 2
1343 #define GM_LAST 2
1345 /* Arc direction modes */
1346 #define AD_COUNTERCLOCKWISE 1
1347 #define AD_CLOCKWISE 2
1349 /* Map modes */
1350 #define MM_TEXT 1
1351 #define MM_LOMETRIC 2
1352 #define MM_HIMETRIC 3
1353 #define MM_LOENGLISH 4
1354 #define MM_HIENGLISH 5
1355 #define MM_TWIPS 6
1356 #define MM_ISOTROPIC 7
1357 #define MM_ANISOTROPIC 8
1359 /* Coordinate modes */
1360 #define ABSOLUTE 1
1361 #define RELATIVE 2
1363 /* Flood fill modes */
1364 #define FLOODFILLBORDER 0
1365 #define FLOODFILLSURFACE 1
1367 /* Device parameters for GetDeviceCaps() */
1368 #define DRIVERVERSION 0
1369 #define TECHNOLOGY 2
1370 #define HORZSIZE 4
1371 #define VERTSIZE 6
1372 #define HORZRES 8
1373 #define VERTRES 10
1374 #define BITSPIXEL 12
1375 #define PLANES 14
1376 #define NUMBRUSHES 16
1377 #define NUMPENS 18
1378 #define NUMMARKERS 20
1379 #define NUMFONTS 22
1380 #define NUMCOLORS 24
1381 #define PDEVICESIZE 26
1382 #define CURVECAPS 28
1383 #define LINECAPS 30
1384 #define POLYGONALCAPS 32
1385 #define TEXTCAPS 34
1386 #define CLIPCAPS 36
1387 #define RASTERCAPS 38
1388 #define ASPECTX 40
1389 #define ASPECTY 42
1390 #define ASPECTXY 44
1391 #define LOGPIXELSX 88
1392 #define LOGPIXELSY 90
1393 #define SIZEPALETTE 104
1394 #define NUMRESERVED 106
1395 #define COLORRES 108
1397 /* TECHNOLOGY */
1398 #define DT_PLOTTER 0
1399 #define DT_RASDISPLAY 1
1400 #define DT_RASPRINTER 2
1401 #define DT_RASCAMERA 3
1402 #define DT_CHARSTREAM 4
1403 #define DT_METAFILE 5
1404 #define DT_DISPFILE 6
1406 /* CURVECAPS */
1407 #define CC_NONE 0x0000
1408 #define CC_CIRCLES 0x0001
1409 #define CC_PIE 0x0002
1410 #define CC_CHORD 0x0004
1411 #define CC_ELLIPSES 0x0008
1412 #define CC_WIDE 0x0010
1413 #define CC_STYLED 0x0020
1414 #define CC_WIDESTYLED 0x0040
1415 #define CC_INTERIORS 0x0080
1416 #define CC_ROUNDRECT 0x0100
1418 /* LINECAPS */
1419 #define LC_NONE 0x0000
1420 #define LC_POLYLINE 0x0002
1421 #define LC_MARKER 0x0004
1422 #define LC_POLYMARKER 0x0008
1423 #define LC_WIDE 0x0010
1424 #define LC_STYLED 0x0020
1425 #define LC_WIDESTYLED 0x0040
1426 #define LC_INTERIORS 0x0080
1428 /* POLYGONALCAPS */
1429 #define PC_NONE 0x0000
1430 #define PC_POLYGON 0x0001
1431 #define PC_RECTANGLE 0x0002
1432 #define PC_WINDPOLYGON 0x0004
1433 #define PC_SCANLINE 0x0008
1434 #define PC_WIDE 0x0010
1435 #define PC_STYLED 0x0020
1436 #define PC_WIDESTYLED 0x0040
1437 #define PC_INTERIORS 0x0080
1439 /* TEXTCAPS */
1440 #define TC_OP_CHARACTER 0x0001
1441 #define TC_OP_STROKE 0x0002
1442 #define TC_CP_STROKE 0x0004
1443 #define TC_CR_90 0x0008
1444 #define TC_CR_ANY 0x0010
1445 #define TC_SF_X_YINDEP 0x0020
1446 #define TC_SA_DOUBLE 0x0040
1447 #define TC_SA_INTEGER 0x0080
1448 #define TC_SA_CONTIN 0x0100
1449 #define TC_EA_DOUBLE 0x0200
1450 #define TC_IA_ABLE 0x0400
1451 #define TC_UA_ABLE 0x0800
1452 #define TC_SO_ABLE 0x1000
1453 #define TC_RA_ABLE 0x2000
1454 #define TC_VA_ABLE 0x4000
1455 #define TC_RESERVED 0x8000
1457 /* CLIPCAPS */
1458 #define CP_NONE 0x0000
1459 #define CP_RECTANGLE 0x0001
1460 #define CP_REGION 0x0002
1462 /* RASTERCAPS */
1463 #define RC_NONE 0x0000
1464 #define RC_BITBLT 0x0001
1465 #define RC_BANDING 0x0002
1466 #define RC_SCALING 0x0004
1467 #define RC_BITMAP64 0x0008
1468 #define RC_GDI20_OUTPUT 0x0010
1469 #define RC_GDI20_STATE 0x0020
1470 #define RC_SAVEBITMAP 0x0040
1471 #define RC_DI_BITMAP 0x0080
1472 #define RC_PALETTE 0x0100
1473 #define RC_DIBTODEV 0x0200
1474 #define RC_BIGFONT 0x0400
1475 #define RC_STRETCHBLT 0x0800
1476 #define RC_FLOODFILL 0x1000
1477 #define RC_STRETCHDIB 0x2000
1478 #define RC_OP_DX_OUTPUT 0x4000
1479 #define RC_DEVBITS 0x8000
1481 /* GetSystemMetrics() codes */
1482 #define SM_CXSCREEN 0
1483 #define SM_CYSCREEN 1
1484 #define SM_CXVSCROLL 2
1485 #define SM_CYHSCROLL 3
1486 #define SM_CYCAPTION 4
1487 #define SM_CXBORDER 5
1488 #define SM_CYBORDER 6
1489 #define SM_CXDLGFRAME 7
1490 #define SM_CYDLGFRAME 8
1491 #define SM_CYVTHUMB 9
1492 #define SM_CXHTHUMB 10
1493 #define SM_CXICON 11
1494 #define SM_CYICON 12
1495 #define SM_CXCURSOR 13
1496 #define SM_CYCURSOR 14
1497 #define SM_CYMENU 15
1498 #define SM_CXFULLSCREEN 16
1499 #define SM_CYFULLSCREEN 17
1500 #define SM_CYKANJIWINDOW 18
1501 #define SM_MOUSEPRESENT 19
1502 #define SM_CYVSCROLL 20
1503 #define SM_CXHSCROLL 21
1504 #define SM_DEBUG 22
1505 #define SM_SWAPBUTTON 23
1506 #define SM_RESERVED1 24
1507 #define SM_RESERVED2 25
1508 #define SM_RESERVED3 26
1509 #define SM_RESERVED4 27
1510 #define SM_CXMIN 28
1511 #define SM_CYMIN 29
1512 #define SM_CXSIZE 30
1513 #define SM_CYSIZE 31
1514 #define SM_CXFRAME 32
1515 #define SM_CYFRAME 33
1516 #define SM_CXMINTRACK 34
1517 #define SM_CYMINTRACK 35
1518 #define SM_CXDOUBLECLK 36
1519 #define SM_CYDOUBLECLK 37
1520 #define SM_CXICONSPACING 38
1521 #define SM_CYICONSPACING 39
1522 #define SM_MENUDROPALIGNMENT 40
1523 #define SM_PENWINDOWS 41
1524 #define SM_DBCSENABLED 42
1525 #define SM_CMOUSEBUTTONS 43
1526 #define SM_CXFIXEDFRAME SM_CXDLGFRAME
1527 #define SM_CYFIXEDFRAME SM_CYDLGFRAME
1528 #define SM_CXSIZEFRAME SM_CXFRAME
1529 #define SM_CYSIZEFRAME SM_CYFRAME
1530 #define SM_SECURE 44
1531 #define SM_CXEDGE 45
1532 #define SM_CYEDGE 46
1533 #define SM_CXMINSPACING 47
1534 #define SM_CYMINSPACING 48
1535 #define SM_CXSMICON 49
1536 #define SM_CYSMICON 50
1537 #define SM_CYSMCAPTION 51
1538 #define SM_CXSMSIZE 52
1539 #define SM_CYSMSIZE 53
1540 #define SM_CXMENUSIZE 54
1541 #define SM_CYMENUSIZE 55
1542 #define SM_ARRANGE 56
1543 #define SM_CXMINIMIZED 57
1544 #define SM_CYMINIMIZED 58
1545 #define SM_CXMAXTRACK 59
1546 #define SM_CYMAXTRACK 60
1547 #define SM_CXMAXIMIZED 61
1548 #define SM_CYMAXIMIZED 62
1549 #define SM_NETWORK 63
1550 #define SM_CLEANBOOT 67
1551 #define SM_CXDRAG 68
1552 #define SM_CYDRAG 69
1553 #define SM_SHOWSOUNDS 70
1554 #define SM_CXMENUCHECK 71
1555 #define SM_CYMENUCHECK 72
1556 #define SM_SLOWMACHINE 73
1557 #define SM_MIDEASTENABLED 74
1558 #define SM_MOUSEWHEELPRESENT 75
1559 #define SM_XVIRTUALSCREEN 76
1560 #define SM_YVIRTUALSCREEN 77
1561 #define SM_CXVIRTUALSCREEN 78
1562 #define SM_CYVIRTUALSCREEN 79
1563 #define SM_CMONITORS 80
1564 #define SM_SAMEDISPLAYFORMAT 81
1565 #define SM_CMETRICS 83
1568 /* Device-independent bitmaps */
1570 typedef struct {
1571 BYTE rgbBlue;
1572 BYTE rgbGreen;
1573 BYTE rgbRed;
1574 BYTE rgbReserved;
1575 } RGBQUAD, *LPRGBQUAD;
1577 typedef struct {
1578 BYTE rgbtBlue;
1579 BYTE rgbtGreen;
1580 BYTE rgbtRed;
1581 } RGBTRIPLE;
1583 typedef struct
1585 UINT16 bfType;
1586 DWORD bfSize WINE_PACKED;
1587 UINT16 bfReserved1 WINE_PACKED;
1588 UINT16 bfReserved2 WINE_PACKED;
1589 DWORD bfOffBits WINE_PACKED;
1590 } BITMAPFILEHEADER;
1592 typedef struct
1594 DWORD biSize;
1595 LONG biWidth;
1596 LONG biHeight;
1597 WORD biPlanes;
1598 WORD biBitCount;
1599 DWORD biCompression;
1600 DWORD biSizeImage;
1601 LONG biXPelsPerMeter;
1602 LONG biYPelsPerMeter;
1603 DWORD biClrUsed;
1604 DWORD biClrImportant;
1605 } BITMAPINFOHEADER, *PBITMAPINFOHEADER, *LPBITMAPINFOHEADER;
1607 /* biCompression */
1608 #define BI_RGB 0
1609 #define BI_RLE8 1
1610 #define BI_RLE4 2
1612 typedef struct {
1613 BITMAPINFOHEADER bmiHeader;
1614 RGBQUAD bmiColors[1];
1615 } BITMAPINFO;
1616 typedef BITMAPINFO *LPBITMAPINFO;
1617 typedef BITMAPINFO *NPBITMAPINFO;
1618 typedef BITMAPINFO *PBITMAPINFO;
1620 typedef struct
1622 DWORD bcSize;
1623 UINT16 bcWidth;
1624 UINT16 bcHeight;
1625 UINT16 bcPlanes;
1626 UINT16 bcBitCount;
1627 } BITMAPCOREHEADER;
1629 typedef struct
1631 BITMAPCOREHEADER bmciHeader;
1632 RGBTRIPLE bmciColors[1];
1633 } BITMAPCOREINFO, *LPBITMAPCOREINFO;
1635 #define DIB_RGB_COLORS 0
1636 #define DIB_PAL_COLORS 1
1637 #define CBM_INIT 4
1639 typedef struct
1641 BITMAP dsBm;
1642 BITMAPINFOHEADER dsBmih;
1643 DWORD dsBitfields[3];
1644 HANDLE dshSection;
1645 DWORD dsOffset;
1646 } DIBSECTION,*LPDIBSECTION;
1648 /* Stock GDI objects for GetStockObject() */
1650 #define WHITE_BRUSH 0
1651 #define LTGRAY_BRUSH 1
1652 #define GRAY_BRUSH 2
1653 #define DKGRAY_BRUSH 3
1654 #define BLACK_BRUSH 4
1655 #define NULL_BRUSH 5
1656 #define HOLLOW_BRUSH 5
1657 #define WHITE_PEN 6
1658 #define BLACK_PEN 7
1659 #define NULL_PEN 8
1660 #define OEM_FIXED_FONT 10
1661 #define ANSI_FIXED_FONT 11
1662 #define ANSI_VAR_FONT 12
1663 #define SYSTEM_FONT 13
1664 #define DEVICE_DEFAULT_FONT 14
1665 #define DEFAULT_PALETTE 15
1666 #define SYSTEM_FIXED_FONT 16
1667 #define DEFAULT_GUI_FONT 17
1669 #define STOCK_LAST 17
1671 /* Metafile header structure */
1672 typedef struct
1674 WORD mtType;
1675 WORD mtHeaderSize;
1676 WORD mtVersion;
1677 DWORD mtSize WINE_PACKED;
1678 WORD mtNoObjects;
1679 DWORD mtMaxRecord WINE_PACKED;
1680 WORD mtNoParameters;
1681 } METAHEADER;
1683 /* Metafile typical record structure */
1684 typedef struct
1686 DWORD rdSize;
1687 WORD rdFunction;
1688 WORD rdParm[1];
1689 } METARECORD;
1690 typedef METARECORD *PMETARECORD;
1691 typedef METARECORD *LPMETARECORD;
1693 /* Handle table structure */
1695 typedef struct
1697 HGDIOBJ16 objectHandle[1];
1698 } HANDLETABLE16, *LPHANDLETABLE16;
1700 typedef struct
1702 HGDIOBJ objectHandle[1];
1703 } HANDLETABLE, *LPHANDLETABLE;
1706 /* Clipboard metafile picture structure */
1707 typedef struct
1709 INT16 mm;
1710 INT16 xExt;
1711 INT16 yExt;
1712 HMETAFILE16 hMF;
1713 } METAFILEPICT16, *LPMETAFILEPICT16;
1715 typedef struct
1717 INT mm;
1718 INT xExt;
1719 INT yExt;
1720 HMETAFILE hMF;
1721 } METAFILEPICT, *LPMETAFILEPICT;
1724 /* Metafile functions */
1725 #define META_SETBKCOLOR 0x0201
1726 #define META_SETBKMODE 0x0102
1727 #define META_SETMAPMODE 0x0103
1728 #define META_SETROP2 0x0104
1729 #define META_SETRELABS 0x0105
1730 #define META_SETPOLYFILLMODE 0x0106
1731 #define META_SETSTRETCHBLTMODE 0x0107
1732 #define META_SETTEXTCHAREXTRA 0x0108
1733 #define META_SETTEXTCOLOR 0x0209
1734 #define META_SETTEXTJUSTIFICATION 0x020A
1735 #define META_SETWINDOWORG 0x020B
1736 #define META_SETWINDOWEXT 0x020C
1737 #define META_SETVIEWPORTORG 0x020D
1738 #define META_SETVIEWPORTEXT 0x020E
1739 #define META_OFFSETWINDOWORG 0x020F
1740 #define META_SCALEWINDOWEXT 0x0410
1741 #define META_OFFSETVIEWPORTORG 0x0211
1742 #define META_SCALEVIEWPORTEXT 0x0412
1743 #define META_LINETO 0x0213
1744 #define META_MOVETO 0x0214
1745 #define META_EXCLUDECLIPRECT 0x0415
1746 #define META_INTERSECTCLIPRECT 0x0416
1747 #define META_ARC 0x0817
1748 #define META_ELLIPSE 0x0418
1749 #define META_FLOODFILL 0x0419
1750 #define META_PIE 0x081A
1751 #define META_RECTANGLE 0x041B
1752 #define META_ROUNDRECT 0x061C
1753 #define META_PATBLT 0x061D
1754 #define META_SAVEDC 0x001E
1755 #define META_SETPIXEL 0x041F
1756 #define META_OFFSETCLIPRGN 0x0220
1757 #define META_TEXTOUT 0x0521
1758 #define META_BITBLT 0x0922
1759 #define META_STRETCHBLT 0x0B23
1760 #define META_POLYGON 0x0324
1761 #define META_POLYLINE 0x0325
1762 #define META_ESCAPE 0x0626
1763 #define META_RESTOREDC 0x0127
1764 #define META_FILLREGION 0x0228
1765 #define META_FRAMEREGION 0x0429
1766 #define META_INVERTREGION 0x012A
1767 #define META_PAINTREGION 0x012B
1768 #define META_SELECTCLIPREGION 0x012C
1769 #define META_SELECTOBJECT 0x012D
1770 #define META_SETTEXTALIGN 0x012E
1771 #define META_DRAWTEXT 0x062F
1772 #define META_CHORD 0x0830
1773 #define META_SETMAPPERFLAGS 0x0231
1774 #define META_EXTTEXTOUT 0x0A32
1775 #define META_SETDIBTODEV 0x0D33
1776 #define META_SELECTPALETTE 0x0234
1777 #define META_REALIZEPALETTE 0x0035
1778 #define META_ANIMATEPALETTE 0x0436
1779 #define META_SETPALENTRIES 0x0037
1780 #define META_POLYPOLYGON 0x0538
1781 #define META_RESIZEPALETTE 0x0139
1782 #define META_DIBBITBLT 0x0940
1783 #define META_DIBSTRETCHBLT 0x0B41
1784 #define META_DIBCREATEPATTERNBRUSH 0x0142
1785 #define META_STRETCHDIB 0x0F43
1786 #define META_EXTFLOODFILL 0x0548
1787 #define META_RESETDC 0x014C
1788 #define META_STARTDOC 0x014D
1789 #define META_STARTPAGE 0x004F
1790 #define META_ENDPAGE 0x0050
1791 #define META_ABORTDOC 0x0052
1792 #define META_ENDDOC 0x005E
1793 #define META_DELETEOBJECT 0x01F0
1794 #define META_CREATEPALETTE 0x00F7
1795 #define META_CREATEBRUSH 0x00F8
1796 #define META_CREATEPATTERNBRUSH 0x01F9
1797 #define META_CREATEPENINDIRECT 0x02FA
1798 #define META_CREATEFONTINDIRECT 0x02FB
1799 #define META_CREATEBRUSHINDIRECT 0x02FC
1800 #define META_CREATEBITMAPINDIRECT 0x02FD
1801 #define META_CREATEBITMAP 0x06FE
1802 #define META_CREATEREGION 0x06FF
1803 #define META_UNKNOWN 0x0529 /* FIXME: unknown meta magic */
1805 typedef INT16 (CALLBACK *MFENUMPROC16)(HDC16,HANDLETABLE16*,METARECORD*,
1806 INT16,LPARAM);
1807 typedef INT (CALLBACK *MFENUMPROC)(HDC,HANDLETABLE*,METARECORD*,
1808 INT,LPARAM);
1810 /* enhanced metafile structures and functions */
1812 /* note that ENHMETAHEADER is just a particular kind of ENHMETARECORD,
1813 ie. the header is just the first record in the metafile */
1814 typedef struct {
1815 DWORD iType;
1816 DWORD nSize;
1817 RECT rclBounds;
1818 RECT rclFrame;
1819 DWORD dSignature;
1820 DWORD nVersion;
1821 DWORD nBytes;
1822 DWORD nRecords;
1823 WORD nHandles;
1824 WORD sReserved;
1825 DWORD nDescription;
1826 DWORD offDescription;
1827 DWORD nPalEntries;
1828 SIZE szlDevice;
1829 SIZE szlMillimeters;
1830 DWORD cbPixelFormat;
1831 DWORD offPixelFormat;
1832 DWORD bOpenGL;
1833 } ENHMETAHEADER, *LPENHMETAHEADER;
1835 typedef struct {
1836 DWORD iType;
1837 DWORD nSize;
1838 DWORD dParm[1];
1839 } ENHMETARECORD, *LPENHMETARECORD;
1841 typedef INT (CALLBACK *ENHMFENUMPROC)(HDC, LPHANDLETABLE,
1842 LPENHMETARECORD, INT, LPVOID);
1844 #define EMR_HEADER 1
1845 #define EMR_POLYBEZIER 2
1846 #define EMR_POLYGON 3
1847 #define EMR_POLYLINE 4
1848 #define EMR_POLYBEZIERTO 5
1849 #define EMR_POLYLINETO 6
1850 #define EMR_POLYPOLYLINE 7
1851 #define EMR_POLYPOLYGON 8
1852 #define EMR_SETWINDOWEXTEX 9
1853 #define EMR_SETWINDOWORGEX 10
1854 #define EMR_SETVIEWPORTEXTEX 11
1855 #define EMR_SETVIEWPORTORGEX 12
1856 #define EMR_SETBRUSHORGEX 13
1857 #define EMR_EOF 14
1858 #define EMR_SETPIXELV 15
1859 #define EMR_SETMAPPERFLAGS 16
1860 #define EMR_SETMAPMODE 17
1861 #define EMR_SETBKMODE 18
1862 #define EMR_SETPOLYFILLMODE 19
1863 #define EMR_SETROP2 20
1864 #define EMR_SETSTRETCHBLTMODE 21
1865 #define EMR_SETTEXTALIGN 22
1866 #define EMR_SETCOLORADJUSTMENT 23
1867 #define EMR_SETTEXTCOLOR 24
1868 #define EMR_SETBKCOLOR 25
1869 #define EMR_OFFSETCLIPRGN 26
1870 #define EMR_MOVETOEX 27
1871 #define EMR_SETMETARGN 28
1872 #define EMR_EXCLUDECLIPRECT 29
1873 #define EMR_INTERSECTCLIPRECT 30
1874 #define EMR_SCALEVIEWPORTEXTEX 31
1875 #define EMR_SCALEWINDOWEXTEX 32
1876 #define EMR_SAVEDC 33
1877 #define EMR_RESTOREDC 34
1878 #define EMR_SETWORLDTRANSFORM 35
1879 #define EMR_MODIFYWORLDTRANSFORM 36
1880 #define EMR_SELECTOBJECT 37
1881 #define EMR_CREATEPEN 38
1882 #define EMR_CREATEBRUSHINDIRECT 39
1883 #define EMR_DELETEOBJECT 40
1884 #define EMR_ANGLEARC 41
1885 #define EMR_ELLIPSE 42
1886 #define EMR_RECTANGLE 43
1887 #define EMR_ROUNDRECT 44
1888 #define EMR_ARC 45
1889 #define EMR_CHORD 46
1890 #define EMR_PIE 47
1891 #define EMR_SELECTPALETTE 48
1892 #define EMR_CREATEPALETTE 49
1893 #define EMR_SETPALETTEENTRIES 50
1894 #define EMR_RESIZEPALETTE 51
1895 #define EMR_REALIZEPALETTE 52
1896 #define EMR_EXTFLOODFILL 53
1897 #define EMR_LINETO 54
1898 #define EMR_ARCTO 55
1899 #define EMR_POLYDRAW 56
1900 #define EMR_SETARCDIRECTION 57
1901 #define EMR_SETMITERLIMIT 58
1902 #define EMR_BEGINPATH 59
1903 #define EMR_ENDPATH 60
1904 #define EMR_CLOSEFIGURE 61
1905 #define EMR_FILLPATH 62
1906 #define EMR_STROKEANDFILLPATH 63
1907 #define EMR_STROKEPATH 64
1908 #define EMR_FLATTENPATH 65
1909 #define EMR_WIDENPATH 66
1910 #define EMR_SELECTCLIPPATH 67
1911 #define EMR_ABORTPATH 68
1912 #define EMR_GDICOMMENT 70
1913 #define EMR_FILLRGN 71
1914 #define EMR_FRAMERGN 72
1915 #define EMR_INVERTRGN 73
1916 #define EMR_PAINTRGN 74
1917 #define EMR_EXTSELECTCLIPRGN 75
1918 #define EMR_BITBLT 76
1919 #define EMR_STRETCHBLT 77
1920 #define EMR_MASKBLT 78
1921 #define EMR_PLGBLT 79
1922 #define EMR_SETDIBITSTODEVICE 80
1923 #define EMR_STRETCHDIBITS 81
1924 #define EMR_EXTCREATEFONTINDIRECTW 82
1925 #define EMR_EXTTEXTOUTA 83
1926 #define EMR_EXTTEXTOUTW 84
1927 #define EMR_POLYBEZIER16 85
1928 #define EMR_POLYGON16 86
1929 #define EMR_POLYLINE16 87
1930 #define EMR_POLYBEZIERTO16 88
1931 #define EMR_POLYLINETO16 89
1932 #define EMR_POLYPOLYLINE16 90
1933 #define EMR_POLYPOLYGON16 91
1934 #define EMR_POLYDRAW16 92
1935 #define EMR_CREATEMONOBRUSH 93
1936 #define EMR_CREATEDIBPATTERNBRUSHPT 94
1937 #define EMR_EXTCREATEPEN 95
1938 #define EMR_POLYTEXTOUTA 96
1939 #define EMR_POLYTEXTOUTW 97
1940 #define EMR_SETICMMODE 98
1941 #define EMR_CREATECOLORSPACE 99
1942 #define EMR_SETCOLORSPACE 100
1943 #define EMR_DELETECOLORSPACE 101
1944 #define EMR_GLSRECORD 102
1945 #define EMR_GLSBOUNDEDRECORD 103
1946 #define EMR_PIXELFORMAT 104
1948 #define ENHMETA_SIGNATURE 1179469088
1950 #define CCHDEVICENAME 32
1951 #define CCHFORMNAME 32
1953 typedef struct
1955 BYTE dmDeviceName[CCHDEVICENAME];
1956 WORD dmSpecVersion;
1957 WORD dmDriverVersion;
1958 WORD dmSize;
1959 WORD dmDriverExtra;
1960 DWORD dmFields;
1961 INT16 dmOrientation;
1962 INT16 dmPaperSize;
1963 INT16 dmPaperLength;
1964 INT16 dmPaperWidth;
1965 INT16 dmScale;
1966 INT16 dmCopies;
1967 INT16 dmDefaultSource;
1968 INT16 dmPrintQuality;
1969 INT16 dmColor;
1970 INT16 dmDuplex;
1971 INT16 dmYResolution;
1972 INT16 dmTTOption;
1973 INT16 dmCollate;
1974 BYTE dmFormName[CCHFORMNAME];
1975 WORD dmUnusedPadding;
1976 WORD dmBitsPerPel;
1977 DWORD dmPelsWidth;
1978 DWORD dmPelsHeight;
1979 DWORD dmDisplayFlags;
1980 DWORD dmDisplayFrequency;
1981 } DEVMODE16, *LPDEVMODE16;
1983 typedef struct
1985 BYTE dmDeviceName[CCHDEVICENAME];
1986 WORD dmSpecVersion;
1987 WORD dmDriverVersion;
1988 WORD dmSize;
1989 WORD dmDriverExtra;
1990 DWORD dmFields;
1991 INT16 dmOrientation;
1992 INT16 dmPaperSize;
1993 INT16 dmPaperLength;
1994 INT16 dmPaperWidth;
1995 INT16 dmScale;
1996 INT16 dmCopies;
1997 INT16 dmDefaultSource;
1998 INT16 dmPrintQuality;
1999 INT16 dmColor;
2000 INT16 dmDuplex;
2001 INT16 dmYResolution;
2002 INT16 dmTTOption;
2003 INT16 dmCollate;
2004 BYTE dmFormName[CCHFORMNAME];
2005 WORD dmLogPixels;
2006 DWORD dmBitsPerPel;
2007 DWORD dmPelsWidth;
2008 DWORD dmPelsHeight;
2009 DWORD dmDisplayFlags;
2010 DWORD dmDisplayFrequency;
2011 DWORD dmICMMethod;
2012 DWORD dmICMIntent;
2013 DWORD dmMediaType;
2014 DWORD dmDitherType;
2015 DWORD dmReserved1;
2016 DWORD dmReserved2;
2017 } DEVMODEA, *PDEVMODEA, *LPDEVMODEA;
2019 typedef struct
2021 WCHAR dmDeviceName[CCHDEVICENAME];
2022 WORD dmSpecVersion;
2023 WORD dmDriverVersion;
2024 WORD dmSize;
2025 WORD dmDriverExtra;
2026 DWORD dmFields;
2027 INT16 dmOrientation;
2028 INT16 dmPaperSize;
2029 INT16 dmPaperLength;
2030 INT16 dmPaperWidth;
2031 INT16 dmScale;
2032 INT16 dmCopies;
2033 INT16 dmDefaultSource;
2034 INT16 dmPrintQuality;
2035 INT16 dmColor;
2036 INT16 dmDuplex;
2037 INT16 dmYResolution;
2038 INT16 dmTTOption;
2039 INT16 dmCollate;
2040 WCHAR dmFormName[CCHFORMNAME];
2041 WORD dmLogPixels;
2042 DWORD dmBitsPerPel;
2043 DWORD dmPelsWidth;
2044 DWORD dmPelsHeight;
2045 DWORD dmDisplayFlags;
2046 DWORD dmDisplayFrequency;
2047 DWORD dmICMMethod;
2048 DWORD dmICMIntent;
2049 DWORD dmMediaType;
2050 DWORD dmDitherType;
2051 DWORD dmReserved1;
2052 DWORD dmReserved2;
2053 } DEVMODEW, *PDEVMODEW, *LPDEVMODEW;
2055 DECL_WINELIB_TYPE_AW(DEVMODE)
2056 DECL_WINELIB_TYPE_AW(PDEVMODE)
2057 DECL_WINELIB_TYPE_AW(LPDEVMODE)
2059 #define DM_UPDATE 1
2060 #define DM_COPY 2
2061 #define DM_PROMPT 4
2062 #define DM_MODIFY 8
2064 #define DM_IN_BUFFER DM_MODIFY
2065 #define DM_IN_PROMPT DM_PROMPT
2066 #define DM_OUT_BUFFER DM_COPY
2067 #define DM_OUT_DEFAULT DM_UPDATE
2069 #define DM_ORIENTATION 0x00000001L
2070 #define DM_PAPERSIZE 0x00000002L
2071 #define DM_PAPERLENGTH 0x00000004L
2072 #define DM_PAPERWIDTH 0x00000008L
2073 #define DM_SCALE 0x00000010L
2074 #define DM_COPIES 0x00000100L
2075 #define DM_DEFAULTSOURCE 0x00000200L
2076 #define DM_PRINTQUALITY 0x00000400L
2077 #define DM_COLOR 0x00000800L
2078 #define DM_DUPLEX 0x00001000L
2079 #define DM_YRESOLUTION 0x00002000L
2080 #define DM_TTOPTION 0x00004000L
2081 #define DM_BITSPERPEL 0x00040000L
2082 #define DM_PELSWIDTH 0x00080000L
2083 #define DM_PELSHEIGHT 0x00100000L
2084 #define DM_DISPLAYFLAGS 0x00200000L
2085 #define DM_DISPLAYFREQUENCY 0x00400000L
2087 /* etc.... */
2089 #define DMORIENT_PORTRAIT 1
2090 #define DMORIENT_LANDSCAPE 2
2092 #define DMPAPER_LETTER 1
2093 #define DMPAPER_LETTERSMALL 2
2094 #define DMPAPER_TABLOID 3
2095 #define DMPAPER_LEDGER 4
2096 #define DMPAPER_LEGAL 5
2097 #define DMPAPER_STATEMENT 6
2098 #define DMPAPER_EXECUTIVE 7
2099 #define DMPAPER_A3 8
2100 #define DMPAPER_A4 9
2101 #define DMPAPER_A4SMALL 10
2102 #define DMPAPER_A5 11
2103 #define DMPAPER_B4 12
2104 #define DMPAPER_B5 13
2105 #define DMPAPER_FOLIO 14
2106 #define DMPAPER_QUARTO 15
2107 #define DMPAPER_10X14 16
2108 #define DMPAPER_11X17 17
2109 #define DMPAPER_NOTE 18
2110 #define DMPAPER_ENV_9 19
2111 #define DMPAPER_ENV_10 20
2112 #define DMPAPER_ENV_11 21
2113 #define DMPAPER_ENV_12 22
2114 #define DMPAPER_ENV_14 23
2115 #define DMPAPER_CSHEET 24
2116 #define DMPAPER_DSHEET 25
2117 #define DMPAPER_ESHEET 26
2118 #define DMPAPER_ENV_DL 27
2119 #define DMPAPER_ENV_C5 28
2120 #define DMPAPER_ENV_C3 29
2121 #define DMPAPER_ENV_C4 30
2122 #define DMPAPER_ENV_C6 31
2123 #define DMPAPER_ENV_C65 32
2124 #define DMPAPER_ENV_B4 33
2125 #define DMPAPER_ENV_B5 34
2126 #define DMPAPER_ENV_B6 35
2127 #define DMPAPER_ENV_ITALY 36
2128 #define DMPAPER_ENV_MONARCH 37
2129 #define DMPAPER_ENV_PERSONAL 38
2130 #define DMPAPER_FANFOLD_US 39
2131 #define DMPAPER_FANFOLD_STD_GERMAN 40
2132 #define DMPAPER_FANFOLD_LGL_GERMAN 41
2133 #define DMPAPER_ISO_B4 42
2134 #define DMPAPER_JAPANESE_POSTCARD 43
2135 #define DMPAPER_9X11 44
2136 #define DMPAPER_10X11 45
2137 #define DMPAPER_15X11 46
2138 #define DMPAPER_ENV_INVITE 47
2139 #define DMPAPER_RESERVED_48 48
2140 #define DMPAPER_RESERVED_49 49
2141 #define DMPAPER_LETTER_EXTRA 50
2142 #define DMPAPER_LEGAL_EXTRA 51
2143 #define DMPAPER_TABLOID_EXTRA 52
2144 #define DMPAPER_A4_EXTRA 53
2145 #define DMPAPER_LETTER_TRANSVERSE 54
2146 #define DMPAPER_A4_TRANSVERSE 55
2147 #define DMPAPER_LETTER_EXTRA_TRANSVERSE 56
2148 #define DMPAPER_A_PLUS 57
2149 #define DMPAPER_B_PLUS 58
2150 #define DMPAPER_LETTER_PLUS 59
2151 #define DMPAPER_A4_PLUS 60
2152 #define DMPAPER_A5_TRANSVERSE 61
2153 #define DMPAPER_B5_TRANSVERSE 62
2154 #define DMPAPER_A3_EXTRA 63
2155 #define DMPAPER_A5_EXTRA 64
2156 #define DMPAPER_B5_EXTRA 65
2157 #define DMPAPER_A2 66
2158 #define DMPAPER_A3_TRANSVERSE 67
2159 #define DMPAPER_A3_EXTRA_TRANSVERSE 68
2161 #define DMBIN_UPPER 1
2162 #define DMBIN_LOWER 2
2163 #define DMBIN_MIDDLE 3
2164 #define DMBIN_MANUAL 4
2165 #define DMBIN_ENVELOPE 5
2166 #define DMBIN_ENVMANUAL 6
2167 #define DMBIN_AUTO 7
2168 #define DMBIN_LARGECAPACITY 11
2170 #define DMCOLOR_MONOCHROME 1
2171 #define DMCOLOR_COLOR 2
2173 #define DMTT_BITMAP 1
2174 #define DMTT_DOWNLOAD 2
2175 #define DMTT_SUBDEV 3
2177 typedef struct
2179 INT16 cbSize;
2180 SEGPTR lpszDocName WINE_PACKED;
2181 SEGPTR lpszOutput WINE_PACKED;
2182 } DOCINFO16, *LPDOCINFO16;
2184 typedef struct
2186 INT cbSize;
2187 LPCSTR lpszDocName;
2188 LPCSTR lpszOutput;
2189 LPCSTR lpszDatatype;
2190 DWORD fwType;
2191 } DOCINFOA, *LPDOCINFOA;
2193 typedef struct
2195 INT cbSize;
2196 LPCWSTR lpszDocName;
2197 LPCWSTR lpszOutput;
2198 LPCWSTR lpszDatatype;
2199 DWORD fwType;
2200 } DOCINFOW, *LPDOCINFOW;
2202 DECL_WINELIB_TYPE_AW(DOCINFO)
2203 DECL_WINELIB_TYPE_AW(LPDOCINFO)
2205 typedef struct {
2206 UINT16 cbSize;
2207 INT16 iBorderWidth;
2208 INT16 iScrollWidth;
2209 INT16 iScrollHeight;
2210 INT16 iCaptionWidth;
2211 INT16 iCaptionHeight;
2212 LOGFONT16 lfCaptionFont;
2213 INT16 iSmCaptionWidth;
2214 INT16 iSmCaptionHeight;
2215 LOGFONT16 lfSmCaptionFont;
2216 INT16 iMenuWidth;
2217 INT16 iMenuHeight;
2218 LOGFONT16 lfMenuFont;
2219 LOGFONT16 lfStatusFont;
2220 LOGFONT16 lfMessageFont;
2221 } NONCLIENTMETRICS16,*LPNONCLIENTMETRICS16;
2223 typedef struct {
2224 UINT cbSize;
2225 INT iBorderWidth;
2226 INT iScrollWidth;
2227 INT iScrollHeight;
2228 INT iCaptionWidth;
2229 INT iCaptionHeight;
2230 LOGFONTA lfCaptionFont;
2231 INT iSmCaptionWidth;
2232 INT iSmCaptionHeight;
2233 LOGFONTA lfSmCaptionFont;
2234 INT iMenuWidth;
2235 INT iMenuHeight;
2236 LOGFONTA lfMenuFont;
2237 LOGFONTA lfStatusFont;
2238 LOGFONTA lfMessageFont;
2239 } NONCLIENTMETRICSA,*LPNONCLIENTMETRICSA;
2241 typedef struct {
2242 UINT cbSize;
2243 INT iBorderWidth;
2244 INT iScrollWidth;
2245 INT iScrollHeight;
2246 INT iCaptionWidth;
2247 INT iCaptionHeight;
2248 LOGFONTW lfCaptionFont;
2249 INT iSmCaptionWidth;
2250 INT iSmCaptionHeight;
2251 LOGFONTW lfSmCaptionFont;
2252 INT iMenuWidth;
2253 INT iMenuHeight;
2254 LOGFONTW lfMenuFont;
2255 LOGFONTW lfStatusFont;
2256 LOGFONTW lfMessageFont;
2257 } NONCLIENTMETRICSW,*LPNONCLIENTMETRICSW;
2259 DECL_WINELIB_TYPE_AW(NONCLIENTMETRICS)
2260 DECL_WINELIB_TYPE_AW(LPNONCLIENTMETRICS)
2262 /* Flags for PolyDraw and GetPath */
2263 #define PT_CLOSEFIGURE 0x0001
2264 #define PT_LINETO 0x0002
2265 #define PT_BEZIERTO 0x0004
2266 #define PT_MOVETO 0x0006
2268 #define RDH_RECTANGLES 1
2270 typedef struct _RGNDATAHEADER {
2271 DWORD dwSize;
2272 DWORD iType;
2273 DWORD nCount;
2274 DWORD nRgnSize;
2275 RECT rcBound;
2276 } RGNDATAHEADER,*LPRGNDATAHEADER;
2278 typedef struct _RGNDATA {
2279 RGNDATAHEADER rdh;
2280 char Buffer[1];
2281 } RGNDATA,*PRGNDATA,*LPRGNDATA;
2283 typedef BOOL16 (CALLBACK* ABORTPROC16)(HDC16, INT16);
2284 typedef BOOL (CALLBACK* ABORTPROC)(HDC, INT);
2286 #pragma pack(4)
2288 /* Declarations for functions that exist only in Win16 */
2290 VOID WINAPI Death16(HDC16);
2291 VOID WINAPI Resurrection16(HDC16,WORD,WORD,WORD,WORD,WORD,WORD);
2293 /* Declarations for functions that exist only in Win32 */
2295 BOOL WINAPI AngleArc(HDC, INT, INT, DWORD, FLOAT, FLOAT);
2296 BOOL WINAPI ArcTo(HDC, INT, INT, INT, INT, INT, INT, INT, INT);
2297 HENHMETAFILE WINAPI CloseEnhMetaFile(HDC);
2298 HBRUSH WINAPI CreateDIBPatternBrushPt(const void*,UINT);
2299 HDC WINAPI CreateEnhMetaFileA(HDC,LPCSTR,const RECT*,LPCSTR);
2300 HDC WINAPI CreateEnhMetaFileW(HDC,LPCWSTR,const RECT*,LPCWSTR);
2301 #define CreateEnhMetaFile WINELIB_NAME_AW(CreateEnhMetaFile)
2302 INT WINAPI DrawEscape(HDC,INT,INT,LPCSTR);
2303 INT16 WINAPI ExcludeVisRect16(HDC16,INT16,INT16,INT16,INT16);
2304 BOOL16 WINAPI FastWindowFrame16(HDC16,const RECT16*,INT16,INT16,DWORD);
2305 UINT16 WINAPI GDIRealizePalette16(HDC16);
2306 HPALETTE16 WINAPI GDISelectPalette16(HDC16,HPALETTE16,WORD);
2307 BOOL WINAPI GdiComment(HDC,UINT,const BYTE *);
2308 DWORD WINAPI GetBitmapDimension16(HBITMAP16);
2309 DWORD WINAPI GetBrushOrg16(HDC16);
2310 BOOL WINAPI GetCharABCWidthsFloatA(HDC,UINT,UINT,LPABCFLOAT);
2311 BOOL WINAPI GetCharABCWidthsFloatW(HDC,UINT,UINT,LPABCFLOAT);
2312 #define GetCharABCWidthsFloat WINELIB_NAME_AW(GetCharABCWidthsFloat)
2313 BOOL WINAPI GetCharWidthFloatA(HDC,UINT,UINT,PFLOAT);
2314 BOOL WINAPI GetCharWidthFloatW(HDC,UINT,UINT,PFLOAT);
2315 #define GetCharWidthFloat WINELIB_NAME_AW(GetCharWidthFloat)
2316 BOOL WINAPI GetColorAdjustment(HDC, LPCOLORADJUSTMENT);
2317 HFONT16 WINAPI GetCurLogFont16(HDC16);
2318 DWORD WINAPI GetCurrentPosition16(HDC16);
2319 DWORD WINAPI GetDCHook(HDC16,FARPROC16*);
2320 DWORD WINAPI GetDCOrg16(HDC16);
2321 HDC16 WINAPI GetDCState16(HDC16);
2322 INT16 WINAPI GetEnvironment16(LPCSTR,LPDEVMODE16,UINT16);
2323 HGLOBAL16 WINAPI GetMetaFileBits16(HMETAFILE16);
2324 BOOL WINAPI GetMiterLimit(HDC, PFLOAT);
2325 DWORD WINAPI GetTextExtent16(HDC16,LPCSTR,INT16);
2326 DWORD WINAPI GetViewportExt16(HDC16);
2327 DWORD WINAPI GetViewportOrg16(HDC16);
2328 DWORD WINAPI GetWindowExt16(HDC16);
2329 DWORD WINAPI GetWindowOrg16(HDC16);
2330 HRGN16 WINAPI InquireVisRgn16(HDC16);
2331 INT16 WINAPI IntersectVisRect16(HDC16,INT16,INT16,INT16,INT16);
2332 BOOL16 WINAPI IsDCCurrentPalette16(HDC16);
2333 BOOL16 WINAPI IsGDIObject16(HGDIOBJ16);
2334 BOOL16 WINAPI IsValidMetaFile16(HMETAFILE16);
2335 BOOL WINAPI MaskBlt(HDC,INT,INT,INT,INT,HDC,INT,INT,HBITMAP,INT,INT,DWORD);
2336 DWORD WINAPI MoveTo16(HDC16,INT16,INT16);
2337 DWORD WINAPI OffsetViewportOrg16(HDC16,INT16,INT16);
2338 INT16 WINAPI OffsetVisRgn16(HDC16,INT16,INT16);
2339 DWORD WINAPI OffsetWindowOrg16(HDC16,INT16,INT16);
2340 BOOL WINAPI PlgBlt(HDC,const POINT*,HDC,INT,INT,INT,INT,HBITMAP,INT,INT);
2341 BOOL WINAPI PolyDraw(HDC,const POINT*,const BYTE*,DWORD);
2342 UINT16 WINAPI RealizeDefaultPalette16(HDC16);
2343 INT16 WINAPI RestoreVisRgn16(HDC16);
2344 HRGN16 WINAPI SaveVisRgn16(HDC16);
2345 DWORD WINAPI ScaleViewportExt16(HDC16,INT16,INT16,INT16,INT16);
2346 DWORD WINAPI ScaleWindowExt16(HDC16,INT16,INT16,INT16,INT16);
2347 INT16 WINAPI SelectVisRgn16(HDC16,HRGN16);
2348 DWORD WINAPI SetBitmapDimension16(HBITMAP16,INT16,INT16);
2349 DWORD WINAPI SetBrushOrg16(HDC16,INT16,INT16);
2350 BOOL WINAPI SetColorAdjustment(HDC,const COLORADJUSTMENT*);
2351 BOOL16 WINAPI SetDCHook(HDC16,FARPROC16,DWORD);
2352 DWORD WINAPI SetDCOrg16(HDC16,INT16,INT16);
2353 VOID WINAPI SetDCState16(HDC16,HDC16);
2354 INT16 WINAPI SetEnvironment16(LPCSTR,LPDEVMODE16,UINT16);
2355 WORD WINAPI SetHookFlags16(HDC16,WORD);
2356 HMETAFILE16 WINAPI SetMetaFileBits16(HGLOBAL16);
2357 BOOL WINAPI SetMiterLimit(HDC, FLOAT, PFLOAT);
2358 DWORD WINAPI SetViewportExt16(HDC16,INT16,INT16);
2359 DWORD WINAPI SetViewportOrg16(HDC16,INT16,INT16);
2360 DWORD WINAPI SetWindowExt16(HDC16,INT16,INT16);
2361 DWORD WINAPI SetWindowOrg16(HDC16,INT16,INT16);
2362 BOOL WINAPI CombineTransform(LPXFORM,const XFORM *,const XFORM *);
2363 HENHMETAFILE WINAPI CopyEnhMetaFileA(HENHMETAFILE,LPCSTR);
2364 HENHMETAFILE WINAPI CopyEnhMetaFileW(HENHMETAFILE,LPCWSTR);
2365 #define CopyEnhMetaFile WINELIB_NAME_AW(CopyEnhMetaFile)
2366 HPALETTE WINAPI CreateHalftonePalette(HDC);
2367 BOOL WINAPI DeleteEnhMetaFile(HENHMETAFILE);
2368 INT WINAPI ExtSelectClipRgn(HDC,HRGN,INT);
2369 HRGN WINAPI ExtCreateRegion(const XFORM*,DWORD,const RGNDATA*);
2370 INT WINAPI ExtEscape(HDC,INT,INT,LPCSTR,INT,LPSTR);
2371 BOOL WINAPI FixBrushOrgEx(HDC,INT,INT,LPPOINT);
2372 HANDLE WINAPI GetCurrentObject(HDC,UINT);
2373 BOOL WINAPI GetDCOrgEx(HDC,LPPOINT);
2374 HENHMETAFILE WINAPI GetEnhMetaFileA(LPCSTR);
2375 HENHMETAFILE WINAPI GetEnhMetaFileW(LPCWSTR);
2376 #define GetEnhMetaFile WINELIB_NAME_AW(GetEnhMetaFile)
2377 UINT WINAPI GetEnhMetaFileBits(HENHMETAFILE,UINT,LPBYTE);
2378 UINT WINAPI GetEnhMetaFileHeader(HENHMETAFILE,UINT,LPENHMETAHEADER);
2379 UINT WINAPI GetEnhMetaFilePaletteEntries(HENHMETAFILE,UINT,LPPALETTEENTRY);
2380 INT WINAPI GetGraphicsMode(HDC);
2381 UINT WINAPI GetMetaFileBitsEx(HMETAFILE,UINT,LPVOID);
2382 DWORD WINAPI GetObjectType(HANDLE);
2383 UINT WINAPI GetTextCharsetInfo(HDC,LPFONTSIGNATURE,DWORD);
2384 BOOL WINAPI GetTextExtentExPointA(HDC,LPCSTR,INT,INT,
2385 LPINT,LPINT,LPSIZE);
2386 BOOL WINAPI GetTextExtentExPointW(HDC,LPCWSTR,INT,INT,
2387 LPINT,LPINT,LPSIZE);
2388 #define GetTextExtentExPoint WINELIB_NAME_AW(GetTextExtentExPoint)
2389 BOOL WINAPI GetWorldTransform(HDC,LPXFORM);
2390 BOOL WINAPI ModifyWorldTransform(HDC,const XFORM *, DWORD);
2391 BOOL WINAPI PlayEnhMetaFile(HDC,HENHMETAFILE,const RECT*);
2392 BOOL WINAPI PlayEnhMetaFileRecord(HDC,LPHANDLETABLE,const ENHMETARECORD*,UINT);
2393 BOOL WINAPI PolyPolyline(HDC,const POINT*,const DWORD*,DWORD);
2394 BOOL WINAPI SetBrushOrgEx(HDC,INT,INT,LPPOINT);
2395 HENHMETAFILE WINAPI SetEnhMetaFileBits(UINT,const BYTE *);
2396 INT WINAPI SetGraphicsMode(HDC,INT);
2397 HMETAFILE WINAPI SetMetaFileBitsEx(UINT,const BYTE*);
2398 BOOL WINAPI SetWorldTransform(HDC,const XFORM*);
2399 BOOL WINAPI TranslateCharsetInfo(LPDWORD,LPCHARSETINFO,DWORD);
2401 /* Declarations for functions that change between Win16 and Win32 */
2403 INT16 WINAPI AbortDoc16(HDC16);
2404 INT WINAPI AbortDoc(HDC);
2405 BOOL16 WINAPI AbortPath16(HDC16);
2406 BOOL WINAPI AbortPath(HDC);
2407 INT16 WINAPI AddFontResource16(LPCSTR);
2408 INT WINAPI AddFontResourceA(LPCSTR);
2409 INT WINAPI AddFontResourceW(LPCWSTR);
2410 #define AddFontResource WINELIB_NAME_AW(AddFontResource)
2411 void WINAPI AnimatePalette16(HPALETTE16,UINT16,UINT16,const PALETTEENTRY*);
2412 BOOL WINAPI AnimatePalette(HPALETTE,UINT,UINT,const PALETTEENTRY*);
2413 BOOL16 WINAPI Arc16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16);
2414 BOOL WINAPI Arc(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
2415 BOOL16 WINAPI BeginPath16(HDC16);
2416 BOOL WINAPI BeginPath(HDC);
2417 BOOL16 WINAPI BitBlt16(HDC16,INT16,INT16,INT16,INT16,HDC16,INT16,INT16,DWORD);
2418 BOOL WINAPI BitBlt(HDC,INT,INT,INT,INT,HDC,INT,INT,DWORD);
2419 INT WINAPI ChoosePixelFormat(HDC,const PIXELFORMATDESCRIPTOR*);
2420 BOOL16 WINAPI Chord16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16);
2421 BOOL WINAPI Chord(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
2422 BOOL16 WINAPI CloseFigure16(HDC16);
2423 BOOL WINAPI CloseFigure(HDC);
2424 HMETAFILE16 WINAPI CloseMetaFile16(HDC16);
2425 HMETAFILE WINAPI CloseMetaFile(HDC);
2426 INT16 WINAPI CombineRgn16(HRGN16,HRGN16,HRGN16,INT16);
2427 INT WINAPI CombineRgn(HRGN,HRGN,HRGN,INT);
2428 HMETAFILE16 WINAPI CopyMetaFile16(HMETAFILE16,LPCSTR);
2429 HMETAFILE WINAPI CopyMetaFileA(HMETAFILE,LPCSTR);
2430 HMETAFILE WINAPI CopyMetaFileW(HMETAFILE,LPCWSTR);
2431 #define CopyMetaFile WINELIB_NAME_AW(CopyMetaFile)
2432 HBITMAP16 WINAPI CreateBitmap16(INT16,INT16,UINT16,UINT16,LPCVOID);
2433 HBITMAP WINAPI CreateBitmap(INT,INT,UINT,UINT,LPCVOID);
2434 HBITMAP16 WINAPI CreateBitmapIndirect16(const BITMAP16*);
2435 HBITMAP WINAPI CreateBitmapIndirect(const BITMAP*);
2436 HBRUSH16 WINAPI CreateBrushIndirect16(const LOGBRUSH16*);
2437 HBRUSH WINAPI CreateBrushIndirect(const LOGBRUSH*);
2438 HBITMAP16 WINAPI CreateCompatibleBitmap16(HDC16,INT16,INT16);
2439 HBITMAP WINAPI CreateCompatibleBitmap(HDC,INT,INT);
2440 HDC16 WINAPI CreateCompatibleDC16(HDC16);
2441 HDC WINAPI CreateCompatibleDC(HDC);
2442 HDC16 WINAPI CreateDC16(LPCSTR,LPCSTR,LPCSTR,const DEVMODE16*);
2443 HDC WINAPI CreateDCA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
2444 HDC WINAPI CreateDCW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*);
2445 #define CreateDC WINELIB_NAME_AW(CreateDC)
2446 HBITMAP16 WINAPI CreateDIBitmap16(HDC16,const BITMAPINFOHEADER*,DWORD,
2447 LPCVOID,const BITMAPINFO*,UINT16);
2448 HBITMAP WINAPI CreateDIBitmap(HDC,const BITMAPINFOHEADER*,DWORD,
2449 LPCVOID,const BITMAPINFO*,UINT);
2450 HBRUSH16 WINAPI CreateDIBPatternBrush16(HGLOBAL16,UINT16);
2451 HBRUSH WINAPI CreateDIBPatternBrush(HGLOBAL,UINT);
2452 HBITMAP16 WINAPI CreateDIBSection16 (HDC16, BITMAPINFO *, UINT16,
2453 SEGPTR *, HANDLE, DWORD offset);
2454 HBITMAP WINAPI CreateDIBSection (HDC, BITMAPINFO *, UINT,
2455 LPVOID *, HANDLE, DWORD offset);
2456 HBITMAP16 WINAPI CreateDiscardableBitmap16(HDC16,INT16,INT16);
2457 HBITMAP WINAPI CreateDiscardableBitmap(HDC,INT,INT);
2458 HRGN16 WINAPI CreateEllipticRgn16(INT16,INT16,INT16,INT16);
2459 HRGN WINAPI CreateEllipticRgn(INT,INT,INT,INT);
2460 HRGN16 WINAPI CreateEllipticRgnIndirect16(const RECT16 *);
2461 HRGN WINAPI CreateEllipticRgnIndirect(const RECT *);
2462 HFONT16 WINAPI CreateFont16(INT16,INT16,INT16,INT16,INT16,BYTE,BYTE,BYTE,
2463 BYTE,BYTE,BYTE,BYTE,BYTE,LPCSTR);
2464 HFONT WINAPI CreateFontA(INT,INT,INT,INT,INT,DWORD,DWORD,
2465 DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCSTR);
2466 HFONT WINAPI CreateFontW(INT,INT,INT,INT,INT,DWORD,DWORD,
2467 DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCWSTR);
2468 #define CreateFont WINELIB_NAME_AW(CreateFont)
2469 HFONT16 WINAPI CreateFontIndirect16(const LOGFONT16*);
2470 HFONT WINAPI CreateFontIndirectA(const LOGFONTA*);
2471 HFONT WINAPI CreateFontIndirectW(const LOGFONTW*);
2472 #define CreateFontIndirect WINELIB_NAME_AW(CreateFontIndirect)
2473 HBRUSH16 WINAPI CreateHatchBrush16(INT16,COLORREF);
2474 HBRUSH WINAPI CreateHatchBrush(INT,COLORREF);
2475 HDC16 WINAPI CreateIC16(LPCSTR,LPCSTR,LPCSTR,const DEVMODE16*);
2476 HDC WINAPI CreateICA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
2477 HDC WINAPI CreateICW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*);
2478 #define CreateIC WINELIB_NAME_AW(CreateIC)
2479 HDC16 WINAPI CreateMetaFile16(LPCSTR);
2480 HDC WINAPI CreateMetaFileA(LPCSTR);
2481 HDC WINAPI CreateMetaFileW(LPCWSTR);
2482 #define CreateMetaFile WINELIB_NAME_AW(CreateMetaFile)
2483 HPALETTE16 WINAPI CreatePalette16(const LOGPALETTE*);
2484 HPALETTE WINAPI CreatePalette(const LOGPALETTE*);
2485 HBRUSH16 WINAPI CreatePatternBrush16(HBITMAP16);
2486 HBRUSH WINAPI CreatePatternBrush(HBITMAP);
2487 HPEN16 WINAPI CreatePen16(INT16,INT16,COLORREF);
2488 HPEN WINAPI CreatePen(INT,INT,COLORREF);
2489 HPEN16 WINAPI CreatePenIndirect16(const LOGPEN16*);
2490 HPEN WINAPI CreatePenIndirect(const LOGPEN*);
2491 HRGN16 WINAPI CreatePolyPolygonRgn16(const POINT16*,const INT16*,INT16,INT16);
2492 HRGN WINAPI CreatePolyPolygonRgn(const POINT*,const INT*,INT,INT);
2493 HRGN16 WINAPI CreatePolygonRgn16(const POINT16*,INT16,INT16);
2494 HRGN WINAPI CreatePolygonRgn(const POINT*,INT,INT);
2495 HRGN16 WINAPI CreateRectRgn16(INT16,INT16,INT16,INT16);
2496 HRGN WINAPI CreateRectRgn(INT,INT,INT,INT);
2497 HRGN16 WINAPI CreateRectRgnIndirect16(const RECT16*);
2498 HRGN WINAPI CreateRectRgnIndirect(const RECT*);
2499 HRGN16 WINAPI CreateRoundRectRgn16(INT16,INT16,INT16,INT16,INT16,INT16);
2500 HRGN WINAPI CreateRoundRectRgn(INT,INT,INT,INT,INT,INT);
2501 BOOL16 WINAPI CreateScalableFontResource16(UINT16,LPCSTR,LPCSTR,LPCSTR);
2502 BOOL WINAPI CreateScalableFontResourceA(DWORD,LPCSTR,LPCSTR,LPCSTR);
2503 BOOL WINAPI CreateScalableFontResourceW(DWORD,LPCWSTR,LPCWSTR,LPCWSTR);
2504 #define CreateScalableFontResource WINELIB_NAME_AW(CreateScalableFontResource)
2505 HBRUSH16 WINAPI CreateSolidBrush16(COLORREF);
2506 HBRUSH WINAPI CreateSolidBrush(COLORREF);
2507 BOOL16 WINAPI DeleteDC16(HDC16);
2508 BOOL WINAPI DeleteDC(HDC);
2509 BOOL16 WINAPI DeleteMetaFile16(HMETAFILE16);
2510 BOOL WINAPI DeleteMetaFile(HMETAFILE);
2511 BOOL16 WINAPI DeleteObject16(HGDIOBJ16);
2512 BOOL WINAPI DeleteObject(HGDIOBJ);
2513 INT WINAPI DescribePixelFormat(HDC,int,UINT,
2514 LPPIXELFORMATDESCRIPTOR);
2515 BOOL16 WINAPI DPtoLP16(HDC16,LPPOINT16,INT16);
2516 BOOL WINAPI DPtoLP(HDC,LPPOINT,INT);
2517 BOOL16 WINAPI Ellipse16(HDC16,INT16,INT16,INT16,INT16);
2518 BOOL WINAPI Ellipse(HDC,INT,INT,INT,INT);
2519 INT16 WINAPI EndDoc16(HDC16);
2520 INT WINAPI EndDoc(HDC);
2521 BOOL16 WINAPI EndPath16(HDC16);
2522 BOOL WINAPI EndPath(HDC);
2523 INT16 WINAPI EnumFontFamilies16(HDC16,LPCSTR,FONTENUMPROC16,LPARAM);
2524 INT WINAPI EnumFontFamiliesA(HDC,LPCSTR,FONTENUMPROCA,LPARAM);
2525 INT WINAPI EnumFontFamiliesW(HDC,LPCWSTR,FONTENUMPROCW,LPARAM);
2526 #define EnumFontFamilies WINELIB_NAME_AW(EnumFontFamilies)
2527 INT16 WINAPI EnumFontFamiliesEx16(HDC16,LPLOGFONT16,FONTENUMPROCEX16,LPARAM,DWORD);
2528 INT WINAPI EnumFontFamiliesExA(HDC,LPLOGFONTA,FONTENUMPROCEXA,LPARAM,DWORD);
2529 INT WINAPI EnumFontFamiliesExW(HDC,LPLOGFONTW,FONTENUMPROCEXW,LPARAM,DWORD);
2530 #define EnumFontFamiliesEx WINELIB_NAME_AW(EnumFontFamiliesEx)
2531 INT16 WINAPI EnumFonts16(HDC16,LPCSTR,FONTENUMPROC16,LPARAM);
2532 INT WINAPI EnumFontsA(HDC,LPCSTR,FONTENUMPROCA,LPARAM);
2533 INT WINAPI EnumFontsW(HDC,LPCWSTR,FONTENUMPROCW,LPARAM);
2534 #define EnumFonts WINELIB_NAME_AW(EnumFonts)
2535 BOOL16 WINAPI EnumMetaFile16(HDC16,HMETAFILE16,MFENUMPROC16,LPARAM);
2536 BOOL WINAPI EnumMetaFile(HDC,HMETAFILE,MFENUMPROC,LPARAM);
2537 INT16 WINAPI EnumObjects16(HDC16,INT16,GOBJENUMPROC16,LPARAM);
2538 INT WINAPI EnumObjects(HDC,INT,GOBJENUMPROC,LPARAM);
2539 BOOL16 WINAPI EqualRgn16(HRGN16,HRGN16);
2540 BOOL WINAPI EqualRgn(HRGN,HRGN);
2541 INT16 WINAPI Escape16(HDC16,INT16,INT16,SEGPTR,SEGPTR);
2542 INT WINAPI Escape(HDC,INT,INT,LPCSTR,LPVOID);
2543 INT16 WINAPI ExcludeClipRect16(HDC16,INT16,INT16,INT16,INT16);
2544 INT WINAPI ExcludeClipRect(HDC,INT,INT,INT,INT);
2545 HPEN16 WINAPI ExtCreatePen16(DWORD,DWORD,const LOGBRUSH16*,DWORD,const DWORD*);
2546 HPEN WINAPI ExtCreatePen(DWORD,DWORD,const LOGBRUSH*,DWORD,const DWORD*);
2547 BOOL16 WINAPI ExtFloodFill16(HDC16,INT16,INT16,COLORREF,UINT16);
2548 BOOL WINAPI ExtFloodFill(HDC,INT,INT,COLORREF,UINT);
2549 BOOL16 WINAPI ExtTextOut16(HDC16,INT16,INT16,UINT16,const RECT16*,
2550 LPCSTR,UINT16,const INT16*);
2551 BOOL WINAPI ExtTextOutA(HDC,INT,INT,UINT,const RECT*,
2552 LPCSTR,UINT,const INT*);
2553 BOOL WINAPI ExtTextOutW(HDC,INT,INT,UINT,const RECT*,
2554 LPCWSTR,UINT,const INT*);
2555 #define ExtTextOut WINELIB_NAME_AW(ExtTextOut)
2556 BOOL16 WINAPI FillPath16(HDC16);
2557 BOOL WINAPI FillPath(HDC);
2558 BOOL16 WINAPI FillRgn16(HDC16,HRGN16,HBRUSH16);
2559 BOOL WINAPI FillRgn(HDC,HRGN,HBRUSH);
2560 BOOL16 WINAPI FlattenPath16(HDC16);
2561 BOOL WINAPI FlattenPath(HDC);
2562 BOOL16 WINAPI FloodFill16(HDC16,INT16,INT16,COLORREF);
2563 BOOL WINAPI FloodFill(HDC,INT,INT,COLORREF);
2564 BOOL16 WINAPI FrameRgn16(HDC16,HRGN16,HBRUSH16,INT16,INT16);
2565 BOOL WINAPI FrameRgn(HDC,HRGN,HBRUSH,INT,INT);
2566 INT16 WINAPI GetArcDirection16(HDC16);
2567 INT WINAPI GetArcDirection(HDC);
2568 BOOL16 WINAPI GetAspectRatioFilterEx16(HDC16,LPSIZE16);
2569 BOOL WINAPI GetAspectRatioFilterEx(HDC,LPSIZE);
2570 LONG WINAPI GetBitmapBits16(HBITMAP16,LONG,LPVOID);
2571 LONG WINAPI GetBitmapBits(HBITMAP,LONG,LPVOID);
2572 BOOL16 WINAPI GetBitmapDimensionEx16(HBITMAP16,LPSIZE16);
2573 BOOL WINAPI GetBitmapDimensionEx(HBITMAP,LPSIZE);
2574 BOOL16 WINAPI GetBrushOrgEx16(HDC16,LPPOINT16);
2575 BOOL WINAPI GetBrushOrgEx(HDC,LPPOINT);
2576 COLORREF WINAPI GetBkColor16(HDC16);
2577 COLORREF WINAPI GetBkColor(HDC);
2578 INT16 WINAPI GetBkMode16(HDC16);
2579 INT WINAPI GetBkMode(HDC);
2580 UINT16 WINAPI GetBoundsRect16(HDC16,LPRECT16,UINT16);
2581 UINT WINAPI GetBoundsRect(HDC,LPRECT,UINT);
2582 BOOL16 WINAPI GetCharABCWidths16(HDC16,UINT16,UINT16,LPABC16);
2583 BOOL WINAPI GetCharABCWidthsA(HDC,UINT,UINT,LPABC);
2584 BOOL WINAPI GetCharABCWidthsW(HDC,UINT,UINT,LPABC);
2585 #define GetCharABCWidths WINELIB_NAME_AW(GetCharABCWidths)
2586 DWORD WINAPI GetCharacterPlacementA(HDC,LPCSTR,INT,INT,GCP_RESULTSA*,DWORD);
2587 DWORD WINAPI GetCharacterPlacementW(HDC,LPCWSTR,INT,INT,GCP_RESULTSW*,DWORD);
2588 #define GetCharacterPlacement WINELIB_NAME_AW(GetCharacterPlacement)
2589 BOOL16 WINAPI GetCharWidth16(HDC16,UINT16,UINT16,LPINT16);
2590 BOOL WINAPI GetCharWidth32A(HDC,UINT,UINT,LPINT);
2591 BOOL WINAPI GetCharWidth32W(HDC,UINT,UINT,LPINT);
2592 #define GetCharWidthA GetCharWidth32A
2593 #define GetCharWidthW GetCharWidth32W
2594 #define GetCharWidth32 WINELIB_NAME_AW(GetCharWidth32)
2595 #define GetCharWidth WINELIB_NAME_AW(GetCharWidth)
2596 INT16 WINAPI GetClipBox16(HDC16,LPRECT16);
2597 INT WINAPI GetClipBox(HDC,LPRECT);
2598 HRGN16 WINAPI GetClipRgn16(HDC16);
2599 INT WINAPI GetClipRgn(HDC,HRGN);
2600 BOOL16 WINAPI GetCurrentPositionEx16(HDC16,LPPOINT16);
2601 BOOL WINAPI GetCurrentPositionEx(HDC,LPPOINT);
2602 INT16 WINAPI GetDeviceCaps16(HDC16,INT16);
2603 INT WINAPI GetDeviceCaps(HDC,INT);
2604 UINT16 WINAPI GetDIBColorTable16(HDC16,UINT16,UINT16,RGBQUAD*);
2605 UINT WINAPI GetDIBColorTable(HDC,UINT,UINT,RGBQUAD*);
2606 INT16 WINAPI GetDIBits16(HDC16,HBITMAP16,UINT16,UINT16,LPVOID,LPBITMAPINFO,UINT16);
2607 INT WINAPI GetDIBits(HDC,HBITMAP,UINT,UINT,LPVOID,LPBITMAPINFO,UINT);
2608 DWORD WINAPI GetFontData(HDC,DWORD,DWORD,LPVOID,DWORD);
2609 DWORD WINAPI GetFontLanguageInfo16(HDC16);
2610 DWORD WINAPI GetFontLanguageInfo(HDC);
2611 DWORD WINAPI GetGlyphOutline16(HDC16,UINT16,UINT16,LPGLYPHMETRICS16,DWORD,LPVOID,const MAT2*);
2612 DWORD WINAPI GetGlyphOutlineA(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,LPVOID,const MAT2*);
2613 DWORD WINAPI GetGlyphOutlineW(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,LPVOID,const MAT2*);
2614 #define GetGlyphOutline WINELIB_NAME_AW(GetGlyphOutline)
2615 INT16 WINAPI GetKerningPairs16(HDC16,INT16,LPKERNINGPAIR16);
2616 DWORD WINAPI GetKerningPairsA(HDC,DWORD,LPKERNINGPAIR);
2617 DWORD WINAPI GetKerningPairsW(HDC,DWORD,LPKERNINGPAIR);
2618 #define GetKerningPairs WINELIB_NAME_AW(GetKerningPairs)
2619 INT16 WINAPI GetMapMode16(HDC16);
2620 INT WINAPI GetMapMode(HDC);
2621 HMETAFILE16 WINAPI GetMetaFile16(LPCSTR);
2622 HMETAFILE WINAPI GetMetaFileA(LPCSTR);
2623 HMETAFILE WINAPI GetMetaFileW(LPCWSTR);
2624 #define GetMetaFile WINELIB_NAME_AW(GetMetaFile)
2625 DWORD WINAPI GetNearestColor16(HDC16,DWORD);
2626 DWORD WINAPI GetNearestColor(HDC,DWORD);
2627 UINT16 WINAPI GetNearestPaletteIndex16(HPALETTE16,COLORREF);
2628 UINT WINAPI GetNearestPaletteIndex(HPALETTE,COLORREF);
2629 INT16 WINAPI GetObject16(HANDLE16,INT16,LPVOID);
2630 INT WINAPI GetObjectA(HANDLE,INT,LPVOID);
2631 INT WINAPI GetObjectW(HANDLE,INT,LPVOID);
2632 #define GetObject WINELIB_NAME_AW(GetObject)
2633 UINT16 WINAPI GetOutlineTextMetrics16(HDC16,UINT16,LPOUTLINETEXTMETRIC16);
2634 UINT WINAPI GetOutlineTextMetricsA(HDC,UINT,LPOUTLINETEXTMETRICA);
2635 UINT WINAPI GetOutlineTextMetricsW(HDC,UINT,LPOUTLINETEXTMETRICW);
2636 #define GetOutlineTextMetrics WINELIB_NAME_AW(GetOutlineTextMetrics)
2637 UINT16 WINAPI GetPaletteEntries16(HPALETTE16,UINT16,UINT16,LPPALETTEENTRY);
2638 UINT WINAPI GetPaletteEntries(HPALETTE,UINT,UINT,LPPALETTEENTRY);
2639 INT16 WINAPI GetPath16(HDC16,LPPOINT16,LPBYTE,INT16);
2640 INT WINAPI GetPath(HDC,LPPOINT,LPBYTE,INT);
2641 COLORREF WINAPI GetPixel16(HDC16,INT16,INT16);
2642 COLORREF WINAPI GetPixel(HDC,INT,INT);
2643 INT WINAPI GetPixelFormat(HDC);
2644 INT16 WINAPI GetPolyFillMode16(HDC16);
2645 INT WINAPI GetPolyFillMode(HDC);
2646 BOOL16 WINAPI GetRasterizerCaps16(LPRASTERIZER_STATUS,UINT16);
2647 BOOL WINAPI GetRasterizerCaps(LPRASTERIZER_STATUS,UINT);
2648 DWORD WINAPI GetRegionData16(HRGN16,DWORD,LPRGNDATA);
2649 DWORD WINAPI GetRegionData(HRGN,DWORD,LPRGNDATA);
2650 INT16 WINAPI GetRelAbs16(HDC16);
2651 INT WINAPI GetRelAbs(HDC);
2652 INT16 WINAPI GetRgnBox16(HRGN16,LPRECT16);
2653 INT WINAPI GetRgnBox(HRGN,LPRECT);
2654 INT16 WINAPI GetROP216(HDC16);
2655 INT WINAPI GetROP2(HDC);
2656 HGDIOBJ16 WINAPI GetStockObject16(INT16);
2657 HGDIOBJ WINAPI GetStockObject(INT);
2658 INT16 WINAPI GetStretchBltMode16(HDC16);
2659 INT WINAPI GetStretchBltMode(HDC);
2660 UINT16 WINAPI GetSystemPaletteEntries16(HDC16,UINT16,UINT16,LPPALETTEENTRY);
2661 UINT WINAPI GetSystemPaletteEntries(HDC,UINT,UINT,LPPALETTEENTRY);
2662 UINT16 WINAPI GetSystemPaletteUse16(HDC16);
2663 UINT WINAPI GetSystemPaletteUse(HDC);
2664 UINT16 WINAPI GetTextAlign16(HDC16);
2665 UINT WINAPI GetTextAlign(HDC);
2666 INT16 WINAPI GetTextCharacterExtra16(HDC16);
2667 INT WINAPI GetTextCharacterExtra(HDC);
2668 UINT16 WINAPI GetTextCharset16(HDC16);
2669 UINT WINAPI GetTextCharset(HDC);
2670 COLORREF WINAPI GetTextColor16(HDC16);
2671 COLORREF WINAPI GetTextColor(HDC);
2672 BOOL16 WINAPI GetTextExtentPoint16(HDC16,LPCSTR,INT16,LPSIZE16);
2673 BOOL WINAPI GetTextExtentPointA(HDC,LPCSTR,INT,LPSIZE);
2674 BOOL WINAPI GetTextExtentPointW(HDC,LPCWSTR,INT,LPSIZE);
2675 #define GetTextExtentPoint WINELIB_NAME_AW(GetTextExtentPoint)
2676 BOOL WINAPI GetTextExtentPoint32A(HDC,LPCSTR,INT,LPSIZE);
2677 BOOL WINAPI GetTextExtentPoint32W(HDC,LPCWSTR,INT,LPSIZE);
2678 #define GetTextExtentPoint32 WINELIB_NAME_AW(GetTextExtentPoint32)
2679 INT16 WINAPI GetTextFace16(HDC16,INT16,LPSTR);
2680 INT WINAPI GetTextFaceA(HDC,INT,LPSTR);
2681 INT WINAPI GetTextFaceW(HDC,INT,LPWSTR);
2682 #define GetTextFace WINELIB_NAME_AW(GetTextFace)
2683 BOOL16 WINAPI GetTextMetrics16(HDC16,LPTEXTMETRIC16);
2684 BOOL WINAPI GetTextMetricsA(HDC,LPTEXTMETRICA);
2685 BOOL WINAPI GetTextMetricsW(HDC,LPTEXTMETRICW);
2686 #define GetTextMetrics WINELIB_NAME_AW(GetTextMetrics)
2687 BOOL16 WINAPI GetViewportExtEx16(HDC16,LPSIZE16);
2688 BOOL WINAPI GetViewportExtEx(HDC,LPSIZE);
2689 BOOL16 WINAPI GetViewportOrgEx16(HDC16,LPPOINT16);
2690 BOOL WINAPI GetViewportOrgEx(HDC,LPPOINT);
2691 BOOL16 WINAPI GetWindowExtEx16(HDC16,LPSIZE16);
2692 BOOL WINAPI GetWindowExtEx(HDC,LPSIZE);
2693 BOOL16 WINAPI GetWindowOrgEx16(HDC16,LPPOINT16);
2694 BOOL WINAPI GetWindowOrgEx(HDC,LPPOINT);
2695 INT16 WINAPI IntersectClipRect16(HDC16,INT16,INT16,INT16,INT16);
2696 INT WINAPI IntersectClipRect(HDC,INT,INT,INT,INT);
2697 BOOL16 WINAPI InvertRgn16(HDC16,HRGN16);
2698 BOOL WINAPI InvertRgn(HDC,HRGN);
2699 VOID WINAPI LineDDA16(INT16,INT16,INT16,INT16,LINEDDAPROC16,LPARAM);
2700 BOOL WINAPI LineDDA(INT,INT,INT,INT,LINEDDAPROC,LPARAM);
2701 BOOL16 WINAPI LineTo16(HDC16,INT16,INT16);
2702 BOOL WINAPI LineTo(HDC,INT,INT);
2703 BOOL16 WINAPI LPtoDP16(HDC16,LPPOINT16,INT16);
2704 BOOL WINAPI LPtoDP(HDC,LPPOINT,INT);
2705 BOOL16 WINAPI MoveToEx16(HDC16,INT16,INT16,LPPOINT16);
2706 BOOL WINAPI MoveToEx(HDC,INT,INT,LPPOINT);
2707 INT16 WINAPI MulDiv16(INT16,INT16,INT16);
2708 /* FIXME This is defined in kernel32.spec !?*/
2709 INT WINAPI MulDiv(INT,INT,INT);
2710 INT16 WINAPI OffsetClipRgn16(HDC16,INT16,INT16);
2711 INT WINAPI OffsetClipRgn(HDC,INT,INT);
2712 INT16 WINAPI OffsetRgn16(HRGN16,INT16,INT16);
2713 INT WINAPI OffsetRgn(HRGN,INT,INT);
2714 BOOL16 WINAPI OffsetViewportOrgEx16(HDC16,INT16,INT16,LPPOINT16);
2715 BOOL WINAPI OffsetViewportOrgEx(HDC,INT,INT,LPPOINT);
2716 BOOL16 WINAPI OffsetWindowOrgEx16(HDC16,INT16,INT16,LPPOINT16);
2717 BOOL WINAPI OffsetWindowOrgEx(HDC,INT,INT,LPPOINT);
2718 BOOL16 WINAPI PaintRgn16(HDC16,HRGN16);
2719 BOOL WINAPI PaintRgn(HDC,HRGN);
2720 BOOL16 WINAPI PatBlt16(HDC16,INT16,INT16,INT16,INT16,DWORD);
2721 BOOL WINAPI PatBlt(HDC,INT,INT,INT,INT,DWORD);
2722 HRGN16 WINAPI PathToRegion16(HDC16);
2723 HRGN WINAPI PathToRegion(HDC);
2724 BOOL16 WINAPI Pie16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16);
2725 BOOL WINAPI Pie(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
2726 BOOL16 WINAPI PlayMetaFile16(HDC16,HMETAFILE16);
2727 BOOL WINAPI PlayMetaFile(HDC,HMETAFILE);
2728 VOID WINAPI PlayMetaFileRecord16(HDC16,LPHANDLETABLE16,LPMETARECORD,UINT16);
2729 BOOL WINAPI PlayMetaFileRecord(HDC,LPHANDLETABLE,LPMETARECORD,UINT);
2730 BOOL16 WINAPI PolyBezier16(HDC16,const POINT16*,INT16);
2731 BOOL WINAPI PolyBezier(HDC,const POINT*,DWORD);
2732 BOOL16 WINAPI PolyBezierTo16(HDC16,const POINT16*,INT16);
2733 BOOL WINAPI PolyBezierTo(HDC,const POINT*,DWORD);
2734 BOOL16 WINAPI PolyPolygon16(HDC16,const POINT16*,const INT16*,UINT16);
2735 BOOL WINAPI PolyPolygon(HDC,const POINT*,const INT*,UINT);
2736 BOOL16 WINAPI Polygon16(HDC16,const POINT16*,INT16);
2737 BOOL WINAPI Polygon(HDC,const POINT*,INT);
2738 BOOL16 WINAPI Polyline16(HDC16,const POINT16*,INT16);
2739 BOOL WINAPI Polyline(HDC,const POINT*,INT);
2740 BOOL WINAPI PolylineTo(HDC,const POINT*,DWORD);
2741 BOOL16 WINAPI PtInRegion16(HRGN16,INT16,INT16);
2742 BOOL WINAPI PtInRegion(HRGN,INT,INT);
2743 BOOL16 WINAPI PtVisible16(HDC16,INT16,INT16);
2744 BOOL WINAPI PtVisible(HDC,INT,INT);
2745 /* FIXME This is defined in user.spec !? */
2746 UINT16 WINAPI RealizePalette16(HDC16);
2747 UINT WINAPI RealizePalette(HDC);
2748 BOOL16 WINAPI Rectangle16(HDC16,INT16,INT16,INT16,INT16);
2749 BOOL WINAPI Rectangle(HDC,INT,INT,INT,INT);
2750 BOOL16 WINAPI RectInRegion16(HRGN16,const RECT16 *);
2751 BOOL WINAPI RectInRegion(HRGN,const RECT *);
2752 BOOL16 WINAPI RectVisible16(HDC16,const RECT16*);
2753 BOOL WINAPI RectVisible(HDC,const RECT*);
2754 BOOL16 WINAPI RemoveFontResource16(SEGPTR);
2755 BOOL WINAPI RemoveFontResourceA(LPCSTR);
2756 BOOL WINAPI RemoveFontResourceW(LPCWSTR);
2757 #define RemoveFontResource WINELIB_NAME_AW(RemoveFontResource)
2758 HDC16 WINAPI ResetDC16(HDC16,const DEVMODE16 *);
2759 HDC WINAPI ResetDCA(HDC,const DEVMODEA *);
2760 HDC WINAPI ResetDCW(HDC,const DEVMODEW *);
2761 #define ResetDC WINELIB_NAME_AW(ResetDC)
2762 BOOL16 WINAPI ResizePalette16(HPALETTE16,UINT16);
2763 BOOL WINAPI ResizePalette(HPALETTE,UINT);
2764 BOOL16 WINAPI RestoreDC16(HDC16,INT16);
2765 BOOL WINAPI RestoreDC(HDC,INT);
2766 BOOL16 WINAPI RoundRect16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16);
2767 BOOL WINAPI RoundRect(HDC,INT,INT,INT,INT,INT,INT);
2768 INT16 WINAPI SaveDC16(HDC16);
2769 INT WINAPI SaveDC(HDC);
2770 BOOL16 WINAPI ScaleViewportExtEx16(HDC16,INT16,INT16,INT16,INT16,LPSIZE16);
2771 BOOL WINAPI ScaleViewportExtEx(HDC,INT,INT,INT,INT,LPSIZE);
2772 BOOL16 WINAPI ScaleWindowExtEx16(HDC16,INT16,INT16,INT16,INT16,LPSIZE16);
2773 BOOL WINAPI ScaleWindowExtEx(HDC,INT,INT,INT,INT,LPSIZE);
2774 BOOL16 WINAPI SelectClipPath16(HDC16,INT16);
2775 BOOL WINAPI SelectClipPath(HDC,INT);
2776 INT16 WINAPI SelectClipRgn16(HDC16,HRGN16);
2777 INT WINAPI SelectClipRgn(HDC,HRGN);
2778 HGDIOBJ16 WINAPI SelectObject16(HDC16,HGDIOBJ16);
2779 HGDIOBJ WINAPI SelectObject(HDC,HGDIOBJ);
2780 /* FIXME This is defined in user.spec !? */
2781 HPALETTE16 WINAPI SelectPalette16(HDC16,HPALETTE16,BOOL16);
2782 HPALETTE WINAPI SelectPalette(HDC,HPALETTE,BOOL);
2783 INT16 WINAPI SetAbortProc16(HDC16,SEGPTR);
2784 INT WINAPI SetAbortProc(HDC,ABORTPROC);
2785 INT16 WINAPI SetArcDirection16(HDC16,INT16);
2786 INT WINAPI SetArcDirection(HDC,INT);
2787 LONG WINAPI SetBitmapBits16(HBITMAP16,LONG,LPCVOID);
2788 LONG WINAPI SetBitmapBits(HBITMAP,LONG,LPCVOID);
2789 BOOL16 WINAPI SetBitmapDimensionEx16(HBITMAP16,INT16,INT16,LPSIZE16);
2790 BOOL WINAPI SetBitmapDimensionEx(HBITMAP,INT,INT,LPSIZE);
2791 COLORREF WINAPI SetBkColor16(HDC16,COLORREF);
2792 COLORREF WINAPI SetBkColor(HDC,COLORREF);
2793 INT16 WINAPI SetBkMode16(HDC16,INT16);
2794 INT WINAPI SetBkMode(HDC,INT);
2795 UINT16 WINAPI SetBoundsRect16(HDC16,const RECT16*,UINT16);
2796 UINT WINAPI SetBoundsRect(HDC,const RECT*,UINT);
2797 UINT16 WINAPI SetDIBColorTable16(HDC16,UINT16,UINT16,RGBQUAD*);
2798 UINT WINAPI SetDIBColorTable(HDC,UINT,UINT,RGBQUAD*);
2799 INT16 WINAPI SetDIBits16(HDC16,HBITMAP16,UINT16,UINT16,LPCVOID,const BITMAPINFO*,UINT16);
2800 INT WINAPI SetDIBits(HDC,HBITMAP,UINT,UINT,LPCVOID,const BITMAPINFO*,UINT);
2801 INT16 WINAPI SetDIBitsToDevice16(HDC16,INT16,INT16,INT16,INT16,INT16,
2802 INT16,UINT16,UINT16,LPCVOID,const BITMAPINFO*,UINT16);
2803 INT WINAPI SetDIBitsToDevice(HDC,INT,INT,DWORD,DWORD,INT,
2804 INT,UINT,UINT,LPCVOID,const BITMAPINFO*,UINT);
2805 INT16 WINAPI SetMapMode16(HDC16,INT16);
2806 INT WINAPI SetMapMode(HDC,INT);
2807 DWORD WINAPI SetMapperFlags16(HDC16,DWORD);
2808 DWORD WINAPI SetMapperFlags(HDC,DWORD);
2809 UINT16 WINAPI SetPaletteEntries16(HPALETTE16,UINT16,UINT16,LPPALETTEENTRY);
2810 UINT WINAPI SetPaletteEntries(HPALETTE,UINT,UINT,LPPALETTEENTRY);
2811 COLORREF WINAPI SetPixel16(HDC16,INT16,INT16,COLORREF);
2812 COLORREF WINAPI SetPixel(HDC,INT,INT,COLORREF);
2813 BOOL WINAPI SetPixelV(HDC,INT,INT,COLORREF);
2814 BOOL WINAPI SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR*);
2815 INT16 WINAPI SetPolyFillMode16(HDC16,INT16);
2816 INT WINAPI SetPolyFillMode(HDC,INT);
2817 VOID WINAPI SetRectRgn16(HRGN16,INT16,INT16,INT16,INT16);
2818 VOID WINAPI SetRectRgn(HRGN,INT,INT,INT,INT);
2819 INT16 WINAPI SetRelAbs16(HDC16,INT16);
2820 INT WINAPI SetRelAbs(HDC,INT);
2821 INT16 WINAPI SetROP216(HDC16,INT16);
2822 INT WINAPI SetROP2(HDC,INT);
2823 INT16 WINAPI SetStretchBltMode16(HDC16,INT16);
2824 INT WINAPI SetStretchBltMode(HDC,INT);
2825 UINT16 WINAPI SetSystemPaletteUse16(HDC16,UINT16);
2826 UINT WINAPI SetSystemPaletteUse(HDC,UINT);
2827 UINT16 WINAPI SetTextAlign16(HDC16,UINT16);
2828 UINT WINAPI SetTextAlign(HDC,UINT);
2829 INT16 WINAPI SetTextCharacterExtra16(HDC16,INT16);
2830 INT WINAPI SetTextCharacterExtra(HDC,INT);
2831 COLORREF WINAPI SetTextColor16(HDC16,COLORREF);
2832 COLORREF WINAPI SetTextColor(HDC,COLORREF);
2833 INT16 WINAPI SetTextJustification16(HDC16,INT16,INT16);
2834 BOOL WINAPI SetTextJustification(HDC,INT,INT);
2835 BOOL16 WINAPI SetViewportExtEx16(HDC16,INT16,INT16,LPSIZE16);
2836 BOOL WINAPI SetViewportExtEx(HDC,INT,INT,LPSIZE);
2837 BOOL16 WINAPI SetViewportOrgEx16(HDC16,INT16,INT16,LPPOINT16);
2838 BOOL WINAPI SetViewportOrgEx(HDC,INT,INT,LPPOINT);
2839 BOOL16 WINAPI SetWindowExtEx16(HDC16,INT16,INT16,LPSIZE16);
2840 BOOL WINAPI SetWindowExtEx(HDC,INT,INT,LPSIZE);
2841 BOOL16 WINAPI SetWindowOrgEx16(HDC16,INT16,INT16,LPPOINT16);
2842 BOOL WINAPI SetWindowOrgEx(HDC,INT,INT,LPPOINT);
2843 HENHMETAFILE WINAPI SetWinMetaFileBits(UINT,CONST BYTE*,HDC,CONST METAFILEPICT *);
2844 INT16 WINAPI StartDoc16(HDC16,const DOCINFO16*);
2845 INT WINAPI StartDocA(HDC,const DOCINFOA*);
2846 INT WINAPI StartDocW(HDC,const DOCINFOW*);
2847 #define StartDoc WINELIB_NAME_AW(StartDoc)
2848 INT16 WINAPI StartPage16(HDC16);
2849 INT WINAPI StartPage(HDC);
2850 INT16 WINAPI EndPage16(HDC16);
2851 INT WINAPI EndPage(HDC);
2852 BOOL16 WINAPI StretchBlt16(HDC16,INT16,INT16,INT16,INT16,HDC16,INT16,
2853 INT16,INT16,INT16,DWORD);
2854 BOOL WINAPI StretchBlt(HDC,INT,INT,INT,INT,HDC,INT,
2855 INT,INT,INT,DWORD);
2856 INT16 WINAPI StretchDIBits16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,
2857 INT16,INT16,const VOID*,const BITMAPINFO*,UINT16,DWORD);
2858 INT WINAPI StretchDIBits(HDC,INT,INT,INT,INT,INT,INT,
2859 INT,INT,const VOID*,const BITMAPINFO*,UINT,DWORD);
2860 BOOL16 WINAPI StrokeAndFillPath16(HDC16);
2861 BOOL WINAPI StrokeAndFillPath(HDC);
2862 BOOL16 WINAPI StrokePath16(HDC16);
2863 BOOL WINAPI StrokePath(HDC);
2864 BOOL WINAPI SwapBuffers(HDC);
2865 BOOL16 WINAPI TextOut16(HDC16,INT16,INT16,LPCSTR,INT16);
2866 BOOL WINAPI TextOutA(HDC,INT,INT,LPCSTR,INT);
2867 BOOL WINAPI TextOutW(HDC,INT,INT,LPCWSTR,INT);
2868 #define TextOut WINELIB_NAME_AW(TextOut)
2869 BOOL16 WINAPI UnrealizeObject16(HGDIOBJ16);
2870 BOOL WINAPI UnrealizeObject(HGDIOBJ);
2871 INT16 WINAPI UpdateColors16(HDC16);
2872 BOOL WINAPI UpdateColors(HDC);
2873 BOOL16 WINAPI WidenPath16(HDC16);
2874 BOOL WINAPI WidenPath(HDC);
2876 #ifdef __cplusplus
2878 #endif
2880 #endif /* __WINE_WINGDI_H */