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