Differences From Artifact [ea907e90fcf49ce3]:
- File
src/win32/windef.d
- 2011-02-23 12:53:16 - part of checkin [c2b7a98c21] on branch trunk - Initial import (user: kinaba) [annotate]
To Artifact [d85b79a6d3b758cc]:
- File
src/win32/windef.d
- 2015-04-21 10:46:55 - part of checkin [4e2933c620] on branch trunk - Rebased to the latest verson dmd 2.067. Not yet verified the outcome. (user: kinaba) [annotate]
> 1
> 2 /***********************************************************************\
> 3 * windef.d *
> 4 * *
> 5 * Windows API header module *
> 6 * *
> 7 * Translated from MinGW Windows headers *
> 8 * by Stewart Gordon *
> 9 * *
> 10 * Placed into public domain *
> 11 \***********************************************************************/
1 module win32.windef; 12 module win32.windef;
2 13
3 // Translated from Microsoft Platform SDK August 2001 Edition | 14 public import win32.winnt;
4 // by Y.Tomino (demoonlit@inter7.jp) | 15 private import win32.w32api;
> 16
> 17 const size_t MAX_PATH = 260;
> 18
> 19 ushort MAKEWORD(ubyte a, ubyte b)
> 20 {
> 21 return cast(ushort) ((b << 8) | a);
> 22 }
> 23
> 24
> 25 uint MAKELONG(ushort a, ushort b)
> 26 {
> 27 return cast(uint) ((b << 16) | a);
> 28 }
> 29
> 30
> 31 ushort LOWORD(uint l)
> 32 {
> 33 return cast(ushort) l;
> 34 }
> 35
> 36
> 37 ushort HIWORD(uint l)
> 38 {
> 39 return cast(ushort) (l >>> 16);
> 40 }
> 41
> 42
> 43 ubyte LOBYTE(ushort w)
> 44 {
> 45 return cast(ubyte) w;
> 46 }
> 47
> 48
> 49 ubyte HIBYTE(ushort w)
> 50 {
> 51 return cast(ubyte) (w >>> 8);
> 52 }
> 53
> 54
> 55 /+ template max(T) {
> 56 T max(T a, T b)
> 57 {
> 58 return a > b ? a : b;
> 59 }
> 60 }
> 61
> 62 template min(T) {
> 63 T min(T a, T b)
> 64 {
> 65 return a < b ? a : b;
> 66 }
> 67 } +/
> 68
> 69 enum NULL = null;
> 70 //~ alias null NULL;
> 71 //~ const void *NULL = null;
> 72 alias ubyte BYTE;
> 73 alias ubyte *PBYTE, LPBYTE;
> 74 alias ushort USHORT, WORD, ATOM;
> 75 alias ushort*PUSHORT, PWORD, LPWORD;
> 76 alias uint ULONG, DWORD, UINT, COLORREF;
> 77 alias uint *PULONG, PDWORD, LPDWORD, PUINT, LPUINT;
> 78 alias int WINBOOL, BOOL, INT, LONG, HFILE, HRESULT;
> 79 alias int*PWINBOOL, LPWINBOOL, PBOOL, LPBOOL, PINT, LPINT, LPLONG;
> 80 alias float FLOAT;
> 81 alias float*PFLOAT;
> 82 alias CPtr!(void) PCVOID, LPCVOID;
> 83
> 84 alias UINT_PTR WPARAM;
> 85 alias LONG_PTR LPARAM, LRESULT;
> 86
> 87 alias HANDLE HGLOBAL, HLOCAL, GLOBALHANDLE, LOCALHANDLE, HGDIOBJ, HACCEL,
> 88 HBITMAP, HBRUSH, HCOLORSPACE, HDC, HGLRC, HDESK, HENHMETAFILE, HFON
> 89 HICON, HINSTANCE, HKEY, HMENU, HMETAFILE, HMODULE, HMONITOR, HPALET
> 90 HRGN, HRSRC, HSTR, HTASK, HWND, HWINSTA, HKL, HCURSOR;
> 91 alias HANDLE*PHKEY;
> 92
> 93 static
> 94
> 95 if (WINVER >= 0x500)
> 96 {
> 97 alias HANDLE HTERMINAL, HWINEVENTHOOK;
> 98 }
5 99
6 alias void* va_list; | 100 alias extern (Windows) int function() FARPROC, NEARPROC, PROC;
7 alias long __int64; <
8 alias ulong DWORD64; <
9 alias uint SIZE_T; <
10 alias SIZE_T* PSIZE_T; <
11 alias int INT_PTR; <
12 alias uint UINT_PTR; <
13 alias uint LONG_PTR; <
14 alias uint ULONG_PTR; <
15 alias uint DWORD_PTR; <
16 alias DWORD_PTR* PDWORD_PTR; <
17 alias UINT_PTR* PUINT_PTR; <
18 alias ULONG_PTR* PULONG_PTR; <
19 enum : UINT { UINT_MAX = UINT.max } <
20 101
21 // #ifndef _WINDEF_ | 102 struct RECT
22 // #define _WINDEF_ <
23 | 103 {
> 104 LONG left;
24 // #ifndef NO_STRICT | 105 LONG top;
25 // #ifndef STRICT | 106 LONG right;
26 // #... | 107 LONG bottom;
27 // #endif <
> 108 }
28 // #endif /* NO_STRICT */ | 109 alias RECT RECTL;
> 110 alias RECT*PRECT, LPRECT, PRECTL, LPRECTL;
> 111 alias CPtr!(RECT) LPCRECT, LPCRECTL;
29 112
30 // #ifdef _MAC | 113 struct POINT
31 // #ifndef _WIN32 <
32 // #... <
33 // #endif <
34 // #endif //_MAC <
35 | 114 {
36 // #ifdef __cplusplus <
37 // extern "C" { <
38 // #endif <
> 115 LONG x;
> 116 LONG y;
> 117 alias x e1;
> 118 alias y e2;
39 | 119 }
40 // #ifndef WINVER <
41 // #... <
42 // #endif /* WINVER */ <
43 <
44 // #ifndef BASETYPES <
45 // #define BASETYPES <
46 alias uint ULONG; <
47 alias ULONG* PULONG; <
48 alias ushort USHORT; <
49 alias USHORT* PUSHORT; <
50 alias ubyte UCHAR; <
51 alias UCHAR* PUCHAR; <
52 alias char* PSZ; | 120 alias POINT POINTL;
53 // #endif /* !BASETYPES */ <
> 121 alias POINT*PPOINT, LPPOINT, PPOINTL, LPPOINTL;
54 122
55 enum : uint { MAX_PATH = 260 } | 123 struct SIZE
56 | 124 {
57 // #ifndef NULL | 125 LONG cx;
58 // #ifdef __cplusplus | 126 LONG cy;
59 const void* NULL = null; <
60 // #else <
61 // #... <
62 // #endif <
63 // #endif <
64 | 127 }
65 // #ifndef FALSE <
66 enum : uint { FALSE = 0 } <
67 // #endif <
68 <
69 // #ifndef TRUE <
70 enum : uint { TRUE = 1 } <
71 // #endif <
72 <
73 // #ifndef IN <
74 // #define IN <
75 // #endif <
76 <
77 // #ifndef OUT <
78 // #define OUT <
79 // #endif <
> 128 alias SIZE SIZEL;
> 129 alias SIZE*PSIZE, LPSIZE, PSIZEL, LPSIZEL;
80 130
81 // #ifndef OPTIONAL | 131 struct POINTS
82 // #define OPTIONAL <
83 // #endif <
84 | 132 {
85 // #undef far <
86 // #undef near <
87 // #undef pascal <
> 133 SHORT x;
> 134 SHORT y;
88 | 135 }
89 // #define far <
90 // #define near <
91 // #if (!defined(_MAC)) && ((_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)) <
92 // #define pascal __stdcall <
93 // #else <
94 // #... <
95 // #endif <
96 <
97 // #if defined(DOSWIN32) || defined(_MAC) <
98 // #... <
99 // #ifndef CDECL <
100 // #... <
101 // #endif <
102 // #else <
103 // #define cdecl <
104 // #ifndef CDECL <
105 // #define CDECL <
106 // #endif <
107 // #endif <
108 <
109 // #ifdef _MAC <
110 // #... <
111 // #... <
112 // #... <
113 // #... <
114 // #... <
115 // #ifdef _68K_ <
116 // #... <
117 // #else <
118 // #... <
119 // #endif <
120 // #elif (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) <
121 // #define CALLBACK __stdcall <
122 // #define WINAPI __stdcall <
123 // #define WINAPIV __cdecl <
124 // #define APIENTRY WINAPI <
125 // #define APIPRIVATE __stdcall <
126 // #define PASCAL __stdcall <
127 // #else <
128 // #... <
129 // #... <
130 // #... <
131 // #... <
132 // #... <
133 // #... <
134 // #endif <
135 <
136 // #undef FAR <
137 // #undef NEAR <
138 // #define FAR far <
139 // #define NEAR near <
140 // #ifndef CONST <
141 // #define CONST const <
142 // #endif <
> 136 alias POINTS*PPOINTS, LPPOINTS;
143 137
144 alias uint DWORD; <
145 alias int BOOL; | 138 enum : BOOL {
> 139 FALSE = 0,
146 alias ubyte BYTE; | 140 TRUE = 1
147 alias ushort WORD; <
148 alias float FLOAT; <
149 alias FLOAT* PFLOAT; <
150 alias BOOL* PBOOL; <
151 alias BOOL* LPBOOL; <
152 alias BYTE* PBYTE; <
153 alias BYTE* LPBYTE; <
154 alias int* PINT; <
155 alias int* LPINT; <
156 alias WORD* PWORD; <
157 alias WORD* LPWORD; <
158 alias int* LPLONG; <
159 alias DWORD* PDWORD; <
160 alias DWORD* LPDWORD; <
161 alias void* LPVOID; <
162 alias void* LPCVOID; <
163 | 141 }
164 alias int INT; <
165 alias uint UINT; <
166 alias uint* PUINT; <
167 <
168 // #ifndef NT_INCLUDED <
169 import win32.winnt; <
170 // #endif /* NT_INCLUDED */ <
171 <
172 alias UINT_PTR WPARAM; <
173 alias LONG_PTR LPARAM; <
174 alias LONG_PTR LRESULT; <
175 <
176 // #ifndef NOMINMAX <
177 <
178 // #ifndef max <
179 int max(int a, int b){ return (a > b)? a : b; } <
180 uint max(uint a, uint b){ return (a > b)? a : b; } <
181 real max(real a, real b){ return (a > b)? a : b; } <
182 // #endif <
183 <
184 // #ifndef min <
185 int min(int a, int b){ return (a < b)? a : b; } <
186 uint min(uint a, uint b){ return (a < b)? a : b; } <
187 real min(real a, real b){ return (a < b)? a : b; } <
188 // #endif <
189 <
190 // #endif /* NOMINMAX */ <
191 <
192 ushort MAKEWORD(byte a, byte b){ return (a & 0xff) | ((b & 0xff) << 8); } <
193 uint MAKELONG(ushort a, ushort b){ return (a & 0xffff) | ((b & 0xffff) << 16); } <
194 ushort LOWORD(uint l){ return l & 0xffff; } <
195 ushort HIWORD(uint l){ return l >>> 16; } <
196 ubyte LOBYTE(ushort l){ return l & 0xff; } <
197 ubyte HIBYTE(ushort l){ return l >>> 8; } <
198 <
199 // #ifndef WIN_INTERNAL <
200 alias void* HWND; <
201 alias void* HHOOK; <
202 // #ifdef WINABLE <
203 // ... <
204 // #endif <
205 // #endif <
206 <
207 alias WORD ATOM; <
208 <
209 alias HANDLE* SPHANDLE; <
210 alias HANDLE* LPHANDLE; <
211 alias HANDLE HGLOBAL; <
212 alias HANDLE HLOCAL; <
213 alias HANDLE GLOBALHANDLE; <
214 alias HANDLE LOCALHANDLE; <
215 // #ifndef _MAC <
216 // #ifdef _WIN64 <
217 // ... <
218 // #else <
219 extern(Windows) alias int function() FARPROC; <
220 extern(Windows) alias int function() NEARPROC; <
221 extern(Windows) alias int function() PROC; <
222 // #endif // _WIN64 <
223 // #else <
224 // ... <
225 // #endif <
226 <
227 // #if !defined(_MAC) || !defined(GDI_INTERNAL) <
228 // #ifdef STRICT <
229 alias void* HGDIOBJ; <
230 // #else <
231 // ... <
232 // #endif <
233 // #endif <
234 <
235 alias void* HKEY; <
236 alias HKEY* PHKEY; <
237 <
238 // #if !defined(_MAC) || !defined(WIN_INTERNAL) <
239 alias void* HACCEL; <
240 // #endif <
241 // #if !defined(_MAC) || !defined(GDI_INTERNAL) <
242 alias void* HBITMAP; <
243 alias void* HBRUSH; <
244 // #endif <
245 // #if(WINVER >= 0x0400) <
246 alias void* HCOLORSPACE; <
247 // #endif /* WINVER >= 0x0400 */ <
248 // #if !defined(_MAC) || !defined(GDI_INTERNAL) <
249 alias void* HDC; <
250 // #endif <
251 alias void* HGLRC; <
252 alias void* HDESK; <
253 alias void* HENHMETAFILE; <
254 // #if !defined(_MAC) || !defined(GDI_INTERNAL) <
255 alias void* HFONT; <
256 // #endif <
257 alias void* HICON; <
258 // #if !defined(_MAC) || !defined(WIN_INTERNAL) <
259 alias void* HMENU; <
260 // #endif <
261 alias void* HMETAFILE; <
262 alias void* HINSTANCE; <
263 alias HINSTANCE HMODULE; <
264 // #if !defined(_MAC) || !defined(GDI_INTERNAL) <
265 alias void* HPALETTE; <
266 alias void* HPEN; <
267 // #endif <
268 alias void* HRGN; <
269 alias void* HRSRC; <
270 alias void* HSTR; <
271 alias void* HTASK; <
272 alias void* HWINSTA; <
273 alias void* HKL; <
274 <
275 // #if(WINVER >= 0x0500) <
276 // #ifndef _MAC <
277 alias void* HMONITOR; <
278 alias void* HWINEVENTHOOK; <
279 // #endif <
280 alias void* HUMPD; <
281 // #endif /* WINVER >= 0x0500 */ <
282 <
283 // #ifndef _MAC <
284 alias int HFILE; <
285 alias HICON HCURSOR; <
286 // #else <
287 // ... <
288 // #endif <
289 <
290 alias DWORD COLORREF; <
291 alias DWORD* LPCOLORREF; <
292 <
293 const HFILE HFILE_ERROR = -1; <
294 <
295 struct tagRECT { <
296 LONG left; <
297 LONG top; <
298 LONG right; <
299 LONG bottom; <
300 } <
301 alias tagRECT RECT; <
302 alias tagRECT* PRECT; <
303 alias tagRECT* NPRECT; <
304 alias tagRECT* LPRECT; <
305 <
306 alias RECT* LPCRECT; <
307 <
308 struct _RECTL { <
309 LONG left; <
310 LONG top; <
311 LONG right; <
312 LONG bottom; <
313 } <
314 alias _RECTL RECTL; <
315 alias _RECTL* PRECTL; <
316 alias _RECTL* LPRECTL; <
317 <
318 alias RECTL* LPCRECTL; <
319 <
320 struct tagPOINT { <
321 LONG x; <
322 LONG y; <
323 } <
324 alias tagPOINT POINT; <
325 alias tagPOINT* PPOINT; <
326 alias tagPOINT* NPPOINT; <
327 alias tagPOINT* LPPOINT; <
328 <
329 struct _POINTL { <
330 LONG x; <
331 LONG y; <
332 } <
333 alias _POINTL POINTL; <
334 alias _POINTL* PPOINTL; <
335 <
336 struct tagSIZE { <
337 LONG cx; <
338 LONG cy; <
339 } <
340 alias tagSIZE SIZE; <
341 alias tagSIZE* PSIZE; <
342 alias tagSIZE* LPSIZE; <
343 <
344 alias SIZE SIZEL; <
345 alias SIZE* PSIZEL; <
346 alias SIZE* LPSIZEL; <
347 <
348 struct tagPOINTS { <
349 // #ifndef _MAC <
350 SHORT x; <
351 SHORT y; <
352 // #else <
353 // ... <
354 // #endif <
355 } <
356 alias tagPOINTS POINTS; <
357 alias tagPOINTS* PPOINTS; <
358 alias tagPOINTS* LPPOINTS; <
359 <
360 enum : uint { DM_UPDATE = 1 } <
361 enum : uint { DM_COPY = 2 } <
362 enum : uint { DM_PROMPT = 4 } <
363 enum : uint { DM_MODIFY = 8 } <
364 <
365 alias DM_MODIFY DM_IN_BUFFER; <
366 alias DM_PROMPT DM_IN_PROMPT; <
367 alias DM_COPY DM_OUT_BUFFER; <
368 alias DM_UPDATE DM_OUT_DEFAULT; <
369 <
370 enum : uint { DC_FIELDS = 1 } <
371 enum : uint { DC_PAPERS = 2 } <
372 enum : uint { DC_PAPERSIZE = 3 } <
373 enum : uint { DC_MINEXTENT = 4 } <
374 enum : uint { DC_MAXEXTENT = 5 } <
375 enum : uint { DC_BINS = 6 } <
376 enum : uint { DC_DUPLEX = 7 } <
377 enum : uint { DC_SIZE = 8 } <
378 enum : uint { DC_EXTRA = 9 } <
379 enum : uint { DC_VERSION = 10 } <
380 enum : uint { DC_DRIVER = 11 } <
381 enum : uint { DC_BINNAMES = 12 } <
382 enum : uint { DC_ENUMRESOLUTIONS = 13 } <
383 enum : uint { DC_FILEDEPENDENCIES = 14 } <
384 enum : uint { DC_TRUETYPE = 15 } <
385 enum : uint { DC_PAPERNAMES = 16 } <
386 enum : uint { DC_ORIENTATION = 17 } <
387 enum : uint { DC_COPIES = 18 } <
388 <
389 // #ifdef __cplusplus <
390 // } <
391 // #endif <
392 <
393 // #endif /* _WINDEF_ */ <
394 <