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

Last change on this file since 10579 was 10579, checked in by sandervl, 21 years ago

updates

File size: 114.6 KB
Line 
1/*
2 * Copyright (C) the Wine project
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */
18
19#ifndef _WINGDI_
20#define _WINGDI_
21#define __WINE_WINGDI_H /* bird: for old time sake, we haven't update all headers... */
22#define WINGDIAPI /* bird: same */
23#ifndef NOGDI
24
25#include "windef.h" /* bird: this too ... */
26
27#ifdef __cplusplus
28extern "C" {
29#endif
30
31typedef struct _ABCFLOAT {
32 FLOAT abcfA;
33 FLOAT abcfB;
34 FLOAT abcfC;
35} ABCFLOAT, *PABCFLOAT, *LPABCFLOAT;
36
37#define FONTMAPPER_MAX 10
38
39typedef struct
40{
41 WORD wFirst;
42 WORD wSecond;
43 INT iKernAmount;
44} KERNINGPAIR, *LPKERNINGPAIR;
45
46/* bird: not in new header */
47typedef struct
48{
49 HDC hdc;
50 BOOL fErase;
51 RECT rcPaint;
52 BOOL fRestore;
53 BOOL fIncUpdate;
54 BYTE rgbReserved[32];
55} PAINTSTRUCT, *PPAINTSTRUCT, *LPPAINTSTRUCT;
56
57
58
59typedef struct tagPIXELFORMATDESCRIPTOR {
60 WORD nSize;
61 WORD nVersion;
62 DWORD dwFlags;
63 BYTE iPixelType;
64 BYTE cColorBits;
65 BYTE cRedBits;
66 BYTE cRedShift;
67 BYTE cGreenBits;
68 BYTE cGreenShift;
69 BYTE cBlueBits;
70 BYTE cBlueShift;
71 BYTE cAlphaBits;
72 BYTE cAlphaShift;
73 BYTE cAccumBits;
74 BYTE cAccumRedBits;
75 BYTE cAccumGreenBits;
76 BYTE cAccumBlueBits;
77 BYTE cAccumAlphaBits;
78 BYTE cDepthBits;
79 BYTE cStencilBits;
80 BYTE cAuxBuffers;
81 BYTE iLayerType;
82 BYTE bReserved;
83 DWORD dwLayerMask;
84 DWORD dwVisibleMask;
85 DWORD dwDamageMask;
86} PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESCRIPTOR, *LPPIXELFORMATDESCRIPTOR;
87
88#define PFD_TYPE_RGBA 0
89#define PFD_TYPE_COLORINDEX 1
90
91#define PFD_MAIN_PLANE 0
92#define PFD_OVERLAY_PLANE 1
93#define PFD_UNDERLAY_PLANE (-1)
94
95#define PFD_DOUBLEBUFFER 0x00000001
96#define PFD_STEREO 0x00000002
97#define PFD_DRAW_TO_WINDOW 0x00000004
98#define PFD_DRAW_TO_BITMAP 0x00000008
99#define PFD_SUPPORT_GDI 0x00000010
100#define PFD_SUPPORT_OPENGL 0x00000020
101#define PFD_GENERIC_FORMAT 0x00000040
102#define PFD_NEED_PALETTE 0x00000080
103#define PFD_NEED_SYSTEM_PALETTE 0x00000100
104#define PFD_SWAP_EXCHANGE 0x00000200
105#define PFD_SWAP_COPY 0x00000400
106#define PFD_SWAP_LAYER_BUFFERS 0x00000800
107#define PFD_GENERIC_ACCELERATED 0x00001000
108
109#define PFD_DEPTH_DONTCARE 0x20000000
110#define PFD_DOUBLEBUFFER_DONTCARE 0x40000000
111#define PFD_STEREO_DONTCARE 0x80000000
112
113typedef struct tagCOLORADJUSTMENT
114{
115 WORD caSize;
116 WORD caFlags;
117 WORD caIlluminantIndex;
118 WORD caRedGamma;
119 WORD caGreenGamma;
120 WORD caBlueGamma;
121 WORD caReferenceBlack;
122 WORD caReferenceWhite;
123 SHORT caContrast;
124 SHORT caBrightness;
125 SHORT caColorfulness;
126 SHORT caRedGreenTint;
127} COLORADJUSTMENT, *PCOLORADJUSTMENT, *LPCOLORADJUSTMENT;
128
129#define CA_NEGATIVE 0x0001
130#define CA_LOG_FILTER 0x0002
131
132#define ILLUMINANT_DEVICE_DEFAULT 0
133#define ILLUMINANT_A 1
134#define ILLUMINANT_B 2
135#define ILLUMINANT_C 3
136#define ILLUMINANT_D50 4
137#define ILLUMINANT_D55 5
138#define ILLUMINANT_D65 6
139#define ILLUMINANT_D75 7
140#define ILLUMINANT_F2 8
141#define ILLUMINANT_MAX_INDEX ILLUMINANT_F2
142
143#define ILLUMINANT_TUNGSTEN ILLUMINANT_A
144#define ILLUMINANT_DAYLIGHT ILLUMINANT_C
145#define ILLUMINANT_FLUORESCENT ILLUMINANT_F2
146#define ILLUMINANT_NTSC ILLUMINANT_C
147
148#define RGB_GAMMA_MIN (WORD)02500
149#define RGB_GAMMA_MAX (WORD)65000
150
151#define REFERENCE_WHITE_MIN (WORD)6000
152#define REFERENCE_WHITE_MAX (WORD)10000
153#define REFERENCE_BLACK_MIN (WORD)0
154#define REFERENCE_BLACK_MAX (WORD)4000
155
156#define COLOR_ADJ_MIN ((SHORT)-100)
157#define COLOR_ADJ_MAX (SHORT) 100
158
159typedef LONG FXPT16DOT16, *LPFXPT16DOT16;
160typedef LONG FXPT2DOT30, *LPFXPT2DOT30;
161typedef LONG LCSCSTYPE;
162typedef LONG LCSGAMUTMATCH;
163
164#define LCS_CALIBRATED_RGB 0x00000000L
165#define LCS_DEVICE_RGB 0x00000001L
166#define LCS_DEVICE_CMYK 0x00000002L
167
168#define LCS_GM_BUSINESS 0x00000001L
169#define LCS_GM_GRAPHICS 0x00000002L
170#define LCS_GM_IMAGES 0x00000004L
171
172#define CM_OUT_OF_GAMUT 255
173#define CM_IN_GAMUT 0
174
175typedef struct tagCIEXYZ
176{
177 FXPT2DOT30 ciexyzX;
178 FXPT2DOT30 ciexyzY;
179 FXPT2DOT30 ciexyzZ;
180} CIEXYZ, *LPCIEXYZ;
181
182typedef struct tagCIEXYZTRIPLE
183{
184 CIEXYZ ciexyzRed;
185 CIEXYZ ciexyzGreen;
186 CIEXYZ ciexyzBlue;
187} CIEXYZTRIPLE, *LPCIEXYZTRIPLE;
188
189typedef struct tagLOGCOLORSPACEA
190{
191 DWORD lcsSignature;
192 DWORD lcsVersion;
193 DWORD lcsSize;
194 LCSCSTYPE lcsCSType;
195 LCSGAMUTMATCH lcsIntent;
196 CIEXYZTRIPLE lcsEndpoints;
197 DWORD lcsGammaRed;
198 DWORD lcsGammaGreen;
199 DWORD lcsGammaBlue;
200 CHAR lcsFilename[MAX_PATH];
201} LOGCOLORSPACEA, *LPLOGCOLORSPACEA;
202
203 typedef struct tagLOGCOLORSPACEW
204{
205 DWORD lcsSignature;
206 DWORD lcsVersion;
207 DWORD lcsSize;
208 LCSCSTYPE lcsCSType;
209 LCSGAMUTMATCH lcsIntent;
210 CIEXYZTRIPLE lcsEndpoints;
211 DWORD lcsGammaRed;
212 DWORD lcsGammaGreen;
213 DWORD lcsGammaBlue;
214 WCHAR lcsFilename[MAX_PATH];
215} LOGCOLORSPACEW, *LPLOGCOLORSPACEW;
216
217DECL_WINELIB_TYPE_AW(LPLOGCOLORSPACE)
218DECL_WINELIB_TYPE_AW(LOGCOLORSPACE)
219
220#define DC_FIELDS 1
221#define DC_PAPERS 2
222#define DC_PAPERSIZE 3
223#define DC_MINEXTENT 4
224#define DC_MAXEXTENT 5
225#define DC_BINS 6
226#define DC_DUPLEX 7
227#define DC_SIZE 8
228#define DC_EXTRA 9
229#define DC_VERSION 10
230#define DC_DRIVER 11
231#define DC_BINNAMES 12
232#define DC_ENUMRESOLUTIONS 13
233#define DC_FILEDEPENDENCIES 14
234#define DC_TRUETYPE 15
235#define DC_PAPERNAMES 16
236#define DC_ORIENTATION 17
237#define DC_COPIES 18
238#define DC_BINADJUST 19
239#define DC_EMF_COMPLIANT 20
240#define DC_DATATYPE_PRODUCED 21
241#define DC_COLLATE 22
242#define DC_MANUFACTURER 23
243#define DC_MODEL 24
244#define DC_PERSONALITY 25
245#define DC_PRINTRATE 26
246#define DC_PRINTRATEUNIT 27
247#define DC_PRINTERMEM 28
248#define DC_MEDIAREADY 29
249#define DC_STAPLE 30
250#define DC_PRINTRATEPPM 31
251#define DC_COLORDEVICE 32
252#define DC_NUP 33
253#define DC_MEDIATYPENAMES 34
254#define DC_MEDIATYPES 35
255
256#define DCTT_BITMAP 0x00000001L
257#define DCTT_DOWNLOAD 0x00000002L
258#define DCTT_SUBDEV 0x00000004L
259#define DCTT_DOWNLOAD_OUTLINE 0x00000008L
260
261#define DCBA_FACEUPNONE 0x0000
262#define DCBA_FACEUPCENTER 0x0001
263#define DCBA_FACEUPLEFT 0x0002
264#define DCBA_FACEUPRIGHT 0x0003
265#define DCBA_FACEDOWNNONE 0x0100
266#define DCBA_FACEDOWNCENTER 0x0101
267#define DCBA_FACEDOWNLEFT 0x0102
268#define DCBA_FACEDOWNRIGHT 0x0103
269
270#define PRINTRATEUNIT_PPM 1
271#define PRINTRATEUNIT_CPS 2
272#define PRINTRATEUNIT_LPM 3
273#define PRINTRATEUNIT_IPM 4
274
275/* Flag returned from Escape QUERYDIBSUPPORT */
276#define QDI_SETDIBITS 1
277#define QDI_GETDIBITS 2
278#define QDI_DIBTOSCREEN 4
279#define QDI_STRETCHDIB 8
280
281
282/* GDI Escape commands */
283#define NEWFRAME 1
284#define ABORTDOC 2
285#define NEXTBAND 3
286#define SETCOLORTABLE 4
287#define GETCOLORTABLE 5
288#define FLUSHOUTPUT 6
289#define DRAFTMODE 7
290#define QUERYESCSUPPORT 8
291#define SETABORTPROC 9
292#define STARTDOC 10
293#define ENDDOC 11
294#define GETPHYSPAGESIZE 12
295#define GETPRINTINGOFFSET 13
296#define GETSCALINGFACTOR 14
297#define MFCOMMENT 15
298#define GETPENWIDTH 16
299#define SETCOPYCOUNT 17
300#define SELECTPAPERSOURCE 18
301#define DEVICEDATA 19
302#define PASSTHROUGH 19
303#define GETTECHNOLGY 20
304#define GETTECHNOLOGY 20 /* yes, both of them */
305#define SETLINECAP 21
306#define SETLINEJOIN 22
307#define SETMITERLIMIT 23
308#define BANDINFO 24
309#define DRAWPATTERNRECT 25
310#define GETVECTORPENSIZE 26
311#define GETVECTORBRUSHSIZE 27
312#define ENABLEDUPLEX 28
313#define GETSETPAPERBINS 29
314#define GETSETPRINTORIENT 30
315#define ENUMPAPERBINS 31
316#define SETDIBSCALING 32
317#define EPSPRINTING 33
318#define ENUMPAPERMETRICS 34
319#define GETSETPAPERMETRICS 35
320#define POSTSCRIPT_DATA 37
321#define POSTSCRIPT_IGNORE 38
322#define MOUSETRAILS 39
323#define GETDEVICEUNITS 42
324
325#define DESKTOPVERTRES 117
326#define DESKTOPHORZRES 118
327
328#define GETEXTENDEDTEXTMETRICS 256
329#define GETEXTENTTABLE 257
330#define GETPAIRKERNTABLE 258
331#define GETTRACKKERNTABLE 259
332#define EXTTEXTOUT 512
333#define GETFACENAME 513
334#define DOWNLOADFACE 514
335#define ENABLERELATIVEWIDTHS 768
336#define ENABLEPAIRKERNING 769
337#define SETKERNTRACK 770
338#define SETALLJUSTVALUES 771
339#define SETCHARSET 772
340
341#define STRETCHBLT 2048
342#define GETSETSCREENPARAMS 3072
343#define QUERYDIBSUPPORT 3073
344#define BEGIN_PATH 4096
345#define CLIP_TO_PATH 4097
346#define END_PATH 4098
347#define EXT_DEVICE_CAPS 4099
348#define RESTORE_CTM 4100
349#define SAVE_CTM 4101
350#define SET_ARC_DIRECTION 4102
351#define SET_BACKGROUND_COLOR 4103
352#define SET_POLY_MODE 4104
353#define SET_SCREEN_ANGLE 4105
354#define SET_SPREAD 4106
355#define TRANSFORM_CTM 4107
356#define SET_CLIP_BOX 4108
357#define SET_BOUNDS 4109
358#define SET_MIRROR_MODE 4110
359#define OPENCHANNEL 4110
360#define DOWNLOADHEADER 4111
361#define CLOSECHANNEL 4112
362#define POSTSCRIPT_PASSTHROUGH 4115
363#define ENCAPSULATED_POSTSCRIPT 4116
364#define POSTSCRIPT_IDENTIFY 4117
365#define POSTSCRIPT_INJECTION 4118
366
367/* bird: mess with new header - start */
368#define CHECKJPEGFORMAT 4119
369#define CHECKPNGFORMAT 4120
370
371#define GET_PS_FEATURESETTING 4121
372
373#define SPCLPASSTHROUGH2 4568
374
375#define PSIDENT_GDICENTRIC 0
376#define PSIDENT_PSCENTRIC 1
377
378typedef struct _PSINJECTDATA {
379 DWORD DataBytes; /* number of raw data bytes (NOT including this header) */
380 WORD InjectionPoint; /* injection point */
381 WORD PageNumber; /* page number to apply the injection */
382 /* Followed by raw data to be injected */
383} PSINJECTDATA, *PPSINJECTDATA;
384
385#define PSINJECT_BEGINSTREAM 1
386#define PSINJECT_PSADOBE 2
387#define PSINJECT_PAGESATEND 3
388#define PSINJECT_PAGES 4
389#define PSINJECT_DOCNEEDEDRES 5
390#define PSINJECT_DOCSUPPLIEDRES 6
391#define PSINJECT_PAGEORDER 7
392#define PSINJECT_ORIENTATION 8
393#define PSINJECT_BOUNDINGBOX 9
394#define PSINJECT_DOCUMENTPROCESSCOLORS 10
395#define PSINJECT_COMMENTS 11
396#define PSINJECT_BEGINDEFAULTS 12
397#define PSINJECT_ENDDEFAULTS 13
398#define PSINJECT_BEGINPROLOG 14
399#define PSINJECT_ENDPROLOG 15
400#define PSINJECT_BEGINSETUP 16
401#define PSINJECT_ENDSETUP 17
402#define PSINJECT_TRAILER 18
403#define PSINJECT_EOF 19
404#define PSINJECT_ENDSTREAM 20
405#define PSINJECT_DOCUMENTPROCESSCOLORSATEND 21
406
407#define PSINJECT_PAGENUMBER 100
408#define PSINJECT_BEGINPAGESETUP 101
409#define PSINJECT_ENDPAGESETUP 102
410#define PSINJECT_PAGETRAILER 103
411#define PSINJECT_PLATECOLOR 104
412#define PSINJECT_SHOWPAGE 105
413#define PSINJECT_PAGEBBOX 106
414#define PSINJECT_ENDPAGECOMMENTS 107
415
416#define PSINJECT_VMSAVE 200
417#define PSINJECT_VMRESTORE 201
418
419#define FEATURESETTING_NUP 0
420#define FEATURESETTING_OUTPUT 1
421#define FEATURESETTING_PSLEVEL 2
422#define FEATURESETTING_CUSTPAPER 3
423#define FEATURESETTING_MIRROR 4
424#define FEATURESETTING_NEGATIVE 5
425#define FEATURESETTING_PROTOCOL 6
426
427typedef struct _PSFEATURE_OUTPUT {
428 BOOL bPageIndependent;
429 BOOL bSetPageDevice;
430} PSFEATURE_OUTPUT, *PPSFEATURE_OUTPUT;
431
432typedef struct _PSFEATURE_CUSTPAPER {
433 LONG lOrientation;
434 LONG lWidth;
435 LONG lHeight;
436 LONG lWidthOffset;
437 LONG lHeightOffset;
438} PSFEATURE_CUSTPAPER, *PPSFEATURE_CUSTPAPER;
439
440#define PSPROTOCOL_ASCII 0
441#define PSPROTOCOL_BCP 1
442#define PSPROTOCOL_TBCP 2
443#define PSPROTOCOL_BINARY 3
444
445/* bird: mess with new header - end */
446
447/* Spooler Error Codes */
448#define SP_NOTREPORTED 0x4000
449#define SP_ERROR (-1)
450#define SP_APPABORT (-2)
451#define SP_USERABORT (-3)
452#define SP_OUTOFDISK (-4)
453#define SP_OUTOFMEMORY (-5)
454
455#define PR_JOBSTATUS 0
456
457 /* Raster operations */
458
459#define R2_BLACK 1
460#define R2_NOTMERGEPEN 2
461#define R2_MASKNOTPEN 3
462#define R2_NOTCOPYPEN 4
463#define R2_MASKPENNOT 5
464#define R2_NOT 6
465#define R2_XORPEN 7
466#define R2_NOTMASKPEN 8
467#define R2_MASKPEN 9
468#define R2_NOTXORPEN 10
469#define R2_NOP 11
470#define R2_MERGENOTPEN 12
471#define R2_COPYPEN 13
472#define R2_MERGEPENNOT 14
473#define R2_MERGEPEN 15
474#define R2_WHITE 16
475
476#define SRCCOPY 0xcc0020
477#define SRCPAINT 0xee0086
478#define SRCAND 0x8800c6
479#define SRCINVERT 0x660046
480#define SRCERASE 0x440328
481#define NOTSRCCOPY 0x330008
482#define NOTSRCERASE 0x1100a6
483#define MERGECOPY 0xc000ca
484#define MERGEPAINT 0xbb0226
485#define PATCOPY 0xf00021
486#define PATPAINT 0xfb0a09
487#define PATINVERT 0x5a0049
488#define DSTINVERT 0x550009
489#define BLACKNESS 0x000042
490#define WHITENESS 0xff0062
491
492 /* StretchBlt() modes */
493#define BLACKONWHITE 1
494#define WHITEONBLACK 2
495#define COLORONCOLOR 3
496#define HALFTONE 4
497#define MAXSTRETCHBLTMODE 4
498
499#define STRETCH_ANDSCANS BLACKONWHITE
500#define STRETCH_ORSCANS WHITEONBLACK
501#define STRETCH_DELETESCANS COLORONCOLOR
502#define STRETCH_HALFTONE HALFTONE
503
504 /* Colors */
505
506/* bird: moved out of new header. */
507typedef DWORD COLORREF, *LPCOLORREF;
508
509#define RGB(r,g,b) ((COLORREF)((BYTE)(r) | ((BYTE)(g) << 8) | ((BYTE)(b) << 16)))
510#define PALETTERGB(r,g,b) (0x02000000 | RGB(r,g,b))
511#define PALETTEINDEX(i) ((COLORREF)(0x01000000 | (WORD)(i)))
512
513#define GetRValue(rgb) ((BYTE) (rgb) )
514#define GetGValue(rgb) ((BYTE) ((rgb) >> 8))
515#define GetBValue(rgb) ((BYTE) ((rgb) >> 16))
516
517#define GetKValue(cmyk) ((BYTE) (cmyk) )
518#define GetYValue(cmyk) ((BYTE) ((cmyk) >> 8))
519#define GetMValue(cmyk) ((BYTE) ((cmyk) >> 16))
520#define GetCValue(cmyk) ((BYTE) ((cmyk) >> 24))
521
522#define CMYK(c,m,y,k) ((COLORREF)((((BYTE)(k)|((WORD)((BYTE)(y))<<8))|(((DWORD)(BYTE)(m))<<16))|(((DWORD)(BYTE)(c))<<24)))
523
524/* ICM stuff */
525typedef INT (*CALLBACK EnumICMProfilesProcCallbackA)(LPSTR lpszFilename,LPARAM lParam);
526typedef INT (*CALLBACK EnumICMProfilesProcCallbackW)(LPWSTR lpszFilename,LPARAM lParam);
527DECL_WINELIB_TYPE_AW(EnumICMProfilesProcCallback)
528typedef EnumICMProfilesProcCallbackA ICMENUMPROCA;
529typedef EnumICMProfilesProcCallbackW ICMENUMPROCW;
530DECL_WINELIB_TYPE_AW(ICMENUMPROC)
531
532/* bird: more trouble - start */
533#define COLOR_SCROLLBAR 0
534#define COLOR_BACKGROUND 1
535#define COLOR_ACTIVECAPTION 2
536#define COLOR_INACTIVECAPTION 3
537#define COLOR_MENU 4
538#define COLOR_WINDOW 5
539#define COLOR_WINDOWFRAME 6
540#define COLOR_MENUTEXT 7
541#define COLOR_WINDOWTEXT 8
542#define COLOR_CAPTIONTEXT 9
543#define COLOR_ACTIVEBORDER 10
544#define COLOR_INACTIVEBORDER 11
545#define COLOR_APPWORKSPACE 12
546#define COLOR_HIGHLIGHT 13
547#define COLOR_HIGHLIGHTTEXT 14
548#define COLOR_BTNFACE 15
549#define COLOR_BTNSHADOW 16
550#define COLOR_GRAYTEXT 17
551#define COLOR_BTNTEXT 18
552#define COLOR_INACTIVECAPTIONTEXT 19
553#define COLOR_BTNHIGHLIGHT 20
554/* win95 colors */
555#define COLOR_3DDKSHADOW 21
556#define COLOR_3DLIGHT 22
557#define COLOR_INFOTEXT 23
558#define COLOR_INFOBK 24
559#define COLOR_DESKTOP COLOR_BACKGROUND
560#define COLOR_3DFACE COLOR_BTNFACE
561#define COLOR_3DSHADOW COLOR_BTNSHADOW
562#define COLOR_3DHIGHLIGHT COLOR_BTNHIGHLIGHT
563#define COLOR_3DHILIGHT COLOR_BTNHIGHLIGHT
564#define COLOR_BTNHILIGHT COLOR_BTNHIGHLIGHT
565/* win98 colors */
566#define COLOR_ALTERNATEBTNFACE 25 /* undocumented, constant's name unknown */
567#define COLOR_HOTLIGHT 26
568#define COLOR_GRADIENTACTIVECAPTION 27
569#define COLOR_GRADIENTINACTIVECAPTION 28
570#define COLOR_MAX COLOR_GRADIENTINACTIVECAPTION
571
572 /* WM_CTLCOLOR values */
573#define CTLCOLOR_MSGBOX 0
574#define CTLCOLOR_EDIT 1
575#define CTLCOLOR_LISTBOX 2
576#define CTLCOLOR_BTN 3
577#define CTLCOLOR_DLG 4
578#define CTLCOLOR_SCROLLBAR 5
579#define CTLCOLOR_STATIC 6
580
581/* bird: end trouble */
582
583#define ICM_OFF 1
584#define ICM_ON 2
585#define ICM_QUERY 3
586
587 /* Bounds Accumulation APIs */
588#define DCB_RESET 0x0001
589#define DCB_ACCUMULATE 0x0002
590#define DCB_DIRTY DCB_ACCUMULATE
591#define DCB_SET (DCB_RESET | DCB_ACCUMULATE)
592#define DCB_ENABLE 0x0004
593#define DCB_DISABLE 0x0008
594
595typedef struct
596{
597 LONG paXCount;
598 LONG paYCount;
599 LONG paXExt;
600 LONG paYExt;
601 BYTE paRGBs;
602} PELARRAY, *PPELARRAY, *LPPELARRAY;
603
604 /* Bitmaps */
605
606typedef struct
607{
608 INT bmType;
609 INT bmWidth;
610 INT bmHeight;
611 INT bmWidthBytes;
612 WORD bmPlanes;
613 WORD bmBitsPixel;
614 LPVOID bmBits;
615} BITMAP, *PBITMAP, *LPBITMAP;
616
617
618 /* Brushes */
619
620typedef struct
621{
622 UINT lbStyle;
623 COLORREF lbColor;
624 INT lbHatch;
625} LOGBRUSH, *PLOGBRUSH, *LPLOGBRUSH;
626
627typedef LOGBRUSH PATTERN, *PPATTERN, *LPPATTERN;
628
629
630 /* Brush styles */
631#define BS_SOLID 0
632#define BS_NULL 1
633#define BS_HOLLOW 1
634#define BS_HATCHED 2
635#define BS_PATTERN 3
636#define BS_INDEXED 4
637#define BS_DIBPATTERN 5
638#define BS_DIBPATTERNPT 6
639#define BS_PATTERN8X8 7
640#define BS_DIBPATTERN8X8 8
641#define BS_MONOPATTERN 9
642
643 /* Hatch styles */
644#define HS_HORIZONTAL 0
645#define HS_VERTICAL 1
646#define HS_FDIAGONAL 2
647#define HS_BDIAGONAL 3
648#define HS_CROSS 4
649#define HS_DIAGCROSS 5
650
651 /* Fonts */
652
653#define LF_FACESIZE 32
654#define LF_FULLFACESIZE 64
655
656#define RASTER_FONTTYPE 0x0001
657#define DEVICE_FONTTYPE 0x0002
658#define TRUETYPE_FONTTYPE 0x0004
659
660typedef struct
661{
662 LONG lfHeight;
663 LONG lfWidth;
664 LONG lfEscapement;
665 LONG lfOrientation;
666 LONG lfWeight;
667 BYTE lfItalic;
668 BYTE lfUnderline;
669 BYTE lfStrikeOut;
670 BYTE lfCharSet;
671 BYTE lfOutPrecision;
672 BYTE lfClipPrecision;
673 BYTE lfQuality;
674 BYTE lfPitchAndFamily;
675 CHAR lfFaceName[LF_FACESIZE];
676} LOGFONTA, *PLOGFONTA, *LPLOGFONTA;
677
678typedef struct
679{
680 LONG lfHeight;
681 LONG lfWidth;
682 LONG lfEscapement;
683 LONG lfOrientation;
684 LONG lfWeight;
685 BYTE lfItalic;
686 BYTE lfUnderline;
687 BYTE lfStrikeOut;
688 BYTE lfCharSet;
689 BYTE lfOutPrecision;
690 BYTE lfClipPrecision;
691 BYTE lfQuality;
692 BYTE lfPitchAndFamily;
693 WCHAR lfFaceName[LF_FACESIZE];
694} LOGFONTW, *PLOGFONTW, *LPLOGFONTW;
695
696DECL_WINELIB_TYPE_AW(LOGFONT)
697DECL_WINELIB_TYPE_AW(PLOGFONT)
698DECL_WINELIB_TYPE_AW(LPLOGFONT)
699
700typedef struct
701{
702 LOGFONTA elfLogFont;
703 BYTE elfFullName[LF_FULLFACESIZE];
704 BYTE elfStyle[LF_FACESIZE];
705} ENUMLOGFONTA, *LPENUMLOGFONTA;
706
707typedef struct
708{
709 LOGFONTW elfLogFont;
710 WCHAR elfFullName[LF_FULLFACESIZE];
711 WCHAR elfStyle[LF_FACESIZE];
712} ENUMLOGFONTW, *LPENUMLOGFONTW;
713
714DECL_WINELIB_TYPE_AW(ENUMLOGFONT)
715DECL_WINELIB_TYPE_AW(LPENUMLOGFONT)
716
717typedef struct
718{
719 LOGFONTA elfLogFont;
720 BYTE elfFullName[LF_FULLFACESIZE];
721 BYTE elfStyle[LF_FACESIZE];
722 BYTE elfScript[LF_FACESIZE];
723} ENUMLOGFONTEXA,*LPENUMLOGFONTEXA;
724
725typedef struct
726{
727 LOGFONTW elfLogFont;
728 WCHAR elfFullName[LF_FULLFACESIZE];
729 WCHAR elfStyle[LF_FACESIZE];
730 WCHAR elfScript[LF_FACESIZE];
731} ENUMLOGFONTEXW,*LPENUMLOGFONTEXW;
732
733DECL_WINELIB_TYPE_AW(ENUMLOGFONTEX)
734DECL_WINELIB_TYPE_AW(LPENUMLOGFONTEX)
735
736/*
737 * The FONTSIGNATURE tells which Unicode ranges and which code pages
738 * have glyphs in a font.
739 *
740 * fsUsb 128-bit bitmap. The most significant bits are 10 (magic number).
741 * The remaining 126 bits map the Unicode ISO 10646 subranges
742 * for which the font provides glyphs.
743 *
744 * fsCsb 64-bit bitmap. The low 32 bits map the Windows codepages for
745 * which the font provides glyphs. The high 32 bits are for
746 * non Windows codepages.
747 */
748typedef struct
749{
750 DWORD fsUsb[4];
751 DWORD fsCsb[2];
752} FONTSIGNATURE, *PFONTSIGNATURE, *LPFONTSIGNATURE;
753
754typedef struct
755{
756 UINT ciCharset; /* character set */
757 UINT ciACP; /* ANSI code page */
758 FONTSIGNATURE fs;
759} CHARSETINFO, *PCHARSETINFO, *LPCHARSETINFO;
760
761/* Flags for TranslateCharsetInfo */
762#define TCI_SRCCHARSET 1
763#define TCI_SRCCODEPAGE 2
764#define TCI_SRCFONTSIG 3
765
766typedef struct
767{
768 DWORD lsUsb[4];
769 DWORD lsCsbDefault[2];
770 DWORD lsCsbSupported[2];
771} LOCALESIGNATURE, *PLOCALESIGNATURE, *LPLOCALESIGNATURE;
772
773
774/* Flags for ModifyWorldTransform */
775#define MWT_IDENTITY 1
776#define MWT_LEFTMULTIPLY 2
777#define MWT_RIGHTMULTIPLY 3
778#define MWT_MIN MWT_IDENTITY
779#define MWT_MAX MWT_RIGHTMULTIPLY
780
781/* Object Definitions for EnumObjects() */
782#define OBJ_PEN 1
783#define OBJ_BRUSH 2
784#define OBJ_DC 3
785#define OBJ_METADC 4
786#define OBJ_PAL 5
787#define OBJ_FONT 6
788#define OBJ_BITMAP 7
789#define OBJ_REGION 8
790#define OBJ_METAFILE 9
791#define OBJ_MEMDC 10
792#define OBJ_EXTPEN 11
793#define OBJ_ENHMETADC 12
794#define OBJ_ENHMETAFILE 13
795
796typedef struct
797{
798 FLOAT eM11;
799 FLOAT eM12;
800 FLOAT eM21;
801 FLOAT eM22;
802 FLOAT eDx;
803 FLOAT eDy;
804} XFORM, *PXFORM, *LPXFORM;
805
806 /* lfWeight values */
807#define FW_DONTCARE 0
808#define FW_THIN 100
809#define FW_EXTRALIGHT 200
810#define FW_ULTRALIGHT 200
811#define FW_LIGHT 300
812#define FW_NORMAL 400
813#define FW_REGULAR 400
814#define FW_MEDIUM 500
815#define FW_SEMIBOLD 600
816#define FW_DEMIBOLD 600
817#define FW_BOLD 700
818#define FW_EXTRABOLD 800
819#define FW_ULTRABOLD 800
820#define FW_HEAVY 900
821#define FW_BLACK 900
822
823 /* lfCharSet values */
824#define ANSI_CHARSET (BYTE)0 /* CP1252, ansi-0, iso8859-{1,15} */
825#define DEFAULT_CHARSET (BYTE)1
826#define SYMBOL_CHARSET (BYTE)2
827#define SHIFTJIS_CHARSET (BYTE)128 /* CP932 */
828#define HANGEUL_CHARSET (BYTE)129 /* CP949, ksc5601.1987-0 */
829#define HANGUL_CHARSET HANGEUL_CHARSET
830#define GB2312_CHARSET (BYTE)134 /* CP936, gb2312.1980-0 */
831#define CHINESEBIG5_CHARSET (BYTE)136 /* CP950, big5.et-0 */
832#define GREEK_CHARSET (BYTE)161 /* CP1253 */
833#define TURKISH_CHARSET (BYTE)162 /* CP1254, -iso8859-9 */
834#define HEBREW_CHARSET (BYTE)177 /* CP1255, -iso8859-8 */
835#define ARABIC_CHARSET (BYTE)178 /* CP1256, -iso8859-6 */
836#define BALTIC_CHARSET (BYTE)186 /* CP1257, -iso8859-13 */
837#define VIETNAMESE_CHARSET (BYTE)163 /* CP1258 */
838#define RUSSIAN_CHARSET (BYTE)204 /* CP1251, -iso8859-5 */
839#define EE_CHARSET (BYTE)238 /* CP1250, -iso8859-2 */
840#define EASTEUROPE_CHARSET EE_CHARSET
841#define THAI_CHARSET (BYTE)222 /* CP874, iso8859-11, tis620 */
842#define JOHAB_CHARSET (BYTE)130 /* korean (johab) CP1361 */
843#define MAC_CHARSET (BYTE)77
844#define OEM_CHARSET (BYTE)255
845/* I don't know if the values of *_CHARSET macros are defined in Windows
846 * or if we can choose them as we want. -- srtxg
847 */
848#define VISCII_CHARSET (BYTE)240 /* viscii1.1-1 */
849#define TCVN_CHARSET (BYTE)241 /* tcvn-0 */
850#define KOI8_CHARSET (BYTE)242 /* koi8-{r,u,ru} */
851#define ISO3_CHARSET (BYTE)243 /* iso8859-3 */
852#define ISO4_CHARSET (BYTE)244 /* iso8859-4 */
853#define ISO10_CHARSET (BYTE)245 /* iso8859-10 */
854#define CELTIC_CHARSET (BYTE)246 /* iso8859-14 */
855
856#define FS_LATIN1 0x00000001L
857#define FS_LATIN2 0x00000002L
858#define FS_CYRILLIC 0x00000004L
859#define FS_GREEK 0x00000008L
860#define FS_TURKISH 0x00000010L
861#define FS_HEBREW 0x00000020L
862#define FS_ARABIC 0x00000040L
863#define FS_BALTIC 0x00000080L
864#define FS_VIETNAMESE 0x00000100L
865#define FS_THAI 0x00010000L
866#define FS_JISJAPAN 0x00020000L
867#define FS_CHINESESIMP 0x00040000L
868#define FS_WANSUNG 0x00080000L
869#define FS_CHINESETRAD 0x00100000L
870#define FS_JOHAB 0x00200000L
871#define FS_SYMBOL 0x80000000L
872
873 /* lfOutPrecision values */
874#define OUT_DEFAULT_PRECIS 0
875#define OUT_STRING_PRECIS 1
876#define OUT_CHARACTER_PRECIS 2
877#define OUT_STROKE_PRECIS 3
878#define OUT_TT_PRECIS 4
879#define OUT_DEVICE_PRECIS 5
880#define OUT_RASTER_PRECIS 6
881#define OUT_TT_ONLY_PRECIS 7
882#define OUT_OUTLINE_PRECIS 8
883
884 /* lfClipPrecision values */
885#define CLIP_DEFAULT_PRECIS 0x00
886#define CLIP_CHARACTER_PRECIS 0x01
887#define CLIP_STROKE_PRECIS 0x02
888#define CLIP_MASK 0x0F
889#define CLIP_LH_ANGLES 0x10
890#define CLIP_TT_ALWAYS 0x20
891#define CLIP_EMBEDDED 0x80
892
893 /* lfQuality values */
894#define DEFAULT_QUALITY 0
895#define DRAFT_QUALITY 1
896#define PROOF_QUALITY 2
897#define NONANTIALIASED_QUALITY 3
898#define ANTIALIASED_QUALITY 4
899
900 /* lfPitchAndFamily pitch values */
901#define DEFAULT_PITCH 0x00
902#define FIXED_PITCH 0x01
903#define VARIABLE_PITCH 0x02
904#define MONO_FONT 0x08
905
906#define FF_DONTCARE 0x00
907#define FF_ROMAN 0x10
908#define FF_SWISS 0x20
909#define FF_MODERN 0x30
910#define FF_SCRIPT 0x40
911#define FF_DECORATIVE 0x50
912
913#ifndef _TEXTMETRIC_DEFINED
914#define _TEXTMETRIC_DEFINED
915
916typedef struct
917{
918 LONG tmHeight;
919 LONG tmAscent;
920 LONG tmDescent;
921 LONG tmInternalLeading;
922 LONG tmExternalLeading;
923 LONG tmAveCharWidth;
924 LONG tmMaxCharWidth;
925 LONG tmWeight;
926 LONG tmOverhang;
927 LONG tmDigitizedAspectX;
928 LONG tmDigitizedAspectY;
929 BYTE tmFirstChar;
930 BYTE tmLastChar;
931 BYTE tmDefaultChar;
932 BYTE tmBreakChar;
933 BYTE tmItalic;
934 BYTE tmUnderlined;
935 BYTE tmStruckOut;
936 BYTE tmPitchAndFamily;
937 BYTE tmCharSet;
938} TEXTMETRICA, *LPTEXTMETRICA, *PTEXTMETRICA;
939
940typedef struct
941{
942 LONG tmHeight;
943 LONG tmAscent;
944 LONG tmDescent;
945 LONG tmInternalLeading;
946 LONG tmExternalLeading;
947 LONG tmAveCharWidth;
948 LONG tmMaxCharWidth;
949 LONG tmWeight;
950 LONG tmOverhang;
951 LONG tmDigitizedAspectX;
952 LONG tmDigitizedAspectY;
953 WCHAR tmFirstChar;
954 WCHAR tmLastChar;
955 WCHAR tmDefaultChar;
956 WCHAR tmBreakChar;
957 BYTE tmItalic;
958 BYTE tmUnderlined;
959 BYTE tmStruckOut;
960 BYTE tmPitchAndFamily;
961 BYTE tmCharSet;
962} TEXTMETRICW, *LPTEXTMETRICW, *PTEXTMETRICW;
963
964DECL_WINELIB_TYPE_AW(TEXTMETRIC)
965DECL_WINELIB_TYPE_AW(PTEXTMETRIC)
966DECL_WINELIB_TYPE_AW(LPTEXTMETRIC)
967#endif /* _TEXTMETRIC_DEFINED */
968
969
970typedef struct tagPANOSE
971{
972 BYTE bFamilyType;
973 BYTE bSerifStyle;
974 BYTE bWeight;
975 BYTE bProportion;
976 BYTE bContrast;
977 BYTE bStrokeVariation;
978 BYTE bArmStyle;
979 BYTE bLetterform;
980 BYTE bMidline;
981 BYTE bXHeight;
982} PANOSE, *LPPANOSE;
983
984#define PANOSE_COUNT 10
985
986#define PAN_FAMILYTYPE_INDEX 0
987#define PAN_SERIFSTYLE_INDEX 1
988#define PAN_WEIGTH_INDEX 2
989#define PAN_PROPORTION_INDEX 3
990#define PAN_CONTRAST_INDEX 4
991#define PAN_STROKEVARIATION_INDEX 5
992#define PAN_ARMSTYLE_INDEX 6
993#define PAN_LETTERFORM_INDEX 7
994#define PAN_MIDLINE_INDEX 8
995#define PAN_XHEIGHT_INDEX 9
996
997#define PAN_CULTURE_LATIN 0
998
999#define PAN_ANY 0
1000#define PAN_NO_FIT 1
1001
1002#define PAN_FAMILY_TEXT_DISPLAY 2
1003#define PAN_FAMILY_SCRIPT 3
1004#define PAN_FAMILY_DECORATIVE 4
1005#define PAN_FAMILY_PICTORIAL 5
1006
1007#define PAN_SERIF_COVE 2
1008#define PAN_SERIF_OBTUSE_COVE 3
1009#define PAN_SERIF_SQUARE_COVE 4
1010#define PAN_SERIF_OBTUSE_SQUARE_COVE 5
1011#define PAN_SERIF_SQUARE 6
1012#define PAN_SERIF_THIN 7
1013#define PAN_SERIF_BONE 8
1014#define PAN_SERIF_EXAGGERATED 9
1015#define PAN_SERIF_TRIANGLE 10
1016#define PAN_SERIF_NORMAL_SANS 11
1017#define PAN_SERIF_OBTUSE_SANS 12
1018#define PAN_SERIF_PERP_SANS 13
1019#define PAN_SERIF_FLARED 14
1020#define PAN_SERIF_ROUNDED 15
1021
1022#define PAN_WEIGHT_VERY_LIGHT 2
1023#define PAN_WEIGHT_LIGHT 3
1024#define PAN_WEIGHT_THIN 4
1025#define PAN_WEIGHT_BOOK 5
1026#define PAN_WEIGHT_MEDIUM 6
1027#define PAN_WEIGHT_DEMI 7
1028#define PAN_WEIGHT_BOLD 8
1029#define PAN_WEIGHT_HEAVY 9
1030#define PAN_WEIGHT_BLACK 10
1031#define PAN_WEIGHT_NORD 11
1032
1033#define PAN_PROP_OLD_STYLE 2
1034#define PAN_PROP_MODERN 3
1035#define PAN_PROP_EVEN_WIDTH 4
1036#define PAN_PROP_EXPANDED 5
1037#define PAN_PROP_CONDENSED 6
1038#define PAN_PROP_VERY_EXPANDED 7
1039#define PAN_PROP_VERY_CONDENSED 8
1040#define PAN_PROP_MONOSPACED 9
1041
1042#define PAN_CONTRAST_NONE 2
1043#define PAN_CONTRAST_VERY_LOW 3
1044#define PAN_CONTRAST_LOW 4
1045#define PAN_CONTRAST_MEDIUM_LOW 5
1046#define PAN_CONTRAST_MEDIUM 6
1047#define PAN_CONTRAST_MEDIUM_HIGH 7
1048#define PAN_CONTRAST_HIGH 8
1049#define PAN_CONTRAST_VERY_HIGH 9
1050
1051#define PAN_STROKE_GRADUAL_DIAG 2
1052#define PAN_STROKE_GRADUAL_TRAN 3
1053#define PAN_STROKE_GRADUAL_VERT 4
1054#define PAN_STROKE_GRADUAL_HORZ 5
1055#define PAN_STROKE_RAPID_VERT 6
1056#define PAN_STROKE_RAPID_HORZ 7
1057#define PAN_STROKE_INSTANT_VERT 8
1058
1059#define PAN_STRAIGHT_ARMS_HORZ 2
1060#define PAN_STRAIGHT_ARMS_WEDGE 3
1061#define PAN_STRAIGHT_ARMS_VERT 4
1062#define PAN_STRAIGHT_ARMS_SINGLE_SERIF 5
1063#define PAN_STRAIGHT_ARMS_DOUBLE_SERIF 6
1064#define PAN_BENT_ARMS_HORZ 7
1065#define PAN_BENT_ARMS_WEDGE 8
1066#define PAN_BENT_ARMS_VERT 9
1067#define PAN_BENT_ARMS_SINGLE_SERIF 10
1068#define PAN_BENT_ARMS_DOUBLE_SERIF 11
1069
1070#define PAN_LETT_NORMAL_COMPACT 2
1071#define PAN_LETT_NORMAL_WEIGHTED 3
1072#define PAN_LETT_NORMAL_BOXED 4
1073#define PAN_LETT_NORMAL_FLATTENED 5
1074#define PAN_LETT_NORMAL_ROUNDED 6
1075#define PAN_LETT_NORMAL_OFF_CENTER 7
1076#define PAN_LETT_NORMAL_SQUARE 8
1077#define PAN_LETT_OBLIQUE_COMPACT 9
1078#define PAN_LETT_OBLIQUE_WEIGHTED 10
1079#define PAN_LETT_OBLIQUE_BOXED 11
1080#define PAN_LETT_OBLIQUE_FLATTENED 12
1081#define PAN_LETT_OBLIQUE_ROUNDED 13
1082#define PAN_LETT_OBLIQUE_OFF_CENTER 14
1083#define PAN_LETT_OBLIQUE_SQUARE 15
1084
1085#define PAN_MIDLINE_STANDARD_TRIMMED 2
1086#define PAN_MIDLINE_STANDARD_POINTED 3
1087#define PAN_MIDLINE_STANDARD_SERIFED 4
1088#define PAN_MIDLINE_HIGH_TRIMMED 5
1089#define PAN_MIDLINE_HIGH_POINTED 6
1090#define PAN_MIDLINE_HIGH_SERIFED 7
1091#define PAN_MIDLINE_CONSTANT_TRIMMED 8
1092#define PAN_MIDLINE_CONSTANT_POINTED 9
1093#define PAN_MIDLINE_CONSTANT_SERIFED 10
1094#define PAN_MIDLINE_LOW_TRIMMED 11
1095#define PAN_MIDLINE_LOW_POINTED 12
1096#define PAN_MIDLINE_LOW_SERIFED 13
1097
1098#define PAN_XHEIGHT_CONSTANT_SMALL 2
1099#define PAN_XHEIGHT_CONSTANT_STANDARD 3
1100#define PAN_XHEIGHT_CONSTANT_LARGE 4
1101#define PAN_XHEIGHT_DUCKING_SMALL 5
1102#define PAN_XHEIGHT_DUCKING_STANDARD 6
1103#define PAN_XHEIGHT_DUCKING_LARGE 7
1104
1105#define ELF_VENDOR_SIZE 4
1106typedef struct
1107{
1108 LOGFONTA elfLogFont;
1109 BYTE elfFullName[LF_FULLFACESIZE];
1110 BYTE elfStyle[LF_FACESIZE];
1111 DWORD elfVersion;
1112 DWORD elfStyleSize;
1113 DWORD elfMatch;
1114 DWORD elfReserved;
1115 BYTE elfVendorId[ELF_VENDOR_SIZE];
1116 DWORD elfCulture;
1117 PANOSE elfPanose;
1118} EXTLOGFONTA, *PEXTLOGFONTA, *LPEXTLOGFONTA;
1119
1120typedef struct
1121{
1122 LOGFONTW elfLogFont;
1123 WCHAR elfFullName[LF_FULLFACESIZE];
1124 WCHAR elfStyle[LF_FACESIZE];
1125 DWORD elfVersion;
1126 DWORD elfStyleSize;
1127 DWORD elfMatch;
1128 DWORD elfReserved;
1129 BYTE elfVendorId[ELF_VENDOR_SIZE];
1130 DWORD elfCulture;
1131 PANOSE elfPanose;
1132} EXTLOGFONTW, *PEXTLOGFONTW, *LPEXTLOGFONTW;
1133
1134DECL_WINELIB_TYPE_AW(EXTLOGFONT)
1135DECL_WINELIB_TYPE_AW(PEXTLOGFONT)
1136DECL_WINELIB_TYPE_AW(LPEXTLOGFONT)
1137
1138#define ELF_VERSION 0
1139#define ELF_CULTURE_LATIN 0
1140
1141typedef struct _OUTLINETEXTMETRICA
1142{
1143 UINT otmSize;
1144 TEXTMETRICA otmTextMetrics;
1145 BYTE otmFiller;
1146 PANOSE otmPanoseNumber;
1147 UINT otmfsSelection;
1148 UINT otmfsType;
1149 INT otmsCharSlopeRise;
1150 INT otmsCharSlopeRun;
1151 INT otmItalicAngle;
1152 UINT otmEMSquare;
1153 INT otmAscent;
1154 INT otmDescent;
1155 UINT otmLineGap;
1156 UINT otmsCapEmHeight;
1157 UINT otmsXHeight;
1158 RECT otmrcFontBox;
1159 INT otmMacAscent;
1160 INT otmMacDescent;
1161 UINT otmMacLineGap;
1162 UINT otmusMinimumPPEM;
1163 POINT otmptSubscriptSize;
1164 POINT otmptSubscriptOffset;
1165 POINT otmptSuperscriptSize;
1166 POINT otmptSuperscriptOffset;
1167 UINT otmsStrikeoutSize;
1168 INT otmsStrikeoutPosition;
1169 INT otmsUnderscoreSize;
1170 INT otmsUnderscorePosition;
1171 LPSTR otmpFamilyName;
1172 LPSTR otmpFaceName;
1173 LPSTR otmpStyleName;
1174 LPSTR otmpFullName;
1175} OUTLINETEXTMETRICA, *POUTLINETEXTMETRICA, *LPOUTLINETEXTMETRICA;
1176
1177typedef struct _OUTLINETEXTMETRICW
1178{
1179 UINT otmSize;
1180 TEXTMETRICW otmTextMetrics;
1181 BYTE otmFiller;
1182 PANOSE otmPanoseNumber;
1183 UINT otmfsSelection;
1184 UINT otmfsType;
1185 INT otmsCharSlopeRise;
1186 INT otmsCharSlopeRun;
1187 INT otmItalicAngle;
1188 UINT otmEMSquare;
1189 INT otmAscent;
1190 INT otmDescent;
1191 UINT otmLineGap;
1192 UINT otmsCapEmHeight;
1193 UINT otmsXHeight;
1194 RECT otmrcFontBox;
1195 INT otmMacAscent;
1196 INT otmMacDescent;
1197 UINT otmMacLineGap;
1198 UINT otmusMinimumPPEM;
1199 POINT otmptSubscriptSize;
1200 POINT otmptSubscriptOffset;
1201 POINT otmptSuperscriptSize;
1202 POINT otmptSuperscriptOffset;
1203 UINT otmsStrikeoutSize;
1204 INT otmsStrikeoutPosition;
1205 INT otmsUnderscoreSize;
1206 INT otmsUnderscorePosition;
1207 LPSTR otmpFamilyName;
1208 LPSTR otmpFaceName;
1209 LPSTR otmpStyleName;
1210 LPSTR otmpFullName;
1211} OUTLINETEXTMETRICW, *POUTLINETEXTMETRICW, *LPOUTLINETEXTMETRICW;
1212
1213DECL_WINELIB_TYPE_AW(OUTLINETEXTMETRIC)
1214DECL_WINELIB_TYPE_AW(POUTLINETEXTMETRIC)
1215DECL_WINELIB_TYPE_AW(LPOUTLINETEXTMETRIC)
1216
1217typedef struct
1218{
1219 INT x;
1220 INT y;
1221 UINT n;
1222 LPCSTR lpstr;
1223 UINT uiFlags;
1224 RECT rcl;
1225 INT *pdx;
1226} POLYTEXTA, *PPOLYTEXTA, *LPPOLYTEXTA;
1227
1228typedef struct
1229{
1230 INT x;
1231 INT y;
1232 UINT n;
1233 LPCWSTR lpstr;
1234 UINT uiFlags;
1235 RECT rcl;
1236 INT *pdx;
1237} POLYTEXTW, *PPOLYTEXTW, *LPPOLYTEXTW;
1238
1239DECL_WINELIB_TYPE_AW(POLYTEXT)
1240DECL_WINELIB_TYPE_AW(PPOLYTEXT)
1241DECL_WINELIB_TYPE_AW(LPPOLYTEXT)
1242
1243
1244/* ntmFlags field flags */
1245#define NTM_REGULAR 0x00000040L
1246#define NTM_BOLD 0x00000020L
1247#define NTM_ITALIC 0x00000001L
1248
1249#define NTM_NONNEGATIVE_AC 0x00010000
1250#define NTM_PS_OPENTYPE 0x00020000
1251#define NTM_TT_OPENTYPE 0x00040000
1252#define NTM_MULTIPLEMASTER 0x00080000
1253#define NTM_TYPE1 0x00100000
1254#define NTM_DSIG 0x00200000
1255
1256
1257typedef struct
1258{
1259 LONG tmHeight;
1260 LONG tmAscent;
1261 LONG tmDescent;
1262 LONG tmInternalLeading;
1263 LONG tmExternalLeading;
1264 LONG tmAveCharWidth;
1265 LONG tmMaxCharWidth;
1266 LONG tmWeight;
1267 LONG tmOverhang;
1268 LONG tmDigitizedAspectX;
1269 LONG tmDigitizedAspectY;
1270 BYTE tmFirstChar;
1271 BYTE tmLastChar;
1272 BYTE tmDefaultChar;
1273 BYTE tmBreakChar;
1274 BYTE tmItalic;
1275 BYTE tmUnderlined;
1276 BYTE tmStruckOut;
1277 BYTE tmPitchAndFamily;
1278 BYTE tmCharSet;
1279 DWORD ntmFlags;
1280 UINT ntmSizeEM;
1281 UINT ntmCellHeight;
1282 UINT ntmAvgWidth;
1283} NEWTEXTMETRICA, *PNEWTEXTMETRICA, *LPNEWTEXTMETRICA;
1284
1285typedef struct
1286{
1287 LONG tmHeight;
1288 LONG tmAscent;
1289 LONG tmDescent;
1290 LONG tmInternalLeading;
1291 LONG tmExternalLeading;
1292 LONG tmAveCharWidth;
1293 LONG tmMaxCharWidth;
1294 LONG tmWeight;
1295 LONG tmOverhang;
1296 LONG tmDigitizedAspectX;
1297 LONG tmDigitizedAspectY;
1298 WCHAR tmFirstChar;
1299 WCHAR tmLastChar;
1300 WCHAR tmDefaultChar;
1301 WCHAR tmBreakChar;
1302 BYTE tmItalic;
1303 BYTE tmUnderlined;
1304 BYTE tmStruckOut;
1305 BYTE tmPitchAndFamily;
1306 BYTE tmCharSet;
1307 DWORD ntmFlags;
1308 UINT ntmSizeEM;
1309 UINT ntmCellHeight;
1310 UINT ntmAvgWidth;
1311} NEWTEXTMETRICW, *PNEWTEXTMETRICW, *LPNEWTEXTMETRICW;
1312
1313DECL_WINELIB_TYPE_AW(NEWTEXTMETRIC)
1314DECL_WINELIB_TYPE_AW(PNEWTEXTMETRIC)
1315DECL_WINELIB_TYPE_AW(LPNEWTEXTMETRIC)
1316
1317typedef struct
1318{
1319 NEWTEXTMETRICA ntmTm;
1320 FONTSIGNATURE ntmFontSig;
1321} NEWTEXTMETRICEXA;
1322
1323typedef struct
1324{
1325 NEWTEXTMETRICW ntmTm;
1326 FONTSIGNATURE ntmFontSig;
1327} NEWTEXTMETRICEXW;
1328
1329DECL_WINELIB_TYPE_AW(NEWTEXTMETRICEX)
1330
1331#if defined(STRICT) || defined(__WIN32OS2__) /* bird: we must have strict mode */
1332
1333#if defined(__WIN32OS2__) /* bird: hmm, make our code compile... */
1334typedef int (* CALLBACK OLDFONTENUMPROCA)(const VOID *, const VOID *, DWORD, LPARAM);
1335typedef int (* CALLBACK OLDFONTENUMPROCW)(const VOID *, const VOID *, DWORD, LPARAM);
1336typedef OLDFONTENUMPROCA FONTENUMPROCEXA;
1337typedef OLDFONTENUMPROCW FONTENUMPROCEXW;
1338#else
1339#if !defined(NOTEXTMETRIC)
1340typedef int (* CALLBACK OLDFONTENUMPROCA)(const LOGFONTA *, const TEXTMETRICA *, DWORD, LPARAM);
1341typedef int (* CALLBACK OLDFONTENUMPROCW)(const LOGFONTW *, const TEXTMETRICW *, DWORD, LPARAM);
1342#else /* !defined(NOTEXTMETRIC) */
1343typedef int (* CALLBACK OLDFONTENUMPROCA)(const LOGFONTA *, const VOID *, DWORD, LPARAM);
1344typedef int (* CALLBACK OLDFONTENUMPROCW)(const LOGFONTW *, const VOID *, DWORD, LPARAM);
1345#endif /* !defined(NOTEXTMETRIC) */
1346#endif /* __WIN32OS2__ */
1347DECL_WINELIB_TYPE_AW(OLDFONTENUMPROC)
1348
1349typedef OLDFONTENUMPROCA FONTENUMPROCA;
1350typedef OLDFONTENUMPROCW FONTENUMPROCW;
1351DECL_WINELIB_TYPE_AW(FONTENUMPROC)
1352
1353#ifndef __WIN32OS2__ /* bird: windef.h defines these. */
1354typedef INT (* CALLBACK GOBJENUMPROC)(LPVOID,LPARAM);
1355typedef VOID (* CALLBACK LINEDDAPROC)(INT, INT, LPARAM);
1356#endif
1357
1358#else /* defined(STRICT) */
1359
1360typedef FARPROC OLDFONTENUMPROC;
1361
1362typedef FARPROC FONTENUMPROCA;
1363typedef FARPROC FONTENUMPROCW;
1364DECL_WINELIB_TYPE_AW(FONTENUMPROC)
1365
1366typedef FARPROC GOBJENUMPROC;
1367typedef FARPROC LINEDDAPROC;
1368
1369#endif /* defined(STRICT) */
1370
1371 /* tmPitchAndFamily bits */
1372#define TMPF_FIXED_PITCH 1 /* means variable pitch */
1373#define TMPF_VECTOR 2
1374#define TMPF_TRUETYPE 4
1375#define TMPF_DEVICE 8
1376
1377 /* Text alignment */
1378#define TA_NOUPDATECP 0x00
1379#define TA_UPDATECP 0x01
1380#define TA_LEFT 0x00
1381#define TA_RIGHT 0x02
1382#define TA_CENTER 0x06
1383#define TA_TOP 0x00
1384#define TA_BOTTOM 0x08
1385#define TA_BASELINE 0x18
1386#define TA_RTLREADING 0x100
1387#define TA_MASK TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLREADING
1388
1389#define VTA_BASELINE TA_BASELINE
1390#define VTA_LEFT TA_BOTTOM
1391#define VTA_RIGHT TA_TOP
1392#define VTA_CENTER TA_CENTER
1393#define VTA_BOTTOM TA_RIGHT
1394#define VTA_TOP TA_LEFT
1395
1396
1397 /* ExtTextOut() parameters */
1398#define ETO_GRAYED 0x0001
1399#define ETO_OPAQUE 0x0002
1400#define ETO_CLIPPED 0x0004
1401#define ETO_GLYPH_INDEX 0x0010
1402#define ETO_RTLREADING 0x0080
1403#define ETO_IGNORELANGUAGE 0x1000
1404
1405#define ASPECT_FILTERING 0x0001
1406
1407 /* for GetGlyphIndices() */
1408#define GGI_MARK_NONEXISTING_GLYPHS 0x0001
1409
1410typedef struct
1411{
1412 UINT gmBlackBoxX;
1413 UINT gmBlackBoxY;
1414 POINT gmptGlyphOrigin;
1415 SHORT gmCellIncX;
1416 SHORT gmCellIncY;
1417} GLYPHMETRICS, *LPGLYPHMETRICS;
1418
1419
1420#define GGO_METRICS 0
1421#define GGO_BITMAP 1
1422#define GGO_NATIVE 2
1423#define GGO_BEZIER 3
1424#define GGO_GRAY2_BITMAP 4
1425#define GGO_GRAY4_BITMAP 5
1426#define GGO_GRAY8_BITMAP 6
1427#define GGO_GLYPH_INDEX 0x80
1428
1429typedef struct
1430{
1431 WORD fract;
1432 SHORT value;
1433} FIXED;
1434
1435typedef struct tagPOINTFX
1436{
1437 FIXED x;
1438 FIXED y;
1439} POINTFX, *LPPOINTFX;
1440
1441typedef struct tagTTPOLYCURVE
1442{
1443 WORD wType;
1444 WORD cpfx;
1445 POINTFX apfx[1];
1446} TTPOLYCURVE, *LPTTPOLYCURVE;
1447
1448typedef struct tagTTPOLYGONHEADER
1449{
1450 DWORD cb;
1451 DWORD dwType;
1452 POINTFX pfxStart;
1453} TTPOLYGONHEADER, *LPTTPOLYGONHEADER;
1454
1455typedef struct
1456{
1457 FIXED eM11;
1458 FIXED eM12;
1459 FIXED eM21;
1460 FIXED eM22;
1461} MAT2, *LPMAT2;
1462
1463 /* for GetCharABCWidths() */
1464typedef struct
1465{
1466 INT abcA;
1467 UINT abcB;
1468 INT abcC;
1469} ABC, *PABC, *LPABC;
1470
1471
1472 /* for GetCharacterPlacement () */
1473
1474#define GCP_DBCS 0x0001
1475#define GCP_REORDER 0x0002
1476#define GCP_USEKERNING 0x0008
1477#define GCP_GLYPHSHAPE 0x0010
1478#define GCP_LIGATE 0x0020
1479#define GCP_DIACRITIC 0x0100
1480#define GCP_KASHIDA 0x0200
1481#define GCP_ERROR 0x8000
1482#define FLI_MASK 0x103b
1483#define GCP_JUSTIFY 0x00010000L
1484#define FLI_GLYPHS 0x00040000L
1485#define GCP_CLASSIN 0x00080000L
1486#define GCP_MAXEXTENT 0x00100000L
1487#define GCP_JUSTIFYIN 0x00200000L
1488#define GCP_DISPLAYZWG 0x00400000L
1489#define GCP_SYMSWAPOFF 0x00800000L
1490#define GCP_NUMERICOVERRIDE 0x01000000L
1491#define GCP_NEUTRALOVERRIDE 0x02000000L
1492#define GCP_NUMERICSLATIN 0x04000000L
1493#define GCP_NUMERICSLOCAL 0x08000000L
1494
1495#define GCPCLASS_LATIN 1
1496#define GCPCLASS_HEBREW 2
1497#define GCPCLASS_ARABIC 3
1498#define GCPCLASS_NEUTRAL 4
1499#define GCPCLASS_LOCALNUMBER 5
1500#define GCPCLASS_LATINNUMBER 6
1501#define GCPCLASS_LATINNUMERICTERMINATOR 7
1502#define GCPCLASS_LATINNUMERICSEPARATOR 8
1503#define GCPCLASS_NUMERICSEPARATOR 9
1504#define GCPCLASS_PREBOUNDLTR 0x80
1505#define GCPCLASS_PREBOUNDRLT 0x40
1506#define GCPCLASS_POSTBOUNDLTR 0x20
1507#define GCPCLASS_POSTBOUNDRTL 0x10
1508
1509#define GCPGLYPH_LINKBEFORE 0x8000
1510#define GCPGLYPH_LINKAFTER 0x4000
1511
1512
1513typedef struct tagGCP_RESULTSA{
1514 DWORD lStructSize;
1515 LPSTR lpOutString;
1516 UINT *lpOrder;
1517 INT *lpDx;
1518 INT *lpCaretPos;
1519 LPSTR lpClass;
1520 LPWSTR lpGlyphs;
1521 UINT nGlyphs;
1522 UINT nMaxFit;
1523} GCP_RESULTSA, *LPGCP_RESULTSA;
1524
1525typedef struct tagGCP_RESULTSW
1526{
1527 DWORD lStructSize;
1528 LPWSTR lpOutString;
1529 UINT *lpOrder;
1530 INT *lpDx;
1531 INT *lpCaretPos;
1532 LPSTR lpClass;
1533 LPWSTR lpGlyphs;
1534 UINT nGlyphs;
1535 UINT nMaxFit;
1536} GCP_RESULTSW, *LPGCP_RESULTSW;
1537
1538DECL_WINELIB_TYPE_AW(GCP_RESULTS)
1539DECL_WINELIB_TYPE_AW(LPGCP_RESULTS)
1540
1541 /* Rasterizer status */
1542typedef struct
1543{
1544 SHORT nSize;
1545 SHORT wFlags;
1546 SHORT nLanguageID;
1547} RASTERIZER_STATUS, *LPRASTERIZER_STATUS;
1548
1549#define TT_AVAILABLE 0x0001
1550#define TT_ENABLED 0x0002
1551
1552#define TT_PRIM_LINE 1
1553#define TT_PRIM_QSPLINE 2
1554#define TT_PRIM_CSPLINE 3
1555#define TT_POLYGON_TYPE 24
1556
1557/* Get/SetSystemPaletteUse() values */
1558#define SYSPAL_ERROR 0
1559#define SYSPAL_STATIC 1
1560#define SYSPAL_NOSTATIC 2
1561#define SYSPAL_NOSTATIC256 3
1562
1563#ifndef _PALETTEENTRY_DEFINED
1564#define _PALETTEENTRY_DEFINED
1565typedef struct tagPALETTEENTRY
1566{
1567 BYTE peRed, peGreen, peBlue, peFlags;
1568} PALETTEENTRY, *PPALETTEENTRY, *LPPALETTEENTRY;
1569#endif
1570
1571/* Logical palette entry flags */
1572#define PC_RESERVED 0x01
1573#define PC_EXPLICIT 0x02
1574#define PC_NOCOLLAPSE 0x04
1575
1576#ifndef _LOGPALETTE_DEFINED
1577#define _LOGPALETTE_DEFINED
1578typedef struct tagLOGPALETTE
1579{
1580 WORD palVersion;
1581 WORD palNumEntries;
1582 PALETTEENTRY palPalEntry[1];
1583} LOGPALETTE, *PLOGPALETTE, *LPLOGPALETTE, *NPLOGPALETTE;
1584#endif
1585
1586 /* Pens */
1587
1588typedef struct
1589{
1590 UINT lopnStyle;
1591 POINT lopnWidth;
1592 COLORREF lopnColor;
1593} LOGPEN, *LPLOGPEN;
1594
1595
1596typedef struct tagEXTLOGPEN
1597{
1598 DWORD elpPenStyle;
1599 DWORD elpWidth;
1600 UINT elpBrushStyle;
1601 COLORREF elpColor;
1602 LONG elpHatch;
1603 DWORD elpNumEntries;
1604 DWORD elpStyleEntry[1];
1605} EXTLOGPEN, *PEXTLOGPEN, *NPEXTLOGPEN, *LPEXTLOGPEN;
1606
1607#define PS_SOLID 0x00000000
1608#define PS_DASH 0x00000001
1609#define PS_DOT 0x00000002
1610#define PS_DASHDOT 0x00000003
1611#define PS_DASHDOTDOT 0x00000004
1612#define PS_NULL 0x00000005
1613#define PS_INSIDEFRAME 0x00000006
1614#define PS_USERSTYLE 0x00000007
1615#define PS_ALTERNATE 0x00000008
1616#define PS_STYLE_MASK 0x0000000f
1617
1618#define PS_ENDCAP_ROUND 0x00000000
1619#define PS_ENDCAP_SQUARE 0x00000100
1620#define PS_ENDCAP_FLAT 0x00000200
1621#define PS_ENDCAP_MASK 0x00000f00
1622
1623#define PS_JOIN_ROUND 0x00000000
1624#define PS_JOIN_BEVEL 0x00001000
1625#define PS_JOIN_MITER 0x00002000
1626#define PS_JOIN_MASK 0x0000f000
1627
1628#define PS_COSMETIC 0x00000000
1629#define PS_GEOMETRIC 0x00010000
1630#define PS_TYPE_MASK 0x000f0000
1631
1632 /* Regions */
1633
1634#define ERROR 0
1635#define NULLREGION 1
1636#define SIMPLEREGION 2
1637#define COMPLEXREGION 3
1638#define RGN_ERROR ERROR
1639
1640#define RGN_AND 1
1641#define RGN_OR 2
1642#define RGN_XOR 3
1643#define RGN_DIFF 4
1644#define RGN_COPY 5
1645#define RGN_MIN RGN_AND
1646#define RGN_MAX RGN_COPY
1647
1648#define SYSRGN 4
1649
1650 /* Device contexts */
1651
1652/* bird: these have moved in new header. */
1653/* GetDCEx flags */
1654#define DCX_WINDOW 0x00000001
1655#define DCX_CACHE 0x00000002
1656#define DCX_CLIPCHILDREN 0x00000008
1657#define DCX_CLIPSIBLINGS 0x00000010
1658#define DCX_PARENTCLIP 0x00000020
1659#define DCX_EXCLUDERGN 0x00000040
1660#define DCX_INTERSECTRGN 0x00000080
1661#define DCX_LOCKWINDOWUPDATE 0x00000400
1662#define DCX_USESTYLE 0x00010000
1663
1664 /* Polygon modes */
1665#define ALTERNATE 1
1666#define WINDING 2
1667#define POLYFILL_LAST 2
1668
1669/* Background modes */
1670/* Apparently some broken svr4 includes define TRANSPARENT */
1671#undef TRANSPARENT
1672#define TRANSPARENT 1
1673#define OPAQUE 2
1674#define BKMODE_LAST 2
1675
1676 /* Graphics Modes */
1677#define GM_COMPATIBLE 1
1678#define GM_ADVANCED 2
1679#define GM_LAST 2
1680
1681 /* Arc direction modes */
1682#define AD_COUNTERCLOCKWISE 1
1683#define AD_CLOCKWISE 2
1684
1685 /* Map modes */
1686#define MM_TEXT 1
1687#define MM_LOMETRIC 2
1688#define MM_HIMETRIC 3
1689#define MM_LOENGLISH 4
1690#define MM_HIENGLISH 5
1691#define MM_TWIPS 6
1692#define MM_ISOTROPIC 7
1693#define MM_ANISOTROPIC 8
1694
1695#define MM_MIN MM_TEXT
1696#define MM_MAX MM_ANISOTROPIC
1697#define MM_MAX_FIXEDSCALE MM_TWIPS
1698
1699 /* Coordinate modes */
1700#define ABSOLUTE 1
1701#define RELATIVE 2
1702
1703 /* Flood fill modes */
1704#define FLOODFILLBORDER 0
1705#define FLOODFILLSURFACE 1
1706
1707 /* Device parameters for GetDeviceCaps() */
1708#define DRIVERVERSION 0
1709#define TECHNOLOGY 2
1710#define HORZSIZE 4
1711#define VERTSIZE 6
1712#define HORZRES 8
1713#define VERTRES 10
1714#define BITSPIXEL 12
1715#define PLANES 14
1716#define NUMBRUSHES 16
1717#define NUMPENS 18
1718#define NUMMARKERS 20
1719#define NUMFONTS 22
1720#define NUMCOLORS 24
1721#define PDEVICESIZE 26
1722#define CURVECAPS 28
1723#define LINECAPS 30
1724#define POLYGONALCAPS 32
1725#define TEXTCAPS 34
1726#define CLIPCAPS 36
1727#define RASTERCAPS 38
1728#define ASPECTX 40
1729#define ASPECTY 42
1730#define ASPECTXY 44
1731#define LOGPIXELSX 88
1732#define LOGPIXELSY 90
1733#define CAPS1 94
1734#define SIZEPALETTE 104
1735#define NUMRESERVED 106
1736#define COLORRES 108
1737
1738#define PHYSICALWIDTH 110
1739#define PHYSICALHEIGHT 111
1740#define PHYSICALOFFSETX 112
1741#define PHYSICALOFFSETY 113
1742#define SCALINGFACTORX 114
1743#define SCALINGFACTORY 115
1744#define VREFRESH 116
1745#define DESKTOPVERTRES 117
1746#define DESKTOPHORZRES 118
1747#define BTLALIGNMENT 119
1748
1749/* TECHNOLOGY */
1750#define DT_PLOTTER 0
1751#define DT_RASDISPLAY 1
1752#define DT_RASPRINTER 2
1753#define DT_RASCAMERA 3
1754#define DT_CHARSTREAM 4
1755#define DT_METAFILE 5
1756#define DT_DISPFILE 6
1757
1758/* CURVECAPS */
1759#define CC_NONE 0x0000
1760#define CC_CIRCLES 0x0001
1761#define CC_PIE 0x0002
1762#define CC_CHORD 0x0004
1763#define CC_ELLIPSES 0x0008
1764#define CC_WIDE 0x0010
1765#define CC_STYLED 0x0020
1766#define CC_WIDESTYLED 0x0040
1767#define CC_INTERIORS 0x0080
1768#define CC_ROUNDRECT 0x0100
1769
1770/* LINECAPS */
1771#define LC_NONE 0x0000
1772#define LC_POLYLINE 0x0002
1773#define LC_MARKER 0x0004
1774#define LC_POLYMARKER 0x0008
1775#define LC_WIDE 0x0010
1776#define LC_STYLED 0x0020
1777#define LC_WIDESTYLED 0x0040
1778#define LC_INTERIORS 0x0080
1779
1780/* POLYGONALCAPS */
1781#define PC_NONE 0x0000
1782#define PC_POLYGON 0x0001
1783#define PC_RECTANGLE 0x0002
1784#define PC_WINDPOLYGON 0x0004
1785#define PC_TRAPEZOID 0x0004
1786#define PC_SCANLINE 0x0008
1787#define PC_WIDE 0x0010
1788#define PC_STYLED 0x0020
1789#define PC_WIDESTYLED 0x0040
1790#define PC_INTERIORS 0x0080
1791#define PC_POLYPOLYGON 0x0100
1792#define PC_PATHS 0x0200
1793
1794/* TEXTCAPS */
1795#define TC_OP_CHARACTER 0x0001
1796#define TC_OP_STROKE 0x0002
1797#define TC_CP_STROKE 0x0004
1798#define TC_CR_90 0x0008
1799#define TC_CR_ANY 0x0010
1800#define TC_SF_X_YINDEP 0x0020
1801#define TC_SA_DOUBLE 0x0040
1802#define TC_SA_INTEGER 0x0080
1803#define TC_SA_CONTIN 0x0100
1804#define TC_EA_DOUBLE 0x0200
1805#define TC_IA_ABLE 0x0400
1806#define TC_UA_ABLE 0x0800
1807#define TC_SO_ABLE 0x1000
1808#define TC_RA_ABLE 0x2000
1809#define TC_VA_ABLE 0x4000
1810#define TC_RESERVED 0x8000
1811#define TC_SCROLLBLT 0x00010000
1812
1813/* CLIPCAPS */
1814#define CP_NONE 0x0000
1815#define CP_RECTANGLE 0x0001
1816#define CP_REGION 0x0002
1817
1818/* RASTERCAPS */
1819#define RC_NONE 0x0000
1820#define RC_BITBLT 0x0001
1821#define RC_BANDING 0x0002
1822#define RC_SCALING 0x0004
1823#define RC_BITMAP64 0x0008
1824#define RC_GDI20_OUTPUT 0x0010
1825#define RC_GDI20_STATE 0x0020
1826#define RC_SAVEBITMAP 0x0040
1827#define RC_DI_BITMAP 0x0080
1828#define RC_PALETTE 0x0100
1829#define RC_DIBTODEV 0x0200
1830#define RC_BIGFONT 0x0400
1831#define RC_STRETCHBLT 0x0800
1832#define RC_FLOODFILL 0x1000
1833#define RC_STRETCHDIB 0x2000
1834#define RC_OP_DX_OUTPUT 0x4000
1835#define RC_DEVBITS 0x8000
1836
1837/* bird: these have moved in new header */
1838 /* GetSystemMetrics() codes */
1839#define SM_CXSCREEN 0
1840#define SM_CYSCREEN 1
1841#define SM_CXVSCROLL 2
1842#define SM_CYHSCROLL 3
1843#define SM_CYCAPTION 4
1844#define SM_CXBORDER 5
1845#define SM_CYBORDER 6
1846#define SM_CXDLGFRAME 7
1847#define SM_CYDLGFRAME 8
1848#define SM_CYVTHUMB 9
1849#define SM_CXHTHUMB 10
1850#define SM_CXICON 11
1851#define SM_CYICON 12
1852#define SM_CXCURSOR 13
1853#define SM_CYCURSOR 14
1854#define SM_CYMENU 15
1855#define SM_CXFULLSCREEN 16
1856#define SM_CYFULLSCREEN 17
1857#define SM_CYKANJIWINDOW 18
1858#define SM_MOUSEPRESENT 19
1859#define SM_CYVSCROLL 20
1860#define SM_CXHSCROLL 21
1861#define SM_DEBUG 22
1862#define SM_SWAPBUTTON 23
1863#define SM_RESERVED1 24
1864#define SM_RESERVED2 25
1865#define SM_RESERVED3 26
1866#define SM_RESERVED4 27
1867#define SM_CXMIN 28
1868#define SM_CYMIN 29
1869#define SM_CXSIZE 30
1870#define SM_CYSIZE 31
1871#define SM_CXFRAME 32
1872#define SM_CYFRAME 33
1873#define SM_CXMINTRACK 34
1874#define SM_CYMINTRACK 35
1875#define SM_CXDOUBLECLK 36
1876#define SM_CYDOUBLECLK 37
1877#define SM_CXICONSPACING 38
1878#define SM_CYICONSPACING 39
1879#define SM_MENUDROPALIGNMENT 40
1880#define SM_PENWINDOWS 41
1881#define SM_DBCSENABLED 42
1882#define SM_CMOUSEBUTTONS 43
1883#define SM_CXFIXEDFRAME SM_CXDLGFRAME
1884#define SM_CYFIXEDFRAME SM_CYDLGFRAME
1885#define SM_CXSIZEFRAME SM_CXFRAME
1886#define SM_CYSIZEFRAME SM_CYFRAME
1887#define SM_SECURE 44
1888#define SM_CXEDGE 45
1889#define SM_CYEDGE 46
1890#define SM_CXMINSPACING 47
1891#define SM_CYMINSPACING 48
1892#define SM_CXSMICON 49
1893#define SM_CYSMICON 50
1894#define SM_CYSMCAPTION 51
1895#define SM_CXSMSIZE 52
1896#define SM_CYSMSIZE 53
1897#define SM_CXMENUSIZE 54
1898#define SM_CYMENUSIZE 55
1899#define SM_ARRANGE 56
1900#define SM_CXMINIMIZED 57
1901#define SM_CYMINIMIZED 58
1902#define SM_CXMAXTRACK 59
1903#define SM_CYMAXTRACK 60
1904#define SM_CXMAXIMIZED 61
1905#define SM_CYMAXIMIZED 62
1906#define SM_NETWORK 63
1907#define SM_CLEANBOOT 67
1908#define SM_CXDRAG 68
1909#define SM_CYDRAG 69
1910#define SM_SHOWSOUNDS 70
1911#define SM_CXMENUCHECK 71
1912#define SM_CYMENUCHECK 72
1913#define SM_SLOWMACHINE 73
1914#define SM_MIDEASTENABLED 74
1915#define SM_MOUSEWHEELPRESENT 75
1916#define SM_XVIRTUALSCREEN 76
1917#define SM_YVIRTUALSCREEN 77
1918#define SM_CXVIRTUALSCREEN 78
1919#define SM_CYVIRTUALSCREEN 79
1920#define SM_CMONITORS 80
1921#define SM_SAMEDISPLAYFORMAT 81
1922#define SM_CMETRICS 83
1923
1924#define C1_TRANSPARENT 0x0001
1925#define TC_TT_ABLE 0x0002
1926#define C1_TT_CR_ANY 0x0004
1927#define C1_EMF_COMPLIANT 0x0008
1928#define C1_DIBENGINE 0x0010
1929#define C1_GAMMA_RAMP 0x0040
1930#define C1_REINIT_ABLE 0x0080
1931#define C1_GLYPH_INDEX 0x0100
1932#define C1_BIT_PACKED 0x0200
1933#define C1_BYTE_PACKED 0x0400
1934#define C1_COLORCURSOR 0x0800
1935#define C1_CMYK_ABLE 0x1000
1936#define C1_SLOW_CARD 0x2000
1937
1938 /* Device-independent bitmaps */
1939
1940typedef struct {
1941 BYTE rgbBlue;
1942 BYTE rgbGreen;
1943 BYTE rgbRed;
1944 BYTE rgbReserved;
1945} RGBQUAD, *LPRGBQUAD;
1946
1947typedef struct {
1948 BYTE rgbtBlue;
1949 BYTE rgbtGreen;
1950 BYTE rgbtRed;
1951} RGBTRIPLE;
1952
1953#include <pshpack2.h>
1954typedef struct
1955{
1956 WORD bfType;
1957 DWORD bfSize;
1958 WORD bfReserved1;
1959 WORD bfReserved2;
1960 DWORD bfOffBits;
1961} BITMAPFILEHEADER, *PBITMAPFILEHEADER, *LPBITMAPFILEHEADER;
1962#include <poppack.h>
1963
1964#define MAKEPOINTS(l) (*((POINTS *)&(l)))
1965
1966typedef struct
1967{
1968 DWORD biSize;
1969 LONG biWidth;
1970 LONG biHeight;
1971 WORD biPlanes;
1972 WORD biBitCount;
1973 DWORD biCompression;
1974 DWORD biSizeImage;
1975 LONG biXPelsPerMeter;
1976 LONG biYPelsPerMeter;
1977 DWORD biClrUsed;
1978 DWORD biClrImportant;
1979} BITMAPINFOHEADER, *PBITMAPINFOHEADER, *LPBITMAPINFOHEADER;
1980
1981typedef struct
1982{
1983 DWORD bV4Size;
1984 LONG bV4Width;
1985 LONG bV4Height;
1986 WORD bV4Planes;
1987 WORD bV4BitCount;
1988 DWORD bV4V4Compression;
1989 DWORD bV4SizeImage;
1990 LONG bV4XPelsPerMeter;
1991 LONG bV4YPelsPerMeter;
1992 DWORD bV4ClrUsed;
1993 DWORD bV4ClrImportant;
1994 DWORD bV4RedMask;
1995 DWORD bV4GreenMask;
1996 DWORD bV4BlueMask;
1997 DWORD bV4AlphaMask;
1998 DWORD bV4CSType;
1999 CIEXYZTRIPLE bV4Endpoints;
2000 DWORD bV4GammaRed;
2001 DWORD bV4GammaGreen;
2002 DWORD bV4GammaBlue;
2003} BITMAPV4HEADER, *PBITMAPV4HEADER;
2004
2005typedef struct {
2006 DWORD bV5Size;
2007 LONG bV5Width;
2008 LONG bV5Height;
2009 WORD bV5Planes;
2010 WORD bV5BitCount;
2011 DWORD bV5Compression;
2012 DWORD bV5SizeImage;
2013 LONG bV5XPelsPerMeter;
2014 LONG bV5YPelsPerMeter;
2015 DWORD bV5ClrUsed;
2016 DWORD bV5ClrImportant;
2017 DWORD bV5RedMask;
2018 DWORD bV5GreenMask;
2019 DWORD bV5BlueMask;
2020 DWORD bV5AlphaMask;
2021 DWORD bV5CSType;
2022 CIEXYZTRIPLE bV5Endpoints;
2023 DWORD bV5GammaRed;
2024 DWORD bV5GammaGreen;
2025 DWORD bV5GammaBlue;
2026 DWORD bV5Intent;
2027 DWORD bV5ProfileData;
2028 DWORD bV5ProfileSize;
2029 DWORD bV5Reserved;
2030} BITMAPV5HEADER, *LPBITMAPV5HEADER, *PBITMAPV5HEADER;
2031
2032#define PROFILE_LINKED 'LINK'
2033#define PROFILE_EMBEDDED 'MBED'
2034
2035
2036 /* biCompression */
2037#define BI_RGB 0
2038#define BI_RLE8 1
2039#define BI_RLE4 2
2040#define BI_BITFIELDS 3
2041
2042typedef struct {
2043 BITMAPINFOHEADER bmiHeader;
2044 RGBQUAD bmiColors[1];
2045} BITMAPINFO, *PBITMAPINFO, *LPBITMAPINFO;
2046
2047typedef struct
2048{
2049 DWORD bcSize;
2050 WORD bcWidth;
2051 WORD bcHeight;
2052 WORD bcPlanes;
2053 WORD bcBitCount;
2054} BITMAPCOREHEADER, *PBITMAPCOREHEADER, *LPBITMAPCOREHEADER;
2055
2056typedef struct
2057{
2058 BITMAPCOREHEADER bmciHeader;
2059 RGBTRIPLE bmciColors[1];
2060} BITMAPCOREINFO, *PBITMAPCOREINFO, *LPBITMAPCOREINFO;
2061
2062#define DIB_RGB_COLORS 0
2063#define DIB_PAL_COLORS 1
2064#define CBM_INIT 4
2065
2066typedef struct
2067{
2068 BITMAP dsBm;
2069 BITMAPINFOHEADER dsBmih;
2070 DWORD dsBitfields[3];
2071 HANDLE dshSection;
2072 DWORD dsOffset;
2073} DIBSECTION, *PDIBSECTION, *LPDIBSECTION;
2074
2075 /* Stock GDI objects for GetStockObject() */
2076
2077#define WHITE_BRUSH 0
2078#define LTGRAY_BRUSH 1
2079#define GRAY_BRUSH 2
2080#define DKGRAY_BRUSH 3
2081#define BLACK_BRUSH 4
2082#define NULL_BRUSH 5
2083#define HOLLOW_BRUSH 5
2084#define WHITE_PEN 6
2085#define BLACK_PEN 7
2086#define NULL_PEN 8
2087#define OEM_FIXED_FONT 10
2088#define ANSI_FIXED_FONT 11
2089#define ANSI_VAR_FONT 12
2090#define SYSTEM_FONT 13
2091#define DEVICE_DEFAULT_FONT 14
2092#define DEFAULT_PALETTE 15
2093#define SYSTEM_FIXED_FONT 16
2094#define DEFAULT_GUI_FONT 17
2095#define DC_BRUSH 18
2096#define DC_PEN 19
2097
2098#define STOCK_LAST 19
2099
2100#define CLR_INVALID 0xffffffff
2101/* Metafile header structure */
2102#include <pshpack2.h>
2103typedef struct
2104{
2105 WORD mtType;
2106 WORD mtHeaderSize;
2107 WORD mtVersion;
2108 DWORD mtSize;
2109 WORD mtNoObjects;
2110 DWORD mtMaxRecord;
2111 WORD mtNoParameters;
2112} METAHEADER, *PMETAHEADER, *LPMETAHEADER;
2113#include <poppack.h>
2114
2115/* Metafile typical record structure */
2116typedef struct
2117{
2118 DWORD rdSize;
2119 WORD rdFunction;
2120 WORD rdParm[1];
2121} METARECORD, *PMETARECORD, *LPMETARECORD;
2122
2123/* Handle table structure */
2124
2125typedef struct
2126{
2127 HGDIOBJ objectHandle[1];
2128} HANDLETABLE, *PHANDLETABLE, *LPHANDLETABLE;
2129
2130
2131/* Clipboard metafile picture structure */
2132typedef struct
2133{
2134 LONG mm;
2135 LONG xExt;
2136 LONG yExt;
2137 HMETAFILE hMF;
2138} METAFILEPICT, *LPMETAFILEPICT;
2139
2140
2141/* Metafile functions */
2142#define META_SETBKCOLOR 0x0201
2143#define META_SETBKMODE 0x0102
2144#define META_SETMAPMODE 0x0103
2145#define META_SETROP2 0x0104
2146#define META_SETRELABS 0x0105
2147#define META_SETPOLYFILLMODE 0x0106
2148#define META_SETSTRETCHBLTMODE 0x0107
2149#define META_SETTEXTCHAREXTRA 0x0108
2150#define META_SETTEXTCOLOR 0x0209
2151#define META_SETTEXTJUSTIFICATION 0x020A
2152#define META_SETWINDOWORG 0x020B
2153#define META_SETWINDOWEXT 0x020C
2154#define META_SETVIEWPORTORG 0x020D
2155#define META_SETVIEWPORTEXT 0x020E
2156#define META_OFFSETWINDOWORG 0x020F
2157#define META_SCALEWINDOWEXT 0x0410
2158#define META_OFFSETVIEWPORTORG 0x0211
2159#define META_SCALEVIEWPORTEXT 0x0412
2160#define META_LINETO 0x0213
2161#define META_MOVETO 0x0214
2162#define META_EXCLUDECLIPRECT 0x0415
2163#define META_INTERSECTCLIPRECT 0x0416
2164#define META_ARC 0x0817
2165#define META_ELLIPSE 0x0418
2166#define META_FLOODFILL 0x0419
2167#define META_PIE 0x081A
2168#define META_RECTANGLE 0x041B
2169#define META_ROUNDRECT 0x061C
2170#define META_PATBLT 0x061D
2171#define META_SAVEDC 0x001E
2172#define META_SETPIXEL 0x041F
2173#define META_OFFSETCLIPRGN 0x0220
2174#define META_TEXTOUT 0x0521
2175#define META_BITBLT 0x0922
2176#define META_STRETCHBLT 0x0B23
2177#define META_POLYGON 0x0324
2178#define META_POLYLINE 0x0325
2179#define META_ESCAPE 0x0626
2180#define META_RESTOREDC 0x0127
2181#define META_FILLREGION 0x0228
2182#define META_FRAMEREGION 0x0429
2183#define META_INVERTREGION 0x012A
2184#define META_PAINTREGION 0x012B
2185#define META_SELECTCLIPREGION 0x012C
2186#define META_SELECTOBJECT 0x012D
2187#define META_SETTEXTALIGN 0x012E
2188#define META_DRAWTEXT 0x062F
2189#define META_CHORD 0x0830
2190#define META_SETMAPPERFLAGS 0x0231
2191#define META_EXTTEXTOUT 0x0A32
2192#define META_SETDIBTODEV 0x0D33
2193#define META_SELECTPALETTE 0x0234
2194#define META_REALIZEPALETTE 0x0035
2195#define META_ANIMATEPALETTE 0x0436
2196#define META_SETPALENTRIES 0x0037
2197#define META_POLYPOLYGON 0x0538
2198#define META_RESIZEPALETTE 0x0139
2199#define META_DIBBITBLT 0x0940
2200#define META_DIBSTRETCHBLT 0x0B41
2201#define META_DIBCREATEPATTERNBRUSH 0x0142
2202#define META_STRETCHDIB 0x0F43
2203#define META_EXTFLOODFILL 0x0548
2204#define META_RESETDC 0x014C
2205#define META_STARTDOC 0x014D
2206#define META_STARTPAGE 0x004F
2207#define META_ENDPAGE 0x0050
2208#define META_ABORTDOC 0x0052
2209#define META_ENDDOC 0x005E
2210#define META_DELETEOBJECT 0x01F0
2211#define META_CREATEPALETTE 0x00F7
2212#define META_CREATEBRUSH 0x00F8
2213#define META_CREATEPATTERNBRUSH 0x01F9
2214#define META_CREATEPENINDIRECT 0x02FA
2215#define META_CREATEFONTINDIRECT 0x02FB
2216#define META_CREATEBRUSHINDIRECT 0x02FC
2217#define META_CREATEBITMAPINDIRECT 0x02FD
2218#define META_CREATEBITMAP 0x06FE
2219#define META_CREATEREGION 0x06FF
2220#define META_UNKNOWN 0x0529 /* FIXME: unknown meta magic */
2221
2222typedef INT (* CALLBACK MFENUMPROC)(HDC,HANDLETABLE*,METARECORD*,
2223 INT,LPARAM);
2224
2225/* enhanced metafile structures and functions */
2226
2227/* note that ENHMETAHEADER is just a particular kind of ENHMETARECORD,
2228 ie. the header is just the first record in the metafile */
2229typedef struct {
2230 DWORD iType;
2231 DWORD nSize;
2232 RECTL rclBounds;
2233 RECTL rclFrame;
2234 DWORD dSignature;
2235 DWORD nVersion;
2236 DWORD nBytes;
2237 DWORD nRecords;
2238 WORD nHandles;
2239 WORD sReserved;
2240 DWORD nDescription;
2241 DWORD offDescription;
2242 DWORD nPalEntries;
2243 SIZEL szlDevice;
2244 SIZEL szlMillimeters;
2245 DWORD cbPixelFormat;
2246 DWORD offPixelFormat;
2247 DWORD bOpenGL;
2248 SIZEL szlMicrometers;
2249} ENHMETAHEADER, *PENHMETAHEADER, *LPENHMETAHEADER;
2250
2251typedef struct {
2252 DWORD iType;
2253 DWORD nSize;
2254 DWORD dParm[1];
2255} ENHMETARECORD, *LPENHMETARECORD;
2256
2257typedef struct {
2258 DWORD iType;
2259 DWORD nSize;
2260} EMR, *PEMR;
2261
2262typedef struct {
2263 POINTL ptlReference;
2264 DWORD nChars;
2265 DWORD offString;
2266 DWORD fOptions;
2267 RECTL rcl;
2268 DWORD offDx;
2269} EMRTEXT, *PEMRTEXT;
2270
2271typedef struct {
2272 EMR emr;
2273} EMRABORTPATH, *PEMRABORTPATH,
2274 EMRBEGINPATH, *PEMRBEGINPATH,
2275 EMRENDPATH, *PEMRENDPATH,
2276 EMRCLOSEFIGURE, *PEMRCLOSEFIGURE,
2277 EMRFLATTENPATH, *PEMRFLATTENPATH,
2278 EMRWIDENPATH, *PEMRWIDENPATH,
2279 EMRSETMETARGN, *PEMRSETMETARGN,
2280 EMRSAVEDC, *PEMRSAVEDC,
2281 EMRREALIZEPALETTE, *PEMRREALIZEPALETTE;
2282
2283typedef struct {
2284 EMR emr;
2285 POINTL ptlCenter;
2286 DWORD nRadius;
2287 FLOAT eStartAngle;
2288 FLOAT eSweepAngle;
2289} EMRANGLEARC, *PEMRANGLEARC;
2290
2291typedef struct {
2292 EMR emr;
2293 RECTL rclBox;
2294 POINTL ptlStart;
2295 POINTL ptlEnd;
2296} EMRARC, *PEMRARC,
2297 EMRARCTO, *PEMRARCTO,
2298 EMRCHORD, *PEMRCHORD,
2299 EMRPIE, *PEMRPIE;
2300
2301typedef struct {
2302 EMR emr;
2303 RECTL rclBounds;
2304 LONG xDest;
2305 LONG yDest;
2306 LONG cxDest;
2307 LONG cyDest;
2308 DWORD dwRop;
2309 LONG xSrc;
2310 LONG ySrc;
2311 XFORM xformSrc;
2312 COLORREF crBkColorSrc;
2313 DWORD iUsageSrc;
2314 DWORD offBmiSrc;
2315 DWORD cbBmiSrc;
2316 DWORD offBitsSrc;
2317 DWORD cbBitsSrc;
2318} EMRBITBLT, *PEMRBITBLT;
2319
2320typedef struct {
2321 EMR emr;
2322 DWORD ihBrush;
2323 LOGBRUSH lb;
2324} EMRCREATEBRUSHINDIRECT, *PEMRCREATEBRUSHINDIRECT;
2325
2326typedef struct {
2327 EMR emr;
2328 DWORD ihCS;
2329 LOGCOLORSPACEA lcs;
2330} EMRCREATECOLORSPACE, *PEMRCREATECOLORSPACE;
2331
2332typedef struct {
2333 EMR emr;
2334 DWORD ihCS;
2335 LOGCOLORSPACEW lcs;
2336 DWORD dwFlags;
2337 DWORD cbData;
2338 BYTE Data[1];
2339} EMRCREATECOLORSPACEW, *PEMRCREATECOLORSPACEW;
2340
2341typedef struct {
2342 EMR emr;
2343 DWORD ihBrush;
2344 DWORD iUsage;
2345 DWORD offBmi;
2346 DWORD cbBmi;
2347 DWORD offBits;
2348 DWORD cbBits;
2349} EMRCREATEDIBPATTERNBRUSHPT, *PEMRCREATEDIBPATTERNBRUSHPT;
2350
2351typedef struct {
2352 EMR emr;
2353 DWORD ihBrush;
2354 DWORD iUsage;
2355 DWORD offBmi;
2356 DWORD cbBmi;
2357 DWORD offBits;
2358 DWORD cbBits;
2359} EMRCREATEMONOBRUSH, *PEMRCREATEMONOBRUSH;
2360
2361typedef struct {
2362 EMR emr;
2363 DWORD ihPal;
2364 LOGPALETTE lgpl;
2365} EMRCREATEPALETTE, *PEMRCREATEPALETTE;
2366
2367typedef struct {
2368 EMR emr;
2369 DWORD ihPen;
2370 LOGPEN lopn;
2371} EMRCREATEPEN, *PEMRCREATEPEN;
2372
2373typedef struct {
2374 EMR emr;
2375 DWORD ihCS;
2376} EMRDELETECOLORSPACE, *PEMRDELETECOLORSPACE,
2377 EMRSELECTCOLORSPACE, *PEMRSELECTCOLORSPACE,
2378 EMRSETCOLORSPACE, *PEMRSETCOLORSPACE;
2379
2380typedef struct {
2381 EMR emr;
2382 DWORD ihObject;
2383} EMRDELETEOBJECT, *PEMRDELETEOBJECT,
2384 EMRSELECTOBJECT, *PEMRSELECTOBJECT;
2385
2386typedef struct {
2387 EMR emr;
2388 RECTL rclBox;
2389} EMRELLIPSE, *PEMRELLIPSE,
2390 EMRRECTANGLE, *PEMRRECTANGLE;
2391
2392typedef struct {
2393 EMR emr;
2394 DWORD nPalEntries;
2395 DWORD offPalEntries;
2396 DWORD nSizeLast;
2397} EMREOF, *PEMREOF;
2398
2399typedef struct {
2400 EMR emr;
2401 RECTL rclClip;
2402} EMREXCLUDECLIPRECT, *PEMREXCLUDECLIPRECT,
2403 EMRINTERSECTCLIPRECT, *PEMRINTERSECTCLIPRECT;
2404
2405typedef struct {
2406 EMR emr;
2407 DWORD ihFont;
2408 EXTLOGFONTW elfw;
2409} EMREXTCREATEFONTINDIRECTW, *PEMREXTCREATEFONTINDIRECTW;
2410
2411typedef struct {
2412 EMR emr;
2413 DWORD ihPen;
2414 DWORD offBmi;
2415 DWORD cbBmi;
2416 DWORD offBits;
2417 DWORD cbBits;
2418 EXTLOGPEN elp;
2419} EMREXTCREATEPEN, *PEMREXTCREATEPEN;
2420
2421typedef struct {
2422 EMR emr;
2423 POINTL ptlStart;
2424 COLORREF crColor;
2425 DWORD iMode;
2426} EMREXTFLOODFILL, *PEMREXTFLOODFILL;
2427
2428typedef struct {
2429 EMR emr;
2430 DWORD cbRgnData;
2431 DWORD iMode;
2432 BYTE RgnData[1];
2433} EMREXTSELECTCLIPRGN, *PEMREXTSELECTCLIPRGN;
2434
2435typedef struct {
2436 EMR emr;
2437 RECTL rclBounds;
2438 DWORD iGraphicsMode;
2439 FLOAT exScale;
2440 FLOAT eyScale;
2441 EMRTEXT emrtext;
2442} EMREXTTEXTOUTA, *PEMREXTTEXTOUTA,
2443 EMREXTTEXTOUTW, *PEMREXTTEXTOUTW;
2444
2445typedef struct {
2446 EMR emr;
2447 RECTL rclBounds;
2448} EMRFILLPATH, *PEMRFILLPATH,
2449 EMRSTROKEANDFILLPATH, *PEMRSTROKEANDFILLPATH,
2450 EMRSTROKEPATH, *PEMRSTROKEPATH;
2451
2452typedef struct {
2453 EMR emr;
2454 RECTL rclBounds;
2455 DWORD cbRgnData;
2456 DWORD ihBrush;
2457 BYTE RgnData[1];
2458} EMRFILLRGN, *PEMRFILLRGN;
2459
2460typedef struct {
2461 DWORD dSignature;
2462 DWORD nVersion;
2463 DWORD cbData;
2464 DWORD offData;
2465} EMRFORMAT, *PEMRFORMAT;
2466
2467typedef struct {
2468 EMR emr;
2469 RECTL rclBounds;
2470 DWORD cbRgnData;
2471 DWORD ihBrush;
2472 SIZEL szlStroke;
2473 BYTE RgnData[1];
2474} EMRFRAMERGN, *PEMRFRAMERGN;
2475
2476typedef struct {
2477 EMR emr;
2478 DWORD cbData;
2479 BYTE Data[1];
2480} EMRGDICOMMENT, *PEMRGDICOMMENT;
2481
2482#if 0
2483typedef struct {
2484 EMR emr;
2485 RECTL rclBounds;
2486 DWORD nVer;
2487 DWORD nTri;
2488 ULONG ulMode;
2489 TRIVERTEX Ver[1];
2490} EMRGRADIENTFILL, *PEMRGRADIENTFILL;
2491#endif
2492
2493typedef struct {
2494 EMR emr;
2495 RECTL rclBounds;
2496 DWORD cbRgnData;
2497 BYTE RgnData[1];
2498} EMRINVERTRGN, *PEMRINVERTRGN,
2499 EMRPAINTRGN, *PEMRPAINTRGN;
2500
2501typedef struct {
2502 EMR emr;
2503 POINTL ptl;
2504} EMRLINETO, *PEMRLINETO,
2505 EMRMOVETOEX, *PEMRMOVETOEX;
2506
2507typedef struct {
2508 EMR emr;
2509 RECTL rclBounds;
2510 LONG xDest;
2511 LONG yDest;
2512 LONG cxDest;
2513 LONG cyDest;
2514 DWORD dwRop;
2515 LONG xSrc;
2516 LONG ySrc;
2517 XFORM xformSrc;
2518 COLORREF crBkColorSrc;
2519 DWORD iUsageSrc;
2520 DWORD offBmiSrc;
2521 DWORD cbBmiSrc;
2522 DWORD offBitsSrc;
2523 DWORD cbBitsSrc;
2524 LONG xMask;
2525 LONG yMask;
2526 DWORD iUsageMask;
2527 DWORD offBmiMask;
2528 DWORD cbBmiMask;
2529 DWORD offBitsMask;
2530 DWORD cbBitsMask;
2531} EMRMASKBLT, *PEMRMASKBLT;
2532
2533typedef struct {
2534 EMR emr;
2535 XFORM xform;
2536 DWORD iMode;
2537} EMRMODIFYWORLDTRANSFORM, *PEMRMODIFYWORLDTRANSFORM;
2538
2539typedef struct {
2540 EMR emr;
2541 POINTL ptlOffset;
2542} EMROFFSETCLIPRGN, *PEMROFFSETCLIPRGN;
2543
2544typedef struct {
2545 EMR emr;
2546 RECTL rclBounds;
2547 POINTL aptlDest[3];
2548 LONG xSrc;
2549 LONG ySrc;
2550 LONG cxSrc;
2551 LONG cySrc;
2552 XFORM xformSrc;
2553 COLORREF crBkColorSrc;
2554 DWORD iUsageSrc;
2555 DWORD offBmiSrc;
2556 DWORD cbBmiSrc;
2557 DWORD offBitsSrc;
2558 DWORD cbBitsSrc;
2559 LONG xMask;
2560 LONG yMask;
2561 DWORD iUsageMask;
2562 DWORD offBmiMask;
2563 DWORD cbBmiMask;
2564 DWORD offBitsMask;
2565 DWORD cbBitsMask;
2566} EMRPLGBLT, *PEMRPLGBLT;
2567
2568typedef struct {
2569 EMR emr;
2570 RECTL rclBounds;
2571 DWORD cptl;
2572 POINTL aptl[1];
2573} EMRPOLYLINE, *PEMRPOLYLINE,
2574 EMRPOLYBEZIER, *PEMRPOLYBEZIER,
2575 EMRPOLYGON, *PEMRPOLYGON,
2576 EMRPOLYBEZIERTO, *PEMRPOLYBEZIERTO,
2577 EMRPOLYLINETO, *PEMRPOLYLINETO;
2578
2579typedef struct {
2580 EMR emr;
2581 RECTL rclBounds;
2582 DWORD cptl;
2583 POINTL aptl[1];
2584 BYTE abTypes[1];
2585} EMRPOLYDRAW, *PEMRPOLYDRAW;
2586
2587typedef struct {
2588 EMR emr;
2589 RECTL rclBounds;
2590 DWORD nPolys;
2591 DWORD cptl;
2592 DWORD aPolyCounts[1];
2593 POINTL aptl[1];
2594} EMRPOLYPOLYLINE, *PEMRPOLYPOLYLINE,
2595 EMRPOLYPOLYGON, *PEMRPOLYPOLYGON;
2596
2597typedef struct {
2598 EMR emr;
2599 RECTL rclBounds;
2600 DWORD iGraphicsMode;
2601 FLOAT exScale;
2602 FLOAT eyScale;
2603 LONG cStrings;
2604 EMRTEXT aemrtext[1];
2605} EMRPOLYTEXTOUTA, *PEMRPOLYTEXTOUTA,
2606 EMRPOLYTEXTOUTW, *PEMRPOLYTEXTOUTW;
2607
2608typedef struct {
2609 EMR emr;
2610 DWORD ihPal;
2611 DWORD cEntries;
2612} EMRRESIZEPALETTE, *PEMRRESIZEPALETTE;
2613
2614typedef struct {
2615 EMR emr;
2616 LONG iRelative;
2617} EMRRESTOREDC, *PEMRRESTOREDC;
2618
2619typedef struct {
2620 EMR emr;
2621 RECTL rclBox;
2622 SIZEL szlCorner;
2623} EMRROUNDRECT, *PEMRROUNDRECT;
2624
2625typedef struct {
2626 EMR emr;
2627 LONG xNum;
2628 LONG xDenom;
2629 LONG yNum;
2630 LONG yDenom;
2631} EMRSCALEVIEWPORTEXTEX, *PEMRSCALEVIEWPORTEXTEX,
2632 EMRSCALEWINDOWEXTEX, *PEMRSCALEWINDOWEXTEX;
2633
2634typedef struct {
2635 EMR emr;
2636 DWORD iMode;
2637} EMRSELECTCLIPPATH, *PEMRSELECTCLIPPATH,
2638 EMRSETBKMODE, *PEMRSETBKMODE,
2639 EMRSETMAPMODE, *PEMRSETMAPMODE,
2640 EMRSETPOLYFILLMODE, *PEMRSETPOLYFILLMODE,
2641 EMRSETROP2, *PEMRSETROP2,
2642 EMRSETSTRETCHBLTMODE, *PEMRSETSTRETCHBLTMODE,
2643 EMRSETTEXTALIGN, *PEMRSETTEXTALIGN,
2644 EMRSETICMMODE, *PEMRSETICMMODE,
2645 EMRSETLAYOUT, *PEMRSETLAYOUT;
2646
2647typedef struct {
2648 EMR emr;
2649 DWORD ihPal;
2650} EMRSELECTPALETTE, *PEMRSELECTPALETTE;
2651
2652typedef struct {
2653 EMR emr;
2654 DWORD iArcDirection;
2655} EMRSETARCDIRECTION, *PEMRSETARCDIRECTION;
2656
2657typedef struct {
2658 EMR emr;
2659 COLORREF crColor;
2660} EMRSETBKCOLOR, *PEMRSETBKCOLOR,
2661 EMRSETTEXTCOLOR, *PEMRSETTEXTCOLOR;
2662
2663typedef struct {
2664 EMR emr;
2665 POINTL ptlOrigin;
2666} EMRSETBRUSHORGEX, *PEMRSETBRUSHORGEX,
2667 EMRSETVIEWPORTORGEX, *PEMRSETVIEWPORTORGEX,
2668 EMRSETWINDOWORGEX, *PEMRSETWINDOWORGEX;
2669
2670typedef struct {
2671 EMR emr;
2672 COLORADJUSTMENT ColorAdjustment;
2673} EMRSETCOLORADJUSTMENT, *PEMRSETCOLORADJUSTMENT;
2674
2675typedef struct {
2676 EMR emr;
2677 RECTL rclBounds;
2678 LONG xDest;
2679 LONG yDest;
2680 LONG xSrc;
2681 LONG ySrc;
2682 LONG cxSrc;
2683 LONG cySrc;
2684 DWORD offBmiSrc;
2685 DWORD cbBmiSrc;
2686 DWORD offBitsSrc;
2687 DWORD cbBitsSrc;
2688 DWORD iUsageSrc;
2689 DWORD iStartScan;
2690 DWORD cScans;
2691} EMRSETDIBITSTODEVICE, *PEMRSETDIBITSTODEVICE;
2692
2693typedef struct {
2694 EMR emr;
2695 DWORD dwFlags;
2696} EMRSETMAPPERFLAGS, *PEMRSETMAPPERFLAGS;
2697
2698typedef struct {
2699 EMR emr;
2700 FLOAT eMiterLimit;
2701} EMRSETMITERLIMIT, *PEMRSETMITERLIMIT;
2702
2703typedef struct {
2704 EMR emr;
2705 DWORD ihPal;
2706 DWORD iStart;
2707 DWORD cEntries;
2708 PALETTEENTRY aPalEntries[1];
2709} EMRSETPALETTEENTRIES, *PEMRSETPALETTEENTRIES;
2710
2711typedef struct {
2712 EMR emr;
2713 POINTL ptlPixel;
2714 COLORREF crColor;
2715} EMRSETPIXELV, *PEMRSETPIXELV;
2716
2717typedef struct {
2718 EMR emr;
2719 SIZEL szlExtent;
2720} EMRSETVIEWPORTEXTEX, *PEMRSETVIEWPORTEXTEX,
2721 EMRSETWINDOWEXTEX, *PEMRSETWINDOWEXTEX;
2722
2723typedef struct {
2724 EMR emr;
2725 XFORM xform;
2726} EMRSETWORLDTRANSFORM, *PEMRSETWORLDTRANSFORM;
2727
2728typedef struct {
2729 EMR emr;
2730 RECTL rclBounds;
2731 LONG xDest;
2732 LONG yDest;
2733 LONG cxDest;
2734 LONG cyDest;
2735 DWORD dwRop;
2736 LONG xSrc;
2737 LONG ySrc;
2738 XFORM xformSrc;
2739 COLORREF crBkColorSrc;
2740 DWORD iUsageSrc;
2741 DWORD offBmiSrc;
2742 DWORD cbBmiSrc;
2743 DWORD offBitsSrc;
2744 DWORD cbBitsSrc;
2745 LONG cxSrc;
2746 LONG cySrc;
2747} EMRSTRETCHBLT, *PEMRSTRETCHBLT;
2748
2749typedef struct {
2750 EMR emr;
2751 RECTL rclBounds;
2752 LONG xDest;
2753 LONG yDest;
2754 LONG xSrc;
2755 LONG ySrc;
2756 LONG cxSrc;
2757 LONG cySrc;
2758 DWORD offBmiSrc;
2759 DWORD cbBmiSrc;
2760 DWORD offBitsSrc;
2761 DWORD cbBitsSrc;
2762 DWORD iUsageSrc;
2763 DWORD dwRop;
2764 LONG cxDest;
2765 LONG cyDest;
2766} EMRSTRETCHDIBITS, *PEMRSTRETCHDIBITS;
2767
2768typedef struct {
2769 EMR emr;
2770 PIXELFORMATDESCRIPTOR pfd;
2771} EMRPIXELFORMAT, *PEMRPIXELFORMAT;
2772
2773typedef struct tagEMRGLSRECORD {
2774 EMR emr;
2775 DWORD cbData;
2776 BYTE Data[1];
2777} EMRGLSRECORD, *PEMRGLSRECORD;
2778
2779typedef struct {
2780 EMR emr;
2781 RECTL rclBounds;
2782 DWORD cbData;
2783 BYTE Data[1];
2784} EMRGLSBOUNDEDRECORD, *PEMRGLSBOUNDEDRECORD;
2785
2786typedef struct {
2787 EMR emr;
2788 INT nBreakExtra;
2789 INT nBreakCount;
2790} EMRSETTEXTJUSTIFICATION, *PEMRSETTEXTJUSTIFICATION;
2791
2792typedef INT (* CALLBACK ENHMFENUMPROC)(HDC, LPHANDLETABLE,
2793 LPENHMETARECORD, INT, LPVOID);
2794
2795#define EMR_HEADER 1
2796#define EMR_POLYBEZIER 2
2797#define EMR_POLYGON 3
2798#define EMR_POLYLINE 4
2799#define EMR_POLYBEZIERTO 5
2800#define EMR_POLYLINETO 6
2801#define EMR_POLYPOLYLINE 7
2802#define EMR_POLYPOLYGON 8
2803#define EMR_SETWINDOWEXTEX 9
2804#define EMR_SETWINDOWORGEX 10
2805#define EMR_SETVIEWPORTEXTEX 11
2806#define EMR_SETVIEWPORTORGEX 12
2807#define EMR_SETBRUSHORGEX 13
2808#define EMR_EOF 14
2809#define EMR_SETPIXELV 15
2810#define EMR_SETMAPPERFLAGS 16
2811#define EMR_SETMAPMODE 17
2812#define EMR_SETBKMODE 18
2813#define EMR_SETPOLYFILLMODE 19
2814#define EMR_SETROP2 20
2815#define EMR_SETSTRETCHBLTMODE 21
2816#define EMR_SETTEXTALIGN 22
2817#define EMR_SETCOLORADJUSTMENT 23
2818#define EMR_SETTEXTCOLOR 24
2819#define EMR_SETBKCOLOR 25
2820#define EMR_OFFSETCLIPRGN 26
2821#define EMR_MOVETOEX 27
2822#define EMR_SETMETARGN 28
2823#define EMR_EXCLUDECLIPRECT 29
2824#define EMR_INTERSECTCLIPRECT 30
2825#define EMR_SCALEVIEWPORTEXTEX 31
2826#define EMR_SCALEWINDOWEXTEX 32
2827#define EMR_SAVEDC 33
2828#define EMR_RESTOREDC 34
2829#define EMR_SETWORLDTRANSFORM 35
2830#define EMR_MODIFYWORLDTRANSFORM 36
2831#define EMR_SELECTOBJECT 37
2832#define EMR_CREATEPEN 38
2833#define EMR_CREATEBRUSHINDIRECT 39
2834#define EMR_DELETEOBJECT 40
2835#define EMR_ANGLEARC 41
2836#define EMR_ELLIPSE 42
2837#define EMR_RECTANGLE 43
2838#define EMR_ROUNDRECT 44
2839#define EMR_ARC 45
2840#define EMR_CHORD 46
2841#define EMR_PIE 47
2842#define EMR_SELECTPALETTE 48
2843#define EMR_CREATEPALETTE 49
2844#define EMR_SETPALETTEENTRIES 50
2845#define EMR_RESIZEPALETTE 51
2846#define EMR_REALIZEPALETTE 52
2847#define EMR_EXTFLOODFILL 53
2848#define EMR_LINETO 54
2849#define EMR_ARCTO 55
2850#define EMR_POLYDRAW 56
2851#define EMR_SETARCDIRECTION 57
2852#define EMR_SETMITERLIMIT 58
2853#define EMR_BEGINPATH 59
2854#define EMR_ENDPATH 60
2855#define EMR_CLOSEFIGURE 61
2856#define EMR_FILLPATH 62
2857#define EMR_STROKEANDFILLPATH 63
2858#define EMR_STROKEPATH 64
2859#define EMR_FLATTENPATH 65
2860#define EMR_WIDENPATH 66
2861#define EMR_SELECTCLIPPATH 67
2862#define EMR_ABORTPATH 68
2863#define EMR_GDICOMMENT 70
2864#define EMR_FILLRGN 71
2865#define EMR_FRAMERGN 72
2866#define EMR_INVERTRGN 73
2867#define EMR_PAINTRGN 74
2868#define EMR_EXTSELECTCLIPRGN 75
2869#define EMR_BITBLT 76
2870#define EMR_STRETCHBLT 77
2871#define EMR_MASKBLT 78
2872#define EMR_PLGBLT 79
2873#define EMR_SETDIBITSTODEVICE 80
2874#define EMR_STRETCHDIBITS 81
2875#define EMR_EXTCREATEFONTINDIRECTW 82
2876#define EMR_EXTTEXTOUTA 83
2877#define EMR_EXTTEXTOUTW 84
2878#define EMR_POLYBEZIER16 85
2879#define EMR_POLYGON16 86
2880#define EMR_POLYLINE16 87
2881#define EMR_POLYBEZIERTO16 88
2882#define EMR_POLYLINETO16 89
2883#define EMR_POLYPOLYLINE16 90
2884#define EMR_POLYPOLYGON16 91
2885#define EMR_POLYDRAW16 92
2886#define EMR_CREATEMONOBRUSH 93
2887#define EMR_CREATEDIBPATTERNBRUSHPT 94
2888#define EMR_EXTCREATEPEN 95
2889#define EMR_POLYTEXTOUTA 96
2890#define EMR_POLYTEXTOUTW 97
2891#define EMR_SETICMMODE 98
2892#define EMR_CREATECOLORSPACE 99
2893#define EMR_SETCOLORSPACE 100
2894#define EMR_DELETECOLORSPACE 101
2895#define EMR_GLSRECORD 102
2896#define EMR_GLSBOUNDEDRECORD 103
2897#define EMR_PIXELFORMAT 104
2898#define EMR_DRAWESCAPE 105
2899#define EMR_EXTESCAPE 106
2900#define EMR_STARTDOC 107
2901#define EMR_SMALLTEXTOUT 108
2902#define EMR_FORCEUFIMAPPING 109
2903#define EMR_NAMEDESCAPE 110
2904#define EMR_COLORCORRECTPALETTE 111
2905#define EMR_SETICMPROFILEA 112
2906#define EMR_SETICMPROFILEW 113
2907#define EMR_ALPHABLEND 114
2908#define EMR_SETLAYOUT 115
2909#define EMR_TRANSPARENTBLT 116
2910#define EMR_RESERVED_117 117
2911#define EMR_GRADIENTFILL 118
2912#define EMR_SETLINKEDUFI 119
2913#define EMR_SETTEXTJUSTIFICATION 120
2914#define EMR_COLORMATCHTOTARGETW 121
2915#define EMR_CREATECOLORSPACEW 122
2916
2917#define EMR_MIN 1
2918#define EMR_MAX 122
2919
2920#define ENHMETA_SIGNATURE 1179469088
2921#define ENHMETA_STOCK_OBJECT 0x80000000
2922
2923#define GDICOMMENT_IDENTIFIER 0x43494447
2924#define GDICOMMENT_WINDOWS_METAFILE 0x80000001
2925#define GDICOMMENT_BEGINGROUP 0x00000002
2926#define GDICOMMENT_ENDGROUP 0x00000003
2927#define GDICOMMENT_MULTIFORMATS 0x40000004
2928#define GDICOMMENT_UNICODE_STRING 0x00000040
2929#define GDICOMMENT_UNICODE_END 0x00000080
2930#define EPS_SIGNATURE 0x46535045
2931
2932#define CCHDEVICENAME 32
2933#define CCHFORMNAME 32
2934
2935typedef struct
2936{
2937 BYTE dmDeviceName[CCHDEVICENAME];
2938 WORD dmSpecVersion;
2939 WORD dmDriverVersion;
2940 WORD dmSize;
2941 WORD dmDriverExtra;
2942 DWORD dmFields;
2943 union {
2944 struct {
2945 short dmOrientation;
2946 short dmPaperSize;
2947 short dmPaperLength;
2948 short dmPaperWidth;
2949 } DUMMYSTRUCTNAME1;
2950 POINTL dmPosition;
2951 } DUMMYUNIONNAME1;
2952 short dmScale;
2953 short dmCopies;
2954 short dmDefaultSource;
2955 short dmPrintQuality;
2956 short dmColor;
2957 short dmDuplex;
2958 short dmYResolution;
2959 short dmTTOption;
2960 short dmCollate;
2961 BYTE dmFormName[CCHFORMNAME];
2962 WORD dmLogPixels;
2963 DWORD dmBitsPerPel;
2964 DWORD dmPelsWidth;
2965 DWORD dmPelsHeight;
2966 DWORD dmDisplayFlags;
2967 DWORD dmDisplayFrequency;
2968 DWORD dmICMMethod;
2969 DWORD dmICMIntent;
2970 DWORD dmMediaType;
2971 DWORD dmDitherType;
2972 DWORD dmReserved1;
2973 DWORD dmReserved2;
2974 DWORD dmPanningWidth;
2975 DWORD dmPanningHeight;
2976} DEVMODEA, *PDEVMODEA, *LPDEVMODEA;
2977
2978typedef struct
2979{
2980 WCHAR dmDeviceName[CCHDEVICENAME];
2981 WORD dmSpecVersion;
2982 WORD dmDriverVersion;
2983 WORD dmSize;
2984 WORD dmDriverExtra;
2985 DWORD dmFields;
2986 union {
2987 struct {
2988 short dmOrientation;
2989 short dmPaperSize;
2990 short dmPaperLength;
2991 short dmPaperWidth;
2992 } DUMMYSTRUCTNAME1;
2993 POINTL dmPosition;
2994 } DUMMYUNIONNAME1;
2995 short dmScale;
2996 short dmCopies;
2997 short dmDefaultSource;
2998 short dmPrintQuality;
2999 short dmColor;
3000 short dmDuplex;
3001 short dmYResolution;
3002 short dmTTOption;
3003 short dmCollate;
3004 WCHAR dmFormName[CCHFORMNAME];
3005 WORD dmLogPixels;
3006 DWORD dmBitsPerPel;
3007 DWORD dmPelsWidth;
3008 DWORD dmPelsHeight;
3009 DWORD dmDisplayFlags;
3010 DWORD dmDisplayFrequency;
3011 DWORD dmICMMethod;
3012 DWORD dmICMIntent;
3013 DWORD dmMediaType;
3014 DWORD dmDitherType;
3015 DWORD dmReserved1;
3016 DWORD dmReserved2;
3017 DWORD dmPanningWidth;
3018 DWORD dmPanningHeight;
3019} DEVMODEW, *PDEVMODEW, *LPDEVMODEW;
3020
3021DECL_WINELIB_TYPE_AW(DEVMODE)
3022DECL_WINELIB_TYPE_AW(PDEVMODE)
3023DECL_WINELIB_TYPE_AW(LPDEVMODE)
3024
3025#define DM_SPECVERSION 0x401
3026#define DM_UPDATE 1
3027#define DM_COPY 2
3028#define DM_PROMPT 4
3029#define DM_MODIFY 8
3030
3031#define DM_IN_BUFFER DM_MODIFY
3032#define DM_IN_PROMPT DM_PROMPT
3033#define DM_OUT_BUFFER DM_COPY
3034#define DM_OUT_DEFAULT DM_UPDATE
3035
3036#define DM_ORIENTATION 0x00000001L
3037#define DM_PAPERSIZE 0x00000002L
3038#define DM_PAPERLENGTH 0x00000004L
3039#define DM_PAPERWIDTH 0x00000008L
3040#define DM_SCALE 0x00000010L
3041#define DM_POSITION 0x00000020L
3042#define DM_COPIES 0x00000100L
3043#define DM_DEFAULTSOURCE 0x00000200L
3044#define DM_PRINTQUALITY 0x00000400L
3045#define DM_COLOR 0x00000800L
3046#define DM_DUPLEX 0x00001000L
3047#define DM_YRESOLUTION 0x00002000L
3048#define DM_TTOPTION 0x00004000L
3049#define DM_COLLATE 0x00008000L
3050#define DM_FORMNAME 0x00010000L
3051#define DM_LOGPIXELS 0x00020000L
3052#define DM_BITSPERPEL 0x00040000L
3053#define DM_PELSWIDTH 0x00080000L
3054#define DM_PELSHEIGHT 0x00100000L
3055#define DM_DISPLAYFLAGS 0x00200000L
3056#define DM_DISPLAYFREQUENCY 0x00400000L
3057#define DM_ICMMETHOD 0x00800000L
3058#define DM_ICMINTENT 0x01000000L
3059#define DM_MEDIATYPE 0x02000000L
3060#define DM_DITHERTYPE 0x04000000L
3061#define DM_PANNINGWIDTH 0x08000000L
3062#define DM_PANNINGHEIGHT 0x10000000L
3063
3064#define DMORIENT_PORTRAIT 1
3065#define DMORIENT_LANDSCAPE 2
3066
3067#define DMPAPER_FIRST DMPAPER_LETTER
3068#define DMPAPER_LETTER 1
3069#define DMPAPER_LETTERSMALL 2
3070#define DMPAPER_TABLOID 3
3071#define DMPAPER_LEDGER 4
3072#define DMPAPER_LEGAL 5
3073#define DMPAPER_STATEMENT 6
3074#define DMPAPER_EXECUTIVE 7
3075#define DMPAPER_A3 8
3076#define DMPAPER_A4 9
3077#define DMPAPER_A4SMALL 10
3078#define DMPAPER_A5 11
3079#define DMPAPER_B4 12
3080#define DMPAPER_B5 13
3081#define DMPAPER_FOLIO 14
3082#define DMPAPER_QUARTO 15
3083#define DMPAPER_10X14 16
3084#define DMPAPER_11X17 17
3085#define DMPAPER_NOTE 18
3086#define DMPAPER_ENV_9 19
3087#define DMPAPER_ENV_10 20
3088#define DMPAPER_ENV_11 21
3089#define DMPAPER_ENV_12 22
3090#define DMPAPER_ENV_14 23
3091#define DMPAPER_CSHEET 24
3092#define DMPAPER_DSHEET 25
3093#define DMPAPER_ESHEET 26
3094#define DMPAPER_ENV_DL 27
3095#define DMPAPER_ENV_C5 28
3096#define DMPAPER_ENV_C3 29
3097#define DMPAPER_ENV_C4 30
3098#define DMPAPER_ENV_C6 31
3099#define DMPAPER_ENV_C65 32
3100#define DMPAPER_ENV_B4 33
3101#define DMPAPER_ENV_B5 34
3102#define DMPAPER_ENV_B6 35
3103#define DMPAPER_ENV_ITALY 36
3104#define DMPAPER_ENV_MONARCH 37
3105#define DMPAPER_ENV_PERSONAL 38
3106#define DMPAPER_FANFOLD_US 39
3107#define DMPAPER_FANFOLD_STD_GERMAN 40
3108#define DMPAPER_FANFOLD_LGL_GERMAN 41
3109#define DMPAPER_ISO_B4 42
3110#define DMPAPER_JAPANESE_POSTCARD 43
3111#define DMPAPER_9X11 44
3112#define DMPAPER_10X11 45
3113#define DMPAPER_15X11 46
3114#define DMPAPER_ENV_INVITE 47
3115#define DMPAPER_RESERVED_48 48
3116#define DMPAPER_RESERVED_49 49
3117#define DMPAPER_LETTER_EXTRA 50
3118#define DMPAPER_LEGAL_EXTRA 51
3119#define DMPAPER_TABLOID_EXTRA 52
3120#define DMPAPER_A4_EXTRA 53
3121#define DMPAPER_LETTER_TRANSVERSE 54
3122#define DMPAPER_A4_TRANSVERSE 55
3123#define DMPAPER_LETTER_EXTRA_TRANSVERSE 56
3124#define DMPAPER_A_PLUS 57
3125#define DMPAPER_B_PLUS 58
3126#define DMPAPER_LETTER_PLUS 59
3127#define DMPAPER_A4_PLUS 60
3128#define DMPAPER_A5_TRANSVERSE 61
3129#define DMPAPER_B5_TRANSVERSE 62
3130#define DMPAPER_A3_EXTRA 63
3131#define DMPAPER_A5_EXTRA 64
3132#define DMPAPER_B5_EXTRA 65
3133#define DMPAPER_A2 66
3134#define DMPAPER_A3_TRANSVERSE 67
3135#define DMPAPER_A3_EXTRA_TRANSVERSE 68
3136#define DMPAPER_DBL_JAPANESE_POSTCARD 69
3137#define DMPAPER_A6 70
3138#define DMPAPER_JENV_KAKU2 71
3139#define DMPAPER_JENV_KAKU3 72
3140#define DMPAPER_JENV_CHOU3 73
3141#define DMPAPER_JENV_CHOU4 74
3142#define DMPAPER_LETTER_ROTATED 75
3143#define DMPAPER_A3_ROTATED 76
3144#define DMPAPER_A4_ROTATED 77
3145#define DMPAPER_A5_ROTATED 78
3146#define DMPAPER_B4_JIS_ROTATED 79
3147#define DMPAPER_B5_JIS_ROTATED 80
3148#define DMPAPER_JAPANESE_POSTCARD_ROTATED 81
3149#define DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED 82
3150#define DMPAPER_A6_ROTATED 83
3151#define DMPAPER_JENV_KAKU2_ROTATED 84
3152#define DMPAPER_JENV_KAKU3_ROTATED 85
3153#define DMPAPER_JENV_CHOU3_ROTATED 86
3154#define DMPAPER_JENV_CHOU4_ROTATED 87
3155#define DMPAPER_B6_JIS 88
3156#define DMPAPER_B6_JIS_ROTATED 89
3157#define DMPAPER_12X11 90
3158#define DMPAPER_JENV_YOU4 91
3159#define DMPAPER_JENV_YOU4_ROTATED 92
3160#define DMPAPER_P16K 93
3161#define DMPAPER_P32K 94
3162#define DMPAPER_P32KBIG 95
3163#define DMPAPER_PENV_1 96
3164#define DMPAPER_PENV_2 97
3165#define DMPAPER_PENV_3 98
3166#define DMPAPER_PENV_4 99
3167#define DMPAPER_PENV_5 100
3168#define DMPAPER_PENV_6 101
3169#define DMPAPER_PENV_7 102
3170#define DMPAPER_PENV_8 103
3171#define DMPAPER_PENV_9 104
3172#define DMPAPER_PENV_10 105
3173#define DMPAPER_P16K_ROTATED 106
3174#define DMPAPER_P32K_ROTATED 107
3175#define DMPAPER_P32KBIG_ROTATED 108
3176#define DMPAPER_PENV_1_ROTATED 109
3177#define DMPAPER_PENV_2_ROTATED 110
3178#define DMPAPER_PENV_3_ROTATED 111
3179#define DMPAPER_PENV_4_ROTATED 112
3180#define DMPAPER_PENV_5_ROTATED 113
3181#define DMPAPER_PENV_6_ROTATED 114
3182#define DMPAPER_PENV_7_ROTATED 115
3183#define DMPAPER_PENV_8_ROTATED 116
3184#define DMPAPER_PENV_9_ROTATED 117
3185#define DMPAPER_PENV_10_ROTATED 118
3186
3187#define DMPAPER_LAST DMPAPER_PENV_10_ROTATED
3188#define DMPAPER_USER 256
3189
3190#define DMBIN_FIRST DMBIN_UPPER
3191#define DMBIN_UPPER 1
3192#define DMBIN_ONLYONE 1
3193#define DMBIN_LOWER 2
3194#define DMBIN_MIDDLE 3
3195#define DMBIN_MANUAL 4
3196#define DMBIN_ENVELOPE 5
3197#define DMBIN_ENVMANUAL 6
3198#define DMBIN_AUTO 7
3199#define DMBIN_TRACTOR 8
3200#define DMBIN_SMALLFMT 9
3201#define DMBIN_LARGEFMT 10
3202#define DMBIN_LARGECAPACITY 11
3203#define DMBIN_CASSETTE 14
3204#define DMBIN_FORMSOURCE 15
3205#define DMBIN_LAST DMBIN_FORMSOURCE
3206#define DMBIN_USER 256
3207
3208#define DMRES_DRAFT (-1)
3209#define DMRES_LOW (-2)
3210#define DMRES_MEDIUM (-3)
3211#define DMRES_HIGH (-4)
3212
3213#define DMCOLOR_MONOCHROME 1
3214#define DMCOLOR_COLOR 2
3215
3216#define DMDUP_SIMPLEX 1
3217#define DMDUP_VERTICAL 2
3218#define DMDUP_HORIZONTAL 3
3219
3220#define DMTT_BITMAP 1
3221#define DMTT_DOWNLOAD 2
3222#define DMTT_SUBDEV 3
3223#define DMTT_DOWNLOAD_OUTLINE 4
3224
3225#define DMCOLLATE_FALSE 0
3226#define DMCOLLATE_TRUE 1
3227
3228#define DMICMMETHOD_NONE 1
3229#define DMICMMETHOD_SYSTEM 2
3230#define DMICMMETHOD_DRIVER 3
3231#define DMICMMETHOD_DEVICE 4
3232#define DMICMMETHOD_USER 256
3233
3234#define DMICM_SATURATE 1
3235#define DMICM_CONTRAST 2
3236#define DMICM_COLORMETRIC 3
3237#define DMICM_USER 256
3238
3239#define DMMEDIA_STANDARD 1
3240#define DMMEDIA_TRANSPARENCY 2
3241#define DMMEDIA_GLOSSY 3
3242#define DMMEDIA_USER 256
3243
3244#define DMDITHER_NONE 1
3245#define DMDITHER_COARSE 2
3246#define DMDITHER_FINE 3
3247#define DMDITHER_LINEART 4
3248#define DMDITHER_GRAYSCALE 5
3249#define DMDITHER_USER 256
3250
3251typedef struct
3252{
3253 INT cbSize;
3254 LPCSTR lpszDocName;
3255 LPCSTR lpszOutput;
3256 LPCSTR lpszDatatype;
3257 DWORD fwType;
3258} DOCINFOA, *LPDOCINFOA;
3259
3260typedef struct
3261{
3262 INT cbSize;
3263 LPCWSTR lpszDocName;
3264 LPCWSTR lpszOutput;
3265 LPCWSTR lpszDatatype;
3266 DWORD fwType;
3267} DOCINFOW, *LPDOCINFOW;
3268
3269DECL_WINELIB_TYPE_AW(DOCINFO)
3270DECL_WINELIB_TYPE_AW(LPDOCINFO)
3271
3272#define DI_APPBANDING 0x0001
3273
3274/* Flags for PolyDraw and GetPath */
3275#define PT_CLOSEFIGURE 0x0001
3276#define PT_LINETO 0x0002
3277#define PT_BEZIERTO 0x0004
3278#define PT_MOVETO 0x0006
3279
3280#define RDH_RECTANGLES 1
3281
3282typedef struct _RGNDATAHEADER {
3283 DWORD dwSize;
3284 DWORD iType;
3285 DWORD nCount;
3286 DWORD nRgnSize;
3287 RECT rcBound;
3288} RGNDATAHEADER,*PRGNDATAHEADER;
3289
3290typedef struct _RGNDATA {
3291 RGNDATAHEADER rdh;
3292 char Buffer[1];
3293} RGNDATA,*PRGNDATA,*LPRGNDATA;
3294
3295typedef BOOL (* CALLBACK ABORTPROC)(HDC, INT);
3296
3297typedef struct {
3298 DWORD cb;
3299 CHAR DeviceName[32];
3300 CHAR DeviceString[128];
3301 DWORD StateFlags;
3302 CHAR DeviceID[128];
3303 CHAR DeviceKey[128];
3304} DISPLAY_DEVICEA,*PDISPLAY_DEVICEA,*LPDISPLAY_DEVICEA;
3305
3306typedef struct {
3307 DWORD cb;
3308 WCHAR DeviceName[32];
3309 WCHAR DeviceString[128];
3310 DWORD StateFlags;
3311 WCHAR DeviceID[128];
3312 WCHAR DeviceKey[128];
3313} DISPLAY_DEVICEW,*PDISPLAY_DEVICEW,*LPDISPLAY_DEVICEW;
3314DECL_WINELIB_TYPE_AW(DISPLAY_DEVICE)
3315DECL_WINELIB_TYPE_AW(PDISPLAY_DEVICE)
3316DECL_WINELIB_TYPE_AW(LPDISPLAY_DEVICE)
3317
3318/* DISPLAY_DEVICE.StateFlags (?)*/
3319#define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP 0x00000001
3320#define DISPLAY_DEVICE_MULTI_DRIVER 0x00000002
3321#define DISPLAY_DEVICE_PRIMARY_DEVICE 0x00000004
3322#define DISPLAY_DEVICE_MIRRORING_DRIVER 0x00000008
3323#define DISPLAY_DEVICE_VGA_COMPATIBLE 0x00000010
3324
3325typedef USHORT COLOR16;
3326
3327typedef struct _TRIVERTEX
3328{
3329 LONG x;
3330 LONG y;
3331 COLOR16 Red;
3332 COLOR16 Green;
3333 COLOR16 Blue;
3334 COLOR16 Alpha;
3335} TRIVERTEX, *PTRIVERTEX, *LPTRIVERTEX;
3336
3337typedef struct _GRADIENT_TRIANGLE
3338{
3339 ULONG Vertex1;
3340 ULONG Vertex2;
3341 ULONG Vertex3;
3342} GRADIENT_TRIANGLE, *PGRADIENT_TRIANGLE, *LPGRADIENT_TRIANGLE;
3343
3344typedef struct _GRADIENT_RECT
3345{
3346 ULONG UpperLeft;
3347 ULONG LowerRight;
3348} GRADIENT_RECT, *PGRADIENT_RECT, *LPGRADIENT_RECT;
3349
3350/* bird: these are missing - start */
3351typedef struct _POINTFLOAT {
3352 FLOAT x;
3353 FLOAT y;
3354} POINTFLOAT, *PPOINTFLOAT;
3355
3356typedef struct _GLYPHMETRICSFLOAT {
3357 FLOAT gmfBlackBoxX;
3358 FLOAT gmfBlackBoxY;
3359 POINTFLOAT gmfptGlyphOrigin;
3360 FLOAT gmfCellIncX;
3361 FLOAT gmfCellIncY;
3362} GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, *LPGLYPHMETRICSFLOAT;
3363/* bird: these are missing - end */
3364
3365typedef struct _BLENDFUNCTION
3366{
3367 BYTE BlendOp;
3368 BYTE BlendFlags;
3369 BYTE SourceConstantAlpha;
3370 BYTE AlphaFormat;
3371} BLENDFUNCTION, *PBLENDFUNCTION;
3372
3373#define GRADIENT_FILL_RECT_H 0x00000000
3374#define GRADIENT_FILL_RECT_V 0x00000001
3375#define GRADIENT_FILL_TRIANGLE 0x00000002
3376#define GRADIENT_FILL_OP_FLAG 0x000000ff
3377
3378#ifndef __WIN32OS2__ /* bird: winerror.h defines these */
3379#define GDI_ERROR (0xFFFFFFFFL)
3380#define HGDI_ERROR ((HANDLE)0xFFFFFFFFL)
3381#endif
3382
3383/* bird: more mess - start */
3384#define WGL_FONT_LINES 0
3385#define WGL_FONT_POLYGONS 1
3386
3387// Layer plane descriptor
3388typedef struct tagLAYERPLANEDESCRIPTOR {
3389 WORD nSize;
3390 WORD nVersion;
3391 DWORD dwFlags;
3392 BYTE iPixelType;
3393 BYTE cColorBits;
3394 BYTE cRedBits;
3395 BYTE cRedShift;
3396 BYTE cGreenBits;
3397 BYTE cGreenShift;
3398 BYTE cBlueBits;
3399 BYTE cBlueShift;
3400 BYTE cAlphaBits;
3401 BYTE cAlphaShift;
3402 BYTE cAccumBits;
3403 BYTE cAccumRedBits;
3404 BYTE cAccumGreenBits;
3405 BYTE cAccumBlueBits;
3406 BYTE cAccumAlphaBits;
3407 BYTE cDepthBits;
3408 BYTE cStencilBits;
3409 BYTE cAuxBuffers;
3410 BYTE iLayerPlane;
3411 BYTE bReserved;
3412 COLORREF crTransparent;
3413} LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, *LPLAYERPLANEDESCRIPTOR;
3414
3415// LAYERPLANEDESCRIPTOR flags
3416#define LPD_DOUBLEBUFFER 0x00000001
3417#define LPD_STEREO 0x00000002
3418#define LPD_SUPPORT_GDI 0x00000010
3419#define LPD_SUPPORT_OPENGL 0x00000020
3420#define LPD_SHARE_DEPTH 0x00000040
3421#define LPD_SHARE_STENCIL 0x00000080
3422#define LPD_SHARE_ACCUM 0x00000100
3423#define LPD_SWAP_EXCHANGE 0x00000200
3424#define LPD_SWAP_COPY 0x00000400
3425#define LPD_TRANSPARENT 0x00001000
3426
3427#define LPD_TYPE_RGBA 0
3428#define LPD_TYPE_COLORINDEX 1
3429
3430/* bird: more mess - end */
3431
3432/* AddFontResourceEx flags */
3433#define FR_PRIVATE 0x10
3434#define FR_NOT_ENUM 0x20
3435
3436
3437INT WINAPI AbortDoc(HDC);
3438BOOL WINAPI AbortPath(HDC);
3439INT WINAPI AddFontResourceA(LPCSTR);
3440INT WINAPI AddFontResourceW(LPCWSTR);
3441#define AddFontResource WINELIB_NAME_AW(AddFontResource)
3442INT WINAPI AddFontResourceExA(LPCSTR, DWORD, PVOID);
3443INT WINAPI AddFontResourceExW(LPCWSTR, DWORD, PVOID);
3444#define AddFontResourceEx WINELIB_NAME_AW(AddFontResourceEx)
3445BOOL WINAPI AlphaBlend(HDC,int,int,int,int,HDC,int,int,int,int,BLENDFUNCTION);
3446BOOL WINAPI AngleArc(HDC, INT, INT, DWORD, FLOAT, FLOAT);
3447BOOL WINAPI AnimatePalette(HPALETTE,UINT,UINT,const PALETTEENTRY*);
3448BOOL WINAPI Arc(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
3449BOOL WINAPI ArcTo(HDC, INT, INT, INT, INT, INT, INT, INT, INT);
3450BOOL WINAPI BeginPath(HDC);
3451BOOL WINAPI BitBlt(HDC,INT,INT,INT,INT,HDC,INT,INT,DWORD);
3452INT WINAPI ChoosePixelFormat(HDC,const LPPIXELFORMATDESCRIPTOR);
3453BOOL WINAPI Chord(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
3454HENHMETAFILE WINAPI CloseEnhMetaFile(HDC);
3455BOOL WINAPI CloseFigure(HDC);
3456HMETAFILE WINAPI CloseMetaFile(HDC);
3457INT WINAPI CombineRgn(HRGN,HRGN,HRGN,INT);
3458BOOL WINAPI CombineTransform(LPXFORM,const XFORM *,const XFORM *);
3459HENHMETAFILE WINAPI CopyEnhMetaFileA(HENHMETAFILE,LPCSTR);
3460HENHMETAFILE WINAPI CopyEnhMetaFileW(HENHMETAFILE,LPCWSTR);
3461#define CopyEnhMetaFile WINELIB_NAME_AW(CopyEnhMetaFile)
3462HMETAFILE WINAPI CopyMetaFileA(HMETAFILE,LPCSTR);
3463HMETAFILE WINAPI CopyMetaFileW(HMETAFILE,LPCWSTR);
3464#define CopyMetaFile WINELIB_NAME_AW(CopyMetaFile)
3465HBITMAP WINAPI CreateBitmap(INT,INT,UINT,UINT,LPCVOID);
3466HBITMAP WINAPI CreateBitmapIndirect(const BITMAP*);
3467HBRUSH WINAPI CreateBrushIndirect(const LOGBRUSH*);
3468HCOLORSPACE WINAPI CreateColorSpaceA(LPLOGCOLORSPACEA);
3469HCOLORSPACE WINAPI CreateColorSpaceW(LPLOGCOLORSPACEW);
3470#define CreateColorSpace WINELIB_NAME_AW(CreateColorSpace)
3471HBITMAP WINAPI CreateCompatibleBitmap(HDC,INT,INT);
3472HDC WINAPI CreateCompatibleDC(HDC);
3473HDC WINAPI CreateDCA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
3474HDC WINAPI CreateDCW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*);
3475#define CreateDC WINELIB_NAME_AW(CreateDC)
3476HBITMAP WINAPI CreateDIBitmap(HDC,const BITMAPINFOHEADER*,DWORD,
3477 LPCVOID,const BITMAPINFO*,UINT);
3478HBRUSH WINAPI CreateDIBPatternBrush(HGLOBAL,UINT);
3479HBRUSH WINAPI CreateDIBPatternBrushPt(const void*,UINT);
3480HBITMAP WINAPI CreateDIBSection (HDC, BITMAPINFO *, UINT,
3481 LPVOID *, HANDLE, DWORD offset);
3482HBITMAP WINAPI CreateDiscardableBitmap(HDC,INT,INT);
3483HRGN WINAPI CreateEllipticRgn(INT,INT,INT,INT);
3484HRGN WINAPI CreateEllipticRgnIndirect(const RECT *);
3485HDC WINAPI CreateEnhMetaFileA(HDC,LPCSTR,const RECT*,LPCSTR);
3486HDC WINAPI CreateEnhMetaFileW(HDC,LPCWSTR,const RECT*,LPCWSTR);
3487#define CreateEnhMetaFile WINELIB_NAME_AW(CreateEnhMetaFile)
3488HFONT WINAPI CreateFontA(INT,INT,INT,INT,INT,DWORD,DWORD,
3489 DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCSTR);
3490HFONT WINAPI CreateFontW(INT,INT,INT,INT,INT,DWORD,DWORD,
3491 DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCWSTR);
3492#define CreateFont WINELIB_NAME_AW(CreateFont)
3493HFONT WINAPI CreateFontIndirectA(const LOGFONTA*);
3494HFONT WINAPI CreateFontIndirectW(const LOGFONTW*);
3495#define CreateFontIndirect WINELIB_NAME_AW(CreateFontIndirect)
3496HPALETTE WINAPI CreateHalftonePalette(HDC);
3497HBRUSH WINAPI CreateHatchBrush(INT,COLORREF);
3498HDC WINAPI CreateICA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
3499HDC WINAPI CreateICW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*);
3500#define CreateIC WINELIB_NAME_AW(CreateIC)
3501HDC WINAPI CreateMetaFileA(LPCSTR);
3502HDC WINAPI CreateMetaFileW(LPCWSTR);
3503#define CreateMetaFile WINELIB_NAME_AW(CreateMetaFile)
3504HPALETTE WINAPI CreatePalette(const LOGPALETTE*);
3505HBRUSH WINAPI CreatePatternBrush(HBITMAP);
3506HPEN WINAPI CreatePen(INT,INT,COLORREF);
3507HPEN WINAPI CreatePenIndirect(const LOGPEN*);
3508HRGN WINAPI CreatePolyPolygonRgn(const POINT*,const INT*,INT,INT);
3509HRGN WINAPI CreatePolygonRgn(const POINT*,INT,INT);
3510HRGN WINAPI CreateRectRgn(INT,INT,INT,INT);
3511HRGN WINAPI CreateRectRgnIndirect(const RECT*);
3512HRGN WINAPI CreateRoundRectRgn(INT,INT,INT,INT,INT,INT);
3513BOOL WINAPI CreateScalableFontResourceA(DWORD,LPCSTR,LPCSTR,LPCSTR);
3514BOOL WINAPI CreateScalableFontResourceW(DWORD,LPCWSTR,LPCWSTR,LPCWSTR);
3515#define CreateScalableFontResource WINELIB_NAME_AW(CreateScalableFontResource)
3516HBRUSH WINAPI CreateSolidBrush(COLORREF);
3517BOOL WINAPI DPtoLP(HDC,LPPOINT,INT);
3518BOOL WINAPI DeleteColorSpace(HCOLORSPACE);
3519BOOL WINAPI DeleteDC(HDC);
3520BOOL WINAPI DeleteEnhMetaFile(HENHMETAFILE);
3521BOOL WINAPI DeleteMetaFile(HMETAFILE);
3522BOOL WINAPI DeleteObject(HGDIOBJ);
3523INT WINAPI DescribePixelFormat(HDC,int,UINT,
3524 LPPIXELFORMATDESCRIPTOR);
3525INT WINAPI DrawEscape(HDC,INT,INT,LPCSTR);
3526BOOL WINAPI Ellipse(HDC,INT,INT,INT,INT);
3527INT WINAPI EndDoc(HDC);
3528BOOL WINAPI EndPath(HDC);
3529BOOL WINAPI EnumEnhMetaFile(HDC,HENHMETAFILE,ENHMFENUMPROC,LPVOID,const RECT*);
3530INT WINAPI EnumFontFamiliesA(HDC,LPCSTR,FONTENUMPROCA,LPARAM);
3531INT WINAPI EnumFontFamiliesW(HDC,LPCWSTR,FONTENUMPROCW,LPARAM);
3532#define EnumFontFamilies WINELIB_NAME_AW(EnumFontFamilies)
3533INT WINAPI EnumFontFamiliesExA(HDC,LPLOGFONTA,FONTENUMPROCA,LPARAM,DWORD);
3534INT WINAPI EnumFontFamiliesExW(HDC,LPLOGFONTW,FONTENUMPROCW,LPARAM,DWORD);
3535#define EnumFontFamiliesEx WINELIB_NAME_AW(EnumFontFamiliesEx)
3536INT WINAPI EnumFontsA(HDC,LPCSTR,FONTENUMPROCA,LPARAM);
3537INT WINAPI EnumFontsW(HDC,LPCWSTR,FONTENUMPROCW,LPARAM);
3538#define EnumFonts WINELIB_NAME_AW(EnumFonts)
3539INT WINAPI EnumICMProfilesA(HDC,ICMENUMPROCA,LPARAM);
3540INT WINAPI EnumICMProfilesW(HDC,ICMENUMPROCW,LPARAM);
3541#define EnumICMProfiles WINELIB_NAME_AW(EnumICMProfiles)
3542BOOL WINAPI EnumMetaFile(HDC,HMETAFILE,MFENUMPROC,LPARAM);
3543INT WINAPI EnumObjects(HDC,INT,GOBJENUMPROC,LPARAM);
3544BOOL WINAPI EqualRgn(HRGN,HRGN);
3545INT WINAPI Escape(HDC,INT,INT,LPCSTR,LPVOID);
3546INT WINAPI ExcludeClipRect(HDC,INT,INT,INT,INT);
3547HPEN WINAPI ExtCreatePen(DWORD,DWORD,const LOGBRUSH*,DWORD,const DWORD*);
3548HRGN WINAPI ExtCreateRegion(const XFORM*,DWORD,const RGNDATA*);
3549INT WINAPI ExtEscape(HDC,INT,INT,LPCSTR,INT,LPSTR);
3550BOOL WINAPI ExtFloodFill(HDC,INT,INT,COLORREF,UINT);
3551INT WINAPI ExtSelectClipRgn(HDC,HRGN,INT);
3552BOOL WINAPI ExtTextOutA(HDC,INT,INT,UINT,const RECT*,
3553 LPCSTR,UINT,const INT*);
3554BOOL WINAPI ExtTextOutW(HDC,INT,INT,UINT,const RECT*,
3555 LPCWSTR,UINT,const INT*);
3556#define ExtTextOut WINELIB_NAME_AW(ExtTextOut)
3557BOOL WINAPI FillPath(HDC);
3558BOOL WINAPI FillRgn(HDC,HRGN,HBRUSH);
3559BOOL WINAPI FixBrushOrgEx(HDC,INT,INT,LPPOINT);
3560BOOL WINAPI FlattenPath(HDC);
3561BOOL WINAPI FloodFill(HDC,INT,INT,COLORREF);
3562BOOL WINAPI FrameRgn(HDC,HRGN,HBRUSH,INT,INT);
3563BOOL WINAPI GdiComment(HDC,UINT,const BYTE *);
3564DEVMODEW * WINAPI GdiConvertToDevmodeW(const DEVMODEA *);
3565BOOL WINAPI GdiFlush(void);
3566INT WINAPI GetArcDirection(HDC);
3567BOOL WINAPI GetAspectRatioFilterEx(HDC,LPSIZE);
3568LONG WINAPI GetBitmapBits(HBITMAP,LONG,LPVOID);
3569BOOL WINAPI GetBitmapDimensionEx(HBITMAP,LPSIZE);
3570BOOL WINAPI GetBrushOrgEx(HDC,LPPOINT);
3571COLORREF WINAPI GetBkColor(HDC);
3572INT WINAPI GetBkMode(HDC);
3573UINT WINAPI GetBoundsRect(HDC,LPRECT,UINT);
3574BOOL WINAPI GetCharABCWidthsA(HDC,UINT,UINT,LPABC);
3575BOOL WINAPI GetCharABCWidthsW(HDC,UINT,UINT,LPABC);
3576#define GetCharABCWidths WINELIB_NAME_AW(GetCharABCWidths)
3577BOOL WINAPI GetCharABCWidthsFloatA(HDC,UINT,UINT,LPABCFLOAT);
3578BOOL WINAPI GetCharABCWidthsFloatW(HDC,UINT,UINT,LPABCFLOAT);
3579#define GetCharABCWidthsFloat WINELIB_NAME_AW(GetCharABCWidthsFloat)
3580DWORD WINAPI GetCharacterPlacementA(HDC,LPCSTR,INT,INT,GCP_RESULTSA*,DWORD);
3581DWORD WINAPI GetCharacterPlacementW(HDC,LPCWSTR,INT,INT,GCP_RESULTSW*,DWORD);
3582#define GetCharacterPlacement WINELIB_NAME_AW(GetCharacterPlacement)
3583BOOL WINAPI GetCharWidth32A(HDC,UINT,UINT,LPINT);
3584BOOL WINAPI GetCharWidth32W(HDC,UINT,UINT,LPINT);
3585#define GetCharWidth32 WINELIB_NAME_AW(GetCharWidth32)
3586BOOL WINAPI GetCharWidthA(HDC,UINT,UINT,LPINT);
3587BOOL WINAPI GetCharWidthW(HDC,UINT,UINT,LPINT);
3588#define GetCharWidth WINELIB_NAME_AW(GetCharWidth)
3589BOOL WINAPI GetCharWidthFloatA(HDC,UINT,UINT,PFLOAT);
3590BOOL WINAPI GetCharWidthFloatW(HDC,UINT,UINT,PFLOAT);
3591#define GetCharWidthFloat WINELIB_NAME_AW(GetCharWidthFloat)
3592INT WINAPI GetClipBox(HDC,LPRECT);
3593INT WINAPI GetClipRgn(HDC,HRGN);
3594BOOL WINAPI GetColorAdjustment(HDC, LPCOLORADJUSTMENT);
3595HANDLE WINAPI GetCurrentObject(HDC,UINT);
3596BOOL WINAPI GetCurrentPositionEx(HDC,LPPOINT);
3597INT WINAPI GetDeviceCaps(HDC,INT);
3598BOOL WINAPI GetDeviceGammaRamp(HDC,LPVOID);
3599COLORREF WINAPI GetDCBrushColor(HDC);
3600BOOL WINAPI GetDCOrgEx(HDC,LPPOINT);
3601COLORREF WINAPI GetDCPenColor(HDC);
3602UINT WINAPI GetDIBColorTable(HDC,UINT,UINT,RGBQUAD*);
3603INT WINAPI GetDIBits(HDC,HBITMAP,UINT,UINT,LPVOID,LPBITMAPINFO,UINT);
3604HENHMETAFILE WINAPI GetEnhMetaFileA(LPCSTR);
3605HENHMETAFILE WINAPI GetEnhMetaFileW(LPCWSTR);
3606#define GetEnhMetaFile WINELIB_NAME_AW(GetEnhMetaFile)
3607UINT WINAPI GetEnhMetaFileBits(HENHMETAFILE,UINT,LPBYTE);
3608UINT WINAPI GetEnhMetaFileDescriptionA(HENHMETAFILE,UINT,LPSTR);
3609UINT WINAPI GetEnhMetaFileDescriptionW(HENHMETAFILE,UINT,LPWSTR);
3610#define GetEnhMetaFileDescription WINELIB_NAME_AW(GetEnhMetaFileDescription)
3611UINT WINAPI GetEnhMetaFileHeader(HENHMETAFILE,UINT,LPENHMETAHEADER);
3612UINT WINAPI GetEnhMetaFilePaletteEntries(HENHMETAFILE,UINT,LPPALETTEENTRY);
3613DWORD WINAPI GetFontData(HDC,DWORD,DWORD,LPVOID,DWORD);
3614DWORD WINAPI GetFontLanguageInfo(HDC);
3615DWORD WINAPI GetGlyphIndicesA(HDC,LPCSTR,INT,LPWORD,DWORD);
3616DWORD WINAPI GetGlyphIndicesW(HDC,LPCWSTR,INT,LPWORD,DWORD);
3617#define GetGlyphIndices WINELIB_NAME_AW(GetGlyphIndices)
3618DWORD WINAPI GetGlyphOutlineA(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,LPVOID,const MAT2*);
3619DWORD WINAPI GetGlyphOutlineW(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,LPVOID,const MAT2*);
3620#define GetGlyphOutline WINELIB_NAME_AW(GetGlyphOutline)
3621INT WINAPI GetGraphicsMode(HDC);
3622DWORD WINAPI GetKerningPairsA(HDC,DWORD,LPKERNINGPAIR);
3623DWORD WINAPI GetKerningPairsW(HDC,DWORD,LPKERNINGPAIR);
3624#define GetKerningPairs WINELIB_NAME_AW(GetKerningPairs)
3625DWORD WINAPI GetLayout(HDC);
3626BOOL WINAPI GetLogColorSpaceA(HCOLORSPACE,LPLOGCOLORSPACEA,DWORD);
3627BOOL WINAPI GetLogColorSpaceW(HCOLORSPACE,LPLOGCOLORSPACEW,DWORD);
3628#define GetLogColorSpace WINELIB_NAME_AW(GetLogColorSpace)
3629INT WINAPI GetMapMode(HDC);
3630HMETAFILE WINAPI GetMetaFileA(LPCSTR);
3631HMETAFILE WINAPI GetMetaFileW(LPCWSTR);
3632#define GetMetaFile WINELIB_NAME_AW(GetMetaFile)
3633UINT WINAPI GetMetaFileBitsEx(HMETAFILE,UINT,LPVOID);
3634INT WINAPI GetMetaRgn(HDC,HRGN);
3635BOOL WINAPI GetMiterLimit(HDC, PFLOAT);
3636DWORD WINAPI GetNearestColor(HDC,DWORD);
3637UINT WINAPI GetNearestPaletteIndex(HPALETTE,COLORREF);
3638INT WINAPI GetObjectA(HANDLE,INT,LPVOID);
3639INT WINAPI GetObjectW(HANDLE,INT,LPVOID);
3640#define GetObject WINELIB_NAME_AW(GetObject)
3641DWORD WINAPI GetObjectType(HANDLE);
3642UINT WINAPI GetOutlineTextMetricsA(HDC,UINT,LPOUTLINETEXTMETRICA);
3643UINT WINAPI GetOutlineTextMetricsW(HDC,UINT,LPOUTLINETEXTMETRICW);
3644#define GetOutlineTextMetrics WINELIB_NAME_AW(GetOutlineTextMetrics)
3645UINT WINAPI GetPaletteEntries(HPALETTE,UINT,UINT,LPPALETTEENTRY);
3646INT WINAPI GetPath(HDC,LPPOINT,LPBYTE,INT);
3647COLORREF WINAPI GetPixel(HDC,INT,INT);
3648INT WINAPI GetPixelFormat(HDC);
3649INT WINAPI GetPolyFillMode(HDC);
3650BOOL WINAPI GetRasterizerCaps(LPRASTERIZER_STATUS,UINT);
3651DWORD WINAPI GetRegionData(HRGN,DWORD,LPRGNDATA);
3652INT WINAPI GetRelAbs(HDC,DWORD);
3653INT WINAPI GetRgnBox(HRGN,LPRECT);
3654INT WINAPI GetROP2(HDC);
3655HGDIOBJ WINAPI GetStockObject(INT);
3656INT WINAPI GetStretchBltMode(HDC);
3657UINT WINAPI GetSystemPaletteEntries(HDC,UINT,UINT,LPPALETTEENTRY);
3658UINT WINAPI GetSystemPaletteUse(HDC);
3659UINT WINAPI GetTextAlign(HDC);
3660INT WINAPI GetTextCharacterExtra(HDC);
3661UINT WINAPI GetTextCharset(HDC);
3662UINT WINAPI GetTextCharsetInfo(HDC,LPFONTSIGNATURE,DWORD);
3663COLORREF WINAPI GetTextColor(HDC);
3664BOOL WINAPI GetTextExtentExPointA(HDC,LPCSTR,INT,INT,
3665 LPINT,LPINT,LPSIZE);
3666BOOL WINAPI GetTextExtentExPointW(HDC,LPCWSTR,INT,INT,
3667 LPINT,LPINT,LPSIZE);
3668#define GetTextExtentExPoint WINELIB_NAME_AW(GetTextExtentExPoint)
3669BOOL WINAPI GetTextExtentPointA(HDC,LPCSTR,INT,LPSIZE);
3670BOOL WINAPI GetTextExtentPointW(HDC,LPCWSTR,INT,LPSIZE);
3671#define GetTextExtentPoint WINELIB_NAME_AW(GetTextExtentPoint)
3672BOOL WINAPI GetTextExtentPoint32A(HDC,LPCSTR,INT,LPSIZE);
3673BOOL WINAPI GetTextExtentPoint32W(HDC,LPCWSTR,INT,LPSIZE);
3674#define GetTextExtentPoint32 WINELIB_NAME_AW(GetTextExtentPoint32)
3675BOOL WINAPI GetTextExtentExPointI(HDC,const WORD*,INT,INT,LPINT,LPINT,LPSIZE);
3676BOOL WINAPI GetTextExtentPointI(HDC,const WORD*,INT,LPSIZE);
3677INT WINAPI GetTextFaceA(HDC,INT,LPSTR);
3678INT WINAPI GetTextFaceW(HDC,INT,LPWSTR);
3679#define GetTextFace WINELIB_NAME_AW(GetTextFace)
3680BOOL WINAPI GetTextMetricsA(HDC,LPTEXTMETRICA);
3681BOOL WINAPI GetTextMetricsW(HDC,LPTEXTMETRICW);
3682#define GetTextMetrics WINELIB_NAME_AW(GetTextMetrics)
3683BOOL WINAPI GetViewportExtEx(HDC,LPSIZE);
3684BOOL WINAPI GetViewportOrgEx(HDC,LPPOINT);
3685BOOL WINAPI GetWindowExtEx(HDC,LPSIZE);
3686BOOL WINAPI GetWindowOrgEx(HDC,LPPOINT);
3687UINT WINAPI GetWinMetaFileBits(HENHMETAFILE,UINT,LPBYTE,INT,HDC);
3688BOOL WINAPI GetWorldTransform(HDC,LPXFORM);
3689BOOL WINAPI GradientFill(HDC,PTRIVERTEX,ULONG,PVOID,ULONG,ULONG);
3690INT WINAPI IntersectClipRect(HDC,INT,INT,INT,INT);
3691BOOL WINAPI InvertRgn(HDC,HRGN);
3692BOOL WINAPI LineDDA(INT,INT,INT,INT,LINEDDAPROC,LPARAM);
3693BOOL WINAPI LineTo(HDC,INT,INT);
3694BOOL WINAPI LPtoDP(HDC,LPPOINT,INT);
3695BOOL WINAPI MaskBlt(HDC,INT,INT,INT,INT,HDC,INT,INT,HBITMAP,INT,INT,DWORD);
3696BOOL WINAPI ModifyWorldTransform(HDC,const XFORM *, DWORD);
3697BOOL WINAPI MoveToEx(HDC,INT,INT,LPPOINT);
3698/* FIXME This is defined in kernel32.spec !?*/
3699INT WINAPI MulDiv(INT,INT,INT);
3700INT WINAPI OffsetClipRgn(HDC,INT,INT);
3701INT WINAPI OffsetRgn(HRGN,INT,INT);
3702BOOL WINAPI OffsetViewportOrgEx(HDC,INT,INT,LPPOINT);
3703BOOL WINAPI OffsetWindowOrgEx(HDC,INT,INT,LPPOINT);
3704BOOL WINAPI PaintRgn(HDC,HRGN);
3705BOOL WINAPI PatBlt(HDC,INT,INT,INT,INT,DWORD);
3706HRGN WINAPI PathToRegion(HDC);
3707BOOL WINAPI Pie(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
3708BOOL WINAPI PlayEnhMetaFile(HDC,HENHMETAFILE,const RECT*);
3709BOOL WINAPI PlayEnhMetaFileRecord(HDC,LPHANDLETABLE,const ENHMETARECORD*,UINT);
3710BOOL WINAPI PlayMetaFile(HDC,HMETAFILE);
3711BOOL WINAPI PlayMetaFileRecord(HDC,LPHANDLETABLE,LPMETARECORD,UINT);
3712BOOL WINAPI PlgBlt(HDC,const POINT*,HDC,INT,INT,INT,INT,HBITMAP,INT,INT);
3713BOOL WINAPI PolyBezier(HDC,const POINT*,DWORD);
3714BOOL WINAPI PolyBezierTo(HDC,const POINT*,DWORD);
3715BOOL WINAPI PolyDraw(HDC,const POINT*,const BYTE*,DWORD);
3716BOOL WINAPI PolyPolygon(HDC,const POINT*,const INT*,UINT);
3717BOOL WINAPI PolyPolyline(HDC,const POINT*,const DWORD*,DWORD);
3718BOOL WINAPI Polygon(HDC,const POINT*,INT);
3719BOOL WINAPI Polyline(HDC,const POINT*,INT);
3720BOOL WINAPI PolylineTo(HDC,const POINT*,DWORD);
3721BOOL WINAPI PtInRegion(HRGN,INT,INT);
3722BOOL WINAPI PtVisible(HDC,INT,INT);
3723UINT WINAPI RealizePalette(HDC);
3724BOOL WINAPI Rectangle(HDC,INT,INT,INT,INT);
3725BOOL WINAPI RectInRegion(HRGN,const RECT *);
3726BOOL WINAPI RectVisible(HDC,const RECT*);
3727BOOL WINAPI RemoveFontResourceA(LPCSTR);
3728BOOL WINAPI RemoveFontResourceW(LPCWSTR);
3729#define RemoveFontResource WINELIB_NAME_AW(RemoveFontResource)
3730BOOL WINAPI RemoveFontResourceExA(LPCSTR, DWORD, PVOID);
3731BOOL WINAPI RemoveFontResourceExW(LPCWSTR, DWORD, PVOID);
3732#define RemoveFontResourceEx WINELIB_NAME_AW(RemoveFontResourceEx)
3733HDC WINAPI ResetDCA(HDC,const DEVMODEA *);
3734HDC WINAPI ResetDCW(HDC,const DEVMODEW *);
3735#define ResetDC WINELIB_NAME_AW(ResetDC)
3736BOOL WINAPI ResizePalette(HPALETTE,UINT);
3737BOOL WINAPI RestoreDC(HDC,INT);
3738BOOL WINAPI RoundRect(HDC,INT,INT,INT,INT,INT,INT);
3739INT WINAPI SaveDC(HDC);
3740BOOL WINAPI ScaleViewportExtEx(HDC,INT,INT,INT,INT,LPSIZE);
3741BOOL WINAPI ScaleWindowExtEx(HDC,INT,INT,INT,INT,LPSIZE);
3742BOOL WINAPI SelectClipPath(HDC,INT);
3743INT WINAPI SelectClipRgn(HDC,HRGN);
3744HGDIOBJ WINAPI SelectObject(HDC,HGDIOBJ);
3745HPALETTE WINAPI SelectPalette(HDC,HPALETTE,BOOL);
3746INT WINAPI SetAbortProc(HDC,ABORTPROC);
3747INT WINAPI SetArcDirection(HDC,INT);
3748LONG WINAPI SetBitmapBits(HBITMAP,LONG,LPCVOID);
3749BOOL WINAPI SetBitmapDimensionEx(HBITMAP,INT,INT,LPSIZE);
3750COLORREF WINAPI SetBkColor(HDC,COLORREF);
3751INT WINAPI SetBkMode(HDC,INT);
3752UINT WINAPI SetBoundsRect(HDC,const RECT*,UINT);
3753BOOL WINAPI SetBrushOrgEx(HDC,INT,INT,LPPOINT);
3754BOOL WINAPI SetColorAdjustment(HDC,const COLORADJUSTMENT*);
3755HCOLORSPACE WINAPI SetColorSpace(HDC,HCOLORSPACE);
3756BOOL WINAPI SetDeviceGammaRamp(HDC,LPVOID);
3757COLORREF WINAPI SetDCBrushColor(HDC,COLORREF);
3758COLORREF WINAPI SetDCPenColor(HDC, COLORREF);
3759UINT WINAPI SetDIBColorTable(HDC,UINT,UINT,RGBQUAD*);
3760INT WINAPI SetDIBits(HDC,HBITMAP,UINT,UINT,LPCVOID,const BITMAPINFO*,UINT);
3761INT WINAPI SetDIBitsToDevice(HDC,INT,INT,DWORD,DWORD,INT,
3762 INT,UINT,UINT,LPCVOID,const BITMAPINFO*,UINT);
3763HENHMETAFILE WINAPI SetEnhMetaFileBits(UINT,const BYTE *);
3764INT WINAPI SetGraphicsMode(HDC,INT);
3765INT WINAPI SetICMMode(HDC,INT);
3766DWORD WINAPI SetLayout(HDC,DWORD);
3767INT WINAPI SetMapMode(HDC,INT);
3768DWORD WINAPI SetMapperFlags(HDC,DWORD);
3769HMETAFILE WINAPI SetMetaFileBitsEx(UINT,const BYTE*);
3770INT WINAPI SetMetaRgn(HDC);
3771BOOL WINAPI SetMiterLimit(HDC, FLOAT, PFLOAT);
3772UINT WINAPI SetPaletteEntries(HPALETTE,UINT,UINT,const PALETTEENTRY*);
3773COLORREF WINAPI SetPixel(HDC,INT,INT,COLORREF);
3774BOOL WINAPI SetPixelV(HDC,INT,INT,COLORREF);
3775BOOL WINAPI SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR*);
3776INT WINAPI SetPolyFillMode(HDC,INT);
3777BOOL WINAPI SetRectRgn(HRGN,INT,INT,INT,INT);
3778INT WINAPI SetRelAbs(HDC,INT);
3779INT WINAPI SetROP2(HDC,INT);
3780INT WINAPI SetStretchBltMode(HDC,INT);
3781UINT WINAPI SetSystemPaletteUse(HDC,UINT);
3782UINT WINAPI SetTextAlign(HDC,UINT);
3783INT WINAPI SetTextCharacterExtra(HDC,INT);
3784COLORREF WINAPI SetTextColor(HDC,COLORREF);
3785BOOL WINAPI SetTextJustification(HDC,INT,INT);
3786BOOL WINAPI SetViewportExtEx(HDC,INT,INT,LPSIZE);
3787BOOL WINAPI SetViewportOrgEx(HDC,INT,INT,LPPOINT);
3788BOOL WINAPI SetWindowExtEx(HDC,INT,INT,LPSIZE);
3789BOOL WINAPI SetWindowOrgEx(HDC,INT,INT,LPPOINT);
3790HENHMETAFILE WINAPI SetWinMetaFileBits(UINT,CONST BYTE*,HDC,CONST METAFILEPICT *);
3791BOOL WINAPI SetWorldTransform(HDC,const XFORM*);
3792INT WINAPI StartDocA(HDC,const DOCINFOA*);
3793INT WINAPI StartDocW(HDC,const DOCINFOW*);
3794#define StartDoc WINELIB_NAME_AW(StartDoc)
3795INT WINAPI StartPage(HDC);
3796INT WINAPI EndPage(HDC);
3797BOOL WINAPI StretchBlt(HDC,INT,INT,INT,INT,HDC,INT,
3798 INT,INT,INT,DWORD);
3799INT WINAPI StretchDIBits(HDC,INT,INT,INT,INT,INT,INT,
3800 INT,INT,const VOID*,const BITMAPINFO*,UINT,DWORD);
3801BOOL WINAPI StrokeAndFillPath(HDC);
3802BOOL WINAPI StrokePath(HDC);
3803BOOL WINAPI SwapBuffers(HDC);
3804BOOL WINAPI TextOutA(HDC,INT,INT,LPCSTR,INT);
3805BOOL WINAPI TextOutW(HDC,INT,INT,LPCWSTR,INT);
3806#define TextOut WINELIB_NAME_AW(TextOut)
3807BOOL WINAPI TranslateCharsetInfo(LPDWORD,LPCHARSETINFO,DWORD);
3808BOOL WINAPI TransparentBlt(HDC,int,int,int,int,HDC,int,int,int,int,UINT);
3809BOOL WINAPI UnrealizeObject(HGDIOBJ);
3810BOOL WINAPI UpdateColors(HDC);
3811BOOL WINAPI WidenPath(HDC);
3812BOOL WINAPI PolyTextOutA(HDC,PPOLYTEXTA,INT);
3813BOOL WINAPI PolyTextOutW(HDC,PPOLYTEXTW,INT);
3814#define PolyTextOut WINELIB_NAME_AW(PolyTextOut)
3815
3816/* These defines are used by wglSwapLayerBuffers */
3817#define WGL_SWAP_MAIN_PLANE (1 << 0)
3818#define WGL_SWAP_OVERLAY1 (1 << 1)
3819#define WGL_SWAP_OVERLAY2 (1 << 2)
3820#define WGL_SWAP_OVERLAY3 (1 << 3)
3821#define WGL_SWAP_OVERLAY4 (1 << 4)
3822#define WGL_SWAP_OVERLAY5 (1 << 5)
3823#define WGL_SWAP_OVERLAY6 (1 << 6)
3824#define WGL_SWAP_OVERLAY7 (1 << 7)
3825#define WGL_SWAP_OVERLAY8 (1 << 8)
3826#define WGL_SWAP_OVERLAY9 (1 << 9)
3827#define WGL_SWAP_OVERLAY10 (1 << 10)
3828#define WGL_SWAP_OVERLAY11 (1 << 11)
3829#define WGL_SWAP_OVERLAY12 (1 << 12)
3830#define WGL_SWAP_OVERLAY13 (1 << 13)
3831#define WGL_SWAP_OVERLAY14 (1 << 14)
3832#define WGL_SWAP_OVERLAY15 (1 << 15)
3833#define WGL_SWAP_UNDERLAY1 (1 << 16)
3834#define WGL_SWAP_UNDERLAY2 (1 << 17)
3835#define WGL_SWAP_UNDERLAY3 (1 << 18)
3836#define WGL_SWAP_UNDERLAY4 (1 << 19)
3837#define WGL_SWAP_UNDERLAY5 (1 << 20)
3838#define WGL_SWAP_UNDERLAY6 (1 << 21)
3839#define WGL_SWAP_UNDERLAY7 (1 << 22)
3840#define WGL_SWAP_UNDERLAY8 (1 << 23)
3841#define WGL_SWAP_UNDERLAY9 (1 << 24)
3842#define WGL_SWAP_UNDERLAY10 (1 << 25)
3843#define WGL_SWAP_UNDERLAY11 (1 << 26)
3844#define WGL_SWAP_UNDERLAY12 (1 << 27)
3845#define WGL_SWAP_UNDERLAY13 (1 << 28)
3846#define WGL_SWAP_UNDERLAY14 (1 << 29)
3847#define WGL_SWAP_UNDERLAY15 (1 << 30)
3848
3849
3850/* bird: where have these gone? */
3851
3852// OpenGL wgl prototypes
3853
3854BOOL WINAPI wglCopyContext(HGLRC, HGLRC, UINT);
3855HGLRC WINAPI wglCreateContext(HDC);
3856HGLRC WINAPI wglCreateLayerContext(HDC, int);
3857BOOL WINAPI wglDeleteContext(HGLRC);
3858HGLRC WINAPI wglGetCurrentContext(VOID);
3859HDC WINAPI wglGetCurrentDC(VOID);
3860PROC WINAPI wglGetProcAddress(LPCSTR);
3861BOOL WINAPI wglMakeCurrent(HDC, HGLRC);
3862BOOL WINAPI wglShareLists(HGLRC, HGLRC);
3863BOOL WINAPI wglUseFontBitmapsA(HDC, DWORD, DWORD, DWORD);
3864BOOL WINAPI wglUseFontBitmapsW(HDC, DWORD, DWORD, DWORD);
3865#define wglUseFontBitmaps WINELIB_NAME_AW(wglUseFontBitmaps)
3866
3867
3868BOOL WINAPI wglDescribeLayerPlane(HDC, int, int, UINT, LPLAYERPLANEDESCRIPTOR);
3869int WINAPI wglSetLayerPaletteEntries(HDC, int, int, int, CONST COLORREF *);
3870int WINAPI wglGetLayerPaletteEntries(HDC, int, int, int, COLORREF *);
3871BOOL WINAPI wglRealizeLayerPalette(HDC, int, BOOL);
3872BOOL WINAPI wglSwapLayerBuffers(HDC, UINT);
3873BOOL WINAPI wglUseFontOutlinesA(HDC, DWORD, DWORD, DWORD, FLOAT,
3874 FLOAT, int, LPGLYPHMETRICSFLOAT);
3875BOOL WINAPI wglUseFontOutlinesW(HDC, DWORD, DWORD, DWORD, FLOAT,
3876 FLOAT, int, LPGLYPHMETRICSFLOAT);
3877
3878#define wglUseFontOutlines WINELIB_NAME_AW(wglUseFontOutlines)
3879
3880#ifdef __WIN32OS2__
3881INT WINAPI GetRandomRgn(HDC hDC, HRGN hRgn, DWORD dwCode);
3882#endif
3883
3884#ifdef __cplusplus
3885}
3886#endif
3887
3888#endif /* !NOGDI */
3889#endif /* _WINGDI_ */
Note: See TracBrowser for help on using the repository browser.