Of course we want the last 100 lines, not the first 100 lines.
[wine/multimedia.git] / include / wingdi.h
blobfea4b2221b71eaae5c284d1e56c4182135fea215
1 #ifndef __WINE_WINGDI_H
2 #define __WINE_WINGDI_H
4 #include "wintypes.h"
6 #pragma pack(1)
8 typedef struct _ABCFLOAT {
9 FLOAT abcfA;
10 FLOAT abcfB;
11 FLOAT abcfC;
12 } ABCFLOAT, *PABCFLOAT, *LPABCFLOAT;
14 typedef struct
16 WORD wFirst;
17 WORD wSecond;
18 INT16 iKernAmount;
19 } KERNINGPAIR16, *LPKERNINGPAIR16;
21 typedef struct
23 WORD wFirst;
24 WORD wSecond;
25 INT32 iKernAmount;
26 } KERNINGPAIR32, *LPKERNINGPAIR32;
28 DECL_WINELIB_TYPE(KERNINGPAIR)
29 DECL_WINELIB_TYPE(LPKERNINGPAIR)
31 typedef struct
33 HDC16 hdc;
34 BOOL16 fErase;
35 RECT16 rcPaint;
36 BOOL16 fRestore;
37 BOOL16 fIncUpdate;
38 BYTE rgbReserved[16];
39 } PAINTSTRUCT16, *LPPAINTSTRUCT16;
41 typedef struct
43 HDC32 hdc;
44 BOOL32 fErase;
45 RECT32 rcPaint;
46 BOOL32 fRestore;
47 BOOL32 fIncUpdate;
48 BYTE rgbReserved[32];
49 } PAINTSTRUCT32, *LPPAINTSTRUCT32;
51 DECL_WINELIB_TYPE(PAINTSTRUCT)
52 DECL_WINELIB_TYPE(LPPAINTSTRUCT)
55 typedef struct tagPIXELFORMATDESCRIPTOR {
56 WORD nSize;
57 WORD nVersion;
58 DWORD dwFlags;
59 BYTE iPixelType;
60 BYTE cColorBits;
61 BYTE cRedBits;
62 BYTE cRedShift;
63 BYTE cGreenBits;
64 BYTE cGreenShift;
65 BYTE cBlueBits;
66 BYTE cBlueShift;
67 BYTE cAlphaBits;
68 BYTE cAlphaShift;
69 BYTE cAccumBits;
70 BYTE cAccumRedBits;
71 BYTE cAccumGreenBits;
72 BYTE cAccumBlueBits;
73 BYTE cAccumAlphaBits;
74 BYTE cDepthBits;
75 BYTE cStencilBits;
76 BYTE cAuxBuffers;
77 BYTE iLayerType;
78 BYTE bReserved;
79 DWORD dwLayerMask;
80 DWORD dwVisibleMask;
81 DWORD dwDamageMask;
82 } PIXELFORMATDESCRIPTOR, *LPPIXELFORMATDESCRIPTOR;
84 typedef struct tagCOLORADJUSTMENT
86 WORD caSize;
87 WORD caFlags;
88 WORD caIlluminantIndex;
89 WORD caRedGamma;
90 WORD caGreenGamma;
91 WORD caBlueGamma;
92 WORD caReferenceBlack;
93 WORD caReferenceWhite;
94 SHORT caContrast;
95 SHORT caBrightness;
96 SHORT caColorfulness;
97 SHORT caRedGreenTint;
98 } COLORADJUSTMENT, *PCOLORADJUSTMENT, *LPCOLORADJUSTMENT;
100 /* Raster operations */
102 #define R2_BLACK 1
103 #define R2_NOTMERGEPEN 2
104 #define R2_MASKNOTPEN 3
105 #define R2_NOTCOPYPEN 4
106 #define R2_MASKPENNOT 5
107 #define R2_NOT 6
108 #define R2_XORPEN 7
109 #define R2_NOTMASKPEN 8
110 #define R2_MASKPEN 9
111 #define R2_NOTXORPEN 10
112 #define R2_NOP 11
113 #define R2_MERGENOTPEN 12
114 #define R2_COPYPEN 13
115 #define R2_MERGEPENNOT 14
116 #define R2_MERGEPEN 15
117 #define R2_WHITE 16
119 #define SRCCOPY 0xcc0020
120 #define SRCPAINT 0xee0086
121 #define SRCAND 0x8800c6
122 #define SRCINVERT 0x660046
123 #define SRCERASE 0x440328
124 #define NOTSRCCOPY 0x330008
125 #define NOTSRCERASE 0x1100a6
126 #define MERGECOPY 0xc000ca
127 #define MERGEPAINT 0xbb0226
128 #define PATCOPY 0xf00021
129 #define PATPAINT 0xfb0a09
130 #define PATINVERT 0x5a0049
131 #define DSTINVERT 0x550009
132 #define BLACKNESS 0x000042
133 #define WHITENESS 0xff0062
135 /* StretchBlt() modes */
136 #define BLACKONWHITE 1
137 #define WHITEONBLACK 2
138 #define COLORONCOLOR 3
140 #define STRETCH_ANDSCANS BLACKONWHITE
141 #define STRETCH_ORSCANS WHITEONBLACK
142 #define STRETCH_DELETESCANS COLORONCOLOR
144 /* Colors */
146 typedef DWORD COLORREF;
148 #define RGB(r,g,b) ((COLORREF)((r) | ((g) << 8) | ((b) << 16)))
149 #define PALETTERGB(r,g,b) (0x02000000 | RGB(r,g,b))
150 #define PALETTEINDEX(i) ((COLORREF)(0x01000000 | (WORD)(i)))
152 #define GetRValue(rgb) ((rgb) & 0xff)
153 #define GetGValue(rgb) (((rgb) >> 8) & 0xff)
154 #define GetBValue(rgb) (((rgb) >> 16) & 0xff)
156 #define COLOR_SCROLLBAR 0
157 #define COLOR_BACKGROUND 1
158 #define COLOR_ACTIVECAPTION 2
159 #define COLOR_INACTIVECAPTION 3
160 #define COLOR_MENU 4
161 #define COLOR_WINDOW 5
162 #define COLOR_WINDOWFRAME 6
163 #define COLOR_MENUTEXT 7
164 #define COLOR_WINDOWTEXT 8
165 #define COLOR_CAPTIONTEXT 9
166 #define COLOR_ACTIVEBORDER 10
167 #define COLOR_INACTIVEBORDER 11
168 #define COLOR_APPWORKSPACE 12
169 #define COLOR_HIGHLIGHT 13
170 #define COLOR_HIGHLIGHTTEXT 14
171 #define COLOR_BTNFACE 15
172 #define COLOR_BTNSHADOW 16
173 #define COLOR_GRAYTEXT 17
174 #define COLOR_BTNTEXT 18
175 #define COLOR_INACTIVECAPTIONTEXT 19
176 #define COLOR_BTNHIGHLIGHT 20
177 /* win95 colors */
178 #define COLOR_3DDKSHADOW 21
179 #define COLOR_3DLIGHT 22
180 #define COLOR_INFOTEXT 23
181 #define COLOR_INFOBK 24
182 #define COLOR_DESKTOP COLOR_BACKGROUND
183 #define COLOR_3DFACE COLOR_BTNFACE
184 #define COLOR_3DSHADOW COLOR_BTNSHADOW
185 #define COLOR_3DHIGHLIGHT COLOR_BTNHIGHLIGHT
186 #define COLOR_3DHILIGHT COLOR_BTNHIGHLIGHT
187 #define COLOR_BTNHILIGHT COLOR_BTNHIGHLIGHT
188 /* win98 colors */
189 #define COLOR_ALTERNATEBTNFACE 25 /* undocumented, constant's name unknown */
190 #define COLOR_HOTLIGHT 26
191 #define COLOR_GRADIENTACTIVECAPTION 27
192 #define COLOR_GRADIENTINACTIVECAPTION 28
194 /* WM_CTLCOLOR values */
195 #define CTLCOLOR_MSGBOX 0
196 #define CTLCOLOR_EDIT 1
197 #define CTLCOLOR_LISTBOX 2
198 #define CTLCOLOR_BTN 3
199 #define CTLCOLOR_DLG 4
200 #define CTLCOLOR_SCROLLBAR 5
201 #define CTLCOLOR_STATIC 6
203 #define ICM_OFF 1
204 #define ICM_ON 2
205 #define ICM_QUERY 3
207 /* Bounds Accumulation APIs */
208 #define DCB_RESET 0x0001
209 #define DCB_ACCUMULATE 0x0002
210 #define DCB_DIRTY DCB_ACCUMULATE
211 #define DCB_SET (DCB_RESET | DCB_ACCUMULATE)
212 #define DCB_ENABLE 0x0004
213 #define DCB_DISABLE 0x0008
215 /* Bitmaps */
217 typedef struct
219 INT16 bmType;
220 INT16 bmWidth;
221 INT16 bmHeight;
222 INT16 bmWidthBytes;
223 BYTE bmPlanes;
224 BYTE bmBitsPixel;
225 SEGPTR bmBits WINE_PACKED;
226 } BITMAP16, *LPBITMAP16;
228 typedef struct
230 INT32 bmType;
231 INT32 bmWidth;
232 INT32 bmHeight;
233 INT32 bmWidthBytes;
234 WORD bmPlanes;
235 WORD bmBitsPixel;
236 LPVOID bmBits WINE_PACKED;
237 } BITMAP32, *LPBITMAP32;
239 DECL_WINELIB_TYPE(BITMAP)
240 DECL_WINELIB_TYPE(LPBITMAP)
242 /* Brushes */
244 typedef struct
246 UINT16 lbStyle;
247 COLORREF lbColor WINE_PACKED;
248 INT16 lbHatch;
249 } LOGBRUSH16, *LPLOGBRUSH16;
251 typedef struct
253 UINT32 lbStyle;
254 COLORREF lbColor;
255 INT32 lbHatch;
256 } LOGBRUSH32, *LPLOGBRUSH32;
258 DECL_WINELIB_TYPE(LOGBRUSH)
259 DECL_WINELIB_TYPE(LPLOGBRUSH)
261 /* Brush styles */
262 #define BS_SOLID 0
263 #define BS_NULL 1
264 #define BS_HOLLOW 1
265 #define BS_HATCHED 2
266 #define BS_PATTERN 3
267 #define BS_INDEXED 4
268 #define BS_DIBPATTERN 5
269 #define BS_DIBPATTERNPT 6
270 #define BS_PATTERN8X8 7
271 #define BS_DIBPATTERN8X8 8
272 #define BS_MONOPATTERN 9
274 /* Hatch styles */
275 #define HS_HORIZONTAL 0
276 #define HS_VERTICAL 1
277 #define HS_FDIAGONAL 2
278 #define HS_BDIAGONAL 3
279 #define HS_CROSS 4
280 #define HS_DIAGCROSS 5
282 /* Fonts */
284 #define LF_FACESIZE 32
285 #define LF_FULLFACESIZE 64
287 #define RASTER_FONTTYPE 0x0001
288 #define DEVICE_FONTTYPE 0x0002
289 #define TRUETYPE_FONTTYPE 0x0004
291 typedef struct
293 INT16 lfHeight;
294 INT16 lfWidth;
295 INT16 lfEscapement;
296 INT16 lfOrientation;
297 INT16 lfWeight;
298 BYTE lfItalic;
299 BYTE lfUnderline;
300 BYTE lfStrikeOut;
301 BYTE lfCharSet;
302 BYTE lfOutPrecision;
303 BYTE lfClipPrecision;
304 BYTE lfQuality;
305 BYTE lfPitchAndFamily;
306 CHAR lfFaceName[LF_FACESIZE] WINE_PACKED;
307 } LOGFONT16, *LPLOGFONT16;
309 typedef struct
311 INT32 lfHeight;
312 INT32 lfWidth;
313 INT32 lfEscapement;
314 INT32 lfOrientation;
315 INT32 lfWeight;
316 BYTE lfItalic;
317 BYTE lfUnderline;
318 BYTE lfStrikeOut;
319 BYTE lfCharSet;
320 BYTE lfOutPrecision;
321 BYTE lfClipPrecision;
322 BYTE lfQuality;
323 BYTE lfPitchAndFamily;
324 CHAR lfFaceName[LF_FACESIZE];
325 } LOGFONT32A, *LPLOGFONT32A;
327 typedef struct
329 INT32 lfHeight;
330 INT32 lfWidth;
331 INT32 lfEscapement;
332 INT32 lfOrientation;
333 INT32 lfWeight;
334 BYTE lfItalic;
335 BYTE lfUnderline;
336 BYTE lfStrikeOut;
337 BYTE lfCharSet;
338 BYTE lfOutPrecision;
339 BYTE lfClipPrecision;
340 BYTE lfQuality;
341 BYTE lfPitchAndFamily;
342 WCHAR lfFaceName[LF_FACESIZE];
343 } LOGFONT32W, *LPLOGFONT32W;
345 DECL_WINELIB_TYPE_AW(LOGFONT)
346 DECL_WINELIB_TYPE_AW(LPLOGFONT)
348 typedef struct
350 LOGFONT16 elfLogFont;
351 BYTE elfFullName[LF_FULLFACESIZE] WINE_PACKED;
352 BYTE elfStyle[LF_FACESIZE] WINE_PACKED;
353 } ENUMLOGFONT16, *LPENUMLOGFONT16;
355 typedef struct
357 LOGFONT32A elfLogFont;
358 BYTE elfFullName[LF_FULLFACESIZE] WINE_PACKED;
359 BYTE elfStyle[LF_FACESIZE] WINE_PACKED;
360 } ENUMLOGFONT32A, *LPENUMLOGFONT32A;
362 typedef struct
364 LOGFONT32W elfLogFont;
365 WCHAR elfFullName[LF_FULLFACESIZE] WINE_PACKED;
366 WCHAR elfStyle[LF_FACESIZE] WINE_PACKED;
367 } ENUMLOGFONT32W, *LPENUMLOGFONT32W;
369 typedef struct
371 LOGFONT16 elfLogFont;
372 BYTE elfFullName[LF_FULLFACESIZE] WINE_PACKED;
373 BYTE elfStyle[LF_FACESIZE] WINE_PACKED;
374 BYTE elfScript[LF_FACESIZE] WINE_PACKED;
375 } ENUMLOGFONTEX16, *LPENUMLOGFONTEX16;
377 typedef struct
379 LOGFONT32A elfLogFont;
380 BYTE elfFullName[LF_FULLFACESIZE] WINE_PACKED;
381 BYTE elfStyle[LF_FACESIZE] WINE_PACKED;
382 BYTE elfScript[LF_FACESIZE] WINE_PACKED;
383 } ENUMLOGFONTEX32A,*LPENUMLOGFONTEX32A;
385 typedef struct
387 LOGFONT32W elfLogFont;
388 WCHAR elfFullName[LF_FULLFACESIZE] WINE_PACKED;
389 WCHAR elfStyle[LF_FACESIZE] WINE_PACKED;
390 WCHAR elfScript[LF_FACESIZE] WINE_PACKED;
391 } ENUMLOGFONTEX32W,*LPENUMLOGFONTEX32W;
393 DECL_WINELIB_TYPE_AW(ENUMLOGFONT)
394 DECL_WINELIB_TYPE_AW(LPENUMLOGFONT)
395 DECL_WINELIB_TYPE_AW(LPENUMLOGFONTEX)
398 * The FONTSIGNATURE tells which Unicode ranges and which code pages
399 * have glyphs in a font.
401 * fsUsb 128-bit bitmap. The most significant bits are 10 (magic number).
402 * The remaining 126 bits map the Unicode ISO 10646 subranges
403 * for which the font provides glyphs.
405 * fsCsb 64-bit bitmap. The low 32 bits map the Windows codepages for
406 * which the font provides glyphs. The high 32 bits are for
407 * non Windows codepages.
409 typedef struct
411 DWORD fsUsb[4];
412 DWORD fsCsb[2];
413 } FONTSIGNATURE,*LPFONTSIGNATURE;
415 typedef struct
417 UINT32 ciCharset; /* character set */
418 UINT32 ciACP; /* ANSI code page */
419 FONTSIGNATURE fs;
420 } CHARSETINFO,*LPCHARSETINFO;
422 /* Flags for TranslateCharsetInfo */
423 #define TCI_SRCCHARSET 1
424 #define TCI_SRCCODEPAGE 2
425 #define TCI_SRCFONTSIG 3
427 /* Flags for ModifyWorldTransform */
428 #define MWT_IDENTITY 1
429 #define MWT_LEFTMULTIPLY 2
430 #define MWT_RIGHTMULTIPLY 3
432 typedef struct
434 FLOAT eM11;
435 FLOAT eM12;
436 FLOAT eM21;
437 FLOAT eM22;
438 FLOAT eDx;
439 FLOAT eDy;
440 } XFORM, *LPXFORM;
442 typedef struct
444 INT16 txfHeight;
445 INT16 txfWidth;
446 INT16 txfEscapement;
447 INT16 txfOrientation;
448 INT16 txfWeight;
449 CHAR txfItalic;
450 CHAR txfUnderline;
451 CHAR txfStrikeOut;
452 CHAR txfOutPrecision;
453 CHAR txfClipPrecision;
454 INT16 txfAccelerator WINE_PACKED;
455 INT16 txfOverhang WINE_PACKED;
456 } TEXTXFORM16, *LPTEXTXFORM16;
458 typedef struct
460 INT16 dfType;
461 INT16 dfPoints;
462 INT16 dfVertRes;
463 INT16 dfHorizRes;
464 INT16 dfAscent;
465 INT16 dfInternalLeading;
466 INT16 dfExternalLeading;
467 CHAR dfItalic;
468 CHAR dfUnderline;
469 CHAR dfStrikeOut;
470 INT16 dfWeight;
471 BYTE dfCharSet;
472 INT16 dfPixWidth;
473 INT16 dfPixHeight;
474 CHAR dfPitchAndFamily;
475 INT16 dfAvgWidth;
476 INT16 dfMaxWidth;
477 CHAR dfFirstChar;
478 CHAR dfLastChar;
479 CHAR dfDefaultChar;
480 CHAR dfBreakChar;
481 INT16 dfWidthBytes;
482 LONG dfDevice;
483 LONG dfFace;
484 LONG dfBitsPointer;
485 LONG dfBitsOffset;
486 CHAR dfReserved;
487 LONG dfFlags;
488 INT16 dfAspace;
489 INT16 dfBspace;
490 INT16 dfCspace;
491 LONG dfColorPointer;
492 LONG dfReserved1[4];
493 } FONTINFO16, *LPFONTINFO16;
495 /* lfWeight values */
496 #define FW_DONTCARE 0
497 #define FW_THIN 100
498 #define FW_EXTRALIGHT 200
499 #define FW_ULTRALIGHT 200
500 #define FW_LIGHT 300
501 #define FW_NORMAL 400
502 #define FW_REGULAR 400
503 #define FW_MEDIUM 500
504 #define FW_SEMIBOLD 600
505 #define FW_DEMIBOLD 600
506 #define FW_BOLD 700
507 #define FW_EXTRABOLD 800
508 #define FW_ULTRABOLD 800
509 #define FW_HEAVY 900
510 #define FW_BLACK 900
512 /* lfCharSet values */
513 #define ANSI_CHARSET (BYTE)0 /* CP1252, ansi-0, iso8859-{1,15} */
514 #define DEFAULT_CHARSET (BYTE)1
515 #define SYMBOL_CHARSET (BYTE)2
516 #define SHIFTJIS_CHARSET (BYTE)128 /* CP932 */
517 #define HANGEUL_CHARSET (BYTE)129 /* CP949, ksc5601.1987-0 */
518 #define HANGUL_CHARSET HANGEUL_CHARSET
519 #define GB2312_CHARSET (BYTE)134 /* CP936, gb2312.1980-0 */
520 #define CHINESEBIG5_CHARSET (BYTE)136 /* CP950, big5.et-0 */
521 #define GREEK_CHARSET (BYTE)161 /* CP1253 */
522 #define TURKISH_CHARSET (BYTE)162 /* CP1254, -iso8859-9 */
523 #define HEBREW_CHARSET (BYTE)177 /* CP1255, -iso8859-8 */
524 #define ARABIC_CHARSET (BYTE)178 /* CP1256, -iso8859-6 */
525 #define BALTIC_CHARSET (BYTE)186 /* CP1257, -iso8859-10 */
526 #define RUSSIAN_CHARSET (BYTE)204 /* CP1251, -iso8859-5 */
527 #define EE_CHARSET (BYTE)238 /* CP1250, -iso8859-2 */
528 #define EASTEUROPE_CHARSET EE_CHARSET
529 #define THAI_CHARSET (BYTE)222 /* CP874, iso8859-11, tis620 */
530 #define JOHAB_CHARSET (BYTE)130 /* korean (johab) CP1361 */
531 #define OEM_CHARSET (BYTE)255
532 /* I don't know if the values of *_CHARSET macros are defined in Windows
533 * or if we can choose them as we want. -- srtxg
535 #define VISCII_CHARSET (BYTE)240 /* viscii1.1-1 */
536 #define TCVN_CHARSET (BYTE)241 /* tcvn-0 */
537 #define KOI8_CHARSET (BYTE)242 /* koi8-{r,u,ru} */
538 #define ISO3_CHARSET (BYTE)243 /* iso8859-3 */
539 #define ISO4_CHARSET (BYTE)244 /* iso8859-4 */
541 /* lfOutPrecision values */
542 #define OUT_DEFAULT_PRECIS 0
543 #define OUT_STRING_PRECIS 1
544 #define OUT_CHARACTER_PRECIS 2
545 #define OUT_STROKE_PRECIS 3
546 #define OUT_TT_PRECIS 4
547 #define OUT_DEVICE_PRECIS 5
548 #define OUT_RASTER_PRECIS 6
549 #define OUT_TT_ONLY_PRECIS 7
551 /* lfClipPrecision values */
552 #define CLIP_DEFAULT_PRECIS 0x00
553 #define CLIP_CHARACTER_PRECIS 0x01
554 #define CLIP_STROKE_PRECIS 0x02
555 #define CLIP_MASK 0x0F
556 #define CLIP_LH_ANGLES 0x10
557 #define CLIP_TT_ALWAYS 0x20
558 #define CLIP_EMBEDDED 0x80
560 /* lfQuality values */
561 #define DEFAULT_QUALITY 0
562 #define DRAFT_QUALITY 1
563 #define PROOF_QUALITY 2
565 /* lfPitchAndFamily pitch values */
566 #define DEFAULT_PITCH 0x00
567 #define FIXED_PITCH 0x01
568 #define VARIABLE_PITCH 0x02
569 #define FF_DONTCARE 0x00
570 #define FF_ROMAN 0x10
571 #define FF_SWISS 0x20
572 #define FF_MODERN 0x30
573 #define FF_SCRIPT 0x40
574 #define FF_DECORATIVE 0x50
576 typedef struct
578 INT16 tmHeight;
579 INT16 tmAscent;
580 INT16 tmDescent;
581 INT16 tmInternalLeading;
582 INT16 tmExternalLeading;
583 INT16 tmAveCharWidth;
584 INT16 tmMaxCharWidth;
585 INT16 tmWeight;
586 BYTE tmItalic;
587 BYTE tmUnderlined;
588 BYTE tmStruckOut;
589 BYTE tmFirstChar;
590 BYTE tmLastChar;
591 BYTE tmDefaultChar;
592 BYTE tmBreakChar;
593 BYTE tmPitchAndFamily;
594 BYTE tmCharSet;
595 INT16 tmOverhang WINE_PACKED;
596 INT16 tmDigitizedAspectX WINE_PACKED;
597 INT16 tmDigitizedAspectY WINE_PACKED;
598 } TEXTMETRIC16, *LPTEXTMETRIC16;
600 typedef struct
602 INT32 tmHeight;
603 INT32 tmAscent;
604 INT32 tmDescent;
605 INT32 tmInternalLeading;
606 INT32 tmExternalLeading;
607 INT32 tmAveCharWidth;
608 INT32 tmMaxCharWidth;
609 INT32 tmWeight;
610 INT32 tmOverhang;
611 INT32 tmDigitizedAspectX;
612 INT32 tmDigitizedAspectY;
613 BYTE tmFirstChar;
614 BYTE tmLastChar;
615 BYTE tmDefaultChar;
616 BYTE tmBreakChar;
617 BYTE tmItalic;
618 BYTE tmUnderlined;
619 BYTE tmStruckOut;
620 BYTE tmPitchAndFamily;
621 BYTE tmCharSet;
622 } TEXTMETRIC32A, *LPTEXTMETRIC32A;
624 typedef struct
626 INT32 tmHeight;
627 INT32 tmAscent;
628 INT32 tmDescent;
629 INT32 tmInternalLeading;
630 INT32 tmExternalLeading;
631 INT32 tmAveCharWidth;
632 INT32 tmMaxCharWidth;
633 INT32 tmWeight;
634 INT32 tmOverhang;
635 INT32 tmDigitizedAspectX;
636 INT32 tmDigitizedAspectY;
637 WCHAR tmFirstChar;
638 WCHAR tmLastChar;
639 WCHAR tmDefaultChar;
640 WCHAR tmBreakChar;
641 BYTE tmItalic;
642 BYTE tmUnderlined;
643 BYTE tmStruckOut;
644 BYTE tmPitchAndFamily;
645 BYTE tmCharSet;
646 } TEXTMETRIC32W, *LPTEXTMETRIC32W;
648 DECL_WINELIB_TYPE_AW(TEXTMETRIC)
649 DECL_WINELIB_TYPE_AW(LPTEXTMETRIC)
652 typedef struct tagPANOSE
654 BYTE bFamilyType;
655 BYTE bSerifStyle;
656 BYTE bWeight;
657 BYTE bProportion;
658 BYTE bContrast;
659 BYTE bStrokeVariation;
660 BYTE bArmStyle;
661 BYTE bLetterform;
662 BYTE bMidline;
663 BYTE bXHeight;
664 } PANOSE;
667 typedef struct _OUTLINETEXTMETRIC32A
669 UINT32 otmSize;
670 TEXTMETRIC32A otmTextMetrics;
671 BYTE otmFilter;
672 PANOSE otmPanoseNumber;
673 UINT32 otmfsSelection;
674 UINT32 otmfsType;
675 INT32 otmsCharSlopeRise;
676 INT32 otmsCharSlopeRun;
677 INT32 otmItalicAngle;
678 UINT32 otmEMSquare;
679 INT32 otmAscent;
680 INT32 otmDescent;
681 UINT32 otmLineGap;
682 UINT32 otmsCapEmHeight;
683 UINT32 otmsXHeight;
684 RECT32 otmrcFontBox;
685 INT32 otmMacAscent;
686 INT32 otmMacDescent;
687 UINT32 otmMacLineGap;
688 UINT32 otmusMinimumPPEM;
689 POINT32 otmptSubscriptSize;
690 POINT32 otmptSubscriptOffset;
691 POINT32 otmptSuperscriptSize;
692 POINT32 otmptSuperscriptOffset;
693 UINT32 otmsStrikeoutSize;
694 INT32 otmsStrikeoutPosition;
695 INT32 otmsUnderscoreSize;
696 INT32 otmsUnderscorePosition;
697 LPSTR otmpFamilyName;
698 LPSTR otmpFaceName;
699 LPSTR otmpStyleName;
700 LPSTR otmpFullName;
701 } OUTLINETEXTMETRIC32A, *LPOUTLINETEXTMETRIC32A;
703 typedef struct _OUTLINETEXTMETRIC32W
705 UINT32 otmSize;
706 TEXTMETRIC32W otmTextMetrics;
707 BYTE otmFilter;
708 PANOSE otmPanoseNumber;
709 UINT32 otmfsSelection;
710 UINT32 otmfsType;
711 INT32 otmsCharSlopeRise;
712 INT32 otmsCharSlopeRun;
713 INT32 otmItalicAngle;
714 UINT32 otmEMSquare;
715 INT32 otmAscent;
716 INT32 otmDescent;
717 UINT32 otmLineGap;
718 UINT32 otmsCapEmHeight;
719 UINT32 otmsXHeight;
720 RECT32 otmrcFontBox;
721 INT32 otmMacAscent;
722 INT32 otmMacDescent;
723 UINT32 otmMacLineGap;
724 UINT32 otmusMinimumPPEM;
725 POINT32 otmptSubscriptSize;
726 POINT32 otmptSubscriptOffset;
727 POINT32 otmptSuperscriptSize;
728 POINT32 otmptSuperscriptOffset;
729 UINT32 otmsStrikeoutSize;
730 INT32 otmsStrikeoutPosition;
731 INT32 otmsUnderscoreSize;
732 INT32 otmsUnderscorePosition;
733 LPSTR otmpFamilyName;
734 LPSTR otmpFaceName;
735 LPSTR otmpStyleName;
736 LPSTR otmpFullName;
737 } OUTLINETEXTMETRIC32W, *LPOUTLINETEXTMETRIC32W;
739 typedef struct _OUTLINETEXTMETRIC16
741 UINT16 otmSize;
742 TEXTMETRIC16 otmTextMetrics;
743 BYTE otmFilter;
744 PANOSE otmPanoseNumber;
745 UINT16 otmfsSelection;
746 UINT16 otmfsType;
747 INT16 otmsCharSlopeRise;
748 INT16 otmsCharSlopeRun;
749 INT16 otmItalicAngle;
750 UINT16 otmEMSquare;
751 INT16 otmAscent;
752 INT16 otmDescent;
753 UINT16 otmLineGap;
754 UINT16 otmsCapEmHeight;
755 UINT16 otmsXHeight;
756 RECT16 otmrcFontBox;
757 INT16 otmMacAscent;
758 INT16 otmMacDescent;
759 UINT16 otmMacLineGap;
760 UINT16 otmusMinimumPPEM;
761 POINT16 otmptSubscriptSize;
762 POINT16 otmptSubscriptOffset;
763 POINT16 otmptSuperscriptSize;
764 POINT16 otmptSuperscriptOffset;
765 UINT16 otmsStrikeoutSize;
766 INT16 otmsStrikeoutPosition;
767 INT16 otmsUnderscoreSize;
768 INT32 otmsUnderscorePosition;
769 LPSTR otmpFamilyName;
770 LPSTR otmpFaceName;
771 LPSTR otmpStyleName;
772 LPSTR otmpFullName;
773 } OUTLINETEXTMETRIC16,*LPOUTLINETEXTMETRIC16;
775 DECL_WINELIB_TYPE_AW(OUTLINETEXTMETRIC)
776 DECL_WINELIB_TYPE_AW(LPOUTLINETEXTMETRIC)
780 /* ntmFlags field flags */
781 #define NTM_REGULAR 0x00000040L
782 #define NTM_BOLD 0x00000020L
783 #define NTM_ITALIC 0x00000001L
785 typedef struct
787 INT16 tmHeight;
788 INT16 tmAscent;
789 INT16 tmDescent;
790 INT16 tmInternalLeading;
791 INT16 tmExternalLeading;
792 INT16 tmAveCharWidth;
793 INT16 tmMaxCharWidth;
794 INT16 tmWeight;
795 BYTE tmItalic;
796 BYTE tmUnderlined;
797 BYTE tmStruckOut;
798 BYTE tmFirstChar;
799 BYTE tmLastChar;
800 BYTE tmDefaultChar;
801 BYTE tmBreakChar;
802 BYTE tmPitchAndFamily;
803 BYTE tmCharSet;
804 INT16 tmOverhang WINE_PACKED;
805 INT16 tmDigitizedAspectX WINE_PACKED;
806 INT16 tmDigitizedAspectY WINE_PACKED;
807 DWORD ntmFlags;
808 UINT16 ntmSizeEM;
809 UINT16 ntmCellHeight;
810 UINT16 ntmAvgWidth;
811 } NEWTEXTMETRIC16,*LPNEWTEXTMETRIC16;
813 typedef struct
815 INT32 tmHeight;
816 INT32 tmAscent;
817 INT32 tmDescent;
818 INT32 tmInternalLeading;
819 INT32 tmExternalLeading;
820 INT32 tmAveCharWidth;
821 INT32 tmMaxCharWidth;
822 INT32 tmWeight;
823 INT32 tmOverhang;
824 INT32 tmDigitizedAspectX;
825 INT32 tmDigitizedAspectY;
826 BYTE tmFirstChar;
827 BYTE tmLastChar;
828 BYTE tmDefaultChar;
829 BYTE tmBreakChar;
830 BYTE tmItalic;
831 BYTE tmUnderlined;
832 BYTE tmStruckOut;
833 BYTE tmPitchAndFamily;
834 BYTE tmCharSet;
835 DWORD ntmFlags;
836 UINT32 ntmSizeEM;
837 UINT32 ntmCellHeight;
838 UINT32 ntmAvgWidth;
839 } NEWTEXTMETRIC32A, *LPNEWTEXTMETRIC32A;
841 typedef struct
843 INT32 tmHeight;
844 INT32 tmAscent;
845 INT32 tmDescent;
846 INT32 tmInternalLeading;
847 INT32 tmExternalLeading;
848 INT32 tmAveCharWidth;
849 INT32 tmMaxCharWidth;
850 INT32 tmWeight;
851 INT32 tmOverhang;
852 INT32 tmDigitizedAspectX;
853 INT32 tmDigitizedAspectY;
854 WCHAR tmFirstChar;
855 WCHAR tmLastChar;
856 WCHAR tmDefaultChar;
857 WCHAR tmBreakChar;
858 BYTE tmItalic;
859 BYTE tmUnderlined;
860 BYTE tmStruckOut;
861 BYTE tmPitchAndFamily;
862 BYTE tmCharSet;
863 DWORD ntmFlags;
864 UINT32 ntmSizeEM;
865 UINT32 ntmCellHeight;
866 UINT32 ntmAvgWidth;
867 } NEWTEXTMETRIC32W, *LPNEWTEXTMETRIC32W;
869 DECL_WINELIB_TYPE_AW(NEWTEXTMETRIC)
870 DECL_WINELIB_TYPE_AW(LPNEWTEXTMETRIC)
872 typedef struct
874 NEWTEXTMETRIC16 ntmetm;
875 FONTSIGNATURE ntmeFontSignature;
876 } NEWTEXTMETRICEX16,*LPNEWTEXTMETRICEX16;
878 typedef struct
880 NEWTEXTMETRIC32A ntmetm;
881 FONTSIGNATURE ntmeFontSignature;
882 } NEWTEXTMETRICEX32A,*LPNEWTEXTMETRICEX32A;
884 typedef struct
886 NEWTEXTMETRIC32W ntmetm;
887 FONTSIGNATURE ntmeFontSignature;
888 } NEWTEXTMETRICEX32W,*LPNEWTEXTMETRICEX32W;
890 DECL_WINELIB_TYPE_AW(NEWTEXTMETRICEX)
891 DECL_WINELIB_TYPE_AW(LPNEWTEXTMETRICEX)
894 typedef INT16 (CALLBACK *FONTENUMPROC16)(SEGPTR,SEGPTR,UINT16,LPARAM);
895 typedef INT32 (CALLBACK *FONTENUMPROC32A)(LPENUMLOGFONT32A,LPNEWTEXTMETRIC32A,
896 UINT32,LPARAM);
897 typedef INT32 (CALLBACK *FONTENUMPROC32W)(LPENUMLOGFONT32W,LPNEWTEXTMETRIC32W,
898 UINT32,LPARAM);
899 DECL_WINELIB_TYPE_AW(FONTENUMPROC)
901 typedef INT16 (CALLBACK *FONTENUMPROCEX16)(SEGPTR,SEGPTR,UINT16,LPARAM);
902 typedef INT32 (CALLBACK *FONTENUMPROCEX32A)(LPENUMLOGFONTEX32A,LPNEWTEXTMETRICEX32A,UINT32,LPARAM);
903 typedef INT32 (CALLBACK *FONTENUMPROCEX32W)(LPENUMLOGFONTEX32W,LPNEWTEXTMETRICEX32W,UINT32,LPARAM);
904 DECL_WINELIB_TYPE_AW(FONTENUMPROCEX)
906 /* tmPitchAndFamily bits */
907 #define TMPF_FIXED_PITCH 1 /* means variable pitch */
908 #define TMPF_VECTOR 2
909 #define TMPF_TRUETYPE 4
910 #define TMPF_DEVICE 8
912 /* Text alignment */
913 #define TA_NOUPDATECP 0x00
914 #define TA_UPDATECP 0x01
915 #define TA_LEFT 0x00
916 #define TA_RIGHT 0x02
917 #define TA_CENTER 0x06
918 #define TA_TOP 0x00
919 #define TA_BOTTOM 0x08
920 #define TA_BASELINE 0x18
922 /* ExtTextOut() parameters */
923 #define ETO_GRAYED 0x01
924 #define ETO_OPAQUE 0x02
925 #define ETO_CLIPPED 0x04
927 typedef struct
929 UINT16 gmBlackBoxX;
930 UINT16 gmBlackBoxY;
931 POINT16 gmptGlyphOrigin;
932 INT16 gmCellIncX;
933 INT16 gmCellIncY;
934 } GLYPHMETRICS16, *LPGLYPHMETRICS16;
936 typedef struct
938 UINT32 gmBlackBoxX;
939 UINT32 gmBlackBoxY;
940 POINT32 gmptGlyphOrigin;
941 INT16 gmCellIncX;
942 INT16 gmCellIncY;
943 } GLYPHMETRICS32, *LPGLYPHMETRICS32;
945 DECL_WINELIB_TYPE(GLYPHMETRICS)
946 DECL_WINELIB_TYPE(LPGLYPHMETRICS)
948 #define GGO_METRICS 0
949 #define GGO_BITMAP 1
950 #define GGO_NATIVE 2
952 typedef struct
954 UINT16 fract;
955 INT16 value;
956 } FIXED;
958 typedef struct
960 FIXED eM11;
961 FIXED eM12;
962 FIXED eM21;
963 FIXED eM22;
964 } MAT2, *LPMAT2;
966 /* for GetCharABCWidths() */
967 typedef struct
969 INT16 abcA;
970 UINT16 abcB;
971 INT16 abcC;
972 } ABC16, *LPABC16;
974 typedef struct
976 INT32 abcA;
977 UINT32 abcB;
978 INT32 abcC;
979 } ABC32, *LPABC32;
981 DECL_WINELIB_TYPE(ABC)
982 DECL_WINELIB_TYPE(LPABC)
984 /* for GetCharacterPlacement () */
985 typedef struct tagGCP_RESULTS32A
987 DWORD lStructSize;
988 LPSTR lpOutString;
989 UINT32 *lpOrder;
990 INT32 *lpDx;
991 INT32 *lpCaretPos;
992 LPSTR lpClass;
993 UINT32 *lpGlyphs;
994 UINT32 nGlyphs;
995 UINT32 nMaxFit;
996 } GCP_RESULTS32A;
998 typedef struct tagGCP_RESULTS32W
1000 DWORD lStructSize;
1001 LPWSTR lpOutString;
1002 UINT32 *lpOrder;
1003 INT32 *lpDx;
1004 INT32 *lpCaretPos;
1005 LPWSTR lpClass;
1006 UINT32 *lpGlyphs;
1007 UINT32 nGlyphs;
1008 UINT32 nMaxFit;
1009 } GCP_RESULTS32W;
1011 DECL_WINELIB_TYPE_AW(GCP_RESULTS)
1013 /* Rasterizer status */
1014 typedef struct
1016 INT16 nSize;
1017 INT16 wFlags;
1018 INT16 nLanguageID;
1019 } RASTERIZER_STATUS, *LPRASTERIZER_STATUS;
1021 #define TT_AVAILABLE 0x0001
1022 #define TT_ENABLED 0x0002
1024 /* Get/SetSystemPaletteUse() values */
1025 #define SYSPAL_STATIC 1
1026 #define SYSPAL_NOSTATIC 2
1028 typedef struct tagPALETTEENTRY
1030 BYTE peRed, peGreen, peBlue, peFlags;
1031 } PALETTEENTRY, *LPPALETTEENTRY;
1033 /* Logical palette entry flags */
1034 #define PC_RESERVED 0x01
1035 #define PC_EXPLICIT 0x02
1036 #define PC_NOCOLLAPSE 0x04
1038 typedef struct
1040 WORD palVersion;
1041 WORD palNumEntries;
1042 PALETTEENTRY palPalEntry[1] WINE_PACKED;
1043 } LOGPALETTE, *LPLOGPALETTE;
1045 /* Pens */
1047 typedef struct
1049 UINT16 lopnStyle;
1050 POINT16 lopnWidth WINE_PACKED;
1051 COLORREF lopnColor WINE_PACKED;
1052 } LOGPEN16, *LPLOGPEN16;
1054 typedef struct
1056 UINT32 lopnStyle;
1057 POINT32 lopnWidth WINE_PACKED;
1058 COLORREF lopnColor WINE_PACKED;
1059 } LOGPEN32, *LPLOGPEN32;
1061 DECL_WINELIB_TYPE(LOGPEN)
1062 DECL_WINELIB_TYPE(LPLOGPEN)
1064 typedef struct tagEXTLOGPEN
1066 DWORD elpPenStyle;
1067 DWORD elpWidth;
1068 DWORD elpBrushStyle;
1069 DWORD elpColor;
1070 DWORD elpNumEntries;
1071 DWORD elpStyleEntry[1];
1072 } EXTLOGPEN, *PEXTLOGPEN, *NPEXTLOGPEN, *LPEXTLOGPEN;
1074 #define PS_SOLID 0x00000000
1075 #define PS_DASH 0x00000001
1076 #define PS_DOT 0x00000002
1077 #define PS_DASHDOT 0x00000003
1078 #define PS_DASHDOTDOT 0x00000004
1079 #define PS_NULL 0x00000005
1080 #define PS_INSIDEFRAME 0x00000006
1081 #define PS_USERSTYLE 0x00000007
1082 #define PS_ALTERNATE 0x00000008
1083 #define PS_STYLE_MASK 0x0000000f
1085 #define PS_ENDCAP_ROUND 0x00000000
1086 #define PS_ENDCAP_SQUARE 0x00000100
1087 #define PS_ENDCAP_FLAT 0x00000200
1088 #define PS_ENDCAP_MASK 0x00000f00
1090 #define PS_JOIN_ROUND 0x00000000
1091 #define PS_JOIN_BEVEL 0x00001000
1092 #define PS_JOIN_MITER 0x00002000
1093 #define PS_JOIN_MASK 0x0000f000
1095 #define PS_COSMETIC 0x00000000
1096 #define PS_GEOMETRIC 0x00010000
1097 #define PS_TYPE_MASK 0x000f0000
1099 /* Regions */
1101 #define ERROR 0
1102 #define NULLREGION 1
1103 #define SIMPLEREGION 2
1104 #define COMPLEXREGION 3
1106 #define RGN_AND 1
1107 #define RGN_OR 2
1108 #define RGN_XOR 3
1109 #define RGN_DIFF 4
1110 #define RGN_COPY 5
1112 /* Device contexts */
1114 /* GetDCEx flags */
1115 #define DCX_WINDOW 0x00000001
1116 #define DCX_CACHE 0x00000002
1117 #define DCX_CLIPCHILDREN 0x00000008
1118 #define DCX_CLIPSIBLINGS 0x00000010
1119 #define DCX_PARENTCLIP 0x00000020
1120 #define DCX_EXCLUDERGN 0x00000040
1121 #define DCX_INTERSECTRGN 0x00000080
1122 #define DCX_LOCKWINDOWUPDATE 0x00000400
1123 #define DCX_USESTYLE 0x00010000
1125 /* Polygon modes */
1126 #define ALTERNATE 1
1127 #define WINDING 2
1129 /* Background modes */
1130 #ifdef TRANSPARENT /*Apparently some broken svr4 includes define TRANSPARENT*/
1131 #undef TRANSPARENT
1132 #endif
1133 #define TRANSPARENT 1
1134 #define OPAQUE 2
1137 /* Graphics Modes */
1138 #define GM_COMPATIBLE 1
1139 #define GM_ADVANCED 2
1140 #define GM_LAST 2
1142 /* Arc direction modes */
1143 #define AD_COUNTERCLOCKWISE 1
1144 #define AD_CLOCKWISE 2
1146 /* Map modes */
1147 #define MM_TEXT 1
1148 #define MM_LOMETRIC 2
1149 #define MM_HIMETRIC 3
1150 #define MM_LOENGLISH 4
1151 #define MM_HIENGLISH 5
1152 #define MM_TWIPS 6
1153 #define MM_ISOTROPIC 7
1154 #define MM_ANISOTROPIC 8
1156 /* Coordinate modes */
1157 #define ABSOLUTE 1
1158 #define RELATIVE 2
1160 /* Flood fill modes */
1161 #define FLOODFILLBORDER 0
1162 #define FLOODFILLSURFACE 1
1164 /* Device parameters for GetDeviceCaps() */
1165 #define DRIVERVERSION 0
1166 #define TECHNOLOGY 2
1167 #define HORZSIZE 4
1168 #define VERTSIZE 6
1169 #define HORZRES 8
1170 #define VERTRES 10
1171 #define BITSPIXEL 12
1172 #define PLANES 14
1173 #define NUMBRUSHES 16
1174 #define NUMPENS 18
1175 #define NUMMARKERS 20
1176 #define NUMFONTS 22
1177 #define NUMCOLORS 24
1178 #define PDEVICESIZE 26
1179 #define CURVECAPS 28
1180 #define LINECAPS 30
1181 #define POLYGONALCAPS 32
1182 #define TEXTCAPS 34
1183 #define CLIPCAPS 36
1184 #define RASTERCAPS 38
1185 #define ASPECTX 40
1186 #define ASPECTY 42
1187 #define ASPECTXY 44
1188 #define LOGPIXELSX 88
1189 #define LOGPIXELSY 90
1190 #define SIZEPALETTE 104
1191 #define NUMRESERVED 106
1192 #define COLORRES 108
1194 /* TECHNOLOGY */
1195 #define DT_PLOTTER 0
1196 #define DT_RASDISPLAY 1
1197 #define DT_RASPRINTER 2
1198 #define DT_RASCAMERA 3
1199 #define DT_CHARSTREAM 4
1200 #define DT_METAFILE 5
1201 #define DT_DISPFILE 6
1203 /* CURVECAPS */
1204 #define CC_NONE 0x0000
1205 #define CC_CIRCLES 0x0001
1206 #define CC_PIE 0x0002
1207 #define CC_CHORD 0x0004
1208 #define CC_ELLIPSES 0x0008
1209 #define CC_WIDE 0x0010
1210 #define CC_STYLED 0x0020
1211 #define CC_WIDESTYLED 0x0040
1212 #define CC_INTERIORS 0x0080
1213 #define CC_ROUNDRECT 0x0100
1215 /* LINECAPS */
1216 #define LC_NONE 0x0000
1217 #define LC_POLYLINE 0x0002
1218 #define LC_MARKER 0x0004
1219 #define LC_POLYMARKER 0x0008
1220 #define LC_WIDE 0x0010
1221 #define LC_STYLED 0x0020
1222 #define LC_WIDESTYLED 0x0040
1223 #define LC_INTERIORS 0x0080
1225 /* POLYGONALCAPS */
1226 #define PC_NONE 0x0000
1227 #define PC_POLYGON 0x0001
1228 #define PC_RECTANGLE 0x0002
1229 #define PC_WINDPOLYGON 0x0004
1230 #define PC_SCANLINE 0x0008
1231 #define PC_WIDE 0x0010
1232 #define PC_STYLED 0x0020
1233 #define PC_WIDESTYLED 0x0040
1234 #define PC_INTERIORS 0x0080
1236 /* TEXTCAPS */
1237 #define TC_OP_CHARACTER 0x0001
1238 #define TC_OP_STROKE 0x0002
1239 #define TC_CP_STROKE 0x0004
1240 #define TC_CR_90 0x0008
1241 #define TC_CR_ANY 0x0010
1242 #define TC_SF_X_YINDEP 0x0020
1243 #define TC_SA_DOUBLE 0x0040
1244 #define TC_SA_INTEGER 0x0080
1245 #define TC_SA_CONTIN 0x0100
1246 #define TC_EA_DOUBLE 0x0200
1247 #define TC_IA_ABLE 0x0400
1248 #define TC_UA_ABLE 0x0800
1249 #define TC_SO_ABLE 0x1000
1250 #define TC_RA_ABLE 0x2000
1251 #define TC_VA_ABLE 0x4000
1252 #define TC_RESERVED 0x8000
1254 /* CLIPCAPS */
1255 #define CP_NONE 0x0000
1256 #define CP_RECTANGLE 0x0001
1257 #define CP_REGION 0x0002
1259 /* RASTERCAPS */
1260 #define RC_NONE 0x0000
1261 #define RC_BITBLT 0x0001
1262 #define RC_BANDING 0x0002
1263 #define RC_SCALING 0x0004
1264 #define RC_BITMAP64 0x0008
1265 #define RC_GDI20_OUTPUT 0x0010
1266 #define RC_GDI20_STATE 0x0020
1267 #define RC_SAVEBITMAP 0x0040
1268 #define RC_DI_BITMAP 0x0080
1269 #define RC_PALETTE 0x0100
1270 #define RC_DIBTODEV 0x0200
1271 #define RC_BIGFONT 0x0400
1272 #define RC_STRETCHBLT 0x0800
1273 #define RC_FLOODFILL 0x1000
1274 #define RC_STRETCHDIB 0x2000
1275 #define RC_OP_DX_OUTPUT 0x4000
1276 #define RC_DEVBITS 0x8000
1278 /* GetSystemMetrics() codes */
1279 #define SM_CXSCREEN 0
1280 #define SM_CYSCREEN 1
1281 #define SM_CXVSCROLL 2
1282 #define SM_CYHSCROLL 3
1283 #define SM_CYCAPTION 4
1284 #define SM_CXBORDER 5
1285 #define SM_CYBORDER 6
1286 #define SM_CXDLGFRAME 7
1287 #define SM_CYDLGFRAME 8
1288 #define SM_CYVTHUMB 9
1289 #define SM_CXHTHUMB 10
1290 #define SM_CXICON 11
1291 #define SM_CYICON 12
1292 #define SM_CXCURSOR 13
1293 #define SM_CYCURSOR 14
1294 #define SM_CYMENU 15
1295 #define SM_CXFULLSCREEN 16
1296 #define SM_CYFULLSCREEN 17
1297 #define SM_CYKANJIWINDOW 18
1298 #define SM_MOUSEPRESENT 19
1299 #define SM_CYVSCROLL 20
1300 #define SM_CXHSCROLL 21
1301 #define SM_DEBUG 22
1302 #define SM_SWAPBUTTON 23
1303 #define SM_RESERVED1 24
1304 #define SM_RESERVED2 25
1305 #define SM_RESERVED3 26
1306 #define SM_RESERVED4 27
1307 #define SM_CXMIN 28
1308 #define SM_CYMIN 29
1309 #define SM_CXSIZE 30
1310 #define SM_CYSIZE 31
1311 #define SM_CXFRAME 32
1312 #define SM_CYFRAME 33
1313 #define SM_CXMINTRACK 34
1314 #define SM_CYMINTRACK 35
1315 #define SM_CXDOUBLECLK 36
1316 #define SM_CYDOUBLECLK 37
1317 #define SM_CXICONSPACING 38
1318 #define SM_CYICONSPACING 39
1319 #define SM_MENUDROPALIGNMENT 40
1320 #define SM_PENWINDOWS 41
1321 #define SM_DBCSENABLED 42
1322 #define SM_CMOUSEBUTTONS 43
1323 #define SM_CXFIXEDFRAME SM_CXDLGFRAME
1324 #define SM_CYFIXEDFRAME SM_CYDLGFRAME
1325 #define SM_CXSIZEFRAME SM_CXFRAME
1326 #define SM_CYSIZEFRAME SM_CYFRAME
1327 #define SM_SECURE 44
1328 #define SM_CXEDGE 45
1329 #define SM_CYEDGE 46
1330 #define SM_CXMINSPACING 47
1331 #define SM_CYMINSPACING 48
1332 #define SM_CXSMICON 49
1333 #define SM_CYSMICON 50
1334 #define SM_CYSMCAPTION 51
1335 #define SM_CXSMSIZE 52
1336 #define SM_CYSMSIZE 53
1337 #define SM_CXMENUSIZE 54
1338 #define SM_CYMENUSIZE 55
1339 #define SM_ARRANGE 56
1340 #define SM_CXMINIMIZED 57
1341 #define SM_CYMINIMIZED 58
1342 #define SM_CXMAXTRACK 59
1343 #define SM_CYMAXTRACK 60
1344 #define SM_CXMAXIMIZED 61
1345 #define SM_CYMAXIMIZED 62
1346 #define SM_NETWORK 63
1347 #define SM_CLEANBOOT 67
1348 #define SM_CXDRAG 68
1349 #define SM_CYDRAG 69
1350 #define SM_SHOWSOUNDS 70
1351 #define SM_CXMENUCHECK 71
1352 #define SM_CYMENUCHECK 72
1353 #define SM_SLOWMACHINE 73
1354 #define SM_MIDEASTENABLED 74
1355 #define SM_MOUSEWHEELPRESENT 75
1356 #define SM_XVIRTUALSCREEN 76
1357 #define SM_YVIRTUALSCREEN 77
1358 #define SM_CXVIRTUALSCREEN 78
1359 #define SM_CYVIRTUALSCREEN 79
1360 #define SM_CMONITORS 80
1361 #define SM_SAMEDISPLAYFORMAT 81
1362 #define SM_CMETRICS 83
1365 /* Device-independent bitmaps */
1367 typedef struct { BYTE rgbBlue, rgbGreen, rgbRed, rgbReserved; } RGBQUAD;
1368 typedef struct { BYTE rgbtBlue, rgbtGreen, rgbtRed; } RGBTRIPLE;
1370 typedef struct
1372 UINT16 bfType;
1373 DWORD bfSize WINE_PACKED;
1374 UINT16 bfReserved1 WINE_PACKED;
1375 UINT16 bfReserved2 WINE_PACKED;
1376 DWORD bfOffBits WINE_PACKED;
1377 } BITMAPFILEHEADER;
1379 typedef struct
1381 DWORD biSize;
1382 LONG biWidth;
1383 LONG biHeight;
1384 WORD biPlanes;
1385 WORD biBitCount;
1386 DWORD biCompression;
1387 DWORD biSizeImage;
1388 LONG biXPelsPerMeter;
1389 LONG biYPelsPerMeter;
1390 DWORD biClrUsed;
1391 DWORD biClrImportant;
1392 } BITMAPINFOHEADER, *LPBITMAPINFOHEADER;
1394 /* biCompression */
1395 #define BI_RGB 0
1396 #define BI_RLE8 1
1397 #define BI_RLE4 2
1399 typedef struct {
1400 BITMAPINFOHEADER bmiHeader;
1401 RGBQUAD bmiColors[1];
1402 } BITMAPINFO;
1403 typedef BITMAPINFO *LPBITMAPINFO;
1404 typedef BITMAPINFO *NPBITMAPINFO;
1405 typedef BITMAPINFO *PBITMAPINFO;
1407 typedef struct
1409 DWORD bcSize;
1410 UINT16 bcWidth;
1411 UINT16 bcHeight;
1412 UINT16 bcPlanes;
1413 UINT16 bcBitCount;
1414 } BITMAPCOREHEADER;
1416 typedef struct
1418 BITMAPCOREHEADER bmciHeader;
1419 RGBTRIPLE bmciColors[1];
1420 } BITMAPCOREINFO, *LPBITMAPCOREINFO;
1422 #define DIB_RGB_COLORS 0
1423 #define DIB_PAL_COLORS 1
1424 #define CBM_INIT 4
1426 typedef struct
1428 BITMAP32 dsBm;
1429 BITMAPINFOHEADER dsBmih;
1430 DWORD dsBitfields[3];
1431 HANDLE32 dshSection;
1432 DWORD dsOffset;
1433 } DIBSECTION,*LPDIBSECTION;
1435 /* Stock GDI objects for GetStockObject() */
1437 #define WHITE_BRUSH 0
1438 #define LTGRAY_BRUSH 1
1439 #define GRAY_BRUSH 2
1440 #define DKGRAY_BRUSH 3
1441 #define BLACK_BRUSH 4
1442 #define NULL_BRUSH 5
1443 #define HOLLOW_BRUSH 5
1444 #define WHITE_PEN 6
1445 #define BLACK_PEN 7
1446 #define NULL_PEN 8
1447 #define OEM_FIXED_FONT 10
1448 #define ANSI_FIXED_FONT 11
1449 #define ANSI_VAR_FONT 12
1450 #define SYSTEM_FONT 13
1451 #define DEVICE_DEFAULT_FONT 14
1452 #define DEFAULT_PALETTE 15
1453 #define SYSTEM_FIXED_FONT 16
1454 #define DEFAULT_GUI_FONT 17
1456 /* Metafile header structure */
1457 typedef struct
1459 WORD mtType;
1460 WORD mtHeaderSize;
1461 WORD mtVersion;
1462 DWORD mtSize WINE_PACKED;
1463 WORD mtNoObjects;
1464 DWORD mtMaxRecord WINE_PACKED;
1465 WORD mtNoParameters;
1466 } METAHEADER;
1468 /* Metafile typical record structure */
1469 typedef struct
1471 DWORD rdSize;
1472 WORD rdFunction;
1473 WORD rdParam[1];
1474 } METARECORD;
1475 typedef METARECORD *PMETARECORD;
1476 typedef METARECORD *LPMETARECORD;
1478 /* Handle table structure */
1480 typedef struct
1482 HGDIOBJ16 objectHandle[1];
1483 } HANDLETABLE16, *LPHANDLETABLE16;
1485 typedef struct
1487 HGDIOBJ32 objectHandle[1];
1488 } HANDLETABLE32, *LPHANDLETABLE32;
1490 DECL_WINELIB_TYPE(HANDLETABLE)
1491 DECL_WINELIB_TYPE(LPHANDLETABLE)
1493 /* Clipboard metafile picture structure */
1494 typedef struct
1496 INT16 mm;
1497 INT16 xExt;
1498 INT16 yExt;
1499 HMETAFILE16 hMF;
1500 } METAFILEPICT16, *LPMETAFILEPICT16;
1502 typedef struct
1504 INT32 mm;
1505 INT32 xExt;
1506 INT32 yExt;
1507 HMETAFILE32 hMF;
1508 } METAFILEPICT32, *LPMETAFILEPICT32;
1510 DECL_WINELIB_TYPE(METAFILEPICT)
1511 DECL_WINELIB_TYPE(LPMETAFILEPICT)
1513 /* Metafile functions */
1514 #define META_SETBKCOLOR 0x0201
1515 #define META_SETBKMODE 0x0102
1516 #define META_SETMAPMODE 0x0103
1517 #define META_SETROP2 0x0104
1518 #define META_SETRELABS 0x0105
1519 #define META_SETPOLYFILLMODE 0x0106
1520 #define META_SETSTRETCHBLTMODE 0x0107
1521 #define META_SETTEXTCHAREXTRA 0x0108
1522 #define META_SETTEXTCOLOR 0x0209
1523 #define META_SETTEXTJUSTIFICATION 0x020A
1524 #define META_SETWINDOWORG 0x020B
1525 #define META_SETWINDOWEXT 0x020C
1526 #define META_SETVIEWPORTORG 0x020D
1527 #define META_SETVIEWPORTEXT 0x020E
1528 #define META_OFFSETWINDOWORG 0x020F
1529 #define META_SCALEWINDOWEXT 0x0410
1530 #define META_OFFSETVIEWPORTORG 0x0211
1531 #define META_SCALEVIEWPORTEXT 0x0412
1532 #define META_LINETO 0x0213
1533 #define META_MOVETO 0x0214
1534 #define META_EXCLUDECLIPRECT 0x0415
1535 #define META_INTERSECTCLIPRECT 0x0416
1536 #define META_ARC 0x0817
1537 #define META_ELLIPSE 0x0418
1538 #define META_FLOODFILL 0x0419
1539 #define META_PIE 0x081A
1540 #define META_RECTANGLE 0x041B
1541 #define META_ROUNDRECT 0x061C
1542 #define META_PATBLT 0x061D
1543 #define META_SAVEDC 0x001E
1544 #define META_SETPIXEL 0x041F
1545 #define META_OFFSETCLIPRGN 0x0220
1546 #define META_TEXTOUT 0x0521
1547 #define META_BITBLT 0x0922
1548 #define META_STRETCHBLT 0x0B23
1549 #define META_POLYGON 0x0324
1550 #define META_POLYLINE 0x0325
1551 #define META_ESCAPE 0x0626
1552 #define META_RESTOREDC 0x0127
1553 #define META_FILLREGION 0x0228
1554 #define META_FRAMEREGION 0x0429
1555 #define META_INVERTREGION 0x012A
1556 #define META_PAINTREGION 0x012B
1557 #define META_SELECTCLIPREGION 0x012C
1558 #define META_SELECTOBJECT 0x012D
1559 #define META_SETTEXTALIGN 0x012E
1560 #define META_DRAWTEXT 0x062F
1561 #define META_CHORD 0x0830
1562 #define META_SETMAPPERFLAGS 0x0231
1563 #define META_EXTTEXTOUT 0x0A32
1564 #define META_SETDIBTODEV 0x0D33
1565 #define META_SELECTPALETTE 0x0234
1566 #define META_REALIZEPALETTE 0x0035
1567 #define META_ANIMATEPALETTE 0x0436
1568 #define META_SETPALENTRIES 0x0037
1569 #define META_POLYPOLYGON 0x0538
1570 #define META_RESIZEPALETTE 0x0139
1571 #define META_DIBBITBLT 0x0940
1572 #define META_DIBSTRETCHBLT 0x0B41
1573 #define META_DIBCREATEPATTERNBRUSH 0x0142
1574 #define META_STRETCHDIB 0x0F43
1575 #define META_EXTFLOODFILL 0x0548
1576 #define META_RESETDC 0x014C
1577 #define META_STARTDOC 0x014D
1578 #define META_STARTPAGE 0x004F
1579 #define META_ENDPAGE 0x0050
1580 #define META_ABORTDOC 0x0052
1581 #define META_ENDDOC 0x005E
1582 #define META_DELETEOBJECT 0x01F0
1583 #define META_CREATEPALETTE 0x00F7
1584 #define META_CREATEBRUSH 0x00F8
1585 #define META_CREATEPATTERNBRUSH 0x01F9
1586 #define META_CREATEPENINDIRECT 0x02FA
1587 #define META_CREATEFONTINDIRECT 0x02FB
1588 #define META_CREATEBRUSHINDIRECT 0x02FC
1589 #define META_CREATEBITMAPINDIRECT 0x02FD
1590 #define META_CREATEBITMAP 0x06FE
1591 #define META_CREATEREGION 0x06FF
1592 #define META_UNKNOWN 0x0529 /* FIXME: unknown meta magic */
1594 typedef INT16 (CALLBACK *MFENUMPROC16)(HDC16,HANDLETABLE16*,METARECORD*,
1595 INT16,LPARAM);
1596 typedef INT32 (CALLBACK *MFENUMPROC32)(HDC32,HANDLETABLE32*,METARECORD*,
1597 INT32,LPARAM);
1598 DECL_WINELIB_TYPE(MFENUMPROC)
1600 /* enhanced metafile structures and functions */
1602 /* note that ENHMETAHEADER is just a particular kind of ENHMETARECORD,
1603 ie. the header is just the first record in the metafile */
1604 typedef struct {
1605 DWORD iType;
1606 DWORD nSize;
1607 RECT32 rclBounds;
1608 RECT32 rclFrame;
1609 DWORD dSignature;
1610 DWORD nVersion;
1611 DWORD nBytes;
1612 DWORD nRecords;
1613 WORD nHandles;
1614 WORD sReserved;
1615 DWORD nDescription;
1616 DWORD offDescription;
1617 DWORD nPalEntries;
1618 SIZE32 szlDevice;
1619 SIZE32 szlMillimeters;
1620 DWORD cbPixelFormat;
1621 DWORD offPixelFormat;
1622 DWORD bOpenGL;
1623 } ENHMETAHEADER, *LPENHMETAHEADER;
1625 typedef struct {
1626 DWORD iType;
1627 DWORD nSize;
1628 DWORD dParm[1];
1629 } ENHMETARECORD, *LPENHMETARECORD;
1631 typedef INT32 (CALLBACK *ENHMFENUMPROC32)(HDC32, LPHANDLETABLE32,
1632 LPENHMETARECORD, INT32, LPVOID);
1634 #define EMR_HEADER 1
1635 #define EMR_POLYBEZIER 2
1636 #define EMR_POLYGON 3
1637 #define EMR_POLYLINE 4
1638 #define EMR_POLYBEZIERTO 5
1639 #define EMR_POLYLINETO 6
1640 #define EMR_POLYPOLYLINE 7
1641 #define EMR_POLYPOLYGON 8
1642 #define EMR_SETWINDOWEXTEX 9
1643 #define EMR_SETWINDOWORGEX 10
1644 #define EMR_SETVIEWPORTEXTEX 11
1645 #define EMR_SETVIEWPORTORGEX 12
1646 #define EMR_SETBRUSHORGEX 13
1647 #define EMR_EOF 14
1648 #define EMR_SETPIXELV 15
1649 #define EMR_SETMAPPERFLAGS 16
1650 #define EMR_SETMAPMODE 17
1651 #define EMR_SETBKMODE 18
1652 #define EMR_SETPOLYFILLMODE 19
1653 #define EMR_SETROP2 20
1654 #define EMR_SETSTRETCHBLTMODE 21
1655 #define EMR_SETTEXTALIGN 22
1656 #define EMR_SETCOLORADJUSTMENT 23
1657 #define EMR_SETTEXTCOLOR 24
1658 #define EMR_SETBKCOLOR 25
1659 #define EMR_OFFSETCLIPRGN 26
1660 #define EMR_MOVETOEX 27
1661 #define EMR_SETMETARGN 28
1662 #define EMR_EXCLUDECLIPRECT 29
1663 #define EMR_INTERSECTCLIPRECT 30
1664 #define EMR_SCALEVIEWPORTEXTEX 31
1665 #define EMR_SCALEWINDOWEXTEX 32
1666 #define EMR_SAVEDC 33
1667 #define EMR_RESTOREDC 34
1668 #define EMR_SETWORLDTRANSFORM 35
1669 #define EMR_MODIFYWORLDTRANSFORM 36
1670 #define EMR_SELECTOBJECT 37
1671 #define EMR_CREATEPEN 38
1672 #define EMR_CREATEBRUSHINDIRECT 39
1673 #define EMR_DELETEOBJECT 40
1674 #define EMR_ANGLEARC 41
1675 #define EMR_ELLIPSE 42
1676 #define EMR_RECTANGLE 43
1677 #define EMR_ROUNDRECT 44
1678 #define EMR_ARC 45
1679 #define EMR_CHORD 46
1680 #define EMR_PIE 47
1681 #define EMR_SELECTPALETTE 48
1682 #define EMR_CREATEPALETTE 49
1683 #define EMR_SETPALETTEENTRIES 50
1684 #define EMR_RESIZEPALETTE 51
1685 #define EMR_REALIZEPALETTE 52
1686 #define EMR_EXTFLOODFILL 53
1687 #define EMR_LINETO 54
1688 #define EMR_ARCTO 55
1689 #define EMR_POLYDRAW 56
1690 #define EMR_SETARCDIRECTION 57
1691 #define EMR_SETMITERLIMIT 58
1692 #define EMR_BEGINPATH 59
1693 #define EMR_ENDPATH 60
1694 #define EMR_CLOSEFIGURE 61
1695 #define EMR_FILLPATH 62
1696 #define EMR_STROKEANDFILLPATH 63
1697 #define EMR_STROKEPATH 64
1698 #define EMR_FLATTENPATH 65
1699 #define EMR_WIDENPATH 66
1700 #define EMR_SELECTCLIPPATH 67
1701 #define EMR_ABORTPATH 68
1702 #define EMR_GDICOMMENT 70
1703 #define EMR_FILLRGN 71
1704 #define EMR_FRAMERGN 72
1705 #define EMR_INVERTRGN 73
1706 #define EMR_PAINTRGN 74
1707 #define EMR_EXTSELECTCLIPRGN 75
1708 #define EMR_BITBLT 76
1709 #define EMR_STRETCHBLT 77
1710 #define EMR_MASKBLT 78
1711 #define EMR_PLGBLT 79
1712 #define EMR_SETDIBITSTODEVICE 80
1713 #define EMR_STRETCHDIBITS 81
1714 #define EMR_EXTCREATEFONTINDIRECTW 82
1715 #define EMR_EXTTEXTOUTA 83
1716 #define EMR_EXTTEXTOUTW 84
1717 #define EMR_POLYBEZIER16 85
1718 #define EMR_POLYGON16 86
1719 #define EMR_POLYLINE16 87
1720 #define EMR_POLYBEZIERTO16 88
1721 #define EMR_POLYLINETO16 89
1722 #define EMR_POLYPOLYLINE16 90
1723 #define EMR_POLYPOLYGON16 91
1724 #define EMR_POLYDRAW16 92
1725 #define EMR_CREATEMONOBRUSH 93
1726 #define EMR_CREATEDIBPATTERNBRUSHPT 94
1727 #define EMR_EXTCREATEPEN 95
1728 #define EMR_POLYTEXTOUTA 96
1729 #define EMR_POLYTEXTOUTW 97
1730 #define EMR_SETICMMODE 98
1731 #define EMR_CREATECOLORSPACE 99
1732 #define EMR_SETCOLORSPACE 100
1733 #define EMR_DELETECOLORSPACE 101
1734 #define EMR_GLSRECORD 102
1735 #define EMR_GLSBOUNDEDRECORD 103
1736 #define EMR_PIXELFORMAT 104
1738 #define ENHMETA_SIGNATURE 1179469088
1740 #define CCHDEVICENAME 32
1741 #define CCHFORMNAME 32
1743 typedef struct
1745 BYTE dmDeviceName[CCHDEVICENAME];
1746 WORD dmSpecVersion;
1747 WORD dmDriverVersion;
1748 WORD dmSize;
1749 WORD dmDriverExtra;
1750 DWORD dmFields;
1751 INT16 dmOrientation;
1752 INT16 dmPaperSize;
1753 INT16 dmPaperLength;
1754 INT16 dmPaperWidth;
1755 INT16 dmScale;
1756 INT16 dmCopies;
1757 INT16 dmDefaultSource;
1758 INT16 dmPrintQuality;
1759 INT16 dmColor;
1760 INT16 dmDuplex;
1761 INT16 dmYResolution;
1762 INT16 dmTTOption;
1763 INT16 dmCollate;
1764 BYTE dmFormName[CCHFORMNAME];
1765 WORD dmUnusedPadding;
1766 WORD dmBitsPerPel;
1767 DWORD dmPelsWidth;
1768 DWORD dmPelsHeight;
1769 DWORD dmDisplayFlags;
1770 DWORD dmDisplayFrequency;
1771 } DEVMODE16, *LPDEVMODE16;
1773 typedef struct
1775 BYTE dmDeviceName[CCHDEVICENAME];
1776 WORD dmSpecVersion;
1777 WORD dmDriverVersion;
1778 WORD dmSize;
1779 WORD dmDriverExtra;
1780 DWORD dmFields;
1781 INT16 dmOrientation;
1782 INT16 dmPaperSize;
1783 INT16 dmPaperLength;
1784 INT16 dmPaperWidth;
1785 INT16 dmScale;
1786 INT16 dmCopies;
1787 INT16 dmDefaultSource;
1788 INT16 dmPrintQuality;
1789 INT16 dmColor;
1790 INT16 dmDuplex;
1791 INT16 dmYResolution;
1792 INT16 dmTTOption;
1793 INT16 dmCollate;
1794 BYTE dmFormName[CCHFORMNAME];
1795 WORD dmLogPixels;
1796 DWORD dmBitsPerPel;
1797 DWORD dmPelsWidth;
1798 DWORD dmPelsHeight;
1799 DWORD dmDisplayFlags;
1800 DWORD dmDisplayFrequency;
1801 DWORD dmICMMethod;
1802 DWORD dmICMIntent;
1803 DWORD dmMediaType;
1804 DWORD dmDitherType;
1805 DWORD dmReserved1;
1806 DWORD dmReserved2;
1807 } DEVMODE32A, *LPDEVMODE32A;
1809 typedef struct
1811 WCHAR dmDeviceName[CCHDEVICENAME];
1812 WORD dmSpecVersion;
1813 WORD dmDriverVersion;
1814 WORD dmSize;
1815 WORD dmDriverExtra;
1816 DWORD dmFields;
1817 INT16 dmOrientation;
1818 INT16 dmPaperSize;
1819 INT16 dmPaperLength;
1820 INT16 dmPaperWidth;
1821 INT16 dmScale;
1822 INT16 dmCopies;
1823 INT16 dmDefaultSource;
1824 INT16 dmPrintQuality;
1825 INT16 dmColor;
1826 INT16 dmDuplex;
1827 INT16 dmYResolution;
1828 INT16 dmTTOption;
1829 INT16 dmCollate;
1830 WCHAR dmFormName[CCHFORMNAME];
1831 WORD dmLogPixels;
1832 DWORD dmBitsPerPel;
1833 DWORD dmPelsWidth;
1834 DWORD dmPelsHeight;
1835 DWORD dmDisplayFlags;
1836 DWORD dmDisplayFrequency;
1837 DWORD dmICMMethod;
1838 DWORD dmICMIntent;
1839 DWORD dmMediaType;
1840 DWORD dmDitherType;
1841 DWORD dmReserved1;
1842 DWORD dmReserved2;
1843 } DEVMODE32W, *LPDEVMODE32W;
1845 DECL_WINELIB_TYPE_AW(DEVMODE)
1846 DECL_WINELIB_TYPE_AW(LPDEVMODE)
1848 typedef struct
1850 INT16 cbSize;
1851 SEGPTR lpszDocName WINE_PACKED;
1852 SEGPTR lpszOutput WINE_PACKED;
1853 } DOCINFO16, *LPDOCINFO16;
1855 typedef struct
1857 INT32 cbSize;
1858 LPCSTR lpszDocName;
1859 LPCSTR lpszOutput;
1860 LPCSTR lpszDatatype;
1861 DWORD fwType;
1862 } DOCINFO32A, *LPDOCINFO32A;
1864 typedef struct
1866 INT32 cbSize;
1867 LPCWSTR lpszDocName;
1868 LPCWSTR lpszOutput;
1869 LPCWSTR lpszDatatype;
1870 DWORD fwType;
1871 } DOCINFO32W, *LPDOCINFO32W;
1873 DECL_WINELIB_TYPE_AW(DOCINFO)
1874 DECL_WINELIB_TYPE_AW(LPDOCINFO)
1876 typedef struct {
1877 UINT16 cbSize;
1878 INT16 iBorderWidth;
1879 INT16 iScrollWidth;
1880 INT16 iScrollHeight;
1881 INT16 iCaptionWidth;
1882 INT16 iCaptionHeight;
1883 LOGFONT16 lfCaptionFont;
1884 INT16 iSmCaptionWidth;
1885 INT16 iSmCaptionHeight;
1886 LOGFONT16 lfSmCaptionFont;
1887 INT16 iMenuWidth;
1888 INT16 iMenuHeight;
1889 LOGFONT16 lfMenuFont;
1890 LOGFONT16 lfStatusFont;
1891 LOGFONT16 lfMessageFont;
1892 } NONCLIENTMETRICS16,*LPNONCLIENTMETRICS16;
1894 typedef struct {
1895 UINT32 cbSize;
1896 INT32 iBorderWidth;
1897 INT32 iScrollWidth;
1898 INT32 iScrollHeight;
1899 INT32 iCaptionWidth;
1900 INT32 iCaptionHeight;
1901 LOGFONT32A lfCaptionFont;
1902 INT32 iSmCaptionWidth;
1903 INT32 iSmCaptionHeight;
1904 LOGFONT32A lfSmCaptionFont;
1905 INT32 iMenuWidth;
1906 INT32 iMenuHeight;
1907 LOGFONT32A lfMenuFont;
1908 LOGFONT32A lfStatusFont;
1909 LOGFONT32A lfMessageFont;
1910 } NONCLIENTMETRICS32A,*LPNONCLIENTMETRICS32A;
1912 typedef struct {
1913 UINT32 cbSize;
1914 INT32 iBorderWidth;
1915 INT32 iScrollWidth;
1916 INT32 iScrollHeight;
1917 INT32 iCaptionWidth;
1918 INT32 iCaptionHeight;
1919 LOGFONT32W lfCaptionFont;
1920 INT32 iSmCaptionWidth;
1921 INT32 iSmCaptionHeight;
1922 LOGFONT32W lfSmCaptionFont;
1923 INT32 iMenuWidth;
1924 INT32 iMenuHeight;
1925 LOGFONT32W lfMenuFont;
1926 LOGFONT32W lfStatusFont;
1927 LOGFONT32W lfMessageFont;
1928 } NONCLIENTMETRICS32W,*LPNONCLIENTMETRICS32W;
1930 DECL_WINELIB_TYPE_AW(NONCLIENTMETRICS)
1931 DECL_WINELIB_TYPE_AW(LPNONCLIENTMETRICS)
1933 #define RDH_RECTANGLES 1
1935 typedef struct _RGNDATAHEADER {
1936 DWORD dwSize;
1937 DWORD iType;
1938 DWORD nCount;
1939 DWORD nRgnSize;
1940 RECT32 rcBound;
1941 } RGNDATAHEADER,*LPRGNDATAHEADER;
1943 typedef struct _RGNDATA {
1944 RGNDATAHEADER rdh;
1945 char Buffer[1];
1946 } RGNDATA,*PRGNDATA,*LPRGNDATA;
1948 typedef BOOL16 (CALLBACK* ABORTPROC16)(HDC16, INT16);
1949 typedef BOOL32 (CALLBACK* ABORTPROC32)(HDC32, INT32);
1950 DECL_WINELIB_TYPE(ABORTPROC)
1952 #pragma pack(4)
1954 /* Declarations for functions that exist only in Win32 */
1956 BOOL32 WINAPI AngleArc32(HDC32, INT32, INT32, DWORD, FLOAT, FLOAT);
1957 #define AngleArc WINELIB_NAME(AngleArc)
1958 BOOL32 WINAPI ArcTo32(HDC32, INT32, INT32, INT32, INT32, INT32, INT32, INT32, INT32);
1959 HENHMETAFILE32 WINAPI CloseEnhMetaFile32(HDC32);
1960 #define CloseEnhMetaFile WINELIB_NAME(CloseEnhMetaFile)
1961 HBRUSH32 WINAPI CreateDIBPatternBrushPt(const void*,UINT32);
1962 HDC32 WINAPI CreateEnhMetaFile32A(HDC32,LPCSTR,const RECT32*,LPCSTR);
1963 HDC32 WINAPI CreateEnhMetaFile32W(HDC32,LPCWSTR,const RECT32*,LPCWSTR);
1964 #define CreateEnhMetaFile WINELIB_NAME_AW(CreateEnhMetaFile)
1965 INT32 WINAPI DrawEscape32(HDC32,INT32,INT32,LPCSTR);
1966 INT16 WINAPI ExcludeVisRect(HDC16,INT16,INT16,INT16,INT16);
1967 BOOL16 WINAPI FastWindowFrame(HDC16,const RECT16*,INT16,INT16,DWORD);
1968 UINT16 WINAPI GDIRealizePalette(HDC16);
1969 HPALETTE16 WINAPI GDISelectPalette(HDC16,HPALETTE16,WORD);
1970 BOOL32 WINAPI GdiComment32(HDC32,UINT32,const BYTE *);
1971 #define GdiComment WINELIB_NAME(GdiComment)
1972 DWORD WINAPI GetBitmapDimension(HBITMAP16);
1973 DWORD WINAPI GetBrushOrg(HDC16);
1974 BOOL32 WINAPI GetCharABCWidthsFloat32A(HDC32,UINT32,UINT32,LPABCFLOAT);
1975 BOOL32 WINAPI GetCharABCWidthsFloat32W(HDC32,UINT32,UINT32,LPABCFLOAT);
1976 #define GetCharABCWidthsFloat WINELIB_NAME_AW(GetCharABCWidthsFloat)
1977 BOOL32 WINAPI GetCharWidthFloat32A(HDC32,UINT32,UINT32,PFLOAT);
1978 BOOL32 WINAPI GetCharWidthFloat32W(HDC32,UINT32,UINT32,PFLOAT);
1979 #define GetCharWidthFloat WINELIB_NAME_AW(GetCharWidthFloat)
1980 BOOL32 WINAPI GetColorAdjustment32(HDC32, LPCOLORADJUSTMENT);
1981 #define GetColorAdjustment WINELIB_NAME(GetColorAdjustment)
1982 HFONT16 WINAPI GetCurLogFont(HDC16);
1983 DWORD WINAPI GetCurrentPosition(HDC16);
1984 DWORD WINAPI GetDCHook(HDC16,FARPROC16*);
1985 DWORD WINAPI GetDCOrg(HDC16);
1986 HDC16 WINAPI GetDCState(HDC16);
1987 INT16 WINAPI GetEnvironment(LPCSTR,LPDEVMODE16,UINT16);
1988 HGLOBAL16 WINAPI GetMetaFileBits(HMETAFILE16);
1989 BOOL32 WINAPI GetMiterLimit(HDC32, PFLOAT);
1990 DWORD WINAPI GetTextExtent(HDC16,LPCSTR,INT16);
1991 DWORD WINAPI GetViewportExt(HDC16);
1992 DWORD WINAPI GetViewportOrg(HDC16);
1993 DWORD WINAPI GetWindowExt(HDC16);
1994 DWORD WINAPI GetWindowOrg(HDC16);
1995 HRGN16 WINAPI InquireVisRgn(HDC16);
1996 INT16 WINAPI IntersectVisRect(HDC16,INT16,INT16,INT16,INT16);
1997 BOOL16 WINAPI IsDCCurrentPalette(HDC16);
1998 BOOL16 WINAPI IsGDIObject(HGDIOBJ16);
1999 BOOL16 WINAPI IsValidMetaFile(HMETAFILE16);
2000 BOOL32 WINAPI MaskBlt(HDC32,INT32,INT32,INT32,INT32,HDC32,INT32,INT32,HBITMAP32,INT32,INT32,DWORD);
2001 DWORD WINAPI MoveTo(HDC16,INT16,INT16);
2002 DWORD WINAPI OffsetViewportOrg(HDC16,INT16,INT16);
2003 INT16 WINAPI OffsetVisRgn(HDC16,INT16,INT16);
2004 DWORD WINAPI OffsetWindowOrg(HDC16,INT16,INT16);
2005 BOOL32 WINAPI PlgBlt(HDC32,const POINT32*,HDC32,INT32,INT32,INT32,INT32,HBITMAP32,INT32,INT32);
2006 BOOL32 WINAPI PolyDraw32(HDC32,const POINT32*,const BYTE*,DWORD);
2007 UINT16 WINAPI RealizeDefaultPalette(HDC16);
2008 INT16 WINAPI RestoreVisRgn(HDC16);
2009 HRGN16 WINAPI SaveVisRgn(HDC16);
2010 DWORD WINAPI ScaleViewportExt(HDC16,INT16,INT16,INT16,INT16);
2011 DWORD WINAPI ScaleWindowExt(HDC16,INT16,INT16,INT16,INT16);
2012 INT16 WINAPI SelectVisRgn(HDC16,HRGN16);
2013 DWORD WINAPI SetBitmapDimension(HBITMAP16,INT16,INT16);
2014 DWORD WINAPI SetBrushOrg(HDC16,INT16,INT16);
2015 BOOL32 WINAPI SetColorAdjustment32(HDC32,const COLORADJUSTMENT*);
2016 BOOL16 WINAPI SetDCHook(HDC16,FARPROC16,DWORD);
2017 DWORD WINAPI SetDCOrg(HDC16,INT16,INT16);
2018 VOID WINAPI SetDCState(HDC16,HDC16);
2019 INT16 WINAPI SetEnvironment(LPCSTR,LPDEVMODE16,UINT16);
2020 WORD WINAPI SetHookFlags(HDC16,WORD);
2021 HMETAFILE16 WINAPI SetMetaFileBits(HGLOBAL16);
2022 BOOL32 WINAPI SetMiterLimit(HDC32, FLOAT, PFLOAT);
2023 DWORD WINAPI SetViewportExt(HDC16,INT16,INT16);
2024 DWORD WINAPI SetViewportOrg(HDC16,INT16,INT16);
2025 DWORD WINAPI SetWindowExt(HDC16,INT16,INT16);
2026 DWORD WINAPI SetWindowOrg(HDC16,INT16,INT16);
2027 BOOL32 WINAPI CombineTransform(LPXFORM,const XFORM *,const XFORM *);
2028 HENHMETAFILE32 WINAPI CopyEnhMetaFile32A(HENHMETAFILE32,LPCSTR);
2029 HENHMETAFILE32 WINAPI CopyEnhMetaFile32W(HENHMETAFILE32,LPCWSTR);
2030 #define CopyEnhMetaFile WINELIB_NAME_AW(CopyEnhMetaFile)
2031 HPALETTE32 WINAPI CreateHalftonePalette(HDC32);
2032 BOOL32 WINAPI DeleteEnhMetaFile(HENHMETAFILE32);
2033 INT32 WINAPI ExtSelectClipRgn(HDC32,HRGN32,INT32);
2034 HRGN32 WINAPI ExtCreateRegion(const XFORM*,DWORD,const RGNDATA*);
2035 INT32 WINAPI ExtEscape32(HDC32,INT32,INT32,LPCSTR,INT32,LPSTR);
2036 BOOL32 WINAPI FixBrushOrgEx(HDC32,INT32,INT32,LPPOINT32);
2037 HANDLE32 WINAPI GetCurrentObject(HDC32,UINT32);
2038 BOOL32 WINAPI GetDCOrgEx(HDC32,LPPOINT32);
2039 HENHMETAFILE32 WINAPI GetEnhMetaFile32A(LPCSTR);
2040 HENHMETAFILE32 WINAPI GetEnhMetaFile32W(LPCWSTR);
2041 #define GetEnhMetaFile WINELIB_NAME_AW(GetEnhMetaFile)
2042 UINT32 WINAPI GetEnhMetaFileBits(HENHMETAFILE32,UINT32,LPBYTE);
2043 UINT32 WINAPI GetEnhMetaFileHeader(HENHMETAFILE32,UINT32,LPENHMETAHEADER);
2044 UINT32 WINAPI GetEnhMetaFilePaletteEntries(HENHMETAFILE32,UINT32,LPPALETTEENTRY);
2045 INT32 WINAPI GetGraphicsMode(HDC32);
2046 UINT32 WINAPI GetMetaFileBitsEx(HMETAFILE32,UINT32,LPVOID);
2047 DWORD WINAPI GetObjectType(HANDLE32);
2048 UINT32 WINAPI GetTextCharsetInfo(HDC32,LPFONTSIGNATURE,DWORD);
2049 BOOL32 WINAPI GetTextExtentExPoint32A(HDC32,LPCSTR,INT32,INT32,
2050 LPINT32,LPINT32,LPSIZE32);
2051 BOOL32 WINAPI GetTextExtentExPoint32W(HDC32,LPCWSTR,INT32,INT32,
2052 LPINT32,LPINT32,LPSIZE32);
2053 #define GetTextExtentExPoint WINELIB_NAME_AW(GetTextExtentExPoint)
2054 BOOL32 WINAPI GetWorldTransform(HDC32,LPXFORM);
2055 BOOL32 WINAPI ModifyWorldTransform(HDC32,const XFORM *, DWORD);
2056 BOOL32 WINAPI PlayEnhMetaFile(HDC32,HENHMETAFILE32,const RECT32*);
2057 BOOL32 WINAPI PlayEnhMetaFileRecord(HDC32,LPHANDLETABLE32,const ENHMETARECORD*,UINT32);
2058 BOOL32 WINAPI PolyPolyline32(HDC32,const POINT32*,const DWORD*,DWORD);
2059 BOOL32 WINAPI SetBrushOrgEx(HDC32,INT32,INT32,LPPOINT32);
2060 HENHMETAFILE32 WINAPI SetEnhMetaFileBits(UINT32,const BYTE *);
2061 INT32 WINAPI SetGraphicsMode(HDC32,INT32);
2062 HMETAFILE32 WINAPI SetMetaFileBitsEx(UINT32,const BYTE*);
2063 BOOL32 WINAPI SetWorldTransform(HDC32,const XFORM*);
2064 BOOL32 WINAPI TranslateCharsetInfo(LPDWORD,LPCHARSETINFO,DWORD);
2066 /* Declarations for functions that change between Win16 and Win32 */
2068 INT16 WINAPI AbortDoc16(HDC16);
2069 INT32 WINAPI AbortDoc32(HDC32);
2070 #define AbortDoc WINELIB_NAME(AbortDoc)
2071 BOOL16 WINAPI AbortPath16(HDC16);
2072 BOOL32 WINAPI AbortPath32(HDC32);
2073 #define AbortPath WINELIB_NAME(AbortPath)
2074 INT16 WINAPI AddFontResource16(LPCSTR);
2075 INT32 WINAPI AddFontResource32A(LPCSTR);
2076 INT32 WINAPI AddFontResource32W(LPCWSTR);
2077 #define AddFontResource WINELIB_NAME_AW(AddFontResource)
2078 void WINAPI AnimatePalette16(HPALETTE16,UINT16,UINT16,const PALETTEENTRY*);
2079 BOOL32 WINAPI AnimatePalette32(HPALETTE32,UINT32,UINT32,const PALETTEENTRY*);
2080 #define AnimatePalette WINELIB_NAME(AnimatePalette)
2081 BOOL16 WINAPI Arc16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16);
2082 BOOL32 WINAPI Arc32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32,INT32,INT32);
2083 #define Arc WINELIB_NAME(Arc)
2084 BOOL16 WINAPI BeginPath16(HDC16);
2085 BOOL32 WINAPI BeginPath32(HDC32);
2086 #define BeginPath WINELIB_NAME(BeginPath)
2087 BOOL16 WINAPI BitBlt16(HDC16,INT16,INT16,INT16,INT16,HDC16,INT16,INT16,DWORD);
2088 BOOL32 WINAPI BitBlt32(HDC32,INT32,INT32,INT32,INT32,HDC32,INT32,INT32,DWORD);
2089 #define BitBlt WINELIB_NAME(BitBlt)
2090 INT32 WINAPI ChoosePixelFormat(HDC32,const PIXELFORMATDESCRIPTOR*);
2091 BOOL16 WINAPI Chord16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16);
2092 BOOL32 WINAPI Chord32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32,INT32,INT32);
2093 #define Chord WINELIB_NAME(Chord)
2094 BOOL16 WINAPI CloseFigure16(HDC16);
2095 BOOL32 WINAPI CloseFigure32(HDC32);
2096 #define CloseFigure WINELIB_NAME(CloseFigure)
2097 HMETAFILE16 WINAPI CloseMetaFile16(HDC16);
2098 HMETAFILE32 WINAPI CloseMetaFile32(HDC32);
2099 #define CloseMetaFile WINELIB_NAME(CloseMetaFile)
2100 INT16 WINAPI CombineRgn16(HRGN16,HRGN16,HRGN16,INT16);
2101 INT32 WINAPI CombineRgn32(HRGN32,HRGN32,HRGN32,INT32);
2102 #define CombineRgn WINELIB_NAME(CombineRgn)
2103 HMETAFILE16 WINAPI CopyMetaFile16(HMETAFILE16,LPCSTR);
2104 HMETAFILE32 WINAPI CopyMetaFile32A(HMETAFILE32,LPCSTR);
2105 HMETAFILE32 WINAPI CopyMetaFile32W(HMETAFILE32,LPCWSTR);
2106 #define CopyMetaFile WINELIB_NAME_AW(CopyMetaFile)
2107 HBITMAP16 WINAPI CreateBitmap16(INT16,INT16,UINT16,UINT16,LPCVOID);
2108 HBITMAP32 WINAPI CreateBitmap32(INT32,INT32,UINT32,UINT32,LPCVOID);
2109 #define CreateBitmap WINELIB_NAME(CreateBitmap)
2110 HBITMAP16 WINAPI CreateBitmapIndirect16(const BITMAP16*);
2111 HBITMAP32 WINAPI CreateBitmapIndirect32(const BITMAP32*);
2112 #define CreateBitmapIndirect WINELIB_NAME(CreateBitmapIndirect)
2113 HBRUSH16 WINAPI CreateBrushIndirect16(const LOGBRUSH16*);
2114 HBRUSH32 WINAPI CreateBrushIndirect32(const LOGBRUSH32*);
2115 #define CreateBrushIndirect WINELIB_NAME(CreateBrushIndirect)
2116 HBITMAP16 WINAPI CreateCompatibleBitmap16(HDC16,INT16,INT16);
2117 HBITMAP32 WINAPI CreateCompatibleBitmap32(HDC32,INT32,INT32);
2118 #define CreateCompatibleBitmap WINELIB_NAME(CreateCompatibleBitmap)
2119 HDC16 WINAPI CreateCompatibleDC16(HDC16);
2120 HDC32 WINAPI CreateCompatibleDC32(HDC32);
2121 #define CreateCompatibleDC WINELIB_NAME(CreateCompatibleDC)
2122 HDC16 WINAPI CreateDC16(LPCSTR,LPCSTR,LPCSTR,const DEVMODE16*);
2123 HDC32 WINAPI CreateDC32A(LPCSTR,LPCSTR,LPCSTR,const DEVMODE32A*);
2124 HDC32 WINAPI CreateDC32W(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODE32W*);
2125 #define CreateDC WINELIB_NAME_AW(CreateDC)
2126 HBITMAP16 WINAPI CreateDIBitmap16(HDC16,const BITMAPINFOHEADER*,DWORD,
2127 LPCVOID,const BITMAPINFO*,UINT16);
2128 HBITMAP32 WINAPI CreateDIBitmap32(HDC32,const BITMAPINFOHEADER*,DWORD,
2129 LPCVOID,const BITMAPINFO*,UINT32);
2130 #define CreateDIBitmap WINELIB_NAME(CreateDIBitmap)
2131 HBRUSH16 WINAPI CreateDIBPatternBrush16(HGLOBAL16,UINT16);
2132 HBRUSH32 WINAPI CreateDIBPatternBrush32(HGLOBAL32,UINT32);
2133 #define CreateDIBPatternBrush WINELIB_NAME(CreateDIBPatternBrush)
2134 HBITMAP16 WINAPI CreateDIBSection16 (HDC16, BITMAPINFO *, UINT16,
2135 LPVOID **, HANDLE32, DWORD offset);
2136 HBITMAP32 WINAPI CreateDIBSection32 (HDC32, BITMAPINFO *, UINT32,
2137 LPVOID **, HANDLE32, DWORD offset);
2138 #define CreateDIBSection WINELIB_NAME(CreateDIBSection)
2139 HBITMAP16 WINAPI CreateDiscardableBitmap16(HDC16,INT16,INT16);
2140 HBITMAP32 WINAPI CreateDiscardableBitmap32(HDC32,INT32,INT32);
2141 #define CreateDiscardableBitmap WINELIB_NAME(CreateDiscardableBitmap)
2142 HRGN16 WINAPI CreateEllipticRgn16(INT16,INT16,INT16,INT16);
2143 HRGN32 WINAPI CreateEllipticRgn32(INT32,INT32,INT32,INT32);
2144 #define CreateEllipticRgn WINELIB_NAME(CreateEllipticRgn)
2145 HRGN16 WINAPI CreateEllipticRgnIndirect16(const RECT16 *);
2146 HRGN32 WINAPI CreateEllipticRgnIndirect32(const RECT32 *);
2147 #define CreateEllipticRgnIndirect WINELIB_NAME(CreateEllipticRgnIndirect)
2148 HFONT16 WINAPI CreateFont16(INT16,INT16,INT16,INT16,INT16,BYTE,BYTE,BYTE,
2149 BYTE,BYTE,BYTE,BYTE,BYTE,LPCSTR);
2150 HFONT32 WINAPI CreateFont32A(INT32,INT32,INT32,INT32,INT32,DWORD,DWORD,
2151 DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCSTR);
2152 HFONT32 WINAPI CreateFont32W(INT32,INT32,INT32,INT32,INT32,DWORD,DWORD,
2153 DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCWSTR);
2154 #define CreateFont WINELIB_NAME_AW(CreateFont)
2155 HFONT16 WINAPI CreateFontIndirect16(const LOGFONT16*);
2156 HFONT32 WINAPI CreateFontIndirect32A(const LOGFONT32A*);
2157 HFONT32 WINAPI CreateFontIndirect32W(const LOGFONT32W*);
2158 #define CreateFontIndirect WINELIB_NAME_AW(CreateFontIndirect)
2159 HBRUSH16 WINAPI CreateHatchBrush16(INT16,COLORREF);
2160 HBRUSH32 WINAPI CreateHatchBrush32(INT32,COLORREF);
2161 #define CreateHatchBrush WINELIB_NAME(CreateHatchBrush)
2162 HDC16 WINAPI CreateIC16(LPCSTR,LPCSTR,LPCSTR,const DEVMODE16*);
2163 HDC32 WINAPI CreateIC32A(LPCSTR,LPCSTR,LPCSTR,const DEVMODE32A*);
2164 HDC32 WINAPI CreateIC32W(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODE32W*);
2165 #define CreateIC WINELIB_NAME_AW(CreateIC)
2166 HDC16 WINAPI CreateMetaFile16(LPCSTR);
2167 HDC32 WINAPI CreateMetaFile32A(LPCSTR);
2168 HDC32 WINAPI CreateMetaFile32W(LPCWSTR);
2169 #define CreateMetaFile WINELIB_NAME_AW(CreateMetaFile)
2170 HPALETTE16 WINAPI CreatePalette16(const LOGPALETTE*);
2171 HPALETTE32 WINAPI CreatePalette32(const LOGPALETTE*);
2172 #define CreatePalette WINELIB_NAME(CreatePalette)
2173 HBRUSH16 WINAPI CreatePatternBrush16(HBITMAP16);
2174 HBRUSH32 WINAPI CreatePatternBrush32(HBITMAP32);
2175 #define CreatePatternBrush WINELIB_NAME(CreatePatternBrush)
2176 HPEN16 WINAPI CreatePen16(INT16,INT16,COLORREF);
2177 HPEN32 WINAPI CreatePen32(INT32,INT32,COLORREF);
2178 #define CreatePen WINELIB_NAME(CreatePen)
2179 HPEN16 WINAPI CreatePenIndirect16(const LOGPEN16*);
2180 HPEN32 WINAPI CreatePenIndirect32(const LOGPEN32*);
2181 #define CreatePenIndirect WINELIB_NAME(CreatePenIndirect)
2182 HRGN16 WINAPI CreatePolyPolygonRgn16(const POINT16*,const INT16*,INT16,INT16);
2183 HRGN32 WINAPI CreatePolyPolygonRgn32(const POINT32*,const INT32*,INT32,INT32);
2184 #define CreatePolyPolygonRgn WINELIB_NAME(CreatePolyPolygonRgn)
2185 HRGN16 WINAPI CreatePolygonRgn16(const POINT16*,INT16,INT16);
2186 HRGN32 WINAPI CreatePolygonRgn32(const POINT32*,INT32,INT32);
2187 #define CreatePolygonRgn WINELIB_NAME(CreatePolygonRgn)
2188 HRGN16 WINAPI CreateRectRgn16(INT16,INT16,INT16,INT16);
2189 HRGN32 WINAPI CreateRectRgn32(INT32,INT32,INT32,INT32);
2190 #define CreateRectRgn WINELIB_NAME(CreateRectRgn)
2191 HRGN16 WINAPI CreateRectRgnIndirect16(const RECT16*);
2192 HRGN32 WINAPI CreateRectRgnIndirect32(const RECT32*);
2193 #define CreateRectRgnIndirect WINELIB_NAME(CreateRectRgnIndirect)
2194 HRGN16 WINAPI CreateRoundRectRgn16(INT16,INT16,INT16,INT16,INT16,INT16);
2195 HRGN32 WINAPI CreateRoundRectRgn32(INT32,INT32,INT32,INT32,INT32,INT32);
2196 #define CreateRoundRectRgn WINELIB_NAME(CreateRoundRectRgn)
2197 BOOL16 WINAPI CreateScalableFontResource16(UINT16,LPCSTR,LPCSTR,LPCSTR);
2198 BOOL32 WINAPI CreateScalableFontResource32A(DWORD,LPCSTR,LPCSTR,LPCSTR);
2199 BOOL32 WINAPI CreateScalableFontResource32W(DWORD,LPCWSTR,LPCWSTR,LPCWSTR);
2200 #define CreateScalableFontResource WINELIB_NAME_AW(CreateScalableFontResource)
2201 HBRUSH16 WINAPI CreateSolidBrush16(COLORREF);
2202 HBRUSH32 WINAPI CreateSolidBrush32(COLORREF);
2203 #define CreateSolidBrush WINELIB_NAME(CreateSolidBrush)
2204 BOOL16 WINAPI DeleteDC16(HDC16);
2205 BOOL32 WINAPI DeleteDC32(HDC32);
2206 #define DeleteDC WINELIB_NAME(DeleteDC)
2207 BOOL16 WINAPI DeleteMetaFile16(HMETAFILE16);
2208 BOOL32 WINAPI DeleteMetaFile32(HMETAFILE32);
2209 #define DeleteMetaFile WINELIB_NAME(DeleteMetaFile)
2210 BOOL16 WINAPI DeleteObject16(HGDIOBJ16);
2211 BOOL32 WINAPI DeleteObject32(HGDIOBJ32);
2212 #define DeleteObject WINELIB_NAME(DeleteObject)
2213 INT32 WINAPI DescribePixelFormat(HDC32,int,UINT32,
2214 LPPIXELFORMATDESCRIPTOR);
2215 BOOL16 WINAPI DPtoLP16(HDC16,LPPOINT16,INT16);
2216 BOOL32 WINAPI DPtoLP32(HDC32,LPPOINT32,INT32);
2217 #define DPtoLP WINELIB_NAME(DPtoLP)
2218 BOOL16 WINAPI Ellipse16(HDC16,INT16,INT16,INT16,INT16);
2219 BOOL32 WINAPI Ellipse32(HDC32,INT32,INT32,INT32,INT32);
2220 #define Ellipse WINELIB_NAME(Ellipse)
2221 INT16 WINAPI EndDoc16(HDC16);
2222 INT32 WINAPI EndDoc32(HDC32);
2223 #define EndDoc WINELIB_NAME(EndDoc)
2224 BOOL16 WINAPI EndPath16(HDC16);
2225 BOOL32 WINAPI EndPath32(HDC32);
2226 #define EndPath WINELIB_NAME(EndPath)
2227 INT16 WINAPI EnumFontFamilies16(HDC16,LPCSTR,FONTENUMPROC16,LPARAM);
2228 INT32 WINAPI EnumFontFamilies32A(HDC32,LPCSTR,FONTENUMPROC32A,LPARAM);
2229 INT32 WINAPI EnumFontFamilies32W(HDC32,LPCWSTR,FONTENUMPROC32W,LPARAM);
2230 #define EnumFontFamilies WINELIB_NAME_AW(EnumFontFamilies)
2231 INT16 WINAPI EnumFontFamiliesEx16(HDC16,LPLOGFONT16,FONTENUMPROCEX16,LPARAM,DWORD);
2232 INT32 WINAPI EnumFontFamiliesEx32A(HDC32,LPLOGFONT32A,FONTENUMPROCEX32A,LPARAM,DWORD);
2233 INT32 WINAPI EnumFontFamiliesEx32W(HDC32,LPLOGFONT32W,FONTENUMPROCEX32W,LPARAM,DWORD);
2234 #define EnumFontFamiliesEx WINELIB_NAME_AW(EnumFontFamiliesEx)
2235 INT16 WINAPI EnumFonts16(HDC16,LPCSTR,FONTENUMPROC16,LPARAM);
2236 INT32 WINAPI EnumFonts32A(HDC32,LPCSTR,FONTENUMPROC32A,LPARAM);
2237 INT32 WINAPI EnumFonts32W(HDC32,LPCWSTR,FONTENUMPROC32W,LPARAM);
2238 #define EnumFonts WINELIB_NAME_AW(EnumFonts)
2239 BOOL16 WINAPI EnumMetaFile16(HDC16,HMETAFILE16,MFENUMPROC16,LPARAM);
2240 BOOL32 WINAPI EnumMetaFile32(HDC32,HMETAFILE32,MFENUMPROC32,LPARAM);
2241 #define EnumMetaFile WINELIB_NAME(EnumMetaFile)
2242 INT16 WINAPI EnumObjects16(HDC16,INT16,GOBJENUMPROC16,LPARAM);
2243 INT32 WINAPI EnumObjects32(HDC32,INT32,GOBJENUMPROC32,LPARAM);
2244 #define EnumObjects WINELIB_NAME(EnumObjects)
2245 BOOL16 WINAPI EqualRgn16(HRGN16,HRGN16);
2246 BOOL32 WINAPI EqualRgn32(HRGN32,HRGN32);
2247 #define EqualRgn WINELIB_NAME(EqualRgn)
2248 INT16 WINAPI Escape16(HDC16,INT16,INT16,SEGPTR,SEGPTR);
2249 INT32 WINAPI Escape32(HDC32,INT32,INT32,LPCSTR,LPVOID);
2250 #define Escape WINELIB_NAME(Escape)
2251 INT16 WINAPI ExcludeClipRect16(HDC16,INT16,INT16,INT16,INT16);
2252 INT32 WINAPI ExcludeClipRect32(HDC32,INT32,INT32,INT32,INT32);
2253 #define ExcludeClipRect WINELIB_NAME(ExcludeClipRect)
2254 HPEN16 WINAPI ExtCreatePen16(DWORD,DWORD,const LOGBRUSH16*,DWORD,const DWORD*);
2255 HPEN32 WINAPI ExtCreatePen32(DWORD,DWORD,const LOGBRUSH32*,DWORD,const DWORD*);
2256 #define ExtCreatePen WINELIB_NAME(ExtCreatePen)
2257 BOOL16 WINAPI ExtFloodFill16(HDC16,INT16,INT16,COLORREF,UINT16);
2258 BOOL32 WINAPI ExtFloodFill32(HDC32,INT32,INT32,COLORREF,UINT32);
2259 #define ExtFloodFill WINELIB_NAME(ExtFloodFill)
2260 BOOL16 WINAPI ExtTextOut16(HDC16,INT16,INT16,UINT16,const RECT16*,
2261 LPCSTR,UINT16,const INT16*);
2262 BOOL32 WINAPI ExtTextOut32A(HDC32,INT32,INT32,UINT32,const RECT32*,
2263 LPCSTR,UINT32,const INT32*);
2264 BOOL32 WINAPI ExtTextOut32W(HDC32,INT32,INT32,UINT32,const RECT32*,
2265 LPCWSTR,UINT32,const INT32*);
2266 #define ExtTextOut WINELIB_NAME_AW(ExtTextOut)
2267 BOOL16 WINAPI FillPath16(HDC16);
2268 BOOL32 WINAPI FillPath32(HDC32);
2269 #define FillPath WINELIB_NAME(FillPath)
2270 BOOL16 WINAPI FillRgn16(HDC16,HRGN16,HBRUSH16);
2271 BOOL32 WINAPI FillRgn32(HDC32,HRGN32,HBRUSH32);
2272 #define FillRgn WINELIB_NAME(FillRgn)
2273 BOOL16 WINAPI FlattenPath16(HDC16);
2274 BOOL32 WINAPI FlattenPath32(HDC32);
2275 #define FlattenPath WINELIB_NAME(FlattenPath)
2276 BOOL16 WINAPI FloodFill16(HDC16,INT16,INT16,COLORREF);
2277 BOOL32 WINAPI FloodFill32(HDC32,INT32,INT32,COLORREF);
2278 #define FloodFill WINELIB_NAME(FloodFill)
2279 BOOL16 WINAPI FrameRgn16(HDC16,HRGN16,HBRUSH16,INT16,INT16);
2280 BOOL32 WINAPI FrameRgn32(HDC32,HRGN32,HBRUSH32,INT32,INT32);
2281 #define FrameRgn WINELIB_NAME(FrameRgn)
2282 INT16 WINAPI GetArcDirection16(HDC16);
2283 INT32 WINAPI GetArcDirection32(HDC32);
2284 #define GetArcDirection WINELIB_NAME(GetArcDirection)
2285 BOOL16 WINAPI GetAspectRatioFilterEx16(HDC16,LPSIZE16);
2286 BOOL32 WINAPI GetAspectRatioFilterEx32(HDC32,LPSIZE32);
2287 #define GetAspectRatioFilterEx WINELIB_NAME(GetAspectRatioFilterEx)
2288 LONG WINAPI GetBitmapBits16(HBITMAP16,LONG,LPVOID);
2289 LONG WINAPI GetBitmapBits32(HBITMAP32,LONG,LPVOID);
2290 #define GetBitmapBits WINELIB_NAME(GetBitmapBits)
2291 BOOL16 WINAPI GetBitmapDimensionEx16(HBITMAP16,LPSIZE16);
2292 BOOL32 WINAPI GetBitmapDimensionEx32(HBITMAP32,LPSIZE32);
2293 #define GetBitmapDimensionEx WINELIB_NAME(GetBitmapDimensionEx)
2294 BOOL16 WINAPI GetBrushOrgEx16(HDC16,LPPOINT16);
2295 BOOL32 WINAPI GetBrushOrgEx32(HDC32,LPPOINT32);
2296 #define GetBrushOrgEx WINELIB_NAME(GetBrushOrgEx)
2297 COLORREF WINAPI GetBkColor16(HDC16);
2298 COLORREF WINAPI GetBkColor32(HDC32);
2299 #define GetBkColor WINELIB_NAME(GetBkColor)
2300 INT16 WINAPI GetBkMode16(HDC16);
2301 INT32 WINAPI GetBkMode32(HDC32);
2302 #define GetBkMode WINELIB_NAME(GetBkMode)
2303 UINT16 WINAPI GetBoundsRect16(HDC16,LPRECT16,UINT16);
2304 UINT32 WINAPI GetBoundsRect32(HDC32,LPRECT32,UINT32);
2305 #define GetBoundsRect WINELIB_NAME(GetBoundsRect)
2306 BOOL16 WINAPI GetCharABCWidths16(HDC16,UINT16,UINT16,LPABC16);
2307 BOOL32 WINAPI GetCharABCWidths32A(HDC32,UINT32,UINT32,LPABC32);
2308 BOOL32 WINAPI GetCharABCWidths32W(HDC32,UINT32,UINT32,LPABC32);
2309 #define GetCharABCWidths WINELIB_NAME_AW(GetCharABCWidths)
2310 DWORD WINAPI GetCharacterPlacement32A(HDC32,LPCSTR,INT32,INT32,GCP_RESULTS32A*,DWORD);
2311 DWORD WINAPI GetCharacterPlacement32W(HDC32,LPCWSTR,INT32,INT32,GCP_RESULTS32W*,DWORD);
2312 #define GetCharacterPlacement WINELIB_NAME_AW(GetCharacterPlacement)
2313 BOOL16 WINAPI GetCharWidth16(HDC16,UINT16,UINT16,LPINT16);
2314 BOOL32 WINAPI GetCharWidth32A(HDC32,UINT32,UINT32,LPINT32);
2315 BOOL32 WINAPI GetCharWidth32W(HDC32,UINT32,UINT32,LPINT32);
2316 #define GetCharWidth WINELIB_NAME_AW(GetCharWidth)
2317 INT16 WINAPI GetClipBox16(HDC16,LPRECT16);
2318 INT32 WINAPI GetClipBox32(HDC32,LPRECT32);
2319 #define GetClipBox WINELIB_NAME(GetClipBox)
2320 HRGN16 WINAPI GetClipRgn16(HDC16);
2321 INT32 WINAPI GetClipRgn32(HDC32,HRGN32);
2322 #define GetClipRgn WINELIB_NAME(GetClipRgn)
2323 BOOL16 WINAPI GetCurrentPositionEx16(HDC16,LPPOINT16);
2324 BOOL32 WINAPI GetCurrentPositionEx32(HDC32,LPPOINT32);
2325 #define GetCurrentPositionEx WINELIB_NAME(GetCurrentPositionEx)
2326 INT16 WINAPI GetDeviceCaps16(HDC16,INT16);
2327 INT32 WINAPI GetDeviceCaps32(HDC32,INT32);
2328 #define GetDeviceCaps WINELIB_NAME(GetDeviceCaps)
2329 UINT16 WINAPI GetDIBColorTable16(HDC16,UINT16,UINT16,RGBQUAD*);
2330 UINT32 WINAPI GetDIBColorTable32(HDC32,UINT32,UINT32,RGBQUAD*);
2331 #define GetDIBColorTable WINELIB_NAME(GetDIBColorTable)
2332 INT16 WINAPI GetDIBits16(HDC16,HBITMAP16,UINT16,UINT16,LPSTR,LPBITMAPINFO,UINT16);
2333 INT32 WINAPI GetDIBits32(HDC32,HBITMAP32,UINT32,UINT32,LPSTR,LPBITMAPINFO,UINT32);
2334 #define GetDIBits WINELIB_NAME(GetDIBits)
2335 DWORD WINAPI GetFontData32(HDC32,DWORD,DWORD,LPVOID,DWORD);
2336 #define GetFontData WINELIB_NAME(GetFontData)
2337 DWORD WINAPI GetFontLanguageInfo16(HDC16);
2338 DWORD WINAPI GetFontLanguageInfo32(HDC32);
2339 #define GetFontLanguageInfo WINELIB_NAME(GetFontLanguageInfo)
2340 DWORD WINAPI GetGlyphOutline16(HDC16,UINT16,UINT16,LPGLYPHMETRICS16,DWORD,LPVOID,const MAT2*);
2341 DWORD WINAPI GetGlyphOutline32A(HDC32,UINT32,UINT32,LPGLYPHMETRICS32,DWORD,LPVOID,const MAT2*);
2342 DWORD WINAPI GetGlyphOutline32W(HDC32,UINT32,UINT32,LPGLYPHMETRICS32,DWORD,LPVOID,const MAT2*);
2343 #define GetGlyphOutline WINELIB_NAME_AW(GetGlyphOutline)
2344 INT16 WINAPI GetKerningPairs16(HDC16,INT16,LPKERNINGPAIR16);
2345 DWORD WINAPI GetKerningPairs32A(HDC32,DWORD,LPKERNINGPAIR32);
2346 DWORD WINAPI GetKerningPairs32W(HDC32,DWORD,LPKERNINGPAIR32);
2347 #define GetKerningPairs WINELIB_NAME_AW(GetKerningPairs)
2348 INT16 WINAPI GetMapMode16(HDC16);
2349 INT32 WINAPI GetMapMode32(HDC32);
2350 #define GetMapMode WINELIB_NAME(GetMapMode)
2351 HMETAFILE16 WINAPI GetMetaFile16(LPCSTR);
2352 HMETAFILE32 WINAPI GetMetaFile32A(LPCSTR);
2353 HMETAFILE32 WINAPI GetMetaFile32W(LPCWSTR);
2354 #define GetMetaFile WINELIB_NAME_AW(GetMetaFile)
2355 DWORD WINAPI GetNearestColor16(HDC16,DWORD);
2356 DWORD WINAPI GetNearestColor32(HDC32,DWORD);
2357 #define GetNearestColor WINELIB_NAME(GetNearestColor)
2358 UINT16 WINAPI GetNearestPaletteIndex16(HPALETTE16,COLORREF);
2359 UINT32 WINAPI GetNearestPaletteIndex32(HPALETTE32,COLORREF);
2360 #define GetNearestPaletteIndex WINELIB_NAME(GetNearestPaletteIndex)
2361 INT16 WINAPI GetObject16(HANDLE16,INT16,LPVOID);
2362 INT32 WINAPI GetObject32A(HANDLE32,INT32,LPVOID);
2363 INT32 WINAPI GetObject32W(HANDLE32,INT32,LPVOID);
2364 #define GetObject WINELIB_NAME_AW(GetObject)
2365 UINT16 WINAPI GetOutlineTextMetrics16(HDC16,UINT16,LPOUTLINETEXTMETRIC16);
2366 UINT32 WINAPI GetOutlineTextMetrics32A(HDC32,UINT32,LPOUTLINETEXTMETRIC32A);
2367 UINT32 WINAPI GetOutlineTextMetrics32W(HDC32,UINT32,LPOUTLINETEXTMETRIC32W);
2368 #define GetOutlineTextMetrics WINELIB_NAME_AW(GetOutlineTextMetrics)
2369 UINT16 WINAPI GetPaletteEntries16(HPALETTE16,UINT16,UINT16,LPPALETTEENTRY);
2370 UINT32 WINAPI GetPaletteEntries32(HPALETTE32,UINT32,UINT32,LPPALETTEENTRY);
2371 #define GetPaletteEntries WINELIB_NAME(GetPaletteEntries)
2372 INT16 WINAPI GetPath16(HDC16,LPPOINT16,LPBYTE,INT16);
2373 INT32 WINAPI GetPath32(HDC32,LPPOINT32,LPBYTE,INT32);
2374 #define GetPath WINELIB_NAME(GetPath)
2375 COLORREF WINAPI GetPixel16(HDC16,INT16,INT16);
2376 COLORREF WINAPI GetPixel32(HDC32,INT32,INT32);
2377 #define GetPixel WINELIB_NAME(GetPixel)
2378 INT32 WINAPI GetPixelFormat(HDC32);
2379 INT16 WINAPI GetPolyFillMode16(HDC16);
2380 INT32 WINAPI GetPolyFillMode32(HDC32);
2381 #define GetPolyFillMode WINELIB_NAME(GetPolyFillMode)
2382 BOOL16 WINAPI GetRasterizerCaps16(LPRASTERIZER_STATUS,UINT16);
2383 BOOL32 WINAPI GetRasterizerCaps32(LPRASTERIZER_STATUS,UINT32);
2384 #define GetRasterizerCaps WINELIB_NAME(GetRasterizerCaps)
2385 DWORD WINAPI GetRegionData16(HRGN16,DWORD,LPRGNDATA);
2386 DWORD WINAPI GetRegionData32(HRGN32,DWORD,LPRGNDATA);
2387 #define GetRegionData WINELIB_NAME(GetRegionData)
2388 INT16 WINAPI GetRelAbs16(HDC16);
2389 INT32 WINAPI GetRelAbs32(HDC32);
2390 #define GetRelAbs WINELIB_NAME(GetRelAbs)
2391 INT16 WINAPI GetRgnBox16(HRGN16,LPRECT16);
2392 INT32 WINAPI GetRgnBox32(HRGN32,LPRECT32);
2393 #define GetRgnBox WINELIB_NAME(GetRgnBox)
2394 INT16 WINAPI GetROP216(HDC16);
2395 INT32 WINAPI GetROP232(HDC32);
2396 #define GetROP2 WINELIB_NAME(GetROP2)
2397 HGDIOBJ16 WINAPI GetStockObject16(INT16);
2398 HGDIOBJ32 WINAPI GetStockObject32(INT32);
2399 #define GetStockObject WINELIB_NAME(GetStockObject)
2400 INT16 WINAPI GetStretchBltMode16(HDC16);
2401 INT32 WINAPI GetStretchBltMode32(HDC32);
2402 #define GetStretchBltMode WINELIB_NAME(GetStretchBltMode)
2403 UINT16 WINAPI GetSystemPaletteEntries16(HDC16,UINT16,UINT16,LPPALETTEENTRY);
2404 UINT32 WINAPI GetSystemPaletteEntries32(HDC32,UINT32,UINT32,LPPALETTEENTRY);
2405 #define GetSystemPaletteEntries WINELIB_NAME(GetSystemPaletteEntries)
2406 UINT16 WINAPI GetSystemPaletteUse16(HDC16);
2407 UINT32 WINAPI GetSystemPaletteUse32(HDC32);
2408 #define GetSystemPaletteUse WINELIB_NAME(GetSystemPaletteUse)
2409 UINT16 WINAPI GetTextAlign16(HDC16);
2410 UINT32 WINAPI GetTextAlign32(HDC32);
2411 #define GetTextAlign WINELIB_NAME(GetTextAlign)
2412 INT16 WINAPI GetTextCharacterExtra16(HDC16);
2413 INT32 WINAPI GetTextCharacterExtra32(HDC32);
2414 #define GetTextCharacterExtra WINELIB_NAME(GetTextCharacterExtra)
2415 UINT16 WINAPI GetTextCharset16(HDC16);
2416 UINT32 WINAPI GetTextCharset32(HDC32);
2417 #define GetTextCharset WINELIB_NAME(GetTextCharset)
2418 COLORREF WINAPI GetTextColor16(HDC16);
2419 COLORREF WINAPI GetTextColor32(HDC32);
2420 #define GetTextColor WINELIB_NAME(GetTextColor)
2421 /* this one is different, because Win32 has *both*
2422 * GetTextExtentPoint and GetTextExtentPoint32 !
2424 BOOL16 WINAPI GetTextExtentPoint16(HDC16,LPCSTR,INT16,LPSIZE16);
2425 BOOL32 WINAPI GetTextExtentPoint32A(HDC32,LPCSTR,INT32,LPSIZE32);
2426 BOOL32 WINAPI GetTextExtentPoint32W(HDC32,LPCWSTR,INT32,LPSIZE32);
2427 BOOL32 WINAPI GetTextExtentPoint32ABuggy(HDC32,LPCSTR,INT32,LPSIZE32);
2428 BOOL32 WINAPI GetTextExtentPoint32WBuggy(HDC32,LPCWSTR,INT32,LPSIZE32);
2429 #ifdef UNICODE
2430 #define GetTextExtentPoint GetTextExtentPoint32WBuggy
2431 #define GetTextExtentPoint32 GetTextExtentPoint32W
2432 #else
2433 #define GetTextExtentPoint GetTextExtentPoint32ABuggy
2434 #define GetTextExtentPoint32 GetTextExtentPoint32A
2435 #endif
2436 INT16 WINAPI GetTextFace16(HDC16,INT16,LPSTR);
2437 INT32 WINAPI GetTextFace32A(HDC32,INT32,LPSTR);
2438 INT32 WINAPI GetTextFace32W(HDC32,INT32,LPWSTR);
2439 #define GetTextFace WINELIB_NAME_AW(GetTextFace)
2440 BOOL16 WINAPI GetTextMetrics16(HDC16,LPTEXTMETRIC16);
2441 BOOL32 WINAPI GetTextMetrics32A(HDC32,LPTEXTMETRIC32A);
2442 BOOL32 WINAPI GetTextMetrics32W(HDC32,LPTEXTMETRIC32W);
2443 #define GetTextMetrics WINELIB_NAME_AW(GetTextMetrics)
2444 BOOL16 WINAPI GetViewportExtEx16(HDC16,LPSIZE16);
2445 BOOL32 WINAPI GetViewportExtEx32(HDC32,LPSIZE32);
2446 #define GetViewportExtEx WINELIB_NAME(GetViewportExtEx)
2447 BOOL16 WINAPI GetViewportOrgEx16(HDC16,LPPOINT16);
2448 BOOL32 WINAPI GetViewportOrgEx32(HDC32,LPPOINT32);
2449 #define GetViewportOrgEx WINELIB_NAME(GetViewportOrgEx)
2450 BOOL16 WINAPI GetWindowExtEx16(HDC16,LPSIZE16);
2451 BOOL32 WINAPI GetWindowExtEx32(HDC32,LPSIZE32);
2452 #define GetWindowExtEx WINELIB_NAME(GetWindowExtEx)
2453 BOOL16 WINAPI GetWindowOrgEx16(HDC16,LPPOINT16);
2454 BOOL32 WINAPI GetWindowOrgEx32(HDC32,LPPOINT32);
2455 #define GetWindowOrgEx WINELIB_NAME(GetWindowOrgEx)
2456 INT16 WINAPI IntersectClipRect16(HDC16,INT16,INT16,INT16,INT16);
2457 INT32 WINAPI IntersectClipRect32(HDC32,INT32,INT32,INT32,INT32);
2458 #define IntersectClipRect WINELIB_NAME(IntersectClipRect)
2459 BOOL16 WINAPI InvertRgn16(HDC16,HRGN16);
2460 BOOL32 WINAPI InvertRgn32(HDC32,HRGN32);
2461 #define InvertRgn WINELIB_NAME(InvertRgn)
2462 VOID WINAPI LineDDA16(INT16,INT16,INT16,INT16,LINEDDAPROC16,LPARAM);
2463 BOOL32 WINAPI LineDDA32(INT32,INT32,INT32,INT32,LINEDDAPROC32,LPARAM);
2464 #define LineDDA WINELIB_NAME(LineDDA)
2465 BOOL16 WINAPI LineTo16(HDC16,INT16,INT16);
2466 BOOL32 WINAPI LineTo32(HDC32,INT32,INT32);
2467 #define LineTo WINELIB_NAME(LineTo)
2468 BOOL16 WINAPI LPtoDP16(HDC16,LPPOINT16,INT16);
2469 BOOL32 WINAPI LPtoDP32(HDC32,LPPOINT32,INT32);
2470 #define LPtoDP WINELIB_NAME(LPtoDP)
2471 BOOL16 WINAPI MoveToEx16(HDC16,INT16,INT16,LPPOINT16);
2472 BOOL32 WINAPI MoveToEx32(HDC32,INT32,INT32,LPPOINT32);
2473 #define MoveToEx WINELIB_NAME(MoveToEx)
2474 INT16 WINAPI MulDiv16(INT16,INT16,INT16);
2475 /* FIXME This is defined in kernel32.spec !?*/
2476 INT32 WINAPI MulDiv32(INT32,INT32,INT32);
2477 #define MulDiv WINELIB_NAME(MulDiv)
2478 INT16 WINAPI OffsetClipRgn16(HDC16,INT16,INT16);
2479 INT32 WINAPI OffsetClipRgn32(HDC32,INT32,INT32);
2480 #define OffsetClipRgn WINELIB_NAME(OffsetClipRgn)
2481 INT16 WINAPI OffsetRgn16(HRGN16,INT16,INT16);
2482 INT32 WINAPI OffsetRgn32(HRGN32,INT32,INT32);
2483 #define OffsetRgn WINELIB_NAME(OffsetRgn)
2484 BOOL16 WINAPI OffsetViewportOrgEx16(HDC16,INT16,INT16,LPPOINT16);
2485 BOOL32 WINAPI OffsetViewportOrgEx32(HDC32,INT32,INT32,LPPOINT32);
2486 #define OffsetViewportOrgEx WINELIB_NAME(OffsetViewportOrgEx)
2487 BOOL16 WINAPI OffsetWindowOrgEx16(HDC16,INT16,INT16,LPPOINT16);
2488 BOOL32 WINAPI OffsetWindowOrgEx32(HDC32,INT32,INT32,LPPOINT32);
2489 #define OffsetWindowOrgEx WINELIB_NAME(OffsetWindowOrgEx)
2490 BOOL16 WINAPI PaintRgn16(HDC16,HRGN16);
2491 BOOL32 WINAPI PaintRgn32(HDC32,HRGN32);
2492 #define PaintRgn WINELIB_NAME(PaintRgn)
2493 BOOL16 WINAPI PatBlt16(HDC16,INT16,INT16,INT16,INT16,DWORD);
2494 BOOL32 WINAPI PatBlt32(HDC32,INT32,INT32,INT32,INT32,DWORD);
2495 #define PatBlt WINELIB_NAME(PatBlt)
2496 HRGN16 WINAPI PathToRegion16(HDC16);
2497 HRGN32 WINAPI PathToRegion32(HDC32);
2498 #define PathToRegion WINELIB_NAME(PathToRegion)
2499 BOOL16 WINAPI Pie16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16);
2500 BOOL32 WINAPI Pie32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32,INT32,INT32);
2501 #define Pie WINELIB_NAME(Pie)
2502 BOOL16 WINAPI PlayMetaFile16(HDC16,HMETAFILE16);
2503 BOOL32 WINAPI PlayMetaFile32(HDC32,HMETAFILE32);
2504 #define PlayMetaFile WINELIB_NAME(PlayMetaFile)
2505 VOID WINAPI PlayMetaFileRecord16(HDC16,LPHANDLETABLE16,LPMETARECORD,UINT16);
2506 BOOL32 WINAPI PlayMetaFileRecord32(HDC32,LPHANDLETABLE32,LPMETARECORD,UINT32);
2507 #define PlayMetaFileRecord WINELIB_NAME(PlayMetaFileRecord)
2508 BOOL16 WINAPI PolyBezier16(HDC16,const POINT16*,INT16);
2509 BOOL32 WINAPI PolyBezier32(HDC32,const POINT32*,DWORD);
2510 #define PolyBezier WINELIB_NAME(PolyBezier)
2511 BOOL16 WINAPI PolyBezierTo16(HDC16,const POINT16*,INT16);
2512 BOOL32 WINAPI PolyBezierTo32(HDC32,const POINT32*,DWORD);
2513 #define PolyBezierTo WINELIB_NAME(PolyBezierTo)
2514 BOOL16 WINAPI PolyPolygon16(HDC16,const POINT16*,const INT16*,UINT16);
2515 BOOL32 WINAPI PolyPolygon32(HDC32,const POINT32*,const INT32*,UINT32);
2516 #define PolyPolygon WINELIB_NAME(PolyPolygon)
2517 BOOL16 WINAPI Polygon16(HDC16,const POINT16*,INT16);
2518 BOOL32 WINAPI Polygon32(HDC32,const POINT32*,INT32);
2519 #define Polygon WINELIB_NAME(Polygon)
2520 BOOL16 WINAPI Polyline16(HDC16,const POINT16*,INT16);
2521 BOOL32 WINAPI Polyline32(HDC32,const POINT32*,INT32);
2522 #define Polyline WINELIB_NAME(Polyline)
2523 BOOL32 WINAPI PolylineTo32(HDC32,const POINT32*,DWORD);
2524 BOOL16 WINAPI PtInRegion16(HRGN16,INT16,INT16);
2525 BOOL32 WINAPI PtInRegion32(HRGN32,INT32,INT32);
2526 #define PtInRegion WINELIB_NAME(PtInRegion)
2527 BOOL16 WINAPI PtVisible16(HDC16,INT16,INT16);
2528 BOOL32 WINAPI PtVisible32(HDC32,INT32,INT32);
2529 #define PtVisible WINELIB_NAME(PtVisible)
2530 /* FIXME This is defined in user.spec !? */
2531 UINT16 WINAPI RealizePalette16(HDC16);
2532 UINT32 WINAPI RealizePalette32(HDC32);
2533 #define RealizePalette WINELIB_NAME(RealizePalette)
2534 BOOL16 WINAPI Rectangle16(HDC16,INT16,INT16,INT16,INT16);
2535 BOOL32 WINAPI Rectangle32(HDC32,INT32,INT32,INT32,INT32);
2536 #define Rectangle WINELIB_NAME(Rectangle)
2537 BOOL16 WINAPI RectInRegion16(HRGN16,const RECT16 *);
2538 BOOL32 WINAPI RectInRegion32(HRGN32,const RECT32 *);
2539 #define RectInRegion WINELIB_NAME(RectInRegion)
2540 BOOL16 WINAPI RectVisible16(HDC16,const RECT16*);
2541 BOOL32 WINAPI RectVisible32(HDC32,const RECT32*);
2542 #define RectVisible WINELIB_NAME(RectVisible)
2543 BOOL16 WINAPI RemoveFontResource16(SEGPTR);
2544 BOOL32 WINAPI RemoveFontResource32A(LPCSTR);
2545 BOOL32 WINAPI RemoveFontResource32W(LPCWSTR);
2546 #define RemoveFontResource WINELIB_NAME_AW(RemoveFontResource)
2547 HDC16 WINAPI ResetDC16(HDC16,const DEVMODE16 *);
2548 HDC32 WINAPI ResetDC32A(HDC32,const DEVMODE32A *);
2549 HDC32 WINAPI ResetDC32W(HDC32,const DEVMODE32W *);
2550 #define ResetDC WINELIB_NAME_AW(ResetDC)
2551 BOOL16 WINAPI ResizePalette16(HPALETTE16,UINT16);
2552 BOOL32 WINAPI ResizePalette32(HPALETTE32,UINT32);
2553 #define ResizePalette WINELIB_NAME(ResizePalette)
2554 BOOL16 WINAPI RestoreDC16(HDC16,INT16);
2555 BOOL32 WINAPI RestoreDC32(HDC32,INT32);
2556 #define RestoreDC WINELIB_NAME(RestoreDC)
2557 BOOL16 WINAPI RoundRect16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16);
2558 BOOL32 WINAPI RoundRect32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32);
2559 #define RoundRect WINELIB_NAME(RoundRect)
2560 INT16 WINAPI SaveDC16(HDC16);
2561 INT32 WINAPI SaveDC32(HDC32);
2562 #define SaveDC WINELIB_NAME(SaveDC)
2563 BOOL16 WINAPI ScaleViewportExtEx16(HDC16,INT16,INT16,INT16,INT16,LPSIZE16);
2564 BOOL32 WINAPI ScaleViewportExtEx32(HDC32,INT32,INT32,INT32,INT32,LPSIZE32);
2565 #define ScaleViewportExtEx WINELIB_NAME(ScaleViewportExtEx)
2566 BOOL16 WINAPI ScaleWindowExtEx16(HDC16,INT16,INT16,INT16,INT16,LPSIZE16);
2567 BOOL32 WINAPI ScaleWindowExtEx32(HDC32,INT32,INT32,INT32,INT32,LPSIZE32);
2568 #define ScaleWindowExtEx WINELIB_NAME(ScaleWindowExtEx)
2569 BOOL16 WINAPI SelectClipPath16(HDC16,INT16);
2570 BOOL32 WINAPI SelectClipPath32(HDC32,INT32);
2571 #define SelectClipPath WINELIB_NAME(SelectClipPath)
2572 INT16 WINAPI SelectClipRgn16(HDC16,HRGN16);
2573 INT32 WINAPI SelectClipRgn32(HDC32,HRGN32);
2574 #define SelectClipRgn WINELIB_NAME(SelectClipRgn)
2575 HGDIOBJ16 WINAPI SelectObject16(HDC16,HGDIOBJ16);
2576 HGDIOBJ32 WINAPI SelectObject32(HDC32,HGDIOBJ32);
2577 #define SelectObject WINELIB_NAME(SelectObject)
2578 /* FIXME This is defined in user.spec !? */
2579 HPALETTE16 WINAPI SelectPalette16(HDC16,HPALETTE16,BOOL16);
2580 HPALETTE32 WINAPI SelectPalette32(HDC32,HPALETTE32,BOOL32);
2581 #define SelectPalette WINELIB_NAME(SelectPalette)
2582 INT16 WINAPI SetAbortProc16(HDC16,SEGPTR);
2583 INT32 WINAPI SetAbortProc32(HDC32,FARPROC32);
2584 #define SetAbortProc WINELIB_NAME(SetAbortProc)
2585 INT16 WINAPI SetArcDirection16(HDC16,INT16);
2586 INT32 WINAPI SetArcDirection32(HDC32,INT32);
2587 #define SetArcDirection WINELIB_NAME(SetArcDirection)
2588 LONG WINAPI SetBitmapBits16(HBITMAP16,LONG,LPCVOID);
2589 LONG WINAPI SetBitmapBits32(HBITMAP32,LONG,LPCVOID);
2590 #define SetBitmapBits WINELIB_NAME(SetBitmapBits)
2591 BOOL16 WINAPI SetBitmapDimensionEx16(HBITMAP16,INT16,INT16,LPSIZE16);
2592 BOOL32 WINAPI SetBitmapDimensionEx32(HBITMAP32,INT32,INT32,LPSIZE32);
2593 #define SetBitmapDimensionEx WINELIB_NAME(SetBitmapDimensionEx)
2594 COLORREF WINAPI SetBkColor16(HDC16,COLORREF);
2595 COLORREF WINAPI SetBkColor32(HDC32,COLORREF);
2596 #define SetBkColor WINELIB_NAME(SetBkColor)
2597 INT16 WINAPI SetBkMode16(HDC16,INT16);
2598 INT32 WINAPI SetBkMode32(HDC32,INT32);
2599 #define SetBkMode WINELIB_NAME(SetBkMode)
2600 UINT16 WINAPI SetBoundsRect16(HDC16,const RECT16*,UINT16);
2601 UINT32 WINAPI SetBoundsRect32(HDC32,const RECT32*,UINT32);
2602 #define SetBoundsRect WINELIB_NAME(SetBoundsRect)
2603 UINT16 WINAPI SetDIBColorTable16(HDC16,UINT16,UINT16,RGBQUAD*);
2604 UINT32 WINAPI SetDIBColorTable32(HDC32,UINT32,UINT32,RGBQUAD*);
2605 #define SetDIBColorTable WINELIB_NAME(SetDIBColorTable)
2606 INT16 WINAPI SetDIBits16(HDC16,HBITMAP16,UINT16,UINT16,LPCVOID,const BITMAPINFO*,UINT16);
2607 INT32 WINAPI SetDIBits32(HDC32,HBITMAP32,UINT32,UINT32,LPCVOID,const BITMAPINFO*,UINT32);
2608 #define SetDIBits WINELIB_NAME(SetDIBits)
2609 INT16 WINAPI SetDIBitsToDevice16(HDC16,INT16,INT16,INT16,INT16,INT16,
2610 INT16,UINT16,UINT16,LPCVOID,const BITMAPINFO*,UINT16);
2611 INT32 WINAPI SetDIBitsToDevice32(HDC32,INT32,INT32,DWORD,DWORD,INT32,
2612 INT32,UINT32,UINT32,LPCVOID,const BITMAPINFO*,UINT32);
2613 #define SetDIBitsToDevice WINELIB_NAME(SetDIBitsToDevice)
2614 INT16 WINAPI SetMapMode16(HDC16,INT16);
2615 INT32 WINAPI SetMapMode32(HDC32,INT32);
2616 #define SetMapMode WINELIB_NAME(SetMapMode)
2617 DWORD WINAPI SetMapperFlags16(HDC16,DWORD);
2618 DWORD WINAPI SetMapperFlags32(HDC32,DWORD);
2619 #define SetMapperFlags WINELIB_NAME(SetMapperFlags)
2620 UINT16 WINAPI SetPaletteEntries16(HPALETTE16,UINT16,UINT16,LPPALETTEENTRY);
2621 UINT32 WINAPI SetPaletteEntries32(HPALETTE32,UINT32,UINT32,LPPALETTEENTRY);
2622 #define SetPaletteEntries WINELIB_NAME(SetPaletteEntries)
2623 COLORREF WINAPI SetPixel16(HDC16,INT16,INT16,COLORREF);
2624 COLORREF WINAPI SetPixel32(HDC32,INT32,INT32,COLORREF);
2625 #define SetPixel WINELIB_NAME(SetPixel)
2626 BOOL32 WINAPI SetPixelV32(HDC32,INT32,INT32,COLORREF);
2627 #define SetPixelV WINELIB_NAME(SetPixelV)
2628 BOOL32 WINAPI SetPixelFormat(HDC32,int,const PIXELFORMATDESCRIPTOR*);
2629 INT16 WINAPI SetPolyFillMode16(HDC16,INT16);
2630 INT32 WINAPI SetPolyFillMode32(HDC32,INT32);
2631 #define SetPolyFillMode WINELIB_NAME(SetPolyFillMode)
2632 VOID WINAPI SetRectRgn16(HRGN16,INT16,INT16,INT16,INT16);
2633 VOID WINAPI SetRectRgn32(HRGN32,INT32,INT32,INT32,INT32);
2634 #define SetRectRgn WINELIB_NAME(SetRectRgn)
2635 INT16 WINAPI SetRelAbs16(HDC16,INT16);
2636 INT32 WINAPI SetRelAbs32(HDC32,INT32);
2637 #define SetRelAbs WINELIB_NAME(SetRelAbs)
2638 INT16 WINAPI SetROP216(HDC16,INT16);
2639 INT32 WINAPI SetROP232(HDC32,INT32);
2640 #define SetROP2 WINELIB_NAME(SetROP2)
2641 INT16 WINAPI SetStretchBltMode16(HDC16,INT16);
2642 INT32 WINAPI SetStretchBltMode32(HDC32,INT32);
2643 #define SetStretchBltMode WINELIB_NAME(SetStretchBltMode)
2644 UINT16 WINAPI SetSystemPaletteUse16(HDC16,UINT16);
2645 UINT32 WINAPI SetSystemPaletteUse32(HDC32,UINT32);
2646 #define SetSystemPaletteUse WINELIB_NAME(SetSystemPaletteUse)
2647 UINT16 WINAPI SetTextAlign16(HDC16,UINT16);
2648 UINT32 WINAPI SetTextAlign32(HDC32,UINT32);
2649 #define SetTextAlign WINELIB_NAME(SetTextAlign)
2650 INT16 WINAPI SetTextCharacterExtra16(HDC16,INT16);
2651 INT32 WINAPI SetTextCharacterExtra32(HDC32,INT32);
2652 #define SetTextCharacterExtra WINELIB_NAME(SetTextCharacterExtra)
2653 COLORREF WINAPI SetTextColor16(HDC16,COLORREF);
2654 COLORREF WINAPI SetTextColor32(HDC32,COLORREF);
2655 #define SetTextColor WINELIB_NAME(SetTextColor)
2656 INT16 WINAPI SetTextJustification16(HDC16,INT16,INT16);
2657 BOOL32 WINAPI SetTextJustification32(HDC32,INT32,INT32);
2658 #define SetTextJustification WINELIB_NAME(SetTextJustification)
2659 BOOL16 WINAPI SetViewportExtEx16(HDC16,INT16,INT16,LPSIZE16);
2660 BOOL32 WINAPI SetViewportExtEx32(HDC32,INT32,INT32,LPSIZE32);
2661 #define SetViewportExtEx WINELIB_NAME(SetViewportExtEx)
2662 BOOL16 WINAPI SetViewportOrgEx16(HDC16,INT16,INT16,LPPOINT16);
2663 BOOL32 WINAPI SetViewportOrgEx32(HDC32,INT32,INT32,LPPOINT32);
2664 #define SetViewportOrgEx WINELIB_NAME(SetViewportOrgEx)
2665 BOOL16 WINAPI SetWindowExtEx16(HDC16,INT16,INT16,LPSIZE16);
2666 BOOL32 WINAPI SetWindowExtEx32(HDC32,INT32,INT32,LPSIZE32);
2667 #define SetWindowExtEx WINELIB_NAME(SetWindowExtEx)
2668 BOOL16 WINAPI SetWindowOrgEx16(HDC16,INT16,INT16,LPPOINT16);
2669 BOOL32 WINAPI SetWindowOrgEx32(HDC32,INT32,INT32,LPPOINT32);
2670 #define SetWindowOrgEx WINELIB_NAME(SetWindowOrgEx)
2671 HENHMETAFILE32 WINAPI SetWinMetaFileBits(UINT32,CONST BYTE*,HDC32,CONST METAFILEPICT32 *);
2672 INT16 WINAPI StartDoc16(HDC16,const DOCINFO16*);
2673 INT32 WINAPI StartDoc32A(HDC32,const DOCINFO32A*);
2674 INT32 WINAPI StartDoc32W(HDC32,const DOCINFO32W*);
2675 #define StartDoc WINELIB_NAME_AW(StartDoc)
2676 INT16 WINAPI StartPage16(HDC16);
2677 INT32 WINAPI StartPage32(HDC32);
2678 #define StartPage WINELIB_NAME(StartPage)
2679 INT16 WINAPI EndPage16(HDC16);
2680 INT32 WINAPI EndPage32(HDC32);
2681 #define EndPage WINELIB_NAME(EndPage)
2682 BOOL16 WINAPI StretchBlt16(HDC16,INT16,INT16,INT16,INT16,HDC16,INT16,
2683 INT16,INT16,INT16,DWORD);
2684 BOOL32 WINAPI StretchBlt32(HDC32,INT32,INT32,INT32,INT32,HDC32,INT32,
2685 INT32,INT32,INT32,DWORD);
2686 #define StretchBlt WINELIB_NAME(StretchBlt)
2687 INT16 WINAPI StretchDIBits16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,
2688 INT16,INT16,const VOID*,const BITMAPINFO*,UINT16,DWORD);
2689 INT32 WINAPI StretchDIBits32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32,
2690 INT32,INT32,const VOID*,const BITMAPINFO*,UINT32,DWORD);
2691 #define StretchDIBits WINELIB_NAME(StretchDIBits)
2692 BOOL16 WINAPI StrokeAndFillPath16(HDC16);
2693 BOOL32 WINAPI StrokeAndFillPath32(HDC32);
2694 #define StrokeAndFillPath WINELIB_NAME(StrokeAndFillPath)
2695 BOOL16 WINAPI StrokePath16(HDC16);
2696 BOOL32 WINAPI StrokePath32(HDC32);
2697 #define StrokePath WINELIB_NAME(StrokePath)
2698 BOOL32 WINAPI SwapBuffers(HDC32);
2699 BOOL16 WINAPI TextOut16(HDC16,INT16,INT16,LPCSTR,INT16);
2700 BOOL32 WINAPI TextOut32A(HDC32,INT32,INT32,LPCSTR,INT32);
2701 BOOL32 WINAPI TextOut32W(HDC32,INT32,INT32,LPCWSTR,INT32);
2702 #define TextOut WINELIB_NAME_AW(TextOut)
2703 BOOL16 WINAPI UnrealizeObject16(HGDIOBJ16);
2704 BOOL32 WINAPI UnrealizeObject32(HGDIOBJ32);
2705 #define UnrealizeObject WINELIB_NAME(UnrealizeObject)
2706 INT16 WINAPI UpdateColors16(HDC16);
2707 BOOL32 WINAPI UpdateColors32(HDC32);
2708 #define UpdateColors WINELIB_NAME(UpdateColors)
2709 BOOL16 WINAPI WidenPath16(HDC16);
2710 BOOL32 WINAPI WidenPath32(HDC32);
2711 #define WidenPath WINELIB_NAME(WidenPath)
2713 #endif /* __WINE_WINGDI_H */