Differences From Artifact [8dc90b344401d2c4]:
- File
src/win32/wingdi.d
- 2011-02-23 12:53:16 - part of checkin [c2b7a98c21] on branch trunk - Initial import (user: kinaba) [annotate]
To Artifact [831d9d5a2951cb99]:
- File
src/win32/wingdi.d
- 2015-04-21 10:46:55 - part of checkin [4e2933c620] on branch trunk - Rebased to the latest verson dmd 2.067. Not yet verified the outcome. (user: kinaba) [annotate]
1 +
2 +/***********************************************************************\
3 +* wingdi.d *
4 +* *
5 +* Windows API header module *
6 +* *
7 +* Translated from MinGW Windows headers *
8 +* *
9 +* Placed into public domain *
10 +\***********************************************************************/
1 11 module win32.wingdi;
2 -
3 -// Translated from Microsoft Platform SDK August 2001 Edition
4 -// by Y.Tomino (demoonlit@inter7.jp)
5 -
6 -import win32.windef;
7 -
8 -// #ifndef _WINGDI_
9 -// #define _WINGDI_
10 -
11 -// #ifdef _MAC
12 -// #...
13 -// #endif
14 -
15 -// #if !defined(_GDI32_)
16 -// #define WINGDIAPI DECLSPEC_IMPORT
17 -// #else
18 -// #...
19 -// #endif
20 -
21 -// #if !defined(_SPOOL32_)
22 -// #define WINSPOOLAPI DECLSPEC_IMPORT
23 -// #else
24 -// #...
25 -// #endif
26 -
27 -// #ifdef __cplusplus
28 -// extern "C" {
29 -// #endif
30 -
31 -// #ifndef WINVER
32 -// #...
33 -// #endif /* WINVER */
34 -
35 -// #ifndef NOGDI
36 -
37 -// #ifndef NORASTEROPS
38 -
39 -enum : uint { R2_BLACK = 1 }
40 -enum : uint { R2_NOTMERGEPEN = 2 }
41 -enum : uint { R2_MASKNOTPEN = 3 }
42 -enum : uint { R2_NOTCOPYPEN = 4 }
43 -enum : uint { R2_MASKPENNOT = 5 }
44 -enum : uint { R2_NOT = 6 }
45 -enum : uint { R2_XORPEN = 7 }
46 -enum : uint { R2_NOTMASKPEN = 8 }
47 -enum : uint { R2_MASKPEN = 9 }
48 -enum : uint { R2_NOTXORPEN = 10 }
49 -enum : uint { R2_NOP = 11 }
50 -enum : uint { R2_MERGENOTPEN = 12 }
51 -enum : uint { R2_COPYPEN = 13 }
52 -enum : uint { R2_MERGEPENNOT = 14 }
53 -enum : uint { R2_MERGEPEN = 15 }
54 -enum : uint { R2_WHITE = 16 }
55 -enum : uint { R2_LAST = 16 }
56 -
57 -enum : DWORD { SRCCOPY = 0x00CC0020 }
58 -enum : DWORD { SRCPAINT = 0x00EE0086 }
59 -enum : DWORD { SRCAND = 0x008800C6 }
60 -enum : DWORD { SRCINVERT = 0x00660046 }
61 -enum : DWORD { SRCERASE = 0x00440328 }
62 -enum : DWORD { NOTSRCCOPY = 0x00330008 }
63 -enum : DWORD { NOTSRCERASE = 0x001100A6 }
64 -enum : DWORD { MERGECOPY = 0x00C000CA }
65 -enum : DWORD { MERGEPAINT = 0x00BB0226 }
66 -enum : DWORD { PATCOPY = 0x00F00021 }
67 -enum : DWORD { PATPAINT = 0x00FB0A09 }
68 -enum : DWORD { PATINVERT = 0x005A0049 }
69 -enum : DWORD { DSTINVERT = 0x00550009 }
70 -enum : DWORD { BLACKNESS = 0x00000042 }
71 -enum : DWORD { WHITENESS = 0x00FF0062 }
72 -// #if(WINVER >= 0x0500)
73 -
74 -enum : DWORD { NOMIRRORBITMAP = 0x80000000 }
75 -enum : DWORD { CAPTUREBLT = 0x40000000 }
76 -// #endif /* WINVER >= 0x0500 */
77 -
78 -DWORD MAKEROP4(DWORD fore, DWORD back){ return ((back << 8) & 0xFF000000) | fore; }
79 -
80 -// #endif /* NORASTEROPS */
81 -
82 -enum : uint { GDI_ERROR = 0xFFFFFFFF }
83 -const HANDLE HGDI_ERROR = cast(HANDLE)(0xFFFFFFFFL);
84 -
85 -enum : uint { ERROR = 0 }
86 -enum : uint { NULLREGION = 1 }
87 -enum : uint { SIMPLEREGION = 2 }
88 -enum : uint { COMPLEXREGION = 3 }
12 +pragma(lib, "gdi32.lib");
13 +
14 +// FIXME: clean up Windows version support
15 +
16 +private import win32.w32api, win32.windef, win32.winver;
17 +
18 +// BITMAPINFOHEADER.biCompression
19 +enum : DWORD {
20 + BI_RGB = 0,
21 + BI_RLE8,
22 + BI_RLE4,
23 + BI_BITFIELDS,
24 + BI_JPEG,
25 + BI_PNG
26 +}
27 +
28 +// ---
29 +// COLORADJUSTMENT -- only for NT 3.1+, Win2000+
30 +const WORD
31 +CA_NEGATIVE = 1,
32 +CA_LOG_FILTER = 2;
33 +
34 +// COLORADJUSTMENT
35 +enum : WORD {
36 + ILLUMINANT_DEVICE_DEFAULT = 0,
37 + ILLUMINANT_A,
38 + ILLUMINANT_B,
39 + ILLUMINANT_C,
40 + ILLUMINANT_D50,
41 + ILLUMINANT_D55,
42 + ILLUMINANT_D65,
43 + ILLUMINANT_D75,
44 + ILLUMINANT_F2,
45 + ILLUMINANT_MAX_INDEX = ILLUMINANT_F2,
46 + ILLUMINANT_TUNGSTEN = ILLUMINANT_A,
47 + ILLUMINANT_DAYLIGHT = ILLUMINANT_C,
48 + ILLUMINANT_FLUORESCENT = ILLUMINANT_F2,
49 + ILLUMINANT_NTSC = ILLUMINANT_C
50 +}
51 +
52 +enum {
53 + RGB_GAMMA_MIN = 2500,
54 + RGB_GAMMA_MAX = 65000,
55 + REFERENCE_WHITE_MIN = 6000,
56 + REFERENCE_WHITE_MAX = 10000,
57 + REFERENCE_BLACK_MIN = 0,
58 + REFERENCE_BLACK_MAX = 4000,
59 + COLOR_ADJ_MIN = -100,
60 + COLOR_ADJ_MAX = 100,
61 +}
62 +
63 +// ---
64 +
65 +/* FIXME: move to win32.winuser ? */
66 +
67 +// DrawIconEx()
68 +enum : UINT {
69 + DI_MASK = 1,
70 + DI_IMAGE = 2,
71 + DI_NORMAL = 3,
72 + DI_COMPAT = 4,
73 + DI_DEFAULTSIZE = 8
74 +}
75 +
76 +// DOCINFO
77 +enum : DWORD {
78 + DI_APPBANDING = 1,
79 + DI_ROPS_READ_DESTINATION = 2,
80 +}
81 +
82 +// ENHMETAHEADER
83 +enum : DWORD {
84 + EMR_HEADER = 1,
85 + EMR_POLYBEZIER,
86 + EMR_POLYGON,
87 + EMR_POLYLINE,
88 + EMR_POLYBEZIERTO,
89 + EMR_POLYLINETO,
90 + EMR_POLYPOLYLINE,
91 + EMR_POLYPOLYGON,
92 + EMR_SETWINDOWEXTEX,
93 + EMR_SETWINDOWORGEX,
94 + EMR_SETVIEWPORTEXTEX,
95 + EMR_SETVIEWPORTORGEX,
96 + EMR_SETBRUSHORGEX,
97 + EMR_EOF,
98 + EMR_SETPIXELV,
99 + EMR_SETMAPPERFLAGS,
100 + EMR_SETMAPMODE,
101 + EMR_SETBKMODE,
102 + EMR_SETPOLYFILLMODE,
103 + EMR_SETROP2,
104 + EMR_SETSTRETCHBLTMODE,
105 + EMR_SETTEXTALIGN,
106 + EMR_SETCOLORADJUSTMENT,
107 + EMR_SETTEXTCOLOR,
108 + EMR_SETBKCOLOR,
109 + EMR_OFFSETCLIPRGN,
110 + EMR_MOVETOEX,
111 + EMR_SETMETARGN,
112 + EMR_EXCLUDECLIPRECT,
113 + EMR_INTERSECTCLIPRECT,
114 + EMR_SCALEVIEWPORTEXTEX,
115 + EMR_SCALEWINDOWEXTEX,
116 + EMR_SAVEDC,
117 + EMR_RESTOREDC,
118 + EMR_SETWORLDTRANSFORM,
119 + EMR_MODIFYWORLDTRANSFORM,
120 + EMR_SELECTOBJECT,
121 + EMR_CREATEPEN,
122 + EMR_CREATEBRUSHINDIRECT,
123 + EMR_DELETEOBJECT,
124 + EMR_ANGLEARC,
125 + EMR_ELLIPSE,
126 + EMR_RECTANGLE,
127 + EMR_ROUNDRECT,
128 + EMR_ARC,
129 + EMR_CHORD,
130 + EMR_PIE,
131 + EMR_SELECTPALETTE,
132 + EMR_CREATEPALETTE,
133 + EMR_SETPALETTEENTRIES,
134 + EMR_RESIZEPALETTE,
135 + EMR_REALIZEPALETTE,
136 + EMR_EXTFLOODFILL,
137 + EMR_LINETO,
138 + EMR_ARCTO,
139 + EMR_POLYDRAW,
140 + EMR_SETARCDIRECTION,
141 + EMR_SETMITERLIMIT,
142 + EMR_BEGINPATH,
143 + EMR_ENDPATH,
144 + EMR_CLOSEFIGURE,
145 + EMR_FILLPATH,
146 + EMR_STROKEANDFILLPATH,
147 + EMR_STROKEPATH,
148 + EMR_FLATTENPATH,
149 + EMR_WIDENPATH,
150 + EMR_SELECTCLIPPATH,
151 + EMR_ABORTPATH, // 68
152 + // reserved 69
153 + EMR_GDICOMMENT = 70,
154 + EMR_FILLRGN,
155 + EMR_FRAMERGN,
156 + EMR_INVERTRGN,
157 + EMR_PAINTRGN,
158 + EMR_EXTSELECTCLIPRGN,
159 + EMR_BITBLT,
160 + EMR_STRETCHBLT,
161 + EMR_MASKBLT,
162 + EMR_PLGBLT,
163 + EMR_SETDIBITSTODEVICE,
164 + EMR_STRETCHDIBITS,
165 + EMR_EXTCREATEFONTINDIRECTW,
166 + EMR_EXTTEXTOUTA,
167 + EMR_EXTTEXTOUTW,
168 + EMR_POLYBEZIER16,
169 + EMR_POLYGON16,
170 + EMR_POLYLINE16,
171 + EMR_POLYBEZIERTO16,
172 + EMR_POLYLINETO16,
173 + EMR_POLYPOLYLINE16,
174 + EMR_POLYPOLYGON16,
175 + EMR_POLYDRAW16,
176 + EMR_CREATEMONOBRUSH,
177 + EMR_CREATEDIBPATTERNBRUSHPT,
178 + EMR_EXTCREATEPEN,
179 + EMR_POLYTEXTOUTA,
180 + EMR_POLYTEXTOUTW, // 97
181 + EMR_SETICMMODE,
182 + EMR_CREATECOLORSPACE,
183 + EMR_SETCOLORSPACE,
184 + EMR_DELETECOLORSPACE,
185 + EMR_GLSRECORD,
186 + EMR_GLSBOUNDEDRECORD,
187 + EMR_PIXELFORMAT, // = 104
188 + // reserved 105 - 110
189 + EMR_COLORCORRECTPALETTE = 111,
190 + EMR_SETICMPROFILEA,
191 + EMR_SETICMPROFILEW,
192 + EMR_ALPHABLEND,
193 + EMR_SETLAYOUT,
194 + EMR_TRANSPARENTBLT, // 116
195 + // reserved 117
196 + EMR_GRADIENTFILL = 118,
197 +
198 + // reserved 119, 120
199 + EMR_COLORMATCHTOTARGETW = 121,
200 + EMR_CREATECOLORSPACEW // 122
201 +}
202 +
203 +const EMR_MIN = EMR_HEADER;
204 +
205 +static
206 +
207 +if (WINVER >= 0x0500)
208 + const EMR_MAX = EMR_CREATECOLORSPACEW;
209 +else static
210 +
211 + if (WINVER >= 0x0400)
212 + const EMR_MAX = EMR_PIXELFORMAT;
213 + else
214 + const EMR_MAX = EMR_POLYTEXTOUTW;
215 +
216 +// ENHMETAHEADER.dSignature, ENHMETAHEADER3.dSignature,
217 +// EMRFORMAT.dSignature
218 +enum : DWORD {
219 + ENHMETA_SIGNATURE = 1179469088,
220 + EPS_SIGNATURE = 0x46535045
221 +}
222 +
223 +static
224 +
225 +if (_WIN32_WINNT >= 0x0500)
226 +{
227 + // AddFontResourceEx()
228 + enum : DWORD {
229 + FR_PRIVATE = 0x10,
230 + FR_NOT_ENUM = 0x20
231 + }
232 +}
233 +
234 +enum {
235 + META_SAVEDC = 0x1E,
236 + META_REALIZEPALETTE = 0x35,
237 + META_SETPALENTRIES = 0x37,
238 + META_CREATEPALETTE = 0xf7,
239 + META_SETBKMODE = 0x102,
240 + META_SETMAPMODE = 0x103,
241 + META_SETROP2 = 0x104,
242 + META_SETRELABS = 0x105,
243 + META_SETPOLYFILLMODE = 0x106,
244 + META_SETSTRETCHBLTMODE = 0x107,
245 + META_SETTEXTCHAREXTRA = 0x108,
246 + META_RESTOREDC = 0x127,
247 + META_INVERTREGION = 0x12A,
248 + META_PAINTREGION = 0x12B,
249 + META_SELECTCLIPREGION = 0x12C,
250 + META_SELECTOBJECT = 0x12D,
251 + META_SETTEXTALIGN = 0x12E,
252 + META_RESIZEPALETTE = 0x139,
253 + META_DIBCREATEPATTERNBRUSH = 0x142,
254 + META_SETLAYOUT = 0x149,
255 + META_DELETEOBJECT = 0x1F0,
256 + META_CREATEPATTERNBRUSH = 0x1F9,
257 + META_SETBKCOLOR = 0x201,
258 + META_SETTEXTCOLOR = 0x209,
259 + META_SETTEXTJUSTIFICATION = 0x20A,
260 + META_SETWINDOWORG = 0x20B,
261 + META_SETWINDOWEXT = 0x20C,
262 + META_SETVIEWPORTORG = 0x20D,
263 + META_SETVIEWPORTEXT = 0x20E,
264 + META_OFFSETWINDOWORG = 0x20F,
265 + META_OFFSETVIEWPORTORG = 0x211,
266 + META_LINETO = 0x213,
267 + META_MOVETO = 0x214,
268 + META_OFFSETCLIPRGN = 0x220,
269 + META_FILLREGION = 0x228,
270 + META_SETMAPPERFLAGS = 0x231,
271 + META_SELECTPALETTE = 0x234,
272 + META_CREATEPENINDIRECT = 0x2FA,
273 + META_CREATEFONTINDIRECT = 0x2FB,
274 + META_CREATEBRUSHINDIRECT = 0x2FC,
275 + META_POLYGON = 0x324,
276 + META_POLYLINE = 0x325,
277 + META_SCALEWINDOWEXT = 0x410,
278 + META_SCALEVIEWPORTEXT = 0x412,
279 + META_EXCLUDECLIPRECT = 0x415,
280 + META_INTERSECTCLIPRECT = 0x416,
281 + META_ELLIPSE = 0x418,
282 + META_FLOODFILL = 0x419,
283 + META_RECTANGLE = 0x41B,
284 + META_SETPIXEL = 0x41F,
285 + META_FRAMEREGION = 0x429,
286 + META_ANIMATEPALETTE = 0x436,
287 + META_TEXTOUT = 0x521,
288 + META_POLYPOLYGON = 0x538,
289 + META_EXTFLOODFILL = 0x548,
290 + META_ROUNDRECT = 0x61C,
291 + META_PATBLT = 0x61D,
292 + META_ESCAPE = 0x626,
293 + META_CREATEREGION = 0x6FF,
294 + META_ARC = 0x817,
295 + META_PIE = 0x81A,
296 + META_CHORD = 0x830,
297 + META_BITBLT = 0x922,
298 + META_DIBBITBLT = 0x940,
299 + META_EXTTEXTOUT = 0xA32,
300 + META_STRETCHBLT = 0xB23,
301 + META_DIBSTRETCHBLT = 0xB41,
302 + META_SETDIBTODEV = 0xD33,
303 + META_STRETCHDIB = 0xF43
304 +}
305 +
306 +// EMRPOLYDRAW
307 +enum : BYTE {
308 + PT_CLOSEFIGURE = 1,
309 + PT_LINETO = 2,
310 + PT_BEZIERTO = 4,
311 + PT_MOVETO = 6
312 +}
313 +
314 +// ----
315 +// PIXELFORMATDESCRIPTOR.iPixelType
316 +enum : BYTE {
317 + PFD_TYPE_RGBA = 0,
318 + PFD_TYPE_COLORINDEX = 1
319 +}
320 +
321 +deprecated {
322 + // PIXELFORMATDESCRIPTOR.
323 + const byte
324 + PFD_MAIN_PLANE = 0,
325 + PFD_OVERLAY_PLANE = 1,
326 + PFD_UNDERLAY_PLANE = -1;
327 +}
328 +
329 +// PIXELFORMATDESCRIPTOR.dwFlags
330 +const DWORD
331 +PFD_DOUBLEBUFFER = 0x00000001,
332 +PFD_STEREO = 0x00000002,
333 +PFD_DRAW_TO_WINDOW = 0x00000004,
334 +PFD_DRAW_TO_BITMAP = 0x00000008,
335 +PFD_SUPPORT_GDI = 0x00000010,
336 +PFD_SUPPORT_OPENGL = 0x00000020,
337 +PFD_GENERIC_FORMAT = 0x00000040,
338 +PFD_NEED_PALETTE = 0x00000080,
339 +PFD_NEED_SYSTEM_PALETTE = 0x00000100,
340 +PFD_SWAP_EXCHANGE = 0x00000200,
341 +PFD_SWAP_COPY = 0x00000400,
342 +PFD_SWAP_LAYER_BUFFERS = 0x00000800,
343 +PFD_GENERIC_ACCELERATED = 0x00001000,
344 +PFD_SUPPORT_DIRECTDRAW = 0x00002000,
345 +
346 +/* PIXELFORMATDESCRIPTOR flags for use in ChoosePixelFormat only */
347 +PFD_DEPTH_DONTCARE = 0x20000000,
348 +PFD_DOUBLEBUFFER_DONTCARE = 0x40000000,
349 +PFD_STEREO_DONTCARE = 0x80000000;
350 +
351 +// ----
352 +
353 +const DWORD
354 +BLACKNESS = 0x000042,
355 +NOTSRCERASE = 0x1100A6,
356 +NOTSRCCOPY = 0x330008,
357 +SRCERASE = 0x440328,
358 +DSTINVERT = 0x550009,
359 +PATINVERT = 0x5A0049,
360 +SRCINVERT = 0x660046,
361 +SRCAND = 0x8800C6,
362 +MERGEPAINT = 0xBB0226,
363 +MERGECOPY = 0xC000CA,
364 +SRCCOPY = 0xCC0020,
365 +SRCPAINT = 0xEE0086,
366 +PATCOPY = 0xF00021,
367 +PATPAINT = 0xFB0A09,
368 +WHITENESS = 0xFF0062;
369 +static
370 +
371 +if (WINVER >= 0x0500)
372 +{
373 + const DWORD
374 + NOMIRRORBITMAP = 0x80000000,
375 + CAPTUREBLT = 0x40000000;
376 +}
377 +
378 +// GetROP2(), SetROP2()
379 +enum : int {
380 + R2_BLACK = 1,
381 + R2_NOTMERGEPEN = 2,
382 + R2_MASKNOTPEN = 3,
383 + R2_NOTCOPYPEN = 4,
384 + R2_MASKPENNOT = 5,
385 + R2_NOT = 6,
386 + R2_XORPEN = 7,
387 + R2_NOTMASKPEN = 8,
388 + R2_MASKPEN = 9,
389 + R2_NOTXORPEN = 10,
390 + R2_NOP = 11,
391 + R2_MERGENOTPEN = 12,
392 + R2_COPYPEN = 13,
393 + R2_MERGEPENNOT = 14,
394 + R2_MERGEPEN = 15,
395 + R2_WHITE = 16
396 +}
397 +
398 +const R2_LAST = R2_WHITE;
399 +
400 +// CheckColorsInGamut()
401 +const ubyte
402 +CM_IN_GAMUT = 0,
403 +CM_OUT_OF_GAMUT = 255;
404 +
405 +/* UpdateICMRegKey Constants */
406 +const int
407 +ICM_ADDPROFILE = 1,
408 +ICM_DELETEPROFILE = 2,
409 +ICM_QUERYPROFILE = 3,
410 +ICM_SETDEFAULTPROFILE = 4,
411 +ICM_REGISTERICMATCHER = 5,
412 +ICM_UNREGISTERICMATCHER = 6,
413 +ICM_QUERYMATCH = 7;
414 +
415 +enum : int {
416 + RGN_AND = 1,
417 + RGN_OR = 2,
418 + RGN_XOR = 3,
419 + RGN_DIFF = 4,
420 + RGN_COPY = 5
421 +}
422 +
423 +const RGN_MIN = RGN_AND;
424 +const RGN_MAX = RGN_COPY;
425 +
426 +// Return values for CombineRgn()
427 +enum {
428 + NULLREGION = 1,
429 + SIMPLEREGION = 2,
430 + COMPLEXREGION = 3
431 +}
432 +
433 +const ERROR = 0;
89 434 alias ERROR RGN_ERROR;
90 435
91 -enum : uint { RGN_AND = 1 }
92 -enum : uint { RGN_OR = 2 }
93 -enum : uint { RGN_XOR = 3 }
94 -enum : uint { RGN_DIFF = 4 }
95 -enum : uint { RGN_COPY = 5 }
96 -alias RGN_AND RGN_MIN;
97 -alias RGN_COPY RGN_MAX;
98 -
99 -enum : uint { BLACKONWHITE = 1 }
100 -enum : uint { WHITEONBLACK = 2 }
101 -enum : uint { COLORONCOLOR = 3 }
102 -enum : uint { HALFTONE = 4 }
103 -enum : uint { MAXSTRETCHBLTMODE = 4 }
104 -
105 -// #if(WINVER >= 0x0400)
106 -
107 -alias BLACKONWHITE STRETCH_ANDSCANS;
108 -alias WHITEONBLACK STRETCH_ORSCANS;
109 -alias COLORONCOLOR STRETCH_DELETESCANS;
110 -alias HALFTONE STRETCH_HALFTONE;
111 -// #endif /* WINVER >= 0x0400 */
112 -
113 -enum : uint { ALTERNATE = 1 }
114 -enum : uint { WINDING = 2 }
115 -enum : uint { POLYFILL_LAST = 2 }
116 -
117 -// #if(WINVER >= 0x0500)
118 -enum : uint { LAYOUT_RTL = 0x00000001 }
119 -enum : uint { LAYOUT_BTT = 0x00000002 }
120 -enum : uint { LAYOUT_VBH = 0x00000004 }
121 -enum : uint { LAYOUT_ORIENTATIONMASK = LAYOUT_RTL | LAYOUT_BTT | LAYOUT_VBH }
122 -enum : uint { LAYOUT_BITMAPORIENTATIONPRESERVED = 0x00000008 }
123 -// #endif /* WINVER >= 0x0500 */
124 -
125 -enum : uint { TA_NOUPDATECP = 0 }
126 -enum : uint { TA_UPDATECP = 1 }
127 -
128 -enum : uint { TA_LEFT = 0 }
129 -enum : uint { TA_RIGHT = 2 }
130 -enum : uint { TA_CENTER = 6 }
131 -
132 -enum : uint { TA_TOP = 0 }
133 -enum : uint { TA_BOTTOM = 8 }
134 -enum : uint { TA_BASELINE = 24 }
135 -// #if (WINVER >= 0x0400)
136 -enum : uint { TA_RTLREADING = 256 }
137 -enum : uint { TA_MASK = TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLREADING }
138 -// #else
139 -// #...
140 -// #endif
141 -
142 -alias TA_BASELINE VTA_BASELINE;
143 -alias TA_BOTTOM VTA_LEFT;
144 -alias TA_TOP VTA_RIGHT;
145 -alias TA_CENTER VTA_CENTER;
146 -alias TA_RIGHT VTA_BOTTOM;
147 -alias TA_LEFT VTA_TOP;
148 -
149 -enum : uint { ETO_OPAQUE = 0x0002 }
150 -enum : uint { ETO_CLIPPED = 0x0004 }
151 -// #if(WINVER >= 0x0400)
152 -enum : uint { ETO_GLYPH_INDEX = 0x0010 }
153 -enum : uint { ETO_RTLREADING = 0x0080 }
154 -enum : uint { ETO_NUMERICSLOCAL = 0x0400 }
155 -enum : uint { ETO_NUMERICSLATIN = 0x0800 }
156 -enum : uint { ETO_IGNORELANGUAGE = 0x1000 }
157 -// #endif /* WINVER >= 0x0400 */
158 -// #if (_WIN32_WINNT >= 0x0500)
159 -enum : uint { ETO_PDY = 0x2000 }
160 -// #endif // (_WIN32_WINNT >= 0x0500)
161 -
162 -enum : uint { ASPECT_FILTERING = 0x0001 }
163 -
164 -enum : uint { DCB_RESET = 0x0001 }
165 -enum : uint { DCB_ACCUMULATE = 0x0002 }
166 -alias DCB_ACCUMULATE DCB_DIRTY;
167 -enum : uint { DCB_SET = DCB_RESET | DCB_ACCUMULATE }
168 -enum : uint { DCB_ENABLE = 0x0004 }
169 -enum : uint { DCB_DISABLE = 0x0008 }
170 -
171 -// #ifndef NOMETAFILE
172 -
173 -enum : uint { META_SETBKCOLOR = 0x0201 }
174 -enum : uint { META_SETBKMODE = 0x0102 }
175 -enum : uint { META_SETMAPMODE = 0x0103 }
176 -enum : uint { META_SETROP2 = 0x0104 }
177 -enum : uint { META_SETRELABS = 0x0105 }
178 -enum : uint { META_SETPOLYFILLMODE = 0x0106 }
179 -enum : uint { META_SETSTRETCHBLTMODE = 0x0107 }
180 -enum : uint { META_SETTEXTCHAREXTRA = 0x0108 }
181 -enum : uint { META_SETTEXTCOLOR = 0x0209 }
182 -enum : uint { META_SETTEXTJUSTIFICATION = 0x020A }
183 -enum : uint { META_SETWINDOWORG = 0x020B }
184 -enum : uint { META_SETWINDOWEXT = 0x020C }
185 -enum : uint { META_SETVIEWPORTORG = 0x020D }
186 -enum : uint { META_SETVIEWPORTEXT = 0x020E }
187 -enum : uint { META_OFFSETWINDOWORG = 0x020F }
188 -enum : uint { META_SCALEWINDOWEXT = 0x0410 }
189 -enum : uint { META_OFFSETVIEWPORTORG = 0x0211 }
190 -enum : uint { META_SCALEVIEWPORTEXT = 0x0412 }
191 -enum : uint { META_LINETO = 0x0213 }
192 -enum : uint { META_MOVETO = 0x0214 }
193 -enum : uint { META_EXCLUDECLIPRECT = 0x0415 }
194 -enum : uint { META_INTERSECTCLIPRECT = 0x0416 }
195 -enum : uint { META_ARC = 0x0817 }
196 -enum : uint { META_ELLIPSE = 0x0418 }
197 -enum : uint { META_FLOODFILL = 0x0419 }
198 -enum : uint { META_PIE = 0x081A }
199 -enum : uint { META_RECTANGLE = 0x041B }
200 -enum : uint { META_ROUNDRECT = 0x061C }
201 -enum : uint { META_PATBLT = 0x061D }
202 -enum : uint { META_SAVEDC = 0x001E }
203 -enum : uint { META_SETPIXEL = 0x041F }
204 -enum : uint { META_OFFSETCLIPRGN = 0x0220 }
205 -enum : uint { META_TEXTOUT = 0x0521 }
206 -enum : uint { META_BITBLT = 0x0922 }
207 -enum : uint { META_STRETCHBLT = 0x0B23 }
208 -enum : uint { META_POLYGON = 0x0324 }
209 -enum : uint { META_POLYLINE = 0x0325 }
210 -enum : uint { META_ESCAPE = 0x0626 }
211 -enum : uint { META_RESTOREDC = 0x0127 }
212 -enum : uint { META_FILLREGION = 0x0228 }
213 -enum : uint { META_FRAMEREGION = 0x0429 }
214 -enum : uint { META_INVERTREGION = 0x012A }
215 -enum : uint { META_PAINTREGION = 0x012B }
216 -enum : uint { META_SELECTCLIPREGION = 0x012C }
217 -enum : uint { META_SELECTOBJECT = 0x012D }
218 -enum : uint { META_SETTEXTALIGN = 0x012E }
219 -enum : uint { META_CHORD = 0x0830 }
220 -enum : uint { META_SETMAPPERFLAGS = 0x0231 }
221 -enum : uint { META_EXTTEXTOUT = 0x0a32 }
222 -enum : uint { META_SETDIBTODEV = 0x0d33 }
223 -enum : uint { META_SELECTPALETTE = 0x0234 }
224 -enum : uint { META_REALIZEPALETTE = 0x0035 }
225 -enum : uint { META_ANIMATEPALETTE = 0x0436 }
226 -enum : uint { META_SETPALENTRIES = 0x0037 }
227 -enum : uint { META_POLYPOLYGON = 0x0538 }
228 -enum : uint { META_RESIZEPALETTE = 0x0139 }
229 -enum : uint { META_DIBBITBLT = 0x0940 }
230 -enum : uint { META_DIBSTRETCHBLT = 0x0b41 }
231 -enum : uint { META_DIBCREATEPATTERNBRUSH = 0x0142 }
232 -enum : uint { META_STRETCHDIB = 0x0f43 }
233 -enum : uint { META_EXTFLOODFILL = 0x0548 }
234 -// #if(WINVER >= 0x0500)
235 -enum : uint { META_SETLAYOUT = 0x0149 }
236 -// #endif /* WINVER >= 0x0500 */
237 -enum : uint { META_DELETEOBJECT = 0x01f0 }
238 -enum : uint { META_CREATEPALETTE = 0x00f7 }
239 -enum : uint { META_CREATEPATTERNBRUSH = 0x01F9 }
240 -enum : uint { META_CREATEPENINDIRECT = 0x02FA }
241 -enum : uint { META_CREATEFONTINDIRECT = 0x02FB }
242 -enum : uint { META_CREATEBRUSHINDIRECT = 0x02FC }
243 -enum : uint { META_CREATEREGION = 0x06FF }
244 -
245 -// #if(WINVER >= 0x0400)
246 -struct _DRAWPATRECT {
247 - POINT ptPosition;
248 - POINT ptSize;
249 - WORD wStyle;
250 - WORD wPattern;
251 -}
252 -alias _DRAWPATRECT DRAWPATRECT;
253 -alias _DRAWPATRECT* PDRAWPATRECT;
254 -
255 -// #endif /* WINVER >= 0x0400 */
256 -
257 -// #endif /* NOMETAFILE */
258 -
259 -enum : uint { NEWFRAME = 1 }
260 -enum : uint { ABORTDOC = 2 }
261 -enum : uint { NEXTBAND = 3 }
262 -enum : uint { SETCOLORTABLE = 4 }
263 -enum : uint { GETCOLORTABLE = 5 }
264 -enum : uint { FLUSHOUTPUT = 6 }
265 -enum : uint { DRAFTMODE = 7 }
266 -enum : uint { QUERYESCSUPPORT = 8 }
267 -enum : uint { SETABORTPROC = 9 }
268 -enum : uint { STARTDOC = 10 }
269 -enum : uint { ENDDOC = 11 }
270 -enum : uint { GETPHYSPAGESIZE = 12 }
271 -enum : uint { GETPRINTINGOFFSET = 13 }
272 -enum : uint { GETSCALINGFACTOR = 14 }
273 -enum : uint { MFCOMMENT = 15 }
274 -enum : uint { GETPENWIDTH = 16 }
275 -enum : uint { SETCOPYCOUNT = 17 }
276 -enum : uint { SELECTPAPERSOURCE = 18 }
277 -enum : uint { DEVICEDATA = 19 }
278 -enum : uint { PASSTHROUGH = 19 }
279 -enum : uint { GETTECHNOLGY = 20 }
280 -enum : uint { GETTECHNOLOGY = 20 }
281 -enum : uint { SETLINECAP = 21 }
282 -enum : uint { SETLINEJOIN = 22 }
283 -enum : uint { SETMITERLIMIT = 23 }
284 -enum : uint { BANDINFO = 24 }
285 -enum : uint { DRAWPATTERNRECT = 25 }
286 -enum : uint { GETVECTORPENSIZE = 26 }
287 -enum : uint { GETVECTORBRUSHSIZE = 27 }
288 -enum : uint { ENABLEDUPLEX = 28 }
289 -enum : uint { GETSETPAPERBINS = 29 }
290 -enum : uint { GETSETPRINTORIENT = 30 }
291 -enum : uint { ENUMPAPERBINS = 31 }
292 -enum : uint { SETDIBSCALING = 32 }
293 -enum : uint { EPSPRINTING = 33 }
294 -enum : uint { ENUMPAPERMETRICS = 34 }
295 -enum : uint { GETSETPAPERMETRICS = 35 }
296 -enum : uint { POSTSCRIPT_DATA = 37 }
297 -enum : uint { POSTSCRIPT_IGNORE = 38 }
298 -enum : uint { MOUSETRAILS = 39 }
299 -enum : uint { GETDEVICEUNITS = 42 }
300 -
301 -enum : uint { GETEXTENDEDTEXTMETRICS = 256 }
302 -enum : uint { GETEXTENTTABLE = 257 }
303 -enum : uint { GETPAIRKERNTABLE = 258 }
304 -enum : uint { GETTRACKKERNTABLE = 259 }
305 -enum : uint { EXTTEXTOUT = 512 }
306 -enum : uint { GETFACENAME = 513 }
307 -enum : uint { DOWNLOADFACE = 514 }
308 -enum : uint { ENABLERELATIVEWIDTHS = 768 }
309 -enum : uint { ENABLEPAIRKERNING = 769 }
310 -enum : uint { SETKERNTRACK = 770 }
311 -enum : uint { SETALLJUSTVALUES = 771 }
312 -enum : uint { SETCHARSET = 772 }
313 -
314 -enum : uint { STRETCHBLT = 2048 }
315 -enum : uint { METAFILE_DRIVER = 2049 }
316 -enum : uint { GETSETSCREENPARAMS = 3072 }
317 -enum : uint { QUERYDIBSUPPORT = 3073 }
318 -enum : uint { BEGIN_PATH = 4096 }
319 -enum : uint { CLIP_TO_PATH = 4097 }
320 -enum : uint { END_PATH = 4098 }
321 -enum : uint { EXT_DEVICE_CAPS = 4099 }
322 -enum : uint { RESTORE_CTM = 4100 }
323 -enum : uint { SAVE_CTM = 4101 }
324 -enum : uint { SET_ARC_DIRECTION = 4102 }
325 -enum : uint { SET_BACKGROUND_COLOR = 4103 }
326 -enum : uint { SET_POLY_MODE = 4104 }
327 -enum : uint { SET_SCREEN_ANGLE = 4105 }
328 -enum : uint { SET_SPREAD = 4106 }
329 -enum : uint { TRANSFORM_CTM = 4107 }
330 -enum : uint { SET_CLIP_BOX = 4108 }
331 -enum : uint { SET_BOUNDS = 4109 }
332 -enum : uint { SET_MIRROR_MODE = 4110 }
333 -enum : uint { OPENCHANNEL = 4110 }
334 -enum : uint { DOWNLOADHEADER = 4111 }
335 -enum : uint { CLOSECHANNEL = 4112 }
336 -enum : uint { POSTSCRIPT_PASSTHROUGH = 4115 }
337 -enum : uint { ENCAPSULATED_POSTSCRIPT = 4116 }
338 -
339 -enum : uint { POSTSCRIPT_IDENTIFY = 4117 }
340 -enum : uint { POSTSCRIPT_INJECTION = 4118 }
341 -
342 -enum : uint { CHECKJPEGFORMAT = 4119 }
343 -enum : uint { CHECKPNGFORMAT = 4120 }
344 -
345 -enum : uint { GET_PS_FEATURESETTING = 4121 }
346 -
347 -enum : uint { SPCLPASSTHROUGH2 = 4568 }
348 -
349 -enum : uint { PSIDENT_GDICENTRIC = 0 }
350 -enum : uint { PSIDENT_PSCENTRIC = 1 }
351 -
352 -struct _PSINJECTDATA {
353 -
354 - DWORD DataBytes;
355 - WORD InjectionPoint;
356 - WORD PageNumber;
357 -
358 -}
359 -alias _PSINJECTDATA PSINJECTDATA;
360 -alias _PSINJECTDATA* PPSINJECTDATA;
361 -
362 -enum : uint { PSINJECT_BEGINSTREAM = 1 }
363 -enum : uint { PSINJECT_PSADOBE = 2 }
364 -enum : uint { PSINJECT_PAGESATEND = 3 }
365 -enum : uint { PSINJECT_PAGES = 4 }
366 -
367 -enum : uint { PSINJECT_DOCNEEDEDRES = 5 }
368 -enum : uint { PSINJECT_DOCSUPPLIEDRES = 6 }
369 -enum : uint { PSINJECT_PAGEORDER = 7 }
370 -enum : uint { PSINJECT_ORIENTATION = 8 }
371 -enum : uint { PSINJECT_BOUNDINGBOX = 9 }
372 -enum : uint { PSINJECT_DOCUMENTPROCESSCOLORS = 10 }
373 -
374 -enum : uint { PSINJECT_COMMENTS = 11 }
375 -enum : uint { PSINJECT_BEGINDEFAULTS = 12 }
376 -enum : uint { PSINJECT_ENDDEFAULTS = 13 }
377 -enum : uint { PSINJECT_BEGINPROLOG = 14 }
378 -enum : uint { PSINJECT_ENDPROLOG = 15 }
379 -enum : uint { PSINJECT_BEGINSETUP = 16 }
380 -enum : uint { PSINJECT_ENDSETUP = 17 }
381 -enum : uint { PSINJECT_TRAILER = 18 }
382 -enum : uint { PSINJECT_EOF = 19 }
383 -enum : uint { PSINJECT_ENDSTREAM = 20 }
384 -enum : uint { PSINJECT_DOCUMENTPROCESSCOLORSATEND = 21 }
385 -
386 -enum : uint { PSINJECT_PAGENUMBER = 100 }
387 -enum : uint { PSINJECT_BEGINPAGESETUP = 101 }
388 -enum : uint { PSINJECT_ENDPAGESETUP = 102 }
389 -enum : uint { PSINJECT_PAGETRAILER = 103 }
390 -enum : uint { PSINJECT_PLATECOLOR = 104 }
391 -
392 -enum : uint { PSINJECT_SHOWPAGE = 105 }
393 -enum : uint { PSINJECT_PAGEBBOX = 106 }
394 -enum : uint { PSINJECT_ENDPAGECOMMENTS = 107 }
395 -
396 -enum : uint { PSINJECT_VMSAVE = 200 }
397 -enum : uint { PSINJECT_VMRESTORE = 201 }
398 -
399 -enum : uint { FEATURESETTING_NUP = 0 }
400 -enum : uint { FEATURESETTING_OUTPUT = 1 }
401 -enum : uint { FEATURESETTING_PSLEVEL = 2 }
402 -enum : uint { FEATURESETTING_CUSTPAPER = 3 }
403 -enum : uint { FEATURESETTING_MIRROR = 4 }
404 -enum : uint { FEATURESETTING_NEGATIVE = 5 }
405 -enum : uint { FEATURESETTING_PROTOCOL = 6 }
406 -
407 -enum : uint { FEATURESETTING_PRIVATE_BEGIN = 0x1000 }
408 -enum : uint { FEATURESETTING_PRIVATE_END = 0x1FFF }
409 -
410 -struct _PSFEATURE_OUTPUT {
411 -
412 - BOOL bPageIndependent;
413 - BOOL bSetPageDevice;
414 -}
415 -alias _PSFEATURE_OUTPUT PSFEATURE_OUTPUT;
416 -alias _PSFEATURE_OUTPUT* PPSFEATURE_OUTPUT;
417 -
418 -struct _PSFEATURE_CUSTPAPER {
419 -
420 - LONG lOrientation;
421 - LONG lWidth;
422 - LONG lHeight;
423 - LONG lWidthOffset;
424 - LONG lHeightOffset;
425 -}
426 -alias _PSFEATURE_CUSTPAPER PSFEATURE_CUSTPAPER;
427 -alias _PSFEATURE_CUSTPAPER* PPSFEATURE_CUSTPAPER;
428 -
429 -enum : uint { PSPROTOCOL_ASCII = 0 }
430 -enum : uint { PSPROTOCOL_BCP = 1 }
431 -enum : uint { PSPROTOCOL_TBCP = 2 }
432 -enum : uint { PSPROTOCOL_BINARY = 3 }
433 -
434 -enum : uint { QDI_SETDIBITS = 1 }
435 -enum : uint { QDI_GETDIBITS = 2 }
436 -enum : uint { QDI_DIBTOSCREEN = 4 }
437 -enum : uint { QDI_STRETCHDIB = 8 }
438 -
439 -enum : uint { SP_NOTREPORTED = 0x4000 }
440 -enum { SP_ERROR = -1 }
441 -enum { SP_APPABORT = -2 }
442 -enum { SP_USERABORT = -3 }
443 -enum { SP_OUTOFDISK = -4 }
444 -enum { SP_OUTOFMEMORY = -5 }
445 -
446 -enum : uint { PR_JOBSTATUS = 0x0000 }
447 -
448 -enum : uint { OBJ_PEN = 1 }
449 -enum : uint { OBJ_BRUSH = 2 }
450 -enum : uint { OBJ_DC = 3 }
451 -enum : uint { OBJ_METADC = 4 }
452 -enum : uint { OBJ_PAL = 5 }
453 -enum : uint { OBJ_FONT = 6 }
454 -enum : uint { OBJ_BITMAP = 7 }
455 -enum : uint { OBJ_REGION = 8 }
456 -enum : uint { OBJ_METAFILE = 9 }
457 -enum : uint { OBJ_MEMDC = 10 }
458 -enum : uint { OBJ_EXTPEN = 11 }
459 -enum : uint { OBJ_ENHMETADC = 12 }
460 -enum : uint { OBJ_ENHMETAFILE = 13 }
461 -enum : uint { OBJ_COLORSPACE = 14 }
462 -
463 -enum : uint { MWT_IDENTITY = 1 }
464 -enum : uint { MWT_LEFTMULTIPLY = 2 }
465 -enum : uint { MWT_RIGHTMULTIPLY = 3 }
466 -
467 -alias MWT_IDENTITY MWT_MIN;
468 -alias MWT_RIGHTMULTIPLY MWT_MAX;
469 -
470 -// #define _XFORM_
471 -struct tagXFORM {
472 - FLOAT eM11;
473 - FLOAT eM12;
474 - FLOAT eM21;
475 - FLOAT eM22;
476 - FLOAT eDx;
477 - FLOAT eDy;
478 -}
479 -alias tagXFORM XFORM;
480 -alias tagXFORM* PXFORM;
481 -alias tagXFORM* LPXFORM;
482 -
483 -struct tagBITMAP {
484 - LONG bmType;
485 - LONG bmWidth;
486 - LONG bmHeight;
487 - LONG bmWidthBytes;
488 - WORD bmPlanes;
489 - WORD bmBitsPixel;
490 - LPVOID bmBits;
491 -}
492 -alias tagBITMAP BITMAP;
493 -alias tagBITMAP* PBITMAP;
494 -alias tagBITMAP* NPBITMAP;
495 -alias tagBITMAP* LPBITMAP;
496 -
497 -align(1):
498 -struct tagRGBTRIPLE {
499 - BYTE rgbtBlue;
500 - BYTE rgbtGreen;
501 - BYTE rgbtRed;
502 -}
503 -alias tagRGBTRIPLE RGBTRIPLE;
504 -
505 -align:
506 -
507 -struct tagRGBQUAD {
508 - BYTE rgbBlue;
509 - BYTE rgbGreen;
510 - BYTE rgbRed;
511 - BYTE rgbReserved;
512 -}
513 -alias tagRGBQUAD RGBQUAD;
514 -
515 -alias RGBQUAD* LPRGBQUAD;
516 -
517 -// #if(WINVER >= 0x0400)
518 -
519 -enum : uint { CS_ENABLE = 0x00000001 }
520 -enum : uint { CS_DISABLE = 0x00000002 }
521 -enum : uint { CS_DELETE_TRANSFORM = 0x00000003 }
522 -
523 -// #define LCS_SIGNATURE 'PSOC'
524 -
525 -// #define LCS_sRGB 'sRGB'
526 -// #define LCS_WINDOWS_COLOR_SPACE 'Win '
527 -
528 -alias LONG LCSCSTYPE;
529 -enum : uint { LCS_CALIBRATED_RGB = 0x00000000 }
530 -
531 -alias LONG LCSGAMUTMATCH;
532 -enum : uint { LCS_GM_BUSINESS = 0x00000001 }
533 -enum : uint { LCS_GM_GRAPHICS = 0x00000002 }
534 -enum : uint { LCS_GM_IMAGES = 0x00000004 }
535 -enum : uint { LCS_GM_ABS_COLORIMETRIC = 0x00000008 }
536 -
537 -enum : uint { CM_OUT_OF_GAMUT = 255 }
538 -enum : uint { CM_IN_GAMUT = 0 }
539 -
540 -enum : uint { ICM_ADDPROFILE = 1 }
541 -enum : uint { ICM_DELETEPROFILE = 2 }
542 -enum : uint { ICM_QUERYPROFILE = 3 }
543 -enum : uint { ICM_SETDEFAULTPROFILE = 4 }
544 -enum : uint { ICM_REGISTERICMATCHER = 5 }
545 -enum : uint { ICM_UNREGISTERICMATCHER = 6 }
546 -enum : uint { ICM_QUERYMATCH = 7 }
547 -
548 -BYTE GetKValue(DWORD cmyk){ return cast(BYTE)cmyk; }
549 -BYTE GetYValue(DWORD cmyk){ return cast(BYTE)(cmyk >>> 8); }
550 -BYTE GetMValue(DWORD cmyk){ return cast(BYTE)(cmyk >>> 16); }
551 -BYTE GetCValue(DWORD cmyk){ return cast(BYTE)(cmyk >>> 24); }
552 -
553 -DWORD CMYK(BYTE c, BYTE m, BYTE y, BYTE k){ return (cast(COLORREF)(((cast(BYTE)(k)|(cast(WORD)(cast(BYTE)(y))<<8))|((cast(DWORD)cast(BYTE)(m))<<16))|((cast(DWORD)cast(BYTE)(c))<<24))); }
436 +// CreateDIBitmap()
437 +const DWORD CBM_INIT = 4;
438 +
439 +// CreateDIBitmap()
440 +enum : UINT {
441 + DIB_RGB_COLORS = 0,
442 + DIB_PAL_COLORS = 1
443 +}
444 +
445 +// ---
446 +// Values for LOGFONT and CreateFont()
447 +
448 +// FIXME: For D, replace with lfFaceName.length()
449 +const LF_FACESIZE = 32;
450 +const LF_FULLFACESIZE = 64;
451 +
452 +// FIXME: Not needed for D, only EXTLOGFONT
453 +const ELF_VENDOR_SIZE = 4;
454 +
455 +// ???
456 +const ELF_VERSION = 0;
457 +const ELF_CULTURE_LATIN = 0;
458 +
459 +// LOGFONT.lfWeight
460 +const LONG
461 +FW_DONTCARE = 0,
462 +FW_THIN = 100,
463 +FW_EXTRALIGHT = 200,
464 +FW_ULTRALIGHT = FW_EXTRALIGHT,
465 +FW_LIGHT = 300,
466 +FW_NORMAL = 400,
467 +FW_REGULAR = FW_NORMAL,
468 +FW_MEDIUM = 500,
469 +FW_SEMIBOLD = 600,
470 +FW_DEMIBOLD = FW_SEMIBOLD,
471 +FW_BOLD = 700,
472 +FW_EXTRABOLD = 800,
473 +FW_ULTRABOLD = FW_EXTRABOLD,
474 +FW_HEAVY = 900,
475 +FW_BLACK = FW_HEAVY;
476 +
477 +// LOGFONT.lfCharSet
478 +enum : DWORD {
479 + ANSI_CHARSET = 0,
480 + DEFAULT_CHARSET = 1,
481 + SYMBOL_CHARSET = 2,
482 + MAC_CHARSET = 77,
483 + SHIFTJIS_CHARSET = 128,
484 + HANGEUL_CHARSET = 129,
485 + HANGUL_CHARSET = 129,
486 + JOHAB_CHARSET = 130,
487 + GB2312_CHARSET = 134,
488 + CHINESEBIG5_CHARSET = 136,
489 + GREEK_CHARSET = 161,
490 + TURKISH_CHARSET = 162,
491 + VIETNAMESE_CHARSET = 163,
492 + HEBREW_CHARSET = 177,
493 + ARABIC_CHARSET = 178,
494 + BALTIC_CHARSET = 186,
495 + RUSSIAN_CHARSET = 204,
496 + THAI_CHARSET = 222,
497 + EASTEUROPE_CHARSET = 238,
498 + OEM_CHARSET = 255
499 +}
500 +
501 +// LOGFONT.lfOutPrecision
502 +enum : BYTE {
503 + OUT_DEFAULT_PRECIS = 0,
504 + OUT_STRING_PRECIS,
505 + OUT_CHARACTER_PRECIS,
506 + OUT_STROKE_PRECIS,
507 + OUT_TT_PRECIS,
508 + OUT_DEVICE_PRECIS,
509 + OUT_RASTER_PRECIS,
510 + OUT_TT_ONLY_PRECIS,
511 + OUT_OUTLINE_PRECIS,
512 + OUT_SCREEN_OUTLINE_PRECIS,
513 + OUT_PS_ONLY_PRECIS, // 10
514 +}
515 +
516 +// LOGFONT.lfClipPrecision
517 +enum : BYTE {
518 + CLIP_DEFAULT_PRECIS = 0,
519 + CLIP_CHARACTER_PRECIS = 1,
520 + CLIP_STROKE_PRECIS = 2,
521 + CLIP_MASK = 15,
522 + CLIP_LH_ANGLES = 16,
523 + CLIP_TT_ALWAYS = 32,
524 + CLIP_DFA_DISABLE = 64,
525 + CLIP_EMBEDDED = 128
526 +}
527 +
528 +// LOGFONT.lfQuality
529 +enum : BYTE {
530 + DEFAULT_QUALITY = 0,
531 + DRAFT_QUALITY,
532 + PROOF_QUALITY,
533 + NONANTIALIASED_QUALITY,
534 + ANTIALIASED_QUALITY
535 +}
536 +
537 +// LOGFONT.lfPitchAndFamily
538 +
539 +const BYTE
540 +DEFAULT_PITCH = 0,
541 +FIXED_PITCH = 1,
542 +VARIABLE_PITCH = 2,
543 +MONO_FONT = 8,
544 +FF_DONTCARE = 0,
545 +FF_ROMAN = 16,
546 +FF_SWISS = 32,
547 +FF_SCRIPT = 64,
548 +FF_MODERN = 48,
549 +FF_DECORATIVE = 80;
550 +
551 +// ----
552 +// Enums for the PANOSE struct
553 +
554 +const PANOSE_COUNT=10;
555 +
556 +enum {
557 + PAN_FAMILYTYPE_INDEX = 0,
558 + PAN_SERIFSTYLE_INDEX,
559 + PAN_WEIGHT_INDEX,
560 + PAN_PROPORTION_INDEX,
561 + PAN_CONTRAST_INDEX,
562 + PAN_STROKEVARIATION_INDEX,
563 + PAN_ARMSTYLE_INDEX,
564 + PAN_LETTERFORM_INDEX,
565 + PAN_MIDLINE_INDEX,
566 + PAN_XHEIGHT_INDEX
567 +}
568 +
569 +const PAN_CULTURE_LATIN=0;
570 +
571 +// NOTE: the first two values (PAN_ANY and PAN_NO_FIT) apply to all these enums!
572 +enum : BYTE {
573 + PAN_ANY = 0,
574 + PAN_NO_FIT = 1,
575 +}
576 +
577 +enum : BYTE {
578 + PAN_FAMILY_TEXT_DISPLAY = 2,
579 + PAN_FAMILY_SCRIPT,
580 + PAN_FAMILY_DECORATIVE,
581 + PAN_FAMILY_PICTORIAL
582 +}
583 +enum : BYTE {
584 + PAN_SERIF_COVE = 2,
585 + PAN_SERIF_OBTUSE_COVE,
586 + PAN_SERIF_SQUARE_COVE,
587 + PAN_SERIF_OBTUSE_SQUARE_COVE,
588 + PAN_SERIF_SQUARE,
589 + PAN_SERIF_THIN,
590 + PAN_SERIF_BONE,
591 + PAN_SERIF_EXAGGERATED,
592 + PAN_SERIF_TRIANGLE,
593 + PAN_SERIF_NORMAL_SANS,
594 + PAN_SERIF_OBTUSE_SANS,
595 + PAN_SERIF_PERP_SANS,
596 + PAN_SERIF_FLARED,
597 + PAN_SERIF_ROUNDED
598 +}
599 +
600 +enum : BYTE {
601 + PAN_WEIGHT_VERY_LIGHT = 2,
602 + PAN_WEIGHT_LIGHT,
603 + PAN_WEIGHT_THIN,
604 + PAN_WEIGHT_BOOK,
605 + PAN_WEIGHT_MEDIUM,
606 + PAN_WEIGHT_DEMI,
607 + PAN_WEIGHT_BOLD,
608 + PAN_WEIGHT_HEAVY,
609 + PAN_WEIGHT_BLACK,
610 + PAN_WEIGHT_NORD
611 +}
612 +
613 +enum : BYTE {
614 + PAN_PROP_OLD_STYLE = 2,
615 + PAN_PROP_MODERN,
616 + PAN_PROP_EVEN_WIDTH,
617 + PAN_PROP_EXPANDED,
618 + PAN_PROP_CONDENSED,
619 + PAN_PROP_VERY_EXPANDED,
620 + PAN_PROP_VERY_CONDENSED,
621 + PAN_PROP_MONOSPACED
622 +}
623 +
624 +enum : BYTE {
625 + PAN_CONTRAST_NONE = 2,
626 + PAN_CONTRAST_VERY_LOW,
627 + PAN_CONTRAST_LOW,
628 + PAN_CONTRAST_MEDIUM_LOW,
629 + PAN_CONTRAST_MEDIUM,
630 + PAN_CONTRAST_MEDIUM_HIGH,
631 + PAN_CONTRAST_HIGH,
632 + PAN_CONTRAST_VERY_HIGH
633 +}
634 +
635 +// PANOSE.bStrokeVariation
636 +enum : BYTE {
637 + PAN_STROKE_GRADUAL_DIAG = 2,
638 + PAN_STROKE_GRADUAL_TRAN,
639 + PAN_STROKE_GRADUAL_VERT,
640 + PAN_STROKE_GRADUAL_HORZ,
641 + PAN_STROKE_RAPID_VERT,
642 + PAN_STROKE_RAPID_HORZ,
643 + PAN_STROKE_INSTANT_VERT
644 +}
645 +
646 +// PANOSE.bArmStyle
647 +enum : BYTE {
648 + PAN_STRAIGHT_ARMS_HORZ = 2,
649 + PAN_STRAIGHT_ARMS_WEDGE,
650 + PAN_STRAIGHT_ARMS_VERT,
651 + PAN_STRAIGHT_ARMS_SINGLE_SERIF,
652 + PAN_STRAIGHT_ARMS_DOUBLE_SERIF,
653 + PAN_BENT_ARMS_HORZ,
654 + PAN_BENT_ARMS_WEDGE,
655 + PAN_BENT_ARMS_VERT,
656 + PAN_BENT_ARMS_SINGLE_SERIF,
657 + PAN_BENT_ARMS_DOUBLE_SERIF
658 +}
659 +
660 +// PANOSE.bLetterForm
661 +enum : BYTE {
662 + PAN_LETT_NORMAL_CONTACT = 2,
663 + PAN_LETT_NORMAL_WEIGHTED,
664 + PAN_LETT_NORMAL_BOXED,
665 + PAN_LETT_NORMAL_FLATTENED,
666 + PAN_LETT_NORMAL_ROUNDED,
667 + PAN_LETT_NORMAL_OFF_CENTER,
668 + PAN_LETT_NORMAL_SQUARE,
669 + PAN_LETT_OBLIQUE_CONTACT,
670 + PAN_LETT_OBLIQUE_WEIGHTED,
671 + PAN_LETT_OBLIQUE_BOXED,
672 + PAN_LETT_OBLIQUE_FLATTENED,
673 + PAN_LETT_OBLIQUE_ROUNDED,
674 + PAN_LETT_OBLIQUE_OFF_CENTER,
675 + PAN_LETT_OBLIQUE_SQUARE
676 +}
677 +
678 +// PANOSE.bMidLine
679 +enum : BYTE {
680 + PAN_MIDLINE_STANDARD_TRIMMED = 2,
681 + PAN_MIDLINE_STANDARD_POINTED,
682 + PAN_MIDLINE_STANDARD_SERIFED,
683 + PAN_MIDLINE_HIGH_TRIMMED,
684 + PAN_MIDLINE_HIGH_POINTED,
685 + PAN_MIDLINE_HIGH_SERIFED,
686 + PAN_MIDLINE_CONSTANT_TRIMMED,
687 + PAN_MIDLINE_CONSTANT_POINTED,
688 + PAN_MIDLINE_CONSTANT_SERIFED,
689 + PAN_MIDLINE_LOW_TRIMMED,
690 + PAN_MIDLINE_LOW_POINTED,
691 + PAN_MIDLINE_LOW_SERIFED
692 +}
693 +
694 +// PANOSE.bXHeight
695 +enum : BYTE {
696 + PAN_XHEIGHT_CONSTANT_SMALL = 2,
697 + PAN_XHEIGHT_CONSTANT_STD,
698 + PAN_XHEIGHT_CONSTANT_LARGE,
699 + PAN_XHEIGHT_DUCKING_SMALL,
700 + PAN_XHEIGHT_DUCKING_STD,
701 + PAN_XHEIGHT_DUCKING_LARGE
702 +}
703 +
704 +// ----
705 +// ???
706 +const FS_LATIN1 = 0x00000001;
707 +const FS_LATIN2 = 0x00000002;
708 +const FS_CYRILLIC = 0x00000004;
709 +const FS_GREEK = 0x00000008;
710 +const FS_TURKISH = 0x00000010;
711 +const FS_HEBREW = 0x00000020;
712 +const FS_ARABIC = 0x00000040;
713 +const FS_BALTIC = 0x00000080;
714 +const FS_VIETNAMESE = 0x00000100;
715 +const FS_THAI = 0x00010000;
716 +const FS_JISJAPAN = 0x00020000;
717 +const FS_CHINESESIMP = 0x00040000;
718 +const FS_WANSUNG = 0x00080000;
719 +const FS_CHINESETRAD = 0x00100000;
720 +const FS_JOHAB = 0x00200000;
721 +const FS_SYMBOL = 0x80000000;
722 +
723 +// ----
724 +// Poly Fill Mode
725 +enum : int {
726 + ALTERNATE = 1,
727 + WINDING = 2
728 +}
729 +const int POLYFILL_LAST = WINDING;
730 +
731 +// ---
732 +// LOGBRUSH
733 +enum : LONG {
734 + HS_HORIZONTAL = 0,
735 + HS_VERTICAL,
736 + HS_FDIAGONAL,
737 + HS_BDIAGONAL,
738 + HS_CROSS,
739 + HS_DIAGCROSS
740 +}
741 +
742 +// LOGBRUSH.lbStyle
743 +enum : UINT {
744 + BS_SOLID = 0,
745 + BS_NULL = 1,
746 + BS_HOLLOW = BS_NULL,
747 + BS_HATCHED,
748 + BS_PATTERN,
749 + BS_INDEXED,
750 + BS_DIBPATTERN,
751 + BS_DIBPATTERNPT,
752 + BS_PATTERN8X8,
753 + BS_DIBPATTERN8X8,
754 + BS_MONOPATTERN,
755 +}
756 +
757 +// -----
758 +// EXTLOGPEN, ExtCreatePen()
759 +
760 +// EXTLOGPEN.elpPenStyle
761 +enum : DWORD {
762 + PS_SOLID = 0,
763 + PS_DASH = 1,
764 + PS_DOT = 2,
765 + PS_DASHDOT = 3,
766 + PS_DASHDOTDOT = 4,
767 + PS_NULL = 5,
768 + PS_INSIDEFRAME = 6,
769 + PS_USERSTYLE = 7,
770 + PS_ALTERNATE = 8,
771 + PS_STYLE_MASK = 15,
772 +}
773 +
774 +enum : DWORD {
775 + PS_COSMETIC = 0x00000000,
776 + PS_GEOMETRIC = 0x00010000,
777 + PS_TYPE_MASK = 0x000F0000,
778 +}
779 +enum : DWORD {
780 + PS_ENDCAP_ROUND = 0x00000000,
781 + PS_ENDCAP_SQUARE = 0x00000100,
782 + PS_ENDCAP_FLAT = 0x00000200,
783 + PS_ENDCAP_MASK = 0x00000F00,
784 +}
785 +enum : DWORD {
786 + PS_JOIN_ROUND = 0x00000000,
787 + PS_JOIN_BEVEL = 0x00001000,
788 + PS_JOIN_MITER = 0x00002000,
789 + PS_JOIN_MASK = 0x0000F000,
790 +}
791 +
792 +// ---
793 +// DeviceCapabilities()
794 +
795 +enum : WORD {
796 + DC_FIELDS = 1,
797 + DC_PAPERS,
798 + DC_PAPERSIZE,
799 + DC_MINEXTENT,
800 + DC_MAXEXTENT,
801 + DC_BINS,
802 + DC_DUPLEX,
803 + DC_SIZE,
804 + DC_EXTRA,
805 + DC_VERSION,
806 + DC_DRIVER,
807 + DC_BINNAMES,
808 + DC_ENUMRESOLUTIONS,
809 + DC_FILEDEPENDENCIES,
810 + DC_TRUETYPE,
811 + DC_PAPERNAMES,
812 + DC_ORIENTATION,
813 + DC_COPIES,
814 + DC_BINADJUST,
815 + DC_EMF_COMPLIANT,
816 + DC_DATATYPE_PRODUCED,
817 + DC_COLLATE,
818 + DC_MANUFACTURER,
819 + DC_MODEL,
820 +}
821 +
822 +static
823 +
824 +if (WINVER >= 0x0500)
825 +{
826 + enum {
827 + DC_PERSONALITY = 25,
828 + DC_PRINTRATE = 26,
829 + DC_PRINTRATEUNIT = 27,
830 + DC_PRINTERMEM = 28,
831 + DC_MEDIAREADY = 29,
832 + DC_STAPLE = 30,
833 + DC_PRINTRATEPPM = 31,
834 + DC_COLORDEVICE = 32,
835 + DC_NUP = 33,
836 + DC_MEDIATYPENAMES = 34,
837 + DC_MEDIATYPES = 35,
838 + }
839 + enum {
840 + PRINTRATEUNIT_PPM = 1,
841 + PRINTRATEUNIT_CPS = 2,
842 + PRINTRATEUNIT_LPM = 3,
843 + PRINTRATEUNIT_IPM = 4,
844 + }
845 +}
846 +
847 +// return from DC_TRUETYPE
848 +const DWORD
849 +DCTT_BITMAP = 1,
850 +DCTT_DOWNLOAD = 2,
851 +DCTT_SUBDEV = 4,
852 +DCTT_DOWNLOAD_OUTLINE = 8;
853 +
854 +static
855 +
856 +if (WINVER >= 0x0400)
857 +{
858 + // return from DC_BINADJUST
859 + enum : DWORD {
860 + DCBA_FACEUPNONE = 0x0000,
861 + DCBA_FACEUPCENTER = 0x0001,
862 + DCBA_FACEUPLEFT = 0x0002,
863 + DCBA_FACEUPRIGHT = 0x0003,
864 + DCBA_FACEDOWNNONE = 0x0100,
865 + DCBA_FACEDOWNCENTER = 0x0101,
866 + DCBA_FACEDOWNLEFT = 0x0102,
867 + DCBA_FACEDOWNRIGHT = 0x0103,
868 + }
869 +}
870 +
871 +// ---
872 +
873 +const FLOODFILLBORDER = 0;
874 +const FLOODFILLSURFACE = 1;
875 +
876 +// ExtTextOut()
877 +const UINT
878 +ETO_OPAQUE = 0x0002,
879 +ETO_CLIPPED = 0x0004,
880 +ETO_GLYPH_INDEX = 0x0010,
881 +ETO_RTLREADING = 0x0080,
882 +ETO_NUMERICSLOCAL = 0x0400,
883 +ETO_NUMERICSLATIN = 0x0800,
884 +ETO_IGNORELANGUAGE = 0x1000;
885 +static
886 +
887 +if (_WIN32_WINNT >= 0x0500)
888 +{
889 + const UINT
890 + ETO_PDY = 0x2000;
891 +}
892 +
893 +// GdiComment()
894 +enum {
895 + GDICOMMENT_BEGINGROUP = 0x00000002,
896 + GDICOMMENT_ENDGROUP = 0x00000003,
897 + GDICOMMENT_UNICODE_STRING = 0x00000040,
898 + GDICOMMENT_UNICODE_END = 0x00000080,
899 + GDICOMMENT_MULTIFORMATS = 0x40000004,
900 + GDICOMMENT_IDENTIFIER = 0x43494447,
901 + GDICOMMENT_WINDOWS_METAFILE = 0x80000001,
902 +}
903 +
904 +// Get/SetArcDirection()
905 +enum : int {
906 + AD_COUNTERCLOCKWISE = 1,
907 + AD_CLOCKWISE = 2
908 +}
909 +
910 +const RDH_RECTANGLES = 1;
911 +
912 +// GCPRESULTS.lpClass
913 +enum {
914 + GCPCLASS_LATIN = 1,
915 + GCPCLASS_HEBREW = 2,
916 + GCPCLASS_ARABIC = 2,
917 + GCPCLASS_NEUTRAL,
918 + GCPCLASS_LOCALNUMBER,
919 + GCPCLASS_LATINNUMBER,
920 + GCPCLASS_LATINNUMERICTERMINATOR,
921 + GCPCLASS_LATINNUMERICSEPARATOR,
922 + GCPCLASS_NUMERICSEPARATOR, // = 8,
923 + GCPCLASS_POSTBOUNDRTL = 16,
924 + GCPCLASS_POSTBOUNDLTR = 32,
925 + GCPCLASS_PREBOUNDRTL = 64,
926 + GCPCLASS_PREBOUNDLTR = 128,
927 + GCPGLYPH_LINKAFTER = 0x4000,
928 + GCPGLYPH_LINKBEFORE = 0x8000
929 +}
930 +
931 +// GetBoundsRect(), SetBoundsRect()
932 +const UINT
933 +DCB_RESET = 1,
934 +DCB_ACCUMULATE = 2,
935 +DCB_SET = DCB_RESET | DCB_ACCUMULATE,
936 +DCB_ENABLE = 4,
937 +DCB_DISABLE = 8,
938 +DCB_DIRTY = DCB_ACCUMULATE;
939 +
940 +// ---
941 +// GetObjectType()
942 +enum : DWORD {
943 + OBJ_PEN = 1,
944 + OBJ_BRUSH,
945 + OBJ_DC,
946 + OBJ_METADC,
947 + OBJ_PAL,
948 + OBJ_FONT,
949 + OBJ_BITMAP,
950 + OBJ_REGION,
951 + OBJ_METAFILE,
952 + OBJ_MEMDC,
953 + OBJ_EXTPEN,
954 + OBJ_ENHMETADC,
955 + OBJ_ENHMETAFILE,
956 + OBJ_COLORSPACE,
957 +}
958 +
959 +// ---------------------
960 +// Capabilities for GetDeviceCaps(dc, xxx)
961 +
962 +enum : int {
963 + DRIVERVERSION = 0,
964 + TECHNOLOGY = 2,
965 + HORZSIZE = 4,
966 + VERTSIZE = 6,
967 + HORZRES = 8,
968 + VERTRES = 10,
969 + BITSPIXEL = 12,
970 + PLANES = 14,
971 + NUMBRUSHES = 16,
972 + NUMPENS = 18,
973 + NUMMARKERS = 20,
974 + NUMFONTS = 22,
975 + NUMCOLORS = 24,
976 + PDEVICESIZE = 26,
977 + CURVECAPS = 28,
978 + LINECAPS = 30,
979 + POLYGONALCAPS = 32,
980 + TEXTCAPS = 34,
981 + CLIPCAPS = 36,
982 + RASTERCAPS = 38,
983 + ASPECTX = 40,
984 + ASPECTY = 42,
985 + ASPECTXY = 44,
986 + LOGPIXELSX = 88,
987 + LOGPIXELSY = 90,
988 + SIZEPALETTE = 104,
989 + NUMRESERVED = 106,
990 + COLORRES = 108,
991 + PHYSICALWIDTH = 110,
992 + PHYSICALHEIGHT = 111,
993 + PHYSICALOFFSETX = 112,
994 + PHYSICALOFFSETY = 113,
995 + SCALINGFACTORX = 114,
996 + SCALINGFACTORY = 115,
997 + VREFRESH = 116,
998 + DESKTOPVERTRES = 117,
999 + DESKTOPHORZRES = 118,
1000 + BLTALIGNMENT = 119
1001 +}
1002 +static
1003 +
1004 +if (WINVER >= 0x0500)
1005 +{
1006 + int
1007 + SHADEBLENDCAPS = 120,
1008 + COLORMGMTCAPS = 121;
1009 +}
1010 +
1011 +// Return values for GetDeviceCaps(dc, TECHNOLOGY)
1012 +enum : int {
1013 + DT_PLOTTER = 0,
1014 + DT_RASDISPLAY,
1015 + DT_RASPRINTER,
1016 + DT_RASCAMERA,
1017 + DT_CHARSTREAM,
1018 + DT_METAFILE,
1019 + DT_DISPFILE // = 6
1020 +}
1021 +
1022 +// Return values for GetDeviceCaps(dc, RASTERCAPS)
1023 +const int
1024 +RC_NONE = 0,
1025 +RC_BITBLT = 1,
1026 +RC_BANDING = 2,
1027 +RC_SCALING = 4,
1028 +RC_BITMAP64 = 8,
1029 +RC_GDI20_OUTPUT = 16,
1030 +RC_GDI20_STATE = 32,
1031 +RC_SAVEBITMAP = 64,
1032 +RC_DI_BITMAP = 128,
1033 +RC_PALETTE = 256,
1034 +RC_DIBTODEV = 512,
1035 +RC_BIGFONT = 1024,
1036 +RC_STRETCHBLT = 2048,
1037 +RC_FLOODFILL = 4096,
1038 +RC_STRETCHDIB = 8192,
1039 +RC_OP_DX_OUTPUT = 0x4000,
1040 +RC_DEVBITS = 0x8000;
1041 +
1042 +static
1043 +
1044 +if (WINVER >= 0x0500)
1045 +{
1046 + /* Shading and blending caps */
1047 + const SB_NONE = 0x00000000;
1048 + const SB_CONST_ALPHA = 0x00000001;
1049 + const SB_PIXEL_ALPHA = 0x00000002;
1050 + const SB_PREMULT_ALPHA = 0x00000004;
1051 + const SB_GRAD_RECT = 0x00000010;
1052 + const SB_GRAD_TRI = 0x00000020;
1053 +
1054 + /* Color Management caps */
1055 + const CM_NONE = 0x00000000;
1056 + const CM_DEVICE_ICM = 0x00000001;
1057 + const CM_GAMMA_RAMP = 0x00000002;
1058 + const CM_CMYK_COLOR = 0x00000004;
1059 +}
1060 +
1061 +// Return values for GetDeviceCaps(dc, CURVECAPS)
1062 +const int
1063 +CC_NONE = 0,
1064 +CC_CIRCLES = 1,
1065 +CC_PIE = 2,
1066 +CC_CHORD = 4,
1067 +CC_ELLIPSES = 8,
1068 +CC_WIDE = 16,
1069 +CC_STYLED = 32,
1070 +CC_WIDESTYLED = 64,
1071 +CC_INTERIORS = 128,
1072 +CC_ROUNDRECT = 256;
1073 +
1074 +// Return values for GetDeviceCaps(dc, LINECAPS)
1075 +
1076 +const int
1077 +LC_NONE = 0,
1078 +LC_POLYLINE = 2,
1079 +LC_MARKER = 4,
1080 +LC_POLYMARKER = 8,
1081 +LC_WIDE = 16,
1082 +LC_STYLED = 32,
1083 +LC_WIDESTYLED = 64,
1084 +LC_INTERIORS = 128;
1085 +
1086 +// Return values for GetDeviceCaps(dc, POLYGONALCAPS)
1087 +
1088 +const int
1089 +PC_NONE = 0,
1090 +PC_POLYGON = 1,
1091 +PC_RECTANGLE = 2,
1092 +PC_WINDPOLYGON = 4,
1093 +PC_TRAPEZOID = 4,
1094 +PC_SCANLINE = 8,
1095 +PC_WIDE = 16,
1096 +PC_STYLED = 32,
1097 +PC_WIDESTYLED = 64,
1098 +PC_INTERIORS = 128,
1099 +PC_POLYPOLYGON = 256,
1100 +PC_PATHS = 512;
1101 +
1102 +/* Clipping Capabilities */
1103 +const int CP_NONE = 0,
1104 + CP_RECTANGLE = 1,
1105 + CP_REGION = 2;
1106 +
1107 +// Return values for GetDeviceCaps(dc, TEXTCAPS)
1108 +
1109 +const int
1110 +TC_OP_CHARACTER = 1,
1111 +TC_OP_STROKE = 2,
1112 +TC_CP_STROKE = 4,
1113 +TC_CR_90 = 8,
1114 +TC_CR_ANY = 16,
1115 +TC_SF_X_YINDEP = 32,
1116 +TC_SA_DOUBLE = 64,
1117 +TC_SA_INTEGER = 128,
1118 +TC_SA_CONTIN = 256,
1119 +TC_EA_DOUBLE = 512,
1120 +TC_IA_ABLE = 1024,
1121 +TC_UA_ABLE = 2048,
1122 +TC_SO_ABLE = 4096,
1123 +TC_RA_ABLE = 8192,
1124 +TC_VA_ABLE = 16384,
1125 +TC_RESERVED = 32768,
1126 +TC_SCROLLBLT = 65536;
1127 +
1128 +// End GetDeviceCaps
1129 +// ---------------------
1130 +// GetCharacterPlacement(), and GetFontLanguageInfo()
1131 +const DWORD
1132 +GCP_DBCS = 1,
1133 +GCP_REORDER = 2,
1134 +GCP_USEKERNING = 8,
1135 +GCP_GLYPHSHAPE = 16,
1136 +GCP_LIGATE = 32,
1137 +GCP_DIACRITIC = 256,
1138 +GCP_KASHIDA = 1024,
1139 +GCP_ERROR = 0x8000,
1140 +GCP_JUSTIFY = 0x10000,
1141 +GCP_CLASSIN = 0x80000,
1142 +GCP_MAXEXTENT = 0x100000,
1143 +GCP_JUSTIFYIN = 0x200000,
1144 +GCP_DISPLAYZWG = 0x400000,
1145 +GCP_SYMSWAPOFF = 0x800000,
1146 +GCP_NUMERICOVERRIDE = 0x1000000,
1147 +GCP_NEUTRALOVERRIDE = 0x2000000,
1148 +GCP_NUMERICSLATIN = 0x4000000,
1149 +GCP_NUMERICSLOCAL = 0x8000000,
1150 +
1151 +// Only for GetFontLanguageInfo()
1152 +FLI_GLYPHS = 0x40000,
1153 +FLI_MASK = 0x103b;
1154 +
1155 +// GetGlyphOutline()
1156 +enum : UINT {
1157 + GGO_METRICS = 0,
1158 + GGO_BITMAP = 1,
1159 + GGO_NATIVE = 2,
1160 + GGO_BEZIER = 3,
1161 + GGO_GRAY2_BITMAP = 4,
1162 + GGO_GRAY4_BITMAP = 5,
1163 + GGO_GRAY8_BITMAP = 6,
1164 + GGO_GLYPH_INDEX = 128,
1165 + GGO_UNHINTED = 256
1166 +}
1167 +
1168 +enum : int {
1169 + GM_COMPATIBLE = 1,
1170 + GM_ADVANCED
1171 +}
1172 +const GM_LAST = GM_ADVANCED;
1173 +
1174 +enum : int {
1175 + MM_TEXT = 1,
1176 + MM_LOMETRIC,
1177 + MM_HIMETRIC,
1178 + MM_LOENGLISH,
1179 + MM_HIENGLISH,
1180 + MM_TWIPS,
1181 + MM_ISOTROPIC,
1182 + MM_ANISOTROPIC,
1183 +}
1184 +
1185 +const int
1186 +MM_MIN = MM_TEXT,
1187 +MM_MAX = MM_ANISOTROPIC,
1188 +MM_MAX_FIXEDSCALE = MM_TWIPS;
1189 +
1190 +const ABSOLUTE = 1;
1191 +const RELATIVE = 2;
1192 +
1193 +enum : BYTE {
1194 + PC_RESERVED = 1,
1195 + PC_EXPLICIT = 2,
1196 + PC_NOCOLLAPSE = 4
1197 +}
1198 +
1199 +/* FIXME: move to win32.commctrl ? */
1200 +
1201 +// ImageList
1202 +const COLORREF
1203 +CLR_NONE = 0xffffffff,
1204 +CLR_INVALID = CLR_NONE,
1205 +CLR_DEFAULT = 0xff000000;
1206 +
1207 +// RASTERIZER_STATUS.wFlags
1208 +const short
1209 +TT_AVAILABLE = 1,
1210 +TT_ENABLED = 2;
1211 +
1212 +// GetStockObject()
1213 +enum : int {
1214 + WHITE_BRUSH = 0,
1215 + LTGRAY_BRUSH,
1216 + GRAY_BRUSH,
1217 + DKGRAY_BRUSH,
1218 + BLACK_BRUSH,
1219 + HOLLOW_BRUSH, // = 5
1220 + NULL_BRUSH = HOLLOW_BRUSH,
1221 + WHITE_PEN = 6,
1222 + BLACK_PEN,
1223 + NULL_PEN, // = 8
1224 + OEM_FIXED_FONT = 10,
1225 + ANSI_FIXED_FONT,
1226 + ANSI_VAR_FONT,
1227 + SYSTEM_FONT,
1228 + DEVICE_DEFAULT_FONT,
1229 + DEFAULT_PALETTE,
1230 + SYSTEM_FIXED_FONT,
1231 +}
1232 +static
1233 +
1234 +if (WINVER >= 0x0400)
1235 +{
1236 + enum : int {
1237 + DEFAULT_GUI_FONT = SYSTEM_FIXED_FONT + 1,
1238 + }
1239 +}
1240 +
1241 +static
1242 +
1243 +if (_WIN32_WINNT >= 0x0500)
1244 +{
1245 + enum : int {
1246 + DC_BRUSH = DEFAULT_GUI_FONT + 1,
1247 + DC_PEN,
1248 + }
1249 +}
1250 +
1251 +static
1252 +
1253 +if (_WIN32_WINNT >= 0x0500)
1254 +{
1255 + const STOCK_LAST = DC_PEN;
1256 +}
1257 +else static
1258 +
1259 + if (WINVER >= 0x0400)
1260 + {
1261 + const STOCK_LAST = DEFAULT_GUI_FONT;
1262 + }
1263 + else
1264 + {
1265 + const STOCK_LAST = SYSTEM_FIXED_FONT;
1266 + }
1267 +
1268 +// Get/SetSystemPaletteUse()
1269 +enum : UINT {
1270 + SYSPAL_ERROR = 0,
1271 + SYSPAL_STATIC = 1,
1272 + SYSPAL_NOSTATIC = 2,
1273 + SYSPAL_NOSTATIC256 = 3,
1274 +}
1275 +
1276 +// SetTextAlign()
1277 +const UINT
1278 +TA_TOP = 0,
1279 +TA_CENTER = 6,
1280 +TA_BOTTOM = 8,
1281 +TA_BASELINE = 24,
1282 +TA_LEFT = 0,
1283 +TA_RIGHT = 2,
1284 +TA_RTLREADING = 256,
1285 +TA_NOUPDATECP = 0,
1286 +TA_UPDATECP = 1,
1287 +TA_MASK = TA_BASELINE + TA_CENTER + TA_UPDATECP + TA_RTLREADING,
1288 +VTA_BASELINE = TA_BASELINE,
1289 +VTA_CENTER = TA_CENTER,
1290 +VTA_LEFT = TA_BOTTOM,
1291 +VTA_RIGHT = TA_TOP,
1292 +VTA_BOTTOM = TA_RIGHT,
1293 +VTA_TOP = TA_LEFT;
1294 +
1295 +// EMRMODIFYWORLDTRANSFORM.iMode
1296 +enum : DWORD {
1297 + MWT_IDENTITY = 1,
1298 + MWT_LEFTMULTIPLY,
1299 + MWT_RIGHTMULTIPLY
1300 +}
1301 +
1302 +const DWORD
1303 +MWT_MIN = MWT_IDENTITY,
1304 +MWT_MAX = MWT_RIGHTMULTIPLY;
1305 +
1306 +enum {
1307 + TRANSPARENT = 1,
1308 + OPAQUE = 2
1309 +}
1310 +
1311 +// Get/SetStretchMode()
1312 +enum : int {
1313 + BLACKONWHITE = 1,
1314 + WHITEONBLACK = 2,
1315 + COLORONCOLOR = 3,
1316 + HALFTONE = 4,
1317 +
1318 + STRETCH_ANDSCANS = 1,
1319 + STRETCH_ORSCANS = 2,
1320 + STRETCH_DELETESCANS = 3,
1321 + STRETCH_HALFTONE = 4,
1322 +
1323 + MAXSTRETCHBLTMODE = 4
1324 +}
1325 +
1326 +// TranslateCharsetInfo()
1327 +enum : DWORD {
1328 + TCI_SRCCHARSET = 1,
1329 + TCI_SRCCODEPAGE = 2,
1330 + TCI_SRCFONTSIG = 3,
1331 + TCI_SRCLOCALE = 0x1000,
1332 +}
1333 +
1334 +// SetICMMode()
1335 +enum : int {
1336 + ICM_OFF = 1,
1337 + ICM_ON = 2,
1338 + ICM_QUERY = 3,
1339 + ICM_DONE_OUTSIDEDC = 4,
1340 +}
1341 +
1342 +// ----
1343 +// Escape() Spooler Error Codes
1344 +enum : int {
1345 + SP_NOTREPORTED = 0x4000,
1346 + SP_ERROR = -1,
1347 + SP_APPABORT = -2,
1348 + SP_USERABORT = -3,
1349 + SP_OUTOFDISK = -4,
1350 + SP_OUTOFMEMORY = -5
1351 +}
1352 +
1353 +// Escape(), ExtEscape()
1354 +// Most of the following are deprecated (Win16 only)
1355 +enum : int {
1356 + NEWFRAME = 1,
1357 + ABORTDOC = 2,
1358 + NEXTBAND = 3,
1359 + SETCOLORTABLE = 4,
1360 + GETCOLORTABLE = 5,
1361 + FLUSHOUTPUT = 6,
1362 + DRAFTMODE = 7,
1363 + QUERYESCSUPPORT = 8,
1364 + SETABORTPROC = 9,
1365 + STARTDOC = 10,
1366 + ENDDOC = 11,
1367 + GETPHYSPAGESIZE = 12,
1368 + GETPRINTINGOFFSET = 13,
1369 + GETSCALINGFACTOR = 14,
1370 + MFCOMMENT = 15,
1371 + GETPENWIDTH = 16,
1372 + SETCOPYCOUNT = 17,
1373 + SELECTPAPERSOURCE = 18,
1374 + DEVICEDATA = 19,
1375 + PASSTHROUGH = 19,
1376 + GETTECHNOLOGY = 20,
1377 + SETLINECAP = 21,
1378 + SETLINEJOIN = 22,
1379 + SETMITERLIMIT = 23,
1380 + BANDINFO = 24,
1381 + DRAWPATTERNRECT = 25,
1382 + GETVECTORPENSIZE = 26,
1383 + GETVECTORBRUSHSIZE = 27,
1384 + ENABLEDUPLEX = 28,
1385 + GETSETPAPERBINS = 29,
1386 + GETSETPRINTORIENT = 30,
1387 + ENUMPAPERBINS = 31,
1388 + SETDIBSCALING = 32,
1389 + EPSPRINTING = 33,
1390 + ENUMPAPERMETRICS = 34,
1391 + GETSETPAPERMETRICS = 35,
1392 + POSTSCRIPT_DATA = 37,
1393 + POSTSCRIPT_IGNORE = 38,
1394 + MOUSETRAILS = 39,
1395 + GETDEVICEUNITS = 42,
1396 + GETEXTENDEDTEXTMETRICS = 256,
1397 + GETEXTENTTABLE = 257,
1398 + GETPAIRKERNTABLE = 258,
1399 + GETTRACKKERNTABLE = 259,
1400 + EXTTEXTOUT = 512,
1401 + GETFACENAME = 513,
1402 + DOWNLOADFACE = 514,
1403 + ENABLERELATIVEWIDTHS = 768,
1404 + ENABLEPAIRKERNING = 769,
1405 + SETKERNTRACK = 770,
1406 + SETALLJUSTVALUES = 771,
1407 + SETCHARSET = 772,
1408 + STRETCHBLT = 2048,
1409 + METAFILE_DRIVER = 2049,
1410 + GETSETSCREENPARAMS = 3072,
1411 + QUERYDIBSUPPORT = 3073,
1412 + BEGIN_PATH = 4096,
1413 + CLIP_TO_PATH = 4097,
1414 + END_PATH = 4098,
1415 + EXT_DEVICE_CAPS = 4099,
1416 + RESTORE_CTM = 4100,
1417 + SAVE_CTM = 4101,
1418 + SET_ARC_DIRECTION = 4102,
1419 + SET_BACKGROUND_COLOR = 4103,
1420 + SET_POLY_MODE = 4104,
1421 + SET_SCREEN_ANGLE = 4105,
1422 + SET_SPREAD = 4106,
1423 + TRANSFORM_CTM = 4107,
1424 + SET_CLIP_BOX = 4108,
1425 + SET_BOUNDS = 4109,
1426 + SET_MIRROR_MODE = 4110,
1427 + OPENCHANNEL = 4110,
1428 + DOWNLOADHEADER = 4111,
1429 + CLOSECHANNEL = 4112,
1430 + POSTSCRIPT_PASSTHROUGH = 4115,
1431 + ENCAPSULATED_POSTSCRIPT = 4116,
1432 + POSTSCRIPT_IDENTIFY = 4117,
1433 + POSTSCRIPT_INJECTION = 4118,
1434 + CHECKJPEGFORMAT = 4119,
1435 + CHECKPNGFORMAT = 4120,
1436 + GET_PS_FEATURESETTING = 4121,
1437 + SPCLPASSTHROUGH2 = 4568,
1438 +}
1439 +
1440 +enum : int {
1441 + PSIDENT_GDICENTRIC = 0,
1442 + PSIDENT_PSCENTRIC = 1,
1443 +}
1444 +
1445 +/*
1446 + * Header structure for the input buffer to POSTSCRIPT_INJECTION escape
1447 + */
1448 +struct PSINJECTDATA
1449 +{
1450 + DWORD DataBytes;
1451 + WORD InjectionPoint;
1452 + WORD PageNumber;
1453 +}
1454 +alias PSINJECTDATA*PPSINJECTDATA;
1455 +
1456 +/* Constants for PSINJECTDATA.InjectionPoint field */
1457 +enum {
1458 + PSINJECT_BEGINSTREAM = 1,
1459 + PSINJECT_PSADOBE = 2,
1460 + PSINJECT_PAGESATEND = 3,
1461 + PSINJECT_PAGES = 4,
1462 + PSINJECT_DOCNEEDEDRES = 5,
1463 + PSINJECT_DOCSUPPLIEDRES = 6,
1464 + PSINJECT_PAGEORDER = 7,
1465 + PSINJECT_ORIENTATION = 8,
1466 + PSINJECT_BOUNDINGBOX = 9,
1467 + PSINJECT_DOCUMENTPROCESSCOLORS = 10,
1468 + PSINJECT_COMMENTS = 11,
1469 + PSINJECT_BEGINDEFAULTS = 12,
1470 + PSINJECT_ENDDEFAULTS = 13,
1471 + PSINJECT_BEGINPROLOG = 14,
1472 + PSINJECT_ENDPROLOG = 15,
1473 + PSINJECT_BEGINSETUP = 16,
1474 + PSINJECT_ENDSETUP = 17,
1475 + PSINJECT_TRAILER = 18,
1476 + PSINJECT_EOF = 19,
1477 + PSINJECT_ENDSTREAM = 20,
1478 + PSINJECT_DOCUMENTPROCESSCOLORSATEND = 21,
1479 +
1480 + PSINJECT_PAGENUMBER = 100,
1481 + PSINJECT_BEGINPAGESETUP = 101,
1482 + PSINJECT_ENDPAGESETUP = 102,
1483 + PSINJECT_PAGETRAILER = 103,
1484 + PSINJECT_PLATECOLOR = 104,
1485 + PSINJECT_SHOWPAGE = 105,
1486 + PSINJECT_PAGEBBOX = 106,
1487 + PSINJECT_ENDPAGECOMMENTS = 107,
1488 +
1489 + PSINJECT_VMSAVE = 200,
1490 + PSINJECT_VMRESTORE = 201,
1491 +}
1492 +
1493 +/* Parameter for GET_PS_FEATURESETTING escape */
1494 +enum {
1495 + FEATURESETTING_NUP = 0,
1496 + FEATURESETTING_OUTPUT = 1,
1497 + FEATURESETTING_PSLEVEL = 2,
1498 + FEATURESETTING_CUSTPAPER = 3,
1499 + FEATURESETTING_MIRROR = 4,
1500 + FEATURESETTING_NEGATIVE = 5,
1501 + FEATURESETTING_PROTOCOL = 6,
1502 +}
1503 +
1504 +enum {
1505 + FEATURESETTING_PRIVATE_BEGIN = 0x1000,
1506 + FEATURESETTING_PRIVATE_END = 0x1FFF,
1507 +}
1508 +
1509 +/* Value returned for FEATURESETTING_PROTOCOL */
1510 +const PSPROTOCOL_ASCII = 0;
1511 +const PSPROTOCOL_BCP = 1;
1512 +const PSPROTOCOL_TBCP = 2;
1513 +const PSPROTOCOL_BINARY = 3;
1514 +
1515 +// ----
1516 +
1517 +const WPARAM PR_JOBSTATUS = 0;
1518 +
1519 +// ???
1520 +const QDI_SETDIBITS = 1;
1521 +const QDI_GETDIBITS = 2;
1522 +const QDI_DIBTOSCREEN = 4;
1523 +const QDI_STRETCHDIB = 8;
1524 +
1525 +const ASPECT_FILTERING = 1;
1526 +
1527 +// LOGCOLORSPACE.lcsCSType
1528 +enum : LCSCSTYPE {
1529 + LCS_CALIBRATED_RGB = 0,
1530 + LCS_DEVICE_RGB,
1531 + LCS_DEVICE_CMYK
1532 +} /* What this for? */
1533 +
1534 +// LOGCOLORSPACE.lcsIntent
1535 +enum : LCSGAMUTMATCH {
1536 + LCS_GM_BUSINESS = 1,
1537 + LCS_GM_GRAPHICS = 2,
1538 + LCS_GM_IMAGES = 4,
1539 + LCS_GM_ABS_COLORIMETRIC = 8,
1540 +}
1541 +
1542 +const DWORD
1543 +RASTER_FONTTYPE = 1,
1544 +DEVICE_FONTTYPE = 2,
1545 +TRUETYPE_FONTTYPE = 4;
1546 +
1547 +// ---
1548 +// DEVMODE struct
1549 +
1550 +// FIXME: Not needed for D (use .length instead)
1551 +const CCHDEVICENAME = 32;
1552 +const CCHFORMNAME = 32;
1553 +
1554 +// DEVMODE.dmSpecVersion
1555 +// current version of specification
1556 +static
1557 +
1558 +if (WINVER >= 0x0500 || _WIN32_WINNT >= 0x0400)
1559 +{
1560 + const WORD DM_SPECVERSION = 0x0401;
1561 +}
1562 +else static
1563 +
1564 + if (WINVER >= 0x0400)
1565 + {
1566 + const WORD DM_SPECVERSION = 0x0400;
1567 + }
1568 + else
1569 + {
1570 + const WORD DM_SPECVERSION = 0x0320;
1571 + }
1572 +
1573 +// DEVMODE.dmOrientation
1574 +enum : short {
1575 + DMORIENT_PORTRAIT = 1,
1576 + DMORIENT_LANDSCAPE = 2
1577 +}
1578 +
1579 +// DEVMODE.dmPaperSize
1580 +enum : short {
1581 + DMPAPER_LETTER = 1,
1582 + DMPAPER_LETTERSMALL,
1583 + DMPAPER_TABLOID,
1584 + DMPAPER_LEDGER,
1585 + DMPAPER_LEGAL,
1586 + DMPAPER_STATEMENT,
1587 + DMPAPER_EXECUTIVE,
1588 + DMPAPER_A3,
1589 + DMPAPER_A4,
1590 + DMPAPER_A4SMALL,
1591 + DMPAPER_A5,
1592 + DMPAPER_B4,
1593 + DMPAPER_B5,
1594 + DMPAPER_FOLIO,
1595 + DMPAPER_QUARTO,
1596 + DMPAPER_10X14,
1597 + DMPAPER_11X17,
1598 + DMPAPER_NOTE,
1599 + DMPAPER_ENV_9,
1600 + DMPAPER_ENV_10,
1601 + DMPAPER_ENV_11,
1602 + DMPAPER_ENV_12,
1603 + DMPAPER_ENV_14,
1604 + DMPAPER_CSHEET,
1605 + DMPAPER_DSHEET,
1606 + DMPAPER_ESHEET,
1607 + DMPAPER_ENV_DL,
1608 + DMPAPER_ENV_C5,
1609 + DMPAPER_ENV_C3,
1610 + DMPAPER_ENV_C4,
1611 + DMPAPER_ENV_C6,
1612 + DMPAPER_ENV_C65,
1613 + DMPAPER_ENV_B4,
1614 + DMPAPER_ENV_B5,
1615 + DMPAPER_ENV_B6,
1616 + DMPAPER_ENV_ITALY,
1617 + DMPAPER_ENV_MONARCH,
1618 + DMPAPER_ENV_PERSONAL,
1619 + DMPAPER_FANFOLD_US,
1620 + DMPAPER_FANFOLD_STD_GERMAN,
1621 + DMPAPER_FANFOLD_LGL_GERMAN,
1622 + DMPAPER_ISO_B4,
1623 + DMPAPER_JAPANESE_POSTCARD,
1624 + DMPAPER_9X11,
1625 + DMPAPER_10X11,
1626 + DMPAPER_15X11,
1627 + DMPAPER_ENV_INVITE,
1628 + DMPAPER_RESERVED_48,
1629 + DMPAPER_RESERVED_49,
1630 + DMPAPER_LETTER_EXTRA,
1631 + DMPAPER_LEGAL_EXTRA,
1632 + DMPAPER_TABLOID_EXTRA,
1633 + DMPAPER_A4_EXTRA,
1634 + DMPAPER_LETTER_TRANSVERSE,
1635 + DMPAPER_A4_TRANSVERSE,
1636 + DMPAPER_LETTER_EXTRA_TRANSVERSE,
1637 + DMPAPER_A_PLUS,
1638 + DMPAPER_B_PLUS,
1639 + DMPAPER_LETTER_PLUS,
1640 + DMPAPER_A4_PLUS,
1641 + DMPAPER_A5_TRANSVERSE,
1642 + DMPAPER_B5_TRANSVERSE,
1643 + DMPAPER_A3_EXTRA,
1644 + DMPAPER_A5_EXTRA,
1645 + DMPAPER_B5_EXTRA,
1646 + DMPAPER_A2,
1647 + DMPAPER_A3_TRANSVERSE,
1648 + DMPAPER_A3_EXTRA_TRANSVERSE // = 68
1649 +}
1650 +static
1651 +
1652 +if (WINVER >= 0x0500)
1653 +{
1654 + enum : short {
1655 + DMPAPER_DBL_JAPANESE_POSTCARD = 69,
1656 + DMPAPER_A6,
1657 + DMPAPER_JENV_KAKU2,
1658 + DMPAPER_JENV_KAKU3,
1659 + DMPAPER_JENV_CHOU3,
1660 + DMPAPER_JENV_CHOU4,
1661 + DMPAPER_LETTER_ROTATED,
1662 + DMPAPER_A3_ROTATED,
1663 + DMPAPER_A4_ROTATED,
1664 + DMPAPER_A5_ROTATED,
1665 + DMPAPER_B4_JIS_ROTATED,
1666 + DMPAPER_B5_JIS_ROTATED,
1667 + DMPAPER_JAPANESE_POSTCARD_ROTATED,
1668 + DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED,
1669 + DMPAPER_A6_ROTATED,
1670 + DMPAPER_JENV_KAKU2_ROTATED,
1671 + DMPAPER_JENV_KAKU3_ROTATED,
1672 + DMPAPER_JENV_CHOU3_ROTATED,
1673 + DMPAPER_JENV_CHOU4_ROTATED,
1674 + DMPAPER_B6_JIS,
1675 + DMPAPER_B6_JIS_ROTATED,
1676 + DMPAPER_12X11,
1677 + DMPAPER_JENV_YOU4,
1678 + DMPAPER_JENV_YOU4_ROTATED,
1679 + DMPAPER_P16K,
1680 + DMPAPER_P32K,
1681 + DMPAPER_P32KBIG,
1682 + DMPAPER_PENV_1,
1683 + DMPAPER_PENV_2,
1684 + DMPAPER_PENV_3,
1685 + DMPAPER_PENV_4,
1686 + DMPAPER_PENV_5,
1687 + DMPAPER_PENV_6,
1688 + DMPAPER_PENV_7,
1689 + DMPAPER_PENV_8,
1690 + DMPAPER_PENV_9,
1691 + DMPAPER_PENV_10,
1692 + DMPAPER_P16K_ROTATED,
1693 + DMPAPER_P32K_ROTATED,
1694 + DMPAPER_P32KBIG_ROTATED,
1695 + DMPAPER_PENV_1_ROTATED,
1696 + DMPAPER_PENV_2_ROTATED,
1697 + DMPAPER_PENV_3_ROTATED,
1698 + DMPAPER_PENV_4_ROTATED,
1699 + DMPAPER_PENV_5_ROTATED,
1700 + DMPAPER_PENV_6_ROTATED,
1701 + DMPAPER_PENV_7_ROTATED,
1702 + DMPAPER_PENV_8_ROTATED,
1703 + DMPAPER_PENV_9_ROTATED,
1704 + DMPAPER_PENV_10_ROTATED // 118
1705 + }
1706 +}
1707 +
1708 +const short DMPAPER_FIRST = DMPAPER_LETTER;
1709 +
1710 +static
1711 +
1712 +if (WINVER >= 0x0500)
1713 + const short DMPAPER_LAST = DMPAPER_PENV_10_ROTATED;
1714 +else
1715 + const short DMPAPER_LAST = DMPAPER_A3_EXTRA_TRANSVERSE;
1716 +
1717 +const short DMPAPER_USER = 256;
1718 +
1719 +// DEVMODE.dmDefaultSource
1720 +enum : short {
1721 + DMBIN_ONLYONE = 1,
1722 + DMBIN_UPPER = 1,
1723 + DMBIN_LOWER,
1724 + DMBIN_MIDDLE,
1725 + DMBIN_MANUAL,
1726 + DMBIN_ENVELOPE,
1727 + DMBIN_ENVMANUAL,
1728 + DMBIN_AUTO,
1729 + DMBIN_TRACTOR,
1730 + DMBIN_SMALLFMT,
1731 + DMBIN_LARGEFMT,
1732 + DMBIN_LARGECAPACITY, // = 11
1733 + DMBIN_CASSETTE = 14,
1734 + DMBIN_FORMSOURCE,
1735 +}
1736 +short
1737 +DMBIN_FIRST = DMBIN_UPPER,
1738 +DMBIN_LAST = DMBIN_FORMSOURCE,
1739 +DMBIN_USER = 256;
1740 +
1741 +// DEVMODE.dmPrintQuality
1742 +enum : short {
1743 + DMRES_DRAFT = -1,
1744 + DMRES_LOW = -2,
1745 + DMRES_MEDIUM = -3,
1746 + DMRES_HIGH = -4
1747 +}
1748 +
1749 +// DEVMODE.dmColor
1750 +enum : short {
1751 + DMCOLOR_MONOCHROME = 1,
1752 + DMCOLOR_COLOR = 2
1753 +}
1754 +
1755 +// DEVMODE.dmDuplex
1756 +enum : short {
1757 + DMDUP_SIMPLEX = 1,
1758 + DMDUP_VERTICAL = 2,
1759 + DMDUP_HORIZONTAL = 3
1760 +}
1761 +
1762 +// DEVMODE.dmTTOption
1763 +enum : short {
1764 + DMTT_BITMAP = 1,
1765 + DMTT_DOWNLOAD,
1766 + DMTT_SUBDEV,
1767 + DMTT_DOWNLOAD_OUTLINE
1768 +}
1769 +
1770 +// DEVMODE.dmCollate
1771 +enum : short {
1772 + DMCOLLATE_FALSE = 0,
1773 + DMCOLLATE_TRUE
1774 +}
1775 +
1776 +static
1777 +
1778 +if (WINVER >= 0x0501)
1779 +{
1780 + /* DEVMODE dmDisplayOrientation specifiations */
1781 + enum : short {
1782 + DMDO_DEFAULT = 0,
1783 + DMDO_90 = 1,
1784 + DMDO_180 = 2,
1785 + DMDO_270 = 3,
1786 + }
1787 +
1788 + /* DEVMODE dmDisplayFixedOutput specifiations */
1789 + enum : short {
1790 + DMDFO_DEFAULT = 0,
1791 + DMDFO_STRETCH = 1,
1792 + DMDFO_CENTER = 2,
1793 + }
1794 +}
1795 +
1796 +/* FIXME: this flags are deprecated ? */
1797 +
1798 +// DEVMODE.dmDisplayFlags
1799 +const DWORD
1800 +DM_GRAYSCALE = 1,
1801 +DM_INTERLACED = 2;
1802 +
1803 +const DWORD
1804 +DMDISPLAYFLAGS_TEXTMODE = 0x00000004;
1805 +
1806 +/* dmNup , multiple logical page per physical page options */
1807 +const DWORD
1808 +DMNUP_SYSTEM = 1,
1809 +DMNUP_ONEUP = 2;
1810 +
1811 +// DEVMODE.dmFields
1812 +const DWORD
1813 +DM_ORIENTATION = 0x00000001,
1814 +DM_PAPERSIZE = 0x00000002,
1815 +DM_PAPERLENGTH = 0x00000004,
1816 +DM_PAPERWIDTH = 0x00000008,
1817 +DM_SCALE = 0x00000010;
1818 +static
1819 +
1820 +if (WINVER >= 0x0500)
1821 +{
1822 + const DWORD
1823 + DM_POSITION = 0x00000020,
1824 + DM_NUP = 0x00000040;
1825 +}
1826 +
1827 +static
1828 +
1829 +if (WINVER >= 0x0501)
1830 +{
1831 + const DWORD
1832 + DM_DISPLAYORIENTATION = 0x00000080;
1833 +}
1834 +
1835 +const DWORD
1836 +DM_COPIES = 0x00000100,
1837 +DM_DEFAULTSOURCE = 0x00000200,
1838 +DM_PRINTQUALITY = 0x00000400,
1839 +DM_COLOR = 0x00000800,
1840 +DM_DUPLEX = 0x00001000,
1841 +DM_YRESOLUTION = 0x00002000,
1842 +DM_TTOPTION = 0x00004000,
1843 +DM_COLLATE = 0x00008000,
1844 +DM_FORMNAME = 0x00010000,
1845 +DM_LOGPIXELS = 0x00020000,
1846 +DM_BITSPERPEL = 0x00040000,
1847 +DM_PELSWIDTH = 0x00080000,
1848 +DM_PELSHEIGHT = 0x00100000,
1849 +DM_DISPLAYFLAGS = 0x00200000,
1850 +DM_DISPLAYFREQUENCY = 0x00400000;
1851 +static
1852 +
1853 +if (WINVER >= 0x0400)
1854 +{
1855 + const DWORD
1856 + DM_ICMMETHOD = 0x00800000,
1857 + DM_ICMINTENT = 0x01000000,
1858 + DM_MEDIATYPE = 0x02000000,
1859 + DM_DITHERTYPE = 0x04000000,
1860 + DM_PANNINGWIDTH = 0x08000000,
1861 + DM_PANNINGHEIGHT = 0x10000000;
1862 +}
1863 +
1864 +static
1865 +
1866 +if (WINVER >= 0x0501)
1867 +{
1868 + const DWORD
1869 + DM_DISPLAYFIXEDOUTPUT = 0x20000000;
1870 +}
1871 +
1872 +// DEVMODE.dmICMMethod
1873 +enum : DWORD {
1874 + DMICMMETHOD_NONE = 1,
1875 + DMICMMETHOD_SYSTEM = 2,
1876 + DMICMMETHOD_DRIVER = 3,
1877 + DMICMMETHOD_DEVICE = 4,
1878 + DMICMMETHOD_USER = 256
1879 +}
1880 +
1881 +// DEVMODE.dmICMIntent
1882 +enum : DWORD {
1883 + DMICM_SATURATE = 1,
1884 + DMICM_CONTRAST = 2,
1885 + DMICM_COLORIMETRIC = 3,
1886 + DMICM_ABS_COLORIMETRIC = 4,
1887 + DMICM_USER = 256
1888 +}
1889 +
1890 +// DEVMODE.dmMediaType
1891 +enum : DWORD {
1892 + DMMEDIA_STANDARD = 1,
1893 + DMMEDIA_TRANSPARENCY = 2,
1894 + DMMEDIA_GLOSSY = 3,
1895 + DMMEDIA_USER = 256
1896 +}
1897 +
1898 +// DEVMODE.dmDitherType
1899 +enum : DWORD {
1900 + DMDITHER_NONE = 1,
1901 + DMDITHER_COARSE,
1902 + DMDITHER_FINE,
1903 + DMDITHER_LINEART,
1904 + DMDITHER_ERRORDIFFUSION,
1905 + DMDITHER_RESERVED6,
1906 + DMDITHER_RESERVED7,
1907 + DMDITHER_RESERVED8,
1908 + DMDITHER_RESERVED9,
1909 + DMDITHER_GRAYSCALE,
1910 + DMDITHER_USER = 256
1911 +}
1912 +
1913 +// ----
1914 +// DocumentProperties()
1915 +const DWORD
1916 +DM_UPDATE = 1,
1917 +DM_COPY = 2,
1918 +DM_PROMPT = 4,
1919 +DM_MODIFY = 8,
1920 +DM_IN_BUFFER = DM_MODIFY,
1921 +DM_IN_PROMPT = DM_PROMPT,
1922 +DM_OUT_BUFFER = DM_COPY,
1923 +DM_OUT_DEFAULT = DM_UPDATE;
1924 +
1925 +// ---
1926 +
1927 +const GDI_ERROR = 0xFFFFFFFF;
1928 +const HGDI_ERROR= cast(HANDLE) GDI_ERROR;
1929 +
1930 +// TEXTMETRIC.tmPitchAndFamily
1931 +const BYTE
1932 +TMPF_FIXED_PITCH = 1,
1933 +TMPF_VECTOR = 2,
1934 +TMPF_TRUETYPE = 4,
1935 +TMPF_DEVICE = 8;
1936 +
1937 +// NEWTEXTMETRIC.ntmFlags
1938 +const DWORD
1939 +NTM_ITALIC = 0x00000001,
1940 +NTM_BOLD = 0x00000020,
1941 +NTM_REGULAR = 0x00000040,
1942 +NTM_NONNEGATIVE_AC = 0x00010000,
1943 +NTM_PS_OPENTYPE = 0x00020000,
1944 +NTM_TT_OPENTYPE = 0x00040000,
1945 +NTM_MULTIPLEMASTER = 0x00080000,
1946 +NTM_TYPE1 = 0x00100000,
1947 +NTM_DSIG = 0x00200000;
1948 +
1949 +// ---
1950 +const DWORD TT_POLYGON_TYPE = 24;
1951 +
1952 +// TTPOLYCURVE
1953 +enum : WORD {
1954 + TT_PRIM_LINE = 1,
1955 + TT_PRIM_QSPLINE = 2,
1956 + TT_PRIM_CSPLINE = 3,
1957 +}
1958 +
1959 +// ---
1960 +const FONTMAPPER_MAX = 10;
1961 +const ENHMETA_STOCK_OBJECT = 0x80000000;
1962 +const WGL_FONT_LINES = 0;
1963 +const WGL_FONT_POLYGONS = 1;
1964 +
1965 +// ---
1966 +// LAYERPLANEDESCRIPTOR.dwFlags
1967 +const DWORD
1968 +LPD_DOUBLEBUFFER = 1,
1969 +LPD_STEREO = 2,
1970 +LPD_SUPPORT_GDI = 16,
1971 +LPD_SUPPORT_OPENGL = 32,
1972 +LPD_SHARE_DEPTH = 64,
1973 +LPD_SHARE_STENCIL = 128,
1974 +LPD_SHARE_ACCUM = 256,
1975 +LPD_SWAP_EXCHANGE = 512,
1976 +LPD_SWAP_COPY = 1024,
1977 +LPD_TRANSPARENT = 4096;
1978 +
1979 +// LAYERPLANEDESCRIPTOR.iPixelType
1980 +enum : BYTE {
1981 + LPD_TYPE_RGBA = 0,
1982 + LPD_TYPE_COLORINDEX = 1
1983 +}
1984 +
1985 +// ---
1986 +
1987 +// wglSwapLayerBuffers()
1988 +const UINT
1989 +WGL_SWAP_MAIN_PLANE = 1,
1990 +WGL_SWAP_OVERLAY1 = 2,
1991 +WGL_SWAP_OVERLAY2 = 4,
1992 +WGL_SWAP_OVERLAY3 = 8,
1993 +WGL_SWAP_OVERLAY4 = 16,
1994 +WGL_SWAP_OVERLAY5 = 32,
1995 +WGL_SWAP_OVERLAY6 = 64,
1996 +WGL_SWAP_OVERLAY7 = 128,
1997 +WGL_SWAP_OVERLAY8 = 256,
1998 +WGL_SWAP_OVERLAY9 = 512,
1999 +WGL_SWAP_OVERLAY10 = 1024,
2000 +WGL_SWAP_OVERLAY11 = 2048,
2001 +WGL_SWAP_OVERLAY12 = 4096,
2002 +WGL_SWAP_OVERLAY13 = 8192,
2003 +WGL_SWAP_OVERLAY14 = 16384,
2004 +WGL_SWAP_OVERLAY15 = 32768,
2005 +WGL_SWAP_UNDERLAY1 = 65536,
2006 +WGL_SWAP_UNDERLAY2 = 0x20000,
2007 +WGL_SWAP_UNDERLAY3 = 0x40000,
2008 +WGL_SWAP_UNDERLAY4 = 0x80000,
2009 +WGL_SWAP_UNDERLAY5 = 0x100000,
2010 +WGL_SWAP_UNDERLAY6 = 0x200000,
2011 +WGL_SWAP_UNDERLAY7 = 0x400000,
2012 +WGL_SWAP_UNDERLAY8 = 0x800000,
2013 +WGL_SWAP_UNDERLAY9 = 0x1000000,
2014 +WGL_SWAP_UNDERLAY10 = 0x2000000,
2015 +WGL_SWAP_UNDERLAY11 = 0x4000000,
2016 +WGL_SWAP_UNDERLAY12 = 0x8000000,
2017 +WGL_SWAP_UNDERLAY13 = 0x10000000,
2018 +WGL_SWAP_UNDERLAY14 = 0x20000000,
2019 +WGL_SWAP_UNDERLAY15 = 0x40000000;
2020 +
2021 +const AC_SRC_OVER = 0x00;
2022 +const AC_SRC_ALPHA = 0x01;
2023 +
2024 +// ???
2025 +const AC_SRC_NO_PREMULT_ALPHA = 0x01;
2026 +const AC_SRC_NO_ALPHA = 0x02;
2027 +const AC_DST_NO_PREMULT_ALPHA = 0x10;
2028 +const AC_DST_NO_ALPHA = 0x20;
2029 +
2030 +const LAYOUT_RTL = 1;
2031 +const LAYOUT_BTT = 2;
2032 +const LAYOUT_VBH = 4;
2033 +const LAYOUT_BITMAPORIENTATIONPRESERVED = 8;
2034 +
2035 +static
2036 +
2037 +if (WINVER > 0x0400)
2038 +{
2039 + const CS_ENABLE = 0x00000001;
2040 + const CS_DISABLE = 0x00000002;
2041 + const CS_DELETE_TRANSFORM = 0x00000003;
2042 +}
2043 +
2044 +static
2045 +
2046 +if (WINVER > 0x0500)
2047 +{
2048 + const GRADIENT_FILL_RECT_H =0x00;
2049 + const GRADIENT_FILL_RECT_V =0x01;
2050 + const GRADIENT_FILL_TRIANGLE =0x02;
2051 + const GRADIENT_FILL_OP_FLAG =0xff;
2052 + const COLORMATCHTOTARGET_EMBEDED=0x00000001;
2053 + const CREATECOLORSPACE_EMBEDED =0x00000001;
2054 + const SETICMPROFILE_EMBEDED =0x00000001;
2055 +}
2056 +
2057 +// DISPLAY_DEVICE.StateFlags
2058 +const DWORD
2059 +DISPLAY_DEVICE_ATTACHED_TO_DESKTOP = 0x00000001,
2060 +DISPLAY_DEVICE_MULTI_DRIVER = 0x00000002,
2061 +DISPLAY_DEVICE_PRIMARY_DEVICE = 0x00000004,
2062 +DISPLAY_DEVICE_MIRRORING_DRIVER = 0x00000008,
2063 +DISPLAY_DEVICE_VGA_COMPATIBLE = 0x00000010,
2064 +DISPLAY_DEVICE_REMOVABLE = 0x00000020,
2065 +DISPLAY_DEVICE_DISCONNECT = 0x02000000,
2066 +DISPLAY_DEVICE_REMOTE = 0x04000000,
2067 +DISPLAY_DEVICE_MODESPRUNED = 0x08000000;
2068 +
2069 +/* Child device state */
2070 +const DWORD
2071 +DISPLAY_DEVICE_ACTIVE = 0x00000001,
2072 +DISPLAY_DEVICE_ATTACHED = 0x00000002;
2073 +
2074 +static
2075 +
2076 +if (_WIN32_WINNT >= 0x0500)
2077 +{
2078 + const GGI_MARK_NONEXISTING_GLYPHS = 1;
2079 +}
2080 +
2081 +// ----------
2082 +// STRUCTS
2083 +// ----------
2084 +
2085 +struct ABC
2086 +{
2087 + int abcA;
2088 + UINT abcB;
2089 + int abcC;
2090 +}
2091 +alias ABC*PABC, NPABC, LPABC;
2092 +
2093 +struct ABCFLOAT
2094 +{
2095 + FLOAT abcfA;
2096 + FLOAT abcfB;
2097 + FLOAT abcfC;
2098 +}
2099 +alias ABCFLOAT*PABCFLOAT, NPABCFLOAT, LPABCFLOAT;
2100 +
2101 +struct BITMAP
2102 +{
2103 + LONG bmType;
2104 + LONG bmWidth;
2105 + LONG bmHeight;
2106 + LONG bmWidthBytes;
2107 + WORD bmPlanes;
2108 + WORD bmBitsPixel;
2109 + LPVOID bmBits;
2110 +}
2111 +alias BITMAP*PBITMAP, NPBITMAP, LPBITMAP;
2112 +
2113 +struct BITMAPCOREHEADER
2114 +{
2115 + DWORD bcSize;
2116 + WORD bcWidth;
2117 + WORD bcHeight;
2118 + WORD bcPlanes;
2119 + WORD bcBitCount;
2120 +}
2121 +alias BITMAPCOREHEADER*PBITMAPCOREHEADER, LPBITMAPCOREHEADER;
2122 +
2123 +align (1) :
2124 +struct RGBTRIPLE
2125 +{
2126 + BYTE rgbtBlue;
2127 + BYTE rgbtGreen;
2128 + BYTE rgbtRed;
2129 +}
2130 +alias RGBTRIPLE*LPRGBTRIPLE;
2131 +
2132 +align (2) :
2133 +struct BITMAPFILEHEADER
2134 +{
2135 + WORD bfType;
2136 + DWORD bfSize;
2137 + WORD bfReserved1;
2138 + WORD bfReserved2;
2139 + DWORD bfOffBits;
2140 +}
2141 +alias BITMAPFILEHEADER*LPBITMAPFILEHEADER, PBITMAPFILEHEADER;
2142 +
2143 +align :
2144 +
2145 +struct BITMAPCOREINFO
2146 +{
2147 + BITMAPCOREHEADER bmciHeader;
2148 + RGBTRIPLE[1] bmciColors;
2149 +}
2150 +alias BITMAPCOREINFO*LPBITMAPCOREINFO, PBITMAPCOREINFO;
2151 +
2152 +struct BITMAPINFOHEADER
2153 +{
2154 + DWORD biSize;
2155 + LONG biWidth;
2156 + LONG biHeight;
2157 + WORD biPlanes;
2158 + WORD biBitCount;
2159 + DWORD biCompression;
2160 + DWORD biSizeImage;
2161 + LONG biXPelsPerMeter;
2162 + LONG biYPelsPerMeter;
2163 + DWORD biClrUsed;
2164 + DWORD biClrImportant;
2165 +}
2166 +
2167 +alias BITMAPINFOHEADER*LPBITMAPINFOHEADER, PBITMAPINFOHEADER;
2168 +
2169 +struct RGBQUAD
2170 +{
2171 + BYTE rgbBlue;
2172 + BYTE rgbGreen;
2173 + BYTE rgbRed;
2174 + BYTE rgbReserved;
2175 +};
2176 +alias RGBQUAD*LPRGBQUAD;
2177 +
2178 +struct BITMAPINFO
2179 +{
2180 + BITMAPINFOHEADER bmiHeader;
2181 + RGBQUAD[1] bmiColors;
2182 +};
2183 +alias BITMAPINFO*PBITMAPINFO, LPBITMAPINFO;
554 2184
555 2185 alias int FXPT16DOT16;
556 -alias int* LPFXPT16DOT16;
2186 +alias int*LPFXPT16DOT16;
557 2187 alias int FXPT2DOT30;
558 -alias int* LPFXPT2DOT30;
559 -
560 -struct tagCIEXYZ {
561 - FXPT2DOT30 ciexyzX;
562 - FXPT2DOT30 ciexyzY;
563 - FXPT2DOT30 ciexyzZ;
564 -}
565 -alias tagCIEXYZ CIEXYZ;
566 -
567 -alias CIEXYZ* LPCIEXYZ;
568 -
569 -struct tagICEXYZTRIPLE {
570 - CIEXYZ ciexyzRed;
571 - CIEXYZ ciexyzGreen;
572 - CIEXYZ ciexyzBlue;
573 -}
574 -alias tagICEXYZTRIPLE CIEXYZTRIPLE;
575 -
576 -alias CIEXYZTRIPLE* LPCIEXYZTRIPLE;
577 -
578 -struct tagLOGCOLORSPACEA {
579 - DWORD lcsSignature;
580 - DWORD lcsVersion;
581 - DWORD lcsSize;
582 - LCSCSTYPE lcsCSType;
583 - LCSGAMUTMATCH lcsIntent;
584 - CIEXYZTRIPLE lcsEndpoints;
585 - DWORD lcsGammaRed;
586 - DWORD lcsGammaGreen;
587 - DWORD lcsGammaBlue;
588 - CHAR lcsFilename[MAX_PATH];
589 -}
590 -alias tagLOGCOLORSPACEA LOGCOLORSPACEA;
591 -alias tagLOGCOLORSPACEA* LPLOGCOLORSPACEA;
592 -
593 -struct tagLOGCOLORSPACEW {
594 - DWORD lcsSignature;
595 - DWORD lcsVersion;
596 - DWORD lcsSize;
597 - LCSCSTYPE lcsCSType;
598 - LCSGAMUTMATCH lcsIntent;
599 - CIEXYZTRIPLE lcsEndpoints;
600 - DWORD lcsGammaRed;
601 - DWORD lcsGammaGreen;
602 - DWORD lcsGammaBlue;
603 - WCHAR lcsFilename[MAX_PATH];
604 -}
605 -alias tagLOGCOLORSPACEW LOGCOLORSPACEW;
606 -alias tagLOGCOLORSPACEW* LPLOGCOLORSPACEW;
607 -
608 -// #ifdef UNICODE
609 -alias LOGCOLORSPACEW LOGCOLORSPACE;
610 -alias LPLOGCOLORSPACEW LPLOGCOLORSPACE;
611 -// #else
612 -// ...
613 -// #endif // UNICODE
614 -
615 -// #endif /* WINVER >= 0x0400 */
616 -
617 -struct tagBITMAPCOREHEADER {
618 - DWORD bcSize;
619 - WORD bcWidth;
620 - WORD bcHeight;
621 - WORD bcPlanes;
622 - WORD bcBitCount;
623 -}
624 -alias tagBITMAPCOREHEADER BITMAPCOREHEADER;
625 -alias tagBITMAPCOREHEADER* LPBITMAPCOREHEADER;
626 -alias tagBITMAPCOREHEADER* PBITMAPCOREHEADER;
627 -
628 -struct tagBITMAPINFOHEADER {
629 - DWORD biSize;
630 - LONG biWidth;
631 - LONG biHeight;
632 - WORD biPlanes;
633 - WORD biBitCount;
634 - DWORD biCompression;
635 - DWORD biSizeImage;
636 - LONG biXPelsPerMeter;
637 - LONG biYPelsPerMeter;
638 - DWORD biClrUsed;
639 - DWORD biClrImportant;
640 -}
641 -alias tagBITMAPINFOHEADER BITMAPINFOHEADER;
642 -alias tagBITMAPINFOHEADER* LPBITMAPINFOHEADER;
643 -alias tagBITMAPINFOHEADER* PBITMAPINFOHEADER;
644 -
645 -// #if(WINVER >= 0x0400)
646 -struct _0 {
647 - DWORD bV4Size;
648 - LONG bV4Width;
649 - LONG bV4Height;
650 - WORD bV4Planes;
651 - WORD bV4BitCount;
652 - DWORD bV4V4Compression;
653 - DWORD bV4SizeImage;
654 - LONG bV4XPelsPerMeter;
655 - LONG bV4YPelsPerMeter;
656 - DWORD bV4ClrUsed;
657 - DWORD bV4ClrImportant;
658 - DWORD bV4RedMask;
659 - DWORD bV4GreenMask;
660 - DWORD bV4BlueMask;
661 - DWORD bV4AlphaMask;
662 - DWORD bV4CSType;
663 - CIEXYZTRIPLE bV4Endpoints;
664 - DWORD bV4GammaRed;
665 - DWORD bV4GammaGreen;
666 - DWORD bV4GammaBlue;
667 -}
668 -alias _0 BITMAPV4HEADER;
669 -alias _0* LPBITMAPV4HEADER;
670 -alias _0* PBITMAPV4HEADER;
671 -
672 -// #endif /* WINVER >= 0x0400 */
673 -
674 -// #if (WINVER >= 0x0500)
675 -struct _1 {
676 - DWORD bV5Size;
677 - LONG bV5Width;
678 - LONG bV5Height;
679 - WORD bV5Planes;
680 - WORD bV5BitCount;
681 - DWORD bV5Compression;
682 - DWORD bV5SizeImage;
683 - LONG bV5XPelsPerMeter;
684 - LONG bV5YPelsPerMeter;
685 - DWORD bV5ClrUsed;
686 - DWORD bV5ClrImportant;
687 - DWORD bV5RedMask;
688 - DWORD bV5GreenMask;
689 - DWORD bV5BlueMask;
690 - DWORD bV5AlphaMask;
691 - DWORD bV5CSType;
692 - CIEXYZTRIPLE bV5Endpoints;
693 - DWORD bV5GammaRed;
694 - DWORD bV5GammaGreen;
695 - DWORD bV5GammaBlue;
696 - DWORD bV5Intent;
697 - DWORD bV5ProfileData;
698 - DWORD bV5ProfileSize;
699 - DWORD bV5Reserved;
700 -}
701 -alias _1 BITMAPV5HEADER;
702 -alias _1* LPBITMAPV5HEADER;
703 -alias _1* PBITMAPV5HEADER;
704 -
705 -// #define PROFILE_LINKED 'LINK'
706 -// #define PROFILE_EMBEDDED 'MBED'
707 -// #endif
708 -
709 -enum : uint { BI_RGB = 0 }
710 -enum : uint { BI_RLE8 = 1 }
711 -enum : uint { BI_RLE4 = 2 }
712 -enum : uint { BI_BITFIELDS = 3 }
713 -enum : uint { BI_JPEG = 4 }
714 -enum : uint { BI_PNG = 5 }
715 -// #if (_WIN32_WINNT >= 0x0400)
716 -// #endif
717 -
718 -struct tagBITMAPINFO {
719 - BITMAPINFOHEADER bmiHeader;
720 - RGBQUAD bmiColors[1];
721 -}
722 -alias tagBITMAPINFO BITMAPINFO;
723 -alias tagBITMAPINFO* LPBITMAPINFO;
724 -alias tagBITMAPINFO* PBITMAPINFO;
725 -
726 -struct tagBITMAPCOREINFO {
727 - BITMAPCOREHEADER bmciHeader;
728 - RGBTRIPLE bmciColors[1];
729 -}
730 -alias tagBITMAPCOREINFO BITMAPCOREINFO;
731 -alias tagBITMAPCOREINFO* LPBITMAPCOREINFO;
732 -alias tagBITMAPCOREINFO* PBITMAPCOREINFO;
733 -
734 -align(2):
735 -struct tagBITMAPFILEHEADER {
736 - WORD bfType;
737 - DWORD bfSize;
738 - WORD bfReserved1;
739 - WORD bfReserved2;
740 - DWORD bfOffBits;
741 -}
742 -alias tagBITMAPFILEHEADER BITMAPFILEHEADER;
743 -alias tagBITMAPFILEHEADER* LPBITMAPFILEHEADER;
744 -alias tagBITMAPFILEHEADER* PBITMAPFILEHEADER;
745 -
746 -align:
747 -
748 -// #define MAKEPOINTS(l) (*((POINTS FAR *)&(l)))
749 -
750 -// #if(WINVER >= 0x0400)
751 -// #ifndef NOFONTSIG
752 -struct tagFONTSIGNATURE {
753 - DWORD fsUsb[4];
754 - DWORD fsCsb[2];
755 -}
756 -alias tagFONTSIGNATURE FONTSIGNATURE;
757 -alias tagFONTSIGNATURE* PFONTSIGNATURE;
758 -alias tagFONTSIGNATURE* LPFONTSIGNATURE;
759 -
760 -struct tagCHARSETINFO {
761 - UINT ciCharset;
762 - UINT ciACP;
763 - FONTSIGNATURE fs;
764 -}
765 -alias tagCHARSETINFO CHARSETINFO;
766 -alias tagCHARSETINFO* PCHARSETINFO;
767 -alias tagCHARSETINFO* NPCHARSETINFO;
768 -alias tagCHARSETINFO* LPCHARSETINFO;
769 -
770 -enum : uint { TCI_SRCCHARSET = 1 }
771 -enum : uint { TCI_SRCCODEPAGE = 2 }
772 -enum : uint { TCI_SRCFONTSIG = 3 }
773 -
774 -struct tagLOCALESIGNATURE {
775 - DWORD lsUsb[4];
776 - DWORD lsCsbDefault[2];
777 - DWORD lsCsbSupported[2];
778 -}
779 -alias tagLOCALESIGNATURE LOCALESIGNATURE;
780 -alias tagLOCALESIGNATURE* PLOCALESIGNATURE;
781 -alias tagLOCALESIGNATURE* LPLOCALESIGNATURE;
782 -
783 -// #endif
784 -// #endif /* WINVER >= 0x0400 */
785 -
786 -// #ifndef NOMETAFILE
787 -
788 -struct tagHANDLETABLE {
789 - HGDIOBJ objectHandle[1];
790 -}
791 -alias tagHANDLETABLE HANDLETABLE;
792 -alias tagHANDLETABLE* PHANDLETABLE;
793 -alias tagHANDLETABLE* LPHANDLETABLE;
794 -
795 -struct tagMETARECORD {
796 - DWORD rdSize;
797 - WORD rdFunction;
798 - WORD rdParm[1];
799 -}
800 -alias tagMETARECORD METARECORD;
801 -
802 -alias tagMETARECORD* PMETARECORD;
803 -alias tagMETARECORD* LPMETARECORD;
804 -
805 -struct tagMETAFILEPICT {
806 - LONG mm;
807 - LONG xExt;
808 - LONG yExt;
809 - HMETAFILE hMF;
810 -}
811 -alias tagMETAFILEPICT METAFILEPICT;
812 -alias tagMETAFILEPICT* LPMETAFILEPICT;
813 -
814 -align(2):
815 -struct tagMETAHEADER {
816 - WORD mtType;
817 - WORD mtHeaderSize;
818 - WORD mtVersion;
819 - DWORD mtSize;
820 - WORD mtNoObjects;
821 - DWORD mtMaxRecord;
822 - WORD mtNoParameters;
823 -}
824 -alias tagMETAHEADER METAHEADER;
825 -
826 -alias tagMETAHEADER* PMETAHEADER;
827 -alias tagMETAHEADER* LPMETAHEADER;
828 -
829 -align:
830 -
831 -struct tagENHMETARECORD {
832 - DWORD iType;
833 - DWORD nSize;
834 - DWORD dParm[1];
835 -}
836 -alias tagENHMETARECORD ENHMETARECORD;
837 -alias tagENHMETARECORD* PENHMETARECORD;
838 -alias tagENHMETARECORD* LPENHMETARECORD;
839 -
840 -struct tagENHMETAHEADER {
841 - DWORD iType;
842 - DWORD nSize;
843 -
844 - RECTL rclBounds;
845 - RECTL rclFrame;
846 - DWORD dSignature;
847 - DWORD nVersion;
848 - DWORD nBytes;
849 - DWORD nRecords;
850 - WORD nHandles;
851 -
852 - WORD sReserved;
853 - DWORD nDescription;
854 -
855 - DWORD offDescription;
856 -
857 - DWORD nPalEntries;
858 - SIZEL szlDevice;
859 - SIZEL szlMillimeters;
860 -// #if(WINVER >= 0x0400)
861 - DWORD cbPixelFormat;
862 -
863 - DWORD offPixelFormat;
864 -
865 - DWORD bOpenGL;
866 -
867 -// #endif /* WINVER >= 0x0400 */
868 -// #if(WINVER >= 0x0500)
869 - SIZEL szlMicrometers;
870 -// #endif /* WINVER >= 0x0500 */
871 -
872 -}
873 -alias tagENHMETAHEADER ENHMETAHEADER;
874 -alias tagENHMETAHEADER* PENHMETAHEADER;
875 -alias tagENHMETAHEADER* LPENHMETAHEADER;
876 -
877 -// #endif /* NOMETAFILE */
878 -
879 -// #ifndef NOTEXTMETRIC
880 -
881 -enum : uint { TMPF_FIXED_PITCH = 0x01 }
882 -enum : uint { TMPF_VECTOR = 0x02 }
883 -enum : uint { TMPF_DEVICE = 0x08 }
884 -enum : uint { TMPF_TRUETYPE = 0x04 }
885 -
886 -// #ifdef UNICODE
887 -alias WCHAR BCHAR;
888 -// #else
889 -// ...
890 -// #endif
891 -
892 -// #ifndef _TEXTMETRIC_DEFINED
893 -// #define _TEXTMETRIC_DEFINED
894 -struct tagTEXTMETRICA {
895 - LONG tmHeight;
896 - LONG tmAscent;
897 - LONG tmDescent;
898 - LONG tmInternalLeading;
899 - LONG tmExternalLeading;
900 - LONG tmAveCharWidth;
901 - LONG tmMaxCharWidth;
902 - LONG tmWeight;
903 - LONG tmOverhang;
904 - LONG tmDigitizedAspectX;
905 - LONG tmDigitizedAspectY;
906 - BYTE tmFirstChar;
907 - BYTE tmLastChar;
908 - BYTE tmDefaultChar;
909 - BYTE tmBreakChar;
910 - BYTE tmItalic;
911 - BYTE tmUnderlined;
912 - BYTE tmStruckOut;
913 - BYTE tmPitchAndFamily;
914 - BYTE tmCharSet;
915 -}
916 -alias tagTEXTMETRICA TEXTMETRICA;
917 -alias tagTEXTMETRICA* PTEXTMETRICA;
918 -alias tagTEXTMETRICA* NPTEXTMETRICA;
919 -alias tagTEXTMETRICA* LPTEXTMETRICA;
920 -
921 -struct tagTEXTMETRICW {
922 - LONG tmHeight;
923 - LONG tmAscent;
924 - LONG tmDescent;
925 - LONG tmInternalLeading;
926 - LONG tmExternalLeading;
927 - LONG tmAveCharWidth;
928 - LONG tmMaxCharWidth;
929 - LONG tmWeight;
930 - LONG tmOverhang;
931 - LONG tmDigitizedAspectX;
932 - LONG tmDigitizedAspectY;
933 - WCHAR tmFirstChar;
934 - WCHAR tmLastChar;
935 - WCHAR tmDefaultChar;
936 - WCHAR tmBreakChar;
937 - BYTE tmItalic;
938 - BYTE tmUnderlined;
939 - BYTE tmStruckOut;
940 - BYTE tmPitchAndFamily;
941 - BYTE tmCharSet;
942 -}
943 -alias tagTEXTMETRICW TEXTMETRICW;
944 -alias tagTEXTMETRICW* PTEXTMETRICW;
945 -alias tagTEXTMETRICW* NPTEXTMETRICW;
946 -alias tagTEXTMETRICW* LPTEXTMETRICW;
947 -
948 -// #ifdef UNICODE
949 -alias TEXTMETRICW TEXTMETRIC;
950 -alias PTEXTMETRICW PTEXTMETRIC;
951 -alias NPTEXTMETRICW NPTEXTMETRIC;
952 -alias LPTEXTMETRICW LPTEXTMETRIC;
953 -// #else
954 -// ...
955 -// #endif // UNICODE
956 -// #endif // !_TEXTMETRIC_DEFINED
957 -
958 -enum : uint { NTM_REGULAR = 0x00000040 }
959 -enum : uint { NTM_BOLD = 0x00000020 }
960 -enum : uint { NTM_ITALIC = 0x00000001 }
961 -
962 -enum : uint { NTM_NONNEGATIVE_AC = 0x00010000 }
963 -enum : uint { NTM_PS_OPENTYPE = 0x00020000 }
964 -enum : uint { NTM_TT_OPENTYPE = 0x00040000 }
965 -enum : uint { NTM_MULTIPLEMASTER = 0x00080000 }
966 -enum : uint { NTM_TYPE1 = 0x00100000 }
967 -enum : uint { NTM_DSIG = 0x00200000 }
968 -
969 -align(4):
970 -struct tagNEWTEXTMETRICA {
971 - LONG tmHeight;
972 - LONG tmAscent;
973 - LONG tmDescent;
974 - LONG tmInternalLeading;
975 - LONG tmExternalLeading;
976 - LONG tmAveCharWidth;
977 - LONG tmMaxCharWidth;
978 - LONG tmWeight;
979 - LONG tmOverhang;
980 - LONG tmDigitizedAspectX;
981 - LONG tmDigitizedAspectY;
982 - BYTE tmFirstChar;
983 - BYTE tmLastChar;
984 - BYTE tmDefaultChar;
985 - BYTE tmBreakChar;
986 - BYTE tmItalic;
987 - BYTE tmUnderlined;
988 - BYTE tmStruckOut;
989 - BYTE tmPitchAndFamily;
990 - BYTE tmCharSet;
991 - DWORD ntmFlags;
992 - UINT ntmSizeEM;
993 - UINT ntmCellHeight;
994 - UINT ntmAvgWidth;
995 -}
996 -alias tagNEWTEXTMETRICA NEWTEXTMETRICA;
997 -alias tagNEWTEXTMETRICA* PNEWTEXTMETRICA;
998 -alias tagNEWTEXTMETRICA* NPNEWTEXTMETRICA;
999 -alias tagNEWTEXTMETRICA* LPNEWTEXTMETRICA;
1000 -
1001 -struct tagNEWTEXTMETRICW {
1002 - LONG tmHeight;
1003 - LONG tmAscent;
1004 - LONG tmDescent;
1005 - LONG tmInternalLeading;
1006 - LONG tmExternalLeading;
1007 - LONG tmAveCharWidth;
1008 - LONG tmMaxCharWidth;
1009 - LONG tmWeight;
1010 - LONG tmOverhang;
1011 - LONG tmDigitizedAspectX;
1012 - LONG tmDigitizedAspectY;
1013 - WCHAR tmFirstChar;
1014 - WCHAR tmLastChar;
1015 - WCHAR tmDefaultChar;
1016 - WCHAR tmBreakChar;
1017 - BYTE tmItalic;
1018 - BYTE tmUnderlined;
1019 - BYTE tmStruckOut;
1020 - BYTE tmPitchAndFamily;
1021 - BYTE tmCharSet;
1022 - DWORD ntmFlags;
1023 - UINT ntmSizeEM;
1024 - UINT ntmCellHeight;
1025 - UINT ntmAvgWidth;
1026 -}
1027 -alias tagNEWTEXTMETRICW NEWTEXTMETRICW;
1028 -alias tagNEWTEXTMETRICW* PNEWTEXTMETRICW;
1029 -alias tagNEWTEXTMETRICW* NPNEWTEXTMETRICW;
1030 -alias tagNEWTEXTMETRICW* LPNEWTEXTMETRICW;
1031 -
1032 -// #ifdef UNICODE
1033 -alias NEWTEXTMETRICW NEWTEXTMETRIC;
1034 -alias PNEWTEXTMETRICW PNEWTEXTMETRIC;
1035 -alias NPNEWTEXTMETRICW NPNEWTEXTMETRIC;
1036 -alias LPNEWTEXTMETRICW LPNEWTEXTMETRIC;
1037 -// #else
1038 -// ...
1039 -// #endif // UNICODE
1040 -align:
1041 -
1042 -// #if(WINVER >= 0x0400)
1043 -struct tagNEWTEXTMETRICEXA {
1044 - NEWTEXTMETRICA ntmTm;
1045 - FONTSIGNATURE ntmFontSig;
1046 -}
1047 -alias tagNEWTEXTMETRICEXA NEWTEXTMETRICEXA;
1048 -
1049 -struct tagNEWTEXTMETRICEXW {
1050 - NEWTEXTMETRICW ntmTm;
1051 - FONTSIGNATURE ntmFontSig;
1052 -}
1053 -alias tagNEWTEXTMETRICEXW NEWTEXTMETRICEXW;
1054 -
1055 -// #ifdef UNICODE
1056 -alias NEWTEXTMETRICEXW NEWTEXTMETRICEX;
1057 -// #else
1058 -// ...
1059 -// #endif // UNICODE
1060 -// #endif /* WINVER >= 0x0400 */
1061 -
1062 -// #endif /* NOTEXTMETRIC */
1063 -
1064 -struct tagPELARRAY {
1065 - LONG paXCount;
1066 - LONG paYCount;
1067 - LONG paXExt;
1068 - LONG paYExt;
1069 - BYTE paRGBs;
1070 -}
1071 -alias tagPELARRAY PELARRAY;
1072 -alias tagPELARRAY* PPELARRAY;
1073 -alias tagPELARRAY* NPPELARRAY;
1074 -alias tagPELARRAY* LPPELARRAY;
1075 -
1076 -struct tagLOGBRUSH {
1077 - UINT lbStyle;
1078 - COLORREF lbColor;
1079 - ULONG_PTR lbHatch;
1080 -}
1081 -alias tagLOGBRUSH LOGBRUSH;
1082 -alias tagLOGBRUSH* PLOGBRUSH;
1083 -alias tagLOGBRUSH* NPLOGBRUSH;
1084 -alias tagLOGBRUSH* LPLOGBRUSH;
1085 -
1086 -struct tagLOGBRUSH32 {
1087 - UINT lbStyle;
1088 - COLORREF lbColor;
1089 - ULONG lbHatch;
1090 -}
1091 -alias tagLOGBRUSH32 LOGBRUSH32;
1092 -alias tagLOGBRUSH32* PLOGBRUSH32;
1093 -alias tagLOGBRUSH32* NPLOGBRUSH32;
1094 -alias tagLOGBRUSH32* LPLOGBRUSH32;
1095 -
2188 +alias int*LPFXPT2DOT30;
2189 +
2190 +struct CIEXYZ
2191 +{
2192 + FXPT2DOT30 ciexyzX;
2193 + FXPT2DOT30 ciexyzY;
2194 + FXPT2DOT30 ciexyzZ;
2195 +}
2196 +alias CIEXYZ*LPCIEXYZ;
2197 +
2198 +struct CIEXYZTRIPLE
2199 +{
2200 + CIEXYZ ciexyzRed;
2201 + CIEXYZ ciexyzGreen;
2202 + CIEXYZ ciexyzBlue;
2203 +}
2204 +alias CIEXYZTRIPLE*LPCIEXYZTRIPLE;
2205 +
2206 +struct BITMAPV4HEADER
2207 +{
2208 + DWORD bV4Size;
2209 + LONG bV4Width;
2210 + LONG bV4Height;
2211 + WORD bV4Planes;
2212 + WORD bV4BitCount;
2213 + DWORD bV4V4Compression;
2214 + DWORD bV4SizeImage;
2215 + LONG bV4XPelsPerMeter;
2216 + LONG bV4YPelsPerMeter;
2217 + DWORD bV4ClrUsed;
2218 + DWORD bV4ClrImportant;
2219 + DWORD bV4RedMask;
2220 + DWORD bV4GreenMask;
2221 + DWORD bV4BlueMask;
2222 + DWORD bV4AlphaMask;
2223 + DWORD bV4CSType;
2224 + CIEXYZTRIPLE bV4Endpoints;
2225 + DWORD bV4GammaRed;
2226 + DWORD bV4GammaGreen;
2227 + DWORD bV4GammaBlue;
2228 +}
2229 +alias BITMAPV4HEADER*LPBITMAPV4HEADER, PBITMAPV4HEADER;
2230 +
2231 +struct BITMAPV5HEADER
2232 +{
2233 + DWORD bV5Size;
2234 + LONG bV5Width;
2235 + LONG bV5Height;
2236 + WORD bV5Planes;
2237 + WORD bV5BitCount;
2238 + DWORD bV5Compression;
2239 + DWORD bV5SizeImage;
2240 + LONG bV5XPelsPerMeter;
2241 + LONG bV5YPelsPerMeter;
2242 + DWORD bV5ClrUsed;
2243 + DWORD bV5ClrImportant;
2244 + DWORD bV5RedMask;
2245 + DWORD bV5GreenMask;
2246 + DWORD bV5BlueMask;
2247 + DWORD bV5AlphaMask;
2248 + DWORD bV5CSType;
2249 + CIEXYZTRIPLE bV5Endpoints;
2250 + DWORD bV5GammaRed;
2251 + DWORD bV5GammaGreen;
2252 + DWORD bV5GammaBlue;
2253 + DWORD bV5Intent;
2254 + DWORD bV5ProfileData;
2255 + DWORD bV5ProfileSize;
2256 + DWORD bV5Reserved;
2257 +}
2258 +alias BITMAPV5HEADER*LPBITMAPV5HEADER, PBITMAPV5HEADER;
2259 +
2260 +struct FONTSIGNATURE
2261 +{
2262 + DWORD[4] fsUsb;
2263 + DWORD[2] fsCsb;
2264 +}
2265 +alias FONTSIGNATURE*PFONTSIGNATURE, LPFONTSIGNATURE;
2266 +
2267 +struct CHARSETINFO
2268 +{
2269 + UINT ciCharset;
2270 + UINT ciACP;
2271 + FONTSIGNATURE fs;
2272 +}
2273 +alias CHARSETINFO*PCHARSETINFO, NPCHARSETINFO, LPCHARSETINFO;
2274 +
2275 +struct COLORADJUSTMENT
2276 +{
2277 + WORD caSize;
2278 + WORD caFlags;
2279 + WORD caIlluminantIndex;
2280 + WORD caRedGamma;
2281 + WORD caGreenGamma;
2282 + WORD caBlueGamma;
2283 + WORD caReferenceBlack;
2284 + WORD caReferenceWhite;
2285 + SHORT caContrast;
2286 + SHORT caBrightness;
2287 + SHORT caColorfulness;
2288 + SHORT caRedGreenTint;
2289 +}
2290 +alias COLORADJUSTMENT*PCOLORADJUSTMENT, LPCOLORADJUSTMENT;
2291 +
2292 +struct DEVMODEA
2293 +{
2294 + BYTE[CCHDEVICENAME] dmDeviceName;
2295 + WORD dmSpecVersion;
2296 + WORD dmDriverVersion;
2297 + WORD dmSize;
2298 + WORD dmDriverExtra;
2299 + DWORD dmFields;
2300 + union {
2301 + struct
2302 + {
2303 + short dmOrientation;
2304 + short dmPaperSize;
2305 + short dmPaperLength;
2306 + short dmPaperWidth;
2307 + short dmScale;
2308 + short dmCopies;
2309 + short dmDefaultSource;
2310 + short dmPrintQuality;
2311 + }
2312 + POINTL dmPosition;
2313 + DWORD dmDisplayOrientation;
2314 + DWORD dmDisplayFixedOutput;
2315 + }
2316 + short dmColor;
2317 + short dmDuplex;
2318 + short dmYResolution;
2319 + short dmTTOption;
2320 + short dmCollate;
2321 + BYTE[CCHFORMNAME] dmFormName;
2322 + WORD dmLogPixels;
2323 + DWORD dmBitsPerPel;
2324 + DWORD dmPelsWidth;
2325 + DWORD dmPelsHeight;
2326 + union {
2327 + DWORD dmDisplayFlags;
2328 + DWORD dmNup;
2329 + }
2330 + DWORD dmDisplayFrequency;
2331 + static
2332 +
2333 + if (WINVER >= 0x0400)
2334 + {
2335 + DWORD dmICMMethod;
2336 + DWORD dmICMIntent;
2337 + DWORD dmMediaType;
2338 + DWORD dmDitherType;
2339 + DWORD dmReserved1;
2340 + DWORD dmReserved2;
2341 + static
2342 +
2343 + if ((WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400))
2344 + {
2345 + DWORD dmPanningWidth;
2346 + DWORD dmPanningHeight;
2347 + }
2348 + }
2349 +}
2350 +alias DEVMODEA*PDEVMODEA, NPDEVMODEA, LPDEVMODEA;
2351 +
2352 +struct DEVMODEW
2353 +{
2354 + WCHAR[CCHDEVICENAME] dmDeviceName;
2355 + WORD dmSpecVersion;
2356 + WORD dmDriverVersion;
2357 + WORD dmSize;
2358 + WORD dmDriverExtra;
2359 + DWORD dmFields;
2360 + union {
2361 + struct
2362 + {
2363 + short dmOrientation;
2364 + short dmPaperSize;
2365 + short dmPaperLength;
2366 + short dmPaperWidth;
2367 + short dmScale;
2368 + short dmCopies;
2369 + short dmDefaultSource;
2370 + short dmPrintQuality;
2371 + }
2372 + POINTL dmPosition;
2373 + DWORD dmDisplayOrientation;
2374 + DWORD dmDisplayFixedOutput;
2375 + }
2376 +
2377 + short dmColor;
2378 + short dmDuplex;
2379 + short dmYResolution;
2380 + short dmTTOption;
2381 + short dmCollate;
2382 + WCHAR[CCHFORMNAME] dmFormName;
2383 + WORD dmLogPixels;
2384 + DWORD dmBitsPerPel;
2385 + DWORD dmPelsWidth;
2386 + DWORD dmPelsHeight;
2387 + union {
2388 + DWORD dmDisplayFlags;
2389 + DWORD dmNup;
2390 + }
2391 + DWORD dmDisplayFrequency;
2392 + static
2393 +
2394 + if (WINVER >= 0x0400)
2395 + {
2396 + DWORD dmICMMethod;
2397 + DWORD dmICMIntent;
2398 + DWORD dmMediaType;
2399 + DWORD dmDitherType;
2400 + DWORD dmReserved1;
2401 + DWORD dmReserved2;
2402 + static
2403 +
2404 + if ((WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400))
2405 + {
2406 + DWORD dmPanningWidth;
2407 + DWORD dmPanningHeight;
2408 + }
2409 + }
2410 +}
2411 +alias DEVMODEW*PDEVMODEW, NPDEVMODEW, LPDEVMODEW;
2412 +
2413 +/*
2414 + * Information about output options
2415 + */
2416 +struct PSFEATURE_OUTPUT
2417 +{
2418 + BOOL bPageIndependent;
2419 + BOOL bSetPageDevice;
2420 +}
2421 +alias PSFEATURE_OUTPUT*PPSFEATURE_OUTPUT;
2422 +
2423 +/*
2424 + * Information about custom paper size
2425 + */
2426 +struct PSFEATURE_CUSTPAPER
2427 +{
2428 + LONG lOrientation;
2429 + LONG lWidth;
2430 + LONG lHeight;
2431 + LONG lWidthOffset;
2432 + LONG lHeightOffset;
2433 +}
2434 +alias PSFEATURE_CUSTPAPER*PPSFEATURE_CUSTPAPER;
2435 +
2436 +struct DIBSECTION
2437 +{
2438 + BITMAP dsBm;
2439 + BITMAPINFOHEADER dsBmih;
2440 + DWORD[3] dsBitfields;
2441 + HANDLE dshSection;
2442 + DWORD dsOffset;
2443 +}
2444 +alias DIBSECTION*PDIBSECTION;
2445 +
2446 +struct DOCINFOA
2447 +{
2448 + int cbSize = DOCINFOA.sizeof;
2449 + LPCSTR lpszDocName;
2450 + LPCSTR lpszOutput;
2451 + LPCSTR lpszDatatype;
2452 + DWORD fwType;
2453 +}
2454 +alias DOCINFOA*LPDOCINFOA;
2455 +
2456 +struct DOCINFOW
2457 +{
2458 + int cbSize = DOCINFOW.sizeof;
2459 + LPCWSTR lpszDocName;
2460 + LPCWSTR lpszOutput;
2461 + LPCWSTR lpszDatatype;
2462 + DWORD fwType;
2463 +}
2464 +alias DOCINFOW*LPDOCINFOW;
2465 +
2466 +struct PANOSE
2467 +{
2468 + BYTE bFamilyType;
2469 + BYTE bSerifStyle;
2470 + BYTE bWeight;
2471 + BYTE bProportion;
2472 + BYTE bContrast;
2473 + BYTE bStrokeVariation;
2474 + BYTE bArmStyle;
2475 + BYTE bLetterform;
2476 + BYTE bMidline;
2477 + BYTE bXHeight;
2478 +}
2479 +alias PANOSE*LPPANOSE;
2480 +
2481 +struct LOGFONTA
2482 +{
2483 + LONG lfHeight;
2484 + LONG lfWidth;
2485 + LONG lfEscapement;
2486 + LONG lfOrientation;
2487 + LONG lfWeight;
2488 + BYTE lfItalic;
2489 + BYTE lfUnderline;
2490 + BYTE lfStrikeOut;
2491 + BYTE lfCharSet;
2492 + BYTE lfOutPrecision;
2493 + BYTE lfClipPrecision;
2494 + BYTE lfQuality;
2495 + BYTE lfPitchAndFamily;
2496 + CHAR[LF_FACESIZE] lfFaceName;
2497 +}
2498 +alias LOGFONTA*PLOGFONTA, NPLOGFONTA, LPLOGFONTA;
2499 +
2500 +struct LOGFONTW
2501 +{
2502 + LONG lfHeight;
2503 + LONG lfWidth;
2504 + LONG lfEscapement;
2505 + LONG lfOrientation;
2506 + LONG lfWeight;
2507 + BYTE lfItalic;
2508 + BYTE lfUnderline;
2509 + BYTE lfStrikeOut;
2510 + BYTE lfCharSet;
2511 + BYTE lfOutPrecision;
2512 + BYTE lfClipPrecision;
2513 + BYTE lfQuality;
2514 + BYTE lfPitchAndFamily;
2515 + WCHAR[LF_FACESIZE] lfFaceName;
2516 +}
2517 +alias LOGFONTW*PLOGFONTW, NPLOGFONTW, LPLOGFONTW;
2518 +
2519 +struct EXTLOGFONTA
2520 +{
2521 + LOGFONTA elfLogFont;
2522 + BYTE[LF_FULLFACESIZE] elfFullName;
2523 + BYTE[LF_FACESIZE] elfStyle;
2524 + DWORD elfVersion;
2525 + DWORD elfStyleSize;
2526 + DWORD elfMatch;
2527 + DWORD elfReserved;
2528 + BYTE[ELF_VENDOR_SIZE] elfVendorId;
2529 + DWORD elfCulture;
2530 + PANOSE elfPanose;
2531 +}
2532 +alias EXTLOGFONTA*PEXTLOGFONTA, NPEXTLOGFONTA, LPEXTLOGFONTA;
2533 +
2534 +struct EXTLOGFONTW
2535 +{
2536 + LOGFONTW elfLogFont;
2537 + WCHAR[LF_FULLFACESIZE] elfFullName;
2538 + WCHAR[LF_FACESIZE] elfStyle;
2539 + DWORD elfVersion;
2540 + DWORD elfStyleSize;
2541 + DWORD elfMatch;
2542 + DWORD elfReserved;
2543 + BYTE[ELF_VENDOR_SIZE] elfVendorId;
2544 + DWORD elfCulture;
2545 + PANOSE elfPanose;
2546 +}
2547 +alias EXTLOGFONTW*PEXTLOGFONTW, NPEXTLOGFONTW, LPEXTLOGFONTW;
2548 +
2549 +struct LOGPEN
2550 +{
2551 + UINT lopnStyle;
2552 + POINT lopnWidth;
2553 + COLORREF lopnColor;
2554 +}
2555 +alias LOGPEN*PLOGPEN, NPLOGPEN, LPLOGPEN;
2556 +
2557 +// ---------------------- EMR ------------
2558 +
2559 +struct EMR
2560 +{
2561 + DWORD iType;
2562 + DWORD nSize;
2563 +}
2564 +alias EMR*PEMR;
2565 +
2566 +struct EMRANGLEARC
2567 +{
2568 + EMR emr;
2569 + POINTL ptlCenter;
2570 + DWORD nRadius;
2571 + FLOAT eStartAngle;
2572 + FLOAT eSweepAngle;
2573 +}
2574 +alias EMRANGLEARC*PEMRANGLEARC;
2575 +
2576 +struct EMRARC
2577 +{
2578 + EMR emr;
2579 + RECTL rclBox;
2580 + POINTL ptlStart;
2581 + POINTL ptlEnd;
2582 +}
2583 +alias EMRARC*PEMRARC;
2584 +alias EMRARC EMRARCTO;
2585 +alias EMRARCTO*PEMRARCTO;
2586 +alias EMRARC EMRCHORD;
2587 +alias EMRCHORD*PEMRCHORD;
2588 +alias EMRARC EMRPIE;
2589 +alias EMRPIE*PEMRPIE;
2590 +
2591 +struct XFORM
2592 +{
2593 + FLOAT eM11;
2594 + FLOAT eM12;
2595 + FLOAT eM21;
2596 + FLOAT eM22;
2597 + FLOAT eDx;
2598 + FLOAT eDy;
2599 +}
2600 +alias XFORM*PXFORM, LPXFORM;
2601 +
2602 +struct EMRBITBLT
2603 +{
2604 + EMR emr;
2605 + RECTL rclBounds;
2606 + LONG xDest;
2607 + LONG yDest;
2608 + LONG cxDest;
2609 + LONG cyDest;
2610 + DWORD dwRop;
2611 + LONG xSrc;
2612 + LONG ySrc;
2613 + XFORM xformSrc;
2614 + COLORREF crBkColorSrc;
2615 + DWORD iUsageSrc;
2616 + DWORD offBmiSrc;
2617 + DWORD cbBmiSrc;
2618 + DWORD offBitsSrc;
2619 + DWORD cbBitsSrc;
2620 +}
2621 +alias EMRBITBLT*PEMRBITBLT;
2622 +
2623 +struct LOGBRUSH
2624 +{
2625 + UINT lbStyle;
2626 + COLORREF lbColor;
2627 + LONG lbHatch;
2628 +}
1096 2629 alias LOGBRUSH PATTERN;
1097 -alias PATTERN* PPATTERN;
1098 -alias PATTERN* NPPATTERN;
1099 -alias PATTERN* LPPATTERN;
1100 -
1101 -struct tagLOGPEN {
1102 - UINT lopnStyle;
1103 - POINT lopnWidth;
1104 - COLORREF lopnColor;
1105 -}
1106 -alias tagLOGPEN LOGPEN;
1107 -alias tagLOGPEN* PLOGPEN;
1108 -alias tagLOGPEN* NPLOGPEN;
1109 -alias tagLOGPEN* LPLOGPEN;
1110 -
1111 -struct tagEXTLOGPEN {
1112 - DWORD elpPenStyle;
1113 - DWORD elpWidth;
1114 - UINT elpBrushStyle;
1115 - COLORREF elpColor;
1116 - ULONG_PTR elpHatch;
1117 - DWORD elpNumEntries;
1118 - DWORD elpStyleEntry[1];
1119 -}
1120 -alias tagEXTLOGPEN EXTLOGPEN;
1121 -alias tagEXTLOGPEN* PEXTLOGPEN;
1122 -alias tagEXTLOGPEN* NPEXTLOGPEN;
1123 -alias tagEXTLOGPEN* LPEXTLOGPEN;
1124 -
1125 -// #ifndef _PALETTEENTRY_DEFINED
1126 -// #define _PALETTEENTRY_DEFINED
1127 -struct tagPALETTEENTRY {
1128 - BYTE peRed;
1129 - BYTE peGreen;
1130 - BYTE peBlue;
1131 - BYTE peFlags;
1132 -}
1133 -alias tagPALETTEENTRY PALETTEENTRY;
1134 -alias tagPALETTEENTRY* PPALETTEENTRY;
1135 -alias tagPALETTEENTRY* LPPALETTEENTRY;
1136 -
1137 -// #endif // !_PALETTEENTRY_DEFINED
1138 -
1139 -// #ifndef _LOGPALETTE_DEFINED
1140 -// #define _LOGPALETTE_DEFINED
1141 -
1142 -struct tagLOGPALETTE {
1143 - WORD palVersion;
1144 - WORD palNumEntries;
1145 - PALETTEENTRY palPalEntry[1];
1146 -}
1147 -alias tagLOGPALETTE LOGPALETTE;
1148 -alias tagLOGPALETTE* PLOGPALETTE;
1149 -alias tagLOGPALETTE* NPLOGPALETTE;
1150 -alias tagLOGPALETTE* LPLOGPALETTE;
1151 -
1152 -// #endif // !_LOGPALETTE_DEFINED
1153 -
1154 -enum : uint { LF_FACESIZE = 32 }
1155 -
1156 -struct tagLOGFONTA {
1157 - LONG lfHeight;
1158 - LONG lfWidth;
1159 - LONG lfEscapement;
1160 - LONG lfOrientation;
1161 - LONG lfWeight;
1162 - BYTE lfItalic;
1163 - BYTE lfUnderline;
1164 - BYTE lfStrikeOut;
1165 - BYTE lfCharSet;
1166 - BYTE lfOutPrecision;
1167 - BYTE lfClipPrecision;
1168 - BYTE lfQuality;
1169 - BYTE lfPitchAndFamily;
1170 - CHAR lfFaceName[LF_FACESIZE];
1171 -}
1172 -alias tagLOGFONTA LOGFONTA;
1173 -alias tagLOGFONTA* PLOGFONTA;
1174 -alias tagLOGFONTA* NPLOGFONTA;
1175 -alias tagLOGFONTA* LPLOGFONTA;
1176 -
1177 -struct tagLOGFONTW {
1178 - LONG lfHeight;
1179 - LONG lfWidth;
1180 - LONG lfEscapement;
1181 - LONG lfOrientation;
1182 - LONG lfWeight;
1183 - BYTE lfItalic;
1184 - BYTE lfUnderline;
1185 - BYTE lfStrikeOut;
1186 - BYTE lfCharSet;
1187 - BYTE lfOutPrecision;
1188 - BYTE lfClipPrecision;
1189 - BYTE lfQuality;
1190 - BYTE lfPitchAndFamily;
1191 - WCHAR lfFaceName[LF_FACESIZE];
1192 -}
1193 -alias tagLOGFONTW LOGFONTW;
1194 -alias tagLOGFONTW* PLOGFONTW;
1195 -alias tagLOGFONTW* NPLOGFONTW;
1196 -alias tagLOGFONTW* LPLOGFONTW;
1197 -
1198 -// #ifdef UNICODE
1199 -alias LOGFONTW LOGFONT;
1200 -alias PLOGFONTW PLOGFONT;
1201 -alias NPLOGFONTW NPLOGFONT;
1202 -alias LPLOGFONTW LPLOGFONT;
1203 -// #else
1204 -// ...
1205 -// #endif // UNICODE
1206 -
1207 -enum : uint { LF_FULLFACESIZE = 64 }
1208 -
1209 -struct tagENUMLOGFONTA {
1210 - LOGFONTA elfLogFont;
1211 - BYTE elfFullName[LF_FULLFACESIZE];
1212 - BYTE elfStyle[LF_FACESIZE];
1213 -}
1214 -alias tagENUMLOGFONTA ENUMLOGFONTA;
1215 -alias tagENUMLOGFONTA* LPENUMLOGFONTA;
1216 -
1217 -struct tagENUMLOGFONTW {
1218 - LOGFONTW elfLogFont;
1219 - WCHAR elfFullName[LF_FULLFACESIZE];
1220 - WCHAR elfStyle[LF_FACESIZE];
1221 -}
1222 -alias tagENUMLOGFONTW ENUMLOGFONTW;
1223 -alias tagENUMLOGFONTW* LPENUMLOGFONTW;
1224 -
1225 -// #ifdef UNICODE
1226 -alias ENUMLOGFONTW ENUMLOGFONT;
1227 -alias LPENUMLOGFONTW LPENUMLOGFONT;
1228 -// #else
1229 -// ...
1230 -// #endif // UNICODE
1231 -
1232 -// #if(WINVER >= 0x0400)
1233 -struct tagENUMLOGFONTEXA {
1234 - LOGFONTA elfLogFont;
1235 - BYTE elfFullName[LF_FULLFACESIZE];
1236 - BYTE elfStyle[LF_FACESIZE];
1237 - BYTE elfScript[LF_FACESIZE];
1238 -}
1239 -alias tagENUMLOGFONTEXA ENUMLOGFONTEXA;
1240 -alias tagENUMLOGFONTEXA* LPENUMLOGFONTEXA;
1241 -
1242 -struct tagENUMLOGFONTEXW {
1243 - LOGFONTW elfLogFont;
1244 - WCHAR elfFullName[LF_FULLFACESIZE];
1245 - WCHAR elfStyle[LF_FACESIZE];
1246 - WCHAR elfScript[LF_FACESIZE];
1247 -}
1248 -alias tagENUMLOGFONTEXW ENUMLOGFONTEXW;
1249 -alias tagENUMLOGFONTEXW* LPENUMLOGFONTEXW;
1250 -
1251 -// #ifdef UNICODE
1252 -alias ENUMLOGFONTEXW ENUMLOGFONTEX;
1253 -alias LPENUMLOGFONTEXW LPENUMLOGFONTEX;
1254 -// #else
1255 -// ...
1256 -// #endif // UNICODE
1257 -// #endif /* WINVER >= 0x0400 */
1258 -
1259 -enum : uint { OUT_DEFAULT_PRECIS = 0 }
1260 -enum : uint { OUT_STRING_PRECIS = 1 }
1261 -enum : uint { OUT_CHARACTER_PRECIS = 2 }
1262 -enum : uint { OUT_STROKE_PRECIS = 3 }
1263 -enum : uint { OUT_TT_PRECIS = 4 }
1264 -enum : uint { OUT_DEVICE_PRECIS = 5 }
1265 -enum : uint { OUT_RASTER_PRECIS = 6 }
1266 -enum : uint { OUT_TT_ONLY_PRECIS = 7 }
1267 -enum : uint { OUT_OUTLINE_PRECIS = 8 }
1268 -enum : uint { OUT_SCREEN_OUTLINE_PRECIS = 9 }
1269 -enum : uint { OUT_PS_ONLY_PRECIS = 10 }
1270 -
1271 -enum : uint { CLIP_DEFAULT_PRECIS = 0 }
1272 -enum : uint { CLIP_CHARACTER_PRECIS = 1 }
1273 -enum : uint { CLIP_STROKE_PRECIS = 2 }
1274 -enum : uint { CLIP_MASK = 0xf }
1275 -enum : uint { CLIP_LH_ANGLES = 1<<4 }
1276 -enum : uint { CLIP_TT_ALWAYS = 2<<4 }
1277 -enum : uint { CLIP_EMBEDDED = 8<<4 }
1278 -
1279 -enum : uint { DEFAULT_QUALITY = 0 }
1280 -enum : uint { DRAFT_QUALITY = 1 }
1281 -enum : uint { PROOF_QUALITY = 2 }
1282 -// #if(WINVER >= 0x0400)
1283 -enum : uint { NONANTIALIASED_QUALITY = 3 }
1284 -enum : uint { ANTIALIASED_QUALITY = 4 }
1285 -// #endif /* WINVER >= 0x0400 */
1286 -
1287 -// #if (_WIN32_WINNT >= 0x0500)
1288 -enum : uint { CLEARTYPE_QUALITY = 5 }
1289 -// #endif
1290 -
1291 -enum : uint { DEFAULT_PITCH = 0 }
1292 -enum : uint { FIXED_PITCH = 1 }
1293 -enum : uint { VARIABLE_PITCH = 2 }
1294 -// #if(WINVER >= 0x0400)
1295 -enum : uint { MONO_FONT = 8 }
1296 -// #endif /* WINVER >= 0x0400 */
1297 -
1298 -enum : uint { ANSI_CHARSET = 0 }
1299 -enum : uint { DEFAULT_CHARSET = 1 }
1300 -enum : uint { SYMBOL_CHARSET = 2 }
1301 -enum : uint { SHIFTJIS_CHARSET = 128 }
1302 -enum : uint { HANGEUL_CHARSET = 129 }
1303 -enum : uint { HANGUL_CHARSET = 129 }
1304 -enum : uint { GB2312_CHARSET = 134 }
1305 -enum : uint { CHINESEBIG5_CHARSET = 136 }
1306 -enum : uint { OEM_CHARSET = 255 }
1307 -// #if(WINVER >= 0x0400)
1308 -enum : uint { JOHAB_CHARSET = 130 }
1309 -enum : uint { HEBREW_CHARSET = 177 }
1310 -enum : uint { ARABIC_CHARSET = 178 }
1311 -enum : uint { GREEK_CHARSET = 161 }
1312 -enum : uint { TURKISH_CHARSET = 162 }
1313 -enum : uint { VIETNAMESE_CHARSET = 163 }
1314 -enum : uint { THAI_CHARSET = 222 }
1315 -enum : uint { EASTEUROPE_CHARSET = 238 }
1316 -enum : uint { RUSSIAN_CHARSET = 204 }
1317 -
1318 -enum : uint { MAC_CHARSET = 77 }
1319 -enum : uint { BALTIC_CHARSET = 186 }
1320 -
1321 -enum : uint { FS_LATIN1 = 0x00000001 }
1322 -enum : uint { FS_LATIN2 = 0x00000002 }
1323 -enum : uint { FS_CYRILLIC = 0x00000004 }
1324 -enum : uint { FS_GREEK = 0x00000008 }
1325 -enum : uint { FS_TURKISH = 0x00000010 }
1326 -enum : uint { FS_HEBREW = 0x00000020 }
1327 -enum : uint { FS_ARABIC = 0x00000040 }
1328 -enum : uint { FS_BALTIC = 0x00000080 }
1329 -enum : uint { FS_VIETNAMESE = 0x00000100 }
1330 -enum : uint { FS_THAI = 0x00010000 }
1331 -enum : uint { FS_JISJAPAN = 0x00020000 }
1332 -enum : uint { FS_CHINESESIMP = 0x00040000 }
1333 -enum : uint { FS_WANSUNG = 0x00080000 }
1334 -enum : uint { FS_CHINESETRAD = 0x00100000 }
1335 -enum : uint { FS_JOHAB = 0x00200000 }
1336 -enum : uint { FS_SYMBOL = 0x80000000 }
1337 -// #endif /* WINVER >= 0x0400 */
1338 -
1339 -enum : uint { FF_DONTCARE = 0<<4 }
1340 -enum : uint { FF_ROMAN = 1<<4 }
1341 -
1342 -enum : uint { FF_SWISS = 2<<4 }
1343 -
1344 -enum : uint { FF_MODERN = 3<<4 }
1345 -
1346 -enum : uint { FF_SCRIPT = 4<<4 }
1347 -enum : uint { FF_DECORATIVE = 5<<4 }
1348 -
1349 -enum : uint { FW_DONTCARE = 0 }
1350 -enum : uint { FW_THIN = 100 }
1351 -enum : uint { FW_EXTRALIGHT = 200 }
1352 -enum : uint { FW_LIGHT = 300 }
1353 -enum : uint { FW_NORMAL = 400 }
1354 -enum : uint { FW_MEDIUM = 500 }
1355 -enum : uint { FW_SEMIBOLD = 600 }
1356 -enum : uint { FW_BOLD = 700 }
1357 -enum : uint { FW_EXTRABOLD = 800 }
1358 -enum : uint { FW_HEAVY = 900 }
1359 -
1360 -alias FW_EXTRALIGHT FW_ULTRALIGHT;
1361 -alias FW_NORMAL FW_REGULAR;
1362 -alias FW_SEMIBOLD FW_DEMIBOLD;
1363 -alias FW_EXTRABOLD FW_ULTRABOLD;
1364 -alias FW_HEAVY FW_BLACK;
1365 -
1366 -enum : uint { PANOSE_COUNT = 10 }
1367 -enum : uint { PAN_FAMILYTYPE_INDEX = 0 }
1368 -enum : uint { PAN_SERIFSTYLE_INDEX = 1 }
1369 -enum : uint { PAN_WEIGHT_INDEX = 2 }
1370 -enum : uint { PAN_PROPORTION_INDEX = 3 }
1371 -enum : uint { PAN_CONTRAST_INDEX = 4 }
1372 -enum : uint { PAN_STROKEVARIATION_INDEX = 5 }
1373 -enum : uint { PAN_ARMSTYLE_INDEX = 6 }
1374 -enum : uint { PAN_LETTERFORM_INDEX = 7 }
1375 -enum : uint { PAN_MIDLINE_INDEX = 8 }
1376 -enum : uint { PAN_XHEIGHT_INDEX = 9 }
1377 -
1378 -enum : uint { PAN_CULTURE_LATIN = 0 }
1379 -
1380 -struct tagPANOSE {
1381 - BYTE bFamilyType;
1382 - BYTE bSerifStyle;
1383 - BYTE bWeight;
1384 - BYTE bProportion;
1385 - BYTE bContrast;
1386 - BYTE bStrokeVariation;
1387 - BYTE bArmStyle;
1388 - BYTE bLetterform;
1389 - BYTE bMidline;
1390 - BYTE bXHeight;
1391 -}
1392 -alias tagPANOSE PANOSE;
1393 -alias tagPANOSE* LPPANOSE;
1394 -
1395 -enum : uint { PAN_ANY = 0 }
1396 -enum : uint { PAN_NO_FIT = 1 }
1397 -
1398 -enum : uint { PAN_FAMILY_TEXT_DISPLAY = 2 }
1399 -enum : uint { PAN_FAMILY_SCRIPT = 3 }
1400 -enum : uint { PAN_FAMILY_DECORATIVE = 4 }
1401 -enum : uint { PAN_FAMILY_PICTORIAL = 5 }
1402 -
1403 -enum : uint { PAN_SERIF_COVE = 2 }
1404 -enum : uint { PAN_SERIF_OBTUSE_COVE = 3 }
1405 -enum : uint { PAN_SERIF_SQUARE_COVE = 4 }
1406 -enum : uint { PAN_SERIF_OBTUSE_SQUARE_COVE = 5 }
1407 -enum : uint { PAN_SERIF_SQUARE = 6 }
1408 -enum : uint { PAN_SERIF_THIN = 7 }
1409 -enum : uint { PAN_SERIF_BONE = 8 }
1410 -enum : uint { PAN_SERIF_EXAGGERATED = 9 }
1411 -enum : uint { PAN_SERIF_TRIANGLE = 10 }
1412 -enum : uint { PAN_SERIF_NORMAL_SANS = 11 }
1413 -enum : uint { PAN_SERIF_OBTUSE_SANS = 12 }
1414 -enum : uint { PAN_SERIF_PERP_SANS = 13 }
1415 -enum : uint { PAN_SERIF_FLARED = 14 }
1416 -enum : uint { PAN_SERIF_ROUNDED = 15 }
1417 -
1418 -enum : uint { PAN_WEIGHT_VERY_LIGHT = 2 }
1419 -enum : uint { PAN_WEIGHT_LIGHT = 3 }
1420 -enum : uint { PAN_WEIGHT_THIN = 4 }
1421 -enum : uint { PAN_WEIGHT_BOOK = 5 }
1422 -enum : uint { PAN_WEIGHT_MEDIUM = 6 }
1423 -enum : uint { PAN_WEIGHT_DEMI = 7 }
1424 -enum : uint { PAN_WEIGHT_BOLD = 8 }
1425 -enum : uint { PAN_WEIGHT_HEAVY = 9 }
1426 -enum : uint { PAN_WEIGHT_BLACK = 10 }
1427 -enum : uint { PAN_WEIGHT_NORD = 11 }
1428 -
1429 -enum : uint { PAN_PROP_OLD_STYLE = 2 }
1430 -enum : uint { PAN_PROP_MODERN = 3 }
1431 -enum : uint { PAN_PROP_EVEN_WIDTH = 4 }
1432 -enum : uint { PAN_PROP_EXPANDED = 5 }
1433 -enum : uint { PAN_PROP_CONDENSED = 6 }
1434 -enum : uint { PAN_PROP_VERY_EXPANDED = 7 }
1435 -enum : uint { PAN_PROP_VERY_CONDENSED = 8 }
1436 -enum : uint { PAN_PROP_MONOSPACED = 9 }
1437 -
1438 -enum : uint { PAN_CONTRAST_NONE = 2 }
1439 -enum : uint { PAN_CONTRAST_VERY_LOW = 3 }
1440 -enum : uint { PAN_CONTRAST_LOW = 4 }
1441 -enum : uint { PAN_CONTRAST_MEDIUM_LOW = 5 }
1442 -enum : uint { PAN_CONTRAST_MEDIUM = 6 }
1443 -enum : uint { PAN_CONTRAST_MEDIUM_HIGH = 7 }
1444 -enum : uint { PAN_CONTRAST_HIGH = 8 }
1445 -enum : uint { PAN_CONTRAST_VERY_HIGH = 9 }
1446 -
1447 -enum : uint { PAN_STROKE_GRADUAL_DIAG = 2 }
1448 -enum : uint { PAN_STROKE_GRADUAL_TRAN = 3 }
1449 -enum : uint { PAN_STROKE_GRADUAL_VERT = 4 }
1450 -enum : uint { PAN_STROKE_GRADUAL_HORZ = 5 }
1451 -enum : uint { PAN_STROKE_RAPID_VERT = 6 }
1452 -enum : uint { PAN_STROKE_RAPID_HORZ = 7 }
1453 -enum : uint { PAN_STROKE_INSTANT_VERT = 8 }
1454 -
1455 -enum : uint { PAN_STRAIGHT_ARMS_HORZ = 2 }
1456 -enum : uint { PAN_STRAIGHT_ARMS_WEDGE = 3 }
1457 -enum : uint { PAN_STRAIGHT_ARMS_VERT = 4 }
1458 -enum : uint { PAN_STRAIGHT_ARMS_SINGLE_SERIF = 5 }
1459 -enum : uint { PAN_STRAIGHT_ARMS_DOUBLE_SERIF = 6 }
1460 -enum : uint { PAN_BENT_ARMS_HORZ = 7 }
1461 -enum : uint { PAN_BENT_ARMS_WEDGE = 8 }
1462 -enum : uint { PAN_BENT_ARMS_VERT = 9 }
1463 -enum : uint { PAN_BENT_ARMS_SINGLE_SERIF = 10 }
1464 -enum : uint { PAN_BENT_ARMS_DOUBLE_SERIF = 11 }
1465 -
1466 -enum : uint { PAN_LETT_NORMAL_CONTACT = 2 }
1467 -enum : uint { PAN_LETT_NORMAL_WEIGHTED = 3 }
1468 -enum : uint { PAN_LETT_NORMAL_BOXED = 4 }
1469 -enum : uint { PAN_LETT_NORMAL_FLATTENED = 5 }
1470 -enum : uint { PAN_LETT_NORMAL_ROUNDED = 6 }
1471 -enum : uint { PAN_LETT_NORMAL_OFF_CENTER = 7 }
1472 -enum : uint { PAN_LETT_NORMAL_SQUARE = 8 }
1473 -enum : uint { PAN_LETT_OBLIQUE_CONTACT = 9 }
1474 -enum : uint { PAN_LETT_OBLIQUE_WEIGHTED = 10 }
1475 -enum : uint { PAN_LETT_OBLIQUE_BOXED = 11 }
1476 -enum : uint { PAN_LETT_OBLIQUE_FLATTENED = 12 }
1477 -enum : uint { PAN_LETT_OBLIQUE_ROUNDED = 13 }
1478 -enum : uint { PAN_LETT_OBLIQUE_OFF_CENTER = 14 }
1479 -enum : uint { PAN_LETT_OBLIQUE_SQUARE = 15 }
1480 -
1481 -enum : uint { PAN_MIDLINE_STANDARD_TRIMMED = 2 }
1482 -enum : uint { PAN_MIDLINE_STANDARD_POINTED = 3 }
1483 -enum : uint { PAN_MIDLINE_STANDARD_SERIFED = 4 }
1484 -enum : uint { PAN_MIDLINE_HIGH_TRIMMED = 5 }
1485 -enum : uint { PAN_MIDLINE_HIGH_POINTED = 6 }
1486 -enum : uint { PAN_MIDLINE_HIGH_SERIFED = 7 }
1487 -enum : uint { PAN_MIDLINE_CONSTANT_TRIMMED = 8 }
1488 -enum : uint { PAN_MIDLINE_CONSTANT_POINTED = 9 }
1489 -enum : uint { PAN_MIDLINE_CONSTANT_SERIFED = 10 }
1490 -enum : uint { PAN_MIDLINE_LOW_TRIMMED = 11 }
1491 -enum : uint { PAN_MIDLINE_LOW_POINTED = 12 }
1492 -enum : uint { PAN_MIDLINE_LOW_SERIFED = 13 }
1493 -
1494 -enum : uint { PAN_XHEIGHT_CONSTANT_SMALL = 2 }
1495 -enum : uint { PAN_XHEIGHT_CONSTANT_STD = 3 }
1496 -enum : uint { PAN_XHEIGHT_CONSTANT_LARGE = 4 }
1497 -enum : uint { PAN_XHEIGHT_DUCKING_SMALL = 5 }
1498 -enum : uint { PAN_XHEIGHT_DUCKING_STD = 6 }
1499 -enum : uint { PAN_XHEIGHT_DUCKING_LARGE = 7 }
1500 -
1501 -enum : uint { ELF_VENDOR_SIZE = 4 }
1502 -
1503 -struct tagEXTLOGFONTA {
1504 - LOGFONTA elfLogFont;
1505 - BYTE elfFullName[LF_FULLFACESIZE];
1506 - BYTE elfStyle[LF_FACESIZE];
1507 - DWORD elfVersion;
1508 - DWORD elfStyleSize;
1509 - DWORD elfMatch;
1510 - DWORD elfReserved;
1511 - BYTE elfVendorId[ELF_VENDOR_SIZE];
1512 - DWORD elfCulture;
1513 - PANOSE elfPanose;
1514 -}
1515 -alias tagEXTLOGFONTA EXTLOGFONTA;
1516 -alias tagEXTLOGFONTA* PEXTLOGFONTA;
1517 -alias tagEXTLOGFONTA* NPEXTLOGFONTA;
1518 -alias tagEXTLOGFONTA* LPEXTLOGFONTA;
1519 -
1520 -struct tagEXTLOGFONTW {
1521 - LOGFONTW elfLogFont;
1522 - WCHAR elfFullName[LF_FULLFACESIZE];
1523 - WCHAR elfStyle[LF_FACESIZE];
1524 - DWORD elfVersion;
1525 - DWORD elfStyleSize;
1526 - DWORD elfMatch;
1527 - DWORD elfReserved;
1528 - BYTE elfVendorId[ELF_VENDOR_SIZE];
1529 - DWORD elfCulture;
1530 - PANOSE elfPanose;
1531 -}
1532 -alias tagEXTLOGFONTW EXTLOGFONTW;
1533 -alias tagEXTLOGFONTW* PEXTLOGFONTW;
1534 -alias tagEXTLOGFONTW* NPEXTLOGFONTW;
1535 -alias tagEXTLOGFONTW* LPEXTLOGFONTW;
1536 -
1537 -// #ifdef UNICODE
1538 -alias EXTLOGFONTW EXTLOGFONT;
1539 -alias PEXTLOGFONTW PEXTLOGFONT;
1540 -alias NPEXTLOGFONTW NPEXTLOGFONT;
1541 -alias LPEXTLOGFONTW LPEXTLOGFONT;
1542 -// #else
1543 -// ...
1544 -// #endif // UNICODE
1545 -
1546 -enum : uint { ELF_VERSION = 0 }
1547 -enum : uint { ELF_CULTURE_LATIN = 0 }
1548 -
1549 -enum : uint { RASTER_FONTTYPE = 0x0001 }
1550 -enum : uint { DEVICE_FONTTYPE = 0x002 }
1551 -enum : uint { TRUETYPE_FONTTYPE = 0x004 }
1552 -
1553 -COLORREF RGB(BYTE r, BYTE g, BYTE b){ return r|(g <<8)|(b << 16); }
1554 -COLORREF PALETTERGB(BYTE r, BYTE g, BYTE b){ return (0x02000000 | RGB(r,g,b)); }
1555 -COLORREF PALETTEINDEX(WORD i){ return (cast(COLORREF)(0x01000000 | cast(DWORD)cast(WORD)(i))); }
1556 -
1557 -enum : uint { PC_RESERVED = 0x01 }
1558 -enum : uint { PC_EXPLICIT = 0x02 }
1559 -enum : uint { PC_NOCOLLAPSE = 0x04 }
1560 -
1561 -BYTE GetRValue(COLORREF rgb){ return cast(BYTE)rgb; }
1562 -BYTE GetGValue(COLORREF rgb){ return cast(BYTE)(rgb >>> 8); }
1563 -BYTE GetBValue(COLORREF rgb){ return cast(BYTE)(rgb >>> 16); }
1564 -
1565 -enum : uint { TRANSPARENT = 1 }
1566 -enum : uint { OPAQUE = 2 }
1567 -enum : uint { BKMODE_LAST = 2 }
1568 -
1569 -enum : uint { GM_COMPATIBLE = 1 }
1570 -enum : uint { GM_ADVANCED = 2 }
1571 -enum : uint { GM_LAST = 2 }
1572 -
1573 -enum : uint { PT_CLOSEFIGURE = 0x01 }
1574 -enum : uint { PT_LINETO = 0x02 }
1575 -enum : uint { PT_BEZIERTO = 0x04 }
1576 -enum : uint { PT_MOVETO = 0x06 }
1577 -
1578 -enum : uint { MM_TEXT = 1 }
1579 -enum : uint { MM_LOMETRIC = 2 }
1580 -enum : uint { MM_HIMETRIC = 3 }
1581 -enum : uint { MM_LOENGLISH = 4 }
1582 -enum : uint { MM_HIENGLISH = 5 }
1583 -enum : uint { MM_TWIPS = 6 }
1584 -enum : uint { MM_ISOTROPIC = 7 }
1585 -enum : uint { MM_ANISOTROPIC = 8 }
1586 -
1587 -alias MM_TEXT MM_MIN;
1588 -alias MM_ANISOTROPIC MM_MAX;
1589 -alias MM_TWIPS MM_MAX_FIXEDSCALE;
1590 -
1591 -enum : uint { ABSOLUTE = 1 }
1592 -enum : uint { RELATIVE = 2 }
1593 -
1594 -enum : uint { WHITE_BRUSH = 0 }
1595 -enum : uint { LTGRAY_BRUSH = 1 }
1596 -enum : uint { GRAY_BRUSH = 2 }
1597 -enum : uint { DKGRAY_BRUSH = 3 }
1598 -enum : uint { BLACK_BRUSH = 4 }
1599 -enum : uint { NULL_BRUSH = 5 }
1600 -alias NULL_BRUSH HOLLOW_BRUSH;
1601 -enum : uint { WHITE_PEN = 6 }
1602 -enum : uint { BLACK_PEN = 7 }
1603 -enum : uint { NULL_PEN = 8 }
1604 -enum : uint { OEM_FIXED_FONT = 10 }
1605 -enum : uint { ANSI_FIXED_FONT = 11 }
1606 -enum : uint { ANSI_VAR_FONT = 12 }
1607 -enum : uint { SYSTEM_FONT = 13 }
1608 -enum : uint { DEVICE_DEFAULT_FONT = 14 }
1609 -enum : uint { DEFAULT_PALETTE = 15 }
1610 -enum : uint { SYSTEM_FIXED_FONT = 16 }
1611 -
1612 -// #if(WINVER >= 0x0400)
1613 -enum : uint { DEFAULT_GUI_FONT = 17 }
1614 -// #endif /* WINVER >= 0x0400 */
1615 -
1616 -// #if (_WIN32_WINNT >= 0x0500)
1617 -enum : uint { DC_BRUSH = 18 }
1618 -enum : uint { DC_PEN = 19 }
1619 -// #endif
1620 -
1621 -// #if (_WIN32_WINNT >= 0x0500)
1622 -enum : uint { STOCK_LAST = 19 }
1623 -// #elif (WINVER >= 0x0400)
1624 -// #...
1625 -// #else
1626 -// #...
1627 -// #endif
1628 -
1629 -enum : uint { CLR_INVALID = 0xFFFFFFFF }
1630 -
1631 -enum : uint { BS_SOLID = 0 }
1632 -enum : uint { BS_NULL = 1 }
1633 -alias BS_NULL BS_HOLLOW;
1634 -enum : uint { BS_HATCHED = 2 }
1635 -enum : uint { BS_PATTERN = 3 }
1636 -enum : uint { BS_INDEXED = 4 }
1637 -enum : uint { BS_DIBPATTERN = 5 }
1638 -enum : uint { BS_DIBPATTERNPT = 6 }
1639 -enum : uint { BS_PATTERN8X8 = 7 }
1640 -enum : uint { BS_DIBPATTERN8X8 = 8 }
1641 -enum : uint { BS_MONOPATTERN = 9 }
1642 -
1643 -enum : uint { HS_HORIZONTAL = 0 }
1644 -enum : uint { HS_VERTICAL = 1 }
1645 -enum : uint { HS_FDIAGONAL = 2 }
1646 -enum : uint { HS_BDIAGONAL = 3 }
1647 -enum : uint { HS_CROSS = 4 }
1648 -enum : uint { HS_DIAGCROSS = 5 }
1649 -
1650 -enum : uint { PS_SOLID = 0 }
1651 -enum : uint { PS_DASH = 1 }
1652 -enum : uint { PS_DOT = 2 }
1653 -enum : uint { PS_DASHDOT = 3 }
1654 -enum : uint { PS_DASHDOTDOT = 4 }
1655 -enum : uint { PS_NULL = 5 }
1656 -enum : uint { PS_INSIDEFRAME = 6 }
1657 -enum : uint { PS_USERSTYLE = 7 }
1658 -enum : uint { PS_ALTERNATE = 8 }
1659 -enum : uint { PS_STYLE_MASK = 0x0000000F }
1660 -
1661 -enum : uint { PS_ENDCAP_ROUND = 0x00000000 }
1662 -enum : uint { PS_ENDCAP_SQUARE = 0x00000100 }
1663 -enum : uint { PS_ENDCAP_FLAT = 0x00000200 }
1664 -enum : uint { PS_ENDCAP_MASK = 0x00000F00 }
1665 -
1666 -enum : uint { PS_JOIN_ROUND = 0x00000000 }
1667 -enum : uint { PS_JOIN_BEVEL = 0x00001000 }
1668 -enum : uint { PS_JOIN_MITER = 0x00002000 }
1669 -enum : uint { PS_JOIN_MASK = 0x0000F000 }
1670 -
1671 -enum : uint { PS_COSMETIC = 0x00000000 }
1672 -enum : uint { PS_GEOMETRIC = 0x00010000 }
1673 -enum : uint { PS_TYPE_MASK = 0x000F0000 }
1674 -
1675 -enum : uint { AD_COUNTERCLOCKWISE = 1 }
1676 -enum : uint { AD_CLOCKWISE = 2 }
1677 -
1678 -enum : uint { DRIVERVERSION = 0 }
1679 -enum : uint { TECHNOLOGY = 2 }
1680 -enum : uint { HORZSIZE = 4 }
1681 -enum : uint { VERTSIZE = 6 }
1682 -enum : uint { HORZRES = 8 }
1683 -enum : uint { VERTRES = 10 }
1684 -enum : uint { BITSPIXEL = 12 }
1685 -enum : uint { PLANES = 14 }
1686 -enum : uint { NUMBRUSHES = 16 }
1687 -enum : uint { NUMPENS = 18 }
1688 -enum : uint { NUMMARKERS = 20 }
1689 -enum : uint { NUMFONTS = 22 }
1690 -enum : uint { NUMCOLORS = 24 }
1691 -enum : uint { PDEVICESIZE = 26 }
1692 -enum : uint { CURVECAPS = 28 }
1693 -enum : uint { LINECAPS = 30 }
1694 -enum : uint { POLYGONALCAPS = 32 }
1695 -enum : uint { TEXTCAPS = 34 }
1696 -enum : uint { CLIPCAPS = 36 }
1697 -enum : uint { RASTERCAPS = 38 }
1698 -enum : uint { ASPECTX = 40 }
1699 -enum : uint { ASPECTY = 42 }
1700 -enum : uint { ASPECTXY = 44 }
1701 -
1702 -enum : uint { LOGPIXELSX = 88 }
1703 -enum : uint { LOGPIXELSY = 90 }
1704 -
1705 -enum : uint { SIZEPALETTE = 104 }
1706 -enum : uint { NUMRESERVED = 106 }
1707 -enum : uint { COLORRES = 108 }
1708 -
1709 -enum : uint { PHYSICALWIDTH = 110 }
1710 -enum : uint { PHYSICALHEIGHT = 111 }
1711 -enum : uint { PHYSICALOFFSETX = 112 }
1712 -enum : uint { PHYSICALOFFSETY = 113 }
1713 -enum : uint { SCALINGFACTORX = 114 }
1714 -enum : uint { SCALINGFACTORY = 115 }
1715 -
1716 -enum : uint { VREFRESH = 116 }
1717 -
1718 -enum : uint { DESKTOPVERTRES = 117 }
1719 -
1720 -enum : uint { DESKTOPHORZRES = 118 }
1721 -
1722 -enum : uint { BLTALIGNMENT = 119 }
1723 -
1724 -// #if(WINVER >= 0x0500)
1725 -enum : uint { SHADEBLENDCAPS = 120 }
1726 -enum : uint { COLORMGMTCAPS = 121 }
1727 -// #endif /* WINVER >= 0x0500 */
1728 -
1729 -// #ifndef NOGDICAPMASKS
1730 -
1731 -enum : uint { DT_PLOTTER = 0 }
1732 -enum : uint { DT_RASDISPLAY = 1 }
1733 -enum : uint { DT_RASPRINTER = 2 }
1734 -enum : uint { DT_RASCAMERA = 3 }
1735 -enum : uint { DT_CHARSTREAM = 4 }
1736 -enum : uint { DT_METAFILE = 5 }
1737 -enum : uint { DT_DISPFILE = 6 }
1738 -
1739 -enum : uint { CC_NONE = 0 }
1740 -enum : uint { CC_CIRCLES = 1 }
1741 -enum : uint { CC_PIE = 2 }
1742 -enum : uint { CC_CHORD = 4 }
1743 -enum : uint { CC_ELLIPSES = 8 }
1744 -enum : uint { CC_WIDE = 16 }
1745 -enum : uint { CC_STYLED = 32 }
1746 -enum : uint { CC_WIDESTYLED = 64 }
1747 -enum : uint { CC_INTERIORS = 128 }
1748 -enum : uint { CC_ROUNDRECT = 256 }
1749 -
1750 -enum : uint { LC_NONE = 0 }
1751 -enum : uint { LC_POLYLINE = 2 }
1752 -enum : uint { LC_MARKER = 4 }
1753 -enum : uint { LC_POLYMARKER = 8 }
1754 -enum : uint { LC_WIDE = 16 }
1755 -enum : uint { LC_STYLED = 32 }
1756 -enum : uint { LC_WIDESTYLED = 64 }
1757 -enum : uint { LC_INTERIORS = 128 }
1758 -
1759 -enum : uint { PC_NONE = 0 }
1760 -enum : uint { PC_POLYGON = 1 }
1761 -enum : uint { PC_RECTANGLE = 2 }
1762 -enum : uint { PC_WINDPOLYGON = 4 }
1763 -enum : uint { PC_TRAPEZOID = 4 }
1764 -enum : uint { PC_SCANLINE = 8 }
1765 -enum : uint { PC_WIDE = 16 }
1766 -enum : uint { PC_STYLED = 32 }
1767 -enum : uint { PC_WIDESTYLED = 64 }
1768 -enum : uint { PC_INTERIORS = 128 }
1769 -enum : uint { PC_POLYPOLYGON = 256 }
1770 -enum : uint { PC_PATHS = 512 }
1771 -
1772 -enum : uint { CP_NONE = 0 }
1773 -enum : uint { CP_RECTANGLE = 1 }
1774 -enum : uint { CP_REGION = 2 }
1775 -
1776 -enum : uint { TC_OP_CHARACTER = 0x00000001 }
1777 -enum : uint { TC_OP_STROKE = 0x00000002 }
1778 -enum : uint { TC_CP_STROKE = 0x00000004 }
1779 -enum : uint { TC_CR_90 = 0x00000008 }
1780 -enum : uint { TC_CR_ANY = 0x00000010 }
1781 -enum : uint { TC_SF_X_YINDEP = 0x00000020 }
1782 -enum : uint { TC_SA_DOUBLE = 0x00000040 }
1783 -enum : uint { TC_SA_INTEGER = 0x00000080 }
1784 -enum : uint { TC_SA_CONTIN = 0x00000100 }
1785 -enum : uint { TC_EA_DOUBLE = 0x00000200 }
1786 -enum : uint { TC_IA_ABLE = 0x00000400 }
1787 -enum : uint { TC_UA_ABLE = 0x00000800 }
1788 -enum : uint { TC_SO_ABLE = 0x00001000 }
1789 -enum : uint { TC_RA_ABLE = 0x00002000 }
1790 -enum : uint { TC_VA_ABLE = 0x00004000 }
1791 -enum : uint { TC_RESERVED = 0x00008000 }
1792 -enum : uint { TC_SCROLLBLT = 0x00010000 }
1793 -
1794 -// #endif /* NOGDICAPMASKS */
1795 -
1796 -// #define RC_NONE
1797 -enum : uint { RC_BITBLT = 1 }
1798 -enum : uint { RC_BANDING = 2 }
1799 -enum : uint { RC_SCALING = 4 }
1800 -enum : uint { RC_BITMAP64 = 8 }
1801 -enum : uint { RC_GDI20_OUTPUT = 0x0010 }
1802 -enum : uint { RC_GDI20_STATE = 0x0020 }
1803 -enum : uint { RC_SAVEBITMAP = 0x0040 }
1804 -enum : uint { RC_DI_BITMAP = 0x0080 }
1805 -enum : uint { RC_PALETTE = 0x0100 }
1806 -enum : uint { RC_DIBTODEV = 0x0200 }
1807 -enum : uint { RC_BIGFONT = 0x0400 }
1808 -enum : uint { RC_STRETCHBLT = 0x0800 }
1809 -enum : uint { RC_FLOODFILL = 0x1000 }
1810 -enum : uint { RC_STRETCHDIB = 0x2000 }
1811 -enum : uint { RC_OP_DX_OUTPUT = 0x4000 }
1812 -enum : uint { RC_DEVBITS = 0x8000 }
1813 -
1814 -// #if(WINVER >= 0x0500)
1815 -
1816 -enum : uint { SB_NONE = 0x00000000 }
1817 -enum : uint { SB_CONST_ALPHA = 0x00000001 }
1818 -enum : uint { SB_PIXEL_ALPHA = 0x00000002 }
1819 -enum : uint { SB_PREMULT_ALPHA = 0x00000004 }
1820 -
1821 -enum : uint { SB_GRAD_RECT = 0x00000010 }
1822 -enum : uint { SB_GRAD_TRI = 0x00000020 }
1823 -
1824 -enum : uint { CM_NONE = 0x00000000 }
1825 -enum : uint { CM_DEVICE_ICM = 0x00000001 }
1826 -enum : uint { CM_GAMMA_RAMP = 0x00000002 }
1827 -enum : uint { CM_CMYK_COLOR = 0x00000004 }
1828 -
1829 -// #endif /* WINVER >= 0x0500 */
1830 -
1831 -enum : uint { DIB_RGB_COLORS = 0 }
1832 -enum : uint { DIB_PAL_COLORS = 1 }
1833 -
1834 -enum : uint { SYSPAL_ERROR = 0 }
1835 -enum : uint { SYSPAL_STATIC = 1 }
1836 -enum : uint { SYSPAL_NOSTATIC = 2 }
1837 -enum : uint { SYSPAL_NOSTATIC256 = 3 }
1838 -
1839 -enum : uint { CBM_INIT = 0x04 }
1840 -
1841 -enum : uint { FLOODFILLBORDER = 0 }
1842 -enum : uint { FLOODFILLSURFACE = 1 }
1843 -
1844 -enum : uint { CCHDEVICENAME = 32 }
1845 -
1846 -enum : uint { CCHFORMNAME = 32 }
1847 -
1848 -struct _devicemodeA {
1849 - BYTE dmDeviceName[CCHDEVICENAME];
1850 - WORD dmSpecVersion;
1851 - WORD dmDriverVersion;
1852 - WORD dmSize;
1853 - WORD dmDriverExtra;
1854 - DWORD dmFields;
1855 -union {
1856 -struct {
1857 - short dmOrientation;
1858 - short dmPaperSize;
1859 - short dmPaperLength;
1860 - short dmPaperWidth;
1861 -}
1862 -
1863 - POINTL dmPosition;
1864 -}
1865 -
1866 - short dmScale;
1867 - short dmCopies;
1868 - short dmDefaultSource;
1869 - short dmPrintQuality;
1870 - short dmColor;
1871 - short dmDuplex;
1872 - short dmYResolution;
1873 - short dmTTOption;
1874 - short dmCollate;
1875 - BYTE dmFormName[CCHFORMNAME];
1876 - WORD dmLogPixels;
1877 - DWORD dmBitsPerPel;
1878 - DWORD dmPelsWidth;
1879 - DWORD dmPelsHeight;
1880 -union {
1881 - DWORD dmDisplayFlags;
1882 - DWORD dmNup;
1883 -}
1884 -
1885 - DWORD dmDisplayFrequency;
1886 -// #if(WINVER >= 0x0400)
1887 - DWORD dmICMMethod;
1888 - DWORD dmICMIntent;
1889 - DWORD dmMediaType;
1890 - DWORD dmDitherType;
1891 - DWORD dmReserved1;
1892 - DWORD dmReserved2;
1893 -// #if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)
1894 - DWORD dmPanningWidth;
1895 - DWORD dmPanningHeight;
1896 -// #endif
1897 -// #endif /* WINVER >= 0x0400 */
1898 -}
1899 -alias _devicemodeA DEVMODEA;
1900 -alias _devicemodeA* PDEVMODEA;
1901 -alias _devicemodeA* NPDEVMODEA;
1902 -alias _devicemodeA* LPDEVMODEA;
1903 -
1904 -struct _devicemodeW {
1905 - WCHAR dmDeviceName[CCHDEVICENAME];
1906 - WORD dmSpecVersion;
1907 - WORD dmDriverVersion;
1908 - WORD dmSize;
1909 - WORD dmDriverExtra;
1910 - DWORD dmFields;
1911 -union {
1912 -struct {
1913 - short dmOrientation;
1914 - short dmPaperSize;
1915 - short dmPaperLength;
1916 - short dmPaperWidth;
1917 -}
1918 -
1919 - POINTL dmPosition;
1920 -}
1921 -
1922 - short dmScale;
1923 - short dmCopies;
1924 - short dmDefaultSource;
1925 - short dmPrintQuality;
1926 - short dmColor;
1927 - short dmDuplex;
1928 - short dmYResolution;
1929 - short dmTTOption;
1930 - short dmCollate;
1931 - WCHAR dmFormName[CCHFORMNAME];
1932 - WORD dmLogPixels;
1933 - DWORD dmBitsPerPel;
1934 - DWORD dmPelsWidth;
1935 - DWORD dmPelsHeight;
1936 -union {
1937 - DWORD dmDisplayFlags;
1938 - DWORD dmNup;
1939 -}
1940 -
1941 - DWORD dmDisplayFrequency;
1942 -// #if(WINVER >= 0x0400)
1943 - DWORD dmICMMethod;
1944 - DWORD dmICMIntent;
1945 - DWORD dmMediaType;
1946 - DWORD dmDitherType;
1947 - DWORD dmReserved1;
1948 - DWORD dmReserved2;
1949 -// #if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)
1950 - DWORD dmPanningWidth;
1951 - DWORD dmPanningHeight;
1952 -// #endif
1953 -// #endif /* WINVER >= 0x0400 */
1954 -}
1955 -alias _devicemodeW DEVMODEW;
1956 -alias _devicemodeW* PDEVMODEW;
1957 -alias _devicemodeW* NPDEVMODEW;
1958 -alias _devicemodeW* LPDEVMODEW;
1959 -
1960 -// #ifdef UNICODE
1961 -alias DEVMODEW DEVMODE;
1962 -alias PDEVMODEW PDEVMODE;
1963 -alias NPDEVMODEW NPDEVMODE;
1964 -alias LPDEVMODEW LPDEVMODE;
1965 -// #else
1966 -// ...
1967 -// #endif // UNICODE
1968 -
1969 -// #if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)
1970 -enum : uint { DM_SPECVERSION = 0x0401 }
1971 -// #elif (WINVER >= 0x0400)
1972 -// #...
1973 -// #else
1974 -// #...
1975 -// #endif /* WINVER */
1976 -
1977 -enum : uint { DM_ORIENTATION = 0x00000001 }
1978 -enum : uint { DM_PAPERSIZE = 0x00000002 }
1979 -enum : uint { DM_PAPERLENGTH = 0x00000004 }
1980 -enum : uint { DM_PAPERWIDTH = 0x00000008 }
1981 -enum : uint { DM_SCALE = 0x00000010 }
1982 -// #if(WINVER >= 0x0500)
1983 -enum : uint { DM_POSITION = 0x00000020 }
1984 -enum : uint { DM_NUP = 0x00000040 }
1985 -// #endif /* WINVER >= 0x0500 */
1986 -enum : uint { DM_COPIES = 0x00000100 }
1987 -enum : uint { DM_DEFAULTSOURCE = 0x00000200 }
1988 -enum : uint { DM_PRINTQUALITY = 0x00000400 }
1989 -enum : uint { DM_COLOR = 0x00000800 }
1990 -enum : uint { DM_DUPLEX = 0x00001000 }
1991 -enum : uint { DM_YRESOLUTION = 0x00002000 }
1992 -enum : uint { DM_TTOPTION = 0x00004000 }
1993 -enum : uint { DM_COLLATE = 0x00008000 }
1994 -enum : uint { DM_FORMNAME = 0x00010000 }
1995 -enum : uint { DM_LOGPIXELS = 0x00020000 }
1996 -enum : uint { DM_BITSPERPEL = 0x00040000 }
1997 -enum : uint { DM_PELSWIDTH = 0x00080000 }
1998 -enum : uint { DM_PELSHEIGHT = 0x00100000 }
1999 -enum : uint { DM_DISPLAYFLAGS = 0x00200000 }
2000 -enum : uint { DM_DISPLAYFREQUENCY = 0x00400000 }
2001 -// #if(WINVER >= 0x0400)
2002 -enum : uint { DM_ICMMETHOD = 0x00800000 }
2003 -enum : uint { DM_ICMINTENT = 0x01000000 }
2004 -enum : uint { DM_MEDIATYPE = 0x02000000 }
2005 -enum : uint { DM_DITHERTYPE = 0x04000000 }
2006 -enum : uint { DM_PANNINGWIDTH = 0x08000000 }
2007 -enum : uint { DM_PANNINGHEIGHT = 0x10000000 }
2008 -// #endif /* WINVER >= 0x0400 */
2009 -
2010 -enum : uint { DMORIENT_PORTRAIT = 1 }
2011 -enum : uint { DMORIENT_LANDSCAPE = 2 }
2012 -
2013 -enum { DMPAPER_FIRST = 1 }
2014 -enum : uint { DMPAPER_LETTER = 1 }
2015 -enum : uint { DMPAPER_LETTERSMALL = 2 }
2016 -enum : uint { DMPAPER_TABLOID = 3 }
2017 -enum : uint { DMPAPER_LEDGER = 4 }
2018 -enum : uint { DMPAPER_LEGAL = 5 }
2019 -enum : uint { DMPAPER_STATEMENT = 6 }
2020 -enum : uint { DMPAPER_EXECUTIVE = 7 }
2021 -enum : uint { DMPAPER_A3 = 8 }
2022 -enum : uint { DMPAPER_A4 = 9 }
2023 -enum : uint { DMPAPER_A4SMALL = 10 }
2024 -enum : uint { DMPAPER_A5 = 11 }
2025 -enum : uint { DMPAPER_B4 = 12 }
2026 -enum : uint { DMPAPER_B5 = 13 }
2027 -enum : uint { DMPAPER_FOLIO = 14 }
2028 -enum : uint { DMPAPER_QUARTO = 15 }
2029 -enum : uint { DMPAPER_10X14 = 16 }
2030 -enum : uint { DMPAPER_11X17 = 17 }
2031 -enum : uint { DMPAPER_NOTE = 18 }
2032 -enum : uint { DMPAPER_ENV_9 = 19 }
2033 -enum : uint { DMPAPER_ENV_10 = 20 }
2034 -enum : uint { DMPAPER_ENV_11 = 21 }
2035 -enum : uint { DMPAPER_ENV_12 = 22 }
2036 -enum : uint { DMPAPER_ENV_14 = 23 }
2037 -enum : uint { DMPAPER_CSHEET = 24 }
2038 -enum : uint { DMPAPER_DSHEET = 25 }
2039 -enum : uint { DMPAPER_ESHEET = 26 }
2040 -enum : uint { DMPAPER_ENV_DL = 27 }
2041 -enum : uint { DMPAPER_ENV_C5 = 28 }
2042 -enum : uint { DMPAPER_ENV_C3 = 29 }
2043 -enum : uint { DMPAPER_ENV_C4 = 30 }
2044 -enum : uint { DMPAPER_ENV_C6 = 31 }
2045 -enum : uint { DMPAPER_ENV_C65 = 32 }
2046 -enum : uint { DMPAPER_ENV_B4 = 33 }
2047 -enum : uint { DMPAPER_ENV_B5 = 34 }
2048 -enum : uint { DMPAPER_ENV_B6 = 35 }
2049 -enum : uint { DMPAPER_ENV_ITALY = 36 }
2050 -enum : uint { DMPAPER_ENV_MONARCH = 37 }
2051 -enum : uint { DMPAPER_ENV_PERSONAL = 38 }
2052 -enum : uint { DMPAPER_FANFOLD_US = 39 }
2053 -enum : uint { DMPAPER_FANFOLD_STD_GERMAN = 40 }
2054 -enum : uint { DMPAPER_FANFOLD_LGL_GERMAN = 41 }
2055 -// #if(WINVER >= 0x0400)
2056 -enum : uint { DMPAPER_ISO_B4 = 42 }
2057 -enum : uint { DMPAPER_JAPANESE_POSTCARD = 43 }
2058 -enum : uint { DMPAPER_9X11 = 44 }
2059 -enum : uint { DMPAPER_10X11 = 45 }
2060 -enum : uint { DMPAPER_15X11 = 46 }
2061 -enum : uint { DMPAPER_ENV_INVITE = 47 }
2062 -enum : uint { DMPAPER_RESERVED_48 = 48 }
2063 -enum : uint { DMPAPER_RESERVED_49 = 49 }
2064 -enum : uint { DMPAPER_LETTER_EXTRA = 50 }
2065 -enum : uint { DMPAPER_LEGAL_EXTRA = 51 }
2066 -enum : uint { DMPAPER_TABLOID_EXTRA = 52 }
2067 -enum : uint { DMPAPER_A4_EXTRA = 53 }
2068 -enum : uint { DMPAPER_LETTER_TRANSVERSE = 54 }
2069 -enum : uint { DMPAPER_A4_TRANSVERSE = 55 }
2070 -enum : uint { DMPAPER_LETTER_EXTRA_TRANSVERSE = 56 }
2071 -enum : uint { DMPAPER_A_PLUS = 57 }
2072 -enum : uint { DMPAPER_B_PLUS = 58 }
2073 -enum : uint { DMPAPER_LETTER_PLUS = 59 }
2074 -enum : uint { DMPAPER_A4_PLUS = 60 }
2075 -enum : uint { DMPAPER_A5_TRANSVERSE = 61 }
2076 -enum : uint { DMPAPER_B5_TRANSVERSE = 62 }
2077 -enum : uint { DMPAPER_A3_EXTRA = 63 }
2078 -enum : uint { DMPAPER_A5_EXTRA = 64 }
2079 -enum : uint { DMPAPER_B5_EXTRA = 65 }
2080 -enum : uint { DMPAPER_A2 = 66 }
2081 -enum : uint { DMPAPER_A3_TRANSVERSE = 67 }
2082 -enum : uint { DMPAPER_A3_EXTRA_TRANSVERSE = 68 }
2083 -// #endif /* WINVER >= 0x0400 */
2084 -
2085 -// #if(WINVER >= 0x0500)
2086 -enum : uint { DMPAPER_DBL_JAPANESE_POSTCARD = 69 }
2087 -enum : uint { DMPAPER_A6 = 70 }
2088 -enum : uint { DMPAPER_JENV_KAKU2 = 71 }
2089 -enum : uint { DMPAPER_JENV_KAKU3 = 72 }
2090 -enum : uint { DMPAPER_JENV_CHOU3 = 73 }
2091 -enum : uint { DMPAPER_JENV_CHOU4 = 74 }
2092 -enum : uint { DMPAPER_LETTER_ROTATED = 75 }
2093 -enum : uint { DMPAPER_A3_ROTATED = 76 }
2094 -enum : uint { DMPAPER_A4_ROTATED = 77 }
2095 -enum : uint { DMPAPER_A5_ROTATED = 78 }
2096 -enum : uint { DMPAPER_B4_JIS_ROTATED = 79 }
2097 -enum : uint { DMPAPER_B5_JIS_ROTATED = 80 }
2098 -enum : uint { DMPAPER_JAPANESE_POSTCARD_ROTATED = 81 }
2099 -enum : uint { DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED = 82 }
2100 -enum : uint { DMPAPER_A6_ROTATED = 83 }
2101 -enum : uint { DMPAPER_JENV_KAKU2_ROTATED = 84 }
2102 -enum : uint { DMPAPER_JENV_KAKU3_ROTATED = 85 }
2103 -enum : uint { DMPAPER_JENV_CHOU3_ROTATED = 86 }
2104 -enum : uint { DMPAPER_JENV_CHOU4_ROTATED = 87 }
2105 -enum : uint { DMPAPER_B6_JIS = 88 }
2106 -enum : uint { DMPAPER_B6_JIS_ROTATED = 89 }
2107 -enum : uint { DMPAPER_12X11 = 90 }
2108 -enum : uint { DMPAPER_JENV_YOU4 = 91 }
2109 -enum : uint { DMPAPER_JENV_YOU4_ROTATED = 92 }
2110 -enum : uint { DMPAPER_P16K = 93 }
2111 -enum : uint { DMPAPER_P32K = 94 }
2112 -enum : uint { DMPAPER_P32KBIG = 95 }
2113 -enum : uint { DMPAPER_PENV_1 = 96 }
2114 -enum : uint { DMPAPER_PENV_2 = 97 }
2115 -enum : uint { DMPAPER_PENV_3 = 98 }
2116 -enum : uint { DMPAPER_PENV_4 = 99 }
2117 -enum : uint { DMPAPER_PENV_5 = 100 }
2118 -enum : uint { DMPAPER_PENV_6 = 101 }
2119 -enum : uint { DMPAPER_PENV_7 = 102 }
2120 -enum : uint { DMPAPER_PENV_8 = 103 }
2121 -enum : uint { DMPAPER_PENV_9 = 104 }
2122 -enum : uint { DMPAPER_PENV_10 = 105 }
2123 -enum : uint { DMPAPER_P16K_ROTATED = 106 }
2124 -enum : uint { DMPAPER_P32K_ROTATED = 107 }
2125 -enum : uint { DMPAPER_P32KBIG_ROTATED = 108 }
2126 -enum : uint { DMPAPER_PENV_1_ROTATED = 109 }
2127 -enum : uint { DMPAPER_PENV_2_ROTATED = 110 }
2128 -enum : uint { DMPAPER_PENV_3_ROTATED = 111 }
2129 -enum : uint { DMPAPER_PENV_4_ROTATED = 112 }
2130 -enum : uint { DMPAPER_PENV_5_ROTATED = 113 }
2131 -enum : uint { DMPAPER_PENV_6_ROTATED = 114 }
2132 -enum : uint { DMPAPER_PENV_7_ROTATED = 115 }
2133 -enum : uint { DMPAPER_PENV_8_ROTATED = 116 }
2134 -enum : uint { DMPAPER_PENV_9_ROTATED = 117 }
2135 -enum : uint { DMPAPER_PENV_10_ROTATED = 118 }
2136 -// #endif /* WINVER >= 0x0500 */
2137 -
2138 -// #if (WINVER >= 0x0500)
2139 -alias DMPAPER_PENV_10_ROTATED DMPAPER_LAST;
2140 -// #elif (WINVER >= 0x0400)
2141 -// #...
2142 -// #else
2143 -// #...
2144 -// #endif
2145 -
2146 -enum : uint { DMPAPER_USER = 256 }
2147 -
2148 -enum { DMBIN_FIRST = 1 }
2149 -enum : uint { DMBIN_UPPER = 1 }
2150 -enum : uint { DMBIN_ONLYONE = 1 }
2151 -enum : uint { DMBIN_LOWER = 2 }
2152 -enum : uint { DMBIN_MIDDLE = 3 }
2153 -enum : uint { DMBIN_MANUAL = 4 }
2154 -enum : uint { DMBIN_ENVELOPE = 5 }
2155 -enum : uint { DMBIN_ENVMANUAL = 6 }
2156 -enum : uint { DMBIN_AUTO = 7 }
2157 -enum : uint { DMBIN_TRACTOR = 8 }
2158 -enum : uint { DMBIN_SMALLFMT = 9 }
2159 -enum : uint { DMBIN_LARGEFMT = 10 }
2160 -enum : uint { DMBIN_LARGECAPACITY = 11 }
2161 -enum : uint { DMBIN_CASSETTE = 14 }
2162 -enum : uint { DMBIN_FORMSOURCE = 15 }
2163 -alias DMBIN_FORMSOURCE DMBIN_LAST;
2164 -
2165 -enum : uint { DMBIN_USER = 256 }
2166 -
2167 -enum { DMRES_DRAFT = -1 }
2168 -enum { DMRES_LOW = -2 }
2169 -enum { DMRES_MEDIUM = -3 }
2170 -enum { DMRES_HIGH = -4 }
2171 -
2172 -enum : uint { DMCOLOR_MONOCHROME = 1 }
2173 -enum : uint { DMCOLOR_COLOR = 2 }
2174 -
2175 -enum : uint { DMDUP_SIMPLEX = 1 }
2176 -enum : uint { DMDUP_VERTICAL = 2 }
2177 -enum : uint { DMDUP_HORIZONTAL = 3 }
2178 -
2179 -enum : uint { DMTT_BITMAP = 1 }
2180 -enum : uint { DMTT_DOWNLOAD = 2 }
2181 -enum : uint { DMTT_SUBDEV = 3 }
2182 -// #if(WINVER >= 0x0400)
2183 -enum : uint { DMTT_DOWNLOAD_OUTLINE = 4 }
2184 -// #endif /* WINVER >= 0x0400 */
2185 -
2186 -enum : uint { DMCOLLATE_FALSE = 0 }
2187 -enum : uint { DMCOLLATE_TRUE = 1 }
2188 -
2189 -enum : uint { DMDISPLAYFLAGS_TEXTMODE = 0x00000004 }
2190 -
2191 -enum : uint { DMNUP_SYSTEM = 1 }
2192 -enum : uint { DMNUP_ONEUP = 2 }
2193 -
2194 -// #if(WINVER >= 0x0400)
2195 -
2196 -enum : uint { DMICMMETHOD_NONE = 1 }
2197 -enum : uint { DMICMMETHOD_SYSTEM = 2 }
2198 -enum : uint { DMICMMETHOD_DRIVER = 3 }
2199 -enum : uint { DMICMMETHOD_DEVICE = 4 }
2200 -
2201 -enum : uint { DMICMMETHOD_USER = 256 }
2202 -
2203 -enum : uint { DMICM_SATURATE = 1 }
2204 -enum : uint { DMICM_CONTRAST = 2 }
2205 -enum : uint { DMICM_COLORIMETRIC = 3 }
2206 -enum : uint { DMICM_ABS_COLORIMETRIC = 4 }
2207 -
2208 -enum : uint { DMICM_USER = 256 }
2209 -
2210 -enum : uint { DMMEDIA_STANDARD = 1 }
2211 -enum : uint { DMMEDIA_TRANSPARENCY = 2 }
2212 -enum : uint { DMMEDIA_GLOSSY = 3 }
2213 -
2214 -enum : uint { DMMEDIA_USER = 256 }
2215 -
2216 -enum : uint { DMDITHER_NONE = 1 }
2217 -enum : uint { DMDITHER_COARSE = 2 }
2218 -enum : uint { DMDITHER_FINE = 3 }
2219 -enum : uint { DMDITHER_LINEART = 4 }
2220 -enum : uint { DMDITHER_ERRORDIFFUSION = 5 }
2221 -enum : uint { DMDITHER_RESERVED6 = 6 }
2222 -enum : uint { DMDITHER_RESERVED7 = 7 }
2223 -enum : uint { DMDITHER_RESERVED8 = 8 }
2224 -enum : uint { DMDITHER_RESERVED9 = 9 }
2225 -enum : uint { DMDITHER_GRAYSCALE = 10 }
2226 -
2227 -enum : uint { DMDITHER_USER = 256 }
2228 -// #endif /* WINVER >= 0x0400 */
2229 -
2230 -struct _DISPLAY_DEVICEA {
2231 - DWORD cb;
2232 - CHAR DeviceName[32];
2233 - CHAR DeviceString[128];
2234 - DWORD StateFlags;
2235 - CHAR DeviceID[128];
2236 - CHAR DeviceKey[128];
2237 -}
2238 -alias _DISPLAY_DEVICEA DISPLAY_DEVICEA;
2239 -alias _DISPLAY_DEVICEA* PDISPLAY_DEVICEA;
2240 -alias _DISPLAY_DEVICEA* LPDISPLAY_DEVICEA;
2241 -
2242 -struct _DISPLAY_DEVICEW {
2243 - DWORD cb;
2244 - WCHAR DeviceName[32];
2245 - WCHAR DeviceString[128];
2246 - DWORD StateFlags;
2247 - WCHAR DeviceID[128];
2248 - WCHAR DeviceKey[128];
2249 -}
2250 -alias _DISPLAY_DEVICEW DISPLAY_DEVICEW;
2251 -alias _DISPLAY_DEVICEW* PDISPLAY_DEVICEW;
2252 -alias _DISPLAY_DEVICEW* LPDISPLAY_DEVICEW;
2253 -
2254 -// #ifdef UNICODE
2255 -alias DISPLAY_DEVICEW DISPLAY_DEVICE;
2256 -alias PDISPLAY_DEVICEW PDISPLAY_DEVICE;
2257 -alias LPDISPLAY_DEVICEW LPDISPLAY_DEVICE;
2258 -// #else
2259 -// ...
2260 -// #endif // UNICODE
2261 -
2262 -enum : uint { DISPLAY_DEVICE_ATTACHED_TO_DESKTOP = 0x00000001 }
2263 -enum : uint { DISPLAY_DEVICE_MULTI_DRIVER = 0x00000002 }
2264 -enum : uint { DISPLAY_DEVICE_PRIMARY_DEVICE = 0x00000004 }
2265 -enum : uint { DISPLAY_DEVICE_MIRRORING_DRIVER = 0x00000008 }
2266 -enum : uint { DISPLAY_DEVICE_VGA_COMPATIBLE = 0x00000010 }
2267 -enum : uint { DISPLAY_DEVICE_REMOVABLE = 0x00000020 }
2268 -enum : uint { DISPLAY_DEVICE_MODESPRUNED = 0x08000000 }
2269 -enum : uint { DISPLAY_DEVICE_REMOTE = 0x04000000 }
2270 -enum : uint { DISPLAY_DEVICE_DISCONNECT = 0x02000000 }
2271 -
2272 -enum : uint { DISPLAY_DEVICE_ACTIVE = 0x00000001 }
2273 -enum : uint { DISPLAY_DEVICE_ATTACHED = 0x00000002 }
2274 -
2275 -enum : uint { RDH_RECTANGLES = 1 }
2276 -
2277 -struct _RGNDATAHEADER {
2278 - DWORD dwSize;
2279 - DWORD iType;
2280 - DWORD nCount;
2281 - DWORD nRgnSize;
2282 - RECT rcBound;
2283 -}
2284 -alias _RGNDATAHEADER RGNDATAHEADER;
2285 -alias _RGNDATAHEADER* PRGNDATAHEADER;
2286 -
2287 -struct _RGNDATA {
2288 - RGNDATAHEADER rdh;
2289 - char Buffer[1];
2290 -}
2291 -alias _RGNDATA RGNDATA;
2292 -alias _RGNDATA* PRGNDATA;
2293 -alias _RGNDATA* NPRGNDATA;
2294 -alias _RGNDATA* LPRGNDATA;
2295 -
2296 -enum : uint { SYSRGN = 4 }
2297 -
2298 -struct _ABC {
2299 - int abcA;
2300 - UINT abcB;
2301 - int abcC;
2302 -}
2303 -alias _ABC ABC;
2304 -alias _ABC* PABC;
2305 -alias _ABC* NPABC;
2306 -alias _ABC* LPABC;
2307 -
2308 -struct _ABCFLOAT {
2309 - FLOAT abcfA;
2310 - FLOAT abcfB;
2311 - FLOAT abcfC;
2312 -}
2313 -alias _ABCFLOAT ABCFLOAT;
2314 -alias _ABCFLOAT* PABCFLOAT;
2315 -alias _ABCFLOAT* NPABCFLOAT;
2316 -alias _ABCFLOAT* LPABCFLOAT;
2317 -
2318 -// #ifndef NOTEXTMETRIC
2319 -
2320 -// #ifdef _MAC
2321 -// #...
2322 -// #endif
2323 -struct _OUTLINETEXTMETRICA {
2324 - UINT otmSize;
2325 - TEXTMETRICA otmTextMetrics;
2326 - BYTE otmFiller;
2327 - PANOSE otmPanoseNumber;
2328 - UINT otmfsSelection;
2329 - UINT otmfsType;
2330 - int otmsCharSlopeRise;
2331 - int otmsCharSlopeRun;
2332 - int otmItalicAngle;
2333 - UINT otmEMSquare;
2334 - int otmAscent;
2335 - int otmDescent;
2336 - UINT otmLineGap;
2337 - UINT otmsCapEmHeight;
2338 - UINT otmsXHeight;
2339 - RECT otmrcFontBox;
2340 - int otmMacAscent;
2341 - int otmMacDescent;
2342 - UINT otmMacLineGap;
2343 - UINT otmusMinimumPPEM;
2344 - POINT otmptSubscriptSize;
2345 - POINT otmptSubscriptOffset;
2346 - POINT otmptSuperscriptSize;
2347 - POINT otmptSuperscriptOffset;
2348 - UINT otmsStrikeoutSize;
2349 - int otmsStrikeoutPosition;
2350 - int otmsUnderscoreSize;
2351 - int otmsUnderscorePosition;
2352 - PSTR otmpFamilyName;
2353 - PSTR otmpFaceName;
2354 - PSTR otmpStyleName;
2355 - PSTR otmpFullName;
2356 -}
2357 -alias _OUTLINETEXTMETRICA OUTLINETEXTMETRICA;
2358 -alias _OUTLINETEXTMETRICA* POUTLINETEXTMETRICA;
2359 -alias _OUTLINETEXTMETRICA* NPOUTLINETEXTMETRICA;
2360 -alias _OUTLINETEXTMETRICA* LPOUTLINETEXTMETRICA;
2361 -
2362 -struct _OUTLINETEXTMETRICW {
2363 - UINT otmSize;
2364 - TEXTMETRICW otmTextMetrics;
2365 - BYTE otmFiller;
2366 - PANOSE otmPanoseNumber;
2367 - UINT otmfsSelection;
2368 - UINT otmfsType;
2369 - int otmsCharSlopeRise;
2370 - int otmsCharSlopeRun;
2371 - int otmItalicAngle;
2372 - UINT otmEMSquare;
2373 - int otmAscent;
2374 - int otmDescent;
2375 - UINT otmLineGap;
2376 - UINT otmsCapEmHeight;
2377 - UINT otmsXHeight;
2378 - RECT otmrcFontBox;
2379 - int otmMacAscent;
2380 - int otmMacDescent;
2381 - UINT otmMacLineGap;
2382 - UINT otmusMinimumPPEM;
2383 - POINT otmptSubscriptSize;
2384 - POINT otmptSubscriptOffset;
2385 - POINT otmptSuperscriptSize;
2386 - POINT otmptSuperscriptOffset;
2387 - UINT otmsStrikeoutSize;
2388 - int otmsStrikeoutPosition;
2389 - int otmsUnderscoreSize;
2390 - int otmsUnderscorePosition;
2391 - PSTR otmpFamilyName;
2392 - PSTR otmpFaceName;
2393 - PSTR otmpStyleName;
2394 - PSTR otmpFullName;
2395 -}
2396 -alias _OUTLINETEXTMETRICW OUTLINETEXTMETRICW;
2397 -alias _OUTLINETEXTMETRICW* POUTLINETEXTMETRICW;
2398 -alias _OUTLINETEXTMETRICW* NPOUTLINETEXTMETRICW;
2399 -alias _OUTLINETEXTMETRICW* LPOUTLINETEXTMETRICW;
2400 -
2401 -// #ifdef UNICODE
2402 -alias OUTLINETEXTMETRICW OUTLINETEXTMETRIC;
2403 -alias POUTLINETEXTMETRICW POUTLINETEXTMETRIC;
2404 -alias NPOUTLINETEXTMETRICW NPOUTLINETEXTMETRIC;
2405 -alias LPOUTLINETEXTMETRICW LPOUTLINETEXTMETRIC;
2406 -// #else
2407 -// ...
2408 -// #endif // UNICODE
2409 -
2410 -// #ifdef _MAC
2411 -// #...
2412 -// #endif
2413 -
2414 -// #endif /* NOTEXTMETRIC */
2415 -
2416 -struct tagPOLYTEXTA {
2417 - int x;
2418 - int y;
2419 - UINT n;
2420 - LPCSTR lpstr;
2421 - UINT uiFlags;
2422 - RECT rcl;
2423 - int *pdx;
2424 -}
2425 -alias tagPOLYTEXTA POLYTEXTA;
2426 -alias tagPOLYTEXTA* PPOLYTEXTA;
2427 -alias tagPOLYTEXTA* NPPOLYTEXTA;
2428 -alias tagPOLYTEXTA* LPPOLYTEXTA;
2429 -
2430 -struct tagPOLYTEXTW {
2431 - int x;
2432 - int y;
2433 - UINT n;
2434 - LPCWSTR lpstr;
2435 - UINT uiFlags;
2436 - RECT rcl;
2437 - int *pdx;
2438 -}
2439 -alias tagPOLYTEXTW POLYTEXTW;
2440 -alias tagPOLYTEXTW* PPOLYTEXTW;
2441 -alias tagPOLYTEXTW* NPPOLYTEXTW;
2442 -alias tagPOLYTEXTW* LPPOLYTEXTW;
2443 -
2444 -// #ifdef UNICODE
2445 -alias POLYTEXTW POLYTEXT;
2446 -alias PPOLYTEXTW PPOLYTEXT;
2447 -alias NPPOLYTEXTW NPPOLYTEXT;
2448 -alias LPPOLYTEXTW LPPOLYTEXT;
2449 -// #else
2450 -// ...
2451 -// #endif // UNICODE
2452 -
2453 -struct _FIXED {
2454 -// #ifndef _MAC
2455 - WORD fract;
2456 - short value;
2457 -// #else
2458 -// ...
2459 -// #endif
2460 -}
2461 -alias _FIXED FIXED;
2462 -
2463 -struct _MAT2 {
2464 - FIXED eM11;
2465 - FIXED eM12;
2466 - FIXED eM21;
2467 - FIXED eM22;
2468 -}
2469 -alias _MAT2 MAT2;
2470 -alias _MAT2* LPMAT2;
2471 -
2472 -struct _GLYPHMETRICS {
2473 - UINT gmBlackBoxX;
2474 - UINT gmBlackBoxY;
2475 - POINT gmptGlyphOrigin;
2476 - short gmCellIncX;
2477 - short gmCellIncY;
2478 -}
2479 -alias _GLYPHMETRICS GLYPHMETRICS;
2480 -alias _GLYPHMETRICS* LPGLYPHMETRICS;
2481 -
2482 -enum : uint { GGO_METRICS = 0 }
2483 -enum : uint { GGO_BITMAP = 1 }
2484 -enum : uint { GGO_NATIVE = 2 }
2485 -enum : uint { GGO_BEZIER = 3 }
2486 -
2487 -// #if(WINVER >= 0x0400)
2488 -enum : uint { GGO_GRAY2_BITMAP = 4 }
2489 -enum : uint { GGO_GRAY4_BITMAP = 5 }
2490 -enum : uint { GGO_GRAY8_BITMAP = 6 }
2491 -enum : uint { GGO_GLYPH_INDEX = 0x0080 }
2492 -// #endif /* WINVER >= 0x0400 */
2493 -
2494 -// #if (_WIN32_WINNT >= 0x0500)
2495 -enum : uint { GGO_UNHINTED = 0x0100 }
2496 -// #endif // (_WIN32_WINNT >= 0x0500)
2497 -
2498 -enum : uint { TT_POLYGON_TYPE = 24 }
2499 -
2500 -enum : uint { TT_PRIM_LINE = 1 }
2501 -enum : uint { TT_PRIM_QSPLINE = 2 }
2502 -enum : uint { TT_PRIM_CSPLINE = 3 }
2503 -
2504 -struct tagPOINTFX {
2505 - FIXED x;
2506 - FIXED y;
2507 -}
2508 -alias tagPOINTFX POINTFX;
2509 -alias tagPOINTFX* LPPOINTFX;
2510 -
2511 -struct tagTTPOLYCURVE {
2512 - WORD wType;
2513 - WORD cpfx;
2514 - POINTFX apfx[1];
2515 -}
2516 -alias tagTTPOLYCURVE TTPOLYCURVE;
2517 -alias tagTTPOLYCURVE* LPTTPOLYCURVE;
2518 -
2519 -struct tagTTPOLYGONHEADER {
2520 - DWORD cb;
2521 - DWORD dwType;
2522 - POINTFX pfxStart;
2523 -}
2524 -alias tagTTPOLYGONHEADER TTPOLYGONHEADER;
2525 -alias tagTTPOLYGONHEADER* LPTTPOLYGONHEADER;
2526 -
2527 -// #if(WINVER >= 0x0400)
2528 -enum : uint { GCP_DBCS = 0x0001 }
2529 -enum : uint { GCP_REORDER = 0x0002 }
2530 -enum : uint { GCP_USEKERNING = 0x0008 }
2531 -enum : uint { GCP_GLYPHSHAPE = 0x0010 }
2532 -enum : uint { GCP_LIGATE = 0x0020 }
2533 -
2534 -enum : uint { GCP_DIACRITIC = 0x0100 }
2535 -enum : uint { GCP_KASHIDA = 0x0400 }
2536 -enum : uint { GCP_ERROR = 0x8000 }
2537 -enum : uint { FLI_MASK = 0x103B }
2538 -
2539 -enum : uint { GCP_JUSTIFY = 0x00010000 }
2540 -
2541 -enum : uint { FLI_GLYPHS = 0x00040000 }
2542 -enum : uint { GCP_CLASSIN = 0x00080000 }
2543 -enum : uint { GCP_MAXEXTENT = 0x00100000 }
2544 -enum : uint { GCP_JUSTIFYIN = 0x00200000 }
2545 -enum : uint { GCP_DISPLAYZWG = 0x00400000 }
2546 -enum : uint { GCP_SYMSWAPOFF = 0x00800000 }
2547 -enum : uint { GCP_NUMERICOVERRIDE = 0x01000000 }
2548 -enum : uint { GCP_NEUTRALOVERRIDE = 0x02000000 }
2549 -enum : uint { GCP_NUMERICSLATIN = 0x04000000 }
2550 -enum : uint { GCP_NUMERICSLOCAL = 0x08000000 }
2551 -
2552 -enum : uint { GCPCLASS_LATIN = 1 }
2553 -enum : uint { GCPCLASS_HEBREW = 2 }
2554 -enum : uint { GCPCLASS_ARABIC = 2 }
2555 -enum : uint { GCPCLASS_NEUTRAL = 3 }
2556 -enum : uint { GCPCLASS_LOCALNUMBER = 4 }
2557 -enum : uint { GCPCLASS_LATINNUMBER = 5 }
2558 -enum : uint { GCPCLASS_LATINNUMERICTERMINATOR = 6 }
2559 -enum : uint { GCPCLASS_LATINNUMERICSEPARATOR = 7 }
2560 -enum : uint { GCPCLASS_NUMERICSEPARATOR = 8 }
2561 -enum : uint { GCPCLASS_PREBOUNDLTR = 0x80 }
2562 -enum : uint { GCPCLASS_PREBOUNDRTL = 0x40 }
2563 -enum : uint { GCPCLASS_POSTBOUNDLTR = 0x20 }
2564 -enum : uint { GCPCLASS_POSTBOUNDRTL = 0x10 }
2565 -
2566 -enum : uint { GCPGLYPH_LINKBEFORE = 0x8000 }
2567 -enum : uint { GCPGLYPH_LINKAFTER = 0x4000 }
2568 -
2569 -struct tagGCP_RESULTSA {
2570 - DWORD lStructSize;
2571 - LPSTR lpOutString;
2572 - UINT *lpOrder;
2573 - int *lpDx;
2574 - int *lpCaretPos;
2575 - LPSTR lpClass;
2576 - LPWSTR lpGlyphs;
2577 - UINT nGlyphs;
2578 - int nMaxFit;
2579 -}
2580 -alias tagGCP_RESULTSA GCP_RESULTSA;
2581 -alias tagGCP_RESULTSA* LPGCP_RESULTSA;
2582 -
2583 -struct tagGCP_RESULTSW {
2584 - DWORD lStructSize;
2585 - LPWSTR lpOutString;
2586 - UINT *lpOrder;
2587 - int *lpDx;
2588 - int *lpCaretPos;
2589 - LPSTR lpClass;
2590 - LPWSTR lpGlyphs;
2591 - UINT nGlyphs;
2592 - int nMaxFit;
2593 -}
2594 -alias tagGCP_RESULTSW GCP_RESULTSW;
2595 -alias tagGCP_RESULTSW* LPGCP_RESULTSW;
2596 -
2597 -// #ifdef UNICODE
2598 -alias GCP_RESULTSW GCP_RESULTS;
2599 -alias LPGCP_RESULTSW LPGCP_RESULTS;
2600 -// #else
2601 -// ...
2602 -// #endif // UNICODE
2603 -// #endif /* WINVER >= 0x0400 */
2604 -
2605 -struct _RASTERIZER_STATUS {
2606 - short nSize;
2607 - short wFlags;
2608 - short nLanguageID;
2609 -}
2610 -alias _RASTERIZER_STATUS RASTERIZER_STATUS;
2611 -alias _RASTERIZER_STATUS* LPRASTERIZER_STATUS;
2612 -
2613 -enum : uint { TT_AVAILABLE = 0x0001 }
2614 -enum : uint { TT_ENABLED = 0x0002 }
2615 -
2616 -struct tagPIXELFORMATDESCRIPTOR {
2617 - WORD nSize;
2618 - WORD nVersion;
2619 - DWORD dwFlags;
2620 - BYTE iPixelType;
2621 - BYTE cColorBits;
2622 - BYTE cRedBits;
2623 - BYTE cRedShift;
2624 - BYTE cGreenBits;
2625 - BYTE cGreenShift;
2626 - BYTE cBlueBits;
2627 - BYTE cBlueShift;
2628 - BYTE cAlphaBits;
2629 - BYTE cAlphaShift;
2630 - BYTE cAccumBits;
2631 - BYTE cAccumRedBits;
2632 - BYTE cAccumGreenBits;
2633 - BYTE cAccumBlueBits;
2634 - BYTE cAccumAlphaBits;
2635 - BYTE cDepthBits;
2636 - BYTE cStencilBits;
2637 - BYTE cAuxBuffers;
2638 - BYTE iLayerType;
2639 - BYTE bReserved;
2640 - DWORD dwLayerMask;
2641 - DWORD dwVisibleMask;
2642 - DWORD dwDamageMask;
2643 -}
2644 -alias tagPIXELFORMATDESCRIPTOR PIXELFORMATDESCRIPTOR;
2645 -alias tagPIXELFORMATDESCRIPTOR* PPIXELFORMATDESCRIPTOR;
2646 -alias tagPIXELFORMATDESCRIPTOR* LPPIXELFORMATDESCRIPTOR;
2647 -
2648 -enum : uint { PFD_TYPE_RGBA = 0 }
2649 -enum : uint { PFD_TYPE_COLORINDEX = 1 }
2650 -
2651 -enum : uint { PFD_MAIN_PLANE = 0 }
2652 -enum : uint { PFD_OVERLAY_PLANE = 1 }
2653 -enum { PFD_UNDERLAY_PLANE = -1 }
2654 -
2655 -enum : uint { PFD_DOUBLEBUFFER = 0x00000001 }
2656 -enum : uint { PFD_STEREO = 0x00000002 }
2657 -enum : uint { PFD_DRAW_TO_WINDOW = 0x00000004 }
2658 -enum : uint { PFD_DRAW_TO_BITMAP = 0x00000008 }
2659 -enum : uint { PFD_SUPPORT_GDI = 0x00000010 }
2660 -enum : uint { PFD_SUPPORT_OPENGL = 0x00000020 }
2661 -enum : uint { PFD_GENERIC_FORMAT = 0x00000040 }
2662 -enum : uint { PFD_NEED_PALETTE = 0x00000080 }
2663 -enum : uint { PFD_NEED_SYSTEM_PALETTE = 0x00000100 }
2664 -enum : uint { PFD_SWAP_EXCHANGE = 0x00000200 }
2665 -enum : uint { PFD_SWAP_COPY = 0x00000400 }
2666 -enum : uint { PFD_SWAP_LAYER_BUFFERS = 0x00000800 }
2667 -enum : uint { PFD_GENERIC_ACCELERATED = 0x00001000 }
2668 -enum : uint { PFD_SUPPORT_DIRECTDRAW = 0x00002000 }
2669 -
2670 -enum : uint { PFD_DEPTH_DONTCARE = 0x20000000 }
2671 -enum : uint { PFD_DOUBLEBUFFER_DONTCARE = 0x40000000 }
2672 -enum : uint { PFD_STEREO_DONTCARE = 0x80000000 }
2673 -
2674 -// #ifdef STRICT
2675 -// #if !defined(NOTEXTMETRIC)
2676 -extern(Windows) alias int function( LOGFONTA *, TEXTMETRICA *, DWORD, LPARAM) OLDFONTENUMPROCA;
2677 -extern(Windows) alias int function( LOGFONTW *, TEXTMETRICW *, DWORD, LPARAM) OLDFONTENUMPROCW;
2678 -// #ifdef UNICODE
2679 -alias OLDFONTENUMPROCW OLDFONTENUMPROC;
2680 -// #else
2681 -// #...
2682 -// #endif // !UNICODE
2683 -// #else
2684 -// ...
2685 -// #ifdef UNICODE
2686 -// #...
2687 -// #else
2688 -// #...
2689 -// #endif // !UNICODE
2690 -// #endif
2691 -
2692 -alias OLDFONTENUMPROCA FONTENUMPROCA;
2693 -alias OLDFONTENUMPROCW FONTENUMPROCW;
2694 -// #ifdef UNICODE
2695 -alias FONTENUMPROCW FONTENUMPROC;
2696 -// #else
2697 -// ...
2698 -// #endif // UNICODE
2699 -
2700 -extern(Windows) alias int function(LPVOID, LPARAM) GOBJENUMPROC;
2701 -extern(Windows) alias VOID function(int, int, LPARAM) LINEDDAPROC;
2702 -// #else
2703 -// ...
2704 -// #ifdef UNICODE
2705 -// ...
2706 -// #else
2707 -// ...
2708 -// #endif // UNICODE
2709 -// ...
2710 -// #endif
2711 -
2712 -extern(Windows) export int AddFontResourceA(LPCSTR);
2713 -extern(Windows) export int AddFontResourceW(LPCWSTR);
2714 -// #ifdef UNICODE
2715 -alias AddFontResourceW AddFontResource;
2716 -// #else
2717 -// #...
2718 -// #endif // !UNICODE
2719 -
2720 -extern(Windows) export BOOL AnimatePalette(HPALETTE, UINT, UINT, PALETTEENTRY *);
2721 -extern(Windows) export BOOL Arc(HDC, int, int, int, int, int, int, int, int);
2722 -extern(Windows) export BOOL BitBlt(HDC, int, int, int, int, HDC, int, int, DWORD);
2723 -extern(Windows) export BOOL CancelDC(HDC);
2724 -extern(Windows) export BOOL Chord(HDC, int, int, int, int, int, int, int, int);
2725 -extern(Windows) export int ChoosePixelFormat(HDC, PIXELFORMATDESCRIPTOR *);
2726 -extern(Windows) export HMETAFILE CloseMetaFile(HDC);
2727 -extern(Windows) export int CombineRgn(HRGN, HRGN, HRGN, int);
2728 -extern(Windows) export HMETAFILE CopyMetaFileA(HMETAFILE, LPCSTR);
2729 -extern(Windows) export HMETAFILE CopyMetaFileW(HMETAFILE, LPCWSTR);
2730 -// #ifdef UNICODE
2731 -alias CopyMetaFileW CopyMetaFile;
2732 -// #else
2733 -// #...
2734 -// #endif // !UNICODE
2735 -extern(Windows) export HBITMAP CreateBitmap(int, int, UINT, UINT, VOID *);
2736 -extern(Windows) export HBITMAP CreateBitmapIndirect(BITMAP *);
2737 -extern(Windows) export HBRUSH CreateBrushIndirect(LOGBRUSH *);
2738 -extern(Windows) export HBITMAP CreateCompatibleBitmap(HDC, int, int);
2739 -extern(Windows) export HBITMAP CreateDiscardableBitmap(HDC, int, int);
2740 -extern(Windows) export HDC CreateCompatibleDC(HDC);
2741 -extern(Windows) export HDC CreateDCA(LPCSTR, LPCSTR, LPCSTR, DEVMODEA *);
2742 -extern(Windows) export HDC CreateDCW(LPCWSTR, LPCWSTR, LPCWSTR, DEVMODEW *);
2743 -// #ifdef UNICODE
2744 -alias CreateDCW CreateDC;
2745 -// #else
2746 -// #...
2747 -// #endif // !UNICODE
2748 -extern(Windows) export HBITMAP CreateDIBitmap(HDC, BITMAPINFOHEADER *, DWORD, VOID *, BITMAPINFO *, UINT);
2749 -extern(Windows) export HBRUSH CreateDIBPatternBrush(HGLOBAL, UINT);
2750 -extern(Windows) export HBRUSH CreateDIBPatternBrushPt(VOID *, UINT);
2751 -extern(Windows) export HRGN CreateEllipticRgn(int, int, int, int);
2752 -extern(Windows) export HRGN CreateEllipticRgnIndirect(RECT *);
2753 -extern(Windows) export HFONT CreateFontIndirectA(LOGFONTA *);
2754 -extern(Windows) export HFONT CreateFontIndirectW(LOGFONTW *);
2755 -// #ifdef UNICODE
2756 -alias CreateFontIndirectW CreateFontIndirect;
2757 -// #else
2758 -// #...
2759 -// #endif // !UNICODE
2760 -extern(Windows) export HFONT CreateFontA(int, int, int, int, int, DWORD,
2761 - DWORD, DWORD, DWORD, DWORD, DWORD,
2762 - DWORD, DWORD, LPCSTR);
2763 -extern(Windows) export HFONT CreateFontW(int, int, int, int, int, DWORD,
2764 - DWORD, DWORD, DWORD, DWORD, DWORD,
2765 - DWORD, DWORD, LPCWSTR);
2766 -// #ifdef UNICODE
2767 -alias CreateFontW CreateFont;
2768 -// #else
2769 -// #...
2770 -// #endif // !UNICODE
2771 -
2772 -extern(Windows) export HBRUSH CreateHatchBrush(int, COLORREF);
2773 -extern(Windows) export HDC CreateICA(LPCSTR, LPCSTR, LPCSTR, DEVMODEA *);
2774 -extern(Windows) export HDC CreateICW(LPCWSTR, LPCWSTR, LPCWSTR, DEVMODEW *);
2775 -// #ifdef UNICODE
2776 -alias CreateICW CreateIC;
2777 -// #else
2778 -// #...
2779 -// #endif // !UNICODE
2780 -extern(Windows) export HDC CreateMetaFileA(LPCSTR);
2781 -extern(Windows) export HDC CreateMetaFileW(LPCWSTR);
2782 -// #ifdef UNICODE
2783 -alias CreateMetaFileW CreateMetaFile;
2784 -// #else
2785 -// #...
2786 -// #endif // !UNICODE
2787 -extern(Windows) export HPALETTE CreatePalette(LOGPALETTE *);
2788 -extern(Windows) export HPEN CreatePen(int, int, COLORREF);
2789 -extern(Windows) export HPEN CreatePenIndirect(LOGPEN *);
2790 -extern(Windows) export HRGN CreatePolyPolygonRgn(POINT *, INT *, int, int);
2791 -extern(Windows) export HBRUSH CreatePatternBrush(HBITMAP);
2792 -extern(Windows) export HRGN CreateRectRgn(int, int, int, int);
2793 -extern(Windows) export HRGN CreateRectRgnIndirect(RECT *);
2794 -extern(Windows) export HRGN CreateRoundRectRgn(int, int, int, int, int, int);
2795 -extern(Windows) export BOOL CreateScalableFontResourceA(DWORD, LPCSTR, LPCSTR, LPCSTR);
2796 -extern(Windows) export BOOL CreateScalableFontResourceW(DWORD, LPCWSTR, LPCWSTR, LPCWSTR);
2797 -// #ifdef UNICODE
2798 -alias CreateScalableFontResourceW CreateScalableFontResource;
2799 -// #else
2800 -// #...
2801 -// #endif // !UNICODE
2802 -extern(Windows) export HBRUSH CreateSolidBrush(COLORREF);
2803 -
2804 -extern(Windows) export BOOL DeleteDC(HDC);
2805 -extern(Windows) export BOOL DeleteMetaFile(HMETAFILE);
2806 -extern(Windows) export BOOL DeleteObject(HGDIOBJ);
2807 -extern(Windows) export int DescribePixelFormat(HDC, int, UINT, LPPIXELFORMATDESCRIPTOR);
2808 -
2809 -extern(Windows) alias UINT function(HWND, HMODULE, LPDEVMODE, LPSTR, LPSTR, LPDEVMODE, LPSTR, UINT) LPFNDEVMODE;
2810 -
2811 -extern(Windows) alias DWORD function(LPSTR, LPSTR, UINT, LPSTR, LPDEVMODE) LPFNDEVCAPS;
2812 -
2813 -enum : uint { DM_UPDATE = 1 }
2814 -enum : uint { DM_COPY = 2 }
2815 -enum : uint { DM_PROMPT = 4 }
2816 -enum : uint { DM_MODIFY = 8 }
2817 -
2818 -alias DM_MODIFY DM_IN_BUFFER;
2819 -alias DM_PROMPT DM_IN_PROMPT;
2820 -alias DM_COPY DM_OUT_BUFFER;
2821 -alias DM_UPDATE DM_OUT_DEFAULT;
2822 -
2823 -enum : uint { DC_FIELDS = 1 }
2824 -enum : uint { DC_PAPERS = 2 }
2825 -enum : uint { DC_PAPERSIZE = 3 }
2826 -enum : uint { DC_MINEXTENT = 4 }
2827 -enum : uint { DC_MAXEXTENT = 5 }
2828 -enum : uint { DC_BINS = 6 }
2829 -enum : uint { DC_DUPLEX = 7 }
2830 -enum : uint { DC_SIZE = 8 }
2831 -enum : uint { DC_EXTRA = 9 }
2832 -enum : uint { DC_VERSION = 10 }
2833 -enum : uint { DC_DRIVER = 11 }
2834 -enum : uint { DC_BINNAMES = 12 }
2835 -enum : uint { DC_ENUMRESOLUTIONS = 13 }
2836 -enum : uint { DC_FILEDEPENDENCIES = 14 }
2837 -enum : uint { DC_TRUETYPE = 15 }
2838 -enum : uint { DC_PAPERNAMES = 16 }
2839 -enum : uint { DC_ORIENTATION = 17 }
2840 -enum : uint { DC_COPIES = 18 }
2841 -// #if(WINVER >= 0x0400)
2842 -enum : uint { DC_BINADJUST = 19 }
2843 -enum : uint { DC_EMF_COMPLIANT = 20 }
2844 -enum : uint { DC_DATATYPE_PRODUCED = 21 }
2845 -enum : uint { DC_COLLATE = 22 }
2846 -enum : uint { DC_MANUFACTURER = 23 }
2847 -enum : uint { DC_MODEL = 24 }
2848 -// #endif /* WINVER >= 0x0400 */
2849 -
2850 -// #if(WINVER >= 0x0500)
2851 -enum : uint { DC_PERSONALITY = 25 }
2852 -enum : uint { DC_PRINTRATE = 26 }
2853 -enum : uint { DC_PRINTRATEUNIT = 27 }
2854 -enum : uint { PRINTRATEUNIT_PPM = 1 }
2855 -enum : uint { PRINTRATEUNIT_CPS = 2 }
2856 -enum : uint { PRINTRATEUNIT_LPM = 3 }
2857 -enum : uint { PRINTRATEUNIT_IPM = 4 }
2858 -enum : uint { DC_PRINTERMEM = 28 }
2859 -enum : uint { DC_MEDIAREADY = 29 }
2860 -enum : uint { DC_STAPLE = 30 }
2861 -enum : uint { DC_PRINTRATEPPM = 31 }
2862 -enum : uint { DC_COLORDEVICE = 32 }
2863 -enum : uint { DC_NUP = 33 }
2864 -enum : uint { DC_MEDIATYPENAMES = 34 }
2865 -enum : uint { DC_MEDIATYPES = 35 }
2866 -// #endif /* WINVER >= 0x0500 */
2867 -
2868 -enum : uint { DCTT_BITMAP = 0x0000001 }
2869 -enum : uint { DCTT_DOWNLOAD = 0x0000002 }
2870 -enum : uint { DCTT_SUBDEV = 0x0000004 }
2871 -// #if(WINVER >= 0x0400)
2872 -enum : uint { DCTT_DOWNLOAD_OUTLINE = 0x0000008 }
2873 -
2874 -enum : uint { DCBA_FACEUPNONE = 0x0000 }
2875 -enum : uint { DCBA_FACEUPCENTER = 0x0001 }
2876 -enum : uint { DCBA_FACEUPLEFT = 0x0002 }
2877 -enum : uint { DCBA_FACEUPRIGHT = 0x0003 }
2878 -enum : uint { DCBA_FACEDOWNNONE = 0x0100 }
2879 -enum : uint { DCBA_FACEDOWNCENTER = 0x0101 }
2880 -enum : uint { DCBA_FACEDOWNLEFT = 0x0102 }
2881 -enum : uint { DCBA_FACEDOWNRIGHT = 0x0103 }
2882 -// #endif /* WINVER >= 0x0400 */
2883 -
2884 -extern(Windows) export int DeviceCapabilitiesA(LPCSTR, LPCSTR, WORD,
2885 - LPSTR, DEVMODEA *);
2886 -extern(Windows) export int DeviceCapabilitiesW(LPCWSTR, LPCWSTR, WORD,
2887 - LPWSTR, DEVMODEW *);
2888 -// #ifdef UNICODE
2889 -alias DeviceCapabilitiesW DeviceCapabilities;
2890 -// #else
2891 -// #...
2892 -// #endif // !UNICODE
2893 -
2894 -extern(Windows) export int DrawEscape(HDC, int, int, LPCSTR);
2895 -extern(Windows) export BOOL Ellipse(HDC, int, int, int, int);
2896 -
2897 -// #if(WINVER >= 0x0400)
2898 -extern(Windows) export int EnumFontFamiliesExA(HDC, LPLOGFONTA, FONTENUMPROCA, LPARAM, DWORD);
2899 -extern(Windows) export int EnumFontFamiliesExW(HDC, LPLOGFONTW, FONTENUMPROCW, LPARAM, DWORD);
2900 -// #ifdef UNICODE
2901 -alias EnumFontFamiliesExW EnumFontFamiliesEx;
2902 -// #else
2903 -// #...
2904 -// #endif // !UNICODE
2905 -// #endif /* WINVER >= 0x0400 */
2906 -
2907 -extern(Windows) export int EnumFontFamiliesA(HDC, LPCSTR, FONTENUMPROCA, LPARAM);
2908 -extern(Windows) export int EnumFontFamiliesW(HDC, LPCWSTR, FONTENUMPROCW, LPARAM);
2909 -// #ifdef UNICODE
2910 -alias EnumFontFamiliesW EnumFontFamilies;
2911 -// #else
2912 -// #...
2913 -// #endif // !UNICODE
2914 -extern(Windows) export int EnumFontsA(HDC, LPCSTR, FONTENUMPROCA, LPARAM);
2915 -extern(Windows) export int EnumFontsW(HDC, LPCWSTR, FONTENUMPROCW, LPARAM);
2916 -// #ifdef UNICODE
2917 -alias EnumFontsW EnumFonts;
2918 -// #else
2919 -// #...
2920 -// #endif // !UNICODE
2921 -
2922 -// #ifdef STRICT
2923 -extern(Windows) export int EnumObjects(HDC, int, GOBJENUMPROC, LPARAM);
2924 -// #else
2925 -// ...
2926 -// #endif
2927 -
2928 -extern(Windows) export BOOL EqualRgn(HRGN, HRGN);
2929 -extern(Windows) export int Escape(HDC, int, int, LPCSTR, LPVOID);
2930 -extern(Windows) export int ExtEscape(HDC, int, int, LPCSTR, int, LPSTR);
2931 -extern(Windows) export int ExcludeClipRect(HDC, int, int, int, int);
2932 -extern(Windows) export HRGN ExtCreateRegion(XFORM *, DWORD, RGNDATA *);
2933 -extern(Windows) export BOOL ExtFloodFill(HDC, int, int, COLORREF, UINT);
2934 -extern(Windows) export BOOL FillRgn(HDC, HRGN, HBRUSH);
2935 -extern(Windows) export BOOL FloodFill(HDC, int, int, COLORREF);
2936 -extern(Windows) export BOOL FrameRgn(HDC, HRGN, HBRUSH, int, int);
2937 -extern(Windows) export int GetROP2(HDC);
2938 -extern(Windows) export BOOL GetAspectRatioFilterEx(HDC, LPSIZE);
2939 -extern(Windows) export COLORREF GetBkColor(HDC);
2940 -
2941 -// #if (_WIN32_WINNT >= 0x0500)
2942 -extern(Windows) export COLORREF GetDCBrushColor(HDC);
2943 -extern(Windows) export COLORREF GetDCPenColor(HDC);
2944 -// #endif
2945 -
2946 -extern(Windows) export int GetBkMode(HDC);
2947 -extern(Windows) export LONG GetBitmapBits(HBITMAP, LONG, LPVOID);
2948 -extern(Windows) export BOOL GetBitmapDimensionEx(HBITMAP, LPSIZE);
2949 -extern(Windows) export UINT GetBoundsRect(HDC, LPRECT, UINT);
2950 -
2951 -extern(Windows) export BOOL GetBrushOrgEx(HDC, LPPOINT);
2952 -
2953 -extern(Windows) export BOOL GetCharWidthA(HDC, UINT, UINT, LPINT);
2954 -extern(Windows) export BOOL GetCharWidthW(HDC, UINT, UINT, LPINT);
2955 -// #ifdef UNICODE
2956 -alias GetCharWidthW GetCharWidth;
2957 -// #else
2958 -// #...
2959 -// #endif // !UNICODE
2960 -extern(Windows) export BOOL GetCharWidth32A(HDC, UINT, UINT, LPINT);
2961 -extern(Windows) export BOOL GetCharWidth32W(HDC, UINT, UINT, LPINT);
2962 -// #ifdef UNICODE
2963 -alias GetCharWidth32W GetCharWidth32;
2964 -// #else
2965 -// #...
2966 -// #endif // !UNICODE
2967 -extern(Windows) export BOOL GetCharWidthFloatA(HDC, UINT, UINT, PFLOAT);
2968 -extern(Windows) export BOOL GetCharWidthFloatW(HDC, UINT, UINT, PFLOAT);
2969 -// #ifdef UNICODE
2970 -alias GetCharWidthFloatW GetCharWidthFloat;
2971 -// #else
2972 -// #...
2973 -// #endif // !UNICODE
2974 -extern(Windows) export BOOL GetCharABCWidthsA(HDC, UINT, UINT, LPABC);
2975 -extern(Windows) export BOOL GetCharABCWidthsW(HDC, UINT, UINT, LPABC);
2976 -// #ifdef UNICODE
2977 -alias GetCharABCWidthsW GetCharABCWidths;
2978 -// #else
2979 -// #...
2980 -// #endif // !UNICODE
2981 -extern(Windows) export BOOL GetCharABCWidthsFloatA(HDC, UINT, UINT, LPABCFLOAT);
2982 -extern(Windows) export BOOL GetCharABCWidthsFloatW(HDC, UINT, UINT, LPABCFLOAT);
2983 -// #ifdef UNICODE
2984 -alias GetCharABCWidthsFloatW GetCharABCWidthsFloat;
2985 -// #else
2986 -// #...
2987 -// #endif // !UNICODE
2988 -extern(Windows) export int GetClipBox(HDC, LPRECT);
2989 -extern(Windows) export int GetClipRgn(HDC, HRGN);
2990 -extern(Windows) export int GetMetaRgn(HDC, HRGN);
2991 -extern(Windows) export HGDIOBJ GetCurrentObject(HDC, UINT);
2992 -extern(Windows) export BOOL GetCurrentPositionEx(HDC, LPPOINT);
2993 -extern(Windows) export int GetDeviceCaps(HDC, int);
2994 -extern(Windows) export int GetDIBits(HDC, HBITMAP, UINT, UINT, LPVOID, LPBITMAPINFO, UINT);
2995 -extern(Windows) export DWORD GetFontData(HDC, DWORD, DWORD, LPVOID, DWORD);
2996 -extern(Windows) export DWORD GetGlyphOutlineA(HDC, UINT, UINT, LPGLYPHMETRICS, DWORD, LPVOID, MAT2 *);
2997 -extern(Windows) export DWORD GetGlyphOutlineW(HDC, UINT, UINT, LPGLYPHMETRICS, DWORD, LPVOID, MAT2 *);
2998 -// #ifdef UNICODE
2999 -alias GetGlyphOutlineW GetGlyphOutline;
3000 -// #else
3001 -// #...
3002 -// #endif // !UNICODE
3003 -extern(Windows) export int GetGraphicsMode(HDC);
3004 -extern(Windows) export int GetMapMode(HDC);
3005 -extern(Windows) export UINT GetMetaFileBitsEx(HMETAFILE, UINT, LPVOID);
3006 -extern(Windows) export HMETAFILE GetMetaFileA(LPCSTR);
3007 -extern(Windows) export HMETAFILE GetMetaFileW(LPCWSTR);
3008 -// #ifdef UNICODE
3009 -alias GetMetaFileW GetMetaFile;
3010 -// #else
3011 -// #...
3012 -// #endif // !UNICODE
3013 -extern(Windows) export COLORREF GetNearestColor(HDC, COLORREF);
3014 -extern(Windows) export UINT GetNearestPaletteIndex(HPALETTE, COLORREF);
3015 -extern(Windows) export DWORD GetObjectType(HGDIOBJ h);
3016 -
3017 -// #ifndef NOTEXTMETRIC
3018 -
3019 -extern(Windows) export UINT GetOutlineTextMetricsA(HDC, UINT, LPOUTLINETEXTMETRICA);
3020 -extern(Windows) export UINT GetOutlineTextMetricsW(HDC, UINT, LPOUTLINETEXTMETRICW);
3021 -// #ifdef UNICODE
3022 -alias GetOutlineTextMetricsW GetOutlineTextMetrics;
3023 -// #else
3024 -// #...
3025 -// #endif // !UNICODE
3026 -
3027 -// #endif /* NOTEXTMETRIC */
3028 -
3029 -extern(Windows) export UINT GetPaletteEntries(HPALETTE, UINT, UINT, LPPALETTEENTRY);
3030 -extern(Windows) export COLORREF GetPixel(HDC, int, int);
3031 -extern(Windows) export int GetPixelFormat(HDC);
3032 -extern(Windows) export int GetPolyFillMode(HDC);
3033 -extern(Windows) export BOOL GetRasterizerCaps(LPRASTERIZER_STATUS, UINT);
3034 -extern(Windows) export int GetRandomRgn(HDC, HRGN, INT);
3035 -extern(Windows) export DWORD GetRegionData(HRGN, DWORD, LPRGNDATA);
3036 -extern(Windows) export int GetRgnBox(HRGN, LPRECT);
3037 -extern(Windows) export HGDIOBJ GetStockObject(int);
3038 -extern(Windows) export int GetStretchBltMode(HDC);
3039 -extern(Windows) export UINT GetSystemPaletteEntries(HDC, UINT, UINT, LPPALETTEENTRY);
3040 -extern(Windows) export UINT GetSystemPaletteUse(HDC);
3041 -extern(Windows) export int GetTextCharacterExtra(HDC);
3042 -extern(Windows) export UINT GetTextAlign(HDC);
3043 -extern(Windows) export COLORREF GetTextColor(HDC);
3044 -
3045 -extern(Windows) export BOOL GetTextExtentPointA(
3046 - HDC,
3047 - LPCSTR,
3048 - int,
3049 - LPSIZE);
3050 -extern(Windows) export BOOL GetTextExtentPointW(
3051 - HDC,
3052 - LPCWSTR,
3053 - int,
3054 - LPSIZE);
3055 -// #ifdef UNICODE
3056 -alias GetTextExtentPointW GetTextExtentPoint;
3057 -// #else
3058 -// #...
3059 -// #endif // !UNICODE
3060 -
3061 -extern(Windows) export BOOL GetTextExtentPoint32A(
3062 - HDC,
3063 - LPCSTR,
3064 - int,
3065 - LPSIZE);
3066 -extern(Windows) export BOOL GetTextExtentPoint32W(
3067 - HDC,
3068 - LPCWSTR,
3069 - int,
3070 - LPSIZE);
3071 -// #ifdef UNICODE
3072 -alias GetTextExtentPoint32W GetTextExtentPoint32;
3073 -// #else
3074 -// #...
3075 -// #endif // !UNICODE
3076 -
3077 -extern(Windows) export BOOL GetTextExtentExPointA(
3078 - HDC,
3079 - LPCSTR,
3080 - int,
3081 - int,
3082 - LPINT,
3083 - LPINT,
3084 - LPSIZE);
3085 -extern(Windows) export BOOL GetTextExtentExPointW(
3086 - HDC,
3087 - LPCWSTR,
3088 - int,
3089 - int,
3090 - LPINT,
3091 - LPINT,
3092 - LPSIZE);
3093 -// #ifdef UNICODE
3094 -alias GetTextExtentExPointW GetTextExtentExPoint;
3095 -// #else
3096 -// #...
3097 -// #endif // !UNICODE
3098 -// #if(WINVER >= 0x0400)
3099 -extern(Windows) export int GetTextCharset(HDC hdc);
3100 -extern(Windows) export int GetTextCharsetInfo(HDC hdc, LPFONTSIGNATURE lpSig, DWORD dwFlags);
3101 -extern(Windows) export BOOL TranslateCharsetInfo(DWORD *lpSrc, LPCHARSETINFO lpCs, DWORD dwFlags);
3102 -extern(Windows) export DWORD GetFontLanguageInfo(HDC );
3103 -extern(Windows) export DWORD GetCharacterPlacementA(HDC, LPCSTR, int, int, LPGCP_RESULTSA, DWORD);
3104 -extern(Windows) export DWORD GetCharacterPlacementW(HDC, LPCWSTR, int, int, LPGCP_RESULTSW, DWORD);
3105 -// #ifdef UNICODE
3106 -alias GetCharacterPlacementW GetCharacterPlacement;
3107 -// #else
3108 -// #...
3109 -// #endif // !UNICODE
3110 -// #endif /* WINVER >= 0x0400 */
3111 -
3112 -// #if (_WIN32_WINNT >= 0x0500)
3113 -
3114 -struct tagWCRANGE {
3115 - WCHAR wcLow;
3116 - USHORT cGlyphs;
3117 -}
3118 -alias tagWCRANGE WCRANGE;
3119 -alias tagWCRANGE* PWCRANGE;
3120 -alias tagWCRANGE* LPWCRANGE;
3121 -
3122 -struct tagGLYPHSET {
3123 - DWORD cbThis;
3124 - DWORD flAccel;
3125 - DWORD cGlyphsSupported;
3126 - DWORD cRanges;
3127 - WCRANGE ranges[1];
3128 -}
3129 -alias tagGLYPHSET GLYPHSET;
3130 -alias tagGLYPHSET* PGLYPHSET;
3131 -alias tagGLYPHSET* LPGLYPHSET;
3132 -
3133 -enum : uint { GS_8BIT_INDICES = 0x00000001 }
3134 -
3135 -enum : uint { GGI_MARK_NONEXISTING_GLYPHS = 0X0001 }
3136 -
3137 -extern(Windows) export DWORD GetFontUnicodeRanges(HDC, LPGLYPHSET);
3138 -extern(Windows) export DWORD GetGlyphIndicesA(HDC, LPCSTR, int, LPWORD, DWORD);
3139 -extern(Windows) export DWORD GetGlyphIndicesW(HDC, LPCWSTR, int, LPWORD, DWORD);
3140 -// #ifdef UNICODE
3141 -alias GetGlyphIndicesW GetGlyphIndices;
3142 -// #else
3143 -// #...
3144 -// #endif // !UNICODE
3145 -extern(Windows) export BOOL GetTextExtentPointI(HDC, LPWORD, int, LPSIZE);
3146 -extern(Windows) export BOOL GetTextExtentExPointI(HDC, LPWORD, int, int, LPINT, LPINT, LPSIZE);
3147 -extern(Windows) export BOOL GetCharWidthI(HDC, UINT, UINT, LPWORD, LPINT);
3148 -extern(Windows) export BOOL GetCharABCWidthsI(HDC, UINT, UINT, LPWORD, LPABC);
3149 -
3150 -enum : uint { STAMP_DESIGNVECTOR = 0x8000000 + 'd' + ('v' << 8) }
3151 -enum : uint { STAMP_AXESLIST = 0x8000000 + 'a' + ('l' << 8) }
3152 -enum : uint { MM_MAX_NUMAXES = 16 }
3153 -
3154 -struct tagDESIGNVECTOR {
3155 - DWORD dvReserved;
3156 - DWORD dvNumAxes;
3157 - LONG dvValues[MM_MAX_NUMAXES];
3158 -}
3159 -alias tagDESIGNVECTOR DESIGNVECTOR;
3160 -alias tagDESIGNVECTOR* PDESIGNVECTOR;
3161 -alias tagDESIGNVECTOR* LPDESIGNVECTOR;
3162 -
3163 -extern(Windows) export int AddFontResourceExA(LPCSTR, DWORD, PVOID);
3164 -extern(Windows) export int AddFontResourceExW(LPCWSTR, DWORD, PVOID);
3165 -// #ifdef UNICODE
3166 -alias AddFontResourceExW AddFontResourceEx;
3167 -// #else
3168 -// #...
3169 -// #endif // !UNICODE
3170 -extern(Windows) export BOOL RemoveFontResourceExA(LPCSTR, DWORD, PVOID);
3171 -extern(Windows) export BOOL RemoveFontResourceExW(LPCWSTR, DWORD, PVOID);
3172 -// #ifdef UNICODE
3173 -alias RemoveFontResourceExW RemoveFontResourceEx;
3174 -// #else
3175 -// #...
3176 -// #endif // !UNICODE
3177 -extern(Windows) export HANDLE AddFontMemResourceEx(PVOID, DWORD, PVOID , DWORD*);
3178 -extern(Windows) export BOOL RemoveFontMemResourceEx(HANDLE);
3179 -enum : uint { FR_PRIVATE = 0x10 }
3180 -enum : uint { FR_NOT_ENUM = 0x20 }
3181 -
3182 -enum : uint { MM_MAX_AXES_NAMELEN = 16 }
3183 -
3184 -struct tagAXISINFOA {
3185 - LONG axMinValue;
3186 - LONG axMaxValue;
3187 - BYTE axAxisName[MM_MAX_AXES_NAMELEN];
3188 -}
3189 -alias tagAXISINFOA AXISINFOA;
3190 -alias tagAXISINFOA* PAXISINFOA;
3191 -alias tagAXISINFOA* LPAXISINFOA;
3192 -
3193 -struct tagAXISINFOW {
3194 - LONG axMinValue;
3195 - LONG axMaxValue;
3196 - WCHAR axAxisName[MM_MAX_AXES_NAMELEN];
3197 -}
3198 -alias tagAXISINFOW AXISINFOW;
3199 -alias tagAXISINFOW* PAXISINFOW;
3200 -alias tagAXISINFOW* LPAXISINFOW;
3201 -
3202 -// #ifdef UNICODE
3203 -alias AXISINFOW AXISINFO;
3204 -alias PAXISINFOW PAXISINFO;
3205 -alias LPAXISINFOW LPAXISINFO;
3206 -// #else
3207 -// ...
3208 -// #endif // UNICODE
3209 -
3210 -struct tagAXESLISTA {
3211 - DWORD axlReserved;
3212 - DWORD axlNumAxes;
3213 - AXISINFOA axlAxisInfo[MM_MAX_NUMAXES];
3214 -}
3215 -alias tagAXESLISTA AXESLISTA;
3216 -alias tagAXESLISTA* PAXESLISTA;
3217 -alias tagAXESLISTA* LPAXESLISTA;
3218 -
3219 -struct tagAXESLISTW {
3220 - DWORD axlReserved;
3221 - DWORD axlNumAxes;
3222 - AXISINFOW axlAxisInfo[MM_MAX_NUMAXES];
3223 -}
3224 -alias tagAXESLISTW AXESLISTW;
3225 -alias tagAXESLISTW* PAXESLISTW;
3226 -alias tagAXESLISTW* LPAXESLISTW;
3227 -
3228 -// #ifdef UNICODE
3229 -alias AXESLISTW AXESLIST;
3230 -alias PAXESLISTW PAXESLIST;
3231 -alias LPAXESLISTW LPAXESLIST;
3232 -// #else
3233 -// ...
3234 -// #endif // UNICODE
3235 -
3236 -struct tagENUMLOGFONTEXDVA {
3237 - ENUMLOGFONTEXA elfEnumLogfontEx;
3238 - DESIGNVECTOR elfDesignVector;
3239 -}
3240 -alias tagENUMLOGFONTEXDVA ENUMLOGFONTEXDVA;
3241 -alias tagENUMLOGFONTEXDVA* PENUMLOGFONTEXDVA;
3242 -alias tagENUMLOGFONTEXDVA* LPENUMLOGFONTEXDVA;
3243 -
3244 -struct tagENUMLOGFONTEXDVW {
3245 - ENUMLOGFONTEXW elfEnumLogfontEx;
3246 - DESIGNVECTOR elfDesignVector;
3247 -}
3248 -alias tagENUMLOGFONTEXDVW ENUMLOGFONTEXDVW;
3249 -alias tagENUMLOGFONTEXDVW* PENUMLOGFONTEXDVW;
3250 -alias tagENUMLOGFONTEXDVW* LPENUMLOGFONTEXDVW;
3251 -
3252 -// #ifdef UNICODE
3253 -alias ENUMLOGFONTEXDVW ENUMLOGFONTEXDV;
3254 -alias PENUMLOGFONTEXDVW PENUMLOGFONTEXDV;
3255 -alias LPENUMLOGFONTEXDVW LPENUMLOGFONTEXDV;
3256 -// #else
3257 -// ...
3258 -// #endif // UNICODE
3259 -
3260 -extern(Windows) export HFONT CreateFontIndirectExA(ENUMLOGFONTEXDVA *);
3261 -extern(Windows) export HFONT CreateFontIndirectExW(ENUMLOGFONTEXDVW *);
3262 -// #ifdef UNICODE
3263 -alias CreateFontIndirectExW CreateFontIndirectEx;
3264 -// #else
3265 -// #...
3266 -// #endif // !UNICODE
3267 -
3268 -// #ifndef NOTEXTMETRIC
3269 -struct tagENUMTEXTMETRICA {
3270 - NEWTEXTMETRICEXA etmNewTextMetricEx;
3271 - AXESLISTA etmAxesList;
3272 -}
3273 -alias tagENUMTEXTMETRICA ENUMTEXTMETRICA;
3274 -alias tagENUMTEXTMETRICA* PENUMTEXTMETRICA;
3275 -alias tagENUMTEXTMETRICA* LPENUMTEXTMETRICA;
3276 -
3277 -struct tagENUMTEXTMETRICW {
3278 - NEWTEXTMETRICEXW etmNewTextMetricEx;
3279 - AXESLISTW etmAxesList;
3280 -}
3281 -alias tagENUMTEXTMETRICW ENUMTEXTMETRICW;
3282 -alias tagENUMTEXTMETRICW* PENUMTEXTMETRICW;
3283 -alias tagENUMTEXTMETRICW* LPENUMTEXTMETRICW;
3284 -
3285 -// #ifdef UNICODE
3286 -alias ENUMTEXTMETRICW ENUMTEXTMETRIC;
3287 -alias PENUMTEXTMETRICW PENUMTEXTMETRIC;
3288 -alias LPENUMTEXTMETRICW LPENUMTEXTMETRIC;
3289 -// #else
3290 -// ...
3291 -// #endif // UNICODE
3292 -// #endif /* NOTEXTMETRIC */
3293 -
3294 -// #endif // (_WIN32_WINNT >= 0x0500)
3295 -
3296 -extern(Windows) export BOOL GetViewportExtEx(HDC, LPSIZE);
3297 -extern(Windows) export BOOL GetViewportOrgEx(HDC, LPPOINT);
3298 -extern(Windows) export BOOL GetWindowExtEx(HDC, LPSIZE);
3299 -extern(Windows) export BOOL GetWindowOrgEx(HDC, LPPOINT);
3300 -
3301 -extern(Windows) export int IntersectClipRect(HDC, int, int, int, int);
3302 -extern(Windows) export BOOL InvertRgn(HDC, HRGN);
3303 -extern(Windows) export BOOL LineDDA(int, int, int, int, LINEDDAPROC, LPARAM);
3304 -extern(Windows) export BOOL LineTo(HDC, int, int);
3305 -extern(Windows) export BOOL MaskBlt(HDC, int, int, int, int,
3306 - HDC, int, int, HBITMAP, int, int, DWORD);
3307 -extern(Windows) export BOOL PlgBlt(HDC, POINT *, HDC, int, int, int,
3308 - int, HBITMAP, int, int);
3309 -
3310 -extern(Windows) export int OffsetClipRgn(HDC, int, int);
3311 -extern(Windows) export int OffsetRgn(HRGN, int, int);
3312 -extern(Windows) export BOOL PatBlt(HDC, int, int, int, int, DWORD);
3313 -extern(Windows) export BOOL Pie(HDC, int, int, int, int, int, int, int, int);
3314 -extern(Windows) export BOOL PlayMetaFile(HDC, HMETAFILE);
3315 -extern(Windows) export BOOL PaintRgn(HDC, HRGN);
3316 -extern(Windows) export BOOL PolyPolygon(HDC, POINT *, INT *, int);
3317 -extern(Windows) export BOOL PtInRegion(HRGN, int, int);
3318 -extern(Windows) export BOOL PtVisible(HDC, int, int);
3319 -extern(Windows) export BOOL RectInRegion(HRGN, RECT *);
3320 -extern(Windows) export BOOL RectVisible(HDC, RECT *);
3321 -extern(Windows) export BOOL Rectangle(HDC, int, int, int, int);
3322 -extern(Windows) export BOOL RestoreDC(HDC, int);
3323 -extern(Windows) export HDC ResetDCA(HDC, DEVMODEA *);
3324 -extern(Windows) export HDC ResetDCW(HDC, DEVMODEW *);
3325 -// #ifdef UNICODE
3326 -alias ResetDCW ResetDC;
3327 -// #else
3328 -// #...
3329 -// #endif // !UNICODE
3330 -extern(Windows) export UINT RealizePalette(HDC);
3331 -extern(Windows) export BOOL RemoveFontResourceA(LPCSTR);
3332 -extern(Windows) export BOOL RemoveFontResourceW(LPCWSTR);
3333 -// #ifdef UNICODE
3334 -alias RemoveFontResourceW RemoveFontResource;
3335 -// #else
3336 -// #...
3337 -// #endif // !UNICODE
3338 -extern(Windows) export BOOL RoundRect(HDC, int, int, int, int, int, int);
3339 -extern(Windows) export BOOL ResizePalette(HPALETTE, UINT);
3340 -
3341 -extern(Windows) export int SaveDC(HDC);
3342 -extern(Windows) export int SelectClipRgn(HDC, HRGN);
3343 -extern(Windows) export int ExtSelectClipRgn(HDC, HRGN, int);
3344 -extern(Windows) export int SetMetaRgn(HDC);
3345 -extern(Windows) export HGDIOBJ SelectObject(HDC, HGDIOBJ);
3346 -extern(Windows) export HPALETTE SelectPalette(HDC, HPALETTE, BOOL);
3347 -extern(Windows) export COLORREF SetBkColor(HDC, COLORREF);
3348 -
3349 -// #if (_WIN32_WINNT >= 0x0500)
3350 -extern(Windows) export COLORREF SetDCBrushColor(HDC, COLORREF);
3351 -extern(Windows) export COLORREF SetDCPenColor(HDC, COLORREF);
3352 -// #endif
3353 -
3354 -extern(Windows) export int SetBkMode(HDC, int);
3355 -extern(Windows) export LONG SetBitmapBits(HBITMAP, DWORD, VOID *);
3356 -
3357 -extern(Windows) export UINT SetBoundsRect(HDC, RECT *, UINT);
3358 -extern(Windows) export int SetDIBits(HDC, HBITMAP, UINT, UINT, VOID *, BITMAPINFO *, UINT);
3359 -extern(Windows) export int SetDIBitsToDevice(HDC, int, int, DWORD, DWORD, int,
3360 - int, UINT, UINT, VOID *, BITMAPINFO *, UINT);
3361 -extern(Windows) export DWORD SetMapperFlags(HDC, DWORD);
3362 -extern(Windows) export int SetGraphicsMode(HDC hdc, int iMode);
3363 -extern(Windows) export int SetMapMode(HDC, int);
3364 -
3365 -// #if(WINVER >= 0x0500)
3366 -extern(Windows) export DWORD SetLayout(HDC, DWORD);
3367 -extern(Windows) export DWORD GetLayout(HDC);
3368 -// #endif /* WINVER >= 0x0500 */
3369 -
3370 -extern(Windows) export HMETAFILE SetMetaFileBitsEx(UINT, BYTE *);
3371 -extern(Windows) export UINT SetPaletteEntries(HPALETTE, UINT, UINT, PALETTEENTRY *);
3372 -extern(Windows) export COLORREF SetPixel(HDC, int, int, COLORREF);
3373 -extern(Windows) export BOOL SetPixelV(HDC, int, int, COLORREF);
3374 -extern(Windows) export BOOL SetPixelFormat(HDC, int, PIXELFORMATDESCRIPTOR *);
3375 -extern(Windows) export int SetPolyFillMode(HDC, int);
3376 -extern(Windows) export BOOL StretchBlt(HDC, int, int, int, int, HDC, int, int, int, int, DWORD);
3377 -extern(Windows) export BOOL SetRectRgn(HRGN, int, int, int, int);
3378 -extern(Windows) export int StretchDIBits(HDC, int, int, int, int, int, int, int, int,
3379 - VOID *, BITMAPINFO *, UINT, DWORD);
3380 -extern(Windows) export int SetROP2(HDC, int);
3381 -extern(Windows) export int SetStretchBltMode(HDC, int);
3382 -extern(Windows) export UINT SetSystemPaletteUse(HDC, UINT);
3383 -extern(Windows) export int SetTextCharacterExtra(HDC, int);
3384 -extern(Windows) export COLORREF SetTextColor(HDC, COLORREF);
3385 -extern(Windows) export UINT SetTextAlign(HDC, UINT);
3386 -extern(Windows) export BOOL SetTextJustification(HDC, int, int);
3387 -extern(Windows) export BOOL UpdateColors(HDC);
3388 -
3389 -// #if (WINVER >= 0x0400)
2630 +alias LOGBRUSH*PLOGBRUSH, NPLOGBRUSH, LPLOGBRUSH;
2631 +alias PATTERN *PPATTERN, NPPATTERN, LPPATTERN;
2632 +
2633 +struct LOGBRUSH32
2634 +{
2635 + UINT lbStyle;
2636 + COLORREF lbColor;
2637 + ULONG lbHatch;
2638 +}
2639 +alias LOGBRUSH32*PLOGBRUSH32, NPLOGBRUSH32, LPLOGBRUSH32;
2640 +
2641 +struct EMRCREATEBRUSHINDIRECT
2642 +{
2643 + EMR emr;
2644 + DWORD ihBrush;
2645 + LOGBRUSH32 lb;
2646 +}
2647 +alias EMRCREATEBRUSHINDIRECT*PEMRCREATEBRUSHINDIRECT;
2648 +
2649 +alias LONG LCSCSTYPE, LCSGAMUTMATCH;
2650 +
2651 +struct LOGCOLORSPACEA
2652 +{
2653 + DWORD lcsSignature;
2654 + DWORD lcsVersion;
2655 + DWORD lcsSize;
2656 + LCSCSTYPE lcsCSType;
2657 + LCSGAMUTMATCH lcsIntent;
2658 + CIEXYZTRIPLE lcsEndpoints;
2659 + DWORD lcsGammaRed;
2660 + DWORD lcsGammaGreen;
2661 + DWORD lcsGammaBlue;
2662 + CHAR[MAX_PATH] lcsFilename;
2663 +}
2664 +alias LOGCOLORSPACEA*LPLOGCOLORSPACEA;
2665 +
2666 +struct LOGCOLORSPACEW
2667 +{
2668 + DWORD lcsSignature;
2669 + DWORD lcsVersion;
2670 + DWORD lcsSize;
2671 + LCSCSTYPE lcsCSType;
2672 + LCSGAMUTMATCH lcsIntent;
2673 + CIEXYZTRIPLE lcsEndpoints;
2674 + DWORD lcsGammaRed;
2675 + DWORD lcsGammaGreen;
2676 + DWORD lcsGammaBlue;
2677 + WCHAR[MAX_PATH] lcsFilename;
2678 +}
2679 +alias LOGCOLORSPACEW*LPLOGCOLORSPACEW;
3390 2680
3391 2681 alias USHORT COLOR16;
3392 -
3393 -struct _TRIVERTEX {
3394 - LONG x;
3395 - LONG y;
3396 - COLOR16 Red;
3397 - COLOR16 Green;
3398 - COLOR16 Blue;
3399 - COLOR16 Alpha;
2682 +struct TRIVERTEX
2683 +{
2684 + LONG x;
2685 + LONG y;
2686 + COLOR16 Red;
2687 + COLOR16 Green;
2688 + COLOR16 Blue;
2689 + COLOR16 Alpha;
2690 +}
2691 +alias TRIVERTEX*PTRIVERTEX, LPTRIVERTEX;
2692 +
2693 +static
2694 +
2695 +if (WINVER >= 0x0400)
2696 +{
2697 + struct EMRGLSRECORD
2698 + {
2699 + EMR emr;
2700 + DWORD cbData;
2701 + BYTE[1] Data;
2702 + }
2703 + alias EMRGLSRECORD*PEMRGLSRECORD;
2704 +
2705 + struct EMRGLSBOUNDEDRECORD
2706 + {
2707 + EMR emr;
2708 + RECTL rclBounds;
2709 + DWORD cbData;
2710 + BYTE[1] Data;
2711 + }
2712 + alias EMRGLSBOUNDEDRECORD*PEMRGLSBOUNDEDRECORD;
2713 +
2714 + struct EMRPIXELFORMAT
2715 + {
2716 + EMR emr;
2717 + PIXELFORMATDESCRIPTOR pfd;
2718 + }
2719 + alias EMRPIXELFORMAT*PEMRPIXELFORMAT;
2720 +
2721 + struct EMRCREATECOLORSPACE
2722 + {
2723 + EMR emr;
2724 + DWORD ihCS;
2725 + LOGCOLORSPACE lcs;
2726 + }
2727 + alias EMRCREATECOLORSPACE*PEMRCREATECOLORSPACE;
2728 +
2729 + struct EMRSETCOLORSPACE
2730 + {
2731 + EMR emr;
2732 + DWORD ihCS;
2733 + }
2734 + alias EMRSETCOLORSPACE*PEMRSETCOLORSPACE;
2735 + alias EMRSETCOLORSPACE EMRSELECTCOLORSPACE;
2736 + alias EMRSELECTCOLORSPACE*PEMRSELECTCOLORSPACE;
2737 + alias EMRSETCOLORSPACE EMRDELETECOLORSPACE;
2738 + alias EMRDELETECOLORSPACE*PEMRDELETECOLORSPACE;
2739 +}
2740 +
2741 +static
2742 +
2743 +if (WINVER >= 0x0500)
2744 +{
2745 + struct EMREXTESCAPE
2746 + {
2747 + EMR emr;
2748 + INT iEscape;
2749 + INT cbEscData;
2750 + BYTE[1] EscData;
2751 + }
2752 + alias EMREXTESCAPE*PEMREXTESCAPE;
2753 + alias EMREXTESCAPE EMRDRAWESCAPE;
2754 + alias EMRDRAWESCAPE*PEMRDRAWESCAPE;
2755 +
2756 + struct EMRNAMEDESCAPE
2757 + {
2758 + EMR emr;
2759 + INT iEscape;
2760 + INT cbDriver;
2761 + INT cbEscData;
2762 + BYTE[1] EscData;
2763 + }
2764 + alias EMRNAMEDESCAPE*PEMRNAMEDESCAPE;
2765 +
2766 + struct EMRSETICMPROFILE
2767 + {
2768 + EMR emr;
2769 + DWORD dwFlags;
2770 + DWORD cbName;
2771 + DWORD cbData;
2772 + BYTE[1] Data;
2773 + }
2774 + alias EMRSETICMPROFILE*PEMRSETICMPROFILE;
2775 + alias EMRSETICMPROFILE EMRSETICMPROFILEA;
2776 + alias EMRSETICMPROFILEA*PEMRSETICMPROFILEA;
2777 + alias EMRSETICMPROFILE EMRSETICMPROFILEW;
2778 + alias EMRSETICMPROFILEW*PEMRSETICMPROFILEW;
2779 +
2780 + struct EMRCREATECOLORSPACEW
2781 + {
2782 + EMR emr;
2783 + DWORD ihCS;
2784 + LOGCOLORSPACEW lcs;
2785 + DWORD dwFlags;
2786 + DWORD cbData;
2787 + BYTE[1] Data;
2788 + }
2789 + alias EMRCREATECOLORSPACEW*PEMRCREATECOLORSPACEW;
2790 +
2791 + struct EMRCOLORMATCHTOTARGET
2792 + {
2793 + EMR emr;
2794 + DWORD dwAction;
2795 + DWORD dwFlags;
2796 + DWORD cbName;
2797 + DWORD cbData;
2798 + BYTE[1] Data;
2799 + }
2800 + alias EMRCOLORMATCHTOTARGET*PEMRCOLORMATCHTOTARGET;
2801 +
2802 + struct EMRCOLORCORRECTPALETTE
2803 + {
2804 + EMR emr;
2805 + DWORD ihPalette;
2806 + DWORD nFirstEntry;
2807 + DWORD nPalEntries;
2808 + DWORD nReserved;
2809 + }
2810 + alias EMRCOLORCORRECTPALETTE*PEMRCOLORCORRECTPALETTE;
2811 +
2812 + struct EMRALPHABLEND
2813 + {
2814 + EMR emr;
2815 + RECTL rclBounds;
2816 + LONG xDest;
2817 + LONG yDest;
2818 + LONG cxDest;
2819 + LONG cyDest;
2820 + DWORD dwRop;
2821 + LONG xSrc;
2822 + LONG ySrc;
2823 + XFORM xformSrc;
2824 + COLORREF crBkColorSrc;
2825 + DWORD iUsageSrc;
2826 + DWORD offBmiSrc;
2827 + DWORD cbBmiSrc;
2828 + DWORD offBitsSrc;
2829 + DWORD cbBitsSrc;
2830 + LONG cxSrc;
2831 + LONG cySrc;
2832 + }
2833 + alias EMRALPHABLEND*PEMRALPHABLEND;
2834 +
2835 + struct EMRGRADIENTFILL
2836 + {
2837 + EMR emr;
2838 + RECTL rclBounds;
2839 + DWORD nVer;
2840 + DWORD nTri;
2841 + ULONG ulMode;
2842 + TRIVERTEX[1] Ver;
2843 + }
2844 + alias EMRGRADIENTFILL*PEMRGRADIENTFILL;
2845 +
2846 + struct EMRTRANSPARENTBLT
2847 + {
2848 + EMR emr;
2849 + RECTL rclBounds;
2850 + LONG xDest;
2851 + LONG yDest;
2852 + LONG cxDest;
2853 + LONG cyDest;
2854 + DWORD dwRop;
2855 + LONG xSrc;
2856 + LONG ySrc;
2857 + XFORM xformSrc;
2858 + COLORREF crBkColorSrc;
2859 + DWORD iUsageSrc;
2860 + DWORD offBmiSrc;
2861 + DWORD cbBmiSrc;
2862 + DWORD offBitsSrc;
2863 + DWORD cbBitsSrc;
2864 + LONG cxSrc;
2865 + LONG cySrc;
2866 + }
2867 + alias EMRTRANSPARENTBLT*PEMRTRANSPARENTBLT;
2868 +}
2869 +
2870 +struct EMRCREATEDIBPATTERNBRUSHPT
2871 +{
2872 + EMR emr;
2873 + DWORD ihBrush;
2874 + DWORD iUsage;
2875 + DWORD offBmi;
2876 + DWORD cbBmi;
2877 + DWORD offBits;
2878 + DWORD cbBits;
2879 +}
2880 +alias EMRCREATEDIBPATTERNBRUSHPT*PEMRCREATEDIBPATTERNBRUSHPT;
2881 +
2882 +struct EMRCREATEMONOBRUSH
2883 +{
2884 + EMR emr;
2885 + DWORD ihBrush;
2886 + DWORD iUsage;
2887 + DWORD offBmi;
2888 + DWORD cbBmi;
2889 + DWORD offBits;
2890 + DWORD cbBits;
2891 +}
2892 +alias EMRCREATEMONOBRUSH*PEMRCREATEMONOBRUSH;
2893 +
2894 +struct PALETTEENTRY
2895 +{
2896 + BYTE peRed;
2897 + BYTE peGreen;
2898 + BYTE peBlue;
2899 + BYTE peFlags;
2900 +}
2901 +alias PALETTEENTRY*PPALETTEENTRY, LPPALETTEENTRY;
2902 +
2903 +struct LOGPALETTE
2904 +{
2905 + WORD palVersion;
2906 + WORD palNumEntries;
2907 + PALETTEENTRY[1] palPalEntry;
2908 +}
2909 +alias LOGPALETTE*PLOGPALETTE, NPLOGPALETTE, LPLOGPALETTE;
2910 +
2911 +struct EMRCREATEPALETTE
2912 +{
2913 + EMR emr;
2914 + DWORD ihPal;
2915 + LOGPALETTE lgpl;
2916 +}
2917 +alias EMRCREATEPALETTE*PEMRCREATEPALETTE;
2918 +
2919 +struct EMRCREATEPEN
2920 +{
2921 + EMR emr;
2922 + DWORD ihPen;
2923 + LOGPEN lopn;
2924 +}
2925 +alias EMRCREATEPEN*PEMRCREATEPEN;
2926 +
2927 +struct EMRELLIPSE
2928 +{
2929 + EMR emr;
2930 + RECTL rclBox;
2931 +}
2932 +alias EMRELLIPSE*PEMRELLIPSE;
2933 +
2934 +alias EMRELLIPSE EMRRECTANGLE;
2935 +alias EMRRECTANGLE*PEMRRECTANGLE;
2936 +
2937 +struct EMREOF
2938 +{
2939 + EMR emr;
2940 + DWORD nPalEntries;
2941 + DWORD offPalEntries;
2942 + DWORD nSizeLast;
2943 +}
2944 +alias EMREOF*PEMREOF;
2945 +
2946 +struct EMREXCLUDECLIPRECT
2947 +{
2948 + EMR emr;
2949 + RECTL rclClip;
2950 +}
2951 +alias EMREXCLUDECLIPRECT*PEMREXCLUDECLIPRECT;
2952 +alias EMREXCLUDECLIPRECT EMRINTERSECTCLIPRECT;
2953 +alias EMRINTERSECTCLIPRECT*PEMRINTERSECTCLIPRECT;
2954 +
2955 +struct EMREXTCREATEFONTINDIRECTW
2956 +{
2957 + EMR emr;
2958 + DWORD ihFont;
2959 + EXTLOGFONTW elfw;
2960 +}
2961 +alias EMREXTCREATEFONTINDIRECTW*PEMREXTCREATEFONTINDIRECTW;
2962 +
2963 +struct EXTLOGPEN
2964 +{
2965 + UINT elpPenStyle;
2966 + UINT elpWidth;
2967 + UINT elpBrushStyle;
2968 + COLORREF elpColor;
2969 + LONG elpHatch;
2970 + DWORD elpNumEntries;
2971 + DWORD[1] elpStyleEntry;
2972 +}
2973 +alias EXTLOGPEN*PEXTLOGPEN, NPEXTLOGPEN, LPEXTLOGPEN;
2974 +
2975 +struct EMREXTCREATEPEN
2976 +{
2977 + EMR emr;
2978 + DWORD ihPen;
2979 + DWORD offBmi;
2980 + DWORD cbBmi;
2981 + DWORD offBits;
2982 + DWORD cbBits;
2983 + EXTLOGPEN elp;
2984 +}
2985 +alias EMREXTCREATEPEN*PEMREXTCREATEPEN;
2986 +
2987 +struct EMREXTFLOODFILL
2988 +{
2989 + EMR emr;
2990 + POINTL ptlStart;
2991 + COLORREF crColor;
2992 + DWORD iMode;
2993 +}
2994 +alias EMREXTFLOODFILL*PEMREXTFLOODFILL;
2995 +
2996 +struct EMREXTSELECTCLIPRGN
2997 +{
2998 + EMR emr;
2999 + DWORD cbRgnData;
3000 + DWORD iMode;
3001 + BYTE [1] RgnData;
3002 +}
3003 +alias EMREXTSELECTCLIPRGN*PEMREXTSELECTCLIPRGN;
3004 +
3005 +struct EMRTEXT
3006 +{
3007 + POINTL ptlReference;
3008 + DWORD nChars;
3009 + DWORD offString;
3010 + DWORD fOptions;
3011 + RECTL rcl;
3012 + DWORD offDx;
3013 +}
3014 +alias EMRTEXT*PEMRTEXT;
3015 +
3016 +struct EMREXTTEXTOUTA
3017 +{
3018 + EMR emr;
3019 + RECTL rclBounds;
3020 + DWORD iGraphicsMode;
3021 + FLOAT exScale;
3022 + FLOAT eyScale;
3023 + EMRTEXT emrtext;
3024 +}
3025 +alias EMREXTTEXTOUTA*PEMREXTTEXTOUTA;
3026 +alias EMREXTTEXTOUTA EMREXTTEXTOUTW;
3027 +alias EMREXTTEXTOUTW*PEMREXTTEXTOUTW;
3028 +
3029 +struct EMRFILLPATH
3030 +{
3031 + EMR emr;
3032 + RECTL rclBounds;
3033 +}
3034 +alias EMRFILLPATH*PEMRFILLPATH;
3035 +
3036 +alias EMRFILLPATH EMRSTROKEANDFILLPATH;
3037 +alias EMRSTROKEANDFILLPATH*PEMRSTROKEANDFILLPATH;
3038 +
3039 +alias EMRFILLPATH EMRSTROKEPATH;
3040 +alias EMRSTROKEPATH*PEMRSTROKEPATH;
3041 +
3042 +struct EMRFILLRGN
3043 +{
3044 + EMR emr;
3045 + RECTL rclBounds;
3046 + DWORD cbRgnData;
3047 + DWORD ihBrush;
3048 + BYTE[1] RgnData;
3049 +}
3050 +alias EMRFILLRGN*PEMRFILLRGN;
3051 +
3052 +struct EMRFORMAT
3053 +{
3054 + DWORD dSignature;
3055 + DWORD nVersion;
3056 + DWORD cbData;
3057 + DWORD offData;
3058 +}
3059 +alias EMRFORMAT*PEMRFORMAT;
3060 +
3061 +struct EMRFRAMERGN
3062 +{
3063 + EMR emr;
3064 + RECTL rclBounds;
3065 + DWORD cbRgnData;
3066 + DWORD ihBrush;
3067 + SIZEL szlStroke;
3068 + BYTE[1] RgnData;
3069 +}
3070 +alias EMRFRAMERGN*PEMRFRAMERGN;
3071 +
3072 +struct EMRGDICOMMENT
3073 +{
3074 + EMR emr;
3075 + DWORD cbData;
3076 + BYTE[1] Data;
3077 +}
3078 +alias EMRGDICOMMENT*PEMRGDICOMMENT;
3079 +
3080 +struct EMRINVERTRGN
3081 +{
3082 + EMR emr;
3083 + RECTL rclBounds;
3084 + DWORD cbRgnData;
3085 + BYTE[1] RgnData;
3086 +}
3087 +alias EMRINVERTRGN*PEMRINVERTRGN;
3088 +alias EMRINVERTRGN EMRPAINTRGN;
3089 +alias EMRPAINTRGN*PEMRPAINTRGN;
3090 +
3091 +struct EMRLINETO
3092 +{
3093 + EMR emr;
3094 + POINTL ptl;
3095 +}
3096 +alias EMRLINETO*PEMRLINETO;
3097 +alias EMRLINETO EMRMOVETOEX;
3098 +alias EMRMOVETOEX*PEMRMOVETOEX;
3099 +
3100 +struct EMRMASKBLT
3101 +{
3102 + EMR emr;
3103 + RECTL rclBounds;
3104 + LONG xDest;
3105 + LONG yDest;
3106 + LONG cxDest;
3107 + LONG cyDest;
3108 + DWORD dwRop;
3109 + LONG xSrc;
3110 + LONG ySrc;
3111 + XFORM xformSrc;
3112 + COLORREF crBkColorSrc;
3113 + DWORD iUsageSrc;
3114 + DWORD offBmiSrc;
3115 + DWORD cbBmiSrc;
3116 + DWORD offBitsSrc;
3117 + DWORD cbBitsSrc;
3118 + LONG xMask;
3119 + LONG yMask;
3120 + DWORD iUsageMask;
3121 + DWORD offBmiMask;
3122 + DWORD cbBmiMask;
3123 + DWORD offBitsMask;
3124 + DWORD cbBitsMask;
3125 +}
3126 +alias EMRMASKBLT*PEMRMASKBLT;
3127 +
3128 +struct EMRMODIFYWORLDTRANSFORM
3129 +{
3130 + EMR emr;
3131 + XFORM xform;
3132 + DWORD iMode;
3133 +}
3134 +alias EMRMODIFYWORLDTRANSFORM*PEMRMODIFYWORLDTRANSFORM;
3135 +
3136 +struct EMROFFSETCLIPRGN
3137 +{
3138 + EMR emr;
3139 + POINTL ptlOffset;
3140 +}
3141 +alias EMROFFSETCLIPRGN*PEMROFFSETCLIPRGN;
3142 +
3143 +struct EMRPLGBLT
3144 +{
3145 + EMR emr;
3146 + RECTL rclBounds;
3147 + POINTL[3] aptlDest;
3148 + LONG xSrc;
3149 + LONG ySrc;
3150 + LONG cxSrc;
3151 + LONG cySrc;
3152 + XFORM xformSrc;
3153 + COLORREF crBkColorSrc;
3154 + DWORD iUsageSrc;
3155 + DWORD offBmiSrc;
3156 + DWORD cbBmiSrc;
3157 + DWORD offBitsSrc;
3158 + DWORD cbBitsSrc;
3159 + LONG xMask;
3160 + LONG yMask;
3161 + DWORD iUsageMask;
3162 + DWORD offBmiMask;
3163 + DWORD cbBmiMask;
3164 + DWORD offBitsMask;
3165 + DWORD cbBitsMask;
3166 +}
3167 +alias EMRPLGBLT*PEMRPLGBLT;
3168 +
3169 +struct EMRPOLYDRAW
3170 +{
3171 + EMR emr;
3172 + RECTL rclBounds;
3173 + DWORD cptl;
3174 + POINTL[1] aptl;
3175 + BYTE[1] abTypes;
3176 +}
3177 +alias EMRPOLYDRAW*PEMRPOLYDRAW;
3178 +
3179 +struct EMRPOLYDRAW16
3180 +{
3181 + EMR emr;
3182 + RECTL rclBounds;
3183 + DWORD cpts;
3184 + POINTS[1] apts;
3185 + BYTE[1] abTypes;
3186 +}
3187 +alias EMRPOLYDRAW16*PEMRPOLYDRAW16;
3188 +
3189 +struct EMRPOLYLINE
3190 +{
3191 + EMR emr;
3192 + RECTL rclBounds;
3193 + DWORD cptl;
3194 + POINTL[1] aptl;
3195 +}
3196 +alias EMRPOLYLINE*PEMRPOLYLINE;
3197 +alias EMRPOLYLINE EMRPOLYBEZIER;
3198 +alias EMRPOLYBEZIER*PEMRPOLYBEZIER;
3199 +alias EMRPOLYLINE EMRPOLYGON;
3200 +alias EMRPOLYGON*PEMRPOLYGON;
3201 +alias EMRPOLYLINE EMRPOLYBEZIERTO;
3202 +alias EMRPOLYBEZIERTO*PEMRPOLYBEZIERTO;
3203 +alias EMRPOLYLINE EMRPOLYLINETO;
3204 +alias EMRPOLYLINETO*PEMRPOLYLINETO;
3205 +
3206 +struct EMRPOLYLINE16
3207 +{
3208 + EMR emr;
3209 + RECTL rclBounds;
3210 + DWORD cpts;
3211 + POINTS[1] apts;
3212 +}
3213 +alias EMRPOLYLINE16*PEMRPOLYLINE16;
3214 +alias EMRPOLYLINE16 EMRPOLYBEZIER16;
3215 +alias EMRPOLYBEZIER16*PEMRPOLYBEZIER16;
3216 +alias EMRPOLYLINE16 EMRPOLYGON16;
3217 +alias EMRPOLYGON16*PEMRPOLYGON16;
3218 +alias EMRPOLYLINE16 EMRPOLYBEZIERTO16;
3219 +alias EMRPOLYBEZIERTO16*PEMRPOLYBEZIERTO16;
3220 +alias EMRPOLYLINE16 EMRPOLYLINETO16;
3221 +alias EMRPOLYLINETO16*PEMRPOLYLINETO16;
3222 +
3223 +struct EMRPOLYPOLYLINE
3224 +{
3225 + EMR emr;
3226 + RECTL rclBounds;
3227 + DWORD nPolys;
3228 + DWORD cptl;
3229 + DWORD[1] aPolyCounts;
3230 + POINTL[1] aptl;
3231 +}
3232 +alias EMRPOLYPOLYLINE*PEMRPOLYPOLYLINE;
3233 +alias EMRPOLYPOLYLINE EMRPOLYPOLYGON;
3234 +alias EMRPOLYPOLYGON*PEMRPOLYPOLYGON;
3235 +
3236 +struct EMRPOLYPOLYLINE16
3237 +{
3238 + EMR emr;
3239 + RECTL rclBounds;
3240 + DWORD nPolys;
3241 + DWORD cpts;
3242 + DWORD[1] aPolyCounts;
3243 + POINTS[1] apts;
3244 +}
3245 +alias EMRPOLYPOLYLINE16*PEMRPOLYPOLYLINE16;
3246 +alias EMRPOLYPOLYLINE16 EMRPOLYPOLYGON16;
3247 +alias EMRPOLYPOLYGON16*PEMRPOLYPOLYGON16;
3248 +
3249 +struct EMRPOLYTEXTOUTA
3250 +{
3251 + EMR emr;
3252 + RECTL rclBounds;
3253 + DWORD iGraphicsMode;
3254 + FLOAT exScale;
3255 + FLOAT eyScale;
3256 + LONG cStrings;
3257 + EMRTEXT[1] aemrtext;
3258 +}
3259 +alias EMRPOLYTEXTOUTA*PEMRPOLYTEXTOUTA;
3260 +alias EMRPOLYTEXTOUTA EMRPOLYTEXTOUTW;
3261 +alias EMRPOLYTEXTOUTW*PEMRPOLYTEXTOUTW;
3262 +
3263 +struct EMRRESIZEPALETTE
3264 +{
3265 + EMR emr;
3266 + DWORD ihPal;
3267 + DWORD cEntries;
3268 +}
3269 +alias EMRRESIZEPALETTE*PEMRRESIZEPALETTE;
3270 +
3271 +struct EMRRESTOREDC
3272 +{
3273 + EMR emr;
3274 + LONG iRelative;
3275 +}
3276 +alias EMRRESTOREDC*PEMRRESTOREDC;
3277 +
3278 +struct EMRROUNDRECT
3279 +{
3280 + EMR emr;
3281 + RECTL rclBox;
3282 + SIZEL szlCorner;
3283 +}
3284 +alias EMRROUNDRECT*PEMRROUNDRECT;
3285 +
3286 +struct EMRSCALEVIEWPORTEXTEX
3287 +{
3288 + EMR emr;
3289 + LONG xNum;
3290 + LONG xDenom;
3291 + LONG yNum;
3292 + LONG yDenom;
3293 +}
3294 +alias EMRSCALEVIEWPORTEXTEX*PEMRSCALEVIEWPORTEXTEX;
3295 +alias EMRSCALEVIEWPORTEXTEX EMRSCALEWINDOWEXTEX;
3296 +alias EMRSCALEWINDOWEXTEX*PEMRSCALEWINDOWEXTEX;
3297 +
3298 +struct EMRSELECTOBJECT
3299 +{
3300 + EMR emr;
3301 + DWORD ihObject;
3302 +}
3303 +alias EMRSELECTOBJECT*PEMRSELECTOBJECT;
3304 +alias EMRSELECTOBJECT EMRDELETEOBJECT;
3305 +alias EMRDELETEOBJECT*PEMRDELETEOBJECT;
3306 +
3307 +struct EMRSELECTPALETTE
3308 +{
3309 + EMR emr;
3310 + DWORD ihPal;
3311 +}
3312 +alias EMRSELECTPALETTE*PEMRSELECTPALETTE;
3313 +
3314 +struct EMRSETARCDIRECTION
3315 +{
3316 + EMR emr;
3317 + DWORD iArcDirection;
3318 +}
3319 +alias EMRSETARCDIRECTION*PEMRSETARCDIRECTION;
3320 +
3321 +struct EMRSETTEXTCOLOR
3322 +{
3323 + EMR emr;
3324 + COLORREF crColor;
3325 +}
3326 +alias EMRSETTEXTCOLOR*PEMRSETTEXTCOLOR;
3327 +alias EMRSETTEXTCOLOR EMRSETBKCOLOR;
3328 +alias EMRSETBKCOLOR*PEMRSETBKCOLOR;
3329 +
3330 +struct EMRSETCOLORADJUSTMENT
3331 +{
3332 + EMR emr;
3333 + COLORADJUSTMENT ColorAdjustment;
3334 +}
3335 +alias EMRSETCOLORADJUSTMENT*PEMRSETCOLORADJUSTMENT;
3336 +
3337 +struct EMRSETDIBITSTODEVICE
3338 +{
3339 + EMR emr;
3340 + RECTL rclBounds;
3341 + LONG xDest;
3342 + LONG yDest;
3343 + LONG xSrc;
3344 + LONG ySrc;
3345 + LONG cxSrc;
3346 + LONG cySrc;
3347 + DWORD offBmiSrc;
3348 + DWORD cbBmiSrc;
3349 + DWORD offBitsSrc;
3350 + DWORD cbBitsSrc;
3351 + DWORD iUsageSrc;
3352 + DWORD iStartScan;
3353 + DWORD cScans;
3354 +}
3355 +alias EMRSETDIBITSTODEVICE*PEMRSETDIBITSTODEVICE;
3356 +
3357 +struct EMRSETMAPPERFLAGS
3358 +{
3359 + EMR emr;
3360 + DWORD dwFlags;
3361 +}
3362 +alias EMRSETMAPPERFLAGS*PEMRSETMAPPERFLAGS;
3363 +
3364 +struct EMRSETMITERLIMIT
3365 +{
3366 + EMR emr;
3367 + FLOAT eMiterLimit;
3368 +}
3369 +alias EMRSETMITERLIMIT*PEMRSETMITERLIMIT;
3370 +
3371 +struct EMRSETPALETTEENTRIES
3372 +{
3373 + EMR emr;
3374 + DWORD ihPal;
3375 + DWORD iStart;
3376 + DWORD cEntries;
3377 + PALETTEENTRY[1] aPalEntries;
3378 +}
3379 +alias EMRSETPALETTEENTRIES*PEMRSETPALETTEENTRIES;
3380 +
3381 +struct EMRSETPIXELV
3382 +{
3383 + EMR emr;
3384 + POINTL ptlPixel;
3385 + COLORREF crColor;
3386 +}
3387 +alias EMRSETPIXELV*PEMRSETPIXELV;
3388 +
3389 +struct EMRSETVIEWPORTEXTEX
3390 +{
3391 + EMR emr;
3392 + SIZEL szlExtent;
3393 +}
3394 +alias EMRSETVIEWPORTEXTEX*PEMRSETVIEWPORTEXTEX;
3395 +alias EMRSETVIEWPORTEXTEX EMRSETWINDOWEXTEX;
3396 +alias EMRSETWINDOWEXTEX*PEMRSETWINDOWEXTEX;
3397 +
3398 +struct EMRSETVIEWPORTORGEX
3399 +{
3400 + EMR emr;
3401 + POINTL ptlOrigin;
3402 +}
3403 +alias EMRSETVIEWPORTORGEX*PEMRSETVIEWPORTORGEX;
3404 +alias EMRSETVIEWPORTORGEX EMRSETWINDOWORGEX;
3405 +alias EMRSETWINDOWORGEX*PEMRSETWINDOWORGEX;
3406 +alias EMRSETVIEWPORTORGEX EMRSETBRUSHORGEX;
3407 +alias EMRSETBRUSHORGEX*PEMRSETBRUSHORGEX;
3408 +
3409 +struct EMRSETWORLDTRANSFORM
3410 +{
3411 + EMR emr;
3412 + XFORM xform;
3413 +}
3414 +alias EMRSETWORLDTRANSFORM*PEMRSETWORLDTRANSFORM;
3415 +
3416 +struct EMRSTRETCHBLT
3417 +{
3418 + EMR emr;
3419 + RECTL rclBounds;
3420 + LONG xDest;
3421 + LONG yDest;
3422 + LONG cxDest;
3423 + LONG cyDest;
3424 + DWORD dwRop;
3425 + LONG xSrc;
3426 + LONG ySrc;
3427 + XFORM xformSrc;
3428 + COLORREF crBkColorSrc;
3429 + DWORD iUsageSrc;
3430 + DWORD offBmiSrc;
3431 + DWORD cbBmiSrc;
3432 + DWORD offBitsSrc;
3433 + DWORD cbBitsSrc;
3434 + LONG cxSrc;
3435 + LONG cySrc;
3436 +}
3437 +alias EMRSTRETCHBLT*PEMRSTRETCHBLT;
3438 +
3439 +struct EMRSTRETCHDIBITS
3440 +{
3441 + EMR emr;
3442 + RECTL rclBounds;
3443 + LONG xDest;
3444 + LONG yDest;
3445 + LONG xSrc;
3446 + LONG ySrc;
3447 + LONG cxSrc;
3448 + LONG cySrc;
3449 + DWORD offBmiSrc;
3450 + DWORD cbBmiSrc;
3451 + DWORD offBitsSrc;
3452 + DWORD cbBitsSrc;
3453 + DWORD iUsageSrc;
3454 + DWORD dwRop;
3455 + LONG cxDest;
3456 + LONG cyDest;
3457 +}
3458 +alias EMRSTRETCHDIBITS*PEMRSTRETCHDIBITS;
3459 +
3460 +struct EMRABORTPATH
3461 +{
3462 + EMR emr;
3463 +}
3464 +alias EMRABORTPATH*PEMRABORTPATH;
3465 +alias EMRABORTPATH EMRBEGINPATH;
3466 +alias EMRBEGINPATH*PEMRBEGINPATH;
3467 +alias EMRABORTPATH EMRENDPATH;
3468 +alias EMRENDPATH*PEMRENDPATH;
3469 +alias EMRABORTPATH EMRCLOSEFIGURE;
3470 +alias EMRCLOSEFIGURE*PEMRCLOSEFIGURE;
3471 +alias EMRABORTPATH EMRFLATTENPATH;
3472 +alias EMRFLATTENPATH*PEMRFLATTENPATH;
3473 +alias EMRABORTPATH EMRWIDENPATH;
3474 +alias EMRWIDENPATH*PEMRWIDENPATH;
3475 +alias EMRABORTPATH EMRSETMETARGN;
3476 +alias EMRSETMETARGN*PEMRSETMETARGN;
3477 +alias EMRABORTPATH EMRSAVEDC;
3478 +alias EMRSAVEDC*PEMRSAVEDC;
3479 +alias EMRABORTPATH EMRREALIZEPALETTE;
3480 +alias EMRREALIZEPALETTE*PEMRREALIZEPALETTE;
3481 +
3482 +struct EMRSELECTCLIPPATH
3483 +{
3484 + EMR emr;
3485 + DWORD iMode;
3486 +}
3487 +alias EMRSELECTCLIPPATH*PEMRSELECTCLIPPATH;
3488 +alias EMRSELECTCLIPPATH EMRSETBKMODE;
3489 +alias EMRSETBKMODE*PEMRSETBKMODE;
3490 +alias EMRSELECTCLIPPATH EMRSETMAPMODE;
3491 +alias EMRSETMAPMODE*PEMRSETMAPMODE;
3492 +alias EMRSELECTCLIPPATH EMRSETPOLYFILLMODE;
3493 +alias EMRSETPOLYFILLMODE*PEMRSETPOLYFILLMODE;
3494 +alias EMRSELECTCLIPPATH EMRSETROP2;
3495 +alias EMRSETROP2*PEMRSETROP2;
3496 +alias EMRSELECTCLIPPATH EMRSETSTRETCHBLTMODE;
3497 +alias EMRSETSTRETCHBLTMODE*PEMRSETSTRETCHBLTMODE;
3498 +alias EMRSELECTCLIPPATH EMRSETICMMODE;
3499 +alias EMRSETICMMODE*PEMRSETICMMODE;
3500 +alias EMRSELECTCLIPPATH EMRSETTEXTALIGN;
3501 +alias EMRSETTEXTALIGN*PEMRSETTEXTALIGN;
3502 +alias EMRSELECTCLIPPATH EMRENABLEICM;
3503 +alias EMRENABLEICM*PEMRENABLEICM;
3504 +static
3505 +
3506 +if (WINVER >= 0x0500)
3507 +{
3508 + alias EMRSELECTCLIPPATH EMRSETLAYOUT;
3509 + alias EMRSETLAYOUT*PEMRSETLAYOUT;
3510 +}
3511 +
3512 +align (2) :
3513 +struct METAHEADER
3514 +{
3515 + WORD mtType;
3516 + WORD mtHeaderSize;
3517 + WORD mtVersion;
3518 + DWORD mtSize;
3519 + WORD mtNoObjects;
3520 + DWORD mtMaxRecord;
3521 + WORD mtNoParameters;
3522 +}
3523 +alias METAHEADER*PMETAHEADER;
3524 +alias METAHEADER*LPMETAHEADER;
3525 +
3526 +align :
3527 +
3528 +struct ENHMETAHEADER
3529 +{
3530 + DWORD iType;
3531 + DWORD nSize;
3532 + RECTL rclBounds;
3533 + RECTL rclFrame;
3534 + DWORD dSignature = ENHMETA_SIGNATURE;
3535 + DWORD nVersion;
3536 + DWORD nBytes;
3537 + DWORD nRecords;
3538 + WORD nHandles;
3539 + WORD sReserved;
3540 + DWORD nDescription;
3541 + DWORD offDescription;
3542 + DWORD nPalEntries;
3543 + SIZEL szlDevice;
3544 + SIZEL szlMillimeters;
3545 + static
3546 +
3547 + if (WINVER >= 0x0400)
3548 + {
3549 + DWORD cbPixelFormat;
3550 + DWORD offPixelFormat;
3551 + DWORD bOpenGL;
3552 + }
3553 +
3554 + static
3555 +
3556 + if (WINVER >= 0x0500)
3557 + {
3558 + SIZEL szlMicrometers;
3559 + }
3560 +}
3561 +alias ENHMETAHEADER*PENHMETAHEADER, LPENHMETAHEADER;
3562 +
3563 +struct METARECORD
3564 +{
3565 + DWORD rdSize;
3566 + WORD rdFunction;
3567 + WORD[1] rdParm;
3568 +}
3569 +alias METARECORD*PMETARECORD;
3570 +alias METARECORD*LPMETARECORD;
3571 +
3572 +struct ENHMETARECORD
3573 +{
3574 + DWORD iType;
3575 + DWORD nSize;
3576 + DWORD[1] dParm;
3577 +}
3578 +alias ENHMETARECORD*PENHMETARECORD, LPENHMETARECORD;
3579 +
3580 +// ---
3581 +
3582 +struct HANDLETABLE
3583 +{
3584 + HGDIOBJ[1] objectHandle;
3585 +}
3586 +alias HANDLETABLE*PHANDLETABLE, LPHANDLETABLE;
3587 +
3588 +struct TEXTMETRICA
3589 +{
3590 + LONG tmHeight;
3591 + LONG tmAscent;
3592 + LONG tmDescent;
3593 + LONG tmInternalLeading;
3594 + LONG tmExternalLeading;
3595 + LONG tmAveCharWidth;
3596 + LONG tmMaxCharWidth;
3597 + LONG tmWeight;
3598 + LONG tmOverhang;
3599 + LONG tmDigitizedAspectX;
3600 + LONG tmDigitizedAspectY;
3601 + BYTE tmFirstChar;
3602 + BYTE tmLastChar;
3603 + BYTE tmDefaultChar;
3604 + BYTE tmBreakChar;
3605 + BYTE tmItalic;
3606 + BYTE tmUnderlined;
3607 + BYTE tmStruckOut;
3608 + BYTE tmPitchAndFamily;
3609 + BYTE tmCharSet;
3610 +}
3611 +alias TEXTMETRICA*PTEXTMETRICA, NPTEXTMETRICA, LPTEXTMETRICA;
3612 +
3613 +struct TEXTMETRICW
3614 +{
3615 + LONG tmHeight;
3616 + LONG tmAscent;
3617 + LONG tmDescent;
3618 + LONG tmInternalLeading;
3619 + LONG tmExternalLeading;
3620 + LONG tmAveCharWidth;
3621 + LONG tmMaxCharWidth;
3622 + LONG tmWeight;
3623 + LONG tmOverhang;
3624 + LONG tmDigitizedAspectX;
3625 + LONG tmDigitizedAspectY;
3626 + WCHAR tmFirstChar;
3627 + WCHAR tmLastChar;
3628 + WCHAR tmDefaultChar;
3629 + WCHAR tmBreakChar;
3630 + BYTE tmItalic;
3631 + BYTE tmUnderlined;
3632 + BYTE tmStruckOut;
3633 + BYTE tmPitchAndFamily;
3634 + BYTE tmCharSet;
3635 +}
3636 +alias TEXTMETRICW*PTEXTMETRICW, NPTEXTMETRICW, LPTEXTMETRICW;
3637 +
3638 +struct RGNDATAHEADER
3639 +{
3640 + DWORD dwSize;
3641 + DWORD iType;
3642 + DWORD nCount;
3643 + DWORD nRgnSize;
3644 + RECT rcBound;
3645 +}
3646 +alias RGNDATAHEADER*PRGNDATAHEADER;
3647 +
3648 +struct RGNDATA
3649 +{
3650 + RGNDATAHEADER rdh;
3651 + char[1] Buffer;
3652 +}
3653 +alias RGNDATA*PRGNDATA, NPRGNDATA, LPRGNDATA;
3654 +
3655 +/* for GetRandomRgn */
3656 +const SYSRGN=4;
3657 +struct GCP_RESULTSA
3658 +{
3659 + DWORD lStructSize;
3660 + LPSTR lpOutString;
3661 + UINT*lpOrder;
3662 + INT*lpDx;
3663 + INT*lpCaretPos;
3664 + LPSTR lpClass;
3665 + LPWSTR lpGlyphs;
3666 + UINT nGlyphs;
3667 + UINT nMaxFit;
3668 +}
3669 +alias GCP_RESULTSA*LPGCP_RESULTSA;
3670 +
3671 +struct GCP_RESULTSW
3672 +{
3673 + DWORD lStructSize;
3674 + LPWSTR lpOutString;
3675 + UINT*lpOrder;
3676 + INT*lpDx;
3677 + INT*lpCaretPos;
3678 + LPWSTR lpClass;
3679 + LPWSTR lpGlyphs;
3680 + UINT nGlyphs;
3681 + UINT nMaxFit;
3682 +}
3683 +alias GCP_RESULTSW*LPGCP_RESULTSW;
3684 +
3685 +struct GLYPHMETRICS
3686 +{
3687 + UINT gmBlackBoxX;
3688 + UINT gmBlackBoxY;
3689 + POINT gmptGlyphOrigin;
3690 + short gmCellIncX;
3691 + short gmCellIncY;
3692 +}
3693 +alias GLYPHMETRICS*LPGLYPHMETRICS;
3694 +
3695 +static
3696 +
3697 +if (_WIN32_WINNT >= 0x0500)
3698 +{
3699 + struct WCRANGE
3700 + {
3701 + WCHAR wcLow;
3702 + USHORT cGlyphs;
3703 + }
3704 + alias WCRANGE*PWCRANGE, LPWCRANGE;
3705 +
3706 + struct GLYPHSET
3707 + {
3708 + DWORD cbThis;
3709 + DWORD flAccel;
3710 + DWORD cGlyphsSupported;
3711 + DWORD cRanges;
3712 + WCRANGE[1] ranges;
3713 + }
3714 + alias GLYPHSET*PGLYPHSET, LPGLYPHSET;
3715 +
3716 + const DWORD GS_8BIT_INDICES = 0x00000001;
3717 +}
3718 +
3719 +struct KERNINGPAIR
3720 +{
3721 + WORD wFirst;
3722 + WORD wSecond;
3723 + int iKernAmount;
3724 +}
3725 +alias KERNINGPAIR*LPKERNINGPAIR;
3726 +
3727 +struct FIXED
3728 +{
3729 + WORD fract;
3730 + short value;
3731 +}
3732 +
3733 +struct MAT2
3734 +{
3735 + FIXED eM11;
3736 + FIXED eM12;
3737 + FIXED eM21;
3738 + FIXED eM22;
3739 +}
3740 +alias MAT2*LPMAT2;
3741 +
3742 +struct OUTLINETEXTMETRICA
3743 +{
3744 + UINT otmSize;
3745 + TEXTMETRICA otmTextMetrics;
3746 + BYTE otmFiller;
3747 + PANOSE otmPanoseNumber;
3748 + UINT otmfsSelection;
3749 + UINT otmfsType;
3750 + int otmsCharSlopeRise;
3751 + int otmsCharSlopeRun;
3752 + int otmItalicAngle;
3753 + UINT otmEMSquare;
3754 + int otmAscent;
3755 + int otmDescent;
3756 + UINT otmLineGap;
3757 + UINT otmsCapEmHeight;
3758 + UINT otmsXHeight;
3759 + RECT otmrcFontBox;
3760 + int otmMacAscent;
3761 + int otmMacDescent;
3762 + UINT otmMacLineGap;
3763 + UINT otmusMinimumPPEM;
3764 + POINT otmptSubscriptSize;
3765 + POINT otmptSubscriptOffset;
3766 + POINT otmptSuperscriptSize;
3767 + POINT otmptSuperscriptOffset;
3768 + UINT otmsStrikeoutSize;
3769 + int otmsStrikeoutPosition;
3770 + int otmsUnderscoreSize;
3771 + int otmsUnderscorePosition;
3772 + PSTR otmpFamilyName;
3773 + PSTR otmpFaceName;
3774 + PSTR otmpStyleName;
3775 + PSTR otmpFullName;
3776 +}
3777 +alias OUTLINETEXTMETRICA*POUTLINETEXTMETRICA, NPOUTLINETEXTMETRICA, LPOUTLINETEXTMETRICA;
3778 +
3779 +struct OUTLINETEXTMETRICW
3780 +{
3781 + UINT otmSize;
3782 + TEXTMETRICW otmTextMetrics;
3783 + BYTE otmFiller;
3784 + PANOSE otmPanoseNumber;
3785 + UINT otmfsSelection;
3786 + UINT otmfsType;
3787 + int otmsCharSlopeRise;
3788 + int otmsCharSlopeRun;
3789 + int otmItalicAngle;
3790 + UINT otmEMSquare;
3791 + int otmAscent;
3792 + int otmDescent;
3793 + UINT otmLineGap;
3794 + UINT otmsCapEmHeight;
3795 + UINT otmsXHeight;
3796 + RECT otmrcFontBox;
3797 + int otmMacAscent;
3798 + int otmMacDescent;
3799 + UINT otmMacLineGap;
3800 + UINT otmusMinimumPPEM;
3801 + POINT otmptSubscriptSize;
3802 + POINT otmptSubscriptOffset;
3803 + POINT otmptSuperscriptSize;
3804 + POINT otmptSuperscriptOffset;
3805 + UINT otmsStrikeoutSize;
3806 + int otmsStrikeoutPosition;
3807 + int otmsUnderscoreSize;
3808 + int otmsUnderscorePosition;
3809 + PSTR otmpFamilyName;
3810 + PSTR otmpFaceName;
3811 + PSTR otmpStyleName;
3812 + PSTR otmpFullName;
3813 +}
3814 +alias OUTLINETEXTMETRICW*POUTLINETEXTMETRICW, NPOUTLINETEXTMETRICW, LPOUTLINETEXTMETRICW;
3815 +
3816 +struct RASTERIZER_STATUS
3817 +{
3818 + short nSize;
3819 + short wFlags;
3820 + short nLanguageID;
3821 +}
3822 +alias RASTERIZER_STATUS*LPRASTERIZER_STATUS;
3823 +
3824 +struct POLYTEXTA
3825 +{
3826 + int x;
3827 + int y;
3828 + UINT n;
3829 + LPCSTR lpstr;
3830 + UINT uiFlags;
3831 + RECT rcl;
3832 + int*pdx;
3833 +}
3834 +alias POLYTEXTA*PPOLYTEXTA, NPPOLYTEXTA, LPPOLYTEXTA;
3835 +
3836 +struct POLYTEXTW
3837 +{
3838 + int x;
3839 + int y;
3840 + UINT n;
3841 + LPCWSTR lpstr;
3842 + UINT uiFlags;
3843 + RECT rcl;
3844 + int*pdx;
3845 +}
3846 +alias POLYTEXTW*PPOLYTEXTW, NPPOLYTEXTW, LPPOLYTEXTW;
3847 +
3848 +struct PIXELFORMATDESCRIPTOR
3849 +{
3850 + WORD nSize;
3851 + WORD nVersion;
3852 + DWORD dwFlags;
3853 + BYTE iPixelType;
3854 + BYTE cColorBits;
3855 + BYTE cRedBits;
3856 + BYTE cRedShift;
3857 + BYTE cGreenBits;
3858 + BYTE cGreenShift;
3859 + BYTE cBlueBits;
3860 + BYTE cBlueShift;
3861 + BYTE cAlphaBits;
3862 + BYTE cAlphaShift;
3863 + BYTE cAccumBits;
3864 + BYTE cAccumRedBits;
3865 + BYTE cAccumGreenBits;
3866 + BYTE cAccumBlueBits;
3867 + BYTE cAccumAlphaBits;
3868 + BYTE cDepthBits;
3869 + BYTE cStencilBits;
3870 + BYTE cAuxBuffers;
3871 + BYTE iLayerType;
3872 + BYTE bReserved;
3873 + DWORD dwLayerMask;
3874 + DWORD dwVisibleMask;
3875 + DWORD dwDamageMask;
3876 +}
3877 +alias PIXELFORMATDESCRIPTOR*PPIXELFORMATDESCRIPTOR, LPPIXELFORMATDESCRIPTOR;
3878 +
3879 +struct METAFILEPICT
3880 +{
3881 + LONG mm;
3882 + LONG xExt;
3883 + LONG yExt;
3884 + HMETAFILE hMF;
3885 +}
3886 +alias METAFILEPICT*LPMETAFILEPICT;
3887 +
3888 +struct LOCALESIGNATURE
3889 +{
3890 + DWORD[4] lsUsb;
3891 + DWORD[2] lsCsbDefault;
3892 + DWORD[2] lsCsbSupported;
3893 +}
3894 +alias LOCALESIGNATURE*PLOCALESIGNATURE, LPLOCALESIGNATURE;
3895 +
3896 +alias LONG LCSTYPE; /* What this for? */
3897 +
3898 +align (4) :
3899 +struct NEWTEXTMETRICA
3900 +{
3901 + LONG tmHeight;
3902 + LONG tmAscent;
3903 + LONG tmDescent;
3904 + LONG tmInternalLeading;
3905 + LONG tmExternalLeading;
3906 + LONG tmAveCharWidth;
3907 + LONG tmMaxCharWidth;
3908 + LONG tmWeight;
3909 + LONG tmOverhang;
3910 + LONG tmDigitizedAspectX;
3911 + LONG tmDigitizedAspectY;
3912 + BYTE tmFirstChar;
3913 + BYTE tmLastChar;
3914 + BYTE tmDefaultChar;
3915 + BYTE tmBreakChar;
3916 + BYTE tmItalic;
3917 + BYTE tmUnderlined;
3918 + BYTE tmStruckOut;
3919 + BYTE tmPitchAndFamily;
3920 + BYTE tmCharSet;
3921 + DWORD ntmFlags;
3922 + UINT ntmSizeEM;
3923 + UINT ntmCellHeight;
3924 + UINT ntmAvgWidth;
3925 +}
3926 +alias NEWTEXTMETRICA*PNEWTEXTMETRICA, NPNEWTEXTMETRICA, LPNEWTEXTMETRICA;
3927 +
3928 +struct NEWTEXTMETRICW
3929 +{
3930 + LONG tmHeight;
3931 + LONG tmAscent;
3932 + LONG tmDescent;
3933 + LONG tmInternalLeading;
3934 + LONG tmExternalLeading;
3935 + LONG tmAveCharWidth;
3936 + LONG tmMaxCharWidth;
3937 + LONG tmWeight;
3938 + LONG tmOverhang;
3939 + LONG tmDigitizedAspectX;
3940 + LONG tmDigitizedAspectY;
3941 + WCHAR tmFirstChar;
3942 + WCHAR tmLastChar;
3943 + WCHAR tmDefaultChar;
3944 + WCHAR tmBreakChar;
3945 + BYTE tmItalic;
3946 + BYTE tmUnderlined;
3947 + BYTE tmStruckOut;
3948 + BYTE tmPitchAndFamily;
3949 + BYTE tmCharSet;
3950 + DWORD ntmFlags;
3951 + UINT ntmSizeEM;
3952 + UINT ntmCellHeight;
3953 + UINT ntmAvgWidth;
3954 +}
3955 +alias NEWTEXTMETRICW*PNEWTEXTMETRICW, NPNEWTEXTMETRICW, LPNEWTEXTMETRICW;
3956 +
3957 +align :
3958 +struct NEWTEXTMETRICEXA
3959 +{
3960 + NEWTEXTMETRICA ntmTm;
3961 + FONTSIGNATURE ntmFontSig;
3962 +}
3963 +
3964 +struct NEWTEXTMETRICEXW
3965 +{
3966 + NEWTEXTMETRICW ntmTm;
3967 + FONTSIGNATURE ntmFontSig;
3968 +}
3969 +
3970 +struct PELARRAY
3971 +{
3972 + LONG paXCount;
3973 + LONG paYCount;
3974 + LONG paXExt;
3975 + LONG paYExt;
3976 + BYTE paRGBs;
3977 +}
3978 +alias PELARRAY*PPELARRAY, NPPELARRAY, LPPELARRAY;
3979 +
3980 +struct ENUMLOGFONTA
3981 +{
3982 + LOGFONTA elfLogFont;
3983 + BYTE[LF_FULLFACESIZE] elfFullName;
3984 + BYTE[LF_FACESIZE] elfStyle;
3985 +}
3986 +alias ENUMLOGFONTA*LPENUMLOGFONTA;
3987 +
3988 +struct ENUMLOGFONTW
3989 +{
3990 + LOGFONTW elfLogFont;
3991 + WCHAR[LF_FULLFACESIZE] elfFullName;
3992 + WCHAR[LF_FACESIZE] elfStyle;
3993 +}
3994 +alias ENUMLOGFONTW*LPENUMLOGFONTW;
3995 +
3996 +struct ENUMLOGFONTEXA
3997 +{
3998 + LOGFONTA elfLogFont;
3999 + BYTE[LF_FULLFACESIZE] elfFullName;
4000 + BYTE[LF_FACESIZE] elfStyle;
4001 + BYTE[LF_FACESIZE] elfScript;
4002 +}
4003 +alias ENUMLOGFONTEXA*LPENUMLOGFONTEXA;
4004 +
4005 +struct ENUMLOGFONTEXW
4006 +{
4007 + LOGFONTW elfLogFont;
4008 + WCHAR[LF_FULLFACESIZE] elfFullName;
4009 + WCHAR[LF_FACESIZE] elfStyle;
4010 + WCHAR[LF_FACESIZE] elfScript;
4011 +}
4012 +alias ENUMLOGFONTEXW*LPENUMLOGFONTEXW;
4013 +
4014 +struct POINTFX
4015 +{
4016 + FIXED x;
4017 + FIXED y;
4018 +}
4019 +alias POINTFX*LPPOINTFX;
4020 +
4021 +struct TTPOLYCURVE
4022 +{
4023 + WORD wType;
4024 + WORD cpfx;
4025 + POINTFX[1] apfx;
4026 +}
4027 +alias TTPOLYCURVE*LPTTPOLYCURVE;
4028 +
4029 +struct TTPOLYGONHEADER
4030 +{
4031 + DWORD cb;
4032 + DWORD dwType;
4033 + POINTFX pfxStart;
4034 +}
4035 +alias TTPOLYGONHEADER*LPTTPOLYGONHEADER;
4036 +
4037 +struct POINTFLOAT
4038 +{
4039 + FLOAT x;
4040 + FLOAT y;
4041 +}
4042 +alias POINTFLOAT*PPOINTFLOAT;
4043 +
4044 +struct GLYPHMETRICSFLOAT
4045 +{
4046 + FLOAT gmfBlackBoxX;
4047 + FLOAT gmfBlackBoxY;
4048 + POINTFLOAT gmfptGlyphOrigin;
4049 + FLOAT gmfCellIncX;
4050 + FLOAT gmfCellIncY;
4051 +}
4052 +alias GLYPHMETRICSFLOAT*PGLYPHMETRICSFLOAT, LPGLYPHMETRICSFLOAT;
4053 +
4054 +struct LAYERPLANEDESCRIPTOR
4055 +{
4056 + WORD nSize;
4057 + WORD nVersion;
4058 + DWORD dwFlags;
4059 + BYTE iPixelType;
4060 + BYTE cColorBits;
4061 + BYTE cRedBits;
4062 + BYTE cRedShift;
4063 + BYTE cGreenBits;
4064 + BYTE cGreenShift;
4065 + BYTE cBlueBits;
4066 + BYTE cBlueShift;
4067 + BYTE cAlphaBits;
4068 + BYTE cAlphaShift;
4069 + BYTE cAccumBits;
4070 + BYTE cAccumRedBits;
4071 + BYTE cAccumGreenBits;
4072 + BYTE cAccumBlueBits;
4073 + BYTE cAccumAlphaBits;
4074 + BYTE cDepthBits;
4075 + BYTE cStencilBits;
4076 + BYTE cAuxBuffers;
4077 + BYTE iLayerPlane;
4078 + BYTE bReserved;
4079 + COLORREF crTransparent;
4080 +}
4081 +alias LAYERPLANEDESCRIPTOR*PLAYERPLANEDESCRIPTOR, LPLAYERPLANEDESCRIPTOR;
4082 +
4083 +struct BLENDFUNCTION
4084 +{
4085 + BYTE BlendOp;
4086 + BYTE BlendFlags;
4087 + BYTE SourceConstantAlpha;
4088 + BYTE AlphaFormat;
4089 +}
4090 +alias BLENDFUNCTION*PBLENDFUNCTION, LPBLENDFUNCTION;
4091 +
4092 +const MM_MAX_NUMAXES = 16;
4093 +
4094 +struct DESIGNVECTOR
4095 +{
4096 + DWORD dvReserved;
4097 + DWORD dvNumAxes;
4098 + LONG[MM_MAX_NUMAXES] dvValues;
4099 +}
4100 +alias DESIGNVECTOR*PDESIGNVECTOR, LPDESIGNVECTOR;
4101 +const STAMP_DESIGNVECTOR = 0x8000000 + 'd' + ('v' << 8);
4102 +const STAMP_AXESLIST = 0x8000000 + 'a' + ('l' << 8);
4103 +
4104 +static
4105 +
4106 +if (_WIN32_WINNT >= 0x0500)
4107 +{
4108 + const MM_MAX_AXES_NAMELEN = 16;
4109 +
4110 + struct AXISINFOA
4111 + {
4112 + LONG axMinValue;
4113 + LONG axMaxValue;
4114 + BYTE[MM_MAX_AXES_NAMELEN] axAxisName;
4115 + }
4116 + alias AXISINFOA*PAXISINFOA, LPAXISINFOA;
4117 +
4118 + struct AXISINFOW
4119 + {
4120 + LONG axMinValue;
4121 + LONG axMaxValue;
4122 + WCHAR[MM_MAX_AXES_NAMELEN] axAxisName;
4123 + }
4124 + alias AXISINFOW*PAXISINFOW, LPAXISINFOW;
4125 +
4126 + version (Unicode)
4127 + {
4128 + alias AXISINFOW AXISINFO;
4129 + alias PAXISINFOW PAXISINFO;
4130 + alias LPAXISINFOW LPAXISINFO;
4131 + }
4132 + else
4133 + {
4134 + alias AXISINFOA AXISINFO;
4135 + alias PAXISINFOA PAXISINFO;
4136 + alias LPAXISINFOA LPAXISINFO;
4137 + }
4138 +
4139 + struct AXESLISTA
4140 + {
4141 + DWORD axlReserved;
4142 + DWORD axlNumAxes;
4143 + AXISINFOA[MM_MAX_NUMAXES] axlAxisInfo;
4144 + }
4145 + alias AXESLISTA*PAXESLISTA, LPAXESLISTA;
4146 +
4147 + struct AXESLISTW
4148 + {
4149 + DWORD axlReserved;
4150 + DWORD axlNumAxes;
4151 + AXISINFOW[MM_MAX_NUMAXES] axlAxisInfo;
4152 + }
4153 + alias AXESLISTW*PAXESLISTW, LPAXESLISTW;
4154 +
4155 + version (Unicode)
4156 + {
4157 + alias AXESLISTW AXESLIST;
4158 + alias PAXESLISTW PAXESLIST;
4159 + alias LPAXESLISTW LPAXESLIST;
4160 + }
4161 + else
4162 + {
4163 + alias AXESLISTA AXESLIST;
4164 + alias PAXESLISTA PAXESLIST;
4165 + alias LPAXESLISTA LPAXESLIST;
4166 + }
4167 +
4168 + struct ENUMLOGFONTEXDVA
4169 + {
4170 + ENUMLOGFONTEXA elfEnumLogfontEx;
4171 + DESIGNVECTOR elfDesignVector;
4172 + }
4173 + alias ENUMLOGFONTEXDVA*PENUMLOGFONTEXDVA, LPENUMLOGFONTEXDVA;
4174 +
4175 + struct ENUMLOGFONTEXDVW
4176 + {
4177 + ENUMLOGFONTEXW elfEnumLogfontEx;
4178 + DESIGNVECTOR elfDesignVector;
4179 + }
4180 + alias ENUMLOGFONTEXDVW*PENUMLOGFONTEXDVW, LPENUMLOGFONTEXDVW;
4181 +
4182 + HFONT CreateFontIndirectExA(ENUMLOGFONTEXDVA*);
4183 +
4184 + HFONT CreateFontIndirectExW(ENUMLOGFONTEXDVW*);
4185 +
4186 + version (Unicode)
4187 + alias CreateFontIndirectExW CreateFontIndirectEx;
4188 + else
4189 + alias CreateFontIndirectExA CreateFontIndirectEx;
4190 +
4191 + struct ENUMTEXTMETRICA
4192 + {
4193 + NEWTEXTMETRICEXA etmNewTextMetricEx;
4194 + AXESLISTA etmAxesList;
4195 + }
4196 + alias ENUMTEXTMETRICA*PENUMTEXTMETRICA, LPENUMTEXTMETRICA;
4197 +
4198 + struct ENUMTEXTMETRICW
4199 + {
4200 + NEWTEXTMETRICEXW etmNewTextMetricEx;
4201 + AXESLISTW etmAxesList;
4202 + }
4203 + alias ENUMTEXTMETRICW*PENUMTEXTMETRICW, LPENUMTEXTMETRICW;
4204 +
4205 + version (Unicode)
4206 + {
4207 + alias ENUMTEXTMETRICW ENUMTEXTMETRIC;
4208 + alias PENUMTEXTMETRICW PENUMTEXTMETRIC;
4209 + alias LPENUMTEXTMETRICW LPENUMTEXTMETRIC;
4210 + }
4211 + else
4212 + {
4213 + alias ENUMTEXTMETRICA ENUMTEXTMETRIC;
4214 + alias PENUMTEXTMETRICA PENUMTEXTMETRIC;
4215 + alias LPENUMTEXTMETRICA LPENUMTEXTMETRIC;
4216 + }
4217 +} /* _WIN32_WINNT >= 0x0500 */
4218 +
4219 +struct GRADIENT_TRIANGLE
4220 +{
4221 + ULONG Vertex1;
4222 + ULONG Vertex2;
4223 + ULONG Vertex3;
4224 +}
4225 +alias GRADIENT_TRIANGLE*PGRADIENT_TRIANGLE, LPGRADIENT_TRIANGLE;
4226 +
4227 +struct GRADIENT_RECT
4228 +{
4229 + ULONG UpperLeft;
4230 + ULONG LowerRight;
4231 +}
4232 +alias GRADIENT_RECT*PGRADIENT_RECT, LPGRADIENT_RECT;
4233 +
4234 +struct DISPLAY_DEVICEA
4235 +{
4236 + DWORD cb;
4237 + CHAR[32] DeviceName;
4238 + CHAR[128] DeviceString;
4239 + DWORD StateFlags;
4240 + CHAR[128] DeviceID;
4241 + CHAR[128] DeviceKey;
4242 +}
4243 +alias DISPLAY_DEVICEA*PDISPLAY_DEVICEA, LPDISPLAY_DEVICEA;
4244 +
4245 +struct DISPLAY_DEVICEW
4246 +{
4247 + DWORD cb;
4248 + WCHAR[32] DeviceName;
4249 + WCHAR[128] DeviceString;
4250 + DWORD StateFlags;
4251 + WCHAR[128] DeviceID;
4252 + WCHAR[128] DeviceKey;
4253 +}
4254 +alias DISPLAY_DEVICEW*PDISPLAY_DEVICEW, LPDISPLAY_DEVICEW;
4255 +
4256 +static
4257 +
4258 +if (WINVER >= 0x0400)
4259 +{
4260 + struct DRAWPATRECT
4261 + {
4262 + POINT ptPosition;
4263 + POINT ptSize;
4264 + WORD wStyle;
4265 + WORD wPattern;
4266 + }
4267 + alias DRAWPATRECT*PDRAWPATRECT;
4268 +}
4269 +
4270 +// ---------
4271 +// Callbacks
4272 +
4273 +alias BOOL function(HDC, int) ABORTPROC;
4274 +
4275 +alias int function(HDC, HANDLETABLE*, METARECORD*, int, LPARAM) MFENUMPROC;
4276 +
4277 +alias int function(HDC, HANDLETABLE*, CPtr!(ENHMETARECORD), int, LPARAM) ENHMFENUMPROC;
4278 +
4279 +alias int function(CPtr!(LOGFONTA), CPtr!(TEXTMETRICA), DWORD, LPARAM) FONTENUMPROCA, OLDFONTENUMPROCA;
4280 +
4281 +alias int function(CPtr!(LOGFONTW), CPtr!(TEXTMETRICW), DWORD, LPARAM) FONTENUMPROCW, OLDFONTENUMPROCW;
4282 +
4283 +alias int function(LPSTR, LPARAM) ICMENUMPROCA;
4284 +
4285 +alias int function(LPWSTR, LPARAM) ICMENUMPROCW;
4286 +
4287 +alias void function(LPVOID, LPARAM) GOBJENUMPROC;
4288 +
4289 +alias void function(int, int, LPARAM) LINEDDAPROC;
4290 +
4291 +alias UINT function(HWND, HMODULE, LPDEVMODEA, LPSTR, LPSTR, LPDEVMODEA, LPSTR, UINT) LPFNDEVMODE;
4292 +
4293 +alias DWORD function(LPSTR, LPSTR, UINT, LPSTR, LPDEVMODEA) LPFNDEVCAPS;
4294 +
4295 +// ---------
4296 +// C Macros.
4297 +// FIXME:
4298 +// POINTS MAKEPOINTS(DWORD dwValue) #define MAKEPOINTS(l) (*((POINTS*)&(l)))
4299 +DWORD MAKEROP4(DWORD fore, DWORD back)
4300 +{
4301 + return ((back << 8) & 0xFF000000) | (fore);
4302 +}
4303 +
4304 +
4305 +COLORREF CMYK(BYTE c, BYTE m, BYTE y, BYTE k)
4306 +{
4307 + return cast(COLORREF) (k | (y << 8) | (m << 16) | (c << 24));
4308 +}
4309 +
4310 +
4311 +BYTE GetCValue(COLORREF cmyk)
4312 +{
4313 + return cast(BYTE) (cmyk >> 24);
4314 +}
4315 +
4316 +
4317 +BYTE GetMValue(COLORREF cmyk)
4318 +{
4319 + return cast(BYTE) (cmyk >> 16);
4320 +}
4321 +
4322 +
4323 +BYTE GetYValue(COLORREF cmyk)
4324 +{
4325 + return cast(BYTE) (cmyk >> 8);
4326 +}
4327 +
4328 +
4329 +BYTE GetKValue(COLORREF cmyk)
4330 +{
4331 + return cast(BYTE) cmyk;
4332 +}
4333 +
4334 +
4335 +COLORREF RGB(BYTE r, BYTE g, BYTE b)
4336 +{
4337 + return cast(COLORREF) (r | (g << 8) | (b << 16));
4338 +}
4339 +
4340 +
4341 +BYTE GetRValue(COLORREF c)
4342 +{
4343 + return cast(BYTE) c;
4344 +}
4345 +
4346 +
4347 +BYTE GetGValue(COLORREF c)
4348 +{
4349 + return cast(BYTE) (c >> 8);
4350 +}
4351 +
4352 +
4353 +BYTE GetBValue(COLORREF c)
4354 +{
4355 + return cast(BYTE) (c >> 16);
4356 +}
4357 +
4358 +
4359 +COLORREF PALETTEINDEX(WORD i)
4360 +{
4361 + return 0x01000000 | cast(COLORREF) i;
3400 4362 }
3401 -alias _TRIVERTEX TRIVERTEX;
3402 -alias _TRIVERTEX* PTRIVERTEX;
3403 -alias _TRIVERTEX* LPTRIVERTEX;
3404 4363
3405 -struct _GRADIENT_TRIANGLE {
3406 - ULONG Vertex1;
3407 - ULONG Vertex2;
3408 - ULONG Vertex3;
4364 +
4365 +COLORREF PALETTERGB(BYTE r, BYTE g, BYTE b)
4366 +{
4367 + return 0x02000000 | RGB(r, g, b);
3409 4368 }
3410 -alias _GRADIENT_TRIANGLE GRADIENT_TRIANGLE;
3411 -alias _GRADIENT_TRIANGLE* PGRADIENT_TRIANGLE;
3412 -alias _GRADIENT_TRIANGLE* LPGRADIENT_TRIANGLE;
3413 -
3414 -struct _GRADIENT_RECT {
3415 - ULONG UpperLeft;
3416 - ULONG LowerRight;
3417 -}
3418 -alias _GRADIENT_RECT GRADIENT_RECT;
3419 -alias _GRADIENT_RECT* PGRADIENT_RECT;
3420 -alias _GRADIENT_RECT* LPGRADIENT_RECT;
3421 -
3422 -struct _BLENDFUNCTION {
3423 - BYTE BlendOp;
3424 - BYTE BlendFlags;
3425 - BYTE SourceConstantAlpha;
3426 - BYTE AlphaFormat;
4369 +
4370 +
4371 +extern (Windows) {
4372 +int AbortDoc(HDC);
4373 +
4374 +BOOL AbortPath(HDC);
4375 +
4376 +int AddFontResourceA(LPCSTR);
4377 +
4378 +int AddFontResourceW(LPCWSTR);
4379 +
4380 +BOOL AngleArc(HDC, int, int, DWORD, FLOAT, FLOAT);
4381 +
4382 +BOOL AnimatePalette(HPALETTE, UINT, UINT, CPtr!(PALETTEENTRY));
4383 +
4384 +BOOL Arc(HDC, int, int, int, int, int, int, int, int);
4385 +
4386 +BOOL ArcTo(HDC, int, int, int, int, int, int, int, int);
4387 +
4388 +BOOL BeginPath(HDC);
4389 +
4390 +BOOL BitBlt(HDC, int, int, int, int, HDC, int, int, DWORD);
4391 +
4392 +BOOL CancelDC(HDC);
4393 +
4394 +BOOL CheckColorsInGamut(HDC, PVOID, PVOID, DWORD);
4395 +
4396 +BOOL Chord(HDC, int, int, int, int, int, int, int, int);
4397 +
4398 +int ChoosePixelFormat(HDC, CPtr!(PIXELFORMATDESCRIPTOR));
4399 +
4400 +HENHMETAFILE CloseEnhMetaFile(HDC);
4401 +
4402 +BOOL CloseFigure(HDC);
4403 +
4404 +HMETAFILE CloseMetaFile(HDC);
4405 +
4406 +BOOL ColorMatchToTarget(HDC, HDC, DWORD);
4407 +
4408 +BOOL ColorCorrectPalette(HDC, HPALETTE, DWORD, DWORD);
4409 +
4410 +int CombineRgn(HRGN, HRGN, HRGN, int);
4411 +
4412 +BOOL CombineTransform(LPXFORM, CPtr!(XFORM), CPtr!(XFORM));
4413 +
4414 +HENHMETAFILE CopyEnhMetaFileA(HENHMETAFILE, LPCSTR);
4415 +
4416 +HENHMETAFILE CopyEnhMetaFileW(HENHMETAFILE, LPCWSTR);
4417 +
4418 +HMETAFILE CopyMetaFileA(HMETAFILE, LPCSTR);
4419 +
4420 +HMETAFILE CopyMetaFileW(HMETAFILE, LPCWSTR);
4421 +
4422 +HBITMAP CreateBitmap(int, int, UINT, UINT, PCVOID);
4423 +
4424 +HBITMAP CreateBitmapIndirect(CPtr!(BITMAP));
4425 +
4426 +HBRUSH CreateBrushIndirect(CPtr!(LOGBRUSH));
4427 +
4428 +HCOLORSPACE CreateColorSpaceA(LPLOGCOLORSPACEA);
4429 +
4430 +HCOLORSPACE CreateColorSpaceW(LPLOGCOLORSPACEW);
4431 +
4432 +HBITMAP CreateCompatibleBitmap(HDC, int, int);
4433 +
4434 +HDC CreateCompatibleDC(HDC);
4435 +
4436 +HDC CreateDCA(LPCSTR, LPCSTR, LPCSTR, CPtr!(DEVMODEA));
4437 +
4438 +HDC CreateDCW(LPCWSTR, LPCWSTR, LPCWSTR, CPtr!(DEVMODEW));
4439 +
4440 +HBITMAP CreateDIBitmap(HDC, CPtr!(BITMAPINFOHEADER), DWORD, PCVOID, CPtr!(BITMAPINFO), UINT);
4441 +
4442 +HBRUSH CreateDIBPatternBrush(HGLOBAL, UINT);
4443 +
4444 +HBRUSH CreateDIBPatternBrushPt(PCVOID, UINT);
4445 +
4446 +HBITMAP CreateDIBSection(HDC, CPtr!(BITMAPINFO), UINT, void**, HANDLE, DWORD);
4447 +
4448 +HBITMAP CreateDiscardableBitmap(HDC, int, int);
4449 +
4450 +HRGN CreateEllipticRgn(int, int, int, int);
4451 +
4452 +HRGN CreateEllipticRgnIndirect(LPCRECT);
4453 +
4454 +HDC CreateEnhMetaFileA(HDC, LPCSTR, LPCRECT, LPCSTR);
4455 +
4456 +HDC CreateEnhMetaFileW(HDC, LPCWSTR, LPCRECT, LPCWSTR);
4457 +
4458 +HFONT CreateFontA(int, int, int, int, int, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPCSTR);
4459 +
4460 +HFONT CreateFontW(int, int, int, int, int, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPCWSTR);
4461 +
4462 +HFONT CreateFontIndirectA(CPtr!(LOGFONTA));
4463 +
4464 +HFONT CreateFontIndirectW(CPtr!(LOGFONTW));
4465 +
4466 +HPALETTE CreateHalftonePalette(HDC);
4467 +
4468 +HBRUSH CreateHatchBrush(int, COLORREF);
4469 +
4470 +HDC CreateICA(LPCSTR, LPCSTR, LPCSTR, CPtr!(DEVMODEA));
4471 +
4472 +HDC CreateICW(LPCWSTR, LPCWSTR, LPCWSTR, CPtr!(DEVMODEW));
4473 +
4474 +HDC CreateMetaFileA(LPCSTR);
4475 +
4476 +HDC CreateMetaFileW(LPCWSTR);
4477 +
4478 +HPALETTE CreatePalette(CPtr!(LOGPALETTE));
4479 +
4480 +HBRUSH CreatePatternBrush(HBITMAP);
4481 +
4482 +HPEN CreatePen(int, int, COLORREF);
4483 +
4484 +HPEN CreatePenIndirect(CPtr!(LOGPEN));
4485 +
4486 +HRGN CreatePolygonRgn(CPtr!(POINT), int, int);
4487 +
4488 +HRGN CreatePolyPolygonRgn(CPtr!(POINT), CPtr!(INT), int, int);
4489 +
4490 +HRGN CreateRectRgn(int, int, int, int);
4491 +
4492 +HRGN CreateRectRgnIndirect(LPCRECT);
4493 +
4494 +HRGN CreateRoundRectRgn(int, int, int, int, int, int);
4495 +
4496 +BOOL CreateScalableFontResourceA(DWORD, LPCSTR, LPCSTR, LPCSTR);
4497 +
4498 +BOOL CreateScalableFontResourceW(DWORD, LPCWSTR, LPCWSTR, LPCWSTR);
4499 +
4500 +HBRUSH CreateSolidBrush(COLORREF);
4501 +
4502 +BOOL DeleteColorSpace(HCOLORSPACE);
4503 +
4504 +BOOL DeleteDC(HDC);
4505 +
4506 +BOOL DeleteEnhMetaFile(HENHMETAFILE);
4507 +
4508 +BOOL DeleteMetaFile(HMETAFILE);
4509 +
4510 +BOOL DeleteObject(HGDIOBJ);
4511 +
4512 +int DescribePixelFormat(HDC, int, UINT, LPPIXELFORMATDESCRIPTOR);
4513 +
4514 +DWORD DeviceCapabilitiesA(LPCSTR, LPCSTR, WORD, LPSTR, CPtr!(DEVMODEA));
4515 +
4516 +DWORD DeviceCapabilitiesW(LPCWSTR, LPCWSTR, WORD, LPWSTR, CPtr!(DEVMODEW));
4517 +
4518 +BOOL DPtoLP(HDC, LPPOINT, int);
4519 +
4520 +int DrawEscape(HDC, int, int, LPCSTR);
4521 +
4522 +BOOL Ellipse(HDC, int, int, int, int);
4523 +
4524 +int EndDoc(HDC);
4525 +
4526 +int EndPage(HDC);
4527 +
4528 +BOOL EndPath(HDC);
4529 +
4530 +BOOL EnumEnhMetaFile(HDC, HENHMETAFILE, ENHMFENUMPROC, PVOID, LPCRECT);
4531 +
4532 +int EnumFontFamiliesA(HDC, LPCSTR, FONTENUMPROCA, LPARAM);
4533 +
4534 +int EnumFontFamiliesW(HDC, LPCWSTR, FONTENUMPROCW, LPARAM);
4535 +
4536 +int EnumFontFamiliesExA(HDC, PLOGFONTA, FONTENUMPROCA, LPARAM, DWORD);
4537 +
4538 +int EnumFontFamiliesExW(HDC, PLOGFONTW, FONTENUMPROCW, LPARAM, DWORD);
4539 +
4540 +int EnumFontsA(HDC, LPCSTR, FONTENUMPROCA, LPARAM);
4541 +
4542 +int EnumFontsW(HDC, LPCWSTR, FONTENUMPROCW, LPARAM);
4543 +
4544 +int EnumICMProfilesA(HDC, ICMENUMPROCA, LPARAM);
4545 +
4546 +int EnumICMProfilesW(HDC, ICMENUMPROCW, LPARAM);
4547 +
4548 +BOOL EnumMetaFile(HDC, HMETAFILE, MFENUMPROC, LPARAM);
4549 +
4550 +int EnumObjects(HDC, int, GOBJENUMPROC, LPARAM);
4551 +
4552 +BOOL EqualRgn(HRGN, HRGN);
4553 +
4554 +int Escape(HDC, int, int, LPCSTR, PVOID);
4555 +
4556 +int ExcludeClipRect(HDC, int, int, int, int);
4557 +
4558 +int ExcludeUpdateRgn(HDC, HWND);
4559 +
4560 +HPEN ExtCreatePen(DWORD, DWORD, CPtr!(LOGBRUSH), DWORD, CPtr!(DWORD));
4561 +
4562 +HRGN ExtCreateRegion(CPtr!(XFORM), DWORD, CPtr!(RGNDATA));
4563 +
4564 +int ExtEscape(HDC, int, int, LPCSTR, int, LPSTR);
4565 +
4566 +BOOL ExtFloodFill(HDC, int, int, COLORREF, UINT);
4567 +
4568 +int ExtSelectClipRgn(HDC, HRGN, int);
4569 +
4570 +BOOL ExtTextOutA(HDC, int, int, UINT, LPCRECT, LPCSTR, UINT, CPtr!(INT));
4571 +
4572 +BOOL ExtTextOutW(HDC, int, int, UINT, LPCRECT, LPCWSTR, UINT, CPtr!(INT));
4573 +
4574 +BOOL FillPath(HDC);
4575 +
4576 +int FillRect(HDC, LPCRECT, HBRUSH);
4577 +
4578 +int FillRgn(HDC, HRGN, HBRUSH);
4579 +
4580 +BOOL FixBrushOrgEx(HDC, int, int, LPPOINT);
4581 +
4582 +BOOL FlattenPath(HDC);
4583 +
4584 +BOOL FloodFill(HDC, int, int, COLORREF);
4585 +
4586 +BOOL FrameRgn(HDC, HRGN, HBRUSH, int, int);
4587 +
4588 +BOOL GdiComment(HDC, UINT, CPtr!(BYTE));
4589 +
4590 +BOOL GdiFlush();
4591 +
4592 +DWORD GdiGetBatchLimit();
4593 +
4594 +DWORD GdiSetBatchLimit(DWORD);
4595 +
4596 +int GetArcDirection(HDC);
4597 +
4598 +BOOL GetAspectRatioFilterEx(HDC, LPSIZE);
4599 +
4600 +LONG GetBitmapBits(HBITMAP, LONG, PVOID);
4601 +
4602 +BOOL GetBitmapDimensionEx(HBITMAP, LPSIZE);
4603 +
4604 +COLORREF GetBkColor(HDC);
4605 +
4606 +int GetBkMode(HDC);
4607 +
4608 +UINT GetBoundsRect(HDC, LPRECT, UINT);
4609 +
4610 +BOOL GetBrushOrgEx(HDC, LPPOINT);
4611 +
4612 +BOOL GetCharABCWidthsA(HDC, UINT, UINT, LPABC);
4613 +
4614 +BOOL GetCharABCWidthsW(HDC, UINT, UINT, LPABC);
4615 +
4616 +BOOL GetCharABCWidthsFloatA(HDC, UINT, UINT, LPABCFLOAT);
4617 +
4618 +BOOL GetCharABCWidthsFloatW(HDC, UINT, UINT, LPABCFLOAT);
4619 +
4620 +DWORD GetCharacterPlacementA(HDC, LPCSTR, int, int, LPGCP_RESULTSA, DWORD);
4621 +
4622 +DWORD GetCharacterPlacementW(HDC, LPCWSTR, int, int, LPGCP_RESULTSW, DWORD);
4623 +
4624 +BOOL GetCharWidth32A(HDC, UINT, UINT, LPINT);
4625 +
4626 +BOOL GetCharWidth32W(HDC, UINT, UINT, LPINT);
4627 +
4628 +BOOL GetCharWidthA(HDC, UINT, UINT, LPINT);
4629 +
4630 +BOOL GetCharWidthW(HDC, UINT, UINT, LPINT);
4631 +
4632 +BOOL GetCharWidthFloatA(HDC, UINT, UINT, PFLOAT);
4633 +
4634 +BOOL GetCharWidthFloatW(HDC, UINT, UINT, PFLOAT);
4635 +
4636 +int GetClipBox(HDC, LPRECT);
4637 +
4638 +int GetClipRgn(HDC, HRGN);
4639 +
4640 +BOOL GetColorAdjustment(HDC, LPCOLORADJUSTMENT);
4641 +
4642 +HANDLE GetColorSpace(HDC);
4643 +
4644 +HGDIOBJ GetCurrentObject(HDC, UINT);
4645 +
4646 +BOOL GetCurrentPositionEx(HDC, LPPOINT);
4647 +
4648 +HCURSOR GetCursor();
4649 +
4650 +BOOL GetDCOrgEx(HDC, LPPOINT);
4651 +
4652 +int GetDeviceCaps(HDC, int);
4653 +
4654 +BOOL GetDeviceGammaRamp(HDC, PVOID);
4655 +
4656 +UINT GetDIBColorTable(HDC, UINT, UINT, RGBQUAD*);
4657 +
4658 +int GetDIBits(HDC, HBITMAP, UINT, UINT, PVOID, LPBITMAPINFO, UINT);
4659 +
4660 +HENHMETAFILE GetEnhMetaFileA(LPCSTR);
4661 +
4662 +HENHMETAFILE GetEnhMetaFileW(LPCWSTR);
4663 +
4664 +UINT GetEnhMetaFileBits(HENHMETAFILE, UINT, LPBYTE);
4665 +
4666 +UINT GetEnhMetaFileDescriptionA(HENHMETAFILE, UINT, LPSTR);
4667 +
4668 +UINT GetEnhMetaFileDescriptionW(HENHMETAFILE, UINT, LPWSTR);
4669 +
4670 +UINT GetEnhMetaFileHeader(HENHMETAFILE, UINT, LPENHMETAHEADER);
4671 +
4672 +UINT GetEnhMetaFilePaletteEntries(HENHMETAFILE, UINT, LPPALETTEENTRY);
4673 +
4674 +UINT GetEnhMetaFilePixelFormat(HENHMETAFILE, DWORD, CPtr!(PIXELFORMATDESCRIPTOR));
4675 +
4676 +DWORD GetFontData(HDC, DWORD, DWORD, PVOID, DWORD);
4677 +
4678 +DWORD GetFontLanguageInfo(HDC);
4679 +
4680 +DWORD GetGlyphOutlineA(HDC, UINT, UINT, LPGLYPHMETRICS, DWORD, PVOID, CPtr!(MAT2));
4681 +
4682 +DWORD GetGlyphOutlineW(HDC, UINT, UINT, LPGLYPHMETRICS, DWORD, PVOID, CPtr!(MAT2));
4683 +
4684 +int GetGraphicsMode(HDC);
4685 +
4686 +BOOL GetICMProfileA(HDC, DWORD, LPSTR);
4687 +
4688 +BOOL GetICMProfileW(HDC, DWORD, LPWSTR);
4689 +
4690 +DWORD GetKerningPairsA(HDC, DWORD, LPKERNINGPAIR);
4691 +
4692 +DWORD GetKerningPairsW(HDC, DWORD, LPKERNINGPAIR);
4693 +
4694 +BOOL GetLogColorSpaceA(HCOLORSPACE, LPLOGCOLORSPACEA, DWORD);
4695 +
4696 +BOOL GetLogColorSpaceW(HCOLORSPACE, LPLOGCOLORSPACEW, DWORD);
4697 +
4698 +int GetMapMode(HDC);
4699 +
4700 +HMETAFILE GetMetaFileA(LPCSTR);
4701 +
4702 +HMETAFILE GetMetaFileW(LPCWSTR);
4703 +
4704 +UINT GetMetaFileBitsEx(HMETAFILE, UINT, PVOID);
4705 +
4706 +int GetMetaRgn(HDC, HRGN);
4707 +
4708 +BOOL GetMiterLimit(HDC, PFLOAT);
4709 +
4710 +COLORREF GetNearestColor(HDC, COLORREF);
4711 +
4712 +UINT GetNearestPaletteIndex(HPALETTE, COLORREF);
4713 +
4714 +int GetObjectA(HGDIOBJ, int, PVOID);
4715 +
4716 +int GetObjectW(HGDIOBJ, int, PVOID);
4717 +
4718 +DWORD GetObjectType(HGDIOBJ);
4719 +
4720 +UINT GetOutlineTextMetricsA(HDC, UINT, LPOUTLINETEXTMETRICA);
4721 +
4722 +UINT GetOutlineTextMetricsW(HDC, UINT, LPOUTLINETEXTMETRICW);
4723 +
4724 +UINT GetPaletteEntries(HPALETTE, UINT, UINT, LPPALETTEENTRY);
4725 +
4726 +int GetPath(HDC, LPPOINT, PBYTE, int);
4727 +
4728 +COLORREF GetPixel(HDC, int, int);
4729 +
4730 +int GetPixelFormat(HDC);
4731 +
4732 +int GetPolyFillMode(HDC);
4733 +
4734 +BOOL GetRasterizerCaps(LPRASTERIZER_STATUS, UINT);
4735 +
4736 +int GetRandomRgn(HDC, HRGN, INT);
4737 +
4738 +DWORD GetRegionData(HRGN, DWORD, LPRGNDATA);
4739 +
4740 +int GetRgnBox(HRGN, LPRECT);
4741 +
4742 +int GetROP2(HDC);
4743 +
4744 +HGDIOBJ GetStockObject(int);
4745 +
4746 +int GetStretchBltMode(HDC);
4747 +
4748 +UINT GetSystemPaletteEntries(HDC, UINT, UINT, LPPALETTEENTRY);
4749 +
4750 +UINT GetSystemPaletteUse(HDC);
4751 +
4752 +UINT GetTextAlign(HDC);
4753 +
4754 +int GetTextCharacterExtra(HDC);
4755 +
4756 +int GetTextCharset(HDC);
4757 +
4758 +int GetTextCharsetInfo(HDC, LPFONTSIGNATURE, DWORD);
4759 +
4760 +COLORREF GetTextColor(HDC);
4761 +
4762 +BOOL GetTextExtentExPointA(HDC, LPCSTR, int, int, LPINT, LPINT, LPSIZE);
4763 +
4764 +BOOL GetTextExtentExPointW(HDC, LPCWSTR, int, int, LPINT, LPINT, LPSIZE);
4765 +
4766 +BOOL GetTextExtentPointA(HDC, LPCSTR, int, LPSIZE);
4767 +
4768 +BOOL GetTextExtentPointW(HDC, LPCWSTR, int, LPSIZE);
4769 +
4770 +BOOL GetTextExtentPoint32A(HDC, LPCSTR, int, LPSIZE);
4771 +
4772 +BOOL GetTextExtentPoint32W(HDC, LPCWSTR, int, LPSIZE);
4773 +
4774 +int GetTextFaceA(HDC, int, LPSTR);
4775 +
4776 +int GetTextFaceW(HDC, int, LPWSTR);
4777 +
4778 +BOOL GetTextMetricsA(HDC, LPTEXTMETRICA);
4779 +
4780 +BOOL GetTextMetricsW(HDC, LPTEXTMETRICW);
4781 +
4782 +BOOL GetViewportExtEx(HDC, LPSIZE);
4783 +
4784 +BOOL GetViewportOrgEx(HDC, LPPOINT);
4785 +
4786 +BOOL GetWindowExtEx(HDC, LPSIZE);
4787 +
4788 +BOOL GetWindowOrgEx(HDC, LPPOINT);
4789 +
4790 +UINT GetWinMetaFileBits(HENHMETAFILE, UINT, LPBYTE, INT, HDC);
4791 +
4792 +BOOL GetWorldTransform(HDC, LPXFORM);
4793 +
4794 +int IntersectClipRect(HDC, int, int, int, int);
4795 +
4796 +BOOL InvertRgn(HDC, HRGN);
4797 +
4798 +BOOL LineDDA(int, int, int, int, LINEDDAPROC, LPARAM);
4799 +
4800 +BOOL LineTo(HDC, int, int);
4801 +
4802 +BOOL LPtoDP(HDC, LPPOINT, int);
4803 +
4804 +BOOL MaskBlt(HDC, int, int, int, int, HDC, int, int, HBITMAP, int, int, DWORD);
4805 +
4806 +BOOL ModifyWorldTransform(HDC, CPtr!(XFORM), DWORD);
4807 +
4808 +BOOL MoveToEx(HDC, int, int, LPPOINT);
4809 +
4810 +int OffsetClipRgn(HDC, int, int);
4811 +
4812 +int OffsetRgn(HRGN, int, int);
4813 +
4814 +BOOL OffsetViewportOrgEx(HDC, int, int, LPPOINT);
4815 +
4816 +BOOL OffsetWindowOrgEx(HDC, int, int, LPPOINT);
4817 +
4818 +BOOL PaintRgn(HDC, HRGN);
4819 +
4820 +BOOL PatBlt(HDC, int, int, int, int, DWORD);
4821 +
4822 +HRGN PathToRegion(HDC);
4823 +
4824 +BOOL Pie(HDC, int, int, int, int, int, int, int, int);
4825 +
4826 +BOOL PlayEnhMetaFile(HDC, HENHMETAFILE, LPCRECT);
4827 +
4828 +BOOL PlayEnhMetaFileRecord(HDC, LPHANDLETABLE, CPtr!(ENHMETARECORD), UINT);
4829 +
4830 +BOOL PlayMetaFile(HDC, HMETAFILE);
4831 +
4832 +BOOL PlayMetaFileRecord(HDC, LPHANDLETABLE, LPMETARECORD, UINT);
4833 +
4834 +BOOL PlgBlt(HDC, CPtr!(POINT), HDC, int, int, int, int, HBITMAP, int, int);
4835 +
4836 +BOOL PolyBezier(HDC, CPtr!(POINT), DWORD);
4837 +
4838 +BOOL PolyBezierTo(HDC, CPtr!(POINT), DWORD);
4839 +
4840 +BOOL PolyDraw(HDC, CPtr!(POINT), CPtr!(BYTE), int);
4841 +
4842 +BOOL Polygon(HDC, CPtr!(POINT), int);
4843 +
4844 +BOOL Polyline(HDC, CPtr!(POINT), int);
4845 +
4846 +BOOL PolylineTo(HDC, CPtr!(POINT), DWORD);
4847 +
4848 +BOOL PolyPolygon(HDC, CPtr!(POINT), CPtr!(INT), int);
4849 +
4850 +BOOL PolyPolyline(HDC, CPtr!(POINT), CPtr!(DWORD), DWORD);
4851 +
4852 +BOOL PolyTextOutA(HDC, CPtr!(POLYTEXTA), int);
4853 +
4854 +BOOL PolyTextOutW(HDC, CPtr!(POLYTEXTW), int);
4855 +
4856 +BOOL PtInRegion(HRGN, int, int);
4857 +
4858 +BOOL PtVisible(HDC, int, int);
4859 +
4860 +UINT RealizePalette(HDC);
4861 +
4862 +BOOL Rectangle(HDC, int, int, int, int);
4863 +
4864 +BOOL RectInRegion(HRGN, LPCRECT);
4865 +
4866 +BOOL RectVisible(HDC, LPCRECT);
4867 +
4868 +BOOL RemoveFontResourceA(LPCSTR);
4869 +
4870 +BOOL RemoveFontResourceW(LPCWSTR);
4871 +
4872 +HDC ResetDCA(HDC, CPtr!(DEVMODEA));
4873 +
4874 +HDC ResetDCW(HDC, CPtr!(DEVMODEW));
4875 +
4876 +BOOL ResizePalette(HPALETTE, UINT);
4877 +
4878 +BOOL RestoreDC(HDC, int);
4879 +
4880 +BOOL RoundRect(HDC, int, int, int, int, int, int);
4881 +
4882 +int SaveDC(HDC);
4883 +
4884 +BOOL ScaleViewportExtEx(HDC, int, int, int, int, LPSIZE);
4885 +
4886 +BOOL ScaleWindowExtEx(HDC, int, int, int, int, LPSIZE);
4887 +
4888 +BOOL SelectClipPath(HDC, int);
4889 +
4890 +int SelectClipRgn(HDC, HRGN);
4891 +
4892 +HGDIOBJ SelectObject(HDC, HGDIOBJ);
4893 +
4894 +HPALETTE SelectPalette(HDC, HPALETTE, BOOL);
4895 +
4896 +int SetAbortProc(HDC, ABORTPROC);
4897 +
4898 +int SetArcDirection(HDC, int);
4899 +
4900 +LONG SetBitmapBits(HBITMAP, DWORD, PCVOID);
4901 +
4902 +BOOL SetBitmapDimensionEx(HBITMAP, int, int, LPSIZE);
4903 +
4904 +COLORREF SetBkColor(HDC, COLORREF);
4905 +
4906 +int SetBkMode(HDC, int);
4907 +
4908 +UINT SetBoundsRect(HDC, LPCRECT, UINT);
4909 +
4910 +BOOL SetBrushOrgEx(HDC, int, int, LPPOINT);
4911 +
4912 +BOOL SetColorAdjustment(HDC, CPtr!(COLORADJUSTMENT));
4913 +
4914 +BOOL SetColorSpace(HDC, HCOLORSPACE);
4915 +
4916 +BOOL SetDeviceGammaRamp(HDC, PVOID);
4917 +
4918 +UINT SetDIBColorTable(HDC, UINT, UINT, CPtr!(RGBQUAD));
4919 +
4920 +int SetDIBits(HDC, HBITMAP, UINT, UINT, PCVOID, CPtr!(BITMAPINFO), UINT);
4921 +
4922 +int SetDIBitsToDevice(HDC, int, int, DWORD, DWORD, int, int, UINT, UINT, PCVOID, CPtr!(BITMAPINFO), UINT);
4923 +
4924 +HENHMETAFILE SetEnhMetaFileBits(UINT, CPtr!(BYTE));
4925 +
4926 +int SetGraphicsMode(HDC, int);
4927 +
4928 +int SetICMMode(HDC, int);
4929 +
4930 +BOOL SetICMProfileA(HDC, LPSTR);
4931 +
4932 +BOOL SetICMProfileW(HDC, LPWSTR);
4933 +
4934 +int SetMapMode(HDC, int);
4935 +
4936 +static
4937 +
4938 +if (WINVER >= 0x0500)
4939 +{
4940 + DWORD SetLayout(HDC hdc, DWORD l);
4941 +
4942 + DWORD GetLayout(HDC hdc);
3427 4943 }
3428 -alias _BLENDFUNCTION BLENDFUNCTION;
3429 -alias _BLENDFUNCTION* PBLENDFUNCTION;
3430 -
3431 -enum : uint { AC_SRC_OVER = 0x00 }
3432 -
3433 -enum : uint { AC_SRC_ALPHA = 0x01 }
3434 -
3435 -extern(Windows) export BOOL AlphaBlend(HDC, int, int, int, int, HDC, int, int, int, int, BLENDFUNCTION);
3436 -
3437 -extern(Windows) export BOOL TransparentBlt(HDC, int, int, int, int, HDC, int, int, int, int, UINT);
3438 -
3439 -enum : uint { GRADIENT_FILL_RECT_H = 0x00000000 }
3440 -enum : uint { GRADIENT_FILL_RECT_V = 0x00000001 }
3441 -enum : uint { GRADIENT_FILL_TRIANGLE = 0x00000002 }
3442 -enum : uint { GRADIENT_FILL_OP_FLAG = 0x000000ff }
3443 -
3444 -extern(Windows) export BOOL GradientFill(HDC, PTRIVERTEX, ULONG, PVOID, ULONG, ULONG);
3445 -
3446 -// #endif
3447 -
3448 -// #ifndef NOMETAFILE
3449 -
3450 -extern(Windows) export BOOL PlayMetaFileRecord(HDC, LPHANDLETABLE, LPMETARECORD, UINT);
3451 -extern(Windows) alias int function( HDC, HANDLETABLE *, METARECORD *, int, LPARAM) MFENUMPROC;
3452 -extern(Windows) export BOOL EnumMetaFile(HDC, HMETAFILE, MFENUMPROC, LPARAM);
3453 -
3454 -extern(Windows) alias int function(HDC, HANDLETABLE *, ENHMETARECORD *, int, LPARAM) ENHMFENUMPROC;
3455 -
3456 -extern(Windows) export HENHMETAFILE CloseEnhMetaFile(HDC);
3457 -extern(Windows) export HENHMETAFILE CopyEnhMetaFileA(HENHMETAFILE, LPCSTR);
3458 -extern(Windows) export HENHMETAFILE CopyEnhMetaFileW(HENHMETAFILE, LPCWSTR);
3459 -// #ifdef UNICODE
3460 -alias CopyEnhMetaFileW CopyEnhMetaFile;
3461 -// #else
3462 -// #...
3463 -// #endif // !UNICODE
3464 -extern(Windows) export HDC CreateEnhMetaFileA(HDC, LPCSTR, RECT *, LPCSTR);
3465 -extern(Windows) export HDC CreateEnhMetaFileW(HDC, LPCWSTR, RECT *, LPCWSTR);
3466 -// #ifdef UNICODE
3467 -alias CreateEnhMetaFileW CreateEnhMetaFile;
3468 -// #else
3469 -// #...
3470 -// #endif // !UNICODE
3471 -extern(Windows) export BOOL DeleteEnhMetaFile(HENHMETAFILE);
3472 -extern(Windows) export BOOL EnumEnhMetaFile(HDC, HENHMETAFILE, ENHMFENUMPROC,
3473 - LPVOID, RECT *);
3474 -extern(Windows) export HENHMETAFILE GetEnhMetaFileA(LPCSTR);
3475 -extern(Windows) export HENHMETAFILE GetEnhMetaFileW(LPCWSTR);
3476 -// #ifdef UNICODE
3477 -alias GetEnhMetaFileW GetEnhMetaFile;
3478 -// #else
3479 -// #...
3480 -// #endif // !UNICODE
3481 -extern(Windows) export UINT GetEnhMetaFileBits(HENHMETAFILE, UINT, LPBYTE);
3482 -extern(Windows) export UINT GetEnhMetaFileDescriptionA(HENHMETAFILE, UINT, LPSTR );
3483 -extern(Windows) export UINT GetEnhMetaFileDescriptionW(HENHMETAFILE, UINT, LPWSTR );
3484 -// #ifdef UNICODE
3485 -alias GetEnhMetaFileDescriptionW GetEnhMetaFileDescription;
3486 -// #else
3487 -// #...
3488 -// #endif // !UNICODE
3489 -extern(Windows) export UINT GetEnhMetaFileHeader(HENHMETAFILE, UINT, LPENHMETAHEADER );
3490 -extern(Windows) export UINT GetEnhMetaFilePaletteEntries(HENHMETAFILE, UINT, LPPALETTEENTRY );
3491 -extern(Windows) export UINT GetEnhMetaFilePixelFormat(HENHMETAFILE, UINT,
3492 - PIXELFORMATDESCRIPTOR *);
3493 -extern(Windows) export UINT GetWinMetaFileBits(HENHMETAFILE, UINT, LPBYTE, INT, HDC);
3494 -extern(Windows) export BOOL PlayEnhMetaFile(HDC, HENHMETAFILE, RECT *);
3495 -extern(Windows) export BOOL PlayEnhMetaFileRecord(HDC, LPHANDLETABLE, ENHMETARECORD *, UINT);
3496 -extern(Windows) export HENHMETAFILE SetEnhMetaFileBits(UINT, BYTE *);
3497 -extern(Windows) export HENHMETAFILE SetWinMetaFileBits(UINT, BYTE *, HDC, METAFILEPICT *);
3498 -extern(Windows) export BOOL GdiComment(HDC, UINT, BYTE *);
3499 -
3500 -// #endif /* NOMETAFILE */
3501 -
3502 -// #ifndef NOTEXTMETRIC
3503 -
3504 -extern(Windows) export BOOL GetTextMetricsA(HDC, LPTEXTMETRICA);
3505 -extern(Windows) export BOOL GetTextMetricsW(HDC, LPTEXTMETRICW);
3506 -// #ifdef UNICODE
3507 -alias GetTextMetricsW GetTextMetrics;
3508 -// #else
3509 -// #...
3510 -// #endif // !UNICODE
3511 -
3512 -// #endif
3513 -
3514 -struct tagDIBSECTION {
3515 - BITMAP dsBm;
3516 - BITMAPINFOHEADER dsBmih;
3517 - DWORD dsBitfields[3];
3518 - HANDLE dshSection;
3519 - DWORD dsOffset;
4944 +
4945 +DWORD SetMapperFlags(HDC, DWORD);
4946 +
4947 +HMETAFILE SetMetaFileBitsEx(UINT, CPtr!(BYTE));
4948 +
4949 +int SetMetaRgn(HDC);
4950 +
4951 +BOOL SetMiterLimit(HDC, FLOAT, PFLOAT);
4952 +
4953 +UINT SetPaletteEntries(HPALETTE, UINT, UINT, CPtr!(PALETTEENTRY));
4954 +
4955 +COLORREF SetPixel(HDC, int, int, COLORREF);
4956 +
4957 +BOOL SetPixelFormat(HDC, int, CPtr!(PIXELFORMATDESCRIPTOR));
4958 +
4959 +BOOL SetPixelV(HDC, int, int, COLORREF);
4960 +
4961 +int SetPolyFillMode(HDC, int);
4962 +
4963 +BOOL SetRectRgn(HRGN, int, int, int, int);
4964 +
4965 +int SetROP2(HDC, int);
4966 +
4967 +int SetStretchBltMode(HDC, int);
4968 +
4969 +UINT SetSystemPaletteUse(HDC, UINT);
4970 +
4971 +UINT SetTextAlign(HDC, UINT);
4972 +
4973 +int SetTextCharacterExtra(HDC, int);
4974 +
4975 +COLORREF SetTextColor(HDC, COLORREF);
4976 +
4977 +BOOL SetTextJustification(HDC, int, int);
4978 +
4979 +BOOL SetViewportExtEx(HDC, int, int, LPSIZE);
4980 +
4981 +BOOL SetViewportOrgEx(HDC, int, int, LPPOINT);
4982 +
4983 +BOOL SetWindowExtEx(HDC, int, int, LPSIZE);
4984 +
4985 +BOOL SetWindowOrgEx(HDC, int, int, LPPOINT);
4986 +
4987 +HENHMETAFILE SetWinMetaFileBits(UINT, CPtr!(BYTE), HDC, CPtr!(METAFILEPICT));
4988 +
4989 +BOOL SetWorldTransform(HDC, CPtr!(XFORM));
4990 +
4991 +int StartDocA(HDC, CPtr!(DOCINFOA));
4992 +
4993 +int StartDocW(HDC, CPtr!(DOCINFOW));
4994 +
4995 +int StartPage(HDC);
4996 +
4997 +BOOL StretchBlt(HDC, int, int, int, int, HDC, int, int, int, int, DWORD);
4998 +
4999 +int StretchDIBits(HDC, int, int, int, int, int, int, int, int, CPtr!(VOID), CPtr!(BITMAPINFO), UINT, DWORD);
5000 +
5001 +BOOL StrokeAndFillPath(HDC);
5002 +
5003 +BOOL StrokePath(HDC);
5004 +
5005 +BOOL SwapBuffers(HDC);
5006 +
5007 +BOOL TextOutA(HDC, int, int, LPCSTR, int);
5008 +
5009 +BOOL TextOutW(HDC, int, int, LPCWSTR, int);
5010 +
5011 +BOOL TranslateCharsetInfo(PDWORD, LPCHARSETINFO, DWORD);
5012 +
5013 +BOOL UnrealizeObject(HGDIOBJ);
5014 +
5015 +BOOL UpdateColors(HDC);
5016 +
5017 +BOOL UpdateICMRegKeyA(DWORD, DWORD, LPSTR, UINT);
5018 +
5019 +BOOL UpdateICMRegKeyW(DWORD, DWORD, LPWSTR, UINT);
5020 +
5021 +BOOL WidenPath(HDC);
5022 +
5023 +BOOL wglCopyContext(HGLRC, HGLRC, UINT);
5024 +
5025 +HGLRC wglCreateContext(HDC);
5026 +
5027 +HGLRC wglCreateLayerContext(HDC, int);
5028 +
5029 +BOOL wglDeleteContext(HGLRC);
5030 +
5031 +BOOL wglDescribeLayerPlane(HDC, int, int, UINT, LPLAYERPLANEDESCRIPTOR);
5032 +
5033 +HGLRC wglGetCurrentContext();
5034 +
5035 +HDC wglGetCurrentDC();
5036 +
5037 +int wglGetLayerPaletteEntries(HDC, int, int, int, COLORREF*);
5038 +
5039 +PROC wglGetProcAddress(LPCSTR);
5040 +
5041 +BOOL wglMakeCurrent(HDC, HGLRC);
5042 +
5043 +BOOL wglRealizeLayerPalette(HDC, int, BOOL);
5044 +
5045 +int wglSetLayerPaletteEntries(HDC, int, int, int, CPtr!(COLORREF));
5046 +
5047 +BOOL wglShareLists(HGLRC, HGLRC);
5048 +
5049 +BOOL wglSwapLayerBuffers(HDC, UINT);
5050 +
5051 +BOOL wglUseFontBitmapsA(HDC, DWORD, DWORD, DWORD);
5052 +
5053 +BOOL wglUseFontBitmapsW(HDC, DWORD, DWORD, DWORD);
5054 +
5055 +BOOL wglUseFontOutlinesA(HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMETRICSFLOAT);
5056 +
5057 +BOOL wglUseFontOutlinesW(HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMETRICSFLOAT);
5058 +
5059 +static
5060 +
5061 +if (WINVER >= 0x0500)
5062 +{
5063 + alias WGLSWAP*PWGLSWAP;
5064 + struct WGLSWAP
5065 + {
5066 + HDC hdc;
5067 + UINT uiFlags;
5068 + }
5069 + const WGL_SWAPMULTIPLE_MAX = 16;
5070 + DWORD wglSwapMultipleBuffers(UINT, WGLSWAP*);
3520 5071 }
3521 -alias tagDIBSECTION DIBSECTION;
3522 -alias tagDIBSECTION* LPDIBSECTION;
3523 -alias tagDIBSECTION* PDIBSECTION;
3524 -
3525 -extern(Windows) export BOOL AngleArc(HDC, int, int, DWORD, FLOAT, FLOAT);
3526 -extern(Windows) export BOOL PolyPolyline(HDC, POINT *, DWORD *, DWORD);
3527 -extern(Windows) export BOOL GetWorldTransform(HDC, LPXFORM);
3528 -extern(Windows) export BOOL SetWorldTransform(HDC, XFORM *);
3529 -extern(Windows) export BOOL ModifyWorldTransform(HDC, XFORM *, DWORD);
3530 -extern(Windows) export BOOL CombineTransform(LPXFORM, XFORM *, XFORM *);
3531 -extern(Windows) export HBITMAP CreateDIBSection(HDC, BITMAPINFO *, UINT, VOID **, HANDLE, DWORD);
3532 -extern(Windows) export UINT GetDIBColorTable(HDC, UINT, UINT, RGBQUAD *);
3533 -extern(Windows) export UINT SetDIBColorTable(HDC, UINT, UINT, RGBQUAD *);
3534 -
3535 -enum : uint { CA_NEGATIVE = 0x0001 }
3536 -enum : uint { CA_LOG_FILTER = 0x0002 }
3537 -
3538 -enum : uint { ILLUMINANT_DEVICE_DEFAULT = 0 }
3539 -enum : uint { ILLUMINANT_A = 1 }
3540 -enum : uint { ILLUMINANT_B = 2 }
3541 -enum : uint { ILLUMINANT_C = 3 }
3542 -enum : uint { ILLUMINANT_D50 = 4 }
3543 -enum : uint { ILLUMINANT_D55 = 5 }
3544 -enum : uint { ILLUMINANT_D65 = 6 }
3545 -enum : uint { ILLUMINANT_D75 = 7 }
3546 -enum : uint { ILLUMINANT_F2 = 8 }
3547 -alias ILLUMINANT_F2 ILLUMINANT_MAX_INDEX;
3548 -
3549 -alias ILLUMINANT_A ILLUMINANT_TUNGSTEN;
3550 -alias ILLUMINANT_C ILLUMINANT_DAYLIGHT;
3551 -alias ILLUMINANT_F2 ILLUMINANT_FLUORESCENT;
3552 -alias ILLUMINANT_C ILLUMINANT_NTSC;
3553 -
3554 -enum : WORD { RGB_GAMMA_MIN = 02500 }
3555 -enum : WORD { RGB_GAMMA_MAX = 65000 }
3556 -
3557 -enum : WORD { REFERENCE_WHITE_MIN = 6000 }
3558 -enum : WORD { REFERENCE_WHITE_MAX = 10000 }
3559 -enum : WORD { REFERENCE_BLACK_MIN = 0 }
3560 -enum : WORD { REFERENCE_BLACK_MAX = 4000 }
3561 -
3562 -enum : SHORT { COLOR_ADJ_MIN = -100 }
3563 -enum : SHORT { COLOR_ADJ_MAX = 100 }
3564 -
3565 -struct tagCOLORADJUSTMENT {
3566 - WORD caSize;
3567 - WORD caFlags;
3568 - WORD caIlluminantIndex;
3569 - WORD caRedGamma;
3570 - WORD caGreenGamma;
3571 - WORD caBlueGamma;
3572 - WORD caReferenceBlack;
3573 - WORD caReferenceWhite;
3574 - SHORT caContrast;
3575 - SHORT caBrightness;
3576 - SHORT caColorfulness;
3577 - SHORT caRedGreenTint;
5072 +
5073 +static
5074 +
5075 +if (WINVER >= 0x0500)
5076 +{
5077 + BOOL GdiAlphaBlend(HDC, int, int, int, int, HDC, int, int, int, int, BLENDFUNCTION);
5078 +
5079 + BOOL GradientFill(HDC, PTRIVERTEX, ULONG, PVOID, ULONG, ULONG);
5080 +
5081 + BOOL TransparentBlt(HDC, int, int, int, int, HDC, int, int, int, int, UINT);
3578 5082 }
3579 -alias tagCOLORADJUSTMENT COLORADJUSTMENT;
3580 -alias tagCOLORADJUSTMENT* PCOLORADJUSTMENT;
3581 -alias tagCOLORADJUSTMENT* LPCOLORADJUSTMENT;
3582 5083
3583 -extern(Windows) export BOOL SetColorAdjustment(HDC, COLORADJUSTMENT *);
3584 -extern(Windows) export BOOL GetColorAdjustment(HDC, LPCOLORADJUSTMENT);
3585 -extern(Windows) export HPALETTE CreateHalftonePalette(HDC);
5084 +static
3586 5085
3587 -// #ifdef STRICT
3588 -extern(Windows) alias BOOL function( HDC, int) ABORTPROC;
3589 -// #else
3590 -// ...
3591 -// #endif
5086 +if (_WIN32_WINNT >= 0x0500)
5087 +{
5088 + COLORREF SetDCBrushColor(HDC, COLORREF);
5089 +
5090 + COLORREF SetDCPenColor(HDC, COLORREF);
5091 +
5092 + HANDLE AddFontMemResourceEx(PVOID, DWORD, PVOID, DWORD*);
5093 +
5094 + int AddFontResourceExA(LPCSTR, DWORD, PVOID);
5095 +
5096 + int AddFontResourceExW(LPCWSTR, DWORD, PVOID);
5097 +
5098 + BOOL RemoveFontMemResourceEx(HANDLE);
5099 +
5100 + BOOL RemoveFontResourceExA(LPCSTR, DWORD, PVOID);
5101 +
5102 + BOOL RemoveFontResourceExW(LPCWSTR, DWORD, PVOID);
5103 +
5104 + DWORD GetFontUnicodeRanges(HDC, LPGLYPHSET);
5105 +
5106 + DWORD GetGlyphIndicesA(HDC, LPCSTR, int, LPWORD, DWORD);
5107 +
5108 + DWORD GetGlyphIndicesW(HDC, LPCWSTR, int, LPWORD, DWORD);
5109 +
5110 + BOOL GetTextExtentPointI(HDC, LPWORD, int, LPSIZE);
3592 5111
3593 -struct _DOCINFOA {
3594 - int cbSize;
3595 - LPCSTR lpszDocName;
3596 - LPCSTR lpszOutput;
3597 -// #if (WINVER >= 0x0400)
3598 - LPCSTR lpszDatatype;
3599 - DWORD fwType;
3600 -// #endif /* WINVER */
3601 -}
3602 -alias _DOCINFOA DOCINFOA;
3603 -alias _DOCINFOA* LPDOCINFOA;
5112 + BOOL GetTextExtentExPointI(HDC, LPWORD, int, int, LPINT, LPINT, LPSIZE);
3604 5113
3605 -struct _DOCINFOW {
3606 - int cbSize;
3607 - LPCWSTR lpszDocName;
3608 - LPCWSTR lpszOutput;
3609 -// #if (WINVER >= 0x0400)
3610 - LPCWSTR lpszDatatype;
3611 - DWORD fwType;
3612 -// #endif /* WINVER */
3613 -}
3614 -alias _DOCINFOW DOCINFOW;
3615 -alias _DOCINFOW* LPDOCINFOW;
5114 + BOOL GetCharWidthI(HDC, UINT, UINT, LPWORD, LPINT);
3616 5115
3617 -// #ifdef UNICODE
3618 -alias DOCINFOW DOCINFO;
3619 -alias LPDOCINFOW LPDOCINFO;
3620 -// #else
3621 -// ...
3622 -// #endif // UNICODE
3623 -
3624 -// #if(WINVER >= 0x0400)
3625 -enum : uint { DI_APPBANDING = 0x00000001 }
3626 -enum : uint { DI_ROPS_READ_DESTINATION = 0x00000002 }
3627 -// #endif /* WINVER >= 0x0400 */
3628 -
3629 -extern(Windows) export int StartDocA(HDC, DOCINFOA *);
3630 -extern(Windows) export int StartDocW(HDC, DOCINFOW *);
3631 -// #ifdef UNICODE
3632 -alias StartDocW StartDoc;
3633 -// #else
3634 -// #...
3635 -// #endif // !UNICODE
3636 -extern(Windows) export int EndDoc(HDC);
3637 -extern(Windows) export int StartPage(HDC);
3638 -extern(Windows) export int EndPage(HDC);
3639 -extern(Windows) export int AbortDoc(HDC);
3640 -extern(Windows) export int SetAbortProc(HDC, ABORTPROC);
3641 -
3642 -extern(Windows) export BOOL AbortPath(HDC);
3643 -extern(Windows) export BOOL ArcTo(HDC, int, int, int, int, int, int, int, int);
3644 -extern(Windows) export BOOL BeginPath(HDC);
3645 -extern(Windows) export BOOL CloseFigure(HDC);
3646 -extern(Windows) export BOOL EndPath(HDC);
3647 -extern(Windows) export BOOL FillPath(HDC);
3648 -extern(Windows) export BOOL FlattenPath(HDC);
3649 -extern(Windows) export int GetPath(HDC, LPPOINT, LPBYTE, int);
3650 -extern(Windows) export HRGN PathToRegion(HDC);
3651 -extern(Windows) export BOOL PolyDraw(HDC, POINT *, BYTE *, int);
3652 -extern(Windows) export BOOL SelectClipPath(HDC, int);
3653 -extern(Windows) export int SetArcDirection(HDC, int);
3654 -extern(Windows) export BOOL SetMiterLimit(HDC, FLOAT, PFLOAT);
3655 -extern(Windows) export BOOL StrokeAndFillPath(HDC);
3656 -extern(Windows) export BOOL StrokePath(HDC);
3657 -extern(Windows) export BOOL WidenPath(HDC);
3658 -extern(Windows) export HPEN ExtCreatePen(DWORD, DWORD, LOGBRUSH *, DWORD, DWORD *);
3659 -extern(Windows) export BOOL GetMiterLimit(HDC, PFLOAT);
3660 -extern(Windows) export int GetArcDirection(HDC);
3661 -
3662 -extern(Windows) export int GetObjectA(HGDIOBJ, int, LPVOID);
3663 -extern(Windows) export int GetObjectW(HGDIOBJ, int, LPVOID);
3664 -// #ifdef UNICODE
3665 -alias GetObjectW GetObject;
3666 -// #else
3667 -// #...
3668 -// #endif // !UNICODE
3669 -extern(Windows) export BOOL MoveToEx(HDC, int, int, LPPOINT);
3670 -extern(Windows) export BOOL TextOutA(HDC, int, int, LPCSTR, int);
3671 -extern(Windows) export BOOL TextOutW(HDC, int, int, LPCWSTR, int);
3672 -// #ifdef UNICODE
3673 -alias TextOutW TextOut;
3674 -// #else
3675 -// #...
3676 -// #endif // !UNICODE
3677 -extern(Windows) export BOOL ExtTextOutA(HDC, int, int, UINT, RECT *, LPCSTR, UINT, INT *);
3678 -extern(Windows) export BOOL ExtTextOutW(HDC, int, int, UINT, RECT *, LPCWSTR, UINT, INT *);
3679 -// #ifdef UNICODE
3680 -alias ExtTextOutW ExtTextOut;
3681 -// #else
3682 -// #...
3683 -// #endif // !UNICODE
3684 -extern(Windows) export BOOL PolyTextOutA(HDC, POLYTEXTA *, int);
3685 -extern(Windows) export BOOL PolyTextOutW(HDC, POLYTEXTW *, int);
3686 -// #ifdef UNICODE
3687 -alias PolyTextOutW PolyTextOut;
3688 -// #else
3689 -// #...
3690 -// #endif // !UNICODE
3691 -
3692 -extern(Windows) export HRGN CreatePolygonRgn(POINT *, int, int);
3693 -extern(Windows) export BOOL DPtoLP(HDC, LPPOINT, int);
3694 -extern(Windows) export BOOL LPtoDP(HDC, LPPOINT, int);
3695 -extern(Windows) export BOOL Polygon(HDC, POINT *, int);
3696 -extern(Windows) export BOOL Polyline(HDC, POINT *, int);
3697 -
3698 -extern(Windows) export BOOL PolyBezier(HDC, POINT *, DWORD);
3699 -extern(Windows) export BOOL PolyBezierTo(HDC, POINT *, DWORD);
3700 -extern(Windows) export BOOL PolylineTo(HDC, POINT *, DWORD);
3701 -
3702 -extern(Windows) export BOOL SetViewportExtEx(HDC, int, int, LPSIZE);
3703 -extern(Windows) export BOOL SetViewportOrgEx(HDC, int, int, LPPOINT);
3704 -extern(Windows) export BOOL SetWindowExtEx(HDC, int, int, LPSIZE);
3705 -extern(Windows) export BOOL SetWindowOrgEx(HDC, int, int, LPPOINT);
3706 -
3707 -extern(Windows) export BOOL OffsetViewportOrgEx(HDC, int, int, LPPOINT);
3708 -extern(Windows) export BOOL OffsetWindowOrgEx(HDC, int, int, LPPOINT);
3709 -extern(Windows) export BOOL ScaleViewportExtEx(HDC, int, int, int, int, LPSIZE);
3710 -extern(Windows) export BOOL ScaleWindowExtEx(HDC, int, int, int, int, LPSIZE);
3711 -extern(Windows) export BOOL SetBitmapDimensionEx(HBITMAP, int, int, LPSIZE);
3712 -extern(Windows) export BOOL SetBrushOrgEx(HDC, int, int, LPPOINT);
3713 -
3714 -extern(Windows) export int GetTextFaceA(HDC, int, LPSTR);
3715 -extern(Windows) export int GetTextFaceW(HDC, int, LPWSTR);
3716 -// #ifdef UNICODE
3717 -alias GetTextFaceW GetTextFace;
3718 -// #else
3719 -// #...
3720 -// #endif // !UNICODE
3721 -
3722 -enum : uint { FONTMAPPER_MAX = 10 }
3723 -
3724 -struct tagKERNINGPAIR {
3725 - WORD wFirst;
3726 - WORD wSecond;
3727 - int iKernAmount;
5116 + BOOL GetCharABCWidthsI(HDC, UINT, UINT, LPWORD, LPABC);
3728 5117 }
3729 -alias tagKERNINGPAIR KERNINGPAIR;
3730 -alias tagKERNINGPAIR* LPKERNINGPAIR;
5118 +} // extern (Windows)
5119 +
5120 +version (Unicode)
5121 +{
5122 + alias WCHAR BCHAR;
5123 + alias DOCINFOW DOCINFO;
5124 + alias LOGFONTW LOGFONT;
3731 5125
3732 -extern(Windows) export DWORD GetKerningPairsA(HDC, DWORD, LPKERNINGPAIR);
3733 -extern(Windows) export DWORD GetKerningPairsW(HDC, DWORD, LPKERNINGPAIR);
3734 -// #ifdef UNICODE
3735 -alias GetKerningPairsW GetKerningPairs;
3736 -// #else
3737 -// #...
3738 -// #endif // !UNICODE
5126 + alias TEXTMETRICW TEXTMETRIC;
5127 + alias NPTEXTMETRICW NPTEXTMETRIC;
5128 + alias ICMENUMPROCW ICMENUMPROC;
5129 + alias FONTENUMPROCW FONTENUMPROC;
5130 + alias DEVMODEW DEVMODE;
3739 5131
3740 -extern(Windows) export BOOL GetDCOrgEx(HDC, LPPOINT);
3741 -extern(Windows) export BOOL FixBrushOrgEx(HDC, int, int, LPPOINT);
3742 -extern(Windows) export BOOL UnrealizeObject(HGDIOBJ);
3743 -
3744 -extern(Windows) export BOOL GdiFlush();
3745 -extern(Windows) export DWORD GdiSetBatchLimit(DWORD);
3746 -extern(Windows) export DWORD GdiGetBatchLimit();
3747 -
3748 -// #if(WINVER >= 0x0400)
5132 + alias EXTLOGFONTW EXTLOGFONT;
5133 + alias GCP_RESULTSW GCP_RESULTS;
5134 + alias OUTLINETEXTMETRICW OUTLINETEXTMETRIC;
5135 + alias POLYTEXTW POLYTEXT;
5136 + alias LOGCOLORSPACEW LOGCOLORSPACE;
5137 + alias NEWTEXTMETRICW NEWTEXTMETRIC;
5138 + alias NEWTEXTMETRICEXW NEWTEXTMETRICEX;
5139 + alias ENUMLOGFONTW ENUMLOGFONT;
5140 + alias ENUMLOGFONTEXW ENUMLOGFONTEX;
5141 + alias DISPLAY_DEVICEW DISPLAY_DEVICE;
5142 + alias AddFontResourceW AddFontResource;
3749 5143
3750 -enum : uint { ICM_OFF = 1 }
3751 -enum : uint { ICM_ON = 2 }
3752 -enum : uint { ICM_QUERY = 3 }
3753 -enum : uint { ICM_DONE_OUTSIDEDC = 4 }
3754 -
3755 -extern(Windows) alias int function(LPSTR, LPARAM) ICMENUMPROCA;
3756 -extern(Windows) alias int function(LPWSTR, LPARAM) ICMENUMPROCW;
3757 -// #ifdef UNICODE
3758 -alias ICMENUMPROCW ICMENUMPROC;
3759 -// #else
3760 -// #...
3761 -// #endif // !UNICODE
5144 + alias CopyEnhMetaFileW CopyEnhMetaFile;
5145 + alias CopyMetaFileW CopyMetaFile;
5146 + alias CreateColorSpaceW CreateColorSpace;
5147 + alias CreateDCW CreateDC;
5148 + alias CreateEnhMetaFileW CreateEnhMetaFile;
5149 + alias CreateFontW CreateFont;
5150 + alias CreateFontIndirectW CreateFontIndirect;
5151 + alias CreateICW CreateIC;
5152 + alias CreateMetaFileW CreateMetaFile;
5153 + alias CreateScalableFontResourceW CreateScalableFontResource;
5154 + alias DeviceCapabilitiesW DeviceCapabilities;
5155 + alias EnumFontFamiliesW EnumFontFamilies;
5156 + alias EnumFontFamiliesExW EnumFontFamiliesEx;
5157 + alias EnumFontsW EnumFonts;
5158 + alias EnumICMProfilesW EnumICMProfiles;
5159 + alias ExtTextOutW ExtTextOut;
5160 + alias GetCharABCWidthsFloatW GetCharABCWidthsFloat;
5161 + alias GetCharABCWidthsW GetCharABCWidths;
5162 + alias GetCharacterPlacementW GetCharacterPlacement;
5163 + alias GetCharWidth32W GetCharWidth32;
5164 + alias GetCharWidthFloatW GetCharWidthFloat;
5165 + alias GetCharWidthW GetCharWidth;
5166 + alias GetEnhMetaFileW GetEnhMetaFile;
5167 + alias GetEnhMetaFileDescriptionW GetEnhMetaFileDescription;
5168 + alias GetGlyphOutlineW GetGlyphOutline;
5169 + alias GetICMProfileW GetICMProfile;
5170 + alias GetKerningPairsW GetKerningPairs;
5171 + alias GetLogColorSpaceW GetLogColorSpace;
5172 + alias GetMetaFileW GetMetaFile;
5173 + alias GetObjectW GetObject;
5174 + alias GetOutlineTextMetricsW GetOutlineTextMetrics;
5175 + alias GetTextExtentPointW GetTextExtentPoint;
5176 + alias GetTextExtentExPointW GetTextExtentExPoint;
5177 + alias GetTextExtentPoint32W GetTextExtentPoint32;
5178 + alias GetTextFaceW GetTextFace;
5179 + alias GetTextMetricsW GetTextMetrics;
5180 + alias PolyTextOutW PolyTextOut;
5181 + alias RemoveFontResourceW RemoveFontResource;
3762 5182
3763 -extern(Windows) export int SetICMMode(HDC, int);
3764 -extern(Windows) export BOOL CheckColorsInGamut(HDC, LPVOID, LPVOID, DWORD);
3765 -extern(Windows) export HCOLORSPACE GetColorSpace(HDC);
3766 -extern(Windows) export BOOL GetLogColorSpaceA(HCOLORSPACE, LPLOGCOLORSPACEA, DWORD);
3767 -extern(Windows) export BOOL GetLogColorSpaceW(HCOLORSPACE, LPLOGCOLORSPACEW, DWORD);
3768 -// #ifdef UNICODE
3769 -alias GetLogColorSpaceW GetLogColorSpace;
3770 -// #else
3771 -// #...
3772 -// #endif // !UNICODE
3773 -extern(Windows) export HCOLORSPACE CreateColorSpaceA(LPLOGCOLORSPACEA);
3774 -extern(Windows) export HCOLORSPACE CreateColorSpaceW(LPLOGCOLORSPACEW);
3775 -// #ifdef UNICODE
3776 -alias CreateColorSpaceW CreateColorSpace;
3777 -// #else
3778 -// #...
3779 -// #endif // !UNICODE
3780 -extern(Windows) export HCOLORSPACE SetColorSpace(HDC, HCOLORSPACE);
3781 -extern(Windows) export BOOL DeleteColorSpace(HCOLORSPACE);
3782 -extern(Windows) export BOOL GetICMProfileA(HDC, LPDWORD, LPSTR);
3783 -extern(Windows) export BOOL GetICMProfileW(HDC, LPDWORD, LPWSTR);
3784 -// #ifdef UNICODE
3785 -alias GetICMProfileW GetICMProfile;
3786 -// #else
3787 -// #...
3788 -// #endif // !UNICODE
3789 -extern(Windows) export BOOL SetICMProfileA(HDC, LPSTR);
3790 -extern(Windows) export BOOL SetICMProfileW(HDC, LPWSTR);
3791 -// #ifdef UNICODE
3792 -alias SetICMProfileW SetICMProfile;
3793 -// #else
3794 -// #...
3795 -// #endif // !UNICODE
3796 -extern(Windows) export BOOL GetDeviceGammaRamp(HDC, LPVOID);
3797 -extern(Windows) export BOOL SetDeviceGammaRamp(HDC, LPVOID);
3798 -extern(Windows) export BOOL ColorMatchToTarget(HDC, HDC, DWORD);
3799 -extern(Windows) export int EnumICMProfilesA(HDC, ICMENUMPROCA, LPARAM);
3800 -extern(Windows) export int EnumICMProfilesW(HDC, ICMENUMPROCW, LPARAM);
3801 -// #ifdef UNICODE
3802 -alias EnumICMProfilesW EnumICMProfiles;
3803 -// #else
3804 -// #...
3805 -// #endif // !UNICODE
3806 -extern(Windows) export BOOL UpdateICMRegKeyA(DWORD, LPSTR, LPSTR, UINT);
3807 -extern(Windows) export BOOL UpdateICMRegKeyW(DWORD, LPWSTR, LPWSTR, UINT);
3808 -// #ifdef UNICODE
3809 -alias UpdateICMRegKeyW UpdateICMRegKey;
3810 -// #else
3811 -// #...
3812 -// #endif // !UNICODE
3813 -// #endif /* WINVER >= 0x0400 */
3814 -
3815 -// #if (WINVER >= 0x0500)
3816 -extern(Windows) export BOOL ColorCorrectPalette(HDC, HPALETTE, DWORD, DWORD);
3817 -// #endif
3818 -
3819 -// #ifndef NOMETAFILE
5183 + alias ResetDCW ResetDC;
5184 + alias SetICMProfileW SetICMProfile;
5185 + alias StartDocW StartDoc;
5186 + alias TextOutW TextOut;
5187 + alias UpdateICMRegKeyW UpdateICMRegKey;
5188 + alias wglUseFontBitmapsW wglUseFontBitmaps;
5189 + alias wglUseFontOutlinesW wglUseFontOutlines;
5190 + static
3820 5191
3821 -// #ifndef _MAC
3822 -enum : uint { ENHMETA_SIGNATURE = 0x464D4520 }
3823 -// #else
3824 -// #...
3825 -// #endif
3826 -
3827 -enum : uint { ENHMETA_STOCK_OBJECT = 0x80000000 }
3828 -
3829 -enum : uint { EMR_HEADER = 1 }
3830 -enum : uint { EMR_POLYBEZIER = 2 }
3831 -enum : uint { EMR_POLYGON = 3 }
3832 -enum : uint { EMR_POLYLINE = 4 }
3833 -enum : uint { EMR_POLYBEZIERTO = 5 }
3834 -enum : uint { EMR_POLYLINETO = 6 }
3835 -enum : uint { EMR_POLYPOLYLINE = 7 }
3836 -enum : uint { EMR_POLYPOLYGON = 8 }
3837 -enum : uint { EMR_SETWINDOWEXTEX = 9 }
3838 -enum : uint { EMR_SETWINDOWORGEX = 10 }
3839 -enum : uint { EMR_SETVIEWPORTEXTEX = 11 }
3840 -enum : uint { EMR_SETVIEWPORTORGEX = 12 }
3841 -enum : uint { EMR_SETBRUSHORGEX = 13 }
3842 -enum : uint { EMR_EOF = 14 }
3843 -enum : uint { EMR_SETPIXELV = 15 }
3844 -enum : uint { EMR_SETMAPPERFLAGS = 16 }
3845 -enum : uint { EMR_SETMAPMODE = 17 }
3846 -enum : uint { EMR_SETBKMODE = 18 }
3847 -enum : uint { EMR_SETPOLYFILLMODE = 19 }
3848 -enum : uint { EMR_SETROP2 = 20 }
3849 -enum : uint { EMR_SETSTRETCHBLTMODE = 21 }
3850 -enum : uint { EMR_SETTEXTALIGN = 22 }
3851 -enum : uint { EMR_SETCOLORADJUSTMENT = 23 }
3852 -enum : uint { EMR_SETTEXTCOLOR = 24 }
3853 -enum : uint { EMR_SETBKCOLOR = 25 }
3854 -enum : uint { EMR_OFFSETCLIPRGN = 26 }
3855 -enum : uint { EMR_MOVETOEX = 27 }
3856 -enum : uint { EMR_SETMETARGN = 28 }
3857 -enum : uint { EMR_EXCLUDECLIPRECT = 29 }
3858 -enum : uint { EMR_INTERSECTCLIPRECT = 30 }
3859 -enum : uint { EMR_SCALEVIEWPORTEXTEX = 31 }
3860 -enum : uint { EMR_SCALEWINDOWEXTEX = 32 }
3861 -enum : uint { EMR_SAVEDC = 33 }
3862 -enum : uint { EMR_RESTOREDC = 34 }
3863 -enum : uint { EMR_SETWORLDTRANSFORM = 35 }
3864 -enum : uint { EMR_MODIFYWORLDTRANSFORM = 36 }
3865 -enum : uint { EMR_SELECTOBJECT = 37 }
3866 -enum : uint { EMR_CREATEPEN = 38 }
3867 -enum : uint { EMR_CREATEBRUSHINDIRECT = 39 }
3868 -enum : uint { EMR_DELETEOBJECT = 40 }
3869 -enum : uint { EMR_ANGLEARC = 41 }
3870 -enum : uint { EMR_ELLIPSE = 42 }
3871 -enum : uint { EMR_RECTANGLE = 43 }
3872 -enum : uint { EMR_ROUNDRECT = 44 }
3873 -enum : uint { EMR_ARC = 45 }
3874 -enum : uint { EMR_CHORD = 46 }
3875 -enum : uint { EMR_PIE = 47 }
3876 -enum : uint { EMR_SELECTPALETTE = 48 }
3877 -enum : uint { EMR_CREATEPALETTE = 49 }
3878 -enum : uint { EMR_SETPALETTEENTRIES = 50 }
3879 -enum : uint { EMR_RESIZEPALETTE = 51 }
3880 -enum : uint { EMR_REALIZEPALETTE = 52 }
3881 -enum : uint { EMR_EXTFLOODFILL = 53 }
3882 -enum : uint { EMR_LINETO = 54 }
3883 -enum : uint { EMR_ARCTO = 55 }
3884 -enum : uint { EMR_POLYDRAW = 56 }
3885 -enum : uint { EMR_SETARCDIRECTION = 57 }
3886 -enum : uint { EMR_SETMITERLIMIT = 58 }
3887 -enum : uint { EMR_BEGINPATH = 59 }
3888 -enum : uint { EMR_ENDPATH = 60 }
3889 -enum : uint { EMR_CLOSEFIGURE = 61 }
3890 -enum : uint { EMR_FILLPATH = 62 }
3891 -enum : uint { EMR_STROKEANDFILLPATH = 63 }
3892 -enum : uint { EMR_STROKEPATH = 64 }
3893 -enum : uint { EMR_FLATTENPATH = 65 }
3894 -enum : uint { EMR_WIDENPATH = 66 }
3895 -enum : uint { EMR_SELECTCLIPPATH = 67 }
3896 -enum : uint { EMR_ABORTPATH = 68 }
3897 -
3898 -enum : uint { EMR_GDICOMMENT = 70 }
3899 -enum : uint { EMR_FILLRGN = 71 }
3900 -enum : uint { EMR_FRAMERGN = 72 }
3901 -enum : uint { EMR_INVERTRGN = 73 }
3902 -enum : uint { EMR_PAINTRGN = 74 }
3903 -enum : uint { EMR_EXTSELECTCLIPRGN = 75 }
3904 -enum : uint { EMR_BITBLT = 76 }
3905 -enum : uint { EMR_STRETCHBLT = 77 }
3906 -enum : uint { EMR_MASKBLT = 78 }
3907 -enum : uint { EMR_PLGBLT = 79 }
3908 -enum : uint { EMR_SETDIBITSTODEVICE = 80 }
3909 -enum : uint { EMR_STRETCHDIBITS = 81 }
3910 -enum : uint { EMR_EXTCREATEFONTINDIRECTW = 82 }
3911 -enum : uint { EMR_EXTTEXTOUTA = 83 }
3912 -enum : uint { EMR_EXTTEXTOUTW = 84 }
3913 -enum : uint { EMR_POLYBEZIER16 = 85 }
3914 -enum : uint { EMR_POLYGON16 = 86 }
3915 -enum : uint { EMR_POLYLINE16 = 87 }
3916 -enum : uint { EMR_POLYBEZIERTO16 = 88 }
3917 -enum : uint { EMR_POLYLINETO16 = 89 }
3918 -enum : uint { EMR_POLYPOLYLINE16 = 90 }
3919 -enum : uint { EMR_POLYPOLYGON16 = 91 }
3920 -enum : uint { EMR_POLYDRAW16 = 92 }
3921 -enum : uint { EMR_CREATEMONOBRUSH = 93 }
3922 -enum : uint { EMR_CREATEDIBPATTERNBRUSHPT = 94 }
3923 -enum : uint { EMR_EXTCREATEPEN = 95 }
3924 -enum : uint { EMR_POLYTEXTOUTA = 96 }
3925 -enum : uint { EMR_POLYTEXTOUTW = 97 }
3926 -
3927 -// #if(WINVER >= 0x0400)
3928 -enum : uint { EMR_SETICMMODE = 98 }
3929 -enum : uint { EMR_CREATECOLORSPACE = 99 }
3930 -enum : uint { EMR_SETCOLORSPACE = 100 }
3931 -enum : uint { EMR_DELETECOLORSPACE = 101 }
3932 -enum : uint { EMR_GLSRECORD = 102 }
3933 -enum : uint { EMR_GLSBOUNDEDRECORD = 103 }
3934 -enum : uint { EMR_PIXELFORMAT = 104 }
3935 -// #endif /* WINVER >= 0x0400 */
3936 -
3937 -// #if(WINVER >= 0x0500)
3938 -enum : uint { EMR_RESERVED_105 = 105 }
3939 -enum : uint { EMR_RESERVED_106 = 106 }
3940 -enum : uint { EMR_RESERVED_107 = 107 }
3941 -enum : uint { EMR_RESERVED_108 = 108 }
3942 -enum : uint { EMR_RESERVED_109 = 109 }
3943 -enum : uint { EMR_RESERVED_110 = 110 }
3944 -enum : uint { EMR_COLORCORRECTPALETTE = 111 }
3945 -enum : uint { EMR_SETICMPROFILEA = 112 }
3946 -enum : uint { EMR_SETICMPROFILEW = 113 }
3947 -enum : uint { EMR_ALPHABLEND = 114 }
3948 -enum : uint { EMR_SETLAYOUT = 115 }
3949 -enum : uint { EMR_TRANSPARENTBLT = 116 }
3950 -enum : uint { EMR_RESERVED_117 = 117 }
3951 -enum : uint { EMR_GRADIENTFILL = 118 }
3952 -enum : uint { EMR_RESERVED_119 = 119 }
3953 -enum : uint { EMR_RESERVED_120 = 120 }
3954 -enum : uint { EMR_COLORMATCHTOTARGETW = 121 }
3955 -enum : uint { EMR_CREATECOLORSPACEW = 122 }
3956 -// #endif /* WINVER >= 0x0500 */
3957 -
3958 -enum : uint { EMR_MIN = 1 }
3959 -
3960 -// #if (WINVER >= 0x0500)
3961 -enum : uint { EMR_MAX = 122 }
3962 -// #elif (WINVER >= 0x0400)
3963 -// #...
3964 -// #else
3965 -// #...
3966 -// #endif
3967 -
3968 -struct tagEMR {
3969 - DWORD iType;
3970 - DWORD nSize;
3971 -
5192 + if (_WIN32_WINNT >= 0x0500)
5193 + {
5194 + alias ENUMLOGFONTEXDVW ENUMLOGFONTEXDV;
5195 + alias PENUMLOGFONTEXDVW PENUMLOGFONTEXDV;
5196 + alias LPENUMLOGFONTEXDVW LPENUMLOGFONTEXDV;
5197 + alias AddFontResourceExW AddFontResourceEx;
5198 + alias RemoveFontResourceExW RemoveFontResourceEx;
5199 + alias GetGlyphIndicesW GetGlyphIndices;
5200 + }
3972 5201 }
3973 -alias tagEMR EMR;
3974 -alias tagEMR* PEMR;
3975 -
3976 -struct tagEMRTEXT {
3977 - POINTL ptlReference;
3978 - DWORD nChars;
3979 - DWORD offString;
3980 - DWORD fOptions;
3981 - RECTL rcl;
3982 - DWORD offDx;
3983 -
3984 -}
3985 -alias tagEMRTEXT EMRTEXT;
3986 -alias tagEMRTEXT* PEMRTEXT;
3987 -
3988 -struct tagABORTPATH {
3989 - EMR emr;
3990 -}
3991 -alias tagABORTPATH EMRABORTPATH;
3992 -alias tagABORTPATH* PEMRABORTPATH;
3993 -alias tagABORTPATH EMRBEGINPATH;
3994 -alias tagABORTPATH* PEMRBEGINPATH;
3995 -alias tagABORTPATH EMRENDPATH;
3996 -alias tagABORTPATH* PEMRENDPATH;
3997 -alias tagABORTPATH EMRCLOSEFIGURE;
3998 -alias tagABORTPATH* PEMRCLOSEFIGURE;
3999 -alias tagABORTPATH EMRFLATTENPATH;
4000 -alias tagABORTPATH* PEMRFLATTENPATH;
4001 -alias tagABORTPATH EMRWIDENPATH;
4002 -alias tagABORTPATH* PEMRWIDENPATH;
4003 -alias tagABORTPATH EMRSETMETARGN;
4004 -alias tagABORTPATH* PEMRSETMETARGN;
4005 -alias tagABORTPATH EMRSAVEDC;
4006 -alias tagABORTPATH* PEMRSAVEDC;
4007 -alias tagABORTPATH EMRREALIZEPALETTE;
4008 -alias tagABORTPATH* PEMRREALIZEPALETTE;
5202 +else /* non-unicode build */
5203 +{
5204 + alias BYTE BCHAR;
5205 + alias DOCINFOA DOCINFO;
5206 + alias LOGFONTA LOGFONT;
5207 + alias TEXTMETRICA TEXTMETRIC;
5208 + alias NPTEXTMETRICA NPTEXTMETRIC;
5209 + alias ICMENUMPROCA ICMENUMPROC;
5210 + alias FONTENUMPROCA FONTENUMPROC;
5211 + alias DEVMODEA DEVMODE;
5212 + alias EXTLOGFONTA EXTLOGFONT;
5213 + alias GCP_RESULTSA GCP_RESULTS;
5214 + alias OUTLINETEXTMETRICA OUTLINETEXTMETRIC;
5215 + alias POLYTEXTA POLYTEXT;
5216 + alias LOGCOLORSPACEA LOGCOLORSPACE;
5217 + alias NEWTEXTMETRICA NEWTEXTMETRIC;
5218 + alias NEWTEXTMETRICEXA NEWTEXTMETRICEX;
5219 + alias ENUMLOGFONTA ENUMLOGFONT;
5220 + alias ENUMLOGFONTEXA ENUMLOGFONTEX;
5221 + alias DISPLAY_DEVICEA DISPLAY_DEVICE;
4009 5222
4010 -struct tagEMRSELECTCLIPPATH {
4011 - EMR emr;
4012 - DWORD iMode;
4013 -}
4014 -alias tagEMRSELECTCLIPPATH EMRSELECTCLIPPATH;
4015 -alias tagEMRSELECTCLIPPATH* PEMRSELECTCLIPPATH;
4016 -alias tagEMRSELECTCLIPPATH EMRSETBKMODE;
4017 -alias tagEMRSELECTCLIPPATH* PEMRSETBKMODE;
4018 -alias tagEMRSELECTCLIPPATH EMRSETMAPMODE;
4019 -alias tagEMRSELECTCLIPPATH* PEMRSETMAPMODE;
4020 -alias tagEMRSELECTCLIPPATH EMRSETLAYOUT;
4021 -alias tagEMRSELECTCLIPPATH* PEMRSETLAYOUT;
4022 -alias tagEMRSELECTCLIPPATH EMRSETPOLYFILLMODE;
4023 -alias tagEMRSELECTCLIPPATH* PEMRSETPOLYFILLMODE;
4024 -alias tagEMRSELECTCLIPPATH EMRSETROP2;
4025 -alias tagEMRSELECTCLIPPATH* PEMRSETROP2;
4026 -alias tagEMRSELECTCLIPPATH EMRSETSTRETCHBLTMODE;
4027 -alias tagEMRSELECTCLIPPATH* PEMRSETSTRETCHBLTMODE;
4028 -alias tagEMRSELECTCLIPPATH EMRSETICMMODE;
4029 -alias tagEMRSELECTCLIPPATH* PEMRSETICMMODE;
4030 -alias tagEMRSELECTCLIPPATH EMRSETTEXTALIGN;
4031 -alias tagEMRSELECTCLIPPATH* PEMRSETTEXTALIGN;
4032 -
4033 -struct tagEMRSETMITERLIMIT {
4034 - EMR emr;
4035 - FLOAT eMiterLimit;
4036 -}
4037 -alias tagEMRSETMITERLIMIT EMRSETMITERLIMIT;
4038 -alias tagEMRSETMITERLIMIT* PEMRSETMITERLIMIT;
4039 -
4040 -struct tagEMRRESTOREDC {
4041 - EMR emr;
4042 - LONG iRelative;
4043 -}
4044 -alias tagEMRRESTOREDC EMRRESTOREDC;
4045 -alias tagEMRRESTOREDC* PEMRRESTOREDC;
4046 -
4047 -struct tagEMRSETARCDIRECTION {
4048 - EMR emr;
4049 - DWORD iArcDirection;
5223 + alias AddFontResourceA AddFontResource;
5224 + alias CopyEnhMetaFileA CopyEnhMetaFile;
5225 + alias CopyMetaFileA CopyMetaFile;
5226 + alias CreateColorSpaceA CreateColorSpace;
5227 + alias CreateDCA CreateDC;
5228 + alias CreateEnhMetaFileA CreateEnhMetaFile;
5229 + alias CreateFontA CreateFont;
5230 + alias CreateFontIndirectA CreateFontIndirect;
5231 + alias CreateICA CreateIC;
5232 + alias CreateMetaFileA CreateMetaFile;
5233 + alias CreateScalableFontResourceA CreateScalableFontResource;
5234 + alias DeviceCapabilitiesA DeviceCapabilities;
5235 + alias EnumFontFamiliesA EnumFontFamilies;
5236 + alias EnumFontFamiliesExA EnumFontFamiliesEx;
5237 + alias EnumFontsA EnumFonts;
5238 + alias EnumICMProfilesA EnumICMProfiles;
5239 + alias ExtTextOutA ExtTextOut;
5240 + alias GetCharWidthFloatA GetCharWidthFloat;
5241 + alias GetCharWidthA GetCharWidth;
5242 + alias GetCharacterPlacementA GetCharacterPlacement;
5243 + alias GetCharABCWidthsA GetCharABCWidths;
5244 + alias GetCharABCWidthsFloatA GetCharABCWidthsFloat;
5245 + alias GetCharWidth32A GetCharWidth32;
5246 + alias GetEnhMetaFileA GetEnhMetaFile;
5247 + alias GetEnhMetaFileDescriptionA GetEnhMetaFileDescription;
5248 + alias GetGlyphOutlineA GetGlyphOutline;
5249 + alias GetICMProfileA GetICMProfile;
5250 + alias GetKerningPairsA GetKerningPairs;
5251 + alias GetLogColorSpaceA GetLogColorSpace;
5252 + alias GetMetaFileA GetMetaFile;
5253 + alias GetObjectA GetObject;
5254 + alias GetOutlineTextMetricsA GetOutlineTextMetrics;
5255 + alias GetTextExtentPointA GetTextExtentPoint;
5256 + alias GetTextExtentExPointA GetTextExtentExPoint;
5257 + alias GetTextExtentPoint32A GetTextExtentPoint32;
5258 + alias GetTextFaceA GetTextFace;
5259 + alias GetTextMetricsA GetTextMetrics;
5260 + alias PolyTextOutA PolyTextOut;
5261 + alias RemoveFontResourceA RemoveFontResource;
5262 + alias ResetDCA ResetDC;
5263 + alias SetICMProfileA SetICMProfile;
5264 + alias StartDocA StartDoc;
5265 + alias TextOutA TextOut;
5266 + alias UpdateICMRegKeyA UpdateICMRegKey;
5267 + alias wglUseFontBitmapsA wglUseFontBitmaps;
5268 + alias wglUseFontOutlinesA wglUseFontOutlines;
5269 + static
4050 5270
4051 -}
4052 -alias tagEMRSETARCDIRECTION EMRSETARCDIRECTION;
4053 -alias tagEMRSETARCDIRECTION* PEMRSETARCDIRECTION;
4054 -
4055 -struct tagEMRSETMAPPERFLAGS {
4056 - EMR emr;
4057 - DWORD dwFlags;
4058 -}
4059 -alias tagEMRSETMAPPERFLAGS EMRSETMAPPERFLAGS;
4060 -alias tagEMRSETMAPPERFLAGS* PEMRSETMAPPERFLAGS;
4061 -
4062 -struct tagEMRSETTEXTCOLOR {
4063 - EMR emr;
4064 - COLORREF crColor;
4065 -}
4066 -alias tagEMRSETTEXTCOLOR EMRSETBKCOLOR;
4067 -alias tagEMRSETTEXTCOLOR* PEMRSETBKCOLOR;
4068 -alias tagEMRSETTEXTCOLOR EMRSETTEXTCOLOR;
4069 -alias tagEMRSETTEXTCOLOR* PEMRSETTEXTCOLOR;
4070 -
4071 -struct tagEMRSELECTOBJECT {
4072 - EMR emr;
4073 - DWORD ihObject;
4074 -}
4075 -alias tagEMRSELECTOBJECT EMRSELECTOBJECT;
4076 -alias tagEMRSELECTOBJECT* PEMRSELECTOBJECT;
4077 -alias tagEMRSELECTOBJECT EMRDELETEOBJECT;
4078 -alias tagEMRSELECTOBJECT* PEMRDELETEOBJECT;
4079 -
4080 -struct tagEMRSELECTPALETTE {
4081 - EMR emr;
4082 - DWORD ihPal;
4083 -}
4084 -alias tagEMRSELECTPALETTE EMRSELECTPALETTE;
4085 -alias tagEMRSELECTPALETTE* PEMRSELECTPALETTE;
4086 -
4087 -struct tagEMRRESIZEPALETTE {
4088 - EMR emr;
4089 - DWORD ihPal;
4090 - DWORD cEntries;
4091 -}
4092 -alias tagEMRRESIZEPALETTE EMRRESIZEPALETTE;
4093 -alias tagEMRRESIZEPALETTE* PEMRRESIZEPALETTE;
4094 -
4095 -struct tagEMRSETPALETTEENTRIES {
4096 - EMR emr;
4097 - DWORD ihPal;
4098 - DWORD iStart;
4099 - DWORD cEntries;
4100 - PALETTEENTRY aPalEntries[1];
4101 -}
4102 -alias tagEMRSETPALETTEENTRIES EMRSETPALETTEENTRIES;
4103 -alias tagEMRSETPALETTEENTRIES* PEMRSETPALETTEENTRIES;
4104 -
4105 -struct tagEMRSETCOLORADJUSTMENT {
4106 - EMR emr;
4107 - COLORADJUSTMENT ColorAdjustment;
4108 -}
4109 -alias tagEMRSETCOLORADJUSTMENT EMRSETCOLORADJUSTMENT;
4110 -alias tagEMRSETCOLORADJUSTMENT* PEMRSETCOLORADJUSTMENT;
4111 -
4112 -struct tagEMRGDICOMMENT {
4113 - EMR emr;
4114 - DWORD cbData;
4115 - BYTE Data[1];
4116 -}
4117 -alias tagEMRGDICOMMENT EMRGDICOMMENT;
4118 -alias tagEMRGDICOMMENT* PEMRGDICOMMENT;
4119 -
4120 -struct tagEMREOF {
4121 - EMR emr;
4122 - DWORD nPalEntries;
4123 - DWORD offPalEntries;
4124 - DWORD nSizeLast;
4125 -
4126 -}
4127 -alias tagEMREOF EMREOF;
4128 -alias tagEMREOF* PEMREOF;
4129 -
4130 -struct tagEMRLINETO {
4131 - EMR emr;
4132 - POINTL ptl;
4133 -}
4134 -alias tagEMRLINETO EMRLINETO;
4135 -alias tagEMRLINETO* PEMRLINETO;
4136 -alias tagEMRLINETO EMRMOVETOEX;
4137 -alias tagEMRLINETO* PEMRMOVETOEX;
4138 -
4139 -struct tagEMROFFSETCLIPRGN {
4140 - EMR emr;
4141 - POINTL ptlOffset;
4142 -}
4143 -alias tagEMROFFSETCLIPRGN EMROFFSETCLIPRGN;
4144 -alias tagEMROFFSETCLIPRGN* PEMROFFSETCLIPRGN;
4145 -
4146 -struct tagEMRFILLPATH {
4147 - EMR emr;
4148 - RECTL rclBounds;
4149 -}
4150 -alias tagEMRFILLPATH EMRFILLPATH;
4151 -alias tagEMRFILLPATH* PEMRFILLPATH;
4152 -alias tagEMRFILLPATH EMRSTROKEANDFILLPATH;
4153 -alias tagEMRFILLPATH* PEMRSTROKEANDFILLPATH;
4154 -alias tagEMRFILLPATH EMRSTROKEPATH;
4155 -alias tagEMRFILLPATH* PEMRSTROKEPATH;
4156 -
4157 -struct tagEMREXCLUDECLIPRECT {
4158 - EMR emr;
4159 - RECTL rclClip;
4160 -}
4161 -alias tagEMREXCLUDECLIPRECT EMREXCLUDECLIPRECT;
4162 -alias tagEMREXCLUDECLIPRECT* PEMREXCLUDECLIPRECT;
4163 -alias tagEMREXCLUDECLIPRECT EMRINTERSECTCLIPRECT;
4164 -alias tagEMREXCLUDECLIPRECT* PEMRINTERSECTCLIPRECT;
4165 -
4166 -struct tagEMRSETVIEWPORTORGEX {
4167 - EMR emr;
4168 - POINTL ptlOrigin;
4169 -}
4170 -alias tagEMRSETVIEWPORTORGEX EMRSETVIEWPORTORGEX;
4171 -alias tagEMRSETVIEWPORTORGEX* PEMRSETVIEWPORTORGEX;
4172 -alias tagEMRSETVIEWPORTORGEX EMRSETWINDOWORGEX;
4173 -alias tagEMRSETVIEWPORTORGEX* PEMRSETWINDOWORGEX;
4174 -alias tagEMRSETVIEWPORTORGEX EMRSETBRUSHORGEX;
4175 -alias tagEMRSETVIEWPORTORGEX* PEMRSETBRUSHORGEX;
4176 -
4177 -struct tagEMRSETVIEWPORTEXTEX {
4178 - EMR emr;
4179 - SIZEL szlExtent;
4180 -}
4181 -alias tagEMRSETVIEWPORTEXTEX EMRSETVIEWPORTEXTEX;
4182 -alias tagEMRSETVIEWPORTEXTEX* PEMRSETVIEWPORTEXTEX;
4183 -alias tagEMRSETVIEWPORTEXTEX EMRSETWINDOWEXTEX;
4184 -alias tagEMRSETVIEWPORTEXTEX* PEMRSETWINDOWEXTEX;
4185 -
4186 -struct tagEMRSCALEVIEWPORTEXTEX {
4187 - EMR emr;
4188 - LONG xNum;
4189 - LONG xDenom;
4190 - LONG yNum;
4191 - LONG yDenom;
4192 -}
4193 -alias tagEMRSCALEVIEWPORTEXTEX EMRSCALEVIEWPORTEXTEX;
4194 -alias tagEMRSCALEVIEWPORTEXTEX* PEMRSCALEVIEWPORTEXTEX;
4195 -alias tagEMRSCALEVIEWPORTEXTEX EMRSCALEWINDOWEXTEX;
4196 -alias tagEMRSCALEVIEWPORTEXTEX* PEMRSCALEWINDOWEXTEX;
4197 -
4198 -struct tagEMRSETWORLDTRANSFORM {
4199 - EMR emr;
4200 - XFORM xform;
5271 + if (_WIN32_WINNT >= 0x0500)
5272 + {
5273 + alias ENUMLOGFONTEXDVA ENUMLOGFONTEXDV;
5274 + alias PENUMLOGFONTEXDVA PENUMLOGFONTEXDV;
5275 + alias LPENUMLOGFONTEXDVA LPENUMLOGFONTEXDV;
5276 + alias AddFontResourceExA AddFontResourceEx;
5277 + alias RemoveFontResourceExA RemoveFontResourceEx;
5278 + alias GetGlyphIndicesA GetGlyphIndices;
5279 + }
4201 5280 }
4202 -alias tagEMRSETWORLDTRANSFORM EMRSETWORLDTRANSFORM;
4203 -alias tagEMRSETWORLDTRANSFORM* PEMRSETWORLDTRANSFORM;
4204 -
4205 -struct tagEMRMODIFYWORLDTRANSFORM {
4206 - EMR emr;
4207 - XFORM xform;
4208 - DWORD iMode;
4209 -}
4210 -alias tagEMRMODIFYWORLDTRANSFORM EMRMODIFYWORLDTRANSFORM;
4211 -alias tagEMRMODIFYWORLDTRANSFORM* PEMRMODIFYWORLDTRANSFORM;
4212 -
4213 -struct tagEMRSETPIXELV {
4214 - EMR emr;
4215 - POINTL ptlPixel;
4216 - COLORREF crColor;
4217 -}
4218 -alias tagEMRSETPIXELV EMRSETPIXELV;
4219 -alias tagEMRSETPIXELV* PEMRSETPIXELV;
4220 5281
4221 -struct tagEMREXTFLOODFILL {
4222 - EMR emr;
4223 - POINTL ptlStart;
4224 - COLORREF crColor;
4225 - DWORD iMode;
4226 -}
4227 -alias tagEMREXTFLOODFILL EMREXTFLOODFILL;
4228 -alias tagEMREXTFLOODFILL* PEMREXTFLOODFILL;
4229 -
4230 -struct tagEMRELLIPSE {
4231 - EMR emr;
4232 - RECTL rclBox;
4233 -}
4234 -alias tagEMRELLIPSE EMRELLIPSE;
4235 -alias tagEMRELLIPSE* PEMRELLIPSE;
4236 -alias tagEMRELLIPSE EMRRECTANGLE;
4237 -alias tagEMRELLIPSE* PEMRRECTANGLE;
4238 -
4239 -struct tagEMRROUNDRECT {
4240 - EMR emr;
4241 - RECTL rclBox;
4242 - SIZEL szlCorner;
4243 -}
4244 -alias tagEMRROUNDRECT EMRROUNDRECT;
4245 -alias tagEMRROUNDRECT* PEMRROUNDRECT;
4246 -
4247 -struct tagEMRARC {
4248 - EMR emr;
4249 - RECTL rclBox;
4250 - POINTL ptlStart;
4251 - POINTL ptlEnd;
4252 -}
4253 -alias tagEMRARC EMRARC;
4254 -alias tagEMRARC* PEMRARC;
4255 -alias tagEMRARC EMRARCTO;
4256 -alias tagEMRARC* PEMRARCTO;
4257 -alias tagEMRARC EMRCHORD;
4258 -alias tagEMRARC* PEMRCHORD;
4259 -alias tagEMRARC EMRPIE;
4260 -alias tagEMRARC* PEMRPIE;
4261 -
4262 -struct tagEMRANGLEARC {
4263 - EMR emr;
4264 - POINTL ptlCenter;
4265 - DWORD nRadius;
4266 - FLOAT eStartAngle;
4267 - FLOAT eSweepAngle;
4268 -}
4269 -alias tagEMRANGLEARC EMRANGLEARC;
4270 -alias tagEMRANGLEARC* PEMRANGLEARC;
4271 -
4272 -struct tagEMRPOLYLINE {
4273 - EMR emr;
4274 - RECTL rclBounds;
4275 - DWORD cptl;
4276 - POINTL aptl[1];
4277 -}
4278 -alias tagEMRPOLYLINE EMRPOLYLINE;
4279 -alias tagEMRPOLYLINE* PEMRPOLYLINE;
4280 -alias tagEMRPOLYLINE EMRPOLYBEZIER;
4281 -alias tagEMRPOLYLINE* PEMRPOLYBEZIER;
4282 -alias tagEMRPOLYLINE EMRPOLYGON;
4283 -alias tagEMRPOLYLINE* PEMRPOLYGON;
4284 -alias tagEMRPOLYLINE EMRPOLYBEZIERTO;
4285 -alias tagEMRPOLYLINE* PEMRPOLYBEZIERTO;
4286 -alias tagEMRPOLYLINE EMRPOLYLINETO;
4287 -alias tagEMRPOLYLINE* PEMRPOLYLINETO;
4288 -
4289 -struct tagEMRPOLYLINE16 {
4290 - EMR emr;
4291 - RECTL rclBounds;
4292 - DWORD cpts;
4293 - POINTS apts[1];
4294 -}
4295 -alias tagEMRPOLYLINE16 EMRPOLYLINE16;
4296 -alias tagEMRPOLYLINE16* PEMRPOLYLINE16;
4297 -alias tagEMRPOLYLINE16 EMRPOLYBEZIER16;
4298 -alias tagEMRPOLYLINE16* PEMRPOLYBEZIER16;
4299 -alias tagEMRPOLYLINE16 EMRPOLYGON16;
4300 -alias tagEMRPOLYLINE16* PEMRPOLYGON16;
4301 -alias tagEMRPOLYLINE16 EMRPOLYBEZIERTO16;
4302 -alias tagEMRPOLYLINE16* PEMRPOLYBEZIERTO16;
4303 -alias tagEMRPOLYLINE16 EMRPOLYLINETO16;
4304 -alias tagEMRPOLYLINE16* PEMRPOLYLINETO16;
4305 -
4306 -struct tagEMRPOLYDRAW {
4307 - EMR emr;
4308 - RECTL rclBounds;
4309 - DWORD cptl;
4310 - POINTL aptl[1];
4311 - BYTE abTypes[1];
4312 -}
4313 -alias tagEMRPOLYDRAW EMRPOLYDRAW;
4314 -alias tagEMRPOLYDRAW* PEMRPOLYDRAW;
4315 -
4316 -struct tagEMRPOLYDRAW16 {
4317 - EMR emr;
4318 - RECTL rclBounds;
4319 - DWORD cpts;
4320 - POINTS apts[1];
4321 - BYTE abTypes[1];
4322 -}
4323 -alias tagEMRPOLYDRAW16 EMRPOLYDRAW16;
4324 -alias tagEMRPOLYDRAW16* PEMRPOLYDRAW16;
4325 -
4326 -struct tagEMRPOLYPOLYLINE {
4327 - EMR emr;
4328 - RECTL rclBounds;
4329 - DWORD nPolys;
4330 - DWORD cptl;
4331 - DWORD aPolyCounts[1];
4332 - POINTL aptl[1];
4333 -}
4334 -alias tagEMRPOLYPOLYLINE EMRPOLYPOLYLINE;
4335 -alias tagEMRPOLYPOLYLINE* PEMRPOLYPOLYLINE;
4336 -alias tagEMRPOLYPOLYLINE EMRPOLYPOLYGON;
4337 -alias tagEMRPOLYPOLYLINE* PEMRPOLYPOLYGON;
4338 -
4339 -struct tagEMRPOLYPOLYLINE16 {
4340 - EMR emr;
4341 - RECTL rclBounds;
4342 - DWORD nPolys;
4343 - DWORD cpts;
4344 - DWORD aPolyCounts[1];
4345 - POINTS apts[1];
4346 -}
4347 -alias tagEMRPOLYPOLYLINE16 EMRPOLYPOLYLINE16;
4348 -alias tagEMRPOLYPOLYLINE16* PEMRPOLYPOLYLINE16;
4349 -alias tagEMRPOLYPOLYLINE16 EMRPOLYPOLYGON16;
4350 -alias tagEMRPOLYPOLYLINE16* PEMRPOLYPOLYGON16;
4351 -
4352 -struct tagEMRINVERTRGN {
4353 - EMR emr;
4354 - RECTL rclBounds;
4355 - DWORD cbRgnData;
4356 - BYTE RgnData[1];
4357 -}
4358 -alias tagEMRINVERTRGN EMRINVERTRGN;
4359 -alias tagEMRINVERTRGN* PEMRINVERTRGN;
4360 -alias tagEMRINVERTRGN EMRPAINTRGN;
4361 -alias tagEMRINVERTRGN* PEMRPAINTRGN;
4362 -
4363 -struct tagEMRFILLRGN {
4364 - EMR emr;
4365 - RECTL rclBounds;
4366 - DWORD cbRgnData;
4367 - DWORD ihBrush;
4368 - BYTE RgnData[1];
4369 -}
4370 -alias tagEMRFILLRGN EMRFILLRGN;
4371 -alias tagEMRFILLRGN* PEMRFILLRGN;
4372 -
4373 -struct tagEMRFRAMERGN {
4374 - EMR emr;
4375 - RECTL rclBounds;
4376 - DWORD cbRgnData;
4377 - DWORD ihBrush;
4378 - SIZEL szlStroke;
4379 - BYTE RgnData[1];
4380 -}
4381 -alias tagEMRFRAMERGN EMRFRAMERGN;
4382 -alias tagEMRFRAMERGN* PEMRFRAMERGN;
4383 -
4384 -struct tagEMREXTSELECTCLIPRGN {
4385 - EMR emr;
4386 - DWORD cbRgnData;
4387 - DWORD iMode;
4388 - BYTE RgnData[1];
4389 -}
4390 -alias tagEMREXTSELECTCLIPRGN EMREXTSELECTCLIPRGN;
4391 -alias tagEMREXTSELECTCLIPRGN* PEMREXTSELECTCLIPRGN;
4392 -
4393 -struct tagEMREXTTEXTOUTA {
4394 - EMR emr;
4395 - RECTL rclBounds;
4396 - DWORD iGraphicsMode;
4397 - FLOAT exScale;
4398 - FLOAT eyScale;
4399 - EMRTEXT emrtext;
4400 -
4401 -}
4402 -alias tagEMREXTTEXTOUTA EMREXTTEXTOUTA;
4403 -alias tagEMREXTTEXTOUTA* PEMREXTTEXTOUTA;
4404 -alias tagEMREXTTEXTOUTA EMREXTTEXTOUTW;
4405 -alias tagEMREXTTEXTOUTA* PEMREXTTEXTOUTW;
4406 -
4407 -struct tagEMRPOLYTEXTOUTA {
4408 - EMR emr;
4409 - RECTL rclBounds;
4410 - DWORD iGraphicsMode;
4411 - FLOAT exScale;
4412 - FLOAT eyScale;
4413 - LONG cStrings;
4414 - EMRTEXT aemrtext[1];
4415 -
4416 -}
4417 -alias tagEMRPOLYTEXTOUTA EMRPOLYTEXTOUTA;
4418 -alias tagEMRPOLYTEXTOUTA* PEMRPOLYTEXTOUTA;
4419 -alias tagEMRPOLYTEXTOUTA EMRPOLYTEXTOUTW;
4420 -alias tagEMRPOLYTEXTOUTA* PEMRPOLYTEXTOUTW;
4421 -
4422 -struct tagEMRBITBLT {
4423 - EMR emr;
4424 - RECTL rclBounds;
4425 - LONG xDest;
4426 - LONG yDest;
4427 - LONG cxDest;
4428 - LONG cyDest;
4429 - DWORD dwRop;
4430 - LONG xSrc;
4431 - LONG ySrc;
4432 - XFORM xformSrc;
4433 - COLORREF crBkColorSrc;
4434 - DWORD iUsageSrc;
4435 -
4436 - DWORD offBmiSrc;
4437 - DWORD cbBmiSrc;
4438 - DWORD offBitsSrc;
4439 - DWORD cbBitsSrc;
4440 -}
4441 -alias tagEMRBITBLT EMRBITBLT;
4442 -alias tagEMRBITBLT* PEMRBITBLT;
4443 -
4444 -struct tagEMRSTRETCHBLT {
4445 - EMR emr;
4446 - RECTL rclBounds;
4447 - LONG xDest;
4448 - LONG yDest;
4449 - LONG cxDest;
4450 - LONG cyDest;
4451 - DWORD dwRop;
4452 - LONG xSrc;
4453 - LONG ySrc;
4454 - XFORM xformSrc;
4455 - COLORREF crBkColorSrc;
4456 - DWORD iUsageSrc;
4457 -
4458 - DWORD offBmiSrc;
4459 - DWORD cbBmiSrc;
4460 - DWORD offBitsSrc;
4461 - DWORD cbBitsSrc;
4462 - LONG cxSrc;
4463 - LONG cySrc;
4464 -}
4465 -alias tagEMRSTRETCHBLT EMRSTRETCHBLT;
4466 -alias tagEMRSTRETCHBLT* PEMRSTRETCHBLT;
4467 -
4468 -struct tagEMRMASKBLT {
4469 - EMR emr;
4470 - RECTL rclBounds;
4471 - LONG xDest;
4472 - LONG yDest;
4473 - LONG cxDest;
4474 - LONG cyDest;
4475 - DWORD dwRop;
4476 - LONG xSrc;
4477 - LONG ySrc;
4478 - XFORM xformSrc;
4479 - COLORREF crBkColorSrc;
4480 - DWORD iUsageSrc;
4481 -
4482 - DWORD offBmiSrc;
4483 - DWORD cbBmiSrc;
4484 - DWORD offBitsSrc;
4485 - DWORD cbBitsSrc;
4486 - LONG xMask;
4487 - LONG yMask;
4488 - DWORD iUsageMask;
4489 - DWORD offBmiMask;
4490 - DWORD cbBmiMask;
4491 - DWORD offBitsMask;
4492 - DWORD cbBitsMask;
4493 -}
4494 -alias tagEMRMASKBLT EMRMASKBLT;
4495 -alias tagEMRMASKBLT* PEMRMASKBLT;
4496 -
4497 -struct tagEMRPLGBLT {
4498 - EMR emr;
4499 - RECTL rclBounds;
4500 - POINTL aptlDest[3];
4501 - LONG xSrc;
4502 - LONG ySrc;
4503 - LONG cxSrc;
4504 - LONG cySrc;
4505 - XFORM xformSrc;
4506 - COLORREF crBkColorSrc;
4507 - DWORD iUsageSrc;
4508 -
4509 - DWORD offBmiSrc;
4510 - DWORD cbBmiSrc;
4511 - DWORD offBitsSrc;
4512 - DWORD cbBitsSrc;
4513 - LONG xMask;
4514 - LONG yMask;
4515 - DWORD iUsageMask;
4516 - DWORD offBmiMask;
4517 - DWORD cbBmiMask;
4518 - DWORD offBitsMask;
4519 - DWORD cbBitsMask;
4520 -}
4521 -alias tagEMRPLGBLT EMRPLGBLT;
4522 -alias tagEMRPLGBLT* PEMRPLGBLT;
4523 -
4524 -struct tagEMRSETDIBITSTODEVICE {
4525 - EMR emr;
4526 - RECTL rclBounds;
4527 - LONG xDest;
4528 - LONG yDest;
4529 - LONG xSrc;
4530 - LONG ySrc;
4531 - LONG cxSrc;
4532 - LONG cySrc;
4533 - DWORD offBmiSrc;
4534 - DWORD cbBmiSrc;
4535 - DWORD offBitsSrc;
4536 - DWORD cbBitsSrc;
4537 - DWORD iUsageSrc;
4538 - DWORD iStartScan;
4539 - DWORD cScans;
4540 -}
4541 -alias tagEMRSETDIBITSTODEVICE EMRSETDIBITSTODEVICE;
4542 -alias tagEMRSETDIBITSTODEVICE* PEMRSETDIBITSTODEVICE;
4543 -
4544 -struct tagEMRSTRETCHDIBITS {
4545 - EMR emr;
4546 - RECTL rclBounds;
4547 - LONG xDest;
4548 - LONG yDest;
4549 - LONG xSrc;
4550 - LONG ySrc;
4551 - LONG cxSrc;
4552 - LONG cySrc;
4553 - DWORD offBmiSrc;
4554 - DWORD cbBmiSrc;
4555 - DWORD offBitsSrc;
4556 - DWORD cbBitsSrc;
4557 - DWORD iUsageSrc;
4558 - DWORD dwRop;
4559 - LONG cxDest;
4560 - LONG cyDest;
4561 -}
4562 -alias tagEMRSTRETCHDIBITS EMRSTRETCHDIBITS;
4563 -alias tagEMRSTRETCHDIBITS* PEMRSTRETCHDIBITS;
4564 -
4565 -struct tagEMREXTCREATEFONTINDIRECTW {
4566 - EMR emr;
4567 - DWORD ihFont;
4568 - EXTLOGFONTW elfw;
4569 -}
4570 -alias tagEMREXTCREATEFONTINDIRECTW EMREXTCREATEFONTINDIRECTW;
4571 -alias tagEMREXTCREATEFONTINDIRECTW* PEMREXTCREATEFONTINDIRECTW;
4572 -
4573 -struct tagEMRCREATEPALETTE {
4574 - EMR emr;
4575 - DWORD ihPal;
4576 - LOGPALETTE lgpl;
4577 -
4578 -}
4579 -alias tagEMRCREATEPALETTE EMRCREATEPALETTE;
4580 -alias tagEMRCREATEPALETTE* PEMRCREATEPALETTE;
4581 -
4582 -struct tagEMRCREATEPEN {
4583 - EMR emr;
4584 - DWORD ihPen;
4585 - LOGPEN lopn;
4586 -}
4587 -alias tagEMRCREATEPEN EMRCREATEPEN;
4588 -alias tagEMRCREATEPEN* PEMRCREATEPEN;
4589 -
4590 -struct tagEMREXTCREATEPEN {
4591 - EMR emr;
4592 - DWORD ihPen;
4593 - DWORD offBmi;
4594 - DWORD cbBmi;
4595 -
4596 - DWORD offBits;
4597 - DWORD cbBits;
4598 - EXTLOGPEN elp;
4599 -}
4600 -alias tagEMREXTCREATEPEN EMREXTCREATEPEN;
4601 -alias tagEMREXTCREATEPEN* PEMREXTCREATEPEN;
4602 -
4603 -struct tagEMRCREATEBRUSHINDIRECT {
4604 - EMR emr;
4605 - DWORD ihBrush;
4606 - LOGBRUSH32 lb;
4607 -
4608 -}
4609 -alias tagEMRCREATEBRUSHINDIRECT EMRCREATEBRUSHINDIRECT;
4610 -alias tagEMRCREATEBRUSHINDIRECT* PEMRCREATEBRUSHINDIRECT;
4611 -
4612 -struct tagEMRCREATEMONOBRUSH {
4613 - EMR emr;
4614 - DWORD ihBrush;
4615 - DWORD iUsage;
4616 - DWORD offBmi;
4617 - DWORD cbBmi;
4618 - DWORD offBits;
4619 - DWORD cbBits;
4620 -}
4621 -alias tagEMRCREATEMONOBRUSH EMRCREATEMONOBRUSH;
4622 -alias tagEMRCREATEMONOBRUSH* PEMRCREATEMONOBRUSH;
4623 -
4624 -struct tagEMRCREATEDIBPATTERNBRUSHPT {
4625 - EMR emr;
4626 - DWORD ihBrush;
4627 - DWORD iUsage;
4628 - DWORD offBmi;
4629 - DWORD cbBmi;
4630 -
4631 - DWORD offBits;
4632 - DWORD cbBits;
4633 -}
4634 -alias tagEMRCREATEDIBPATTERNBRUSHPT EMRCREATEDIBPATTERNBRUSHPT;
4635 -alias tagEMRCREATEDIBPATTERNBRUSHPT* PEMRCREATEDIBPATTERNBRUSHPT;
4636 -
4637 -struct tagEMRFORMAT {
4638 - DWORD dSignature;
4639 - DWORD nVersion;
4640 - DWORD cbData;
4641 - DWORD offData;
4642 -
4643 -}
4644 -alias tagEMRFORMAT EMRFORMAT;
4645 -alias tagEMRFORMAT* PEMRFORMAT;
4646 -
4647 -// #if(WINVER >= 0x0400)
4648 -
4649 -struct tagEMRGLSRECORD {
4650 - EMR emr;
4651 - DWORD cbData;
4652 - BYTE Data[1];
4653 -}
4654 -alias tagEMRGLSRECORD EMRGLSRECORD;
4655 -alias tagEMRGLSRECORD* PEMRGLSRECORD;
4656 -
4657 -struct tagEMRGLSBOUNDEDRECORD {
4658 - EMR emr;
4659 - RECTL rclBounds;
4660 - DWORD cbData;
4661 - BYTE Data[1];
4662 -}
4663 -alias tagEMRGLSBOUNDEDRECORD EMRGLSBOUNDEDRECORD;
4664 -alias tagEMRGLSBOUNDEDRECORD* PEMRGLSBOUNDEDRECORD;
4665 -
4666 -struct tagEMRPIXELFORMAT {
4667 - EMR emr;
4668 - PIXELFORMATDESCRIPTOR pfd;
4669 -}
4670 -alias tagEMRPIXELFORMAT EMRPIXELFORMAT;
4671 -alias tagEMRPIXELFORMAT* PEMRPIXELFORMAT;
4672 -
4673 -struct tagEMRCREATECOLORSPACE {
4674 - EMR emr;
4675 - DWORD ihCS;
4676 - LOGCOLORSPACEA lcs;
4677 -}
4678 -alias tagEMRCREATECOLORSPACE EMRCREATECOLORSPACE;
4679 -alias tagEMRCREATECOLORSPACE* PEMRCREATECOLORSPACE;
4680 -
4681 -struct tagEMRSETCOLORSPACE {
4682 - EMR emr;
4683 - DWORD ihCS;
4684 -}
4685 -alias tagEMRSETCOLORSPACE EMRSETCOLORSPACE;
4686 -alias tagEMRSETCOLORSPACE* PEMRSETCOLORSPACE;
4687 -alias tagEMRSETCOLORSPACE EMRSELECTCOLORSPACE;
4688 -alias tagEMRSETCOLORSPACE* PEMRSELECTCOLORSPACE;
4689 -alias tagEMRSETCOLORSPACE EMRDELETECOLORSPACE;
4690 -alias tagEMRSETCOLORSPACE* PEMRDELETECOLORSPACE;
4691 -
4692 -// #endif /* WINVER >= 0x0400 */
4693 -
4694 -// #if(WINVER >= 0x0500)
4695 -
4696 -struct tagEMREXTESCAPE {
4697 - EMR emr;
4698 - INT iEscape;
4699 - INT cbEscData;
4700 - BYTE EscData[1];
4701 -}
4702 -alias tagEMREXTESCAPE EMREXTESCAPE;
4703 -alias tagEMREXTESCAPE* PEMREXTESCAPE;
4704 -alias tagEMREXTESCAPE EMRDRAWESCAPE;
4705 -alias tagEMREXTESCAPE* PEMRDRAWESCAPE;
4706 -
4707 -struct tagEMRNAMEDESCAPE {
4708 - EMR emr;
4709 - INT iEscape;
4710 - INT cbDriver;
4711 - INT cbEscData;
4712 - BYTE EscData[1];
4713 -}
4714 -alias tagEMRNAMEDESCAPE EMRNAMEDESCAPE;
4715 -alias tagEMRNAMEDESCAPE* PEMRNAMEDESCAPE;
4716 -
4717 -enum : uint { SETICMPROFILE_EMBEDED = 0x00000001 }
4718 -
4719 -struct tagEMRSETICMPROFILE {
4720 - EMR emr;
4721 - DWORD dwFlags;
4722 - DWORD cbName;
4723 - DWORD cbData;
4724 - BYTE Data[1];
4725 -}
4726 -alias tagEMRSETICMPROFILE EMRSETICMPROFILE;
4727 -alias tagEMRSETICMPROFILE* PEMRSETICMPROFILE;
4728 -alias tagEMRSETICMPROFILE EMRSETICMPROFILEA;
4729 -alias tagEMRSETICMPROFILE* PEMRSETICMPROFILEA;
4730 -alias tagEMRSETICMPROFILE EMRSETICMPROFILEW;
4731 -alias tagEMRSETICMPROFILE* PEMRSETICMPROFILEW;
4732 -
4733 -enum : uint { CREATECOLORSPACE_EMBEDED = 0x00000001 }
4734 -
4735 -struct tagEMRCREATECOLORSPACEW {
4736 - EMR emr;
4737 - DWORD ihCS;
4738 - LOGCOLORSPACEW lcs;
4739 - DWORD dwFlags;
4740 - DWORD cbData;
4741 - BYTE Data[1];
4742 -}
4743 -alias tagEMRCREATECOLORSPACEW EMRCREATECOLORSPACEW;
4744 -alias tagEMRCREATECOLORSPACEW* PEMRCREATECOLORSPACEW;
4745 -
4746 -enum : uint { COLORMATCHTOTARGET_EMBEDED = 0x00000001 }
4747 -
4748 -struct tagCOLORMATCHTOTARGET {
4749 - EMR emr;
4750 - DWORD dwAction;
4751 - DWORD dwFlags;
4752 - DWORD cbName;
4753 - DWORD cbData;
4754 - BYTE Data[1];
4755 -}
4756 -alias tagCOLORMATCHTOTARGET EMRCOLORMATCHTOTARGET;
4757 -alias tagCOLORMATCHTOTARGET* PEMRCOLORMATCHTOTARGET;
4758 -
4759 -struct tagCOLORCORRECTPALETTE {
4760 - EMR emr;
4761 - DWORD ihPalette;
4762 - DWORD nFirstEntry;
4763 - DWORD nPalEntries;
4764 - DWORD nReserved;
4765 -}
4766 -alias tagCOLORCORRECTPALETTE EMRCOLORCORRECTPALETTE;
4767 -alias tagCOLORCORRECTPALETTE* PEMRCOLORCORRECTPALETTE;
4768 -
4769 -struct tagEMRALPHABLEND {
4770 - EMR emr;
4771 - RECTL rclBounds;
4772 - LONG xDest;
4773 - LONG yDest;
4774 - LONG cxDest;
4775 - LONG cyDest;
4776 - DWORD dwRop;
4777 - LONG xSrc;
4778 - LONG ySrc;
4779 - XFORM xformSrc;
4780 - COLORREF crBkColorSrc;
4781 - DWORD iUsageSrc;
4782 -
4783 - DWORD offBmiSrc;
4784 - DWORD cbBmiSrc;
4785 - DWORD offBitsSrc;
4786 - DWORD cbBitsSrc;
4787 - LONG cxSrc;
4788 - LONG cySrc;
4789 -}
4790 -alias tagEMRALPHABLEND EMRALPHABLEND;
4791 -alias tagEMRALPHABLEND* PEMRALPHABLEND;
4792 -
4793 -struct tagEMRGRADIENTFILL {
4794 - EMR emr;
4795 - RECTL rclBounds;
4796 - DWORD nVer;
4797 - DWORD nTri;
4798 - ULONG ulMode;
4799 - TRIVERTEX Ver[1];
4800 -}
4801 -alias tagEMRGRADIENTFILL EMRGRADIENTFILL;
4802 -alias tagEMRGRADIENTFILL* PEMRGRADIENTFILL;
4803 -
4804 -struct tagEMRTRANSPARENTBLT {
4805 - EMR emr;
4806 - RECTL rclBounds;
4807 - LONG xDest;
4808 - LONG yDest;
4809 - LONG cxDest;
4810 - LONG cyDest;
4811 - DWORD dwRop;
4812 - LONG xSrc;
4813 - LONG ySrc;
4814 - XFORM xformSrc;
4815 - COLORREF crBkColorSrc;
4816 - DWORD iUsageSrc;
4817 -
4818 - DWORD offBmiSrc;
4819 - DWORD cbBmiSrc;
4820 - DWORD offBitsSrc;
4821 - DWORD cbBitsSrc;
4822 - LONG cxSrc;
4823 - LONG cySrc;
4824 -}
4825 -alias tagEMRTRANSPARENTBLT EMRTRANSPARENTBLT;
4826 -alias tagEMRTRANSPARENTBLT* PEMRTRANSPARENTBLT;
4827 -
4828 -// #endif /* WINVER >= 0x0500 */
4829 -
4830 -enum : uint { GDICOMMENT_IDENTIFIER = 0x43494447 }
4831 -enum : uint { GDICOMMENT_WINDOWS_METAFILE = 0x80000001 }
4832 -enum : uint { GDICOMMENT_BEGINGROUP = 0x00000002 }
4833 -enum : uint { GDICOMMENT_ENDGROUP = 0x00000003 }
4834 -enum : uint { GDICOMMENT_MULTIFORMATS = 0x40000004 }
4835 -enum : uint { EPS_SIGNATURE = 0x46535045 }
4836 -enum : uint { GDICOMMENT_UNICODE_STRING = 0x00000040 }
4837 -enum : uint { GDICOMMENT_UNICODE_END = 0x00000080 }
4838 -
4839 -// #endif /* NOMETAFILE */
4840 -
4841 -extern(Windows) export BOOL wglCopyContext(HGLRC, HGLRC, UINT);
4842 -extern(Windows) export HGLRC wglCreateContext(HDC);
4843 -extern(Windows) export HGLRC wglCreateLayerContext(HDC, int);
4844 -extern(Windows) export BOOL wglDeleteContext(HGLRC);
4845 -extern(Windows) export HGLRC wglGetCurrentContext();
4846 -extern(Windows) export HDC wglGetCurrentDC();
4847 -extern(Windows) export PROC wglGetProcAddress(LPCSTR);
4848 -extern(Windows) export BOOL wglMakeCurrent(HDC, HGLRC);
4849 -extern(Windows) export BOOL wglShareLists(HGLRC, HGLRC);
4850 -extern(Windows) export BOOL wglUseFontBitmapsA(HDC, DWORD, DWORD, DWORD);
4851 -extern(Windows) export BOOL wglUseFontBitmapsW(HDC, DWORD, DWORD, DWORD);
4852 -// #ifdef UNICODE
4853 -alias wglUseFontBitmapsW wglUseFontBitmaps;
4854 -// #else
4855 -// #...
4856 -// #endif // !UNICODE
4857 -extern(Windows) export BOOL SwapBuffers(HDC);
4858 -
4859 -struct _POINTFLOAT {
4860 - FLOAT x;
4861 - FLOAT y;
4862 -}
4863 -alias _POINTFLOAT POINTFLOAT;
4864 -alias _POINTFLOAT* PPOINTFLOAT;
4865 -
4866 -struct _GLYPHMETRICSFLOAT {
4867 - FLOAT gmfBlackBoxX;
4868 - FLOAT gmfBlackBoxY;
4869 - POINTFLOAT gmfptGlyphOrigin;
4870 - FLOAT gmfCellIncX;
4871 - FLOAT gmfCellIncY;
4872 -}
4873 -alias _GLYPHMETRICSFLOAT GLYPHMETRICSFLOAT;
4874 -alias _GLYPHMETRICSFLOAT* PGLYPHMETRICSFLOAT;
4875 -alias _GLYPHMETRICSFLOAT* LPGLYPHMETRICSFLOAT;
4876 -
4877 -enum : uint { WGL_FONT_LINES = 0 }
4878 -enum : uint { WGL_FONT_POLYGONS = 1 }
4879 -extern(Windows) export BOOL wglUseFontOutlinesA(HDC, DWORD, DWORD, DWORD, FLOAT,
4880 - FLOAT, int, LPGLYPHMETRICSFLOAT);
4881 -extern(Windows) export BOOL wglUseFontOutlinesW(HDC, DWORD, DWORD, DWORD, FLOAT,
4882 - FLOAT, int, LPGLYPHMETRICSFLOAT);
4883 -// #ifdef UNICODE
4884 -alias wglUseFontOutlinesW wglUseFontOutlines;
4885 -// #else
4886 -// #...
4887 -// #endif // !UNICODE
4888 -
4889 -struct tagLAYERPLANEDESCRIPTOR {
4890 - WORD nSize;
4891 - WORD nVersion;
4892 - DWORD dwFlags;
4893 - BYTE iPixelType;
4894 - BYTE cColorBits;
4895 - BYTE cRedBits;
4896 - BYTE cRedShift;
4897 - BYTE cGreenBits;
4898 - BYTE cGreenShift;
4899 - BYTE cBlueBits;
4900 - BYTE cBlueShift;
4901 - BYTE cAlphaBits;
4902 - BYTE cAlphaShift;
4903 - BYTE cAccumBits;
4904 - BYTE cAccumRedBits;
4905 - BYTE cAccumGreenBits;
4906 - BYTE cAccumBlueBits;
4907 - BYTE cAccumAlphaBits;
4908 - BYTE cDepthBits;
4909 - BYTE cStencilBits;
4910 - BYTE cAuxBuffers;
4911 - BYTE iLayerPlane;
4912 - BYTE bReserved;
4913 - COLORREF crTransparent;
4914 -}
4915 -alias tagLAYERPLANEDESCRIPTOR LAYERPLANEDESCRIPTOR;
4916 -alias tagLAYERPLANEDESCRIPTOR* PLAYERPLANEDESCRIPTOR;
4917 -alias tagLAYERPLANEDESCRIPTOR* LPLAYERPLANEDESCRIPTOR;
4918 -
4919 -enum : uint { LPD_DOUBLEBUFFER = 0x00000001 }
4920 -enum : uint { LPD_STEREO = 0x00000002 }
4921 -enum : uint { LPD_SUPPORT_GDI = 0x00000010 }
4922 -enum : uint { LPD_SUPPORT_OPENGL = 0x00000020 }
4923 -enum : uint { LPD_SHARE_DEPTH = 0x00000040 }
4924 -enum : uint { LPD_SHARE_STENCIL = 0x00000080 }
4925 -enum : uint { LPD_SHARE_ACCUM = 0x00000100 }
4926 -enum : uint { LPD_SWAP_EXCHANGE = 0x00000200 }
4927 -enum : uint { LPD_SWAP_COPY = 0x00000400 }
4928 -enum : uint { LPD_TRANSPARENT = 0x00001000 }
4929 -
4930 -enum : uint { LPD_TYPE_RGBA = 0 }
4931 -enum : uint { LPD_TYPE_COLORINDEX = 1 }
4932 -
4933 -enum : uint { WGL_SWAP_MAIN_PLANE = 0x00000001 }
4934 -enum : uint { WGL_SWAP_OVERLAY1 = 0x00000002 }
4935 -enum : uint { WGL_SWAP_OVERLAY2 = 0x00000004 }
4936 -enum : uint { WGL_SWAP_OVERLAY3 = 0x00000008 }
4937 -enum : uint { WGL_SWAP_OVERLAY4 = 0x00000010 }
4938 -enum : uint { WGL_SWAP_OVERLAY5 = 0x00000020 }
4939 -enum : uint { WGL_SWAP_OVERLAY6 = 0x00000040 }
4940 -enum : uint { WGL_SWAP_OVERLAY7 = 0x00000080 }
4941 -enum : uint { WGL_SWAP_OVERLAY8 = 0x00000100 }
4942 -enum : uint { WGL_SWAP_OVERLAY9 = 0x00000200 }
4943 -enum : uint { WGL_SWAP_OVERLAY10 = 0x00000400 }
4944 -enum : uint { WGL_SWAP_OVERLAY11 = 0x00000800 }
4945 -enum : uint { WGL_SWAP_OVERLAY12 = 0x00001000 }
4946 -enum : uint { WGL_SWAP_OVERLAY13 = 0x00002000 }
4947 -enum : uint { WGL_SWAP_OVERLAY14 = 0x00004000 }
4948 -enum : uint { WGL_SWAP_OVERLAY15 = 0x00008000 }
4949 -enum : uint { WGL_SWAP_UNDERLAY1 = 0x00010000 }
4950 -enum : uint { WGL_SWAP_UNDERLAY2 = 0x00020000 }
4951 -enum : uint { WGL_SWAP_UNDERLAY3 = 0x00040000 }
4952 -enum : uint { WGL_SWAP_UNDERLAY4 = 0x00080000 }
4953 -enum : uint { WGL_SWAP_UNDERLAY5 = 0x00100000 }
4954 -enum : uint { WGL_SWAP_UNDERLAY6 = 0x00200000 }
4955 -enum : uint { WGL_SWAP_UNDERLAY7 = 0x00400000 }
4956 -enum : uint { WGL_SWAP_UNDERLAY8 = 0x00800000 }
4957 -enum : uint { WGL_SWAP_UNDERLAY9 = 0x01000000 }
4958 -enum : uint { WGL_SWAP_UNDERLAY10 = 0x02000000 }
4959 -enum : uint { WGL_SWAP_UNDERLAY11 = 0x04000000 }
4960 -enum : uint { WGL_SWAP_UNDERLAY12 = 0x08000000 }
4961 -enum : uint { WGL_SWAP_UNDERLAY13 = 0x10000000 }
4962 -enum : uint { WGL_SWAP_UNDERLAY14 = 0x20000000 }
4963 -enum : uint { WGL_SWAP_UNDERLAY15 = 0x40000000 }
4964 -
4965 -extern(Windows) export BOOL wglDescribeLayerPlane(HDC, int, int, UINT,
4966 - LPLAYERPLANEDESCRIPTOR);
4967 -extern(Windows) export int wglSetLayerPaletteEntries(HDC, int, int, int,
4968 - COLORREF *);
4969 -extern(Windows) export int wglGetLayerPaletteEntries(HDC, int, int, int,
4970 - COLORREF *);
4971 -extern(Windows) export BOOL wglRealizeLayerPalette(HDC, int, BOOL);
4972 -extern(Windows) export BOOL wglSwapLayerBuffers(HDC, UINT);
4973 -
4974 -// #if (WINVER >= 0x0500)
4975 -
4976 -struct _WGLSWAP {
4977 - HDC hdc;
4978 - UINT uiFlags;
4979 -}
4980 -alias _WGLSWAP WGLSWAP;
4981 -alias _WGLSWAP* PWGLSWAP;
4982 -alias _WGLSWAP* LPWGLSWAP;
4983 -
4984 -enum : uint { WGL_SWAPMULTIPLE_MAX = 16 }
4985 -
4986 -extern(Windows) export DWORD wglSwapMultipleBuffers(UINT, WGLSWAP *);
4987 -
4988 -// #endif // (WINVER >= 0x0500)
4989 -
4990 -// #endif /* NOGDI */
4991 -
4992 -// #ifdef __cplusplus
4993 -// }
4994 -// #endif
4995 -
4996 -// #endif /* _WINGDI_ */
4997 -
5282 +// Common to both ASCII & UNICODE
5283 +alias DOCINFO*LPDOCINFO;
5284 +alias LOGFONT*PLOGFONT, NPLOGFONT, LPLOGFONT;
5285 +alias TEXTMETRIC*PTEXTMETRIC, LPTEXTMETRIC;
5286 +alias DEVMODE*PDEVMODE, NPDEVMODE, LPDEVMODE;
5287 +alias EXTLOGFONT *PEXTLOGFONT, NPEXTLOGFONT, LPEXTLOGFONT;
5288 +alias GCP_RESULTS*LPGCP_RESULTS;
5289 +alias OUTLINETEXTMETRIC*POUTLINETEXTMETRIC, NPOUTLINETEXTMETRIC, LPOUTLINETEXTMETRIC;
5290 +alias POLYTEXT*PPOLYTEXT, NPPOLYTEXT, LPPOLYTEXT;
5291 +alias LOGCOLORSPACE*LPLOGCOLORSPACE;
5292 +alias NEWTEXTMETRIC*PNEWTEXTMETRIC, NPNEWTEXTMETRIC, LPNEWTEXTMETRIC;
5293 +alias ENUMLOGFONT*LPENUMLOGFONT;
5294 +alias ENUMLOGFONTEX *LPENUMLOGFONTEX;
5295 +alias DISPLAY_DEVICE*PDISPLAY_DEVICE, LPDISPLAY_DEVICE;