1 module win32.winuser;
2
3 // Translated from Microsoft Platform SDK August 2001 Edition
4 // by Y.Tomino (demoonlit@inter7.jp)
5
6 import win32.winbase, win32.wingdi;
7 enum : uint {
8 QS_POSTMESSAGE = 0x0008,
9 QS_TIMER = 0x0010,
10 QS_PAINT = 0x0020,
11 QS_SENDMESSAGE = 0x0040,
12 QS_HOTKEY = 0x0080,
13 QS_INPUT = 0x0407
14 }
15
16 // #ifndef _WINUSER_
17 // #define _WINUSER_
18
19 // #if !defined(_USER32_)
20 // #define WINUSERAPI DECLSPEC_IMPORT
21 // #else
22 // #...
23 // #endif
24
25 // #ifdef _MAC
26 // #...
27 // #endif
28
29 // #ifdef __cplusplus
30 // extern "C" {
31 // #endif /* __cplusplus */
32
33 // #ifndef WINVER
34 // #...
35 // #endif /* !WINVER */
36
37 // #include <stdarg.h>
38
39 // #ifndef NOUSER
40
41 alias HANDLE HDWP;
42 alias VOID MENUTEMPLATEA;
43 alias VOID MENUTEMPLATEW;
44 // #ifdef UNICODE
45 alias MENUTEMPLATEW MENUTEMPLATE;
46 // #else
47 // ...
48 // #endif // UNICODE
49 alias PVOID LPMENUTEMPLATEA;
50 alias PVOID LPMENUTEMPLATEW;
51 // #ifdef UNICODE
52 alias LPMENUTEMPLATEW LPMENUTEMPLATE;
53 // #else
54 // ...
55 // #endif // UNICODE
56
57 extern(Windows) alias LRESULT function(HWND, UINT, WPARAM, LPARAM) WNDPROC;
58
59 // #ifdef STRICT
60
61 extern(Windows) alias INT_PTR function(HWND, UINT, WPARAM, LPARAM) DLGPROC;
62 extern(Windows) alias VOID function(HWND, UINT, UINT_PTR, DWORD) TIMERPROC;
63 extern(Windows) alias BOOL function(HDC, LPARAM, int) GRAYSTRINGPROC;
64 extern(Windows) alias BOOL function(HWND, LPARAM) WNDENUMPROC;
65 extern(Windows) alias LRESULT function(int code, WPARAM wParam, LPARAM lParam) HOOKPROC;
66 extern(Windows) alias VOID function(HWND, UINT, ULONG_PTR, LRESULT) SENDASYNCPROC;
67
68 extern(Windows) alias BOOL function(HWND, LPCSTR, HANDLE) PROPENUMPROCA;
69 extern(Windows) alias BOOL function(HWND, LPCWSTR, HANDLE) PROPENUMPROCW;
70
71 extern(Windows) alias BOOL function(HWND, LPSTR, HANDLE, ULONG_PTR) PROPENUMPROCEXA;
72 extern(Windows) alias BOOL function(HWND, LPWSTR, HANDLE, ULONG_PTR) PROPENUMPROCEXW;
73
74 extern(Windows) alias int function(LPSTR lpch, int ichCurrent, int cch, int code) EDITWORDBREAKPROCA;
75 extern(Windows) alias int function(LPWSTR lpch, int ichCurrent, int cch, int code) EDITWORDBREAKPROCW;
76
77 // #if(WINVER >= 0x0400)
78 extern(Windows) alias BOOL function(HDC hdc, LPARAM lData, WPARAM wData, int cx, int cy) DRAWSTATEPROC;
79 // #endif /* WINVER >= 0x0400 */
80 // #else /* !STRICT */
81
82 // ...
83
84 // ...
85
86 // ...
87
88 // ...
89
90 // #if(WINVER >= 0x0400)
91 // ...
92 // #endif /* WINVER >= 0x0400 */
93 // #endif /* !STRICT */
94
95 // #ifdef UNICODE
96 alias PROPENUMPROCW PROPENUMPROC;
97 alias PROPENUMPROCEXW PROPENUMPROCEX;
98 alias EDITWORDBREAKPROCW EDITWORDBREAKPROC;
99 // #else /* !UNICODE */
100 // ...
101 // #endif /* UNICODE */
102
103 // #ifdef STRICT
104
105 extern(Windows) alias BOOL function(LPSTR, LPARAM) NAMEENUMPROCA;
106 extern(Windows) alias BOOL function(LPWSTR, LPARAM) NAMEENUMPROCW;
107
108 alias NAMEENUMPROCA WINSTAENUMPROCA;
109 alias NAMEENUMPROCA DESKTOPENUMPROCA;
110 alias NAMEENUMPROCW WINSTAENUMPROCW;
111 alias NAMEENUMPROCW DESKTOPENUMPROCW;
112
113 // #else /* !STRICT */
114
115 // ...
116
117 // #endif /* !STRICT */
118
119 // #ifdef UNICODE
120 alias WINSTAENUMPROCW WINSTAENUMPROC;
121 alias DESKTOPENUMPROCW DESKTOPENUMPROC;
122
123 // #else /* !UNICODE */
124 // ...
125
126 // #endif /* UNICODE */
127
128 bit IS_INTRESOURCE(LPTSTR _r){ return ((cast(ULONG_PTR)(_r) >> 16) == 0); }
129 LPSTR MAKEINTRESOURCEA(WORD i){ return cast(LPSTR)(cast(ULONG_PTR)(cast(WORD)(i))); }
130 LPWSTR MAKEINTRESOURCEW(WORD i){ return cast(LPWSTR)(cast(ULONG_PTR)(cast(WORD)(i))); }
131 // #ifdef UNICODE
132 alias MAKEINTRESOURCEW MAKEINTRESOURCE;
133 // #else
134 // #...
135 // #endif // !UNICODE
136
137 // #ifndef NORESOURCE
138
139 const LPTSTR RT_CURSOR = cast(LPTSTR)(1);
140 const LPTSTR RT_BITMAP = cast(LPTSTR)(2);
141 const LPTSTR RT_ICON = cast(LPTSTR)(3);
142 const LPTSTR RT_MENU = cast(LPTSTR)(4);
143 const LPTSTR RT_DIALOG = cast(LPTSTR)(5);
144 const LPTSTR RT_STRING = cast(LPTSTR)(6);
145 const LPTSTR RT_FONTDIR = cast(LPTSTR)(7);
146 const LPTSTR RT_FONT = cast(LPTSTR)(8);
147 const LPTSTR RT_ACCELERATOR = cast(LPTSTR)(9);
148 const LPTSTR RT_RCDATA = cast(LPTSTR)(10);
149 const LPTSTR RT_MESSAGETABLE = cast(LPTSTR)(11);
150
151 enum : uint { DIFFERENCE = 11 }
152 const LPTSTR RT_GROUP_CURSOR = cast(LPTSTR)(cast(ULONG_PTR)RT_CURSOR + DIFFERENCE);
153 const LPTSTR RT_GROUP_ICON = cast(LPTSTR)(cast(ULONG_PTR)RT_ICON + DIFFERENCE);
154 const LPTSTR RT_VERSION = cast(LPTSTR)(16);
155 const LPTSTR RT_DLGINCLUDE = cast(LPTSTR)(17);
156 // #if(WINVER >= 0x0400)
157 const LPTSTR RT_PLUGPLAY = cast(LPTSTR)(19);
158 const LPTSTR RT_VXD = cast(LPTSTR)(20);
159 const LPTSTR RT_ANICURSOR = cast(LPTSTR)(21);
160 const LPTSTR RT_ANIICON = cast(LPTSTR)(22);
161 // #endif /* WINVER >= 0x0400 */
162 const LPTSTR RT_HTML = cast(LPTSTR)(23);
163 // #ifdef RC_INVOKED
164 // #...
165 // #...
166 // #...
167 // #...
168 // #...
169 // #...
170 // #else /* RC_INVOKED */
171 const LPTSTR RT_MANIFEST = cast(LPTSTR)(24);
172 const LPTSTR CREATEPROCESS_MANIFEST_RESOURCE_ID = cast(LPTSTR)( 1);
173 const LPTSTR ISOLATIONAWARE_MANIFEST_RESOURCE_ID = cast(LPTSTR)(2);
174 const LPTSTR ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID = cast(LPTSTR)(3);
175 const LPTSTR MINIMUM_RESERVED_MANIFEST_RESOURCE_ID = cast(LPTSTR)( 1 );
176 const LPTSTR MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID = cast(LPTSTR)(16 );
177 // #endif /* RC_INVOKED */
178
179 // #endif /* !NORESOURCE */
180
181 extern(Windows) export int wvsprintfA(
182 LPSTR,
183 LPCSTR,
184 va_list arglist);
185 extern(Windows) export int wvsprintfW(
186 LPWSTR,
187 LPCWSTR,
188 va_list arglist);
189 // #ifdef UNICODE
190 alias wvsprintfW wvsprintf;
191 // #else
192 // #...
193 // #endif // !UNICODE
194
195 extern(C) export int wsprintfA(
196 LPSTR,
197 LPCSTR,
198 ...);
199 extern(C) export int wsprintfW(
200 LPWSTR,
201 LPCWSTR,
202 ...);
203 // #ifdef UNICODE
204 alias wsprintfW wsprintf;
205 // #else
206 // #...
207 // #endif // !UNICODE
208
209 const LPWSTR SETWALLPAPER_DEFAULT = cast(LPWSTR)-1;
210
211 // #ifndef NOSCROLL
212
213 enum : uint { SB_HORZ = 0 }
214 enum : uint { SB_VERT = 1 }
215 enum : uint { SB_CTL = 2 }
216 enum : uint { SB_BOTH = 3 }
217
218 enum : uint { SB_LINEUP = 0 }
219 enum : uint { SB_LINELEFT = 0 }
220 enum : uint { SB_LINEDOWN = 1 }
221 enum : uint { SB_LINERIGHT = 1 }
222 enum : uint { SB_PAGEUP = 2 }
223 enum : uint { SB_PAGELEFT = 2 }
224 enum : uint { SB_PAGEDOWN = 3 }
225 enum : uint { SB_PAGERIGHT = 3 }
226 enum : uint { SB_THUMBPOSITION = 4 }
227 enum : uint { SB_THUMBTRACK = 5 }
228 enum : uint { SB_TOP = 6 }
229 enum : uint { SB_LEFT = 6 }
230 enum : uint { SB_BOTTOM = 7 }
231 enum : uint { SB_RIGHT = 7 }
232 enum : uint { SB_ENDSCROLL = 8 }
233
234 // #endif /* !NOSCROLL */
235
236 // #ifndef NOSHOWWINDOW
237
238 enum : uint { SW_HIDE = 0 }
239 enum : uint { SW_SHOWNORMAL = 1 }
240 enum : uint { SW_NORMAL = 1 }
241 enum : uint { SW_SHOWMINIMIZED = 2 }
242 enum : uint { SW_SHOWMAXIMIZED = 3 }
243 enum : uint { SW_MAXIMIZE = 3 }
244 enum : uint { SW_SHOWNOACTIVATE = 4 }
245 enum : uint { SW_SHOW = 5 }
246 enum : uint { SW_MINIMIZE = 6 }
247 enum : uint { SW_SHOWMINNOACTIVE = 7 }
248 enum : uint { SW_SHOWNA = 8 }
249 enum : uint { SW_RESTORE = 9 }
250 enum : uint { SW_SHOWDEFAULT = 10 }
251 enum : uint { SW_FORCEMINIMIZE = 11 }
252 enum : uint { SW_MAX = 11 }
253
254 enum : uint { HIDE_WINDOW = 0 }
255 enum : uint { SHOW_OPENWINDOW = 1 }
256 enum : uint { SHOW_ICONWINDOW = 2 }
257 enum : uint { SHOW_FULLSCREEN = 3 }
258 enum : uint { SHOW_OPENNOACTIVATE = 4 }
259
260 enum : uint { SW_PARENTCLOSING = 1 }
261 enum : uint { SW_OTHERZOOM = 2 }
262 enum : uint { SW_PARENTOPENING = 3 }
263 enum : uint { SW_OTHERUNZOOM = 4 }
264
265 // #endif /* !NOSHOWWINDOW */
266
267 // #if(WINVER >= 0x0500)
268
269 enum : uint { AW_HOR_POSITIVE = 0x00000001 }
270 enum : uint { AW_HOR_NEGATIVE = 0x00000002 }
271 enum : uint { AW_VER_POSITIVE = 0x00000004 }
272 enum : uint { AW_VER_NEGATIVE = 0x00000008 }
273 enum : uint { AW_CENTER = 0x00000010 }
274 enum : uint { AW_HIDE = 0x00010000 }
275 enum : uint { AW_ACTIVATE = 0x00020000 }
276 enum : uint { AW_SLIDE = 0x00040000 }
277 enum : uint { AW_BLEND = 0x00080000 }
278
279 // #endif /* WINVER >= 0x0500 */
280
281 enum : uint { KF_EXTENDED = 0x0100 }
282 enum : uint { KF_DLGMODE = 0x0800 }
283 enum : uint { KF_MENUMODE = 0x1000 }
284 enum : uint { KF_ALTDOWN = 0x2000 }
285 enum : uint { KF_REPEAT = 0x4000 }
286 enum : uint { KF_UP = 0x8000 }
287
288 // #ifndef NOVIRTUALKEYCODES
289
290 enum : uint { VK_LBUTTON = 0x01 }
291 enum : uint { VK_RBUTTON = 0x02 }
292 enum : uint { VK_CANCEL = 0x03 }
293 enum : uint { VK_MBUTTON = 0x04 }
294
295 // #if(_WIN32_WINNT >= 0x0500)
296 enum : uint { VK_XBUTTON1 = 0x05 }
297 enum : uint { VK_XBUTTON2 = 0x06 }
298 // #endif /* _WIN32_WINNT >= 0x0500 */
299
300 enum : uint { VK_BACK = 0x08 }
301 enum : uint { VK_TAB = 0x09 }
302
303 enum : uint { VK_CLEAR = 0x0C }
304 enum : uint { VK_RETURN = 0x0D }
305
306 enum : uint { VK_SHIFT = 0x10 }
307 enum : uint { VK_CONTROL = 0x11 }
308 enum : uint { VK_MENU = 0x12 }
309 enum : uint { VK_PAUSE = 0x13 }
310 enum : uint { VK_CAPITAL = 0x14 }
311
312 enum : uint { VK_KANA = 0x15 }
313 enum : uint { VK_HANGEUL = 0x15 }
314 enum : uint { VK_HANGUL = 0x15 }
315 enum : uint { VK_JUNJA = 0x17 }
316 enum : uint { VK_FINAL = 0x18 }
317 enum : uint { VK_HANJA = 0x19 }
318 enum : uint { VK_KANJI = 0x19 }
319
320 enum : uint { VK_ESCAPE = 0x1B }
321
322 enum : uint { VK_CONVERT = 0x1C }
323 enum : uint { VK_NONCONVERT = 0x1D }
324 enum : uint { VK_ACCEPT = 0x1E }
325 enum : uint { VK_MODECHANGE = 0x1F }
326
327 enum : uint { VK_SPACE = 0x20 }
328 enum : uint { VK_PRIOR = 0x21 }
329 enum : uint { VK_NEXT = 0x22 }
330 enum : uint { VK_END = 0x23 }
331 enum : uint { VK_HOME = 0x24 }
332 enum : uint { VK_LEFT = 0x25 }
333 enum : uint { VK_UP = 0x26 }
334 enum : uint { VK_RIGHT = 0x27 }
335 enum : uint { VK_DOWN = 0x28 }
336 enum : uint { VK_SELECT = 0x29 }
337 enum : uint { VK_PRINT = 0x2A }
338 enum : uint { VK_EXECUTE = 0x2B }
339 enum : uint { VK_SNAPSHOT = 0x2C }
340 enum : uint { VK_INSERT = 0x2D }
341 enum : uint { VK_DELETE = 0x2E }
342 enum : uint { VK_HELP = 0x2F }
343
344 enum : uint { VK_LWIN = 0x5B }
345 enum : uint { VK_RWIN = 0x5C }
346 enum : uint { VK_APPS = 0x5D }
347
348 enum : uint { VK_SLEEP = 0x5F }
349
350 enum : uint { VK_NUMPAD0 = 0x60 }
351 enum : uint { VK_NUMPAD1 = 0x61 }
352 enum : uint { VK_NUMPAD2 = 0x62 }
353 enum : uint { VK_NUMPAD3 = 0x63 }
354 enum : uint { VK_NUMPAD4 = 0x64 }
355 enum : uint { VK_NUMPAD5 = 0x65 }
356 enum : uint { VK_NUMPAD6 = 0x66 }
357 enum : uint { VK_NUMPAD7 = 0x67 }
358 enum : uint { VK_NUMPAD8 = 0x68 }
359 enum : uint { VK_NUMPAD9 = 0x69 }
360 enum : uint { VK_MULTIPLY = 0x6A }
361 enum : uint { VK_ADD = 0x6B }
362 enum : uint { VK_SEPARATOR = 0x6C }
363 enum : uint { VK_SUBTRACT = 0x6D }
364 enum : uint { VK_DECIMAL = 0x6E }
365 enum : uint { VK_DIVIDE = 0x6F }
366 enum : uint { VK_F1 = 0x70 }
367 enum : uint { VK_F2 = 0x71 }
368 enum : uint { VK_F3 = 0x72 }
369 enum : uint { VK_F4 = 0x73 }
370 enum : uint { VK_F5 = 0x74 }
371 enum : uint { VK_F6 = 0x75 }
372 enum : uint { VK_F7 = 0x76 }
373 enum : uint { VK_F8 = 0x77 }
374 enum : uint { VK_F9 = 0x78 }
375 enum : uint { VK_F10 = 0x79 }
376 enum : uint { VK_F11 = 0x7A }
377 enum : uint { VK_F12 = 0x7B }
378 enum : uint { VK_F13 = 0x7C }
379 enum : uint { VK_F14 = 0x7D }
380 enum : uint { VK_F15 = 0x7E }
381 enum : uint { VK_F16 = 0x7F }
382 enum : uint { VK_F17 = 0x80 }
383 enum : uint { VK_F18 = 0x81 }
384 enum : uint { VK_F19 = 0x82 }
385 enum : uint { VK_F20 = 0x83 }
386 enum : uint { VK_F21 = 0x84 }
387 enum : uint { VK_F22 = 0x85 }
388 enum : uint { VK_F23 = 0x86 }
389 enum : uint { VK_F24 = 0x87 }
390
391 enum : uint { VK_NUMLOCK = 0x90 }
392 enum : uint { VK_SCROLL = 0x91 }
393
394 enum : uint { VK_OEM_NEC_EQUAL = 0x92 }
395
396 enum : uint { VK_OEM_FJ_JISHO = 0x92 }
397 enum : uint { VK_OEM_FJ_MASSHOU = 0x93 }
398 enum : uint { VK_OEM_FJ_TOUROKU = 0x94 }
399 enum : uint { VK_OEM_FJ_LOYA = 0x95 }
400 enum : uint { VK_OEM_FJ_ROYA = 0x96 }
401
402 enum : uint { VK_LSHIFT = 0xA0 }
403 enum : uint { VK_RSHIFT = 0xA1 }
404 enum : uint { VK_LCONTROL = 0xA2 }
405 enum : uint { VK_RCONTROL = 0xA3 }
406 enum : uint { VK_LMENU = 0xA4 }
407 enum : uint { VK_RMENU = 0xA5 }
408
409 // #if(_WIN32_WINNT >= 0x0500)
410 enum : uint { VK_BROWSER_BACK = 0xA6 }
411 enum : uint { VK_BROWSER_FORWARD = 0xA7 }
412 enum : uint { VK_BROWSER_REFRESH = 0xA8 }
413 enum : uint { VK_BROWSER_STOP = 0xA9 }
414 enum : uint { VK_BROWSER_SEARCH = 0xAA }
415 enum : uint { VK_BROWSER_FAVORITES = 0xAB }
416 enum : uint { VK_BROWSER_HOME = 0xAC }
417
418 enum : uint { VK_VOLUME_MUTE = 0xAD }
419 enum : uint { VK_VOLUME_DOWN = 0xAE }
420 enum : uint { VK_VOLUME_UP = 0xAF }
421 enum : uint { VK_MEDIA_NEXT_TRACK = 0xB0 }
422 enum : uint { VK_MEDIA_PREV_TRACK = 0xB1 }
423 enum : uint { VK_MEDIA_STOP = 0xB2 }
424 enum : uint { VK_MEDIA_PLAY_PAUSE = 0xB3 }
425 enum : uint { VK_LAUNCH_MAIL = 0xB4 }
426 enum : uint { VK_LAUNCH_MEDIA_SELECT = 0xB5 }
427 enum : uint { VK_LAUNCH_APP1 = 0xB6 }
428 enum : uint { VK_LAUNCH_APP2 = 0xB7 }
429
430 // #endif /* _WIN32_WINNT >= 0x0500 */
431
432 enum : uint { VK_OEM_1 = 0xBA }
433 enum : uint { VK_OEM_PLUS = 0xBB }
434 enum : uint { VK_OEM_COMMA = 0xBC }
435 enum : uint { VK_OEM_MINUS = 0xBD }
436 enum : uint { VK_OEM_PERIOD = 0xBE }
437 enum : uint { VK_OEM_2 = 0xBF }
438 enum : uint { VK_OEM_3 = 0xC0 }
439
440 enum : uint { VK_OEM_4 = 0xDB }
441 enum : uint { VK_OEM_5 = 0xDC }
442 enum : uint { VK_OEM_6 = 0xDD }
443 enum : uint { VK_OEM_7 = 0xDE }
444 enum : uint { VK_OEM_8 = 0xDF }
445
446 enum : uint { VK_OEM_AX = 0xE1 }
447 enum : uint { VK_OEM_102 = 0xE2 }
448 enum : uint { VK_ICO_HELP = 0xE3 }
449 enum : uint { VK_ICO_00 = 0xE4 }
450
451 // #if(WINVER >= 0x0400)
452 enum : uint { VK_PROCESSKEY = 0xE5 }
453 // #endif /* WINVER >= 0x0400 */
454
455 enum : uint { VK_ICO_CLEAR = 0xE6 }
456
457 // #if(_WIN32_WINNT >= 0x0500)
458 enum : uint { VK_PACKET = 0xE7 }
459 // #endif /* _WIN32_WINNT >= 0x0500 */
460
461 enum : uint { VK_OEM_RESET = 0xE9 }
462 enum : uint { VK_OEM_JUMP = 0xEA }
463 enum : uint { VK_OEM_PA1 = 0xEB }
464 enum : uint { VK_OEM_PA2 = 0xEC }
465 enum : uint { VK_OEM_PA3 = 0xED }
466 enum : uint { VK_OEM_WSCTRL = 0xEE }
467 enum : uint { VK_OEM_CUSEL = 0xEF }
468 enum : uint { VK_OEM_ATTN = 0xF0 }
469 enum : uint { VK_OEM_FINISH = 0xF1 }
470 enum : uint { VK_OEM_COPY = 0xF2 }
471 enum : uint { VK_OEM_AUTO = 0xF3 }
472 enum : uint { VK_OEM_ENLW = 0xF4 }
473 enum : uint { VK_OEM_BACKTAB = 0xF5 }
474
475 enum : uint { VK_ATTN = 0xF6 }
476 enum : uint { VK_CRSEL = 0xF7 }
477 enum : uint { VK_EXSEL = 0xF8 }
478 enum : uint { VK_EREOF = 0xF9 }
479 enum : uint { VK_PLAY = 0xFA }
480 enum : uint { VK_ZOOM = 0xFB }
481 enum : uint { VK_NONAME = 0xFC }
482 enum : uint { VK_PA1 = 0xFD }
483 enum : uint { VK_OEM_CLEAR = 0xFE }
484
485 // #endif /* !NOVIRTUALKEYCODES */
486
487 // #ifndef NOWH
488
489 enum { WH_MIN = -1 }
490 enum { WH_MSGFILTER = -1 }
491 enum : uint { WH_JOURNALRECORD = 0 }
492 enum : uint { WH_JOURNALPLAYBACK = 1 }
493 enum : uint { WH_KEYBOARD = 2 }
494 enum : uint { WH_GETMESSAGE = 3 }
495 enum : uint { WH_CALLWNDPROC = 4 }
496 enum : uint { WH_CBT = 5 }
497 enum : uint { WH_SYSMSGFILTER = 6 }
498 enum : uint { WH_MOUSE = 7 }
499 // #if defined(_WIN32_WINDOWS)
500 // #...
501 // #endif
502 enum : uint { WH_DEBUG = 9 }
503 enum : uint { WH_SHELL = 10 }
504 enum : uint { WH_FOREGROUNDIDLE = 11 }
505 // #if(WINVER >= 0x0400)
506 enum : uint { WH_CALLWNDPROCRET = 12 }
507 // #endif /* WINVER >= 0x0400 */
508
509 // #if (_WIN32_WINNT >= 0x0400)
510 enum : uint { WH_KEYBOARD_LL = 13 }
511 enum : uint { WH_MOUSE_LL = 14 }
512 // #endif // (_WIN32_WINNT >= 0x0400)
513
514 // #if(WINVER >= 0x0400)
515 // #if (_WIN32_WINNT >= 0x0400)
516 enum : uint { WH_MAX = 14 }
517 // #else
518 // #...
519 // #endif // (_WIN32_WINNT >= 0x0400)
520 // #else
521 // #...
522 // #endif
523
524 alias WH_MIN WH_MINHOOK;
525 alias WH_MAX WH_MAXHOOK;
526
527 enum : uint { HC_ACTION = 0 }
528 enum : uint { HC_GETNEXT = 1 }
529 enum : uint { HC_SKIP = 2 }
530 enum : uint { HC_NOREMOVE = 3 }
531 alias HC_NOREMOVE HC_NOREM;
532 enum : uint { HC_SYSMODALON = 4 }
533 enum : uint { HC_SYSMODALOFF = 5 }
534
535 enum : uint { HCBT_MOVESIZE = 0 }
536 enum : uint { HCBT_MINMAX = 1 }
537 enum : uint { HCBT_QS = 2 }
538 enum : uint { HCBT_CREATEWND = 3 }
539 enum : uint { HCBT_DESTROYWND = 4 }
540 enum : uint { HCBT_ACTIVATE = 5 }
541 enum : uint { HCBT_CLICKSKIPPED = 6 }
542 enum : uint { HCBT_KEYSKIPPED = 7 }
543 enum : uint { HCBT_SYSCOMMAND = 8 }
544 enum : uint { HCBT_SETFOCUS = 9 }
545
546 struct tagCBT_CREATEWNDA {
547 tagCREATESTRUCTA *lpcs;
548 HWND hwndInsertAfter;
549 }
550 alias tagCBT_CREATEWNDA CBT_CREATEWNDA;
551 alias tagCBT_CREATEWNDA* LPCBT_CREATEWNDA;
552
553 struct tagCBT_CREATEWNDW {
554 tagCREATESTRUCTW *lpcs;
555 HWND hwndInsertAfter;
556 }
557 alias tagCBT_CREATEWNDW CBT_CREATEWNDW;
558 alias tagCBT_CREATEWNDW* LPCBT_CREATEWNDW;
559
560 // #ifdef UNICODE
561 alias CBT_CREATEWNDW CBT_CREATEWND;
562 alias LPCBT_CREATEWNDW LPCBT_CREATEWND;
563 // #else
564 // ...
565 // #endif // UNICODE
566
567 struct tagCBTACTIVATESTRUCT {
568 BOOL fMouse;
569 HWND hWndActive;
570 }
571 alias tagCBTACTIVATESTRUCT CBTACTIVATESTRUCT;
572 alias tagCBTACTIVATESTRUCT* LPCBTACTIVATESTRUCT;
573
574 // #if(_WIN32_WINNT >= 0x0501)
575
576 struct tagWTSSESSION_NOTIFICATION {
577 DWORD cbSize;
578 DWORD dwSessionId;
579 }
580 alias tagWTSSESSION_NOTIFICATION WTSSESSION_NOTIFICATION;
581 alias tagWTSSESSION_NOTIFICATION* PWTSSESSION_NOTIFICATION;
582
583 enum : uint { WTS_CONSOLE_CONNECT = 0x1 }
584 enum : uint { WTS_CONSOLE_DISCONNECT = 0x2 }
585 enum : uint { WTS_REMOTE_CONNECT = 0x3 }
586 enum : uint { WTS_REMOTE_DISCONNECT = 0x4 }
587 enum : uint { WTS_SESSION_LOGON = 0x5 }
588 enum : uint { WTS_SESSION_LOGOFF = 0x6 }
589 enum : uint { WTS_SESSION_LOCK = 0x7 }
590 enum : uint { WTS_SESSION_UNLOCK = 0x8 }
591
592 // #endif /* _WIN32_WINNT >= 0x0501 */
593
594 enum : uint { MSGF_DIALOGBOX = 0 }
595 enum : uint { MSGF_MESSAGEBOX = 1 }
596 enum : uint { MSGF_MENU = 2 }
597 enum : uint { MSGF_SCROLLBAR = 5 }
598 enum : uint { MSGF_NEXTWINDOW = 6 }
599 enum : uint { MSGF_MAX = 8 }
600 enum : uint { MSGF_USER = 4096 }
601
602 enum : uint { HSHELL_WINDOWCREATED = 1 }
603 enum : uint { HSHELL_WINDOWDESTROYED = 2 }
604 enum : uint { HSHELL_ACTIVATESHELLWINDOW = 3 }
605
606 // #if(WINVER >= 0x0400)
607 enum : uint { HSHELL_WINDOWACTIVATED = 4 }
608 enum : uint { HSHELL_GETMINRECT = 5 }
609 enum : uint { HSHELL_REDRAW = 6 }
610 enum : uint { HSHELL_TASKMAN = 7 }
611 enum : uint { HSHELL_LANGUAGE = 8 }
612 // #endif /* WINVER >= 0x0400 */
613 // #if(_WIN32_WINNT >= 0x0500)
614 enum : uint { HSHELL_ACCESSIBILITYSTATE = 11 }
615 enum : uint { HSHELL_APPCOMMAND = 12 }
616 // #endif /* _WIN32_WINNT >= 0x0500 */
617
618 // #if(_WIN32_WINNT >= 0x0501)
619 enum : uint { HSHELL_WINDOWREPLACED = 13 }
620 // #endif /* _WIN32_WINNT >= 0x0501 */
621
622 // #if(_WIN32_WINNT >= 0x0500)
623
624 enum : uint { ACCESS_STICKYKEYS = 0x0001 }
625 enum : uint { ACCESS_FILTERKEYS = 0x0002 }
626 enum : uint { ACCESS_MOUSEKEYS = 0x0003 }
627
628 enum : uint { APPCOMMAND_BROWSER_BACKWARD = 1 }
629 enum : uint { APPCOMMAND_BROWSER_FORWARD = 2 }
630 enum : uint { APPCOMMAND_BROWSER_REFRESH = 3 }
631 enum : uint { APPCOMMAND_BROWSER_STOP = 4 }
632 enum : uint { APPCOMMAND_BROWSER_SEARCH = 5 }
633 enum : uint { APPCOMMAND_BROWSER_FAVORITES = 6 }
634 enum : uint { APPCOMMAND_BROWSER_HOME = 7 }
635 enum : uint { APPCOMMAND_VOLUME_MUTE = 8 }
636 enum : uint { APPCOMMAND_VOLUME_DOWN = 9 }
637 enum : uint { APPCOMMAND_VOLUME_UP = 10 }
638 enum : uint { APPCOMMAND_MEDIA_NEXTTRACK = 11 }
639 enum : uint { APPCOMMAND_MEDIA_PREVIOUSTRACK = 12 }
640 enum : uint { APPCOMMAND_MEDIA_STOP = 13 }
641 enum : uint { APPCOMMAND_MEDIA_PLAY_PAUSE = 14 }
642 enum : uint { APPCOMMAND_LAUNCH_MAIL = 15 }
643 enum : uint { APPCOMMAND_LAUNCH_MEDIA_SELECT = 16 }
644 enum : uint { APPCOMMAND_LAUNCH_APP1 = 17 }
645 enum : uint { APPCOMMAND_LAUNCH_APP2 = 18 }
646 enum : uint { APPCOMMAND_BASS_DOWN = 19 }
647 enum : uint { APPCOMMAND_BASS_BOOST = 20 }
648 enum : uint { APPCOMMAND_BASS_UP = 21 }
649 enum : uint { APPCOMMAND_TREBLE_DOWN = 22 }
650 enum : uint { APPCOMMAND_TREBLE_UP = 23 }
651 // #if(_WIN32_WINNT >= 0x0501)
652 enum : uint { APPCOMMAND_MICROPHONE_VOLUME_MUTE = 24 }
653 enum : uint { APPCOMMAND_MICROPHONE_VOLUME_DOWN = 25 }
654 enum : uint { APPCOMMAND_MICROPHONE_VOLUME_UP = 26 }
655 enum : uint { APPCOMMAND_HELP = 27 }
656 enum : uint { APPCOMMAND_FIND = 28 }
657 enum : uint { APPCOMMAND_NEW = 29 }
658 enum : uint { APPCOMMAND_OPEN = 30 }
659 enum : uint { APPCOMMAND_CLOSE = 31 }
660 enum : uint { APPCOMMAND_SAVE = 32 }
661 enum : uint { APPCOMMAND_PRINT = 33 }
662 enum : uint { APPCOMMAND_UNDO = 34 }
663 enum : uint { APPCOMMAND_REDO = 35 }
664 enum : uint { APPCOMMAND_COPY = 36 }
665 enum : uint { APPCOMMAND_CUT = 37 }
666 enum : uint { APPCOMMAND_PASTE = 38 }
667 enum : uint { APPCOMMAND_REPLY_TO_MAIL = 39 }
668 enum : uint { APPCOMMAND_FORWARD_MAIL = 40 }
669 enum : uint { APPCOMMAND_SEND_MAIL = 41 }
670 enum : uint { APPCOMMAND_SPELL_CHECK = 42 }
671 enum : uint { APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE = 43 }
672 enum : uint { APPCOMMAND_MIC_ON_OFF_TOGGLE = 44 }
673 enum : uint { APPCOMMAND_CORRECTION_LIST = 45 }
674 // #endif /* _WIN32_WINNT >= 0x0501 */
675
676 enum : uint { FAPPCOMMAND_MOUSE = 0x8000 }
677 enum : uint { FAPPCOMMAND_KEY = 0 }
678 enum : uint { FAPPCOMMAND_OEM = 0x1000 }
679 enum : uint { FAPPCOMMAND_MASK = 0xF000 }
680
681 // #define GET_APPCOMMAND_LPARAM(lParam) ((short)(HIWORD(lParam) & ~FAPPCOMMAND_MASK))
682 // #define GET_DEVICE_LPARAM(lParam) ((WORD)(HIWORD(lParam) & FAPPCOMMAND_MASK))
683 // #define GET_MOUSEORKEY_LPARAM GET_DEVICE_LPARAM
684 // #define GET_FLAGS_LPARAM(lParam) (LOWORD(lParam))
685 // #define GET_KEYSTATE_LPARAM(lParam) GET_FLAGS_LPARAM(lParam)
686 // #endif /* _WIN32_WINNT >= 0x0500 */
687
688 struct tagEVENTMSG {
689 UINT message;
690 UINT paramL;
691 UINT paramH;
692 DWORD time;
693 HWND hwnd;
694 }
695 alias tagEVENTMSG EVENTMSG;
696 alias tagEVENTMSG* PEVENTMSGMSG;
697 alias tagEVENTMSG* NPEVENTMSGMSG;
698 alias tagEVENTMSG* LPEVENTMSGMSG;
699
700 alias tagEVENTMSG* PEVENTMSG;
701 alias tagEVENTMSG* NPEVENTMSG;
702 alias tagEVENTMSG* LPEVENTMSG;
703
704 struct tagCWPSTRUCT {
705 LPARAM lParam;
706 WPARAM wParam;
707 UINT message;
708 HWND hwnd;
709 }
710 alias tagCWPSTRUCT CWPSTRUCT;
711 alias tagCWPSTRUCT* PCWPSTRUCT;
712 alias tagCWPSTRUCT* NPCWPSTRUCT;
713 alias tagCWPSTRUCT* LPCWPSTRUCT;
714
715 // #if(WINVER >= 0x0400)
716
717 struct tagCWPRETSTRUCT {
718 LRESULT lResult;
719 LPARAM lParam;
720 WPARAM wParam;
721 UINT message;
722 HWND hwnd;
723 }
724 alias tagCWPRETSTRUCT CWPRETSTRUCT;
725 alias tagCWPRETSTRUCT* PCWPRETSTRUCT;
726 alias tagCWPRETSTRUCT* NPCWPRETSTRUCT;
727 alias tagCWPRETSTRUCT* LPCWPRETSTRUCT;
728
729 // #endif /* WINVER >= 0x0400 */
730
731 // #if (_WIN32_WINNT >= 0x0400)
732
733 enum : uint { LLKHF_EXTENDED = KF_EXTENDED >> 8 }
734 enum : uint { LLKHF_INJECTED = 0x00000010 }
735 enum : uint { LLKHF_ALTDOWN = KF_ALTDOWN >> 8 }
736 enum : uint { LLKHF_UP = KF_UP >> 8 }
737
738 enum : uint { LLMHF_INJECTED = 0x00000001 }
739
740 struct tagKBDLLHOOKSTRUCT {
741 DWORD vkCode;
742 DWORD scanCode;
743 DWORD flags;
744 DWORD time;
745 ULONG_PTR dwExtraInfo;
746 }
747 alias tagKBDLLHOOKSTRUCT KBDLLHOOKSTRUCT;
748 alias tagKBDLLHOOKSTRUCT* LPKBDLLHOOKSTRUCT;
749 alias tagKBDLLHOOKSTRUCT* PKBDLLHOOKSTRUCT;
750
751 struct tagMSLLHOOKSTRUCT {
752 POINT pt;
753 DWORD mouseData;
754 DWORD flags;
755 DWORD time;
756 ULONG_PTR dwExtraInfo;
757 }
758 alias tagMSLLHOOKSTRUCT MSLLHOOKSTRUCT;
759 alias tagMSLLHOOKSTRUCT* LPMSLLHOOKSTRUCT;
760 alias tagMSLLHOOKSTRUCT* PMSLLHOOKSTRUCT;
761
762 // #endif // (_WIN32_WINNT >= 0x0400)
763
764 struct tagDEBUGHOOKINFO {
765 DWORD idThread;
766 DWORD idThreadInstaller;
767 LPARAM lParam;
768 WPARAM wParam;
769 int code;
770 }
771 alias tagDEBUGHOOKINFO DEBUGHOOKINFO;
772 alias tagDEBUGHOOKINFO* PDEBUGHOOKINFO;
773 alias tagDEBUGHOOKINFO* NPDEBUGHOOKINFO;
774 alias tagDEBUGHOOKINFO* LPDEBUGHOOKINFO;
775
776 struct tagMOUSEHOOKSTRUCT {
777 POINT pt;
778 HWND hwnd;
779 UINT wHitTestCode;
780 ULONG_PTR dwExtraInfo;
781 }
782 alias tagMOUSEHOOKSTRUCT MOUSEHOOKSTRUCT;
783 alias tagMOUSEHOOKSTRUCT* LPMOUSEHOOKSTRUCT;
784 alias tagMOUSEHOOKSTRUCT* PMOUSEHOOKSTRUCT;
785
786 // #if(_WIN32_WINNT >= 0x0500)
787 // #ifdef __cplusplus
788 struct tagMOUSEHOOKSTRUCTEX {
789 POINT pt;
790 HWND hwnd;
791 UINT wHitTestCode;
792 ULONG_PTR dwExtraInfo;
793 DWORD mouseData;
794 }
795 alias tagMOUSEHOOKSTRUCTEX MOUSEHOOKSTRUCTEX;
796 alias tagMOUSEHOOKSTRUCTEX* LPMOUSEHOOKSTRUCTEX;
797 alias tagMOUSEHOOKSTRUCTEX* PMOUSEHOOKSTRUCTEX;
798
799 // #else // ndef __cplusplus
800 // ...
801 // #endif
802 // #endif /* _WIN32_WINNT >= 0x0500 */
803
804 // #if(WINVER >= 0x0400)
805
806 struct tagHARDWAREHOOKSTRUCT {
807 HWND hwnd;
808 UINT message;
809 WPARAM wParam;
810 LPARAM lParam;
811 }
812 alias tagHARDWAREHOOKSTRUCT HARDWAREHOOKSTRUCT;
813 alias tagHARDWAREHOOKSTRUCT* LPHARDWAREHOOKSTRUCT;
814 alias tagHARDWAREHOOKSTRUCT* PHARDWAREHOOKSTRUCT;
815
816 // #endif /* WINVER >= 0x0400 */
817 // #endif /* !NOWH */
818
819 enum : uint { HKL_PREV = 0 }
820 enum : uint { HKL_NEXT = 1 }
821
822 enum : uint { KLF_ACTIVATE = 0x00000001 }
823 enum : uint { KLF_SUBSTITUTE_OK = 0x00000002 }
824 enum : uint { KLF_REORDER = 0x00000008 }
825 // #if(WINVER >= 0x0400)
826 enum : uint { KLF_REPLACELANG = 0x00000010 }
827 enum : uint { KLF_NOTELLSHELL = 0x00000080 }
828 // #endif /* WINVER >= 0x0400 */
829 enum : uint { KLF_SETFORPROCESS = 0x00000100 }
830 // #if(_WIN32_WINNT >= 0x0500)
831 enum : uint { KLF_SHIFTLOCK = 0x00010000 }
832 enum : uint { KLF_RESET = 0x40000000 }
833 // #endif /* _WIN32_WINNT >= 0x0500 */
834
835 // #if(WINVER >= 0x0500)
836
837 enum : uint { INPUTLANGCHANGE_SYSCHARSET = 0x0001 }
838 enum : uint { INPUTLANGCHANGE_FORWARD = 0x0002 }
839 enum : uint { INPUTLANGCHANGE_BACKWARD = 0x0004 }
840 // #endif /* WINVER >= 0x0500 */
841
842 enum : uint { KL_NAMELENGTH = 9 }
843
844 extern(Windows) export HKL LoadKeyboardLayoutA(
845 LPCSTR pwszKLID,
846 UINT Flags);
847 extern(Windows) export HKL LoadKeyboardLayoutW(
848 LPCWSTR pwszKLID,
849 UINT Flags);
850 // #ifdef UNICODE
851 alias LoadKeyboardLayoutW LoadKeyboardLayout;
852 // #else
853 // #...
854 // #endif // !UNICODE
855
856 // #if(WINVER >= 0x0400)
857 extern(Windows) export HKL ActivateKeyboardLayout(
858 HKL hkl,
859 UINT Flags);
860 // #else
861 // ...
862 // #endif /* WINVER >= 0x0400 */
863
864 // #if(WINVER >= 0x0400)
865 extern(Windows) export int ToUnicodeEx(
866 UINT wVirtKey,
867 UINT wScanCode,
868 BYTE *lpKeyState,
869 LPWSTR pwszBuff,
870 int cchBuff,
871 UINT wFlags,
872 HKL dwhkl);
873 // #endif /* WINVER >= 0x0400 */
874
875 extern(Windows) export BOOL UnloadKeyboardLayout(
876 HKL hkl);
877
878 extern(Windows) export BOOL GetKeyboardLayoutNameA(
879 LPSTR pwszKLID);
880 extern(Windows) export BOOL GetKeyboardLayoutNameW(
881 LPWSTR pwszKLID);
882 // #ifdef UNICODE
883 alias GetKeyboardLayoutNameW GetKeyboardLayoutName;
884 // #else
885 // #...
886 // #endif // !UNICODE
887
888 // #if(WINVER >= 0x0400)
889 extern(Windows) export int GetKeyboardLayoutList(
890 int nBuff,
891 HKL *lpList);
892
893 extern(Windows) export HKL GetKeyboardLayout(
894 DWORD idThread
895 );
896 // #endif /* WINVER >= 0x0400 */
897
898 // #if(WINVER >= 0x0500)
899
900 struct tagMOUSEMOVEPOINT {
901 int x;
902 int y;
903 DWORD time;
904 ULONG_PTR dwExtraInfo;
905 }
906 alias tagMOUSEMOVEPOINT MOUSEMOVEPOINT;
907 alias tagMOUSEMOVEPOINT* PMOUSEMOVEPOINT;
908 alias tagMOUSEMOVEPOINT* LPMOUSEMOVEPOINT;
909
910 enum : uint { GMMP_USE_DISPLAY_POINTS = 1 }
911 enum : uint { GMMP_USE_HIGH_RESOLUTION_POINTS = 2 }
912
913 extern(Windows) export int GetMouseMovePointsEx(
914 UINT cbSize,
915 LPMOUSEMOVEPOINT lppt,
916 LPMOUSEMOVEPOINT lpptBuf,
917 int nBufPoints,
918 DWORD resolution
919 );
920
921 // #endif /* WINVER >= 0x0500 */
922
923 // #ifndef NODESKTOP
924
925 enum : uint { DESKTOP_READOBJECTS = 0x0001 }
926 enum : uint { DESKTOP_CREATEWINDOW = 0x0002 }
927 enum : uint { DESKTOP_CREATEMENU = 0x0004 }
928 enum : uint { DESKTOP_HOOKCONTROL = 0x0008 }
929 enum : uint { DESKTOP_JOURNALRECORD = 0x0010 }
930 enum : uint { DESKTOP_JOURNALPLAYBACK = 0x0020 }
931 enum : uint { DESKTOP_ENUMERATE = 0x0040 }
932 enum : uint { DESKTOP_WRITEOBJECTS = 0x0080 }
933 enum : uint { DESKTOP_SWITCHDESKTOP = 0x0100 }
934
935 enum : uint { DF_ALLOWOTHERACCOUNTHOOK = 0x0001 }
936
937 // #ifdef _WINGDI_
938 // #ifndef NOGDI
939
940 // ...
941 // #ifdef UNICODE
942 // #...
943 // #else
944 // #...
945 // #endif // !UNICODE
946
947 // #endif /* NOGDI */
948 // #endif /* _WINGDI_ */
949
950 extern(Windows) export HDESK OpenDesktopA(
951 LPCSTR lpszDesktop,
952 DWORD dwFlags,
953 BOOL fInherit,
954 ACCESS_MASK dwDesiredAccess);
955 extern(Windows) export HDESK OpenDesktopW(
956 LPCWSTR lpszDesktop,
957 DWORD dwFlags,
958 BOOL fInherit,
959 ACCESS_MASK dwDesiredAccess);
960 // #ifdef UNICODE
961 alias OpenDesktopW OpenDesktop;
962 // #else
963 // #...
964 // #endif // !UNICODE
965
966 extern(Windows) export HDESK OpenInputDesktop(
967 DWORD dwFlags,
968 BOOL fInherit,
969 ACCESS_MASK dwDesiredAccess);
970
971 extern(Windows) export BOOL EnumDesktopsA(
972 HWINSTA hwinsta,
973 DESKTOPENUMPROCA lpEnumFunc,
974 LPARAM lParam);
975 extern(Windows) export BOOL EnumDesktopsW(
976 HWINSTA hwinsta,
977 DESKTOPENUMPROCW lpEnumFunc,
978 LPARAM lParam);
979 // #ifdef UNICODE
980 alias EnumDesktopsW EnumDesktops;
981 // #else
982 // #...
983 // #endif // !UNICODE
984
985 extern(Windows) export BOOL EnumDesktopWindows(
986 HDESK hDesktop,
987 WNDENUMPROC lpfn,
988 LPARAM lParam);
989
990 extern(Windows) export BOOL SwitchDesktop(
991 HDESK hDesktop);
992
993 extern(Windows) export BOOL SetThreadDesktop(
994 HDESK hDesktop);
995
996 extern(Windows) export BOOL CloseDesktop(
997 HDESK hDesktop);
998
999 extern(Windows) export HDESK GetThreadDesktop(
1000 DWORD dwThreadId);
1001 // #endif /* !NODESKTOP */
1002
1003 // #ifndef NOWINDOWSTATION
1004
1005 enum : uint { WINSTA_ENUMDESKTOPS = 0x0001 }
1006 enum : uint { WINSTA_READATTRIBUTES = 0x0002 }
1007 enum : uint { WINSTA_ACCESSCLIPBOARD = 0x0004 }
1008 enum : uint { WINSTA_CREATEDESKTOP = 0x0008 }
1009 enum : uint { WINSTA_WRITEATTRIBUTES = 0x0010 }
1010 enum : uint { WINSTA_ACCESSGLOBALATOMS = 0x0020 }
1011 enum : uint { WINSTA_EXITWINDOWS = 0x0040 }
1012 enum : uint { WINSTA_ENUMERATE = 0x0100 }
1013 enum : uint { WINSTA_READSCREEN = 0x0200 }
1014
1015 enum : uint { WSF_VISIBLE = 0x0001 }
1016
1017 extern(Windows) export HWINSTA CreateWindowStationA(
1018 LPCSTR lpwinsta,
1019 DWORD dwReserved,
1020 ACCESS_MASK dwDesiredAccess,
1021 LPSECURITY_ATTRIBUTES lpsa);
1022 extern(Windows) export HWINSTA CreateWindowStationW(
1023 LPCWSTR lpwinsta,
1024 DWORD dwReserved,
1025 ACCESS_MASK dwDesiredAccess,
1026 LPSECURITY_ATTRIBUTES lpsa);
1027 // #ifdef UNICODE
1028 alias CreateWindowStationW CreateWindowStation;
1029 // #else
1030 // #...
1031 // #endif // !UNICODE
1032
1033 extern(Windows) export HWINSTA OpenWindowStationA(
1034 LPCSTR lpszWinSta,
1035 BOOL fInherit,
1036 ACCESS_MASK dwDesiredAccess);
1037 extern(Windows) export HWINSTA OpenWindowStationW(
1038 LPCWSTR lpszWinSta,
1039 BOOL fInherit,
1040 ACCESS_MASK dwDesiredAccess);
1041 // #ifdef UNICODE
1042 alias OpenWindowStationW OpenWindowStation;
1043 // #else
1044 // #...
1045 // #endif // !UNICODE
1046
1047 extern(Windows) export BOOL EnumWindowStationsA(
1048 WINSTAENUMPROCA lpEnumFunc,
1049 LPARAM lParam);
1050 extern(Windows) export BOOL EnumWindowStationsW(
1051 WINSTAENUMPROCW lpEnumFunc,
1052 LPARAM lParam);
1053 // #ifdef UNICODE
1054 alias EnumWindowStationsW EnumWindowStations;
1055 // #else
1056 // #...
1057 // #endif // !UNICODE
1058
1059 extern(Windows) export BOOL CloseWindowStation(
1060 HWINSTA hWinSta);
1061
1062 extern(Windows) export BOOL SetProcessWindowStation(
1063 HWINSTA hWinSta);
1064
1065 extern(Windows) export HWINSTA GetProcessWindowStation();
1066 // #endif /* !NOWINDOWSTATION */
1067
1068 // #ifndef NOSECURITY
1069
1070 extern(Windows) export BOOL SetUserObjectSecurity(
1071 HANDLE hObj,
1072 PSECURITY_INFORMATION pSIRequested,
1073 PSECURITY_DESCRIPTOR pSID);
1074
1075 extern(Windows) export BOOL GetUserObjectSecurity(
1076 HANDLE hObj,
1077 PSECURITY_INFORMATION pSIRequested,
1078 PSECURITY_DESCRIPTOR pSID,
1079 DWORD nLength,
1080 LPDWORD lpnLengthNeeded);
1081
1082 enum : uint { UOI_FLAGS = 1 }
1083 enum : uint { UOI_NAME = 2 }
1084 enum : uint { UOI_TYPE = 3 }
1085 enum : uint { UOI_USER_SID = 4 }
1086
1087 struct tagUSEROBJECTFLAGS {
1088 BOOL fInherit;
1089 BOOL fReserved;
1090 DWORD dwFlags;
1091 }
1092 alias tagUSEROBJECTFLAGS USEROBJECTFLAGS;
1093 alias tagUSEROBJECTFLAGS* PUSEROBJECTFLAGS;
1094
1095 extern(Windows) export BOOL GetUserObjectInformationA(
1096 HANDLE hObj,
1097 int nIndex,
1098 PVOID pvInfo,
1099 DWORD nLength,
1100 LPDWORD lpnLengthNeeded);
1101 extern(Windows) export BOOL GetUserObjectInformationW(
1102 HANDLE hObj,
1103 int nIndex,
1104 PVOID pvInfo,
1105 DWORD nLength,
1106 LPDWORD lpnLengthNeeded);
1107 // #ifdef UNICODE
1108 alias GetUserObjectInformationW GetUserObjectInformation;
1109 // #else
1110 // #...
1111 // #endif // !UNICODE
1112
1113 extern(Windows) export BOOL SetUserObjectInformationA(
1114 HANDLE hObj,
1115 int nIndex,
1116 PVOID pvInfo,
1117 DWORD nLength);
1118 extern(Windows) export BOOL SetUserObjectInformationW(
1119 HANDLE hObj,
1120 int nIndex,
1121 PVOID pvInfo,
1122 DWORD nLength);
1123 // #ifdef UNICODE
1124 alias SetUserObjectInformationW SetUserObjectInformation;
1125 // #else
1126 // #...
1127 // #endif // !UNICODE
1128
1129 // #endif /* !NOSECURITY */
1130
1131 // #if(WINVER >= 0x0400)
1132 struct tagWNDCLASSEXA {
1133 UINT cbSize;
1134 UINT style;
1135 WNDPROC lpfnWndProc;
1136 int cbClsExtra;
1137 int cbWndExtra;
1138 HINSTANCE hInstance;
1139 HICON hIcon;
1140 HCURSOR hCursor;
1141 HBRUSH hbrBackground;
1142 LPCSTR lpszMenuName;
1143 LPCSTR lpszClassName;
1144 HICON hIconSm;
1145 }
1146 alias tagWNDCLASSEXA WNDCLASSEXA;
1147 alias tagWNDCLASSEXA* PWNDCLASSEXA;
1148 alias tagWNDCLASSEXA* NPWNDCLASSEXA;
1149 alias tagWNDCLASSEXA* LPWNDCLASSEXA;
1150
1151 struct tagWNDCLASSEXW {
1152 UINT cbSize;
1153 UINT style;
1154 WNDPROC lpfnWndProc;
1155 int cbClsExtra;
1156 int cbWndExtra;
1157 HINSTANCE hInstance;
1158 HICON hIcon;
1159 HCURSOR hCursor;
1160 HBRUSH hbrBackground;
1161 LPCWSTR lpszMenuName;
1162 LPCWSTR lpszClassName;
1163 HICON hIconSm;
1164 }
1165 alias tagWNDCLASSEXW WNDCLASSEXW;
1166 alias tagWNDCLASSEXW* PWNDCLASSEXW;
1167 alias tagWNDCLASSEXW* NPWNDCLASSEXW;
1168 alias tagWNDCLASSEXW* LPWNDCLASSEXW;
1169
1170 // #ifdef UNICODE
1171 alias WNDCLASSEXW WNDCLASSEX;
1172 alias PWNDCLASSEXW PWNDCLASSEX;
1173 alias NPWNDCLASSEXW NPWNDCLASSEX;
1174 alias LPWNDCLASSEXW LPWNDCLASSEX;
1175 // #else
1176 // ...
1177 // #endif // UNICODE
1178 // #endif /* WINVER >= 0x0400 */
1179
1180 struct tagWNDCLASSA {
1181 UINT style;
1182 WNDPROC lpfnWndProc;
1183 int cbClsExtra;
1184 int cbWndExtra;
1185 HINSTANCE hInstance;
1186 HICON hIcon;
1187 HCURSOR hCursor;
1188 HBRUSH hbrBackground;
1189 LPCSTR lpszMenuName;
1190 LPCSTR lpszClassName;
1191 }
1192 alias tagWNDCLASSA WNDCLASSA;
1193 alias tagWNDCLASSA* PWNDCLASSA;
1194 alias tagWNDCLASSA* NPWNDCLASSA;
1195 alias tagWNDCLASSA* LPWNDCLASSA;
1196
1197 struct tagWNDCLASSW {
1198 UINT style;
1199 WNDPROC lpfnWndProc;
1200 int cbClsExtra;
1201 int cbWndExtra;
1202 HINSTANCE hInstance;
1203 HICON hIcon;
1204 HCURSOR hCursor;
1205 HBRUSH hbrBackground;
1206 LPCWSTR lpszMenuName;
1207 LPCWSTR lpszClassName;
1208 }
1209 alias tagWNDCLASSW WNDCLASSW;
1210 alias tagWNDCLASSW* PWNDCLASSW;
1211 alias tagWNDCLASSW* NPWNDCLASSW;
1212 alias tagWNDCLASSW* LPWNDCLASSW;
1213
1214 // #ifdef UNICODE
1215 alias WNDCLASSW WNDCLASS;
1216 alias PWNDCLASSW PWNDCLASS;
1217 alias NPWNDCLASSW NPWNDCLASS;
1218 alias LPWNDCLASSW LPWNDCLASS;
1219 // #else
1220 // ...
1221 // #endif // UNICODE
1222
1223 // #ifndef NOMSG
1224
1225 struct tagMSG {
1226 HWND hwnd;
1227 UINT message;
1228 WPARAM wParam;
1229 LPARAM lParam;
1230 DWORD time;
1231 POINT pt;
1232 // #ifdef _MAC
1233 // ...
1234 // #endif
1235 }
1236 alias tagMSG MSG;
1237 alias tagMSG* PMSG;
1238 alias tagMSG* NPMSG;
1239 alias tagMSG* LPMSG;
1240
1241 // #define POINTSTOPOINT(pt, pts) { (pt).x = (LONG)(SHORT)LOWORD(*(LONG*)&pts); (pt).y = (LONG)(SHORT)HIWORD(*(LONG*)&pts); }
1242
1243 // #define POINTTOPOINTS(pt) (MAKELONG((short)((pt).x), (short)((pt).y)))
1244 alias MAKELONG MAKEWPARAM;
1245 alias MAKELONG MAKELPARAM;
1246 alias MAKELONG MAKELRESULT;
1247
1248 // #endif /* !NOMSG */
1249
1250 // #ifndef NOWINOFFSETS
1251
1252 enum { GWL_WNDPROC = -4 }
1253 enum { GWL_HINSTANCE = -6 }
1254 enum { GWL_HWNDPARENT = -8 }
1255 enum { GWL_STYLE = -16 }
1256 enum { GWL_EXSTYLE = -20 }
1257 enum { GWL_USERDATA = -21 }
1258 enum { GWL_ID = -12 }
1259
1260 // #ifdef _WIN64
1261
1262 // #...
1263 // #...
1264 // #...
1265 // #...
1266
1267 // #endif /* _WIN64 */
1268
1269 enum { GWLP_WNDPROC = -4 }
1270 enum { GWLP_HINSTANCE = -6 }
1271 enum { GWLP_HWNDPARENT = -8 }
1272 enum { GWLP_USERDATA = -21 }
1273 enum { GWLP_ID = -12 }
1274
1275 enum { GCL_MENUNAME = -8 }
1276 enum { GCL_HBRBACKGROUND = -10 }
1277 enum { GCL_HCURSOR = -12 }
1278 enum { GCL_HICON = -14 }
1279 enum { GCL_HMODULE = -16 }
1280 enum { GCL_CBWNDEXTRA = -18 }
1281 enum { GCL_CBCLSEXTRA = -20 }
1282 enum { GCL_WNDPROC = -24 }
1283 enum { GCL_STYLE = -26 }
1284 enum { GCW_ATOM = -32 }
1285
1286 // #if(WINVER >= 0x0400)
1287 enum { GCL_HICONSM = -34 }
1288 // #endif /* WINVER >= 0x0400 */
1289
1290 // #ifdef _WIN64
1291
1292 // #...
1293 // #...
1294 // #...
1295 // #...
1296 // #...
1297 // #...
1298 // #...
1299
1300 // #endif /* _WIN64 */
1301
1302 enum { GCLP_MENUNAME = -8 }
1303 enum { GCLP_HBRBACKGROUND = -10 }
1304 enum { GCLP_HCURSOR = -12 }
1305 enum { GCLP_HICON = -14 }
1306 enum { GCLP_HMODULE = -16 }
1307 enum { GCLP_WNDPROC = -24 }
1308 enum { GCLP_HICONSM = -34 }
1309
1310 // #endif /* !NOWINOFFSETS */
1311
1312 // #ifndef NOWINMESSAGES
1313
1314 enum : uint { WM_NULL = 0x0000 }
1315 enum : uint { WM_CREATE = 0x0001 }
1316 enum : uint { WM_DESTROY = 0x0002 }
1317 enum : uint { WM_MOVE = 0x0003 }
1318 enum : uint { WM_SIZE = 0x0005 }
1319
1320 enum : uint { WM_ACTIVATE = 0x0006 }
1321
1322 enum : uint { WA_INACTIVE = 0 }
1323 enum : uint { WA_ACTIVE = 1 }
1324 enum : uint { WA_CLICKACTIVE = 2 }
1325
1326 enum : uint { WM_SETFOCUS = 0x0007 }
1327 enum : uint { WM_KILLFOCUS = 0x0008 }
1328 enum : uint { WM_ENABLE = 0x000A }
1329 enum : uint { WM_SETREDRAW = 0x000B }
1330 enum : uint { WM_SETTEXT = 0x000C }
1331 enum : uint { WM_GETTEXT = 0x000D }
1332 enum : uint { WM_GETTEXTLENGTH = 0x000E }
1333 enum : uint { WM_PAINT = 0x000F }
1334 enum : uint { WM_CLOSE = 0x0010 }
1335 // #ifndef _WIN32_WCE
1336 enum : uint { WM_QUERYENDSESSION = 0x0011 }
1337 enum : uint { WM_QUERYOPEN = 0x0013 }
1338 enum : uint { WM_ENDSESSION = 0x0016 }
1339 // #endif
1340 enum : uint { WM_QUIT = 0x0012 }
1341 enum : uint { WM_ERASEBKGND = 0x0014 }
1342 enum : uint { WM_SYSCOLORCHANGE = 0x0015 }
1343 enum : uint { WM_SHOWWINDOW = 0x0018 }
1344 enum : uint { WM_WININICHANGE = 0x001A }
1345 // #if(WINVER >= 0x0400)
1346 alias WM_WININICHANGE WM_SETTINGCHANGE;
1347 // #endif /* WINVER >= 0x0400 */
1348
1349 enum : uint { WM_DEVMODECHANGE = 0x001B }
1350 enum : uint { WM_ACTIVATEAPP = 0x001C }
1351 enum : uint { WM_FONTCHANGE = 0x001D }
1352 enum : uint { WM_TIMECHANGE = 0x001E }
1353 enum : uint { WM_CANCELMODE = 0x001F }
1354 enum : uint { WM_SETCURSOR = 0x0020 }
1355 enum : uint { WM_MOUSEACTIVATE = 0x0021 }
1356 enum : uint { WM_CHILDACTIVATE = 0x0022 }
1357 enum : uint { WM_QUEUESYNC = 0x0023 }
1358
1359 enum : uint { WM_GETMINMAXINFO = 0x0024 }
1360
1361 struct tagMINMAXINFO {
1362 POINT ptReserved;
1363 POINT ptMaxSize;
1364 POINT ptMaxPosition;
1365 POINT ptMinTrackSize;
1366 POINT ptMaxTrackSize;
1367 }
1368 alias tagMINMAXINFO MINMAXINFO;
1369 alias tagMINMAXINFO* PMINMAXINFO;
1370 alias tagMINMAXINFO* LPMINMAXINFO;
1371
1372 enum : uint { WM_PAINTICON = 0x0026 }
1373 enum : uint { WM_ICONERASEBKGND = 0x0027 }
1374 enum : uint { WM_NEXTDLGCTL = 0x0028 }
1375 enum : uint { WM_SPOOLERSTATUS = 0x002A }
1376 enum : uint { WM_DRAWITEM = 0x002B }
1377 enum : uint { WM_MEASUREITEM = 0x002C }
1378 enum : uint { WM_DELETEITEM = 0x002D }
1379 enum : uint { WM_VKEYTOITEM = 0x002E }
1380 enum : uint { WM_CHARTOITEM = 0x002F }
1381 enum : uint { WM_SETFONT = 0x0030 }
1382 enum : uint { WM_GETFONT = 0x0031 }
1383 enum : uint { WM_SETHOTKEY = 0x0032 }
1384 enum : uint { WM_GETHOTKEY = 0x0033 }
1385 enum : uint { WM_QUERYDRAGICON = 0x0037 }
1386 enum : uint { WM_COMPAREITEM = 0x0039 }
1387 // #if(WINVER >= 0x0500)
1388 // #ifndef _WIN32_WCE
1389 enum : uint { WM_GETOBJECT = 0x003D }
1390 // #endif
1391 // #endif /* WINVER >= 0x0500 */
1392 enum : uint { WM_COMPACTING = 0x0041 }
1393 enum : uint { WM_COMMNOTIFY = 0x0044 }
1394 enum : uint { WM_WINDOWPOSCHANGING = 0x0046 }
1395 enum : uint { WM_WINDOWPOSCHANGED = 0x0047 }
1396
1397 enum : uint { WM_POWER = 0x0048 }
1398
1399 enum : uint { PWR_OK = 1 }
1400 enum { PWR_FAIL = -1 }
1401 enum : uint { PWR_SUSPENDREQUEST = 1 }
1402 enum : uint { PWR_SUSPENDRESUME = 2 }
1403 enum : uint { PWR_CRITICALRESUME = 3 }
1404
1405 enum : uint { WM_COPYDATA = 0x004A }
1406 enum : uint { WM_CANCELJOURNAL = 0x004B }
1407
1408 struct tagCOPYDATASTRUCT {
1409 ULONG_PTR dwData;
1410 DWORD cbData;
1411 PVOID lpData;
1412 }
1413 alias tagCOPYDATASTRUCT COPYDATASTRUCT;
1414 alias tagCOPYDATASTRUCT* PCOPYDATASTRUCT;
1415
1416 // #if(WINVER >= 0x0400)
1417 struct tagMDINEXTMENU {
1418 HMENU hmenuIn;
1419 HMENU hmenuNext;
1420 HWND hwndNext;
1421 }
1422 alias tagMDINEXTMENU MDINEXTMENU;
1423 alias tagMDINEXTMENU* PMDINEXTMENU;
1424 alias tagMDINEXTMENU* LPMDINEXTMENU;
1425
1426 // #endif /* WINVER >= 0x0400 */
1427
1428 // #if(WINVER >= 0x0400)
1429 enum : uint { WM_NOTIFY = 0x004E }
1430 enum : uint { WM_INPUTLANGCHANGEREQUEST = 0x0050 }
1431 enum : uint { WM_INPUTLANGCHANGE = 0x0051 }
1432 enum : uint { WM_TCARD = 0x0052 }
1433 enum : uint { WM_HELP = 0x0053 }
1434 enum : uint { WM_USERCHANGED = 0x0054 }
1435 enum : uint { WM_NOTIFYFORMAT = 0x0055 }
1436
1437 enum : uint { NFR_ANSI = 1 }
1438 enum : uint { NFR_UNICODE = 2 }
1439 enum : uint { NF_QUERY = 3 }
1440 enum : uint { NF_REQUERY = 4 }
1441
1442 enum : uint { WM_CONTEXTMENU = 0x007B }
1443 enum : uint { WM_STYLECHANGING = 0x007C }
1444 enum : uint { WM_STYLECHANGED = 0x007D }
1445 enum : uint { WM_DISPLAYCHANGE = 0x007E }
1446 enum : uint { WM_GETICON = 0x007F }
1447 enum : uint { WM_SETICON = 0x0080 }
1448 // #endif /* WINVER >= 0x0400 */
1449
1450 enum : uint { WM_NCCREATE = 0x0081 }
1451 enum : uint { WM_NCDESTROY = 0x0082 }
1452 enum : uint { WM_NCCALCSIZE = 0x0083 }
1453 enum : uint { WM_NCHITTEST = 0x0084 }
1454 enum : uint { WM_NCPAINT = 0x0085 }
1455 enum : uint { WM_NCACTIVATE = 0x0086 }
1456 enum : uint { WM_GETDLGCODE = 0x0087 }
1457 // #ifndef _WIN32_WCE
1458 enum : uint { WM_SYNCPAINT = 0x0088 }
1459 // #endif
1460 enum : uint { WM_NCMOUSEMOVE = 0x00A0 }
1461 enum : uint { WM_NCLBUTTONDOWN = 0x00A1 }
1462 enum : uint { WM_NCLBUTTONUP = 0x00A2 }
1463 enum : uint { WM_NCLBUTTONDBLCLK = 0x00A3 }
1464 enum : uint { WM_NCRBUTTONDOWN = 0x00A4 }
1465 enum : uint { WM_NCRBUTTONUP = 0x00A5 }
1466 enum : uint { WM_NCRBUTTONDBLCLK = 0x00A6 }
1467 enum : uint { WM_NCMBUTTONDOWN = 0x00A7 }
1468 enum : uint { WM_NCMBUTTONUP = 0x00A8 }
1469 enum : uint { WM_NCMBUTTONDBLCLK = 0x00A9 }
1470
1471 // #if(_WIN32_WINNT >= 0x0500)
1472 enum : uint { WM_NCXBUTTONDOWN = 0x00AB }
1473 enum : uint { WM_NCXBUTTONUP = 0x00AC }
1474 enum : uint { WM_NCXBUTTONDBLCLK = 0x00AD }
1475 // #endif /* _WIN32_WINNT >= 0x0500 */
1476
1477 // #if(_WIN32_WINNT >= 0x0501)
1478 enum : uint { WM_INPUT = 0x00FF }
1479 // #endif /* _WIN32_WINNT >= 0x0501 */
1480
1481 enum : uint { WM_KEYFIRST = 0x0100 }
1482 enum : uint { WM_KEYDOWN = 0x0100 }
1483 enum : uint { WM_KEYUP = 0x0101 }
1484 enum : uint { WM_CHAR = 0x0102 }
1485 enum : uint { WM_DEADCHAR = 0x0103 }
1486 enum : uint { WM_SYSKEYDOWN = 0x0104 }
1487 enum : uint { WM_SYSKEYUP = 0x0105 }
1488 enum : uint { WM_SYSCHAR = 0x0106 }
1489 enum : uint { WM_SYSDEADCHAR = 0x0107 }
1490 // #if(_WIN32_WINNT >= 0x0501)
1491 enum : uint { WM_UNICHAR = 0x0109 }
1492 enum : uint { WM_KEYLAST = 0x0109 }
1493 enum : uint { UNICODE_NOCHAR = 0xFFFF }
1494 // #else
1495 // #...
1496 // #endif /* _WIN32_WINNT >= 0x0501 */
1497
1498 // #if(WINVER >= 0x0400)
1499 enum : uint { WM_IME_STARTCOMPOSITION = 0x010D }
1500 enum : uint { WM_IME_ENDCOMPOSITION = 0x010E }
1501 enum : uint { WM_IME_COMPOSITION = 0x010F }
1502 enum : uint { WM_IME_KEYLAST = 0x010F }
1503 // #endif /* WINVER >= 0x0400 */
1504
1505 enum : uint { WM_INITDIALOG = 0x0110 }
1506 enum : uint { WM_COMMAND = 0x0111 }
1507 enum : uint { WM_SYSCOMMAND = 0x0112 }
1508 enum : uint { WM_TIMER = 0x0113 }
1509 enum : uint { WM_HSCROLL = 0x0114 }
1510 enum : uint { WM_VSCROLL = 0x0115 }
1511 enum : uint { WM_INITMENU = 0x0116 }
1512 enum : uint { WM_INITMENUPOPUP = 0x0117 }
1513 enum : uint { WM_MENUSELECT = 0x011F }
1514 enum : uint { WM_MENUCHAR = 0x0120 }
1515 enum : uint { WM_ENTERIDLE = 0x0121 }
1516 // #if(WINVER >= 0x0500)
1517 // #ifndef _WIN32_WCE
1518 enum : uint { WM_MENURBUTTONUP = 0x0122 }
1519 enum : uint { WM_MENUDRAG = 0x0123 }
1520 enum : uint { WM_MENUGETOBJECT = 0x0124 }
1521 enum : uint { WM_UNINITMENUPOPUP = 0x0125 }
1522 enum : uint { WM_MENUCOMMAND = 0x0126 }
1523
1524 // #ifndef _WIN32_WCE
1525 // #if(_WIN32_WINNT >= 0x0500)
1526 enum : uint { WM_CHANGEUISTATE = 0x0127 }
1527 enum : uint { WM_UPDATEUISTATE = 0x0128 }
1528 enum : uint { WM_QUERYUISTATE = 0x0129 }
1529
1530 enum : uint { UIS_SET = 1 }
1531 enum : uint { UIS_CLEAR = 2 }
1532 enum : uint { UIS_INITIALIZE = 3 }
1533
1534 enum : uint { UISF_HIDEFOCUS = 0x1 }
1535 enum : uint { UISF_HIDEACCEL = 0x2 }
1536 // #if(_WIN32_WINNT >= 0x0501)
1537 enum : uint { UISF_ACTIVE = 0x4 }
1538 // #endif /* _WIN32_WINNT >= 0x0501 */
1539 // #endif /* _WIN32_WINNT >= 0x0500 */
1540 // #endif
1541
1542 // #endif
1543 // #endif /* WINVER >= 0x0500 */
1544
1545 enum : uint { WM_CTLCOLORMSGBOX = 0x0132 }
1546 enum : uint { WM_CTLCOLOREDIT = 0x0133 }
1547 enum : uint { WM_CTLCOLORLISTBOX = 0x0134 }
1548 enum : uint { WM_CTLCOLORBTN = 0x0135 }
1549 enum : uint { WM_CTLCOLORDLG = 0x0136 }
1550 enum : uint { WM_CTLCOLORSCROLLBAR = 0x0137 }
1551 enum : uint { WM_CTLCOLORSTATIC = 0x0138 }
1552
1553 enum : uint { WM_MOUSEFIRST = 0x0200 }
1554 enum : uint { WM_MOUSEMOVE = 0x0200 }
1555 enum : uint { WM_LBUTTONDOWN = 0x0201 }
1556 enum : uint { WM_LBUTTONUP = 0x0202 }
1557 enum : uint { WM_LBUTTONDBLCLK = 0x0203 }
1558 enum : uint { WM_RBUTTONDOWN = 0x0204 }
1559 enum : uint { WM_RBUTTONUP = 0x0205 }
1560 enum : uint { WM_RBUTTONDBLCLK = 0x0206 }
1561 enum : uint { WM_MBUTTONDOWN = 0x0207 }
1562 enum : uint { WM_MBUTTONUP = 0x0208 }
1563 enum : uint { WM_MBUTTONDBLCLK = 0x0209 }
1564 // #if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)
1565 enum : uint { WM_MOUSEWHEEL = 0x020A }
1566 // #endif
1567 // #if (_WIN32_WINNT >= 0x0500)
1568 enum : uint { WM_XBUTTONDOWN = 0x020B }
1569 enum : uint { WM_XBUTTONUP = 0x020C }
1570 enum : uint { WM_XBUTTONDBLCLK = 0x020D }
1571 // #endif
1572 // #if (_WIN32_WINNT >= 0x0500)
1573 enum : uint { WM_MOUSELAST = 0x020D }
1574 // #elif (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)
1575 // #...
1576 // #else
1577 // #...
1578 // #endif /* (_WIN32_WINNT >= 0x0500) */
1579
1580 // #if(_WIN32_WINNT >= 0x0400)
1581
1582 enum : uint { WHEEL_DELTA = 120 }
1583 // #define GET_WHEEL_DELTA_WPARAM(wParam) ((short)HIWORD(wParam))
1584
1585 enum : uint { WHEEL_PAGESCROLL = UINT_MAX }
1586 // #endif /* _WIN32_WINNT >= 0x0400 */
1587
1588 // #if(_WIN32_WINNT >= 0x0500)
1589 // #define GET_KEYSTATE_WPARAM(wParam) (LOWORD(wParam))
1590 // #define GET_NCHITTEST_WPARAM(wParam) ((short)LOWORD(wParam))
1591 // #define GET_XBUTTON_WPARAM(wParam) (HIWORD(wParam))
1592
1593 enum : uint { XBUTTON1 = 0x0001 }
1594 enum : uint { XBUTTON2 = 0x0002 }
1595
1596 // #endif /* _WIN32_WINNT >= 0x0500 */
1597
1598 enum : uint { WM_PARENTNOTIFY = 0x0210 }
1599 enum : uint { WM_ENTERMENULOOP = 0x0211 }
1600 enum : uint { WM_EXITMENULOOP = 0x0212 }
1601
1602 // #if(WINVER >= 0x0400)
1603 enum : uint { WM_NEXTMENU = 0x0213 }
1604 enum : uint { WM_SIZING = 0x0214 }
1605 enum : uint { WM_CAPTURECHANGED = 0x0215 }
1606 enum : uint { WM_MOVING = 0x0216 }
1607 // #endif /* WINVER >= 0x0400 */
1608
1609 // #if(WINVER >= 0x0400)
1610
1611 enum : uint { WM_POWERBROADCAST = 0x0218 }
1612
1613 // #ifndef _WIN32_WCE
1614 enum : uint { PBT_APMQUERYSUSPEND = 0x0000 }
1615 enum : uint { PBT_APMQUERYSTANDBY = 0x0001 }
1616
1617 enum : uint { PBT_APMQUERYSUSPENDFAILED = 0x0002 }
1618 enum : uint { PBT_APMQUERYSTANDBYFAILED = 0x0003 }
1619
1620 enum : uint { PBT_APMSUSPEND = 0x0004 }
1621 enum : uint { PBT_APMSTANDBY = 0x0005 }
1622
1623 enum : uint { PBT_APMRESUMECRITICAL = 0x0006 }
1624 enum : uint { PBT_APMRESUMESUSPEND = 0x0007 }
1625 enum : uint { PBT_APMRESUMESTANDBY = 0x0008 }
1626
1627 enum : uint { PBTF_APMRESUMEFROMFAILURE = 0x00000001 }
1628
1629 enum : uint { PBT_APMBATTERYLOW = 0x0009 }
1630 enum : uint { PBT_APMPOWERSTATUSCHANGE = 0x000A }
1631
1632 enum : uint { PBT_APMOEMEVENT = 0x000B }
1633 enum : uint { PBT_APMRESUMEAUTOMATIC = 0x0012 }
1634 // #endif
1635
1636 // #endif /* WINVER >= 0x0400 */
1637
1638 // #if(WINVER >= 0x0400)
1639 enum : uint { WM_DEVICECHANGE = 0x0219 }
1640 // #endif /* WINVER >= 0x0400 */
1641
1642 enum : uint { WM_MDICREATE = 0x0220 }
1643 enum : uint { WM_MDIDESTROY = 0x0221 }
1644 enum : uint { WM_MDIACTIVATE = 0x0222 }
1645 enum : uint { WM_MDIRESTORE = 0x0223 }
1646 enum : uint { WM_MDINEXT = 0x0224 }
1647 enum : uint { WM_MDIMAXIMIZE = 0x0225 }
1648 enum : uint { WM_MDITILE = 0x0226 }
1649 enum : uint { WM_MDICASCADE = 0x0227 }
1650 enum : uint { WM_MDIICONARRANGE = 0x0228 }
1651 enum : uint { WM_MDIGETACTIVE = 0x0229 }
1652
1653 enum : uint { WM_MDISETMENU = 0x0230 }
1654 enum : uint { WM_ENTERSIZEMOVE = 0x0231 }
1655 enum : uint { WM_EXITSIZEMOVE = 0x0232 }
1656 enum : uint { WM_DROPFILES = 0x0233 }
1657 enum : uint { WM_MDIREFRESHMENU = 0x0234 }
1658
1659 // #if(WINVER >= 0x0400)
1660 enum : uint { WM_IME_SETCONTEXT = 0x0281 }
1661 enum : uint { WM_IME_NOTIFY = 0x0282 }
1662 enum : uint { WM_IME_CONTROL = 0x0283 }
1663 enum : uint { WM_IME_COMPOSITIONFULL = 0x0284 }
1664 enum : uint { WM_IME_SELECT = 0x0285 }
1665 enum : uint { WM_IME_CHAR = 0x0286 }
1666 // #endif /* WINVER >= 0x0400 */
1667 // #if(WINVER >= 0x0500)
1668 enum : uint { WM_IME_REQUEST = 0x0288 }
1669 // #endif /* WINVER >= 0x0500 */
1670 // #if(WINVER >= 0x0400)
1671 enum : uint { WM_IME_KEYDOWN = 0x0290 }
1672 enum : uint { WM_IME_KEYUP = 0x0291 }
1673 // #endif /* WINVER >= 0x0400 */
1674
1675 // #if((_WIN32_WINNT >= 0x0400) || (WINVER >= 0x0500))
1676 enum : uint { WM_MOUSEHOVER = 0x02A1 }
1677 enum : uint { WM_MOUSELEAVE = 0x02A3 }
1678 // #endif
1679 // #if(WINVER >= 0x0500)
1680 enum : uint { WM_NCMOUSEHOVER = 0x02A0 }
1681 enum : uint { WM_NCMOUSELEAVE = 0x02A2 }
1682 // #endif /* WINVER >= 0x0500 */
1683
1684 // #if(_WIN32_WINNT >= 0x0501)
1685 enum : uint { WM_WTSSESSION_CHANGE = 0x02B1 }
1686
1687 enum : uint { WM_TABLET_FIRST = 0x02c0 }
1688 enum : uint { WM_TABLET_LAST = 0x02df }
1689 // #endif /* _WIN32_WINNT >= 0x0501 */
1690
1691 enum : uint { WM_CUT = 0x0300 }
1692 enum : uint { WM_COPY = 0x0301 }
1693 enum : uint { WM_PASTE = 0x0302 }
1694 enum : uint { WM_CLEAR = 0x0303 }
1695 enum : uint { WM_UNDO = 0x0304 }
1696 enum : uint { WM_RENDERFORMAT = 0x0305 }
1697 enum : uint { WM_RENDERALLFORMATS = 0x0306 }
1698 enum : uint { WM_DESTROYCLIPBOARD = 0x0307 }
1699 enum : uint { WM_DRAWCLIPBOARD = 0x0308 }
1700 enum : uint { WM_PAINTCLIPBOARD = 0x0309 }
1701 enum : uint { WM_VSCROLLCLIPBOARD = 0x030A }
1702 enum : uint { WM_SIZECLIPBOARD = 0x030B }
1703 enum : uint { WM_ASKCBFORMATNAME = 0x030C }
1704 enum : uint { WM_CHANGECBCHAIN = 0x030D }
1705 enum : uint { WM_HSCROLLCLIPBOARD = 0x030E }
1706 enum : uint { WM_QUERYNEWPALETTE = 0x030F }
1707 enum : uint { WM_PALETTEISCHANGING = 0x0310 }
1708 enum : uint { WM_PALETTECHANGED = 0x0311 }
1709 enum : uint { WM_HOTKEY = 0x0312 }
1710
1711 // #if(WINVER >= 0x0400)
1712 enum : uint { WM_PRINT = 0x0317 }
1713 enum : uint { WM_PRINTCLIENT = 0x0318 }
1714 // #endif /* WINVER >= 0x0400 */
1715
1716 // #if(_WIN32_WINNT >= 0x0500)
1717 enum : uint { WM_APPCOMMAND = 0x0319 }
1718 // #endif /* _WIN32_WINNT >= 0x0500 */
1719
1720 // #if(_WIN32_WINNT >= 0x0501)
1721 enum : uint { WM_THEMECHANGED = 0x031A }
1722 // #endif /* _WIN32_WINNT >= 0x0501 */
1723
1724 // #if(WINVER >= 0x0400)
1725
1726 enum : uint { WM_HANDHELDFIRST = 0x0358 }
1727 enum : uint { WM_HANDHELDLAST = 0x035F }
1728
1729 enum : uint { WM_AFXFIRST = 0x0360 }
1730 enum : uint { WM_AFXLAST = 0x037F }
1731 // #endif /* WINVER >= 0x0400 */
1732
1733 enum : uint { WM_PENWINFIRST = 0x0380 }
1734 enum : uint { WM_PENWINLAST = 0x038F }
1735
1736 // #if(WINVER >= 0x0400)
1737 enum : uint { WM_APP = 0x8000 }
1738 // #endif /* WINVER >= 0x0400 */
1739
1740 enum : uint { WM_USER = 0x0400 }
1741
1742 // #if(WINVER >= 0x0400)
1743
1744 enum : uint { WMSZ_LEFT = 1 }
1745 enum : uint { WMSZ_RIGHT = 2 }
1746 enum : uint { WMSZ_TOP = 3 }
1747 enum : uint { WMSZ_TOPLEFT = 4 }
1748 enum : uint { WMSZ_TOPRIGHT = 5 }
1749 enum : uint { WMSZ_BOTTOM = 6 }
1750 enum : uint { WMSZ_BOTTOMLEFT = 7 }
1751 enum : uint { WMSZ_BOTTOMRIGHT = 8 }
1752 // #endif /* WINVER >= 0x0400 */
1753
1754 // #ifndef NONCMESSAGES
1755
1756 enum { HTERROR = -2 }
1757 enum { HTTRANSPARENT = -1 }
1758 enum : uint { HTNOWHERE = 0 }
1759 enum : uint { HTCLIENT = 1 }
1760 enum : uint { HTCAPTION = 2 }
1761 enum : uint { HTSYSMENU = 3 }
1762 enum : uint { HTGROWBOX = 4 }
1763 alias HTGROWBOX HTSIZE;
1764 enum : uint { HTMENU = 5 }
1765 enum : uint { HTHSCROLL = 6 }
1766 enum : uint { HTVSCROLL = 7 }
1767 enum : uint { HTMINBUTTON = 8 }
1768 enum : uint { HTMAXBUTTON = 9 }
1769 enum : uint { HTLEFT = 10 }
1770 enum : uint { HTRIGHT = 11 }
1771 enum : uint { HTTOP = 12 }
1772 enum : uint { HTTOPLEFT = 13 }
1773 enum : uint { HTTOPRIGHT = 14 }
1774 enum : uint { HTBOTTOM = 15 }
1775 enum : uint { HTBOTTOMLEFT = 16 }
1776 enum : uint { HTBOTTOMRIGHT = 17 }
1777 enum : uint { HTBORDER = 18 }
1778 alias HTMINBUTTON HTREDUCE;
1779 alias HTMAXBUTTON HTZOOM;
1780 alias HTLEFT HTSIZEFIRST;
1781 alias HTBOTTOMRIGHT HTSIZELAST;
1782 // #if(WINVER >= 0x0400)
1783 enum : uint { HTOBJECT = 19 }
1784 enum : uint { HTCLOSE = 20 }
1785 enum : uint { HTHELP = 21 }
1786 // #endif /* WINVER >= 0x0400 */
1787
1788 enum : uint { SMTO_NORMAL = 0x0000 }
1789 enum : uint { SMTO_BLOCK = 0x0001 }
1790 enum : uint { SMTO_ABORTIFHUNG = 0x0002 }
1791 // #if(WINVER >= 0x0500)
1792 enum : uint { SMTO_NOTIMEOUTIFNOTHUNG = 0x0008 }
1793 // #endif /* WINVER >= 0x0500 */
1794 // #endif /* !NONCMESSAGES */
1795
1796 enum : uint { MA_ACTIVATE = 1 }
1797 enum : uint { MA_ACTIVATEANDEAT = 2 }
1798 enum : uint { MA_NOACTIVATE = 3 }
1799 enum : uint { MA_NOACTIVATEANDEAT = 4 }
1800
1801 enum : uint { ICON_SMALL = 0 }
1802 enum : uint { ICON_BIG = 1 }
1803 // #if(_WIN32_WINNT >= 0x0501)
1804 enum : uint { ICON_SMALL2 = 2 }
1805 // #endif /* _WIN32_WINNT >= 0x0501 */
1806
1807 extern(Windows) export UINT RegisterWindowMessageA(
1808 LPCSTR lpString);
1809 extern(Windows) export UINT RegisterWindowMessageW(
1810 LPCWSTR lpString);
1811 // #ifdef UNICODE
1812 alias RegisterWindowMessageW RegisterWindowMessage;
1813 // #else
1814 // #...
1815 // #endif // !UNICODE
1816
1817 enum : uint { SIZE_RESTORED = 0 }
1818 enum : uint { SIZE_MINIMIZED = 1 }
1819 enum : uint { SIZE_MAXIMIZED = 2 }
1820 enum : uint { SIZE_MAXSHOW = 3 }
1821 enum : uint { SIZE_MAXHIDE = 4 }
1822
1823 alias SIZE_RESTORED SIZENORMAL;
1824 alias SIZE_MINIMIZED SIZEICONIC;
1825 alias SIZE_MAXIMIZED SIZEFULLSCREEN;
1826 alias SIZE_MAXSHOW SIZEZOOMSHOW;
1827 alias SIZE_MAXHIDE SIZEZOOMHIDE;
1828
1829 struct tagWINDOWPOS {
1830 HWND hwnd;
1831 HWND hwndInsertAfter;
1832 int x;
1833 int y;
1834 int cx;
1835 int cy;
1836 UINT flags;
1837 }
1838 alias tagWINDOWPOS WINDOWPOS;
1839 alias tagWINDOWPOS* LPWINDOWPOS;
1840 alias tagWINDOWPOS* PWINDOWPOS;
1841
1842 struct tagNCCALCSIZE_PARAMS {
1843 RECT rgrc[3];
1844 PWINDOWPOS lppos;
1845 }
1846 alias tagNCCALCSIZE_PARAMS NCCALCSIZE_PARAMS;
1847 alias tagNCCALCSIZE_PARAMS* LPNCCALCSIZE_PARAMS;
1848
1849 enum : uint { WVR_ALIGNTOP = 0x0010 }
1850 enum : uint { WVR_ALIGNLEFT = 0x0020 }
1851 enum : uint { WVR_ALIGNBOTTOM = 0x0040 }
1852 enum : uint { WVR_ALIGNRIGHT = 0x0080 }
1853 enum : uint { WVR_HREDRAW = 0x0100 }
1854 enum : uint { WVR_VREDRAW = 0x0200 }
1855 enum : uint { WVR_REDRAW = WVR_HREDRAW | WVR_VREDRAW }
1856 enum : uint { WVR_VALIDRECTS = 0x0400 }
1857
1858 // #ifndef NOKEYSTATES
1859
1860 enum : uint { MK_LBUTTON = 0x0001 }
1861 enum : uint { MK_RBUTTON = 0x0002 }
1862 enum : uint { MK_SHIFT = 0x0004 }
1863 enum : uint { MK_CONTROL = 0x0008 }
1864 enum : uint { MK_MBUTTON = 0x0010 }
1865 // #if(_WIN32_WINNT >= 0x0500)
1866 enum : uint { MK_XBUTTON1 = 0x0020 }
1867 enum : uint { MK_XBUTTON2 = 0x0040 }
1868 // #endif /* _WIN32_WINNT >= 0x0500 */
1869
1870 // #endif /* !NOKEYSTATES */
1871
1872 // #if(_WIN32_WINNT >= 0x0400)
1873 // #ifndef NOTRACKMOUSEEVENT
1874
1875 enum : uint { TME_HOVER = 0x00000001 }
1876 enum : uint { TME_LEAVE = 0x00000002 }
1877 // #if(WINVER >= 0x0500)
1878 enum : uint { TME_NONCLIENT = 0x00000010 }
1879 // #endif /* WINVER >= 0x0500 */
1880 enum : uint { TME_QUERY = 0x40000000 }
1881 enum : uint { TME_CANCEL = 0x80000000 }
1882
1883 enum : uint { HOVER_DEFAULT = 0xFFFFFFFF }
1884 // #endif /* _WIN32_WINNT >= 0x0400 */
1885
1886 // #if(_WIN32_WINNT >= 0x0400)
1887 struct tagTRACKMOUSEEVENT {
1888 DWORD cbSize;
1889 DWORD dwFlags;
1890 HWND hwndTrack;
1891 DWORD dwHoverTime;
1892 }
1893 alias tagTRACKMOUSEEVENT TRACKMOUSEEVENT;
1894 alias tagTRACKMOUSEEVENT* LPTRACKMOUSEEVENT;
1895
1896 extern(Windows) export BOOL TrackMouseEvent(
1897 LPTRACKMOUSEEVENT lpEventTrack);
1898 // #endif /* _WIN32_WINNT >= 0x0400 */
1899
1900 // #if(_WIN32_WINNT >= 0x0400)
1901
1902 // #endif /* !NOTRACKMOUSEEVENT */
1903 // #endif /* _WIN32_WINNT >= 0x0400 */
1904
1905 // #endif /* !NOWINMESSAGES */
1906
1907 // #ifndef NOWINSTYLES
1908
1909 enum : uint { WS_OVERLAPPED = 0x00000000 }
1910 enum : uint { WS_POPUP = 0x80000000 }
1911 enum : uint { WS_CHILD = 0x40000000 }
1912 enum : uint { WS_MINIMIZE = 0x20000000 }
1913 enum : uint { WS_VISIBLE = 0x10000000 }
1914 enum : uint { WS_DISABLED = 0x08000000 }
1915 enum : uint { WS_CLIPSIBLINGS = 0x04000000 }
1916 enum : uint { WS_CLIPCHILDREN = 0x02000000 }
1917 enum : uint { WS_MAXIMIZE = 0x01000000 }
1918 enum : uint { WS_CAPTION = 0x00C00000 }
1919 enum : uint { WS_BORDER = 0x00800000 }
1920 enum : uint { WS_DLGFRAME = 0x00400000 }
1921 enum : uint { WS_VSCROLL = 0x00200000 }
1922 enum : uint { WS_HSCROLL = 0x00100000 }
1923 enum : uint { WS_SYSMENU = 0x00080000 }
1924 enum : uint { WS_THICKFRAME = 0x00040000 }
1925 enum : uint { WS_GROUP = 0x00020000 }
1926 enum : uint { WS_TABSTOP = 0x00010000 }
1927
1928 enum : uint { WS_MINIMIZEBOX = 0x00020000 }
1929 enum : uint { WS_MAXIMIZEBOX = 0x00010000 }
1930
1931 alias WS_OVERLAPPED WS_TILED;
1932 alias WS_MINIMIZE WS_ICONIC;
1933 alias WS_THICKFRAME WS_SIZEBOX;
1934 // #define WS_TILEDWINDOW WS_OVERLAPPEDWINDOW
1935
1936 enum : uint { WS_OVERLAPPEDWINDOW = WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX }
1937
1938 enum : uint { WS_POPUPWINDOW = WS_POPUP | WS_BORDER | WS_SYSMENU }
1939
1940 enum : uint { WS_CHILDWINDOW = WS_CHILD }
1941
1942 enum : uint { WS_EX_DLGMODALFRAME = 0x00000001 }
1943 enum : uint { WS_EX_NOPARENTNOTIFY = 0x00000004 }
1944 enum : uint { WS_EX_TOPMOST = 0x00000008 }
1945 enum : uint { WS_EX_ACCEPTFILES = 0x00000010 }
1946 enum : uint { WS_EX_TRANSPARENT = 0x00000020 }
1947 // #if(WINVER >= 0x0400)
1948 enum : uint { WS_EX_MDICHILD = 0x00000040 }
1949 enum : uint { WS_EX_TOOLWINDOW = 0x00000080 }
1950 enum : uint { WS_EX_WINDOWEDGE = 0x00000100 }
1951 enum : uint { WS_EX_CLIENTEDGE = 0x00000200 }
1952 enum : uint { WS_EX_CONTEXTHELP = 0x00000400 }
1953
1954 // #endif /* WINVER >= 0x0400 */
1955 // #if(WINVER >= 0x0400)
1956
1957 enum : uint { WS_EX_RIGHT = 0x00001000 }
1958 enum : uint { WS_EX_LEFT = 0x00000000 }
1959 enum : uint { WS_EX_RTLREADING = 0x00002000 }
1960 enum : uint { WS_EX_LTRREADING = 0x00000000 }
1961 enum : uint { WS_EX_LEFTSCROLLBAR = 0x00004000 }
1962 enum : uint { WS_EX_RIGHTSCROLLBAR = 0x00000000 }
1963
1964 enum : uint { WS_EX_CONTROLPARENT = 0x00010000 }
1965 enum : uint { WS_EX_STATICEDGE = 0x00020000 }
1966 enum : uint { WS_EX_APPWINDOW = 0x00040000 }
1967
1968 enum : uint { WS_EX_OVERLAPPEDWINDOW = WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE }
1969 enum : uint { WS_EX_PALETTEWINDOW = WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST }
1970
1971 // #endif /* WINVER >= 0x0400 */
1972
1973 // #if(_WIN32_WINNT >= 0x0500)
1974 enum : uint { WS_EX_LAYERED = 0x00080000 }
1975
1976 // #endif /* _WIN32_WINNT >= 0x0500 */
1977
1978 // #if(WINVER >= 0x0500)
1979 enum : uint { WS_EX_NOINHERITLAYOUT = 0x00100000 }
1980 enum : uint { WS_EX_LAYOUTRTL = 0x00400000 }
1981 // #endif /* WINVER >= 0x0500 */
1982
1983 // #if(_WIN32_WINNT >= 0x0501)
1984 enum : uint { WS_EX_COMPOSITED = 0x02000000 }
1985 // #endif /* _WIN32_WINNT >= 0x0501 */
1986 // #if(_WIN32_WINNT >= 0x0500)
1987 enum : uint { WS_EX_NOACTIVATE = 0x08000000 }
1988 // #endif /* _WIN32_WINNT >= 0x0500 */
1989
1990 enum : uint { CS_VREDRAW = 0x0001 }
1991 enum : uint { CS_HREDRAW = 0x0002 }
1992 enum : uint { CS_DBLCLKS = 0x0008 }
1993 enum : uint { CS_OWNDC = 0x0020 }
1994 enum : uint { CS_CLASSDC = 0x0040 }
1995 enum : uint { CS_PARENTDC = 0x0080 }
1996 enum : uint { CS_NOCLOSE = 0x0200 }
1997 enum : uint { CS_SAVEBITS = 0x0800 }
1998 enum : uint { CS_BYTEALIGNCLIENT = 0x1000 }
1999 enum : uint { CS_BYTEALIGNWINDOW = 0x2000 }
2000 enum : uint { CS_GLOBALCLASS = 0x4000 }
2001
2002 enum : uint { CS_IME = 0x00010000 }
2003 // #if(_WIN32_WINNT >= 0x0501)
2004 enum : uint { CS_DROPSHADOW = 0x00020000 }
2005 // #endif /* _WIN32_WINNT >= 0x0501 */
2006
2007 // #endif /* !NOWINSTYLES */
2008 // #if(WINVER >= 0x0400)
2009
2010 enum : uint { PRF_CHECKVISIBLE = 0x00000001 }
2011 enum : uint { PRF_NONCLIENT = 0x00000002 }
2012 enum : uint { PRF_CLIENT = 0x00000004 }
2013 enum : uint { PRF_ERASEBKGND = 0x00000008 }
2014 enum : uint { PRF_CHILDREN = 0x00000010 }
2015 enum : uint { PRF_OWNED = 0x00000020 }
2016
2017 enum : uint { BDR_RAISEDOUTER = 0x0001 }
2018 enum : uint { BDR_SUNKENOUTER = 0x0002 }
2019 enum : uint { BDR_RAISEDINNER = 0x0004 }
2020 enum : uint { BDR_SUNKENINNER = 0x0008 }
2021
2022 enum : uint { BDR_OUTER = BDR_RAISEDOUTER | BDR_SUNKENOUTER }
2023 enum : uint { BDR_INNER = BDR_RAISEDINNER | BDR_SUNKENINNER }
2024 enum : uint { BDR_RAISED = BDR_RAISEDOUTER | BDR_RAISEDINNER }
2025 enum : uint { BDR_SUNKEN = BDR_SUNKENOUTER | BDR_SUNKENINNER }
2026
2027 enum : uint { EDGE_RAISED = BDR_RAISEDOUTER | BDR_RAISEDINNER }
2028 enum : uint { EDGE_SUNKEN = BDR_SUNKENOUTER | BDR_SUNKENINNER }
2029 enum : uint { EDGE_ETCHED = BDR_SUNKENOUTER | BDR_RAISEDINNER }
2030 enum : uint { EDGE_BUMP = BDR_RAISEDOUTER | BDR_SUNKENINNER }
2031
2032 enum : uint { BF_LEFT = 0x0001 }
2033 enum : uint { BF_TOP = 0x0002 }
2034 enum : uint { BF_RIGHT = 0x0004 }
2035 enum : uint { BF_BOTTOM = 0x0008 }
2036
2037 enum : uint { BF_TOPLEFT = BF_TOP | BF_LEFT }
2038 enum : uint { BF_TOPRIGHT = BF_TOP | BF_RIGHT }
2039 enum : uint { BF_BOTTOMLEFT = BF_BOTTOM | BF_LEFT }
2040 enum : uint { BF_BOTTOMRIGHT = BF_BOTTOM | BF_RIGHT }
2041 enum : uint { BF_RECT = BF_LEFT | BF_TOP | BF_RIGHT | BF_BOTTOM }
2042
2043 enum : uint { BF_DIAGONAL = 0x0010 }
2044
2045 enum : uint { BF_DIAGONAL_ENDTOPRIGHT = BF_DIAGONAL | BF_TOP | BF_RIGHT }
2046 enum : uint { BF_DIAGONAL_ENDTOPLEFT = BF_DIAGONAL | BF_TOP | BF_LEFT }
2047 enum : uint { BF_DIAGONAL_ENDBOTTOMLEFT = BF_DIAGONAL | BF_BOTTOM | BF_LEFT }
2048 enum : uint { BF_DIAGONAL_ENDBOTTOMRIGHT = BF_DIAGONAL | BF_BOTTOM | BF_RIGHT }
2049
2050 enum : uint { BF_MIDDLE = 0x0800 }
2051 enum : uint { BF_SOFT = 0x1000 }
2052 enum : uint { BF_ADJUST = 0x2000 }
2053 enum : uint { BF_FLAT = 0x4000 }
2054 enum : uint { BF_MONO = 0x8000 }
2055
2056 extern(Windows) export BOOL DrawEdge(
2057 HDC hdc,
2058 LPRECT qrc,
2059 UINT edge,
2060 UINT grfFlags);
2061
2062 enum : uint { DFC_CAPTION = 1 }
2063 enum : uint { DFC_MENU = 2 }
2064 enum : uint { DFC_SCROLL = 3 }
2065 enum : uint { DFC_BUTTON = 4 }
2066 // #if(WINVER >= 0x0500)
2067 enum : uint { DFC_POPUPMENU = 5 }
2068 // #endif /* WINVER >= 0x0500 */
2069
2070 enum : uint { DFCS_CAPTIONCLOSE = 0x0000 }
2071 enum : uint { DFCS_CAPTIONMIN = 0x0001 }
2072 enum : uint { DFCS_CAPTIONMAX = 0x0002 }
2073 enum : uint { DFCS_CAPTIONRESTORE = 0x0003 }
2074 enum : uint { DFCS_CAPTIONHELP = 0x0004 }
2075
2076 enum : uint { DFCS_MENUARROW = 0x0000 }
2077 enum : uint { DFCS_MENUCHECK = 0x0001 }
2078 enum : uint { DFCS_MENUBULLET = 0x0002 }
2079 enum : uint { DFCS_MENUARROWRIGHT = 0x0004 }
2080 enum : uint { DFCS_SCROLLUP = 0x0000 }
2081 enum : uint { DFCS_SCROLLDOWN = 0x0001 }
2082 enum : uint { DFCS_SCROLLLEFT = 0x0002 }
2083 enum : uint { DFCS_SCROLLRIGHT = 0x0003 }
2084 enum : uint { DFCS_SCROLLCOMBOBOX = 0x0005 }
2085 enum : uint { DFCS_SCROLLSIZEGRIP = 0x0008 }
2086 enum : uint { DFCS_SCROLLSIZEGRIPRIGHT = 0x0010 }
2087
2088 enum : uint { DFCS_BUTTONCHECK = 0x0000 }
2089 enum : uint { DFCS_BUTTONRADIOIMAGE = 0x0001 }
2090 enum : uint { DFCS_BUTTONRADIOMASK = 0x0002 }
2091 enum : uint { DFCS_BUTTONRADIO = 0x0004 }
2092 enum : uint { DFCS_BUTTON3STATE = 0x0008 }
2093 enum : uint { DFCS_BUTTONPUSH = 0x0010 }
2094
2095 enum : uint { DFCS_INACTIVE = 0x0100 }
2096 enum : uint { DFCS_PUSHED = 0x0200 }
2097 enum : uint { DFCS_CHECKED = 0x0400 }
2098
2099 // #if(WINVER >= 0x0500)
2100 enum : uint { DFCS_TRANSPARENT = 0x0800 }
2101 enum : uint { DFCS_HOT = 0x1000 }
2102 // #endif /* WINVER >= 0x0500 */
2103
2104 enum : uint { DFCS_ADJUSTRECT = 0x2000 }
2105 enum : uint { DFCS_FLAT = 0x4000 }
2106 enum : uint { DFCS_MONO = 0x8000 }
2107
2108 extern(Windows) export BOOL DrawFrameControl(
2109 HDC,
2110 LPRECT,
2111 UINT,
2112 UINT);
2113
2114 enum : uint { DC_ACTIVE = 0x0001 }
2115 enum : uint { DC_SMALLCAP = 0x0002 }
2116 enum : uint { DC_ICON = 0x0004 }
2117 enum : uint { DC_TEXT = 0x0008 }
2118 enum : uint { DC_INBUTTON = 0x0010 }
2119 // #if(WINVER >= 0x0500)
2120 enum : uint { DC_GRADIENT = 0x0020 }
2121 // #endif /* WINVER >= 0x0500 */
2122 // #if(_WIN32_WINNT >= 0x0501)
2123 enum : uint { DC_BUTTONS = 0x1000 }
2124 // #endif /* _WIN32_WINNT >= 0x0501 */
2125
2126 extern(Windows) export BOOL DrawCaption(HWND, HDC, RECT *, UINT);
2127
2128 enum : uint { IDANI_OPEN = 1 }
2129 enum : uint { IDANI_CAPTION = 3 }
2130
2131 extern(Windows) export BOOL DrawAnimatedRects(
2132 HWND hwnd,
2133 int idAni,
2134 RECT * lprcFrom,
2135 RECT * lprcTo);
2136
2137 // #endif /* WINVER >= 0x0400 */
2138
2139 // #ifndef NOCLIPBOARD
2140
2141 enum : uint { CF_TEXT = 1 }
2142 enum : uint { CF_BITMAP = 2 }
2143 enum : uint { CF_METAFILEPICT = 3 }
2144 enum : uint { CF_SYLK = 4 }
2145 enum : uint { CF_DIF = 5 }
2146 enum : uint { CF_TIFF = 6 }
2147 enum : uint { CF_OEMTEXT = 7 }
2148 enum : uint { CF_DIB = 8 }
2149 enum : uint { CF_PALETTE = 9 }
2150 enum : uint { CF_PENDATA = 10 }
2151 enum : uint { CF_RIFF = 11 }
2152 enum : uint { CF_WAVE = 12 }
2153 enum : uint { CF_UNICODETEXT = 13 }
2154 enum : uint { CF_ENHMETAFILE = 14 }
2155 // #if(WINVER >= 0x0400)
2156 enum : uint { CF_HDROP = 15 }
2157 enum : uint { CF_LOCALE = 16 }
2158 // #endif /* WINVER >= 0x0400 */
2159 // #if(WINVER >= 0x0500)
2160 enum : uint { CF_DIBV5 = 17 }
2161 // #endif /* WINVER >= 0x0500 */
2162
2163 // #if(WINVER >= 0x0500)
2164 enum : uint { CF_MAX = 18 }
2165 // #elif(WINVER >= 0x0400)
2166 // #...
2167 // #else
2168 // #...
2169 // #endif
2170
2171 enum : uint { CF_OWNERDISPLAY = 0x0080 }
2172 enum : uint { CF_DSPTEXT = 0x0081 }
2173 enum : uint { CF_DSPBITMAP = 0x0082 }
2174 enum : uint { CF_DSPMETAFILEPICT = 0x0083 }
2175 enum : uint { CF_DSPENHMETAFILE = 0x008E }
2176
2177 enum : uint { CF_PRIVATEFIRST = 0x0200 }
2178 enum : uint { CF_PRIVATELAST = 0x02FF }
2179
2180 enum : uint { CF_GDIOBJFIRST = 0x0300 }
2181 enum : uint { CF_GDIOBJLAST = 0x03FF }
2182
2183 // #endif /* !NOCLIPBOARD */
2184
2185 alias TRUE FVIRTKEY;
2186 enum : uint { FNOINVERT = 0x02 }
2187 enum : uint { FSHIFT = 0x04 }
2188 enum : uint { FCONTROL = 0x08 }
2189 enum : uint { FALT = 0x10 }
2190
2191 struct tagACCEL {
2192 // #ifndef _MAC
2193 BYTE fVirt;
2194 WORD key;
2195 WORD cmd;
2196 // #else
2197 // ...
2198 // #endif
2199 }
2200 alias tagACCEL ACCEL;
2201 alias tagACCEL* LPACCEL;
2202
2203 struct tagPAINTSTRUCT {
2204 HDC hdc;
2205 BOOL fErase;
2206 RECT rcPaint;
2207 BOOL fRestore;
2208 BOOL fIncUpdate;
2209 BYTE rgbReserved[32];
2210 }
2211 alias tagPAINTSTRUCT PAINTSTRUCT;
2212 alias tagPAINTSTRUCT* PPAINTSTRUCT;
2213 alias tagPAINTSTRUCT* NPPAINTSTRUCT;
2214 alias tagPAINTSTRUCT* LPPAINTSTRUCT;
2215
2216 struct tagCREATESTRUCTA {
2217 LPVOID lpCreateParams;
2218 HINSTANCE hInstance;
2219 HMENU hMenu;
2220 HWND hwndParent;
2221 int cy;
2222 int cx;
2223 int y;
2224 int x;
2225 LONG style;
2226 LPCSTR lpszName;
2227 LPCSTR lpszClass;
2228 DWORD dwExStyle;
2229 }
2230 alias tagCREATESTRUCTA CREATESTRUCTA;
2231 alias tagCREATESTRUCTA* LPCREATESTRUCTA;
2232
2233 struct tagCREATESTRUCTW {
2234 LPVOID lpCreateParams;
2235 HINSTANCE hInstance;
2236 HMENU hMenu;
2237 HWND hwndParent;
2238 int cy;
2239 int cx;
2240 int y;
2241 int x;
2242 LONG style;
2243 LPCWSTR lpszName;
2244 LPCWSTR lpszClass;
2245 DWORD dwExStyle;
2246 }
2247 alias tagCREATESTRUCTW CREATESTRUCTW;
2248 alias tagCREATESTRUCTW* LPCREATESTRUCTW;
2249
2250 // #ifdef UNICODE
2251 alias CREATESTRUCTW CREATESTRUCT;
2252 alias LPCREATESTRUCTW LPCREATESTRUCT;
2253 // #else
2254 // ...
2255 // #endif // UNICODE
2256
2257 struct tagWINDOWPLACEMENT {
2258 UINT length;
2259 UINT flags;
2260 UINT showCmd;
2261 POINT ptMinPosition;
2262 POINT ptMaxPosition;
2263 RECT rcNormalPosition;
2264 // #ifdef _MAC
2265 // ...
2266 // #endif
2267 }
2268 alias tagWINDOWPLACEMENT WINDOWPLACEMENT;
2269
2270 alias WINDOWPLACEMENT* PWINDOWPLACEMENT;
2271 alias WINDOWPLACEMENT* LPWINDOWPLACEMENT;
2272
2273 enum : uint { WPF_SETMINPOSITION = 0x0001 }
2274 enum : uint { WPF_RESTORETOMAXIMIZED = 0x0002 }
2275 // #if(_WIN32_WINNT >= 0x0500)
2276 enum : uint { WPF_ASYNCWINDOWPLACEMENT = 0x0004 }
2277 // #endif /* _WIN32_WINNT >= 0x0500 */
2278
2279 // #if(WINVER >= 0x0400)
2280 struct tagNMHDR {
2281 HWND hwndFrom;
2282 UINT_PTR idFrom;
2283 UINT code;
2284 }
2285 alias tagNMHDR NMHDR;
2286
2287 alias NMHDR* LPNMHDR;
2288
2289 struct tagSTYLESTRUCT {
2290 DWORD styleOld;
2291 DWORD styleNew;
2292 }
2293 alias tagSTYLESTRUCT STYLESTRUCT;
2294 alias tagSTYLESTRUCT* LPSTYLESTRUCT;
2295
2296 // #endif /* WINVER >= 0x0400 */
2297
2298 enum : uint { ODT_MENU = 1 }
2299 enum : uint { ODT_LISTBOX = 2 }
2300 enum : uint { ODT_COMBOBOX = 3 }
2301 enum : uint { ODT_BUTTON = 4 }
2302 // #if(WINVER >= 0x0400)
2303 enum : uint { ODT_STATIC = 5 }
2304 // #endif /* WINVER >= 0x0400 */
2305
2306 enum : uint { ODA_DRAWENTIRE = 0x0001 }
2307 enum : uint { ODA_SELECT = 0x0002 }
2308 enum : uint { ODA_FOCUS = 0x0004 }
2309
2310 enum : uint { ODS_SELECTED = 0x0001 }
2311 enum : uint { ODS_GRAYED = 0x0002 }
2312 enum : uint { ODS_DISABLED = 0x0004 }
2313 enum : uint { ODS_CHECKED = 0x0008 }
2314 enum : uint { ODS_FOCUS = 0x0010 }
2315 // #if(WINVER >= 0x0400)
2316 enum : uint { ODS_DEFAULT = 0x0020 }
2317 enum : uint { ODS_COMBOBOXEDIT = 0x1000 }
2318 // #endif /* WINVER >= 0x0400 */
2319 // #if(WINVER >= 0x0500)
2320 enum : uint { ODS_HOTLIGHT = 0x0040 }
2321 enum : uint { ODS_INACTIVE = 0x0080 }
2322 // #if(_WIN32_WINNT >= 0x0500)
2323 enum : uint { ODS_NOACCEL = 0x0100 }
2324 enum : uint { ODS_NOFOCUSRECT = 0x0200 }
2325 // #endif /* _WIN32_WINNT >= 0x0500 */
2326 // #endif /* WINVER >= 0x0500 */
2327
2328 struct tagMEASUREITEMSTRUCT {
2329 UINT CtlType;
2330 UINT CtlID;
2331 UINT itemID;
2332 UINT itemWidth;
2333 UINT itemHeight;
2334 ULONG_PTR itemData;
2335 }
2336 alias tagMEASUREITEMSTRUCT MEASUREITEMSTRUCT;
2337 alias tagMEASUREITEMSTRUCT* PMEASUREITEMSTRUCT;
2338 alias tagMEASUREITEMSTRUCT* LPMEASUREITEMSTRUCT;
2339
2340 struct tagDRAWITEMSTRUCT {
2341 UINT CtlType;
2342 UINT CtlID;
2343 UINT itemID;
2344 UINT itemAction;
2345 UINT itemState;
2346 HWND hwndItem;
2347 HDC hDC;
2348 RECT rcItem;
2349 ULONG_PTR itemData;
2350 }
2351 alias tagDRAWITEMSTRUCT DRAWITEMSTRUCT;
2352 alias tagDRAWITEMSTRUCT* PDRAWITEMSTRUCT;
2353 alias tagDRAWITEMSTRUCT* LPDRAWITEMSTRUCT;
2354
2355 struct tagDELETEITEMSTRUCT {
2356 UINT CtlType;
2357 UINT CtlID;
2358 UINT itemID;
2359 HWND hwndItem;
2360 ULONG_PTR itemData;
2361 }
2362 alias tagDELETEITEMSTRUCT DELETEITEMSTRUCT;
2363 alias tagDELETEITEMSTRUCT* PDELETEITEMSTRUCT;
2364 alias tagDELETEITEMSTRUCT* LPDELETEITEMSTRUCT;
2365
2366 struct tagCOMPAREITEMSTRUCT {
2367 UINT CtlType;
2368 UINT CtlID;
2369 HWND hwndItem;
2370 UINT itemID1;
2371 ULONG_PTR itemData1;
2372 UINT itemID2;
2373 ULONG_PTR itemData2;
2374 DWORD dwLocaleId;
2375 }
2376 alias tagCOMPAREITEMSTRUCT COMPAREITEMSTRUCT;
2377 alias tagCOMPAREITEMSTRUCT* PCOMPAREITEMSTRUCT;
2378 alias tagCOMPAREITEMSTRUCT* LPCOMPAREITEMSTRUCT;
2379
2380 // #ifndef NOMSG
2381
2382 extern(Windows) export BOOL GetMessageA(
2383 LPMSG lpMsg,
2384 HWND hWnd,
2385 UINT wMsgFilterMin,
2386 UINT wMsgFilterMax);
2387 extern(Windows) export BOOL GetMessageW(
2388 LPMSG lpMsg,
2389 HWND hWnd,
2390 UINT wMsgFilterMin,
2391 UINT wMsgFilterMax);
2392 // #ifdef UNICODE
2393 alias GetMessageW GetMessage;
2394 // #else
2395 // #...
2396 // #endif // !UNICODE
2397
2398 extern(Windows) export BOOL TranslateMessage(
2399 MSG *lpMsg);
2400
2401 extern(Windows) export LRESULT DispatchMessageA(
2402 MSG *lpMsg);
2403 extern(Windows) export LRESULT DispatchMessageW(
2404 MSG *lpMsg);
2405 // #ifdef UNICODE
2406 alias DispatchMessageW DispatchMessage;
2407 // #else
2408 // #...
2409 // #endif // !UNICODE
2410
2411 extern(Windows) export BOOL SetMessageQueue(
2412 int cMessagesMax);
2413
2414 extern(Windows) export BOOL PeekMessageA(
2415 LPMSG lpMsg,
2416 HWND hWnd,
2417 UINT wMsgFilterMin,
2418 UINT wMsgFilterMax,
2419 UINT wRemoveMsg);
2420 extern(Windows) export BOOL PeekMessageW(
2421 LPMSG lpMsg,
2422 HWND hWnd,
2423 UINT wMsgFilterMin,
2424 UINT wMsgFilterMax,
2425 UINT wRemoveMsg);
2426 // #ifdef UNICODE
2427 alias PeekMessageW PeekMessage;
2428 // #else
2429 // #...
2430 // #endif // !UNICODE
2431
2432 enum : uint { PM_NOREMOVE = 0x0000 }
2433 enum : uint { PM_REMOVE = 0x0001 }
2434 enum : uint { PM_NOYIELD = 0x0002 }
2435 // #if(WINVER >= 0x0500)
2436 enum : uint { PM_QS_INPUT = QS_INPUT << 16 }
2437 enum : uint { PM_QS_POSTMESSAGE = (QS_POSTMESSAGE | QS_HOTKEY | QS_TIMER) << 16 }
2438 enum : uint { PM_QS_PAINT = QS_PAINT << 16 }
2439 enum : uint { PM_QS_SENDMESSAGE = QS_SENDMESSAGE << 16 }
2440 // #endif /* WINVER >= 0x0500 */
2441
2442 // #endif /* !NOMSG */
2443
2444 extern(Windows) export BOOL RegisterHotKey(
2445 HWND hWnd,
2446 int id,
2447 UINT fsModifiers,
2448 UINT vk);
2449
2450 extern(Windows) export BOOL UnregisterHotKey(
2451 HWND hWnd,
2452 int id);
2453
2454 enum : uint { MOD_ALT = 0x0001 }
2455 enum : uint { MOD_CONTROL = 0x0002 }
2456 enum : uint { MOD_SHIFT = 0x0004 }
2457 enum : uint { MOD_WIN = 0x0008 }
2458
2459 enum { IDHOT_SNAPWINDOW = -1 }
2460 enum { IDHOT_SNAPDESKTOP = -2 }
2461
2462 // #ifdef WIN_INTERNAL
2463 // #ifndef LSTRING
2464 // #...
2465 // #endif /* LSTRING */
2466 // #ifndef LFILEIO
2467 // #...
2468 // #endif /* LFILEIO */
2469 // #endif /* WIN_INTERNAL */
2470
2471 // #if(WINVER >= 0x0400)
2472
2473 enum : uint { ENDSESSION_LOGOFF = 0x80000000 }
2474 // #endif /* WINVER >= 0x0400 */
2475
2476 enum : uint { EWX_LOGOFF = 0 }
2477 enum : uint { EWX_SHUTDOWN = 0x00000001 }
2478 enum : uint { EWX_REBOOT = 0x00000002 }
2479 enum : uint { EWX_FORCE = 0x00000004 }
2480 enum : uint { EWX_POWEROFF = 0x00000008 }
2481 // #if(_WIN32_WINNT >= 0x0500)
2482 enum : uint { EWX_FORCEIFHUNG = 0x00000010 }
2483 // #endif /* _WIN32_WINNT >= 0x0500 */
2484
2485 BOOL ExitWindows(DWORD dwReserved, UINT Code){ return ExitWindowsEx(EWX_LOGOFF, 0xFFFFFFFF); }
2486
2487 extern(Windows) export BOOL ExitWindowsEx(
2488 UINT uFlags,
2489 DWORD dwReserved);
2490
2491 extern(Windows) export BOOL SwapMouseButton(
2492 BOOL fSwap);
2493
2494 extern(Windows) export DWORD GetMessagePos();
2495
2496 extern(Windows) export LONG GetMessageTime();
2497
2498 extern(Windows) export LPARAM GetMessageExtraInfo();
2499
2500 // #if(WINVER >= 0x0400)
2501 extern(Windows) export LPARAM SetMessageExtraInfo(
2502 LPARAM lParam);
2503 // #endif /* WINVER >= 0x0400 */
2504
2505 extern(Windows) export LRESULT SendMessageA(
2506 HWND hWnd,
2507 UINT Msg,
2508 WPARAM wParam,
2509 LPARAM lParam);
2510 extern(Windows) export LRESULT SendMessageW(
2511 HWND hWnd,
2512 UINT Msg,
2513 WPARAM wParam,
2514 LPARAM lParam);
2515 // #ifdef UNICODE
2516 alias SendMessageW SendMessage;
2517 // #else
2518 // #...
2519 // #endif // !UNICODE
2520
2521 extern(Windows) export LRESULT SendMessageTimeoutA(
2522 HWND hWnd,
2523 UINT Msg,
2524 WPARAM wParam,
2525 LPARAM lParam,
2526 UINT fuFlags,
2527 UINT uTimeout,
2528 PDWORD_PTR lpdwResult);
2529 extern(Windows) export LRESULT SendMessageTimeoutW(
2530 HWND hWnd,
2531 UINT Msg,
2532 WPARAM wParam,
2533 LPARAM lParam,
2534 UINT fuFlags,
2535 UINT uTimeout,
2536 PDWORD_PTR lpdwResult);
2537 // #ifdef UNICODE
2538 alias SendMessageTimeoutW SendMessageTimeout;
2539 // #else
2540 // #...
2541 // #endif // !UNICODE
2542
2543 extern(Windows) export BOOL SendNotifyMessageA(
2544 HWND hWnd,
2545 UINT Msg,
2546 WPARAM wParam,
2547 LPARAM lParam);
2548 extern(Windows) export BOOL SendNotifyMessageW(
2549 HWND hWnd,
2550 UINT Msg,
2551 WPARAM wParam,
2552 LPARAM lParam);
2553 // #ifdef UNICODE
2554 alias SendNotifyMessageW SendNotifyMessage;
2555 // #else
2556 // #...
2557 // #endif // !UNICODE
2558
2559 extern(Windows) export BOOL SendMessageCallbackA(
2560 HWND hWnd,
2561 UINT Msg,
2562 WPARAM wParam,
2563 LPARAM lParam,
2564 SENDASYNCPROC lpResultCallBack,
2565 ULONG_PTR dwData);
2566 extern(Windows) export BOOL SendMessageCallbackW(
2567 HWND hWnd,
2568 UINT Msg,
2569 WPARAM wParam,
2570 LPARAM lParam,
2571 SENDASYNCPROC lpResultCallBack,
2572 ULONG_PTR dwData);
2573 // #ifdef UNICODE
2574 alias SendMessageCallbackW SendMessageCallback;
2575 // #else
2576 // #...
2577 // #endif // !UNICODE
2578
2579 // #if(_WIN32_WINNT >= 0x0501)
2580 struct _0 {
2581 UINT cbSize;
2582 HDESK hdesk;
2583 HWND hwnd;
2584 LUID luid;
2585 }
2586 alias _0 BSMINFO;
2587 alias _0* PBSMINFO;
2588
2589 extern(Windows) export int BroadcastSystemMessageExA(
2590 DWORD,
2591 LPDWORD,
2592 UINT,
2593 WPARAM,
2594 LPARAM,
2595 PBSMINFO);
2596 extern(Windows) export int BroadcastSystemMessageExW(
2597 DWORD,
2598 LPDWORD,
2599 UINT,
2600 WPARAM,
2601 LPARAM,
2602 PBSMINFO);
2603 // #ifdef UNICODE
2604 alias BroadcastSystemMessageExW BroadcastSystemMessageEx;
2605 // #else
2606 // #...
2607 // #endif // !UNICODE
2608 // #endif /* _WIN32_WINNT >= 0x0501 */
2609
2610 // #if(WINVER >= 0x0400)
2611
2612 // #if defined(_WIN32_WINNT)
2613 extern(Windows) export int BroadcastSystemMessageA(
2614 DWORD,
2615 LPDWORD,
2616 UINT,
2617 WPARAM,
2618 LPARAM);
2619 extern(Windows) export int BroadcastSystemMessageW(
2620 DWORD,
2621 LPDWORD,
2622 UINT,
2623 WPARAM,
2624 LPARAM);
2625 // #ifdef UNICODE
2626 alias BroadcastSystemMessageW BroadcastSystemMessage;
2627 // #else
2628 // #...
2629 // #endif // !UNICODE
2630 // #elif defined(_WIN32_WINDOWS)
2631
2632 // ...
2633
2634 // #endif
2635
2636 enum : uint { BSM_ALLCOMPONENTS = 0x00000000 }
2637 enum : uint { BSM_VXDS = 0x00000001 }
2638 enum : uint { BSM_NETDRIVER = 0x00000002 }
2639 enum : uint { BSM_INSTALLABLEDRIVERS = 0x00000004 }
2640 enum : uint { BSM_APPLICATIONS = 0x00000008 }
2641 enum : uint { BSM_ALLDESKTOPS = 0x00000010 }
2642
2643 enum : uint { BSF_QUERY = 0x00000001 }
2644 enum : uint { BSF_IGNORECURRENTTASK = 0x00000002 }
2645 enum : uint { BSF_FLUSHDISK = 0x00000004 }
2646 enum : uint { BSF_NOHANG = 0x00000008 }
2647 enum : uint { BSF_POSTMESSAGE = 0x00000010 }
2648 enum : uint { BSF_FORCEIFHUNG = 0x00000020 }
2649 enum : uint { BSF_NOTIMEOUTIFNOTHUNG = 0x00000040 }
2650 // #if(_WIN32_WINNT >= 0x0500)
2651 enum : uint { BSF_ALLOWSFW = 0x00000080 }
2652 enum : uint { BSF_SENDNOTIFYMESSAGE = 0x00000100 }
2653 // #endif /* _WIN32_WINNT >= 0x0500 */
2654 // #if(_WIN32_WINNT >= 0x0501)
2655 enum : uint { BSF_RETURNHDESK = 0x00000200 }
2656 enum : uint { BSF_LUID = 0x00000400 }
2657 // #endif /* _WIN32_WINNT >= 0x0501 */
2658
2659 enum : uint { BROADCAST_QUERY_DENY = 0x424D5144 }
2660 // #endif /* WINVER >= 0x0400 */
2661
2662 // #if(WINVER >= 0x0500)
2663 alias PVOID HDEVNOTIFY;
2664 alias HDEVNOTIFY* PHDEVNOTIFY;
2665
2666 enum : uint { DEVICE_NOTIFY_WINDOW_HANDLE = 0x00000000 }
2667 enum : uint { DEVICE_NOTIFY_SERVICE_HANDLE = 0x00000001 }
2668 // #if(_WIN32_WINNT >= 0x0501)
2669 enum : uint { DEVICE_NOTIFY_ALL_INTERFACE_CLASSES = 0x00000004 }
2670 // #endif /* _WIN32_WINNT >= 0x0501 */
2671
2672 extern(Windows) export HDEVNOTIFY RegisterDeviceNotificationA(
2673 HANDLE hRecipient,
2674 LPVOID NotificationFilter,
2675 DWORD Flags);
2676 extern(Windows) export HDEVNOTIFY RegisterDeviceNotificationW(
2677 HANDLE hRecipient,
2678 LPVOID NotificationFilter,
2679 DWORD Flags);
2680 // #ifdef UNICODE
2681 alias RegisterDeviceNotificationW RegisterDeviceNotification;
2682 // #else
2683 // #...
2684 // #endif // !UNICODE
2685
2686 extern(Windows) export BOOL UnregisterDeviceNotification(
2687 HDEVNOTIFY Handle);
2688 // #endif /* WINVER >= 0x0500 */
2689
2690 extern(Windows) export BOOL PostMessageA(
2691 HWND hWnd,
2692 UINT Msg,
2693 WPARAM wParam,
2694 LPARAM lParam);
2695 extern(Windows) export BOOL PostMessageW(
2696 HWND hWnd,
2697 UINT Msg,
2698 WPARAM wParam,
2699 LPARAM lParam);
2700 // #ifdef UNICODE
2701 alias PostMessageW PostMessage;
2702 // #else
2703 // #...
2704 // #endif // !UNICODE
2705
2706 extern(Windows) export BOOL PostThreadMessageA(
2707 DWORD idThread,
2708 UINT Msg,
2709 WPARAM wParam,
2710 LPARAM lParam);
2711 extern(Windows) export BOOL PostThreadMessageW(
2712 DWORD idThread,
2713 UINT Msg,
2714 WPARAM wParam,
2715 LPARAM lParam);
2716 // #ifdef UNICODE
2717 alias PostThreadMessageW PostThreadMessage;
2718 // #else
2719 // #...
2720 // #endif // !UNICODE
2721
2722 alias PostThreadMessageA PostAppMessageA;
2723 alias PostThreadMessageW PostAppMessageW;
2724 // #ifdef UNICODE
2725 alias PostAppMessageW PostAppMessage;
2726 // #else
2727 // #...
2728 // #endif // !UNICODE
2729
2730 const HWND HWND_BROADCAST = cast(HWND)0xffff;
2731
2732 // #if(WINVER >= 0x0500)
2733 const HWND HWND_MESSAGE = cast(HWND)-3;
2734 // #endif /* WINVER >= 0x0500 */
2735
2736 extern(Windows) export BOOL AttachThreadInput(
2737 DWORD idAttach,
2738 DWORD idAttachTo,
2739 BOOL fAttach);
2740
2741 extern(Windows) export BOOL ReplyMessage(
2742 LRESULT lResult);
2743
2744 extern(Windows) export BOOL WaitMessage();
2745
2746 extern(Windows) export DWORD WaitForInputIdle(
2747 HANDLE hProcess,
2748 DWORD dwMilliseconds);
2749
2750 extern(Windows) export LRESULT DefWindowProcA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
2751 extern(Windows) export LRESULT DefWindowProcW(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
2752 // #ifdef UNICODE
2753 alias DefWindowProcW DefWindowProc;
2754 // #else
2755 // #...
2756 // #endif // !UNICODE
2757
2758 extern(Windows) export VOID PostQuitMessage(
2759 int nExitCode);
2760
2761 // #ifdef STRICT
2762
2763 extern(Windows) export LRESULT CallWindowProcA(
2764 WNDPROC lpPrevWndFunc,
2765 HWND hWnd,
2766 UINT Msg,
2767 WPARAM wParam,
2768 LPARAM lParam);
2769 extern(Windows) export LRESULT CallWindowProcW(
2770 WNDPROC lpPrevWndFunc,
2771 HWND hWnd,
2772 UINT Msg,
2773 WPARAM wParam,
2774 LPARAM lParam);
2775 // #ifdef UNICODE
2776 alias CallWindowProcW CallWindowProc;
2777 // #else
2778 // #...
2779 // #endif // !UNICODE
2780
2781 // #else /* !STRICT */
2782
2783 // ...
2784 // #ifdef UNICODE
2785 // #...
2786 // #else
2787 // #...
2788 // #endif // !UNICODE
2789
2790 // #endif /* !STRICT */
2791
2792 extern(Windows) export BOOL InSendMessage();
2793
2794 // #if(WINVER >= 0x0500)
2795 extern(Windows) export DWORD InSendMessageEx(
2796 LPVOID lpReserved);
2797
2798 enum : uint { ISMEX_NOSEND = 0x00000000 }
2799 enum : uint { ISMEX_SEND = 0x00000001 }
2800 enum : uint { ISMEX_NOTIFY = 0x00000002 }
2801 enum : uint { ISMEX_CALLBACK = 0x00000004 }
2802 enum : uint { ISMEX_REPLIED = 0x00000008 }
2803 // #endif /* WINVER >= 0x0500 */
2804
2805 extern(Windows) export UINT GetDoubleClickTime();
2806
2807 extern(Windows) export BOOL SetDoubleClickTime(
2808 UINT);
2809
2810 extern(Windows) export ATOM RegisterClassA(
2811 WNDCLASSA *lpWndClass);
2812 extern(Windows) export ATOM RegisterClassW(
2813 WNDCLASSW *lpWndClass);
2814 // #ifdef UNICODE
2815 alias RegisterClassW RegisterClass;
2816 // #else
2817 // #...
2818 // #endif // !UNICODE
2819
2820 extern(Windows) export BOOL UnregisterClassA(
2821 LPCSTR lpClassName,
2822 HINSTANCE hInstance);
2823 extern(Windows) export BOOL UnregisterClassW(
2824 LPCWSTR lpClassName,
2825 HINSTANCE hInstance);
2826 // #ifdef UNICODE
2827 alias UnregisterClassW UnregisterClass;
2828 // #else
2829 // #...
2830 // #endif // !UNICODE
2831
2832 extern(Windows) export BOOL GetClassInfoA(
2833 HINSTANCE hInstance,
2834 LPCSTR lpClassName,
2835 LPWNDCLASSA lpWndClass);
2836 extern(Windows) export BOOL GetClassInfoW(
2837 HINSTANCE hInstance,
2838 LPCWSTR lpClassName,
2839 LPWNDCLASSW lpWndClass);
2840 // #ifdef UNICODE
2841 alias GetClassInfoW GetClassInfo;
2842 // #else
2843 // #...
2844 // #endif // !UNICODE
2845
2846 // #if(WINVER >= 0x0400)
2847 extern(Windows) export ATOM RegisterClassExA(
2848 WNDCLASSEXA *);
2849 extern(Windows) export ATOM RegisterClassExW(
2850 WNDCLASSEXW *);
2851 // #ifdef UNICODE
2852 alias RegisterClassExW RegisterClassEx;
2853 // #else
2854 // #...
2855 // #endif // !UNICODE
2856
2857 extern(Windows) export BOOL GetClassInfoExA(
2858 HINSTANCE,
2859 LPCSTR,
2860 LPWNDCLASSEXA);
2861 extern(Windows) export BOOL GetClassInfoExW(
2862 HINSTANCE,
2863 LPCWSTR,
2864 LPWNDCLASSEXW);
2865 // #ifdef UNICODE
2866 alias GetClassInfoExW GetClassInfoEx;
2867 // #else
2868 // #...
2869 // #endif // !UNICODE
2870
2871 // #endif /* WINVER >= 0x0400 */
2872
2873 enum { CW_USEDEFAULT = int.min }
2874
2875 const HWND HWND_DESKTOP = cast(HWND)0;
2876
2877 // #if(_WIN32_WINNT >= 0x0501)
2878 extern(Windows) alias BOOLEAN function(LPCWSTR) PREGISTERCLASSNAMEW;
2879 // #endif /* _WIN32_WINNT >= 0x0501 */
2880
2881 extern(Windows) export HWND CreateWindowExA(
2882 DWORD dwExStyle,
2883 LPCSTR lpClassName,
2884 LPCSTR lpWindowName,
2885 DWORD dwStyle,
2886 int X,
2887 int Y,
2888 int nWidth,
2889 int nHeight,
2890 HWND hWndParent,
2891 HMENU hMenu,
2892 HINSTANCE hInstance,
2893 LPVOID lpParam);
2894 extern(Windows) export HWND CreateWindowExW(
2895 DWORD dwExStyle,
2896 LPCWSTR lpClassName,
2897 LPCWSTR lpWindowName,
2898 DWORD dwStyle,
2899 int X,
2900 int Y,
2901 int nWidth,
2902 int nHeight,
2903 HWND hWndParent,
2904 HMENU hMenu,
2905 HINSTANCE hInstance,
2906 LPVOID lpParam);
2907 // #ifdef UNICODE
2908 alias CreateWindowExW CreateWindowEx;
2909 // #else
2910 // #...
2911 // #endif // !UNICODE
2912
2913 HWND CreateWindowA(LPCSTR lpClassName, LPCSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam){ return CreateWindowExA(0L, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam); }
2914 HWND CreateWindowW(LPCWSTR lpClassName, LPCWSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam){ return CreateWindowExW(0L, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam); }
2915 // #ifdef UNICODE
2916 alias CreateWindowW CreateWindow;
2917 // #else
2918 // #...
2919 // #endif // !UNICODE
2920
2921 extern(Windows) export BOOL IsWindow(
2922 HWND hWnd);
2923
2924 extern(Windows) export BOOL IsMenu(
2925 HMENU hMenu);
2926
2927 extern(Windows) export BOOL IsChild(
2928 HWND hWndParent,
2929 HWND hWnd);
2930
2931 extern(Windows) export BOOL DestroyWindow(
2932 HWND hWnd);
2933
2934 extern(Windows) export BOOL ShowWindow(
2935 HWND hWnd,
2936 int nCmdShow);
2937
2938 // #if(WINVER >= 0x0500)
2939 extern(Windows) export BOOL AnimateWindow(
2940 HWND hWnd,
2941 DWORD dwTime,
2942 DWORD dwFlags);
2943 // #endif /* WINVER >= 0x0500 */
2944
2945 // #if(_WIN32_WINNT >= 0x0500)
2946 // #if defined(_WINGDI_) && !defined (NOGDI)
2947
2948 // ...
2949 // #endif
2950
2951 // #if(_WIN32_WINNT >= 0x0501)
2952 extern(Windows) export BOOL GetLayeredWindowAttributes(
2953 HWND hwnd,
2954 COLORREF *pcrKey,
2955 BYTE *pbAlpha,
2956 DWORD *pdwFlags);
2957
2958 enum : uint { PW_CLIENTONLY = 0x00000001 }
2959
2960 extern(Windows) export BOOL PrintWindow(
2961 HWND hwnd,
2962 HDC hdcBlt,
2963 UINT nFlags);
2964
2965 // #endif /* _WIN32_WINNT >= 0x0501 */
2966
2967 extern(Windows) export BOOL SetLayeredWindowAttributes(
2968 HWND hwnd,
2969 COLORREF crKey,
2970 BYTE bAlpha,
2971 DWORD dwFlags);
2972
2973 enum : uint { LWA_COLORKEY = 0x00000001 }
2974 enum : uint { LWA_ALPHA = 0x00000002 }
2975
2976 enum : uint { ULW_COLORKEY = 0x00000001 }
2977 enum : uint { ULW_ALPHA = 0x00000002 }
2978 enum : uint { ULW_OPAQUE = 0x00000004 }
2979
2980 // #endif /* _WIN32_WINNT >= 0x0500 */
2981
2982 // #if(WINVER >= 0x0400)
2983 extern(Windows) export BOOL ShowWindowAsync(
2984 HWND hWnd,
2985 int nCmdShow);
2986 // #endif /* WINVER >= 0x0400 */
2987
2988 extern(Windows) export BOOL FlashWindow(
2989 HWND hWnd,
2990 BOOL bInvert);
2991
2992 // #if(WINVER >= 0x0500)
2993 struct _1 {
2994 UINT cbSize;
2995 HWND hwnd;
2996 DWORD dwFlags;
2997 UINT uCount;
2998 DWORD dwTimeout;
2999 }
3000 alias _1 FLASHWINFO;
3001 alias _1* PFLASHWINFO;
3002
3003 extern(Windows) export BOOL FlashWindowEx(
3004 PFLASHWINFO pfwi);
3005
3006 enum : uint { FLASHW_STOP = 0 }
3007 enum : uint { FLASHW_CAPTION = 0x00000001 }
3008 enum : uint { FLASHW_TRAY = 0x00000002 }
3009 enum : uint { FLASHW_ALL = FLASHW_CAPTION | FLASHW_TRAY }
3010 enum : uint { FLASHW_TIMER = 0x00000004 }
3011 enum : uint { FLASHW_TIMERNOFG = 0x0000000C }
3012
3013 // #endif /* WINVER >= 0x0500 */
3014
3015 extern(Windows) export BOOL ShowOwnedPopups(
3016 HWND hWnd,
3017 BOOL fShow);
3018
3019 extern(Windows) export BOOL OpenIcon(
3020 HWND hWnd);
3021
3022 extern(Windows) export BOOL CloseWindow(
3023 HWND hWnd);
3024
3025 extern(Windows) export BOOL MoveWindow(
3026 HWND hWnd,
3027 int X,
3028 int Y,
3029 int nWidth,
3030 int nHeight,
3031 BOOL bRepaint);
3032
3033 extern(Windows) export BOOL SetWindowPos(
3034 HWND hWnd,
3035 HWND hWndInsertAfter,
3036 int X,
3037 int Y,
3038 int cx,
3039 int cy,
3040 UINT uFlags);
3041
3042 extern(Windows) export BOOL GetWindowPlacement(
3043 HWND hWnd,
3044 WINDOWPLACEMENT *lpwndpl);
3045
3046 extern(Windows) export BOOL SetWindowPlacement(
3047 HWND hWnd,
3048 WINDOWPLACEMENT *lpwndpl);
3049
3050 // #ifndef NODEFERWINDOWPOS
3051
3052 extern(Windows) export HDWP BeginDeferWindowPos(
3053 int nNumWindows);
3054
3055 extern(Windows) export HDWP DeferWindowPos(
3056 HDWP hWinPosInfo,
3057 HWND hWnd,
3058 HWND hWndInsertAfter,
3059 int x,
3060 int y,
3061 int cx,
3062 int cy,
3063 UINT uFlags);
3064
3065 extern(Windows) export BOOL EndDeferWindowPos(
3066 HDWP hWinPosInfo);
3067
3068 // #endif /* !NODEFERWINDOWPOS */
3069
3070 extern(Windows) export BOOL IsWindowVisible(
3071 HWND hWnd);
3072
3073 extern(Windows) export BOOL IsIconic(
3074 HWND hWnd);
3075
3076 extern(Windows) export BOOL AnyPopup();
3077
3078 extern(Windows) export BOOL BringWindowToTop(
3079 HWND hWnd);
3080
3081 extern(Windows) export BOOL IsZoomed(
3082 HWND hWnd);
3083
3084 enum : uint { SWP_NOSIZE = 0x0001 }
3085 enum : uint { SWP_NOMOVE = 0x0002 }
3086 enum : uint { SWP_NOZORDER = 0x0004 }
3087 enum : uint { SWP_NOREDRAW = 0x0008 }
3088 enum : uint { SWP_NOACTIVATE = 0x0010 }
3089 enum : uint { SWP_FRAMECHANGED = 0x0020 }
3090 enum : uint { SWP_SHOWWINDOW = 0x0040 }
3091 enum : uint { SWP_HIDEWINDOW = 0x0080 }
3092 enum : uint { SWP_NOCOPYBITS = 0x0100 }
3093 enum : uint { SWP_NOOWNERZORDER = 0x0200 }
3094 enum : uint { SWP_NOSENDCHANGING = 0x0400 }
3095
3096 alias SWP_FRAMECHANGED SWP_DRAWFRAME;
3097 alias SWP_NOOWNERZORDER SWP_NOREPOSITION;
3098
3099 // #if(WINVER >= 0x0400)
3100 enum : uint { SWP_DEFERERASE = 0x2000 }
3101 enum : uint { SWP_ASYNCWINDOWPOS = 0x4000 }
3102 // #endif /* WINVER >= 0x0400 */
3103
3104 const HWND HWND_TOP = cast(HWND)0;
3105 const HWND HWND_BOTTOM = cast(HWND)1;
3106 const HWND HWND_TOPMOST = cast(HWND)-1;
3107 const HWND HWND_NOTOPMOST = cast(HWND)-2;
3108
3109 // #ifndef NOCTLMGR
3110
3111 align(2):
3112
3113 struct _2 {
3114 DWORD style;
3115 DWORD dwExtendedStyle;
3116 WORD cdit;
3117 short x;
3118 short y;
3119 short cx;
3120 short cy;
3121 }
3122 alias _2 DLGTEMPLATE;
3123
3124 alias DLGTEMPLATE* LPDLGTEMPLATEA;
3125 alias DLGTEMPLATE* LPDLGTEMPLATEW;
3126 // #ifdef UNICODE
3127 alias LPDLGTEMPLATEW LPDLGTEMPLATE;
3128 // #else
3129 // ...
3130 // #endif // UNICODE
3131 alias DLGTEMPLATE* LPCDLGTEMPLATEA;
3132 alias DLGTEMPLATE* LPCDLGTEMPLATEW;
3133 // #ifdef UNICODE
3134 alias LPCDLGTEMPLATEW LPCDLGTEMPLATE;
3135 // #else
3136 // ...
3137 // #endif // UNICODE
3138
3139 struct _3 {
3140 DWORD style;
3141 DWORD dwExtendedStyle;
3142 short x;
3143 short y;
3144 short cx;
3145 short cy;
3146 WORD id;
3147 }
3148 alias _3 DLGITEMTEMPLATE;
3149
3150 alias DLGITEMTEMPLATE* PDLGITEMTEMPLATEA;
3151 alias DLGITEMTEMPLATE* PDLGITEMTEMPLATEW;
3152 // #ifdef UNICODE
3153 alias PDLGITEMTEMPLATEW PDLGITEMTEMPLATE;
3154 // #else
3155 // ...
3156 // #endif // UNICODE
3157 alias DLGITEMTEMPLATE* LPDLGITEMTEMPLATEA;
3158 alias DLGITEMTEMPLATE* LPDLGITEMTEMPLATEW;
3159 // #ifdef UNICODE
3160 alias LPDLGITEMTEMPLATEW LPDLGITEMTEMPLATE;
3161 // #else
3162 // ...
3163 // #endif // UNICODE
3164
3165 align:
3166
3167 extern(Windows) export HWND CreateDialogParamA(
3168 HINSTANCE hInstance,
3169 LPCSTR lpTemplateName,
3170 HWND hWndParent,
3171 DLGPROC lpDialogFunc,
3172 LPARAM dwInitParam);
3173 extern(Windows) export HWND CreateDialogParamW(
3174 HINSTANCE hInstance,
3175 LPCWSTR lpTemplateName,
3176 HWND hWndParent,
3177 DLGPROC lpDialogFunc,
3178 LPARAM dwInitParam);
3179 // #ifdef UNICODE
3180 alias CreateDialogParamW CreateDialogParam;
3181 // #else
3182 // #...
3183 // #endif // !UNICODE
3184
3185 extern(Windows) export HWND CreateDialogIndirectParamA(
3186 HINSTANCE hInstance,
3187 LPCDLGTEMPLATEA lpTemplate,
3188 HWND hWndParent,
3189 DLGPROC lpDialogFunc,
3190 LPARAM dwInitParam);
3191 extern(Windows) export HWND CreateDialogIndirectParamW(
3192 HINSTANCE hInstance,
3193 LPCDLGTEMPLATEW lpTemplate,
3194 HWND hWndParent,
3195 DLGPROC lpDialogFunc,
3196 LPARAM dwInitParam);
3197 // #ifdef UNICODE
3198 alias CreateDialogIndirectParamW CreateDialogIndirectParam;
3199 // #else
3200 // #...
3201 // #endif // !UNICODE
3202
3203 HWND CreateDialogA(HINSTANCE hInstance, LPCSTR lpName, HWND hWndParent, DLGPROC lpDialogFunc){ return CreateDialogParamA(hInstance, lpName, hWndParent, lpDialogFunc, 0L); }
3204 HWND CreateDialogW(HINSTANCE hInstance, LPCWSTR lpName, HWND hWndParent, DLGPROC lpDialogFunc){ return CreateDialogParamW(hInstance, lpName, hWndParent, lpDialogFunc, 0L); }
3205 // #ifdef UNICODE
3206 alias CreateDialogW CreateDialog;
3207 // #else
3208 // #...
3209 // #endif // !UNICODE
3210
3211 HWND CreateDialogIndirectA(HINSTANCE hInstance, LPCDLGTEMPLATE lpTemplate, HWND hWndParent, DLGPROC lpDialogFunc){ return CreateDialogIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L); }
3212 HWND CreateDialogIndirectW(HINSTANCE hInstance, LPCDLGTEMPLATE lpTemplate, HWND hWndParent, DLGPROC lpDialogFunc){ return CreateDialogIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L); }
3213 // #ifdef UNICODE
3214 alias CreateDialogIndirectW CreateDialogIndirect;
3215 // #else
3216 // #...
3217 // #endif // !UNICODE
3218
3219 extern(Windows) export INT_PTR DialogBoxParamA(
3220 HINSTANCE hInstance,
3221 LPCSTR lpTemplateName,
3222 HWND hWndParent,
3223 DLGPROC lpDialogFunc,
3224 LPARAM dwInitParam);
3225 extern(Windows) export INT_PTR DialogBoxParamW(
3226 HINSTANCE hInstance,
3227 LPCWSTR lpTemplateName,
3228 HWND hWndParent,
3229 DLGPROC lpDialogFunc,
3230 LPARAM dwInitParam);
3231 // #ifdef UNICODE
3232 alias DialogBoxParamW DialogBoxParam;
3233 // #else
3234 // #...
3235 // #endif // !UNICODE
3236
3237 extern(Windows) export INT_PTR DialogBoxIndirectParamA(
3238 HINSTANCE hInstance,
3239 LPCDLGTEMPLATEA hDialogTemplate,
3240 HWND hWndParent,
3241 DLGPROC lpDialogFunc,
3242 LPARAM dwInitParam);
3243 extern(Windows) export INT_PTR DialogBoxIndirectParamW(
3244 HINSTANCE hInstance,
3245 LPCDLGTEMPLATEW hDialogTemplate,
3246 HWND hWndParent,
3247 DLGPROC lpDialogFunc,
3248 LPARAM dwInitParam);
3249 // #ifdef UNICODE
3250 alias DialogBoxIndirectParamW DialogBoxIndirectParam;
3251 // #else
3252 // #...
3253 // #endif // !UNICODE
3254
3255 // #define DialogBoxA(hInstance, lpTemplate, hWndParent, lpDialogFunc) DialogBoxParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
3256 // #define DialogBoxW(hInstance, lpTemplate, hWndParent, lpDialogFunc) DialogBoxParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
3257 // #ifdef UNICODE
3258 // #define DialogBox DialogBoxW
3259 // #else
3260 // #...
3261 // #endif // !UNICODE
3262
3263 // #define DialogBoxIndirectA(hInstance, lpTemplate, hWndParent, lpDialogFunc) DialogBoxIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
3264 // #define DialogBoxIndirectW(hInstance, lpTemplate, hWndParent, lpDialogFunc) DialogBoxIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
3265 // #ifdef UNICODE
3266 // #define DialogBoxIndirect DialogBoxIndirectW
3267 // #else
3268 // #...
3269 // #endif // !UNICODE
3270
3271 extern(Windows) export BOOL EndDialog(
3272 HWND hDlg,
3273 INT_PTR nResult);
3274
3275 extern(Windows) export HWND GetDlgItem(
3276 HWND hDlg,
3277 int nIDDlgItem);
3278
3279 extern(Windows) export BOOL SetDlgItemInt(
3280 HWND hDlg,
3281 int nIDDlgItem,
3282 UINT uValue,
3283 BOOL bSigned);
3284
3285 extern(Windows) export UINT GetDlgItemInt(
3286 HWND hDlg,
3287 int nIDDlgItem,
3288 BOOL *lpTranslated,
3289 BOOL bSigned);
3290
3291 extern(Windows) export BOOL SetDlgItemTextA(
3292 HWND hDlg,
3293 int nIDDlgItem,
3294 LPCSTR lpString);
3295 extern(Windows) export BOOL SetDlgItemTextW(
3296 HWND hDlg,
3297 int nIDDlgItem,
3298 LPCWSTR lpString);
3299 // #ifdef UNICODE
3300 alias SetDlgItemTextW SetDlgItemText;
3301 // #else
3302 // #...
3303 // #endif // !UNICODE
3304
3305 extern(Windows) export UINT GetDlgItemTextA(
3306 HWND hDlg,
3307 int nIDDlgItem,
3308 LPSTR lpString,
3309 int nMaxCount);
3310 extern(Windows) export UINT GetDlgItemTextW(
3311 HWND hDlg,
3312 int nIDDlgItem,
3313 LPWSTR lpString,
3314 int nMaxCount);
3315 // #ifdef UNICODE
3316 alias GetDlgItemTextW GetDlgItemText;
3317 // #else
3318 // #...
3319 // #endif // !UNICODE
3320
3321 extern(Windows) export BOOL CheckDlgButton(
3322 HWND hDlg,
3323 int nIDButton,
3324 UINT uCheck);
3325
3326 extern(Windows) export BOOL CheckRadioButton(
3327 HWND hDlg,
3328 int nIDFirstButton,
3329 int nIDLastButton,
3330 int nIDCheckButton);
3331
3332 extern(Windows) export UINT IsDlgButtonChecked(
3333 HWND hDlg,
3334 int nIDButton);
3335
3336 extern(Windows) export LRESULT SendDlgItemMessageA(
3337 HWND hDlg,
3338 int nIDDlgItem,
3339 UINT Msg,
3340 WPARAM wParam,
3341 LPARAM lParam);
3342 extern(Windows) export LRESULT SendDlgItemMessageW(
3343 HWND hDlg,
3344 int nIDDlgItem,
3345 UINT Msg,
3346 WPARAM wParam,
3347 LPARAM lParam);
3348 // #ifdef UNICODE
3349 alias SendDlgItemMessageW SendDlgItemMessage;
3350 // #else
3351 // #...
3352 // #endif // !UNICODE
3353
3354 extern(Windows) export HWND GetNextDlgGroupItem(
3355 HWND hDlg,
3356 HWND hCtl,
3357 BOOL bPrevious);
3358
3359 extern(Windows) export HWND GetNextDlgTabItem(
3360 HWND hDlg,
3361 HWND hCtl,
3362 BOOL bPrevious);
3363
3364 extern(Windows) export int GetDlgCtrlID(
3365 HWND hWnd);
3366
3367 extern(Windows) export int GetDialogBaseUnits();
3368
3369 extern(Windows) export LRESULT DefDlgProcA(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
3370 extern(Windows) export LRESULT DefDlgProcW(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
3371 // #ifdef UNICODE
3372 alias DefDlgProcW DefDlgProc;
3373 // #else
3374 // #...
3375 // #endif // !UNICODE
3376
3377 // #ifndef _MAC
3378 enum : uint { DLGWINDOWEXTRA = 30 }
3379 // #else
3380 // #...
3381 // #endif
3382
3383 // #endif /* !NOCTLMGR */
3384
3385 // #ifndef NOMSG
3386
3387 extern(Windows) export BOOL CallMsgFilterA(
3388 LPMSG lpMsg,
3389 int nCode);
3390 extern(Windows) export BOOL CallMsgFilterW(
3391 LPMSG lpMsg,
3392 int nCode);
3393 // #ifdef UNICODE
3394 alias CallMsgFilterW CallMsgFilter;
3395 // #else
3396 // #...
3397 // #endif // !UNICODE
3398
3399 // #endif /* !NOMSG */
3400
3401 // #ifndef NOCLIPBOARD
3402
3403 extern(Windows) export BOOL OpenClipboard(
3404 HWND hWndNewOwner);
3405
3406 extern(Windows) export BOOL CloseClipboard();
3407
3408 // #if(WINVER >= 0x0500)
3409
3410 extern(Windows) export DWORD GetClipboardSequenceNumber();
3411
3412 // #endif /* WINVER >= 0x0500 */
3413
3414 extern(Windows) export HWND GetClipboardOwner();
3415
3416 extern(Windows) export HWND SetClipboardViewer(
3417 HWND hWndNewViewer);
3418
3419 extern(Windows) export HWND GetClipboardViewer();
3420
3421 extern(Windows) export BOOL ChangeClipboardChain(
3422 HWND hWndRemove,
3423 HWND hWndNewNext);
3424
3425 extern(Windows) export HANDLE SetClipboardData(
3426 UINT uFormat,
3427 HANDLE hMem);
3428
3429 extern(Windows) export HANDLE GetClipboardData(
3430 UINT uFormat);
3431
3432 extern(Windows) export UINT RegisterClipboardFormatA(
3433 LPCSTR lpszFormat);
3434 extern(Windows) export UINT RegisterClipboardFormatW(
3435 LPCWSTR lpszFormat);
3436 // #ifdef UNICODE
3437 alias RegisterClipboardFormatW RegisterClipboardFormat;
3438 // #else
3439 // #...
3440 // #endif // !UNICODE
3441
3442 extern(Windows) export int CountClipboardFormats();
3443
3444 extern(Windows) export UINT EnumClipboardFormats(
3445 UINT format);
3446
3447 extern(Windows) export int GetClipboardFormatNameA(
3448 UINT format,
3449 LPSTR lpszFormatName,
3450 int cchMaxCount);
3451 extern(Windows) export int GetClipboardFormatNameW(
3452 UINT format,
3453 LPWSTR lpszFormatName,
3454 int cchMaxCount);
3455 // #ifdef UNICODE
3456 alias GetClipboardFormatNameW GetClipboardFormatName;
3457 // #else
3458 // #...
3459 // #endif // !UNICODE
3460
3461 extern(Windows) export BOOL EmptyClipboard();
3462
3463 extern(Windows) export BOOL IsClipboardFormatAvailable(
3464 UINT format);
3465
3466 extern(Windows) export int GetPriorityClipboardFormat(
3467 UINT *paFormatPriorityList,
3468 int cFormats);
3469
3470 extern(Windows) export HWND GetOpenClipboardWindow();
3471
3472 // #endif /* !NOCLIPBOARD */
3473
3474 extern(Windows) export BOOL CharToOemA(
3475 LPCSTR lpszSrc,
3476 LPSTR lpszDst);
3477 extern(Windows) export BOOL CharToOemW(
3478 LPCWSTR lpszSrc,
3479 LPSTR lpszDst);
3480 // #ifdef UNICODE
3481 alias CharToOemW CharToOem;
3482 // #else
3483 // #...
3484 // #endif // !UNICODE
3485
3486 extern(Windows) export BOOL OemToCharA(
3487 LPCSTR lpszSrc,
3488 LPSTR lpszDst);
3489 extern(Windows) export BOOL OemToCharW(
3490 LPCSTR lpszSrc,
3491 LPWSTR lpszDst);
3492 // #ifdef UNICODE
3493 alias OemToCharW OemToChar;
3494 // #else
3495 // #...
3496 // #endif // !UNICODE
3497
3498 extern(Windows) export BOOL CharToOemBuffA(
3499 LPCSTR lpszSrc,
3500 LPSTR lpszDst,
3501 DWORD cchDstLength);
3502 extern(Windows) export BOOL CharToOemBuffW(
3503 LPCWSTR lpszSrc,
3504 LPSTR lpszDst,
3505 DWORD cchDstLength);
3506 // #ifdef UNICODE
3507 alias CharToOemBuffW CharToOemBuff;
3508 // #else
3509 // #...
3510 // #endif // !UNICODE
3511
3512 extern(Windows) export BOOL OemToCharBuffA(
3513 LPCSTR lpszSrc,
3514 LPSTR lpszDst,
3515 DWORD cchDstLength);
3516 extern(Windows) export BOOL OemToCharBuffW(
3517 LPCSTR lpszSrc,
3518 LPWSTR lpszDst,
3519 DWORD cchDstLength);
3520 // #ifdef UNICODE
3521 alias OemToCharBuffW OemToCharBuff;
3522 // #else
3523 // #...
3524 // #endif // !UNICODE
3525
3526 extern(Windows) export LPSTR CharUpperA(
3527 LPSTR lpsz);
3528 extern(Windows) export LPWSTR CharUpperW(
3529 LPWSTR lpsz);
3530 // #ifdef UNICODE
3531 alias CharUpperW CharUpper;
3532 // #else
3533 // #...
3534 // #endif // !UNICODE
3535
3536 extern(Windows) export DWORD CharUpperBuffA(
3537 LPSTR lpsz,
3538 DWORD cchLength);
3539 extern(Windows) export DWORD CharUpperBuffW(
3540 LPWSTR lpsz,
3541 DWORD cchLength);
3542 // #ifdef UNICODE
3543 alias CharUpperBuffW CharUpperBuff;
3544 // #else
3545 // #...
3546 // #endif // !UNICODE
3547
3548 extern(Windows) export LPSTR CharLowerA(
3549 LPSTR lpsz);
3550 extern(Windows) export LPWSTR CharLowerW(
3551 LPWSTR lpsz);
3552 // #ifdef UNICODE
3553 alias CharLowerW CharLower;
3554 // #else
3555 // #...
3556 // #endif // !UNICODE
3557
3558 extern(Windows) export DWORD CharLowerBuffA(
3559 LPSTR lpsz,
3560 DWORD cchLength);
3561 extern(Windows) export DWORD CharLowerBuffW(
3562 LPWSTR lpsz,
3563 DWORD cchLength);
3564 // #ifdef UNICODE
3565 alias CharLowerBuffW CharLowerBuff;
3566 // #else
3567 // #...
3568 // #endif // !UNICODE
3569
3570 extern(Windows) export LPSTR CharNextA(
3571 LPCSTR lpsz);
3572 extern(Windows) export LPWSTR CharNextW(
3573 LPCWSTR lpsz);
3574 // #ifdef UNICODE
3575 alias CharNextW CharNext;
3576 // #else
3577 // #...
3578 // #endif // !UNICODE
3579
3580 extern(Windows) export LPSTR CharPrevA(
3581 LPCSTR lpszStart,
3582 LPCSTR lpszCurrent);
3583 extern(Windows) export LPWSTR CharPrevW(
3584 LPCWSTR lpszStart,
3585 LPCWSTR lpszCurrent);
3586 // #ifdef UNICODE
3587 alias CharPrevW CharPrev;
3588 // #else
3589 // #...
3590 // #endif // !UNICODE
3591
3592 // #if(WINVER >= 0x0400)
3593 extern(Windows) export LPSTR CharNextExA(
3594 WORD CodePage,
3595 LPCSTR lpCurrentChar,
3596 DWORD dwFlags);
3597
3598 extern(Windows) export LPSTR CharPrevExA(
3599 WORD CodePage,
3600 LPCSTR lpStart,
3601 LPCSTR lpCurrentChar,
3602 DWORD dwFlags);
3603 // #endif /* WINVER >= 0x0400 */
3604
3605 alias CharToOemA AnsiToOem;
3606 alias OemToCharA OemToAnsi;
3607 alias CharToOemBuffA AnsiToOemBuff;
3608 alias OemToCharBuffA OemToAnsiBuff;
3609 alias CharUpperA AnsiUpper;
3610 alias CharUpperBuffA AnsiUpperBuff;
3611 alias CharLowerA AnsiLower;
3612 alias CharLowerBuffA AnsiLowerBuff;
3613 alias CharNextA AnsiNext;
3614 alias CharPrevA AnsiPrev;
3615
3616 // #ifndef NOLANGUAGE
3617
3618 extern(Windows) export BOOL IsCharAlphaA(
3619 CHAR ch);
3620 extern(Windows) export BOOL IsCharAlphaW(
3621 WCHAR ch);
3622 // #ifdef UNICODE
3623 alias IsCharAlphaW IsCharAlpha;
3624 // #else
3625 // #...
3626 // #endif // !UNICODE
3627
3628 extern(Windows) export BOOL IsCharAlphaNumericA(
3629 CHAR ch);
3630 extern(Windows) export BOOL IsCharAlphaNumericW(
3631 WCHAR ch);
3632 // #ifdef UNICODE
3633 alias IsCharAlphaNumericW IsCharAlphaNumeric;
3634 // #else
3635 // #...
3636 // #endif // !UNICODE
3637
3638 extern(Windows) export BOOL IsCharUpperA(
3639 CHAR ch);
3640 extern(Windows) export BOOL IsCharUpperW(
3641 WCHAR ch);
3642 // #ifdef UNICODE
3643 alias IsCharUpperW IsCharUpper;
3644 // #else
3645 // #...
3646 // #endif // !UNICODE
3647
3648 extern(Windows) export BOOL IsCharLowerA(
3649 CHAR ch);
3650 extern(Windows) export BOOL IsCharLowerW(
3651 WCHAR ch);
3652 // #ifdef UNICODE
3653 alias IsCharLowerW IsCharLower;
3654 // #else
3655 // #...
3656 // #endif // !UNICODE
3657
3658 // #endif /* !NOLANGUAGE */
3659
3660 extern(Windows) export HWND SetFocus(
3661 HWND hWnd);
3662
3663 extern(Windows) export HWND GetActiveWindow();
3664
3665 extern(Windows) export HWND GetFocus();
3666
3667 extern(Windows) export UINT GetKBCodePage();
3668
3669 extern(Windows) export SHORT GetKeyState(
3670 int nVirtKey);
3671
3672 extern(Windows) export SHORT GetAsyncKeyState(
3673 int vKey);
3674
3675 extern(Windows) export BOOL GetKeyboardState(
3676 PBYTE lpKeyState);
3677
3678 extern(Windows) export BOOL SetKeyboardState(
3679 LPBYTE lpKeyState);
3680
3681 extern(Windows) export int GetKeyNameTextA(
3682 LONG lParam,
3683 LPSTR lpString,
3684 int nSize);
3685 extern(Windows) export int GetKeyNameTextW(
3686 LONG lParam,
3687 LPWSTR lpString,
3688 int nSize);
3689 // #ifdef UNICODE
3690 alias GetKeyNameTextW GetKeyNameText;
3691 // #else
3692 // #...
3693 // #endif // !UNICODE
3694
3695 extern(Windows) export int GetKeyboardType(
3696 int nTypeFlag);
3697
3698 extern(Windows) export int ToAscii(
3699 UINT uVirtKey,
3700 UINT uScanCode,
3701 BYTE *lpKeyState,
3702 LPWORD lpChar,
3703 UINT uFlags);
3704
3705 // #if(WINVER >= 0x0400)
3706 extern(Windows) export int ToAsciiEx(
3707 UINT uVirtKey,
3708 UINT uScanCode,
3709 BYTE *lpKeyState,
3710 LPWORD lpChar,
3711 UINT uFlags,
3712 HKL dwhkl);
3713 // #endif /* WINVER >= 0x0400 */
3714
3715 extern(Windows) export int ToUnicode(
3716 UINT wVirtKey,
3717 UINT wScanCode,
3718 BYTE *lpKeyState,
3719 LPWSTR pwszBuff,
3720 int cchBuff,
3721 UINT wFlags);
3722
3723 extern(Windows) export DWORD OemKeyScan(
3724 WORD wOemChar);
3725
3726 extern(Windows) export SHORT VkKeyScanA(
3727 CHAR ch);
3728 extern(Windows) export SHORT VkKeyScanW(
3729 WCHAR ch);
3730 // #ifdef UNICODE
3731 alias VkKeyScanW VkKeyScan;
3732 // #else
3733 // #...
3734 // #endif // !UNICODE
3735
3736 // #if(WINVER >= 0x0400)
3737 extern(Windows) export SHORT VkKeyScanExA(
3738 CHAR ch,
3739 HKL dwhkl);
3740 extern(Windows) export SHORT VkKeyScanExW(
3741 WCHAR ch,
3742 HKL dwhkl);
3743 // #ifdef UNICODE
3744 alias VkKeyScanExW VkKeyScanEx;
3745 // #else
3746 // #...
3747 // #endif // !UNICODE
3748 // #endif /* WINVER >= 0x0400 */
3749 enum : uint { KEYEVENTF_EXTENDEDKEY = 0x0001 }
3750 enum : uint { KEYEVENTF_KEYUP = 0x0002 }
3751 // #if(_WIN32_WINNT >= 0x0500)
3752 enum : uint { KEYEVENTF_UNICODE = 0x0004 }
3753 enum : uint { KEYEVENTF_SCANCODE = 0x0008 }
3754 // #endif /* _WIN32_WINNT >= 0x0500 */
3755
3756 extern(Windows) export VOID keybd_event(
3757 BYTE bVk,
3758 BYTE bScan,
3759 DWORD dwFlags,
3760 ULONG_PTR dwExtraInfo);
3761
3762 enum : uint { MOUSEEVENTF_MOVE = 0x0001 }
3763 enum : uint { MOUSEEVENTF_LEFTDOWN = 0x0002 }
3764 enum : uint { MOUSEEVENTF_LEFTUP = 0x0004 }
3765 enum : uint { MOUSEEVENTF_RIGHTDOWN = 0x0008 }
3766 enum : uint { MOUSEEVENTF_RIGHTUP = 0x0010 }
3767 enum : uint { MOUSEEVENTF_MIDDLEDOWN = 0x0020 }
3768 enum : uint { MOUSEEVENTF_MIDDLEUP = 0x0040 }
3769 enum : uint { MOUSEEVENTF_XDOWN = 0x0080 }
3770 enum : uint { MOUSEEVENTF_XUP = 0x0100 }
3771 enum : uint { MOUSEEVENTF_WHEEL = 0x0800 }
3772 enum : uint { MOUSEEVENTF_VIRTUALDESK = 0x4000 }
3773 enum : uint { MOUSEEVENTF_ABSOLUTE = 0x8000 }
3774
3775 extern(Windows) export VOID mouse_event(
3776 DWORD dwFlags,
3777 DWORD dx,
3778 DWORD dy,
3779 DWORD dwData,
3780 ULONG_PTR dwExtraInfo);
3781
3782 // #if (_WIN32_WINNT > 0x0400)
3783
3784 struct tagMOUSEINPUT {
3785 LONG dx;
3786 LONG dy;
3787 DWORD mouseData;
3788 DWORD dwFlags;
3789 DWORD time;
3790 ULONG_PTR dwExtraInfo;
3791 }
3792 alias tagMOUSEINPUT MOUSEINPUT;
3793 alias tagMOUSEINPUT* PMOUSEINPUT;
3794 alias tagMOUSEINPUT* LPMOUSEINPUT;
3795
3796 struct tagKEYBDINPUT {
3797 WORD wVk;
3798 WORD wScan;
3799 DWORD dwFlags;
3800 DWORD time;
3801 ULONG_PTR dwExtraInfo;
3802 }
3803 alias tagKEYBDINPUT KEYBDINPUT;
3804 alias tagKEYBDINPUT* PKEYBDINPUT;
3805 alias tagKEYBDINPUT* LPKEYBDINPUT;
3806
3807 struct tagHARDWAREINPUT {
3808 DWORD uMsg;
3809 WORD wParamL;
3810 WORD wParamH;
3811 }
3812 alias tagHARDWAREINPUT HARDWAREINPUT;
3813 alias tagHARDWAREINPUT* PHARDWAREINPUT;
3814 alias tagHARDWAREINPUT* LPHARDWAREINPUT;
3815
3816 enum : uint { INPUT_MOUSE = 0 }
3817 enum : uint { INPUT_KEYBOARD = 1 }
3818 enum : uint { INPUT_HARDWARE = 2 }
3819
3820 struct tagINPUT {
3821 DWORD type;
3822 union {
3823 MOUSEINPUT mi;
3824 KEYBDINPUT ki;
3825 HARDWAREINPUT hi;
3826 }
3827
3828 }
3829 alias tagINPUT INPUT;
3830 alias tagINPUT* PINPUT;
3831 alias tagINPUT* LPINPUT;
3832
3833 extern(Windows) export UINT SendInput(
3834 UINT cInputs, // number of input in the array
3835 LPINPUT pInputs, // array of inputs
3836 int cbSize);
3837
3838 // #endif // (_WIN32_WINNT > 0x0400)
3839
3840 // #if(_WIN32_WINNT >= 0x0500)
3841 struct tagLASTINPUTINFO {
3842 UINT cbSize;
3843 DWORD dwTime;
3844 }
3845 alias tagLASTINPUTINFO LASTINPUTINFO;
3846 alias tagLASTINPUTINFO* PLASTINPUTINFO;
3847
3848 extern(Windows) export BOOL GetLastInputInfo(
3849 PLASTINPUTINFO plii);
3850 // #endif /* _WIN32_WINNT >= 0x0500 */
3851
3852 extern(Windows) export UINT MapVirtualKeyA(
3853 UINT uCode,
3854 UINT uMapType);
3855 extern(Windows) export UINT MapVirtualKeyW(
3856 UINT uCode,
3857 UINT uMapType);
3858 // #ifdef UNICODE
3859 alias MapVirtualKeyW MapVirtualKey;
3860 // #else
3861 // #...
3862 // #endif // !UNICODE
3863
3864 // #if(WINVER >= 0x0400)
3865 extern(Windows) export UINT MapVirtualKeyExA(
3866 UINT uCode,
3867 UINT uMapType,
3868 HKL dwhkl);
3869 extern(Windows) export UINT MapVirtualKeyExW(
3870 UINT uCode,
3871 UINT uMapType,
3872 HKL dwhkl);
3873 // #ifdef UNICODE
3874 alias MapVirtualKeyExW MapVirtualKeyEx;
3875 // #else
3876 // #...
3877 // #endif // !UNICODE
3878 // #endif /* WINVER >= 0x0400 */
3879
3880 extern(Windows) export BOOL GetInputState();
3881
3882 extern(Windows) export DWORD GetQueueStatus(
3883 UINT flags);
3884
3885 extern(Windows) export HWND GetCapture();
3886
3887 extern(Windows) export HWND SetCapture(
3888 HWND hWnd);
3889
3890 extern(Windows) export BOOL ReleaseCapture();
3891
3892 extern(Windows) export DWORD MsgWaitForMultipleObjects(
3893 DWORD nCount,
3894 HANDLE *pHandles,
3895 BOOL fWaitAll,
3896 DWORD dwMilliseconds,
3897 DWORD dwWakeMask);
3898
3899 extern(Windows) export DWORD MsgWaitForMultipleObjectsEx(
3900 DWORD nCount,
3901 HANDLE *pHandles,
3902 DWORD dwMilliseconds,
3903 DWORD dwWakeMask,
3904 DWORD dwFlags);
3905
3906 enum : uint { MWMO_WAITALL = 0x0001 }
3907 enum : uint { MWMO_ALERTABLE = 0x0002 }
3908 enum : uint { MWMO_INPUTAVAILABLE = 0x0004 }
3909
3910 enum : uint { QS_KEY = 0x0001 }
3911 enum : uint { QS_MOUSEMOVE = 0x0002 }
3912 enum : uint { QS_MOUSEBUTTON = 0x0004 }
3913 // #define QS_POSTMESSAGE 0x0008
3914 // #define QS_TIMER 0x0010
3915 // #define QS_PAINT 0x0020
3916 // #define QS_SENDMESSAGE 0x0040
3917 // #define QS_HOTKEY 0x0080
3918 enum : uint { QS_ALLPOSTMESSAGE = 0x0100 }
3919 // #if(_WIN32_WINNT >= 0x0501)
3920 enum : uint { QS_RAWINPUT = 0x0400 }
3921 // #endif /* _WIN32_WINNT >= 0x0501 */
3922
3923 enum : uint { QS_MOUSE = QS_MOUSEMOVE | QS_MOUSEBUTTON }
3924
3925 // #if (_WIN32_WINNT >= 0x0501)
3926 // #define QS_INPUT (QS_MOUSE | QS_KEY | QS_RAWINPUT)
3927 // #else
3928 // #...
3929 // ...
3930 // #endif // (_WIN32_WINNT >= 0x0501)
3931
3932 enum : uint { QS_ALLEVENTS = QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY }
3933
3934 enum : uint { QS_ALLINPUT = QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY | QS_SENDMESSAGE }
3935
3936 extern(Windows) export UINT_PTR SetTimer(
3937 HWND hWnd,
3938 UINT_PTR nIDEvent,
3939 UINT uElapse,
3940 TIMERPROC lpTimerFunc);
3941
3942 extern(Windows) export BOOL KillTimer(
3943 HWND hWnd,
3944 UINT_PTR uIDEvent);
3945
3946 extern(Windows) export BOOL IsWindowUnicode(
3947 HWND hWnd);
3948
3949 extern(Windows) export BOOL EnableWindow(
3950 HWND hWnd,
3951 BOOL bEnable);
3952
3953 extern(Windows) export BOOL IsWindowEnabled(
3954 HWND hWnd);
3955
3956 extern(Windows) export HACCEL LoadAcceleratorsA(
3957 HINSTANCE hInstance,
3958 LPCSTR lpTableName);
3959 extern(Windows) export HACCEL LoadAcceleratorsW(
3960 HINSTANCE hInstance,
3961 LPCWSTR lpTableName);
3962 // #ifdef UNICODE
3963 alias LoadAcceleratorsW LoadAccelerators;
3964 // #else
3965 // #...
3966 // #endif // !UNICODE
3967
3968 extern(Windows) export HACCEL CreateAcceleratorTableA(
3969 LPACCEL, int);
3970 extern(Windows) export HACCEL CreateAcceleratorTableW(
3971 LPACCEL, int);
3972 // #ifdef UNICODE
3973 alias CreateAcceleratorTableW CreateAcceleratorTable;
3974 // #else
3975 // #...
3976 // #endif // !UNICODE
3977
3978 extern(Windows) export BOOL DestroyAcceleratorTable(
3979 HACCEL hAccel);
3980
3981 extern(Windows) export int CopyAcceleratorTableA(
3982 HACCEL hAccelSrc,
3983 LPACCEL lpAccelDst,
3984 int cAccelEntries);
3985 extern(Windows) export int CopyAcceleratorTableW(
3986 HACCEL hAccelSrc,
3987 LPACCEL lpAccelDst,
3988 int cAccelEntries);
3989 // #ifdef UNICODE
3990 alias CopyAcceleratorTableW CopyAcceleratorTable;
3991 // #else
3992 // #...
3993 // #endif // !UNICODE
3994
3995 // #ifndef NOMSG
3996
3997 extern(Windows) export int TranslateAcceleratorA(
3998 HWND hWnd,
3999 HACCEL hAccTable,
4000 LPMSG lpMsg);
4001 extern(Windows) export int TranslateAcceleratorW(
4002 HWND hWnd,
4003 HACCEL hAccTable,
4004 LPMSG lpMsg);
4005 // #ifdef UNICODE
4006 alias TranslateAcceleratorW TranslateAccelerator;
4007 // #else
4008 // #...
4009 // #endif // !UNICODE
4010
4011 // #endif /* !NOMSG */
4012
4013 // #ifndef NOSYSMETRICS
4014
4015 enum : uint { SM_CXSCREEN = 0 }
4016 enum : uint { SM_CYSCREEN = 1 }
4017 enum : uint { SM_CXVSCROLL = 2 }
4018 enum : uint { SM_CYHSCROLL = 3 }
4019 enum : uint { SM_CYCAPTION = 4 }
4020 enum : uint { SM_CXBORDER = 5 }
4021 enum : uint { SM_CYBORDER = 6 }
4022 enum : uint { SM_CXDLGFRAME = 7 }
4023 enum : uint { SM_CYDLGFRAME = 8 }
4024 enum : uint { SM_CYVTHUMB = 9 }
4025 enum : uint { SM_CXHTHUMB = 10 }
4026 enum : uint { SM_CXICON = 11 }
4027 enum : uint { SM_CYICON = 12 }
4028 enum : uint { SM_CXCURSOR = 13 }
4029 enum : uint { SM_CYCURSOR = 14 }
4030 enum : uint { SM_CYMENU = 15 }
4031 enum : uint { SM_CXFULLSCREEN = 16 }
4032 enum : uint { SM_CYFULLSCREEN = 17 }
4033 enum : uint { SM_CYKANJIWINDOW = 18 }
4034 enum : uint { SM_MOUSEPRESENT = 19 }
4035 enum : uint { SM_CYVSCROLL = 20 }
4036 enum : uint { SM_CXHSCROLL = 21 }
4037 enum : uint { SM_DEBUG = 22 }
4038 enum : uint { SM_SWAPBUTTON = 23 }
4039 enum : uint { SM_RESERVED1 = 24 }
4040 enum : uint { SM_RESERVED2 = 25 }
4041 enum : uint { SM_RESERVED3 = 26 }
4042 enum : uint { SM_RESERVED4 = 27 }
4043 enum : uint { SM_CXMIN = 28 }
4044 enum : uint { SM_CYMIN = 29 }
4045 enum : uint { SM_CXSIZE = 30 }
4046 enum : uint { SM_CYSIZE = 31 }
4047 enum : uint { SM_CXFRAME = 32 }
4048 enum : uint { SM_CYFRAME = 33 }
4049 enum : uint { SM_CXMINTRACK = 34 }
4050 enum : uint { SM_CYMINTRACK = 35 }
4051 enum : uint { SM_CXDOUBLECLK = 36 }
4052 enum : uint { SM_CYDOUBLECLK = 37 }
4053 enum : uint { SM_CXICONSPACING = 38 }
4054 enum : uint { SM_CYICONSPACING = 39 }
4055 enum : uint { SM_MENUDROPALIGNMENT = 40 }
4056 enum : uint { SM_PENWINDOWS = 41 }
4057 enum : uint { SM_DBCSENABLED = 42 }
4058 enum : uint { SM_CMOUSEBUTTONS = 43 }
4059
4060 // #if(WINVER >= 0x0400)
4061 alias SM_CXDLGFRAME SM_CXFIXEDFRAME;
4062 alias SM_CYDLGFRAME SM_CYFIXEDFRAME;
4063 alias SM_CXFRAME SM_CXSIZEFRAME;
4064 alias SM_CYFRAME SM_CYSIZEFRAME;
4065
4066 enum : uint { SM_SECURE = 44 }
4067 enum : uint { SM_CXEDGE = 45 }
4068 enum : uint { SM_CYEDGE = 46 }
4069 enum : uint { SM_CXMINSPACING = 47 }
4070 enum : uint { SM_CYMINSPACING = 48 }
4071 enum : uint { SM_CXSMICON = 49 }
4072 enum : uint { SM_CYSMICON = 50 }
4073 enum : uint { SM_CYSMCAPTION = 51 }
4074 enum : uint { SM_CXSMSIZE = 52 }
4075 enum : uint { SM_CYSMSIZE = 53 }
4076 enum : uint { SM_CXMENUSIZE = 54 }
4077 enum : uint { SM_CYMENUSIZE = 55 }
4078 enum : uint { SM_ARRANGE = 56 }
4079 enum : uint { SM_CXMINIMIZED = 57 }
4080 enum : uint { SM_CYMINIMIZED = 58 }
4081 enum : uint { SM_CXMAXTRACK = 59 }
4082 enum : uint { SM_CYMAXTRACK = 60 }
4083 enum : uint { SM_CXMAXIMIZED = 61 }
4084 enum : uint { SM_CYMAXIMIZED = 62 }
4085 enum : uint { SM_NETWORK = 63 }
4086 enum : uint { SM_CLEANBOOT = 67 }
4087 enum : uint { SM_CXDRAG = 68 }
4088 enum : uint { SM_CYDRAG = 69 }
4089 // #endif /* WINVER >= 0x0400 */
4090 enum : uint { SM_SHOWSOUNDS = 70 }
4091 // #if(WINVER >= 0x0400)
4092 enum : uint { SM_CXMENUCHECK = 71 }
4093 enum : uint { SM_CYMENUCHECK = 72 }
4094 enum : uint { SM_SLOWMACHINE = 73 }
4095 enum : uint { SM_MIDEASTENABLED = 74 }
4096 // #endif /* WINVER >= 0x0400 */
4097
4098 // #if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)
4099 enum : uint { SM_MOUSEWHEELPRESENT = 75 }
4100 // #endif
4101 // #if(WINVER >= 0x0500)
4102 enum : uint { SM_XVIRTUALSCREEN = 76 }
4103 enum : uint { SM_YVIRTUALSCREEN = 77 }
4104 enum : uint { SM_CXVIRTUALSCREEN = 78 }
4105 enum : uint { SM_CYVIRTUALSCREEN = 79 }
4106 enum : uint { SM_CMONITORS = 80 }
4107 enum : uint { SM_SAMEDISPLAYFORMAT = 81 }
4108 // #endif /* WINVER >= 0x0500 */
4109 // #if(_WIN32_WINNT >= 0x0500)
4110 enum : uint { SM_IMMENABLED = 82 }
4111 // #endif /* _WIN32_WINNT >= 0x0500 */
4112 // #if(_WIN32_WINNT >= 0x0501)
4113 enum : uint { SM_CXFOCUSBORDER = 83 }
4114 enum : uint { SM_CYFOCUSBORDER = 84 }
4115 // #endif /* _WIN32_WINNT >= 0x0501 */
4116
4117 // #if (WINVER < 0x0500) && (!defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0400))
4118 // #...
4119 // #else
4120 enum : uint { SM_CMETRICS = 86 }
4121 // #endif
4122
4123 // #if(WINVER >= 0x0500)
4124 enum : uint { SM_REMOTESESSION = 0x1000 }
4125
4126 // #if(_WIN32_WINNT >= 0x0501)
4127 enum : uint { SM_SHUTTINGDOWN = 0x2000 }
4128 // #endif /* _WIN32_WINNT >= 0x0501 */
4129
4130 // #endif /* WINVER >= 0x0500 */
4131
4132 extern(Windows) export int GetSystemMetrics(
4133 int nIndex);
4134
4135 // #endif /* !NOSYSMETRICS */
4136
4137 // #ifndef NOMENUS
4138
4139 extern(Windows) export HMENU LoadMenuA(
4140 HINSTANCE hInstance,
4141 LPCSTR lpMenuName);
4142 extern(Windows) export HMENU LoadMenuW(
4143 HINSTANCE hInstance,
4144 LPCWSTR lpMenuName);
4145 // #ifdef UNICODE
4146 alias LoadMenuW LoadMenu;
4147 // #else
4148 // #...
4149 // #endif // !UNICODE
4150
4151 extern(Windows) export HMENU LoadMenuIndirectA(
4152 MENUTEMPLATEA *lpMenuTemplate);
4153 extern(Windows) export HMENU LoadMenuIndirectW(
4154 MENUTEMPLATEW *lpMenuTemplate);
4155 // #ifdef UNICODE
4156 alias LoadMenuIndirectW LoadMenuIndirect;
4157 // #else
4158 // #...
4159 // #endif // !UNICODE
4160
4161 extern(Windows) export HMENU GetMenu(
4162 HWND hWnd);
4163
4164 extern(Windows) export BOOL SetMenu(
4165 HWND hWnd,
4166 HMENU hMenu);
4167
4168 extern(Windows) export BOOL ChangeMenuA(
4169 HMENU hMenu,
4170 UINT cmd,
4171 LPCSTR lpszNewItem,
4172 UINT cmdInsert,
4173 UINT flags);
4174 extern(Windows) export BOOL ChangeMenuW(
4175 HMENU hMenu,
4176 UINT cmd,
4177 LPCWSTR lpszNewItem,
4178 UINT cmdInsert,
4179 UINT flags);
4180 // #ifdef UNICODE
4181 alias ChangeMenuW ChangeMenu;
4182 // #else
4183 // #...
4184 // #endif // !UNICODE
4185
4186 extern(Windows) export BOOL HiliteMenuItem(
4187 HWND hWnd,
4188 HMENU hMenu,
4189 UINT uIDHiliteItem,
4190 UINT uHilite);
4191
4192 extern(Windows) export int GetMenuStringA(
4193 HMENU hMenu,
4194 UINT uIDItem,
4195 LPSTR lpString,
4196 int nMaxCount,
4197 UINT uFlag);
4198 extern(Windows) export int GetMenuStringW(
4199 HMENU hMenu,
4200 UINT uIDItem,
4201 LPWSTR lpString,
4202 int nMaxCount,
4203 UINT uFlag);
4204 // #ifdef UNICODE
4205 alias GetMenuStringW GetMenuString;
4206 // #else
4207 // #...
4208 // #endif // !UNICODE
4209
4210 extern(Windows) export UINT GetMenuState(
4211 HMENU hMenu,
4212 UINT uId,
4213 UINT uFlags);
4214
4215 extern(Windows) export BOOL DrawMenuBar(
4216 HWND hWnd);
4217
4218 // #if(_WIN32_WINNT >= 0x0501)
4219 enum : uint { PMB_ACTIVE = 0x00000001 }
4220
4221 // #endif /* _WIN32_WINNT >= 0x0501 */
4222
4223 extern(Windows) export HMENU GetSystemMenu(
4224 HWND hWnd,
4225 BOOL bRevert);
4226
4227 extern(Windows) export HMENU CreateMenu();
4228
4229 extern(Windows) export HMENU CreatePopupMenu();
4230
4231 extern(Windows) export BOOL DestroyMenu(
4232 HMENU hMenu);
4233
4234 extern(Windows) export DWORD CheckMenuItem(
4235 HMENU hMenu,
4236 UINT uIDCheckItem,
4237 UINT uCheck);
4238
4239 extern(Windows) export BOOL EnableMenuItem(
4240 HMENU hMenu,
4241 UINT uIDEnableItem,
4242 UINT uEnable);
4243
4244 extern(Windows) export HMENU GetSubMenu(
4245 HMENU hMenu,
4246 int nPos);
4247
4248 extern(Windows) export UINT GetMenuItemID(
4249 HMENU hMenu,
4250 int nPos);
4251
4252 extern(Windows) export int GetMenuItemCount(
4253 HMENU hMenu);
4254
4255 extern(Windows) export BOOL InsertMenuA(
4256 HMENU hMenu,
4257 UINT uPosition,
4258 UINT uFlags,
4259 UINT_PTR uIDNewItem,
4260 LPCSTR lpNewItem);
4261 extern(Windows) export BOOL InsertMenuW(
4262 HMENU hMenu,
4263 UINT uPosition,
4264 UINT uFlags,
4265 UINT_PTR uIDNewItem,
4266 LPCWSTR lpNewItem);
4267 // #ifdef UNICODE
4268 alias InsertMenuW InsertMenu;
4269 // #else
4270 // #...
4271 // #endif // !UNICODE
4272
4273 extern(Windows) export BOOL AppendMenuA(
4274 HMENU hMenu,
4275 UINT uFlags,
4276 UINT_PTR uIDNewItem,
4277 LPCSTR lpNewItem);
4278 extern(Windows) export BOOL AppendMenuW(
4279 HMENU hMenu,
4280 UINT uFlags,
4281 UINT_PTR uIDNewItem,
4282 LPCWSTR lpNewItem);
4283 // #ifdef UNICODE
4284 alias AppendMenuW AppendMenu;
4285 // #else
4286 // #...
4287 // #endif // !UNICODE
4288
4289 extern(Windows) export BOOL ModifyMenuA(
4290 HMENU hMnu,
4291 UINT uPosition,
4292 UINT uFlags,
4293 UINT_PTR uIDNewItem,
4294 LPCSTR lpNewItem);
4295 extern(Windows) export BOOL ModifyMenuW(
4296 HMENU hMnu,
4297 UINT uPosition,
4298 UINT uFlags,
4299 UINT_PTR uIDNewItem,
4300 LPCWSTR lpNewItem);
4301 // #ifdef UNICODE
4302 alias ModifyMenuW ModifyMenu;
4303 // #else
4304 // #...
4305 // #endif // !UNICODE
4306
4307 extern(Windows) export BOOL RemoveMenu(
4308 HMENU hMenu,
4309 UINT uPosition,
4310 UINT uFlags);
4311
4312 extern(Windows) export BOOL DeleteMenu(
4313 HMENU hMenu,
4314 UINT uPosition,
4315 UINT uFlags);
4316
4317 extern(Windows) export BOOL SetMenuItemBitmaps(
4318 HMENU hMenu,
4319 UINT uPosition,
4320 UINT uFlags,
4321 HBITMAP hBitmapUnchecked,
4322 HBITMAP hBitmapChecked);
4323
4324 extern(Windows) export LONG GetMenuCheckMarkDimensions();
4325
4326 extern(Windows) export BOOL TrackPopupMenu(
4327 HMENU hMenu,
4328 UINT uFlags,
4329 int x,
4330 int y,
4331 int nReserved,
4332 HWND hWnd,
4333 RECT *prcRect);
4334
4335 // #if(WINVER >= 0x0400)
4336
4337 enum : uint { MNC_IGNORE = 0 }
4338 enum : uint { MNC_CLOSE = 1 }
4339 enum : uint { MNC_EXECUTE = 2 }
4340 enum : uint { MNC_SELECT = 3 }
4341
4342 struct tagTPMPARAMS {
4343 UINT cbSize;
4344 RECT rcExclude;
4345 }
4346 alias tagTPMPARAMS TPMPARAMS;
4347
4348 alias TPMPARAMS* LPTPMPARAMS;
4349
4350 extern(Windows) export BOOL TrackPopupMenuEx(
4351 HMENU,
4352 UINT,
4353 int,
4354 int,
4355 HWND,
4356 LPTPMPARAMS);
4357 // #endif /* WINVER >= 0x0400 */
4358
4359 // #if(WINVER >= 0x0500)
4360
4361 enum : uint { MNS_NOCHECK = 0x80000000 }
4362 enum : uint { MNS_MODELESS = 0x40000000 }
4363 enum : uint { MNS_DRAGDROP = 0x20000000 }
4364 enum : uint { MNS_AUTODISMISS = 0x10000000 }
4365 enum : uint { MNS_NOTIFYBYPOS = 0x08000000 }
4366 enum : uint { MNS_CHECKORBMP = 0x04000000 }
4367
4368 enum : uint { MIM_MAXHEIGHT = 0x00000001 }
4369 enum : uint { MIM_BACKGROUND = 0x00000002 }
4370 enum : uint { MIM_HELPID = 0x00000004 }
4371 enum : uint { MIM_MENUDATA = 0x00000008 }
4372 enum : uint { MIM_STYLE = 0x00000010 }
4373 enum : uint { MIM_APPLYTOSUBMENUS = 0x80000000 }
4374
4375 struct tagMENUINFO {
4376 DWORD cbSize;
4377 DWORD fMask;
4378 DWORD dwStyle;
4379 UINT cyMax;
4380 HBRUSH hbrBack;
4381 DWORD dwContextHelpID;
4382 ULONG_PTR dwMenuData;
4383 }
4384 alias tagMENUINFO MENUINFO;
4385 alias tagMENUINFO* LPMENUINFO;
4386
4387 alias MENUINFO* LPCMENUINFO;
4388
4389 extern(Windows) export BOOL GetMenuInfo(
4390 HMENU,
4391 LPMENUINFO);
4392
4393 extern(Windows) export BOOL SetMenuInfo(
4394 HMENU,
4395 LPCMENUINFO);
4396
4397 extern(Windows) export BOOL EndMenu();
4398
4399 enum : uint { MND_CONTINUE = 0 }
4400 enum : uint { MND_ENDMENU = 1 }
4401
4402 struct tagMENUGETOBJECTINFO {
4403 DWORD dwFlags;
4404 UINT uPos;
4405 HMENU hmenu;
4406 PVOID riid;
4407 PVOID pvObj;
4408 }
4409 alias tagMENUGETOBJECTINFO MENUGETOBJECTINFO;
4410 alias tagMENUGETOBJECTINFO* PMENUGETOBJECTINFO;
4411
4412 enum : uint { MNGOF_TOPGAP = 0x00000001 }
4413 enum : uint { MNGOF_BOTTOMGAP = 0x00000002 }
4414
4415 enum : uint { MNGO_NOINTERFACE = 0x00000000 }
4416 enum : uint { MNGO_NOERROR = 0x00000001 }
4417 // #endif /* WINVER >= 0x0500 */
4418
4419 // #if(WINVER >= 0x0400)
4420 enum : uint { MIIM_STATE = 0x00000001 }
4421 enum : uint { MIIM_ID = 0x00000002 }
4422 enum : uint { MIIM_SUBMENU = 0x00000004 }
4423 enum : uint { MIIM_CHECKMARKS = 0x00000008 }
4424 enum : uint { MIIM_TYPE = 0x00000010 }
4425 enum : uint { MIIM_DATA = 0x00000020 }
4426 // #endif /* WINVER >= 0x0400 */
4427
4428 // #if(WINVER >= 0x0500)
4429 enum : uint { MIIM_STRING = 0x00000040 }
4430 enum : uint { MIIM_BITMAP = 0x00000080 }
4431 enum : uint { MIIM_FTYPE = 0x00000100 }
4432
4433 const HBITMAP HBMMENU_CALLBACK = cast(HBITMAP)-1;
4434 const HBITMAP HBMMENU_SYSTEM = cast(HBITMAP)1;
4435 const HBITMAP HBMMENU_MBAR_RESTORE = cast(HBITMAP)2;
4436 const HBITMAP HBMMENU_MBAR_MINIMIZE = cast(HBITMAP)3;
4437 const HBITMAP HBMMENU_MBAR_CLOSE = cast(HBITMAP)5;
4438 const HBITMAP HBMMENU_MBAR_CLOSE_D = cast(HBITMAP)6;
4439 const HBITMAP HBMMENU_MBAR_MINIMIZE_D = cast(HBITMAP)7;
4440 const HBITMAP HBMMENU_POPUP_CLOSE = cast(HBITMAP)8;
4441 const HBITMAP HBMMENU_POPUP_RESTORE = cast(HBITMAP)9;
4442 const HBITMAP HBMMENU_POPUP_MAXIMIZE = cast(HBITMAP)10;
4443 const HBITMAP HBMMENU_POPUP_MINIMIZE = cast(HBITMAP)11;
4444 // #endif /* WINVER >= 0x0500 */
4445
4446 // #if(WINVER >= 0x0400)
4447 struct tagMENUITEMINFOA {
4448 UINT cbSize;
4449 UINT fMask;
4450 UINT fType;
4451 UINT fState;
4452 UINT wID;
4453 HMENU hSubMenu;
4454 HBITMAP hbmpChecked;
4455 HBITMAP hbmpUnchecked;
4456 ULONG_PTR dwItemData;
4457 LPSTR dwTypeData;
4458 UINT cch;
4459 // #if(WINVER >= 0x0500)
4460 HBITMAP hbmpItem;
4461 // #endif /* WINVER >= 0x0500 */
4462 }
4463 alias tagMENUITEMINFOA MENUITEMINFOA;
4464 alias tagMENUITEMINFOA* LPMENUITEMINFOA;
4465
4466 struct tagMENUITEMINFOW {
4467 UINT cbSize;
4468 UINT fMask;
4469 UINT fType;
4470 UINT fState;
4471 UINT wID;
4472 HMENU hSubMenu;
4473 HBITMAP hbmpChecked;
4474 HBITMAP hbmpUnchecked;
4475 ULONG_PTR dwItemData;
4476 LPWSTR dwTypeData;
4477 UINT cch;
4478 // #if(WINVER >= 0x0500)
4479 HBITMAP hbmpItem;
4480 // #endif /* WINVER >= 0x0500 */
4481 }
4482 alias tagMENUITEMINFOW MENUITEMINFOW;
4483 alias tagMENUITEMINFOW* LPMENUITEMINFOW;
4484
4485 // #ifdef UNICODE
4486 alias MENUITEMINFOW MENUITEMINFO;
4487 alias LPMENUITEMINFOW LPMENUITEMINFO;
4488 // #else
4489 // ...
4490 // #endif // UNICODE
4491 alias MENUITEMINFOA* LPCMENUITEMINFOA;
4492 alias MENUITEMINFOW* LPCMENUITEMINFOW;
4493 // #ifdef UNICODE
4494 alias LPCMENUITEMINFOW LPCMENUITEMINFO;
4495 // #else
4496 // ...
4497 // #endif // UNICODE
4498
4499 extern(Windows) export BOOL InsertMenuItemA(
4500 HMENU,
4501 UINT,
4502 BOOL,
4503 LPCMENUITEMINFOA);
4504 extern(Windows) export BOOL InsertMenuItemW(
4505 HMENU,
4506 UINT,
4507 BOOL,
4508 LPCMENUITEMINFOW);
4509 // #ifdef UNICODE
4510 alias InsertMenuItemW InsertMenuItem;
4511 // #else
4512 // #...
4513 // #endif // !UNICODE
4514
4515 extern(Windows) export BOOL GetMenuItemInfoA(
4516 HMENU,
4517 UINT,
4518 BOOL,
4519 LPMENUITEMINFOA);
4520 extern(Windows) export BOOL GetMenuItemInfoW(
4521 HMENU,
4522 UINT,
4523 BOOL,
4524 LPMENUITEMINFOW);
4525 // #ifdef UNICODE
4526 alias GetMenuItemInfoW GetMenuItemInfo;
4527 // #else
4528 // #...
4529 // #endif // !UNICODE
4530
4531 extern(Windows) export BOOL SetMenuItemInfoA(
4532 HMENU,
4533 UINT,
4534 BOOL,
4535 LPCMENUITEMINFOA);
4536 extern(Windows) export BOOL SetMenuItemInfoW(
4537 HMENU,
4538 UINT,
4539 BOOL,
4540 LPCMENUITEMINFOW);
4541 // #ifdef UNICODE
4542 alias SetMenuItemInfoW SetMenuItemInfo;
4543 // #else
4544 // #...
4545 // #endif // !UNICODE
4546
4547 enum : uint { GMDI_USEDISABLED = 0x0001 }
4548 enum : uint { GMDI_GOINTOPOPUPS = 0x0002 }
4549
4550 extern(Windows) export UINT GetMenuDefaultItem(HMENU hMenu, UINT fByPos, UINT gmdiFlags);
4551 extern(Windows) export BOOL SetMenuDefaultItem(HMENU hMenu, UINT uItem, UINT fByPos);
4552
4553 extern(Windows) export BOOL GetMenuItemRect(HWND hWnd, HMENU hMenu, UINT uItem, LPRECT lprcItem);
4554 extern(Windows) export int MenuItemFromPoint(HWND hWnd, HMENU hMenu, POINT ptScreen);
4555 // #endif /* WINVER >= 0x0400 */
4556
4557 enum : uint { TPM_LEFTBUTTON = 0x0000 }
4558 enum : uint { TPM_RIGHTBUTTON = 0x0002 }
4559 enum : uint { TPM_LEFTALIGN = 0x0000 }
4560 enum : uint { TPM_CENTERALIGN = 0x0004 }
4561 enum : uint { TPM_RIGHTALIGN = 0x0008 }
4562 // #if(WINVER >= 0x0400)
4563 enum : uint { TPM_TOPALIGN = 0x0000 }
4564 enum : uint { TPM_VCENTERALIGN = 0x0010 }
4565 enum : uint { TPM_BOTTOMALIGN = 0x0020 }
4566
4567 enum : uint { TPM_HORIZONTAL = 0x0000 }
4568 enum : uint { TPM_VERTICAL = 0x0040 }
4569 enum : uint { TPM_NONOTIFY = 0x0080 }
4570 enum : uint { TPM_RETURNCMD = 0x0100 }
4571 // #endif /* WINVER >= 0x0400 */
4572 // #if(WINVER >= 0x0500)
4573 enum : uint { TPM_RECURSE = 0x0001 }
4574 enum : uint { TPM_HORPOSANIMATION = 0x0400 }
4575 enum : uint { TPM_HORNEGANIMATION = 0x0800 }
4576 enum : uint { TPM_VERPOSANIMATION = 0x1000 }
4577 enum : uint { TPM_VERNEGANIMATION = 0x2000 }
4578 // #if(_WIN32_WINNT >= 0x0500)
4579 enum : uint { TPM_NOANIMATION = 0x4000 }
4580 // #endif /* _WIN32_WINNT >= 0x0500 */
4581 // #if(_WIN32_WINNT >= 0x0501)
4582 enum : uint { TPM_LAYOUTRTL = 0x8000 }
4583 // #endif /* _WIN32_WINNT >= 0x0501 */
4584 // #endif /* WINVER >= 0x0500 */
4585
4586 // #endif /* !NOMENUS */
4587
4588 // #if(WINVER >= 0x0400)
4589
4590 struct tagDROPSTRUCT {
4591 HWND hwndSource;
4592 HWND hwndSink;
4593 DWORD wFmt;
4594 ULONG_PTR dwData;
4595 POINT ptDrop;
4596 DWORD dwControlData;
4597 }
4598 alias tagDROPSTRUCT DROPSTRUCT;
4599 alias tagDROPSTRUCT* PDROPSTRUCT;
4600 alias tagDROPSTRUCT* LPDROPSTRUCT;
4601
4602 enum : uint { DOF_EXECUTABLE = 0x8001 }
4603 enum : uint { DOF_DOCUMENT = 0x8002 }
4604 enum : uint { DOF_DIRECTORY = 0x8003 }
4605 enum : uint { DOF_MULTIPLE = 0x8004 }
4606 enum : uint { DOF_PROGMAN = 0x0001 }
4607 enum : uint { DOF_SHELLDATA = 0x0002 }
4608
4609 enum : uint { DO_DROPFILE = 0x454C4946 }
4610 enum : uint { DO_PRINTFILE = 0x544E5250 }
4611
4612 extern(Windows) export DWORD DragObject(
4613 HWND,
4614 HWND,
4615 UINT,
4616 ULONG_PTR,
4617 HCURSOR);
4618
4619 extern(Windows) export BOOL DragDetect(
4620 HWND,
4621 POINT);
4622 // #endif /* WINVER >= 0x0400 */
4623
4624 extern(Windows) export BOOL DrawIcon(
4625 HDC hDC,
4626 int X,
4627 int Y,
4628 HICON hIcon);
4629
4630 // #ifndef NODRAWTEXT
4631
4632 enum : uint { DT_TOP = 0x00000000 }
4633 enum : uint { DT_LEFT = 0x00000000 }
4634 enum : uint { DT_CENTER = 0x00000001 }
4635 enum : uint { DT_RIGHT = 0x00000002 }
4636 enum : uint { DT_VCENTER = 0x00000004 }
4637 enum : uint { DT_BOTTOM = 0x00000008 }
4638 enum : uint { DT_WORDBREAK = 0x00000010 }
4639 enum : uint { DT_SINGLELINE = 0x00000020 }
4640 enum : uint { DT_EXPANDTABS = 0x00000040 }
4641 enum : uint { DT_TABSTOP = 0x00000080 }
4642 enum : uint { DT_NOCLIP = 0x00000100 }
4643 enum : uint { DT_EXTERNALLEADING = 0x00000200 }
4644 enum : uint { DT_CALCRECT = 0x00000400 }
4645 enum : uint { DT_NOPREFIX = 0x00000800 }
4646 enum : uint { DT_INTERNAL = 0x00001000 }
4647
4648 // #if(WINVER >= 0x0400)
4649 enum : uint { DT_EDITCONTROL = 0x00002000 }
4650 enum : uint { DT_PATH_ELLIPSIS = 0x00004000 }
4651 enum : uint { DT_END_ELLIPSIS = 0x00008000 }
4652 enum : uint { DT_MODIFYSTRING = 0x00010000 }
4653 enum : uint { DT_RTLREADING = 0x00020000 }
4654 enum : uint { DT_WORD_ELLIPSIS = 0x00040000 }
4655 // #if(WINVER >= 0x0500)
4656 enum : uint { DT_NOFULLWIDTHCHARBREAK = 0x00080000 }
4657 // #if(_WIN32_WINNT >= 0x0500)
4658 enum : uint { DT_HIDEPREFIX = 0x00100000 }
4659 enum : uint { DT_PREFIXONLY = 0x00200000 }
4660 // #endif /* _WIN32_WINNT >= 0x0500 */
4661 // #endif /* WINVER >= 0x0500 */
4662
4663 struct tagDRAWTEXTPARAMS {
4664 UINT cbSize;
4665 int iTabLength;
4666 int iLeftMargin;
4667 int iRightMargin;
4668 UINT uiLengthDrawn;
4669 }
4670 alias tagDRAWTEXTPARAMS DRAWTEXTPARAMS;
4671 alias tagDRAWTEXTPARAMS* LPDRAWTEXTPARAMS;
4672
4673 // #endif /* WINVER >= 0x0400 */
4674
4675 extern(Windows) export int DrawTextA(
4676 HDC hDC,
4677 LPCSTR lpString,
4678 int nCount,
4679 LPRECT lpRect,
4680 UINT uFormat);
4681 extern(Windows) export int DrawTextW(
4682 HDC hDC,
4683 LPCWSTR lpString,
4684 int nCount,
4685 LPRECT lpRect,
4686 UINT uFormat);
4687 // #ifdef UNICODE
4688 alias DrawTextW DrawText;
4689 // #else
4690 // #...
4691 // #endif // !UNICODE
4692
4693 // #if(WINVER >= 0x0400)
4694 extern(Windows) export int DrawTextExA(
4695 HDC,
4696 LPSTR,
4697 int,
4698 LPRECT,
4699 UINT,
4700 LPDRAWTEXTPARAMS);
4701 extern(Windows) export int DrawTextExW(
4702 HDC,
4703 LPWSTR,
4704 int,
4705 LPRECT,
4706 UINT,
4707 LPDRAWTEXTPARAMS);
4708 // #ifdef UNICODE
4709 alias DrawTextExW DrawTextEx;
4710 // #else
4711 // #...
4712 // #endif // !UNICODE
4713 // #endif /* WINVER >= 0x0400 */
4714
4715 // #endif /* !NODRAWTEXT */
4716
4717 extern(Windows) export BOOL GrayStringA(
4718 HDC hDC,
4719 HBRUSH hBrush,
4720 GRAYSTRINGPROC lpOutputFunc,
4721 LPARAM lpData,
4722 int nCount,
4723 int X,
4724 int Y,
4725 int nWidth,
4726 int nHeight);
4727 extern(Windows) export BOOL GrayStringW(
4728 HDC hDC,
4729 HBRUSH hBrush,
4730 GRAYSTRINGPROC lpOutputFunc,
4731 LPARAM lpData,
4732 int nCount,
4733 int X,
4734 int Y,
4735 int nWidth,
4736 int nHeight);
4737 // #ifdef UNICODE
4738 alias GrayStringW GrayString;
4739 // #else
4740 // #...
4741 // #endif // !UNICODE
4742
4743 // #if(WINVER >= 0x0400)
4744
4745 enum : uint { DST_COMPLEX = 0x0000 }
4746 enum : uint { DST_TEXT = 0x0001 }
4747 enum : uint { DST_PREFIXTEXT = 0x0002 }
4748 enum : uint { DST_ICON = 0x0003 }
4749 enum : uint { DST_BITMAP = 0x0004 }
4750
4751 enum : uint { DSS_NORMAL = 0x0000 }
4752 enum : uint { DSS_UNION = 0x0010 }
4753 enum : uint { DSS_DISABLED = 0x0020 }
4754 enum : uint { DSS_MONO = 0x0080 }
4755 // #if(_WIN32_WINNT >= 0x0500)
4756 enum : uint { DSS_HIDEPREFIX = 0x0200 }
4757 enum : uint { DSS_PREFIXONLY = 0x0400 }
4758 // #endif /* _WIN32_WINNT >= 0x0500 */
4759 enum : uint { DSS_RIGHT = 0x8000 }
4760
4761 extern(Windows) export BOOL DrawStateA(
4762 HDC,
4763 HBRUSH,
4764 DRAWSTATEPROC,
4765 LPARAM,
4766 WPARAM,
4767 int,
4768 int,
4769 int,
4770 int,
4771 UINT);
4772 extern(Windows) export BOOL DrawStateW(
4773 HDC,
4774 HBRUSH,
4775 DRAWSTATEPROC,
4776 LPARAM,
4777 WPARAM,
4778 int,
4779 int,
4780 int,
4781 int,
4782 UINT);
4783 // #ifdef UNICODE
4784 alias DrawStateW DrawState;
4785 // #else
4786 // #...
4787 // #endif // !UNICODE
4788 // #endif /* WINVER >= 0x0400 */
4789
4790 extern(Windows) export LONG TabbedTextOutA(
4791 HDC hDC,
4792 int X,
4793 int Y,
4794 LPCSTR lpString,
4795 int nCount,
4796 int nTabPositions,
4797 INT *lpnTabStopPositions,
4798 int nTabOrigin);
4799 extern(Windows) export LONG TabbedTextOutW(
4800 HDC hDC,
4801 int X,
4802 int Y,
4803 LPCWSTR lpString,
4804 int nCount,
4805 int nTabPositions,
4806 INT *lpnTabStopPositions,
4807 int nTabOrigin);
4808 // #ifdef UNICODE
4809 alias TabbedTextOutW TabbedTextOut;
4810 // #else
4811 // #...
4812 // #endif // !UNICODE
4813
4814 extern(Windows) export DWORD GetTabbedTextExtentA(
4815 HDC hDC,
4816 LPCSTR lpString,
4817 int nCount,
4818 int nTabPositions,
4819 INT *lpnTabStopPositions);
4820 extern(Windows) export DWORD GetTabbedTextExtentW(
4821 HDC hDC,
4822 LPCWSTR lpString,
4823 int nCount,
4824 int nTabPositions,
4825 INT *lpnTabStopPositions);
4826 // #ifdef UNICODE
4827 alias GetTabbedTextExtentW GetTabbedTextExtent;
4828 // #else
4829 // #...
4830 // #endif // !UNICODE
4831
4832 extern(Windows) export BOOL UpdateWindow(
4833 HWND hWnd);
4834
4835 extern(Windows) export HWND SetActiveWindow(
4836 HWND hWnd);
4837
4838 extern(Windows) export HWND GetForegroundWindow();
4839
4840 // #if(WINVER >= 0x0400)
4841 extern(Windows) export BOOL PaintDesktop(
4842 HDC hdc);
4843
4844 // #endif /* WINVER >= 0x0400 */
4845
4846 extern(Windows) export BOOL SetForegroundWindow(
4847 HWND hWnd);
4848
4849 // #if(_WIN32_WINNT >= 0x0500)
4850 extern(Windows) export BOOL AllowSetForegroundWindow(
4851 DWORD dwProcessId);
4852
4853 enum : DWORD { ASFW_ANY = cast(DWORD)-1 }
4854
4855 extern(Windows) export BOOL LockSetForegroundWindow(
4856 UINT uLockCode);
4857
4858 enum : uint { LSFW_LOCK = 1 }
4859 enum : uint { LSFW_UNLOCK = 2 }
4860
4861 // #endif /* _WIN32_WINNT >= 0x0500 */
4862
4863 extern(Windows) export HWND WindowFromDC(
4864 HDC hDC);
4865
4866 extern(Windows) export HDC GetDC(
4867 HWND hWnd);
4868
4869 extern(Windows) export HDC GetDCEx(
4870 HWND hWnd,
4871 HRGN hrgnClip,
4872 DWORD flags);
4873
4874 enum : uint { DCX_WINDOW = 0x00000001 }
4875 enum : uint { DCX_CACHE = 0x00000002 }
4876 enum : uint { DCX_NORESETATTRS = 0x00000004 }
4877 enum : uint { DCX_CLIPCHILDREN = 0x00000008 }
4878 enum : uint { DCX_CLIPSIBLINGS = 0x00000010 }
4879 enum : uint { DCX_PARENTCLIP = 0x00000020 }
4880 enum : uint { DCX_EXCLUDERGN = 0x00000040 }
4881 enum : uint { DCX_INTERSECTRGN = 0x00000080 }
4882 enum : uint { DCX_EXCLUDEUPDATE = 0x00000100 }
4883 enum : uint { DCX_INTERSECTUPDATE = 0x00000200 }
4884 enum : uint { DCX_LOCKWINDOWUPDATE = 0x00000400 }
4885
4886 enum : uint { DCX_VALIDATE = 0x00200000 }
4887
4888 extern(Windows) export HDC GetWindowDC(
4889 HWND hWnd);
4890
4891 extern(Windows) export int ReleaseDC(
4892 HWND hWnd,
4893 HDC hDC);
4894
4895 extern(Windows) export HDC BeginPaint(
4896 HWND hWnd,
4897 LPPAINTSTRUCT lpPaint);
4898
4899 extern(Windows) export BOOL EndPaint(
4900 HWND hWnd,
4901 PAINTSTRUCT *lpPaint);
4902
4903 extern(Windows) export BOOL GetUpdateRect(
4904 HWND hWnd,
4905 LPRECT lpRect,
4906 BOOL bErase);
4907
4908 extern(Windows) export int GetUpdateRgn(
4909 HWND hWnd,
4910 HRGN hRgn,
4911 BOOL bErase);
4912
4913 extern(Windows) export int SetWindowRgn(
4914 HWND hWnd,
4915 HRGN hRgn,
4916 BOOL bRedraw);
4917
4918 extern(Windows) export int GetWindowRgn(
4919 HWND hWnd,
4920 HRGN hRgn);
4921
4922 // #if(_WIN32_WINNT >= 0x0501)
4923
4924 extern(Windows) export int GetWindowRgnBox(
4925 HWND hWnd,
4926 LPRECT lprc);
4927
4928 // #endif /* _WIN32_WINNT >= 0x0501 */
4929
4930 extern(Windows) export int ExcludeUpdateRgn(
4931 HDC hDC,
4932 HWND hWnd);
4933
4934 extern(Windows) export BOOL InvalidateRect(
4935 HWND hWnd,
4936 RECT *lpRect,
4937 BOOL bErase);
4938
4939 extern(Windows) export BOOL ValidateRect(
4940 HWND hWnd,
4941 RECT *lpRect);
4942
4943 extern(Windows) export BOOL InvalidateRgn(
4944 HWND hWnd,
4945 HRGN hRgn,
4946 BOOL bErase);
4947
4948 extern(Windows) export BOOL ValidateRgn(
4949 HWND hWnd,
4950 HRGN hRgn);
4951
4952 extern(Windows) export BOOL RedrawWindow(
4953 HWND hWnd,
4954 RECT *lprcUpdate,
4955 HRGN hrgnUpdate,
4956 UINT flags);
4957
4958 enum : uint { RDW_INVALIDATE = 0x0001 }
4959 enum : uint { RDW_INTERNALPAINT = 0x0002 }
4960 enum : uint { RDW_ERASE = 0x0004 }
4961
4962 enum : uint { RDW_VALIDATE = 0x0008 }
4963 enum : uint { RDW_NOINTERNALPAINT = 0x0010 }
4964 enum : uint { RDW_NOERASE = 0x0020 }
4965
4966 enum : uint { RDW_NOCHILDREN = 0x0040 }
4967 enum : uint { RDW_ALLCHILDREN = 0x0080 }
4968
4969 enum : uint { RDW_UPDATENOW = 0x0100 }
4970 enum : uint { RDW_ERASENOW = 0x0200 }
4971
4972 enum : uint { RDW_FRAME = 0x0400 }
4973 enum : uint { RDW_NOFRAME = 0x0800 }
4974
4975 extern(Windows) export BOOL LockWindowUpdate(
4976 HWND hWndLock);
4977
4978 extern(Windows) export BOOL ScrollWindow(
4979 HWND hWnd,
4980 int XAmount,
4981 int YAmount,
4982 RECT *lpRect,
4983 RECT *lpClipRect);
4984
4985 extern(Windows) export BOOL ScrollDC(
4986 HDC hDC,
4987 int dx,
4988 int dy,
4989 RECT *lprcScroll,
4990 RECT *lprcClip,
4991 HRGN hrgnUpdate,
4992 LPRECT lprcUpdate);
4993
4994 extern(Windows) export int ScrollWindowEx(
4995 HWND hWnd,
4996 int dx,
4997 int dy,
4998 RECT *prcScroll,
4999 RECT *prcClip,
5000 HRGN hrgnUpdate,
5001 LPRECT prcUpdate,
5002 UINT flags);
5003
5004 enum : uint { SW_SCROLLCHILDREN = 0x0001 }
5005 enum : uint { SW_INVALIDATE = 0x0002 }
5006 enum : uint { SW_ERASE = 0x0004 }
5007 // #if(WINVER >= 0x0500)
5008 enum : uint { SW_SMOOTHSCROLL = 0x0010 }
5009 // #endif /* WINVER >= 0x0500 */
5010
5011 // #ifndef NOSCROLL
5012
5013 extern(Windows) export int SetScrollPos(
5014 HWND hWnd,
5015 int nBar,
5016 int nPos,
5017 BOOL bRedraw);
5018
5019 extern(Windows) export int GetScrollPos(
5020 HWND hWnd,
5021 int nBar);
5022
5023 extern(Windows) export BOOL SetScrollRange(
5024 HWND hWnd,
5025 int nBar,
5026 int nMinPos,
5027 int nMaxPos,
5028 BOOL bRedraw);
5029
5030 extern(Windows) export BOOL GetScrollRange(
5031 HWND hWnd,
5032 int nBar,
5033 LPINT lpMinPos,
5034 LPINT lpMaxPos);
5035
5036 extern(Windows) export BOOL ShowScrollBar(
5037 HWND hWnd,
5038 int wBar,
5039 BOOL bShow);
5040
5041 extern(Windows) export BOOL EnableScrollBar(
5042 HWND hWnd,
5043 UINT wSBflags,
5044 UINT wArrows);
5045
5046 enum : uint { ESB_ENABLE_BOTH = 0x0000 }
5047 enum : uint { ESB_DISABLE_BOTH = 0x0003 }
5048
5049 enum : uint { ESB_DISABLE_LEFT = 0x0001 }
5050 enum : uint { ESB_DISABLE_RIGHT = 0x0002 }
5051
5052 enum : uint { ESB_DISABLE_UP = 0x0001 }
5053 enum : uint { ESB_DISABLE_DOWN = 0x0002 }
5054
5055 alias ESB_DISABLE_LEFT ESB_DISABLE_LTUP;
5056 alias ESB_DISABLE_RIGHT ESB_DISABLE_RTDN;
5057
5058 // #endif /* !NOSCROLL */
5059
5060 extern(Windows) export BOOL SetPropA(
5061 HWND hWnd,
5062 LPCSTR lpString,
5063 HANDLE hData);
5064 extern(Windows) export BOOL SetPropW(
5065 HWND hWnd,
5066 LPCWSTR lpString,
5067 HANDLE hData);
5068 // #ifdef UNICODE
5069 alias SetPropW SetProp;
5070 // #else
5071 // #...
5072 // #endif // !UNICODE
5073
5074 extern(Windows) export HANDLE GetPropA(
5075 HWND hWnd,
5076 LPCSTR lpString);
5077 extern(Windows) export HANDLE GetPropW(
5078 HWND hWnd,
5079 LPCWSTR lpString);
5080 // #ifdef UNICODE
5081 alias GetPropW GetProp;
5082 // #else
5083 // #...
5084 // #endif // !UNICODE
5085
5086 extern(Windows) export HANDLE RemovePropA(
5087 HWND hWnd,
5088 LPCSTR lpString);
5089 extern(Windows) export HANDLE RemovePropW(
5090 HWND hWnd,
5091 LPCWSTR lpString);
5092 // #ifdef UNICODE
5093 alias RemovePropW RemoveProp;
5094 // #else
5095 // #...
5096 // #endif // !UNICODE
5097
5098 extern(Windows) export int EnumPropsExA(
5099 HWND hWnd,
5100 PROPENUMPROCEXA lpEnumFunc,
5101 LPARAM lParam);
5102 extern(Windows) export int EnumPropsExW(
5103 HWND hWnd,
5104 PROPENUMPROCEXW lpEnumFunc,
5105 LPARAM lParam);
5106 // #ifdef UNICODE
5107 alias EnumPropsExW EnumPropsEx;
5108 // #else
5109 // #...
5110 // #endif // !UNICODE
5111
5112 extern(Windows) export int EnumPropsA(
5113 HWND hWnd,
5114 PROPENUMPROCA lpEnumFunc);
5115 extern(Windows) export int EnumPropsW(
5116 HWND hWnd,
5117 PROPENUMPROCW lpEnumFunc);
5118 // #ifdef UNICODE
5119 alias EnumPropsW EnumProps;
5120 // #else
5121 // #...
5122 // #endif // !UNICODE
5123
5124 extern(Windows) export BOOL SetWindowTextA(
5125 HWND hWnd,
5126 LPCSTR lpString);
5127 extern(Windows) export BOOL SetWindowTextW(
5128 HWND hWnd,
5129 LPCWSTR lpString);
5130 // #ifdef UNICODE
5131 alias SetWindowTextW SetWindowText;
5132 // #else
5133 // #...
5134 // #endif // !UNICODE
5135
5136 extern(Windows) export int GetWindowTextA(
5137 HWND hWnd,
5138 LPSTR lpString,
5139 int nMaxCount);
5140 extern(Windows) export int GetWindowTextW(
5141 HWND hWnd,
5142 LPWSTR lpString,
5143 int nMaxCount);
5144 // #ifdef UNICODE
5145 alias GetWindowTextW GetWindowText;
5146 // #else
5147 // #...
5148 // #endif // !UNICODE
5149
5150 extern(Windows) export int GetWindowTextLengthA(
5151 HWND hWnd);
5152 extern(Windows) export int GetWindowTextLengthW(
5153 HWND hWnd);
5154 // #ifdef UNICODE
5155 alias GetWindowTextLengthW GetWindowTextLength;
5156 // #else
5157 // #...
5158 // #endif // !UNICODE
5159
5160 extern(Windows) export BOOL GetClientRect(
5161 HWND hWnd,
5162 LPRECT lpRect);
5163
5164 extern(Windows) export BOOL GetWindowRect(
5165 HWND hWnd,
5166 LPRECT lpRect);
5167
5168 extern(Windows) export BOOL AdjustWindowRect(
5169 LPRECT lpRect,
5170 DWORD dwStyle,
5171 BOOL bMenu);
5172
5173 extern(Windows) export BOOL AdjustWindowRectEx(
5174 LPRECT lpRect,
5175 DWORD dwStyle,
5176 BOOL bMenu,
5177 DWORD dwExStyle);
5178
5179 // #if(WINVER >= 0x0400)
5180 enum : uint { HELPINFO_WINDOW = 0x0001 }
5181 enum : uint { HELPINFO_MENUITEM = 0x0002 }
5182 struct tagHELPINFO {
5183 UINT cbSize;
5184 int iContextType;
5185 int iCtrlId;
5186 HANDLE hItemHandle;
5187 DWORD_PTR dwContextId;
5188 POINT MousePos;
5189 }
5190 alias tagHELPINFO HELPINFO;
5191 alias tagHELPINFO* LPHELPINFO;
5192
5193 extern(Windows) export BOOL SetWindowContextHelpId(
5194 HWND,
5195 DWORD);
5196
5197 extern(Windows) export DWORD GetWindowContextHelpId(
5198 HWND);
5199
5200 extern(Windows) export BOOL SetMenuContextHelpId(
5201 HMENU,
5202 DWORD);
5203
5204 extern(Windows) export DWORD GetMenuContextHelpId(
5205 HMENU);
5206
5207 // #endif /* WINVER >= 0x0400 */
5208
5209 // #ifndef NOMB
5210
5211 enum : uint { MB_OK = 0x00000000 }
5212 enum : uint { MB_OKCANCEL = 0x00000001 }
5213 enum : uint { MB_ABORTRETRYIGNORE = 0x00000002 }
5214 enum : uint { MB_YESNOCANCEL = 0x00000003 }
5215 enum : uint { MB_YESNO = 0x00000004 }
5216 enum : uint { MB_RETRYCANCEL = 0x00000005 }
5217 // #if(WINVER >= 0x0500)
5218 enum : uint { MB_CANCELTRYCONTINUE = 0x00000006 }
5219 // #endif /* WINVER >= 0x0500 */
5220
5221 enum : uint { MB_ICONHAND = 0x00000010 }
5222 enum : uint { MB_ICONQUESTION = 0x00000020 }
5223 enum : uint { MB_ICONEXCLAMATION = 0x00000030 }
5224 enum : uint { MB_ICONASTERISK = 0x00000040 }
5225
5226 // #if(WINVER >= 0x0400)
5227 enum : uint { MB_USERICON = 0x00000080 }
5228 alias MB_ICONEXCLAMATION MB_ICONWARNING;
5229 alias MB_ICONHAND MB_ICONERROR;
5230 // #endif /* WINVER >= 0x0400 */
5231
5232 alias MB_ICONASTERISK MB_ICONINFORMATION;
5233 alias MB_ICONHAND MB_ICONSTOP;
5234
5235 enum : uint { MB_DEFBUTTON1 = 0x00000000 }
5236 enum : uint { MB_DEFBUTTON2 = 0x00000100 }
5237 enum : uint { MB_DEFBUTTON3 = 0x00000200 }
5238 // #if(WINVER >= 0x0400)
5239 enum : uint { MB_DEFBUTTON4 = 0x00000300 }
5240 // #endif /* WINVER >= 0x0400 */
5241
5242 enum : uint { MB_APPLMODAL = 0x00000000 }
5243 enum : uint { MB_SYSTEMMODAL = 0x00001000 }
5244 enum : uint { MB_TASKMODAL = 0x00002000 }
5245 // #if(WINVER >= 0x0400)
5246 enum : uint { MB_HELP = 0x00004000 }
5247 // #endif /* WINVER >= 0x0400 */
5248
5249 enum : uint { MB_NOFOCUS = 0x00008000 }
5250 enum : uint { MB_SETFOREGROUND = 0x00010000 }
5251 enum : uint { MB_DEFAULT_DESKTOP_ONLY = 0x00020000 }
5252
5253 // #if(WINVER >= 0x0400)
5254 enum : uint { MB_TOPMOST = 0x00040000 }
5255 enum : uint { MB_RIGHT = 0x00080000 }
5256 enum : uint { MB_RTLREADING = 0x00100000 }
5257
5258 // #endif /* WINVER >= 0x0400 */
5259
5260 // #ifdef _WIN32_WINNT
5261 // #if (_WIN32_WINNT >= 0x0400)
5262 enum : uint { MB_SERVICE_NOTIFICATION = 0x00200000 }
5263 // #else
5264 // #...
5265 // #endif
5266 enum : uint { MB_SERVICE_NOTIFICATION_NT3X = 0x00040000 }
5267 // #endif
5268
5269 enum : uint { MB_TYPEMASK = 0x0000000F }
5270 enum : uint { MB_ICONMASK = 0x000000F0 }
5271 enum : uint { MB_DEFMASK = 0x00000F00 }
5272 enum : uint { MB_MODEMASK = 0x00003000 }
5273 enum : uint { MB_MISCMASK = 0x0000C000 }
5274
5275 extern(Windows) export int MessageBoxA(
5276 HWND hWnd,
5277 LPCSTR lpText,
5278 LPCSTR lpCaption,
5279 UINT uType);
5280 extern(Windows) export int MessageBoxW(
5281 HWND hWnd,
5282 LPCWSTR lpText,
5283 LPCWSTR lpCaption,
5284 UINT uType);
5285 // #ifdef UNICODE
5286 alias MessageBoxW MessageBox;
5287 // #else
5288 // #...
5289 // #endif // !UNICODE
5290
5291 extern(Windows) export int MessageBoxExA(
5292 HWND hWnd,
5293 LPCSTR lpText,
5294 LPCSTR lpCaption,
5295 UINT uType,
5296 WORD wLanguageId);
5297 extern(Windows) export int MessageBoxExW(
5298 HWND hWnd,
5299 LPCWSTR lpText,
5300 LPCWSTR lpCaption,
5301 UINT uType,
5302 WORD wLanguageId);
5303 // #ifdef UNICODE
5304 alias MessageBoxExW MessageBoxEx;
5305 // #else
5306 // #...
5307 // #endif // !UNICODE
5308
5309 // #if(WINVER >= 0x0400)
5310
5311 extern(Windows) alias void function(LPHELPINFO lpHelpInfo) MSGBOXCALLBACK;
5312
5313 struct tagMSGBOXPARAMSA {
5314 UINT cbSize;
5315 HWND hwndOwner;
5316 HINSTANCE hInstance;
5317 LPCSTR lpszText;
5318 LPCSTR lpszCaption;
5319 DWORD dwStyle;
5320 LPCSTR lpszIcon;
5321 DWORD_PTR dwContextHelpId;
5322 MSGBOXCALLBACK lpfnMsgBoxCallback;
5323 DWORD dwLanguageId;
5324 }
5325 alias tagMSGBOXPARAMSA MSGBOXPARAMSA;
5326 alias tagMSGBOXPARAMSA* PMSGBOXPARAMSA;
5327 alias tagMSGBOXPARAMSA* LPMSGBOXPARAMSA;
5328
5329 struct tagMSGBOXPARAMSW {
5330 UINT cbSize;
5331 HWND hwndOwner;
5332 HINSTANCE hInstance;
5333 LPCWSTR lpszText;
5334 LPCWSTR lpszCaption;
5335 DWORD dwStyle;
5336 LPCWSTR lpszIcon;
5337 DWORD_PTR dwContextHelpId;
5338 MSGBOXCALLBACK lpfnMsgBoxCallback;
5339 DWORD dwLanguageId;
5340 }
5341 alias tagMSGBOXPARAMSW MSGBOXPARAMSW;
5342 alias tagMSGBOXPARAMSW* PMSGBOXPARAMSW;
5343 alias tagMSGBOXPARAMSW* LPMSGBOXPARAMSW;
5344
5345 // #ifdef UNICODE
5346 alias MSGBOXPARAMSW MSGBOXPARAMS;
5347 alias PMSGBOXPARAMSW PMSGBOXPARAMS;
5348 alias LPMSGBOXPARAMSW LPMSGBOXPARAMS;
5349 // #else
5350 // ...
5351 // #endif // UNICODE
5352
5353 extern(Windows) export int MessageBoxIndirectA(
5354 MSGBOXPARAMSA *);
5355 extern(Windows) export int MessageBoxIndirectW(
5356 MSGBOXPARAMSW *);
5357 // #ifdef UNICODE
5358 alias MessageBoxIndirectW MessageBoxIndirect;
5359 // #else
5360 // #...
5361 // #endif // !UNICODE
5362 // #endif /* WINVER >= 0x0400 */
5363
5364 extern(Windows) export BOOL MessageBeep(
5365 UINT uType);
5366
5367 // #endif /* !NOMB */
5368
5369 extern(Windows) export int ShowCursor(
5370 BOOL bShow);
5371
5372 extern(Windows) export BOOL SetCursorPos(
5373 int X,
5374 int Y);
5375
5376 extern(Windows) export HCURSOR SetCursor(
5377 HCURSOR hCursor);
5378
5379 extern(Windows) export BOOL GetCursorPos(
5380 LPPOINT lpPoint);
5381
5382 extern(Windows) export BOOL ClipCursor(
5383 RECT *lpRect);
5384
5385 extern(Windows) export BOOL GetClipCursor(
5386 LPRECT lpRect);
5387
5388 extern(Windows) export HCURSOR GetCursor();
5389
5390 extern(Windows) export BOOL CreateCaret(
5391 HWND hWnd,
5392 HBITMAP hBitmap,
5393 int nWidth,
5394 int nHeight);
5395
5396 extern(Windows) export UINT GetCaretBlinkTime();
5397
5398 extern(Windows) export BOOL SetCaretBlinkTime(
5399 UINT uMSeconds);
5400
5401 extern(Windows) export BOOL DestroyCaret();
5402
5403 extern(Windows) export BOOL HideCaret(
5404 HWND hWnd);
5405
5406 extern(Windows) export BOOL ShowCaret(
5407 HWND hWnd);
5408
5409 extern(Windows) export BOOL SetCaretPos(
5410 int X,
5411 int Y);
5412
5413 extern(Windows) export BOOL GetCaretPos(
5414 LPPOINT lpPoint);
5415
5416 extern(Windows) export BOOL ClientToScreen(
5417 HWND hWnd,
5418 LPPOINT lpPoint);
5419
5420 extern(Windows) export BOOL ScreenToClient(
5421 HWND hWnd,
5422 LPPOINT lpPoint);
5423
5424 extern(Windows) export int MapWindowPoints(
5425 HWND hWndFrom,
5426 HWND hWndTo,
5427 LPPOINT lpPoints,
5428 UINT cPoints);
5429
5430 extern(Windows) export HWND WindowFromPoint(
5431 POINT Point);
5432
5433 extern(Windows) export HWND ChildWindowFromPoint(
5434 HWND hWndParent,
5435 POINT Point);
5436
5437 // #if(WINVER >= 0x0400)
5438 enum : uint { CWP_ALL = 0x0000 }
5439 enum : uint { CWP_SKIPINVISIBLE = 0x0001 }
5440 enum : uint { CWP_SKIPDISABLED = 0x0002 }
5441 enum : uint { CWP_SKIPTRANSPARENT = 0x0004 }
5442
5443 extern(Windows) export HWND ChildWindowFromPointEx(HWND, POINT, UINT);
5444 // #endif /* WINVER >= 0x0400 */
5445
5446 // #ifndef NOCOLOR
5447
5448 enum : uint { CTLCOLOR_MSGBOX = 0 }
5449 enum : uint { CTLCOLOR_EDIT = 1 }
5450 enum : uint { CTLCOLOR_LISTBOX = 2 }
5451 enum : uint { CTLCOLOR_BTN = 3 }
5452 enum : uint { CTLCOLOR_DLG = 4 }
5453 enum : uint { CTLCOLOR_SCROLLBAR = 5 }
5454 enum : uint { CTLCOLOR_STATIC = 6 }
5455 enum : uint { CTLCOLOR_MAX = 7 }
5456
5457 enum : uint { COLOR_SCROLLBAR = 0 }
5458 enum : uint { COLOR_BACKGROUND = 1 }
5459 enum : uint { COLOR_ACTIVECAPTION = 2 }
5460 enum : uint { COLOR_INACTIVECAPTION = 3 }
5461 enum : uint { COLOR_MENU = 4 }
5462 enum : uint { COLOR_WINDOW = 5 }
5463 enum : uint { COLOR_WINDOWFRAME = 6 }
5464 enum : uint { COLOR_MENUTEXT = 7 }
5465 enum : uint { COLOR_WINDOWTEXT = 8 }
5466 enum : uint { COLOR_CAPTIONTEXT = 9 }
5467 enum : uint { COLOR_ACTIVEBORDER = 10 }
5468 enum : uint { COLOR_INACTIVEBORDER = 11 }
5469 enum : uint { COLOR_APPWORKSPACE = 12 }
5470 enum : uint { COLOR_HIGHLIGHT = 13 }
5471 enum : uint { COLOR_HIGHLIGHTTEXT = 14 }
5472 enum : uint { COLOR_BTNFACE = 15 }
5473 enum : uint { COLOR_BTNSHADOW = 16 }
5474 enum : uint { COLOR_GRAYTEXT = 17 }
5475 enum : uint { COLOR_BTNTEXT = 18 }
5476 enum : uint { COLOR_INACTIVECAPTIONTEXT = 19 }
5477 enum : uint { COLOR_BTNHIGHLIGHT = 20 }
5478
5479 // #if(WINVER >= 0x0400)
5480 enum : uint { COLOR_3DDKSHADOW = 21 }
5481 enum : uint { COLOR_3DLIGHT = 22 }
5482 enum : uint { COLOR_INFOTEXT = 23 }
5483 enum : uint { COLOR_INFOBK = 24 }
5484 // #endif /* WINVER >= 0x0400 */
5485
5486 // #if(WINVER >= 0x0500)
5487 enum : uint { COLOR_HOTLIGHT = 26 }
5488 enum : uint { COLOR_GRADIENTACTIVECAPTION = 27 }
5489 enum : uint { COLOR_GRADIENTINACTIVECAPTION = 28 }
5490 // #if(WINVER >= 0x0501)
5491 enum : uint { COLOR_MENUHILIGHT = 29 }
5492 enum : uint { COLOR_MENUBAR = 30 }
5493 // #endif /* WINVER >= 0x0501 */
5494 // #endif /* WINVER >= 0x0500 */
5495
5496 // #if(WINVER >= 0x0400)
5497 alias COLOR_BACKGROUND COLOR_DESKTOP;
5498 alias COLOR_BTNFACE COLOR_3DFACE;
5499 alias COLOR_BTNSHADOW COLOR_3DSHADOW;
5500 alias COLOR_BTNHIGHLIGHT COLOR_3DHIGHLIGHT;
5501 alias COLOR_BTNHIGHLIGHT COLOR_3DHILIGHT;
5502 alias COLOR_BTNHIGHLIGHT COLOR_BTNHILIGHT;
5503 // #endif /* WINVER >= 0x0400 */
5504
5505 extern(Windows) export DWORD GetSysColor(
5506 int nIndex);
5507
5508 // #if(WINVER >= 0x0400)
5509 extern(Windows) export HBRUSH GetSysColorBrush(
5510 int nIndex);
5511
5512 // #endif /* WINVER >= 0x0400 */
5513
5514 extern(Windows) export BOOL SetSysColors(
5515 int cElements,
5516 INT * lpaElements,
5517 COLORREF * lpaRgbValues);
5518
5519 // #endif /* !NOCOLOR */
5520
5521 extern(Windows) export BOOL DrawFocusRect(
5522 HDC hDC,
5523 RECT * lprc);
5524
5525 extern(Windows) export int FillRect(
5526 HDC hDC,
5527 RECT *lprc,
5528 HBRUSH hbr);
5529
5530 extern(Windows) export int FrameRect(
5531 HDC hDC,
5532 RECT *lprc,
5533 HBRUSH hbr);
5534
5535 extern(Windows) export BOOL InvertRect(
5536 HDC hDC,
5537 RECT *lprc);
5538
5539 extern(Windows) export BOOL SetRect(
5540 LPRECT lprc,
5541 int xLeft,
5542 int yTop,
5543 int xRight,
5544 int yBottom);
5545
5546 extern(Windows) export BOOL SetRectEmpty(
5547 LPRECT lprc);
5548
5549 extern(Windows) export BOOL CopyRect(
5550 LPRECT lprcDst,
5551 RECT *lprcSrc);
5552
5553 extern(Windows) export BOOL InflateRect(
5554 LPRECT lprc,
5555 int dx,
5556 int dy);
5557
5558 extern(Windows) export BOOL IntersectRect(
5559 LPRECT lprcDst,
5560 RECT *lprcSrc1,
5561 RECT *lprcSrc2);
5562
5563 extern(Windows) export BOOL UnionRect(
5564 LPRECT lprcDst,
5565 RECT *lprcSrc1,
5566 RECT *lprcSrc2);
5567
5568 extern(Windows) export BOOL SubtractRect(
5569 LPRECT lprcDst,
5570 RECT *lprcSrc1,
5571 RECT *lprcSrc2);
5572
5573 extern(Windows) export BOOL OffsetRect(
5574 LPRECT lprc,
5575 int dx,
5576 int dy);
5577
5578 extern(Windows) export BOOL IsRectEmpty(
5579 RECT *lprc);
5580
5581 extern(Windows) export BOOL EqualRect(
5582 RECT *lprc1,
5583 RECT *lprc2);
5584
5585 extern(Windows) export BOOL PtInRect(
5586 RECT *lprc,
5587 POINT pt);
5588
5589 // #ifndef NOWINOFFSETS
5590
5591 extern(Windows) export WORD GetWindowWord(
5592 HWND hWnd,
5593 int nIndex);
5594
5595 extern(Windows) export WORD SetWindowWord(
5596 HWND hWnd,
5597 int nIndex,
5598 WORD wNewWord);
5599
5600 extern(Windows) export LONG GetWindowLongA(
5601 HWND hWnd,
5602 int nIndex);
5603 extern(Windows) export LONG GetWindowLongW(
5604 HWND hWnd,
5605 int nIndex);
5606 // #ifdef UNICODE
5607 alias GetWindowLongW GetWindowLong;
5608 // #else
5609 // #...
5610 // #endif // !UNICODE
5611
5612 extern(Windows) export LONG SetWindowLongA(
5613 HWND hWnd,
5614 int nIndex,
5615 LONG dwNewLong);
5616 extern(Windows) export LONG SetWindowLongW(
5617 HWND hWnd,
5618 int nIndex,
5619 LONG dwNewLong);
5620 // #ifdef UNICODE
5621 alias SetWindowLongW SetWindowLong;
5622 // #else
5623 // #...
5624 // #endif // !UNICODE
5625
5626 // #ifdef _WIN64
5627
5628 // ...
5629 // #ifdef UNICODE
5630 // #...
5631 // #else
5632 // #...
5633 // #endif // !UNICODE
5634
5635 // ...
5636 // #ifdef UNICODE
5637 // #...
5638 // #else
5639 // #...
5640 // #endif // !UNICODE
5641
5642 // #else /* _WIN64 */
5643
5644 alias GetWindowLongA GetWindowLongPtrA;
5645 alias GetWindowLongW GetWindowLongPtrW;
5646 // #ifdef UNICODE
5647 alias GetWindowLongPtrW GetWindowLongPtr;
5648 // #else
5649 // #...
5650 // #endif // !UNICODE
5651
5652 alias SetWindowLongA SetWindowLongPtrA;
5653 alias SetWindowLongW SetWindowLongPtrW;
5654 // #ifdef UNICODE
5655 alias SetWindowLongPtrW SetWindowLongPtr;
5656 // #else
5657 // #...
5658 // #endif // !UNICODE
5659
5660 // #endif /* _WIN64 */
5661
5662 extern(Windows) export WORD GetClassWord(
5663 HWND hWnd,
5664 int nIndex);
5665
5666 extern(Windows) export WORD SetClassWord(
5667 HWND hWnd,
5668 int nIndex,
5669 WORD wNewWord);
5670
5671 extern(Windows) export DWORD GetClassLongA(
5672 HWND hWnd,
5673 int nIndex);
5674 extern(Windows) export DWORD GetClassLongW(
5675 HWND hWnd,
5676 int nIndex);
5677 // #ifdef UNICODE
5678 alias GetClassLongW GetClassLong;
5679 // #else
5680 // #...
5681 // #endif // !UNICODE
5682
5683 extern(Windows) export DWORD SetClassLongA(
5684 HWND hWnd,
5685 int nIndex,
5686 LONG dwNewLong);
5687 extern(Windows) export DWORD SetClassLongW(
5688 HWND hWnd,
5689 int nIndex,
5690 LONG dwNewLong);
5691 // #ifdef UNICODE
5692 alias SetClassLongW SetClassLong;
5693 // #else
5694 // #...
5695 // #endif // !UNICODE
5696
5697 // #ifdef _WIN64
5698
5699 // ...
5700 // #ifdef UNICODE
5701 // #...
5702 // #else
5703 // #...
5704 // #endif // !UNICODE
5705
5706 // ...
5707 // #ifdef UNICODE
5708 // #...
5709 // #else
5710 // #...
5711 // #endif // !UNICODE
5712
5713 // #else /* _WIN64 */
5714
5715 alias GetClassLongA GetClassLongPtrA;
5716 alias GetClassLongW GetClassLongPtrW;
5717 // #ifdef UNICODE
5718 alias GetClassLongPtrW GetClassLongPtr;
5719 // #else
5720 // #...
5721 // #endif // !UNICODE
5722
5723 alias SetClassLongA SetClassLongPtrA;
5724 alias SetClassLongW SetClassLongPtrW;
5725 // #ifdef UNICODE
5726 alias SetClassLongPtrW SetClassLongPtr;
5727 // #else
5728 // #...
5729 // #endif // !UNICODE
5730
5731 // #endif /* _WIN64 */
5732
5733 // #endif /* !NOWINOFFSETS */
5734
5735 // #if(WINVER >= 0x0500)
5736 extern(Windows) export BOOL GetProcessDefaultLayout(
5737 DWORD *pdwDefaultLayout);
5738
5739 extern(Windows) export BOOL SetProcessDefaultLayout(
5740 DWORD dwDefaultLayout);
5741 // #endif /* WINVER >= 0x0500 */
5742
5743 extern(Windows) export HWND GetDesktopWindow();
5744
5745 extern(Windows) export HWND GetParent(
5746 HWND hWnd);
5747
5748 extern(Windows) export HWND SetParent(
5749 HWND hWndChild,
5750 HWND hWndNewParent);
5751
5752 extern(Windows) export BOOL EnumChildWindows(
5753 HWND hWndParent,
5754 WNDENUMPROC lpEnumFunc,
5755 LPARAM lParam);
5756
5757 extern(Windows) export HWND FindWindowA(
5758 LPCSTR lpClassName,
5759 LPCSTR lpWindowName);
5760 extern(Windows) export HWND FindWindowW(
5761 LPCWSTR lpClassName,
5762 LPCWSTR lpWindowName);
5763 // #ifdef UNICODE
5764 alias FindWindowW FindWindow;
5765 // #else
5766 // #...
5767 // #endif // !UNICODE
5768
5769 // #if(WINVER >= 0x0400)
5770 extern(Windows) export HWND FindWindowExA(HWND, HWND, LPCSTR, LPCSTR);
5771 extern(Windows) export HWND FindWindowExW(HWND, HWND, LPCWSTR, LPCWSTR);
5772 // #ifdef UNICODE
5773 alias FindWindowExW FindWindowEx;
5774 // #else
5775 // #...
5776 // #endif // !UNICODE
5777
5778 // #endif /* WINVER >= 0x0400 */
5779
5780 extern(Windows) export BOOL EnumWindows(
5781 WNDENUMPROC lpEnumFunc,
5782 LPARAM lParam);
5783
5784 extern(Windows) export BOOL EnumThreadWindows(
5785 DWORD dwThreadId,
5786 WNDENUMPROC lpfn,
5787 LPARAM lParam);
5788
5789 // #define EnumTaskWindows(hTask, lpfn, lParam) EnumThreadWindows(HandleToUlong(hTask), lpfn, lParam)
5790
5791 extern(Windows) export int GetClassNameA(
5792 HWND hWnd,
5793 LPSTR lpClassName,
5794 int nMaxCount);
5795 extern(Windows) export int GetClassNameW(
5796 HWND hWnd,
5797 LPWSTR lpClassName,
5798 int nMaxCount);
5799 // #ifdef UNICODE
5800 alias GetClassNameW GetClassName;
5801 // #else
5802 // #...
5803 // #endif // !UNICODE
5804
5805 extern(Windows) export HWND GetTopWindow(
5806 HWND hWnd);
5807
5808 // #define GetNextWindow(hWnd, wCmd) GetWindow(hWnd, wCmd)
5809 // #define GetSysModalWindow() (NULL)
5810 // #define SetSysModalWindow(hWnd) (NULL)
5811
5812 extern(Windows) export DWORD GetWindowThreadProcessId(
5813 HWND hWnd,
5814 LPDWORD lpdwProcessId);
5815
5816 // #if(_WIN32_WINNT >= 0x0501)
5817 extern(Windows) export BOOL IsGUIThread(
5818 BOOL bConvert);
5819
5820 // #endif /* _WIN32_WINNT >= 0x0501 */
5821
5822 // #define GetWindowTask(hWnd) ((HANDLE)(DWORD_PTR)GetWindowThreadProcessId(hWnd, NULL))
5823
5824 extern(Windows) export HWND GetLastActivePopup(
5825 HWND hWnd);
5826
5827 enum : uint { GW_HWNDFIRST = 0 }
5828 enum : uint { GW_HWNDLAST = 1 }
5829 enum : uint { GW_HWNDNEXT = 2 }
5830 enum : uint { GW_HWNDPREV = 3 }
5831 enum : uint { GW_OWNER = 4 }
5832 enum : uint { GW_CHILD = 5 }
5833 // #if(WINVER <= 0x0400)
5834 // #...
5835 // #else
5836 enum : uint { GW_ENABLEDPOPUP = 6 }
5837 enum : uint { GW_MAX = 6 }
5838 // #endif
5839
5840 extern(Windows) export HWND GetWindow(
5841 HWND hWnd,
5842 UINT uCmd);
5843
5844 // #ifndef NOWH
5845
5846 // #ifdef STRICT
5847
5848 extern(Windows) export HHOOK SetWindowsHookA(
5849 int nFilterType,
5850 HOOKPROC pfnFilterProc);
5851 extern(Windows) export HHOOK SetWindowsHookW(
5852 int nFilterType,
5853 HOOKPROC pfnFilterProc);
5854 // #ifdef UNICODE
5855 alias SetWindowsHookW SetWindowsHook;
5856 // #else
5857 // #...
5858 // #endif // !UNICODE
5859
5860 // #else /* !STRICT */
5861
5862 // ...
5863 // #ifdef UNICODE
5864 // #...
5865 // #else
5866 // #...
5867 // #endif // !UNICODE
5868
5869 // #endif /* !STRICT */
5870
5871 extern(Windows) export BOOL UnhookWindowsHook(
5872 int nCode,
5873 HOOKPROC pfnFilterProc);
5874
5875 extern(Windows) export HHOOK SetWindowsHookExA(
5876 int idHook,
5877 HOOKPROC lpfn,
5878 HINSTANCE hmod,
5879 DWORD dwThreadId);
5880 extern(Windows) export HHOOK SetWindowsHookExW(
5881 int idHook,
5882 HOOKPROC lpfn,
5883 HINSTANCE hmod,
5884 DWORD dwThreadId);
5885 // #ifdef UNICODE
5886 alias SetWindowsHookExW SetWindowsHookEx;
5887 // #else
5888 // #...
5889 // #endif // !UNICODE
5890
5891 extern(Windows) export BOOL UnhookWindowsHookEx(
5892 HHOOK hhk);
5893
5894 extern(Windows) export LRESULT CallNextHookEx(
5895 HHOOK hhk,
5896 int nCode,
5897 WPARAM wParam,
5898 LPARAM lParam);
5899
5900 // #ifdef STRICT
5901 // #define DefHookProc(nCode, wParam, lParam, phhk) CallNextHookEx(*phhk, nCode, wParam, lParam)
5902 // #else
5903 // #...
5904 // ...
5905 // #endif /* STRICT */
5906 // #endif /* !NOWH */
5907
5908 // #ifndef NOMENUS
5909
5910 enum : uint { MF_INSERT = 0x00000000 }
5911 enum : uint { MF_CHANGE = 0x00000080 }
5912 enum : uint { MF_APPEND = 0x00000100 }
5913 enum : uint { MF_DELETE = 0x00000200 }
5914 enum : uint { MF_REMOVE = 0x00001000 }
5915
5916 enum : uint { MF_BYCOMMAND = 0x00000000 }
5917 enum : uint { MF_BYPOSITION = 0x00000400 }
5918
5919 enum : uint { MF_SEPARATOR = 0x00000800 }
5920
5921 enum : uint { MF_ENABLED = 0x00000000 }
5922 enum : uint { MF_GRAYED = 0x00000001 }
5923 enum : uint { MF_DISABLED = 0x00000002 }
5924
5925 enum : uint { MF_UNCHECKED = 0x00000000 }
5926 enum : uint { MF_CHECKED = 0x00000008 }
5927 enum : uint { MF_USECHECKBITMAPS = 0x00000200 }
5928
5929 enum : uint { MF_STRING = 0x00000000 }
5930 enum : uint { MF_BITMAP = 0x00000004 }
5931 enum : uint { MF_OWNERDRAW = 0x00000100 }
5932
5933 enum : uint { MF_POPUP = 0x00000010 }
5934 enum : uint { MF_MENUBARBREAK = 0x00000020 }
5935 enum : uint { MF_MENUBREAK = 0x00000040 }
5936
5937 enum : uint { MF_UNHILITE = 0x00000000 }
5938 enum : uint { MF_HILITE = 0x00000080 }
5939
5940 // #if(WINVER >= 0x0400)
5941 enum : uint { MF_DEFAULT = 0x00001000 }
5942 // #endif /* WINVER >= 0x0400 */
5943 enum : uint { MF_SYSMENU = 0x00002000 }
5944 enum : uint { MF_HELP = 0x00004000 }
5945 // #if(WINVER >= 0x0400)
5946 enum : uint { MF_RIGHTJUSTIFY = 0x00004000 }
5947 // #endif /* WINVER >= 0x0400 */
5948
5949 enum : uint { MF_MOUSESELECT = 0x00008000 }
5950 // #if(WINVER >= 0x0400)
5951 enum : uint { MF_END = 0x00000080 }
5952 // #endif /* WINVER >= 0x0400 */
5953
5954 // #if(WINVER >= 0x0400)
5955 alias MF_STRING MFT_STRING;
5956 alias MF_BITMAP MFT_BITMAP;
5957 alias MF_MENUBARBREAK MFT_MENUBARBREAK;
5958 alias MF_MENUBREAK MFT_MENUBREAK;
5959 alias MF_OWNERDRAW MFT_OWNERDRAW;
5960 enum : uint { MFT_RADIOCHECK = 0x00000200 }
5961 alias MF_SEPARATOR MFT_SEPARATOR;
5962 enum : uint { MFT_RIGHTORDER = 0x00002000 }
5963 alias MF_RIGHTJUSTIFY MFT_RIGHTJUSTIFY;
5964
5965 enum : uint { MFS_GRAYED = 0x00000003 }
5966 alias MFS_GRAYED MFS_DISABLED;
5967 alias MF_CHECKED MFS_CHECKED;
5968 alias MF_HILITE MFS_HILITE;
5969 alias MF_ENABLED MFS_ENABLED;
5970 alias MF_UNCHECKED MFS_UNCHECKED;
5971 alias MF_UNHILITE MFS_UNHILITE;
5972 alias MF_DEFAULT MFS_DEFAULT;
5973 // #endif /* WINVER >= 0x0400 */
5974
5975 // #if(WINVER >= 0x0400)
5976
5977 extern(Windows) export BOOL CheckMenuRadioItem(
5978 HMENU,
5979 UINT,
5980 UINT,
5981 UINT,
5982 UINT);
5983 // #endif /* WINVER >= 0x0400 */
5984
5985 struct _4 {
5986 WORD versionNumber;
5987 WORD offset;
5988 }
5989 alias _4 MENUITEMTEMPLATEHEADER;
5990 alias _4* PMENUITEMTEMPLATEHEADER;
5991
5992 struct _5 {
5993 WORD mtOption;
5994 WORD mtID;
5995 WCHAR mtString[1];
5996 }
5997 alias _5 MENUITEMTEMPLATE;
5998 alias _5* PMENUITEMTEMPLATE;
5999
6000 // skip #define MF_END 0x00000080L
6001
6002 // #endif /* !NOMENUS */
6003
6004 // #ifndef NOSYSCOMMANDS
6005
6006 enum : uint { SC_SIZE = 0xF000 }
6007 enum : uint { SC_MOVE = 0xF010 }
6008 enum : uint { SC_MINIMIZE = 0xF020 }
6009 enum : uint { SC_MAXIMIZE = 0xF030 }
6010 enum : uint { SC_NEXTWINDOW = 0xF040 }
6011 enum : uint { SC_PREVWINDOW = 0xF050 }
6012 enum : uint { SC_CLOSE = 0xF060 }
6013 enum : uint { SC_VSCROLL = 0xF070 }
6014 enum : uint { SC_HSCROLL = 0xF080 }
6015 enum : uint { SC_MOUSEMENU = 0xF090 }
6016 enum : uint { SC_KEYMENU = 0xF100 }
6017 enum : uint { SC_ARRANGE = 0xF110 }
6018 enum : uint { SC_RESTORE = 0xF120 }
6019 enum : uint { SC_TASKLIST = 0xF130 }
6020 enum : uint { SC_SCREENSAVE = 0xF140 }
6021 enum : uint { SC_HOTKEY = 0xF150 }
6022 // #if(WINVER >= 0x0400)
6023 enum : uint { SC_DEFAULT = 0xF160 }
6024 enum : uint { SC_MONITORPOWER = 0xF170 }
6025 enum : uint { SC_CONTEXTHELP = 0xF180 }
6026 enum : uint { SC_SEPARATOR = 0xF00F }
6027 // #endif /* WINVER >= 0x0400 */
6028
6029 alias SC_MINIMIZE SC_ICON;
6030 alias SC_MAXIMIZE SC_ZOOM;
6031
6032 // #endif /* !NOSYSCOMMANDS */
6033
6034 extern(Windows) export HBITMAP LoadBitmapA(
6035 HINSTANCE hInstance,
6036 LPCSTR lpBitmapName);
6037 extern(Windows) export HBITMAP LoadBitmapW(
6038 HINSTANCE hInstance,
6039 LPCWSTR lpBitmapName);
6040 // #ifdef UNICODE
6041 alias LoadBitmapW LoadBitmap;
6042 // #else
6043 // #...
6044 // #endif // !UNICODE
6045
6046 extern(Windows) export HCURSOR LoadCursorA(
6047 HINSTANCE hInstance,
6048 LPCSTR lpCursorName);
6049 extern(Windows) export HCURSOR LoadCursorW(
6050 HINSTANCE hInstance,
6051 LPCWSTR lpCursorName);
6052 // #ifdef UNICODE
6053 alias LoadCursorW LoadCursor;
6054 // #else
6055 // #...
6056 // #endif // !UNICODE
6057
6058 extern(Windows) export HCURSOR LoadCursorFromFileA(
6059 LPCSTR lpFileName);
6060 extern(Windows) export HCURSOR LoadCursorFromFileW(
6061 LPCWSTR lpFileName);
6062 // #ifdef UNICODE
6063 alias LoadCursorFromFileW LoadCursorFromFile;
6064 // #else
6065 // #...
6066 // #endif // !UNICODE
6067
6068 extern(Windows) export HCURSOR CreateCursor(
6069 HINSTANCE hInst,
6070 int xHotSpot,
6071 int yHotSpot,
6072 int nWidth,
6073 int nHeight,
6074 VOID *pvANDPlane,
6075 VOID *pvXORPlane);
6076
6077 extern(Windows) export BOOL DestroyCursor(
6078 HCURSOR hCursor);
6079
6080 // #ifndef _MAC
6081 alias CopyIcon CopyCursor;
6082 // #else
6083 // ...
6084 // #endif
6085
6086 const LPTSTR IDC_ARROW = cast(LPTSTR)(32512);
6087 const LPTSTR IDC_IBEAM = cast(LPTSTR)(32513);
6088 const LPTSTR IDC_WAIT = cast(LPTSTR)(32514);
6089 const LPTSTR IDC_CROSS = cast(LPTSTR)(32515);
6090 const LPTSTR IDC_UPARROW = cast(LPTSTR)(32516);
6091 const LPTSTR IDC_SIZE = cast(LPTSTR)(32640);
6092 const LPTSTR IDC_ICON = cast(LPTSTR)(32641);
6093 const LPTSTR IDC_SIZENWSE = cast(LPTSTR)(32642);
6094 const LPTSTR IDC_SIZENESW = cast(LPTSTR)(32643);
6095 const LPTSTR IDC_SIZEWE = cast(LPTSTR)(32644);
6096 const LPTSTR IDC_SIZENS = cast(LPTSTR)(32645);
6097 const LPTSTR IDC_SIZEALL = cast(LPTSTR)(32646);
6098 const LPTSTR IDC_NO = cast(LPTSTR)(32648);
6099 // #if(WINVER >= 0x0500)
6100 const LPTSTR IDC_HAND = cast(LPTSTR)(32649);
6101 // #endif /* WINVER >= 0x0500 */
6102 const LPTSTR IDC_APPSTARTING = cast(LPTSTR)(32650);
6103 // #if(WINVER >= 0x0400)
6104 const LPTSTR IDC_HELP = cast(LPTSTR)(32651);
6105 // #endif /* WINVER >= 0x0400 */
6106
6107 extern(Windows) export BOOL SetSystemCursor(
6108 HCURSOR hcur,
6109 DWORD id);
6110
6111 struct _ICONINFO {
6112 BOOL fIcon;
6113 DWORD xHotspot;
6114 DWORD yHotspot;
6115 HBITMAP hbmMask;
6116 HBITMAP hbmColor;
6117 }
6118 alias _ICONINFO ICONINFO;
6119
6120 alias ICONINFO* PICONINFO;
6121
6122 extern(Windows) export HICON LoadIconA(
6123 HINSTANCE hInstance,
6124 LPCSTR lpIconName);
6125 extern(Windows) export HICON LoadIconW(
6126 HINSTANCE hInstance,
6127 LPCWSTR lpIconName);
6128 // #ifdef UNICODE
6129 alias LoadIconW LoadIcon;
6130 // #else
6131 // #...
6132 // #endif // !UNICODE
6133
6134 extern(Windows) export HICON CreateIcon(
6135 HINSTANCE hInstance,
6136 int nWidth,
6137 int nHeight,
6138 BYTE cPlanes,
6139 BYTE cBitsPixel,
6140 BYTE *lpbANDbits,
6141 BYTE *lpbXORbits);
6142
6143 extern(Windows) export BOOL DestroyIcon(
6144 HICON hIcon);
6145
6146 extern(Windows) export int LookupIconIdFromDirectory(
6147 PBYTE presbits,
6148 BOOL fIcon);
6149
6150 // #if(WINVER >= 0x0400)
6151 extern(Windows) export int LookupIconIdFromDirectoryEx(
6152 PBYTE presbits,
6153 BOOL fIcon,
6154 int cxDesired,
6155 int cyDesired,
6156 UINT Flags);
6157 // #endif /* WINVER >= 0x0400 */
6158
6159 extern(Windows) export HICON CreateIconFromResource(
6160 PBYTE presbits,
6161 DWORD dwResSize,
6162 BOOL fIcon,
6163 DWORD dwVer);
6164
6165 // #if(WINVER >= 0x0400)
6166 extern(Windows) export HICON CreateIconFromResourceEx(
6167 PBYTE presbits,
6168 DWORD dwResSize,
6169 BOOL fIcon,
6170 DWORD dwVer,
6171 int cxDesired,
6172 int cyDesired,
6173 UINT Flags);
6174
6175 struct tagCURSORSHAPE {
6176 int xHotSpot;
6177 int yHotSpot;
6178 int cx;
6179 int cy;
6180 int cbWidth;
6181 BYTE Planes;
6182 BYTE BitsPixel;
6183 }
6184 alias tagCURSORSHAPE CURSORSHAPE;
6185 alias tagCURSORSHAPE* LPCURSORSHAPE;
6186
6187 // #endif /* WINVER >= 0x0400 */
6188
6189 enum : uint { IMAGE_BITMAP = 0 }
6190 enum : uint { IMAGE_ICON = 1 }
6191 enum : uint { IMAGE_CURSOR = 2 }
6192 // #if(WINVER >= 0x0400)
6193 enum : uint { IMAGE_ENHMETAFILE = 3 }
6194
6195 enum : uint { LR_DEFAULTCOLOR = 0x0000 }
6196 enum : uint { LR_MONOCHROME = 0x0001 }
6197 enum : uint { LR_COLOR = 0x0002 }
6198 enum : uint { LR_COPYRETURNORG = 0x0004 }
6199 enum : uint { LR_COPYDELETEORG = 0x0008 }
6200 enum : uint { LR_LOADFROMFILE = 0x0010 }
6201 enum : uint { LR_LOADTRANSPARENT = 0x0020 }
6202 enum : uint { LR_DEFAULTSIZE = 0x0040 }
6203 enum : uint { LR_VGACOLOR = 0x0080 }
6204 enum : uint { LR_LOADMAP3DCOLORS = 0x1000 }
6205 enum : uint { LR_CREATEDIBSECTION = 0x2000 }
6206 enum : uint { LR_COPYFROMRESOURCE = 0x4000 }
6207 enum : uint { LR_SHARED = 0x8000 }
6208
6209 extern(Windows) export HANDLE LoadImageA(
6210 HINSTANCE,
6211 LPCSTR,
6212 UINT,
6213 int,
6214 int,
6215 UINT);
6216 extern(Windows) export HANDLE LoadImageW(
6217 HINSTANCE,
6218 LPCWSTR,
6219 UINT,
6220 int,
6221 int,
6222 UINT);
6223 // #ifdef UNICODE
6224 alias LoadImageW LoadImage;
6225 // #else
6226 // #...
6227 // #endif // !UNICODE
6228
6229 extern(Windows) export HANDLE CopyImage(
6230 HANDLE,
6231 UINT,
6232 int,
6233 int,
6234 UINT);
6235
6236 enum : uint { DI_MASK = 0x0001 }
6237 enum : uint { DI_IMAGE = 0x0002 }
6238 enum : uint { DI_NORMAL = 0x0003 }
6239 enum : uint { DI_COMPAT = 0x0004 }
6240 enum : uint { DI_DEFAULTSIZE = 0x0008 }
6241 // #if(_WIN32_WINNT >= 0x0501)
6242 enum : uint { DI_NOMIRROR = 0x0010 }
6243 // #endif /* _WIN32_WINNT >= 0x0501 */
6244
6245 extern(Windows) export BOOL DrawIconEx(HDC hdc, int xLeft, int yTop,
6246 HICON hIcon, int cxWidth, int cyWidth,
6247 UINT istepIfAniCur, HBRUSH hbrFlickerFreeDraw, UINT diFlags);
6248 // #endif /* WINVER >= 0x0400 */
6249
6250 extern(Windows) export HICON CreateIconIndirect(
6251 PICONINFO piconinfo);
6252
6253 extern(Windows) export HICON CopyIcon(
6254 HICON hIcon);
6255
6256 extern(Windows) export BOOL GetIconInfo(
6257 HICON hIcon,
6258 PICONINFO piconinfo);
6259
6260 // #if(WINVER >= 0x0400)
6261 enum : uint { RES_ICON = 1 }
6262 enum : uint { RES_CURSOR = 2 }
6263 // #endif /* WINVER >= 0x0400 */
6264
6265 // #ifdef OEMRESOURCE
6266
6267 // #...
6268 // #...
6269 // #...
6270 // #...
6271 // #...
6272 // #...
6273 // #...
6274 // #...
6275 // #...
6276 // #...
6277 // #...
6278 // #...
6279 // #...
6280 // #...
6281 // #...
6282 // #...
6283 // #...
6284 // #...
6285 // #...
6286 // #...
6287 // #...
6288
6289 // #...
6290 // #...
6291 // #...
6292 // #...
6293 // #...
6294 // #...
6295 // #...
6296 // #...
6297 // #...
6298 // #...
6299 // #...
6300 // #...
6301 // #...
6302
6303 // #...
6304 // #...
6305 // #...
6306 // #...
6307 // #...
6308 // #...
6309 // #...
6310 // #...
6311 // #...
6312 // #...
6313 // #...
6314 // #...
6315 // #...
6316 // #...
6317 // #if(WINVER >= 0x0500)
6318 // #...
6319 // #endif /* WINVER >= 0x0500 */
6320 // #if(WINVER >= 0x0400)
6321 // #...
6322 // #endif /* WINVER >= 0x0400 */
6323
6324 // #...
6325 // #...
6326 // #...
6327 // #...
6328 // #...
6329 // #if(WINVER >= 0x0400)
6330 // #...
6331 // #...
6332 // #...
6333 // #...
6334 // #endif /* WINVER >= 0x0400 */
6335
6336 // #endif /* OEMRESOURCE */
6337
6338 enum : uint { ORD_LANGDRIVER = 1 }
6339
6340 // #ifndef NOICONS
6341
6342 // #ifdef RC_INVOKED
6343 // #...
6344 // #...
6345 // #...
6346 // #...
6347 // #...
6348 // #if(WINVER >= 0x0400)
6349 // #...
6350 // #endif /* WINVER >= 0x0400 */
6351 // #else
6352 const LPTSTR IDI_APPLICATION = cast(LPTSTR)(32512);
6353 const LPTSTR IDI_HAND = cast(LPTSTR)(32513);
6354 const LPTSTR IDI_QUESTION = cast(LPTSTR)(32514);
6355 const LPTSTR IDI_EXCLAMATION = cast(LPTSTR)(32515);
6356 const LPTSTR IDI_ASTERISK = cast(LPTSTR)(32516);
6357 // #if(WINVER >= 0x0400)
6358 const LPTSTR IDI_WINLOGO = cast(LPTSTR)(32517);
6359 // #endif /* WINVER >= 0x0400 */
6360 // #endif /* RC_INVOKED */
6361
6362 // #if(WINVER >= 0x0400)
6363 alias IDI_EXCLAMATION IDI_WARNING;
6364 alias IDI_HAND IDI_ERROR;
6365 alias IDI_ASTERISK IDI_INFORMATION;
6366 // #endif /* WINVER >= 0x0400 */
6367
6368 // #endif /* !NOICONS */
6369
6370 extern(Windows) export int LoadStringA(
6371 HINSTANCE hInstance,
6372 UINT uID,
6373 LPSTR lpBuffer,
6374 int nBufferMax);
6375 extern(Windows) export int LoadStringW(
6376 HINSTANCE hInstance,
6377 UINT uID,
6378 LPWSTR lpBuffer,
6379 int nBufferMax);
6380 // #ifdef UNICODE
6381 alias LoadStringW LoadString;
6382 // #else
6383 // #...
6384 // #endif // !UNICODE
6385
6386 enum : uint { IDOK = 1 }
6387 enum : uint { IDCANCEL = 2 }
6388 enum : uint { IDABORT = 3 }
6389 enum : uint { IDRETRY = 4 }
6390 enum : uint { IDIGNORE = 5 }
6391 enum : uint { IDYES = 6 }
6392 enum : uint { IDNO = 7 }
6393 // #if(WINVER >= 0x0400)
6394 enum : uint { IDCLOSE = 8 }
6395 enum : uint { IDHELP = 9 }
6396 // #endif /* WINVER >= 0x0400 */
6397
6398 // #if(WINVER >= 0x0500)
6399 enum : uint { IDTRYAGAIN = 10 }
6400 enum : uint { IDCONTINUE = 11 }
6401 // #endif /* WINVER >= 0x0500 */
6402
6403 // #if(WINVER >= 0x0501)
6404 // #ifndef IDTIMEOUT
6405 enum : uint { IDTIMEOUT = 32000 }
6406 // #endif
6407 // #endif /* WINVER >= 0x0501 */
6408
6409 // #ifndef NOCTLMGR
6410
6411 // #ifndef NOWINSTYLES
6412
6413 enum : uint { ES_LEFT = 0x0000 }
6414 enum : uint { ES_CENTER = 0x0001 }
6415 enum : uint { ES_RIGHT = 0x0002 }
6416 enum : uint { ES_MULTILINE = 0x0004 }
6417 enum : uint { ES_UPPERCASE = 0x0008 }
6418 enum : uint { ES_LOWERCASE = 0x0010 }
6419 enum : uint { ES_PASSWORD = 0x0020 }
6420 enum : uint { ES_AUTOVSCROLL = 0x0040 }
6421 enum : uint { ES_AUTOHSCROLL = 0x0080 }
6422 enum : uint { ES_NOHIDESEL = 0x0100 }
6423 enum : uint { ES_OEMCONVERT = 0x0400 }
6424 enum : uint { ES_READONLY = 0x0800 }
6425 enum : uint { ES_WANTRETURN = 0x1000 }
6426 // #if(WINVER >= 0x0400)
6427 enum : uint { ES_NUMBER = 0x2000 }
6428 // #endif /* WINVER >= 0x0400 */
6429
6430 // #endif /* !NOWINSTYLES */
6431
6432 enum : uint { EN_SETFOCUS = 0x0100 }
6433 enum : uint { EN_KILLFOCUS = 0x0200 }
6434 enum : uint { EN_CHANGE = 0x0300 }
6435 enum : uint { EN_UPDATE = 0x0400 }
6436 enum : uint { EN_ERRSPACE = 0x0500 }
6437 enum : uint { EN_MAXTEXT = 0x0501 }
6438 enum : uint { EN_HSCROLL = 0x0601 }
6439 enum : uint { EN_VSCROLL = 0x0602 }
6440
6441 // #if(_WIN32_WINNT >= 0x0500)
6442 enum : uint { EN_ALIGN_LTR_EC = 0x0700 }
6443 enum : uint { EN_ALIGN_RTL_EC = 0x0701 }
6444 // #endif /* _WIN32_WINNT >= 0x0500 */
6445
6446 // #if(WINVER >= 0x0400)
6447
6448 enum : uint { EC_LEFTMARGIN = 0x0001 }
6449 enum : uint { EC_RIGHTMARGIN = 0x0002 }
6450 enum : uint { EC_USEFONTINFO = 0xffff }
6451 // #endif /* WINVER >= 0x0400 */
6452
6453 // #if(WINVER >= 0x0500)
6454
6455 enum : uint { EMSIS_COMPOSITIONSTRING = 0x0001 }
6456
6457 enum : uint { EIMES_GETCOMPSTRATONCE = 0x0001 }
6458 enum : uint { EIMES_CANCELCOMPSTRINFOCUS = 0x0002 }
6459 enum : uint { EIMES_COMPLETECOMPSTRKILLFOCUS = 0x0004 }
6460 // #endif /* WINVER >= 0x0500 */
6461
6462 // #ifndef NOWINMESSAGES
6463
6464 enum : uint { EM_GETSEL = 0x00B0 }
6465 enum : uint { EM_SETSEL = 0x00B1 }
6466 enum : uint { EM_GETRECT = 0x00B2 }
6467 enum : uint { EM_SETRECT = 0x00B3 }
6468 enum : uint { EM_SETRECTNP = 0x00B4 }
6469 enum : uint { EM_SCROLL = 0x00B5 }
6470 enum : uint { EM_LINESCROLL = 0x00B6 }
6471 enum : uint { EM_SCROLLCARET = 0x00B7 }
6472 enum : uint { EM_GETMODIFY = 0x00B8 }
6473 enum : uint { EM_SETMODIFY = 0x00B9 }
6474 enum : uint { EM_GETLINECOUNT = 0x00BA }
6475 enum : uint { EM_LINEINDEX = 0x00BB }
6476 enum : uint { EM_SETHANDLE = 0x00BC }
6477 enum : uint { EM_GETHANDLE = 0x00BD }
6478 enum : uint { EM_GETTHUMB = 0x00BE }
6479 enum : uint { EM_LINELENGTH = 0x00C1 }
6480 enum : uint { EM_REPLACESEL = 0x00C2 }
6481 enum : uint { EM_GETLINE = 0x00C4 }
6482 enum : uint { EM_LIMITTEXT = 0x00C5 }
6483 enum : uint { EM_CANUNDO = 0x00C6 }
6484 enum : uint { EM_UNDO = 0x00C7 }
6485 enum : uint { EM_FMTLINES = 0x00C8 }
6486 enum : uint { EM_LINEFROMCHAR = 0x00C9 }
6487 enum : uint { EM_SETTABSTOPS = 0x00CB }
6488 enum : uint { EM_SETPASSWORDCHAR = 0x00CC }
6489 enum : uint { EM_EMPTYUNDOBUFFER = 0x00CD }
6490 enum : uint { EM_GETFIRSTVISIBLELINE = 0x00CE }
6491 enum : uint { EM_SETREADONLY = 0x00CF }
6492 enum : uint { EM_SETWORDBREAKPROC = 0x00D0 }
6493 enum : uint { EM_GETWORDBREAKPROC = 0x00D1 }
6494 enum : uint { EM_GETPASSWORDCHAR = 0x00D2 }
6495 // #if(WINVER >= 0x0400)
6496 enum : uint { EM_SETMARGINS = 0x00D3 }
6497 enum : uint { EM_GETMARGINS = 0x00D4 }
6498 alias EM_LIMITTEXT EM_SETLIMITTEXT;
6499 enum : uint { EM_GETLIMITTEXT = 0x00D5 }
6500 enum : uint { EM_POSFROMCHAR = 0x00D6 }
6501 enum : uint { EM_CHARFROMPOS = 0x00D7 }
6502 // #endif /* WINVER >= 0x0400 */
6503
6504 // #if(WINVER >= 0x0500)
6505 enum : uint { EM_SETIMESTATUS = 0x00D8 }
6506 enum : uint { EM_GETIMESTATUS = 0x00D9 }
6507 // #endif /* WINVER >= 0x0500 */
6508
6509 // #endif /* !NOWINMESSAGES */
6510
6511 enum : uint { WB_LEFT = 0 }
6512 enum : uint { WB_RIGHT = 1 }
6513 enum : uint { WB_ISDELIMITER = 2 }
6514
6515 enum : uint { BS_PUSHBUTTON = 0x00000000 }
6516 enum : uint { BS_DEFPUSHBUTTON = 0x00000001 }
6517 enum : uint { BS_CHECKBOX = 0x00000002 }
6518 enum : uint { BS_AUTOCHECKBOX = 0x00000003 }
6519 enum : uint { BS_RADIOBUTTON = 0x00000004 }
6520 enum : uint { BS_3STATE = 0x00000005 }
6521 enum : uint { BS_AUTO3STATE = 0x00000006 }
6522 enum : uint { BS_GROUPBOX = 0x00000007 }
6523 enum : uint { BS_USERBUTTON = 0x00000008 }
6524 enum : uint { BS_AUTORADIOBUTTON = 0x00000009 }
6525 enum : uint { BS_OWNERDRAW = 0x0000000B }
6526 enum : uint { BS_LEFTTEXT = 0x00000020 }
6527 // #if(WINVER >= 0x0400)
6528 enum : uint { BS_TEXT = 0x00000000 }
6529 enum : uint { BS_ICON = 0x00000040 }
6530 enum : uint { BS_BITMAP = 0x00000080 }
6531 enum : uint { BS_LEFT = 0x00000100 }
6532 enum : uint { BS_RIGHT = 0x00000200 }
6533 enum : uint { BS_CENTER = 0x00000300 }
6534 enum : uint { BS_TOP = 0x00000400 }
6535 enum : uint { BS_BOTTOM = 0x00000800 }
6536 enum : uint { BS_VCENTER = 0x00000C00 }
6537 enum : uint { BS_PUSHLIKE = 0x00001000 }
6538 enum : uint { BS_MULTILINE = 0x00002000 }
6539 enum : uint { BS_NOTIFY = 0x00004000 }
6540 enum : uint { BS_FLAT = 0x00008000 }
6541 alias BS_LEFTTEXT BS_RIGHTBUTTON;
6542 // #endif /* WINVER >= 0x0400 */
6543
6544 enum : uint { BN_CLICKED = 0 }
6545 enum : uint { BN_PAINT = 1 }
6546 enum : uint { BN_HILITE = 2 }
6547 enum : uint { BN_UNHILITE = 3 }
6548 enum : uint { BN_DISABLE = 4 }
6549 enum : uint { BN_DOUBLECLICKED = 5 }
6550 // #if(WINVER >= 0x0400)
6551 alias BN_HILITE BN_PUSHED;
6552 alias BN_UNHILITE BN_UNPUSHED;
6553 alias BN_DOUBLECLICKED BN_DBLCLK;
6554 enum : uint { BN_SETFOCUS = 6 }
6555 enum : uint { BN_KILLFOCUS = 7 }
6556 // #endif /* WINVER >= 0x0400 */
6557
6558 enum : uint { BM_GETCHECK = 0x00F0 }
6559 enum : uint { BM_SETCHECK = 0x00F1 }
6560 enum : uint { BM_GETSTATE = 0x00F2 }
6561 enum : uint { BM_SETSTATE = 0x00F3 }
6562 enum : uint { BM_SETSTYLE = 0x00F4 }
6563 // #if(WINVER >= 0x0400)
6564 enum : uint { BM_CLICK = 0x00F5 }
6565 enum : uint { BM_GETIMAGE = 0x00F6 }
6566 enum : uint { BM_SETIMAGE = 0x00F7 }
6567
6568 enum : uint { BST_UNCHECKED = 0x0000 }
6569 enum : uint { BST_CHECKED = 0x0001 }
6570 enum : uint { BST_INDETERMINATE = 0x0002 }
6571 enum : uint { BST_PUSHED = 0x0004 }
6572 enum : uint { BST_FOCUS = 0x0008 }
6573 // #endif /* WINVER >= 0x0400 */
6574
6575 enum : uint { SS_LEFT = 0x00000000 }
6576 enum : uint { SS_CENTER = 0x00000001 }
6577 enum : uint { SS_RIGHT = 0x00000002 }
6578 enum : uint { SS_ICON = 0x00000003 }
6579 enum : uint { SS_BLACKRECT = 0x00000004 }
6580 enum : uint { SS_GRAYRECT = 0x00000005 }
6581 enum : uint { SS_WHITERECT = 0x00000006 }
6582 enum : uint { SS_BLACKFRAME = 0x00000007 }
6583 enum : uint { SS_GRAYFRAME = 0x00000008 }
6584 enum : uint { SS_WHITEFRAME = 0x00000009 }
6585 enum : uint { SS_USERITEM = 0x0000000A }
6586 enum : uint { SS_SIMPLE = 0x0000000B }
6587 enum : uint { SS_LEFTNOWORDWRAP = 0x0000000C }
6588 // #if(WINVER >= 0x0400)
6589 enum : uint { SS_OWNERDRAW = 0x0000000D }
6590 enum : uint { SS_BITMAP = 0x0000000E }
6591 enum : uint { SS_ENHMETAFILE = 0x0000000F }
6592 enum : uint { SS_ETCHEDHORZ = 0x00000010 }
6593 enum : uint { SS_ETCHEDVERT = 0x00000011 }
6594 enum : uint { SS_ETCHEDFRAME = 0x00000012 }
6595 enum : uint { SS_TYPEMASK = 0x0000001F }
6596 // #endif /* WINVER >= 0x0400 */
6597 // #if(WINVER >= 0x0501)
6598 enum : uint { SS_REALSIZECONTROL = 0x00000040 }
6599 // #endif /* WINVER >= 0x0501 */
6600 enum : uint { SS_NOPREFIX = 0x00000080 }
6601 // #if(WINVER >= 0x0400)
6602 enum : uint { SS_NOTIFY = 0x00000100 }
6603 enum : uint { SS_CENTERIMAGE = 0x00000200 }
6604 enum : uint { SS_RIGHTJUST = 0x00000400 }
6605 enum : uint { SS_REALSIZEIMAGE = 0x00000800 }
6606 enum : uint { SS_SUNKEN = 0x00001000 }
6607 enum : uint { SS_ENDELLIPSIS = 0x00004000 }
6608 enum : uint { SS_PATHELLIPSIS = 0x00008000 }
6609 enum : uint { SS_WORDELLIPSIS = 0x0000C000 }
6610 enum : uint { SS_ELLIPSISMASK = 0x0000C000 }
6611 // #endif /* WINVER >= 0x0400 */
6612
6613 // #ifndef NOWINMESSAGES
6614
6615 enum : uint { STM_SETICON = 0x0170 }
6616 enum : uint { STM_GETICON = 0x0171 }
6617 // #if(WINVER >= 0x0400)
6618 enum : uint { STM_SETIMAGE = 0x0172 }
6619 enum : uint { STM_GETIMAGE = 0x0173 }
6620 enum : uint { STN_CLICKED = 0 }
6621 enum : uint { STN_DBLCLK = 1 }
6622 enum : uint { STN_ENABLE = 2 }
6623 enum : uint { STN_DISABLE = 3 }
6624 // #endif /* WINVER >= 0x0400 */
6625 enum : uint { STM_MSGMAX = 0x0174 }
6626 // #endif /* !NOWINMESSAGES */
6627
6628 const ATOM WC_DIALOG = cast(ATOM)0x8002;
6629
6630 enum : uint { DWL_MSGRESULT = 0 }
6631 enum : uint { DWL_DLGPROC = 4 }
6632 enum : uint { DWL_USER = 8 }
6633
6634 // #ifdef _WIN64
6635
6636 // #...
6637 // #...
6638 // #...
6639
6640 // #endif /* _WIN64 */
6641
6642 enum : uint { DWLP_MSGRESULT = 0 }
6643 enum : uint { DWLP_DLGPROC = DWLP_MSGRESULT + LRESULT.sizeof }
6644 enum : uint { DWLP_USER = DWLP_DLGPROC + DLGPROC.sizeof }
6645
6646 // #ifndef NOMSG
6647
6648 extern(Windows) export BOOL IsDialogMessageA(
6649 HWND hDlg,
6650 LPMSG lpMsg);
6651 extern(Windows) export BOOL IsDialogMessageW(
6652 HWND hDlg,
6653 LPMSG lpMsg);
6654 // #ifdef UNICODE
6655 alias IsDialogMessageW IsDialogMessage;
6656 // #else
6657 // #...
6658 // #endif // !UNICODE
6659
6660 // #endif /* !NOMSG */
6661
6662 extern(Windows) export BOOL MapDialogRect(
6663 HWND hDlg,
6664 LPRECT lpRect);
6665
6666 extern(Windows) export int DlgDirListA(
6667 HWND hDlg,
6668 LPSTR lpPathSpec,
6669 int nIDListBox,
6670 int nIDStaticPath,
6671 UINT uFileType);
6672 extern(Windows) export int DlgDirListW(
6673 HWND hDlg,
6674 LPWSTR lpPathSpec,
6675 int nIDListBox,
6676 int nIDStaticPath,
6677 UINT uFileType);
6678 // #ifdef UNICODE
6679 alias DlgDirListW DlgDirList;
6680 // #else
6681 // #...
6682 // #endif // !UNICODE
6683
6684 enum : uint { DDL_READWRITE = 0x0000 }
6685 enum : uint { DDL_READONLY = 0x0001 }
6686 enum : uint { DDL_HIDDEN = 0x0002 }
6687 enum : uint { DDL_SYSTEM = 0x0004 }
6688 enum : uint { DDL_DIRECTORY = 0x0010 }
6689 enum : uint { DDL_ARCHIVE = 0x0020 }
6690
6691 enum : uint { DDL_POSTMSGS = 0x2000 }
6692 enum : uint { DDL_DRIVES = 0x4000 }
6693 enum : uint { DDL_EXCLUSIVE = 0x8000 }
6694
6695 extern(Windows) export BOOL DlgDirSelectExA(
6696 HWND hDlg,
6697 LPSTR lpString,
6698 int nCount,
6699 int nIDListBox);
6700 extern(Windows) export BOOL DlgDirSelectExW(
6701 HWND hDlg,
6702 LPWSTR lpString,
6703 int nCount,
6704 int nIDListBox);
6705 // #ifdef UNICODE
6706 alias DlgDirSelectExW DlgDirSelectEx;
6707 // #else
6708 // #...
6709 // #endif // !UNICODE
6710
6711 extern(Windows) export int DlgDirListComboBoxA(
6712 HWND hDlg,
6713 LPSTR lpPathSpec,
6714 int nIDComboBox,
6715 int nIDStaticPath,
6716 UINT uFiletype);
6717 extern(Windows) export int DlgDirListComboBoxW(
6718 HWND hDlg,
6719 LPWSTR lpPathSpec,
6720 int nIDComboBox,
6721 int nIDStaticPath,
6722 UINT uFiletype);
6723 // #ifdef UNICODE
6724 alias DlgDirListComboBoxW DlgDirListComboBox;
6725 // #else
6726 // #...
6727 // #endif // !UNICODE
6728
6729 extern(Windows) export BOOL DlgDirSelectComboBoxExA(
6730 HWND hDlg,
6731 LPSTR lpString,
6732 int nCount,
6733 int nIDComboBox);
6734 extern(Windows) export BOOL DlgDirSelectComboBoxExW(
6735 HWND hDlg,
6736 LPWSTR lpString,
6737 int nCount,
6738 int nIDComboBox);
6739 // #ifdef UNICODE
6740 alias DlgDirSelectComboBoxExW DlgDirSelectComboBoxEx;
6741 // #else
6742 // #...
6743 // #endif // !UNICODE
6744
6745 enum : uint { DS_ABSALIGN = 0x01 }
6746 enum : uint { DS_SYSMODAL = 0x02 }
6747 enum : uint { DS_LOCALEDIT = 0x20 }
6748 enum : uint { DS_SETFONT = 0x40 }
6749 enum : uint { DS_MODALFRAME = 0x80 }
6750 enum : uint { DS_NOIDLEMSG = 0x100 }
6751 enum : uint { DS_SETFOREGROUND = 0x200 }
6752
6753 // #if(WINVER >= 0x0400)
6754 enum : uint { DS_3DLOOK = 0x0004 }
6755 enum : uint { DS_FIXEDSYS = 0x0008 }
6756 enum : uint { DS_NOFAILCREATE = 0x0010 }
6757 enum : uint { DS_CONTROL = 0x0400 }
6758 enum : uint { DS_CENTER = 0x0800 }
6759 enum : uint { DS_CENTERMOUSE = 0x1000 }
6760 enum : uint { DS_CONTEXTHELP = 0x2000 }
6761
6762 enum : uint { DS_SHELLFONT = DS_SETFONT | DS_FIXEDSYS }
6763 // #endif /* WINVER >= 0x0400 */
6764
6765 enum : uint { DM_GETDEFID = WM_USER+0 }
6766 enum : uint { DM_SETDEFID = WM_USER+1 }
6767
6768 // #if(WINVER >= 0x0400)
6769 enum : uint { DM_REPOSITION = WM_USER+2 }
6770 // #endif /* WINVER >= 0x0400 */
6771
6772 enum : uint { DC_HASDEFID = 0x534B }
6773
6774 enum : uint { DLGC_WANTARROWS = 0x0001 }
6775 enum : uint { DLGC_WANTTAB = 0x0002 }
6776 enum : uint { DLGC_WANTALLKEYS = 0x0004 }
6777 enum : uint { DLGC_WANTMESSAGE = 0x0004 }
6778 enum : uint { DLGC_HASSETSEL = 0x0008 }
6779 enum : uint { DLGC_DEFPUSHBUTTON = 0x0010 }
6780 enum : uint { DLGC_UNDEFPUSHBUTTON = 0x0020 }
6781 enum : uint { DLGC_RADIOBUTTON = 0x0040 }
6782 enum : uint { DLGC_WANTCHARS = 0x0080 }
6783 enum : uint { DLGC_STATIC = 0x0100 }
6784 enum : uint { DLGC_BUTTON = 0x2000 }
6785
6786 enum : uint { LB_CTLCODE = 0 }
6787
6788 enum : uint { LB_OKAY = 0 }
6789 enum { LB_ERR = -1 }
6790 enum { LB_ERRSPACE = -2 }
6791
6792 enum { LBN_ERRSPACE = -2 }
6793 enum : uint { LBN_SELCHANGE = 1 }
6794 enum : uint { LBN_DBLCLK = 2 }
6795 enum : uint { LBN_SELCANCEL = 3 }
6796 enum : uint { LBN_SETFOCUS = 4 }
6797 enum : uint { LBN_KILLFOCUS = 5 }
6798
6799 // #ifndef NOWINMESSAGES
6800
6801 enum : uint { LB_ADDSTRING = 0x0180 }
6802 enum : uint { LB_INSERTSTRING = 0x0181 }
6803 enum : uint { LB_DELETESTRING = 0x0182 }
6804 enum : uint { LB_SELITEMRANGEEX = 0x0183 }
6805 enum : uint { LB_RESETCONTENT = 0x0184 }
6806 enum : uint { LB_SETSEL = 0x0185 }
6807 enum : uint { LB_SETCURSEL = 0x0186 }
6808 enum : uint { LB_GETSEL = 0x0187 }
6809 enum : uint { LB_GETCURSEL = 0x0188 }
6810 enum : uint { LB_GETTEXT = 0x0189 }
6811 enum : uint { LB_GETTEXTLEN = 0x018A }
6812 enum : uint { LB_GETCOUNT = 0x018B }
6813 enum : uint { LB_SELECTSTRING = 0x018C }
6814 enum : uint { LB_DIR = 0x018D }
6815 enum : uint { LB_GETTOPINDEX = 0x018E }
6816 enum : uint { LB_FINDSTRING = 0x018F }
6817 enum : uint { LB_GETSELCOUNT = 0x0190 }
6818 enum : uint { LB_GETSELITEMS = 0x0191 }
6819 enum : uint { LB_SETTABSTOPS = 0x0192 }
6820 enum : uint { LB_GETHORIZONTALEXTENT = 0x0193 }
6821 enum : uint { LB_SETHORIZONTALEXTENT = 0x0194 }
6822 enum : uint { LB_SETCOLUMNWIDTH = 0x0195 }
6823 enum : uint { LB_ADDFILE = 0x0196 }
6824 enum : uint { LB_SETTOPINDEX = 0x0197 }
6825 enum : uint { LB_GETITEMRECT = 0x0198 }
6826 enum : uint { LB_GETITEMDATA = 0x0199 }
6827 enum : uint { LB_SETITEMDATA = 0x019A }
6828 enum : uint { LB_SELITEMRANGE = 0x019B }
6829 enum : uint { LB_SETANCHORINDEX = 0x019C }
6830 enum : uint { LB_GETANCHORINDEX = 0x019D }
6831 enum : uint { LB_SETCARETINDEX = 0x019E }
6832 enum : uint { LB_GETCARETINDEX = 0x019F }
6833 enum : uint { LB_SETITEMHEIGHT = 0x01A0 }
6834 enum : uint { LB_GETITEMHEIGHT = 0x01A1 }
6835 enum : uint { LB_FINDSTRINGEXACT = 0x01A2 }
6836 enum : uint { LB_SETLOCALE = 0x01A5 }
6837 enum : uint { LB_GETLOCALE = 0x01A6 }
6838 enum : uint { LB_SETCOUNT = 0x01A7 }
6839 // #if(WINVER >= 0x0400)
6840 enum : uint { LB_INITSTORAGE = 0x01A8 }
6841 enum : uint { LB_ITEMFROMPOINT = 0x01A9 }
6842 // #endif /* WINVER >= 0x0400 */
6843 // #if(_WIN32_WCE >= 0x0400)
6844 // #...
6845 // #endif
6846
6847 // #if(_WIN32_WINNT >= 0x0501)
6848 enum : uint { LB_GETLISTBOXINFO = 0x01B2 }
6849 // #endif /* _WIN32_WINNT >= 0x0501 */
6850
6851 // #if(_WIN32_WINNT >= 0x0501)
6852 enum : uint { LB_MSGMAX = 0x01B3 }
6853 // #elif(_WIN32_WCE >= 0x0400)
6854 // #...
6855 // #elif(WINVER >= 0x0400)
6856 // #...
6857 // #else
6858 // #...
6859 // #endif
6860
6861 // #endif /* !NOWINMESSAGES */
6862
6863 // #ifndef NOWINSTYLES
6864
6865 enum : uint { LBS_NOTIFY = 0x0001 }
6866 enum : uint { LBS_SORT = 0x0002 }
6867 enum : uint { LBS_NOREDRAW = 0x0004 }
6868 enum : uint { LBS_MULTIPLESEL = 0x0008 }
6869 enum : uint { LBS_OWNERDRAWFIXED = 0x0010 }
6870 enum : uint { LBS_OWNERDRAWVARIABLE = 0x0020 }
6871 enum : uint { LBS_HASSTRINGS = 0x0040 }
6872 enum : uint { LBS_USETABSTOPS = 0x0080 }
6873 enum : uint { LBS_NOINTEGRALHEIGHT = 0x0100 }
6874 enum : uint { LBS_MULTICOLUMN = 0x0200 }
6875 enum : uint { LBS_WANTKEYBOARDINPUT = 0x0400 }
6876 enum : uint { LBS_EXTENDEDSEL = 0x0800 }
6877 enum : uint { LBS_DISABLENOSCROLL = 0x1000 }
6878 enum : uint { LBS_NODATA = 0x2000 }
6879 // #if(WINVER >= 0x0400)
6880 enum : uint { LBS_NOSEL = 0x4000 }
6881 // #endif /* WINVER >= 0x0400 */
6882 enum : uint { LBS_STANDARD = LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER }
6883
6884 // #endif /* !NOWINSTYLES */
6885
6886 enum : uint { CB_OKAY = 0 }
6887 enum { CB_ERR = -1 }
6888 enum { CB_ERRSPACE = -2 }
6889
6890 enum { CBN_ERRSPACE = -1 }
6891 enum : uint { CBN_SELCHANGE = 1 }
6892 enum : uint { CBN_DBLCLK = 2 }
6893 enum : uint { CBN_SETFOCUS = 3 }
6894 enum : uint { CBN_KILLFOCUS = 4 }
6895 enum : uint { CBN_EDITCHANGE = 5 }
6896 enum : uint { CBN_EDITUPDATE = 6 }
6897 enum : uint { CBN_DROPDOWN = 7 }
6898 enum : uint { CBN_CLOSEUP = 8 }
6899 enum : uint { CBN_SELENDOK = 9 }
6900 enum : uint { CBN_SELENDCANCEL = 10 }
6901
6902 // #ifndef NOWINSTYLES
6903
6904 enum : uint { CBS_SIMPLE = 0x0001 }
6905 enum : uint { CBS_DROPDOWN = 0x0002 }
6906 enum : uint { CBS_DROPDOWNLIST = 0x0003 }
6907 enum : uint { CBS_OWNERDRAWFIXED = 0x0010 }
6908 enum : uint { CBS_OWNERDRAWVARIABLE = 0x0020 }
6909 enum : uint { CBS_AUTOHSCROLL = 0x0040 }
6910 enum : uint { CBS_OEMCONVERT = 0x0080 }
6911 enum : uint { CBS_SORT = 0x0100 }
6912 enum : uint { CBS_HASSTRINGS = 0x0200 }
6913 enum : uint { CBS_NOINTEGRALHEIGHT = 0x0400 }
6914 enum : uint { CBS_DISABLENOSCROLL = 0x0800 }
6915 // #if(WINVER >= 0x0400)
6916 enum : uint { CBS_UPPERCASE = 0x2000 }
6917 enum : uint { CBS_LOWERCASE = 0x4000 }
6918 // #endif /* WINVER >= 0x0400 */
6919
6920 // #endif /* !NOWINSTYLES */
6921
6922 // #ifndef NOWINMESSAGES
6923 enum : uint { CB_GETEDITSEL = 0x0140 }
6924 enum : uint { CB_LIMITTEXT = 0x0141 }
6925 enum : uint { CB_SETEDITSEL = 0x0142 }
6926 enum : uint { CB_ADDSTRING = 0x0143 }
6927 enum : uint { CB_DELETESTRING = 0x0144 }
6928 enum : uint { CB_DIR = 0x0145 }
6929 enum : uint { CB_GETCOUNT = 0x0146 }
6930 enum : uint { CB_GETCURSEL = 0x0147 }
6931 enum : uint { CB_GETLBTEXT = 0x0148 }
6932 enum : uint { CB_GETLBTEXTLEN = 0x0149 }
6933 enum : uint { CB_INSERTSTRING = 0x014A }
6934 enum : uint { CB_RESETCONTENT = 0x014B }
6935 enum : uint { CB_FINDSTRING = 0x014C }
6936 enum : uint { CB_SELECTSTRING = 0x014D }
6937 enum : uint { CB_SETCURSEL = 0x014E }
6938 enum : uint { CB_SHOWDROPDOWN = 0x014F }
6939 enum : uint { CB_GETITEMDATA = 0x0150 }
6940 enum : uint { CB_SETITEMDATA = 0x0151 }
6941 enum : uint { CB_GETDROPPEDCONTROLRECT = 0x0152 }
6942 enum : uint { CB_SETITEMHEIGHT = 0x0153 }
6943 enum : uint { CB_GETITEMHEIGHT = 0x0154 }
6944 enum : uint { CB_SETEXTENDEDUI = 0x0155 }
6945 enum : uint { CB_GETEXTENDEDUI = 0x0156 }
6946 enum : uint { CB_GETDROPPEDSTATE = 0x0157 }
6947 enum : uint { CB_FINDSTRINGEXACT = 0x0158 }
6948 enum : uint { CB_SETLOCALE = 0x0159 }
6949 enum : uint { CB_GETLOCALE = 0x015A }
6950 // #if(WINVER >= 0x0400)
6951 enum : uint { CB_GETTOPINDEX = 0x015b }
6952 enum : uint { CB_SETTOPINDEX = 0x015c }
6953 enum : uint { CB_GETHORIZONTALEXTENT = 0x015d }
6954 enum : uint { CB_SETHORIZONTALEXTENT = 0x015e }
6955 enum : uint { CB_GETDROPPEDWIDTH = 0x015f }
6956 enum : uint { CB_SETDROPPEDWIDTH = 0x0160 }
6957 enum : uint { CB_INITSTORAGE = 0x0161 }
6958 // #if(_WIN32_WCE >= 0x0400)
6959 // #...
6960 // #endif
6961 // #endif /* WINVER >= 0x0400 */
6962
6963 // #if(_WIN32_WINNT >= 0x0501)
6964 enum : uint { CB_GETCOMBOBOXINFO = 0x0164 }
6965 // #endif /* _WIN32_WINNT >= 0x0501 */
6966
6967 // #if(_WIN32_WINNT >= 0x0501)
6968 enum : uint { CB_MSGMAX = 0x0165 }
6969 // #elif(_WIN32_WCE >= 0x0400)
6970 // #...
6971 // #elif(WINVER >= 0x0400)
6972 // #...
6973 // #else
6974 // #...
6975 // #endif
6976 // #endif /* !NOWINMESSAGES */
6977
6978 // #ifndef NOWINSTYLES
6979
6980 enum : uint { SBS_HORZ = 0x0000 }
6981 enum : uint { SBS_VERT = 0x0001 }
6982 enum : uint { SBS_TOPALIGN = 0x0002 }
6983 enum : uint { SBS_LEFTALIGN = 0x0002 }
6984 enum : uint { SBS_BOTTOMALIGN = 0x0004 }
6985 enum : uint { SBS_RIGHTALIGN = 0x0004 }
6986 enum : uint { SBS_SIZEBOXTOPLEFTALIGN = 0x0002 }
6987 enum : uint { SBS_SIZEBOXBOTTOMRIGHTALIGN = 0x0004 }
6988 enum : uint { SBS_SIZEBOX = 0x0008 }
6989 // #if(WINVER >= 0x0400)
6990 enum : uint { SBS_SIZEGRIP = 0x0010 }
6991 // #endif /* WINVER >= 0x0400 */
6992
6993 // #endif /* !NOWINSTYLES */
6994
6995 // #ifndef NOWINMESSAGES
6996 enum : uint { SBM_SETPOS = 0x00E0 }
6997 enum : uint { SBM_GETPOS = 0x00E1 }
6998 enum : uint { SBM_SETRANGE = 0x00E2 }
6999 enum : uint { SBM_SETRANGEREDRAW = 0x00E6 }
7000 enum : uint { SBM_GETRANGE = 0x00E3 }
7001 enum : uint { SBM_ENABLE_ARROWS = 0x00E4 }
7002 // #if(WINVER >= 0x0400)
7003 enum : uint { SBM_SETSCROLLINFO = 0x00E9 }
7004 enum : uint { SBM_GETSCROLLINFO = 0x00EA }
7005 // #endif /* WINVER >= 0x0400 */
7006
7007 // #if(_WIN32_WINNT >= 0x0501)
7008 enum : uint { SBM_GETSCROLLBARINFO = 0x00EB }
7009 // #endif /* _WIN32_WINNT >= 0x0501 */
7010
7011 // #if(WINVER >= 0x0400)
7012 enum : uint { SIF_RANGE = 0x0001 }
7013 enum : uint { SIF_PAGE = 0x0002 }
7014 enum : uint { SIF_POS = 0x0004 }
7015 enum : uint { SIF_DISABLENOSCROLL = 0x0008 }
7016 enum : uint { SIF_TRACKPOS = 0x0010 }
7017 enum : uint { SIF_ALL = SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS }
7018
7019 struct tagSCROLLINFO {
7020 UINT cbSize;
7021 UINT fMask;
7022 int nMin;
7023 int nMax;
7024 UINT nPage;
7025 int nPos;
7026 int nTrackPos;
7027 }
7028 alias tagSCROLLINFO SCROLLINFO;
7029 alias tagSCROLLINFO* LPSCROLLINFO;
7030
7031 alias SCROLLINFO* LPCSCROLLINFO;
7032
7033 extern(Windows) export int SetScrollInfo(HWND, int, LPCSCROLLINFO, BOOL);
7034 extern(Windows) export BOOL GetScrollInfo(HWND, int, LPSCROLLINFO);
7035
7036 // #endif /* WINVER >= 0x0400 */
7037 // #endif /* !NOWINMESSAGES */
7038 // #endif /* !NOCTLMGR */
7039
7040 // #ifndef NOMDI
7041
7042 enum : uint { MDIS_ALLCHILDSTYLES = 0x0001 }
7043
7044 enum : uint { MDITILE_VERTICAL = 0x0000 }
7045 enum : uint { MDITILE_HORIZONTAL = 0x0001 }
7046 enum : uint { MDITILE_SKIPDISABLED = 0x0002 }
7047 // #if(_WIN32_WINNT >= 0x0500)
7048 enum : uint { MDITILE_ZORDER = 0x0004 }
7049 // #endif /* _WIN32_WINNT >= 0x0500 */
7050
7051 struct tagMDICREATESTRUCTA {
7052 LPCSTR szClass;
7053 LPCSTR szTitle;
7054 HANDLE hOwner;
7055 int x;
7056 int y;
7057 int cx;
7058 int cy;
7059 DWORD style;
7060 LPARAM lParam;
7061 }
7062 alias tagMDICREATESTRUCTA MDICREATESTRUCTA;
7063 alias tagMDICREATESTRUCTA* LPMDICREATESTRUCTA;
7064
7065 struct tagMDICREATESTRUCTW {
7066 LPCWSTR szClass;
7067 LPCWSTR szTitle;
7068 HANDLE hOwner;
7069 int x;
7070 int y;
7071 int cx;
7072 int cy;
7073 DWORD style;
7074 LPARAM lParam;
7075 }
7076 alias tagMDICREATESTRUCTW MDICREATESTRUCTW;
7077 alias tagMDICREATESTRUCTW* LPMDICREATESTRUCTW;
7078
7079 // #ifdef UNICODE
7080 alias MDICREATESTRUCTW MDICREATESTRUCT;
7081 alias LPMDICREATESTRUCTW LPMDICREATESTRUCT;
7082 // #else
7083 // ...
7084 // #endif // UNICODE
7085
7086 struct tagCLIENTCREATESTRUCT {
7087 HANDLE hWindowMenu;
7088 UINT idFirstChild;
7089 }
7090 alias tagCLIENTCREATESTRUCT CLIENTCREATESTRUCT;
7091 alias tagCLIENTCREATESTRUCT* LPCLIENTCREATESTRUCT;
7092
7093 extern(Windows) export LRESULT DefFrameProcA(
7094 HWND hWnd,
7095 HWND hWndMDIClient,
7096 UINT uMsg,
7097 WPARAM wParam,
7098 LPARAM lParam);
7099 extern(Windows) export LRESULT DefFrameProcW(
7100 HWND hWnd,
7101 HWND hWndMDIClient,
7102 UINT uMsg,
7103 WPARAM wParam,
7104 LPARAM lParam);
7105 // #ifdef UNICODE
7106 alias DefFrameProcW DefFrameProc;
7107 // #else
7108 // #...
7109 // #endif // !UNICODE
7110
7111 extern(Windows) export LRESULT DefMDIChildProcA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
7112 extern(Windows) export LRESULT DefMDIChildProcW(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
7113 // #ifdef UNICODE
7114 alias DefMDIChildProcW DefMDIChildProc;
7115 // #else
7116 // #...
7117 // #endif // !UNICODE
7118
7119 // #ifndef NOMSG
7120
7121 extern(Windows) export BOOL TranslateMDISysAccel(
7122 HWND hWndClient,
7123 LPMSG lpMsg);
7124
7125 // #endif /* !NOMSG */
7126
7127 extern(Windows) export UINT ArrangeIconicWindows(
7128 HWND hWnd);
7129
7130 extern(Windows) export HWND CreateMDIWindowA(
7131 LPCSTR lpClassName,
7132 LPCSTR lpWindowName,
7133 DWORD dwStyle,
7134 int X,
7135 int Y,
7136 int nWidth,
7137 int nHeight,
7138 HWND hWndParent,
7139 HINSTANCE hInstance,
7140 LPARAM lParam);
7141 extern(Windows) export HWND CreateMDIWindowW(
7142 LPCWSTR lpClassName,
7143 LPCWSTR lpWindowName,
7144 DWORD dwStyle,
7145 int X,
7146 int Y,
7147 int nWidth,
7148 int nHeight,
7149 HWND hWndParent,
7150 HINSTANCE hInstance,
7151 LPARAM lParam);
7152 // #ifdef UNICODE
7153 alias CreateMDIWindowW CreateMDIWindow;
7154 // #else
7155 // #...
7156 // #endif // !UNICODE
7157
7158 // #if(WINVER >= 0x0400)
7159 extern(Windows) export WORD TileWindows(HWND hwndParent, UINT wHow, RECT * lpRect, UINT cKids, HWND * lpKids);
7160 extern(Windows) export WORD CascadeWindows(HWND hwndParent, UINT wHow, RECT * lpRect, UINT cKids, HWND * lpKids);
7161 // #endif /* WINVER >= 0x0400 */
7162 // #endif /* !NOMDI */
7163
7164 // #endif /* !NOUSER */
7165
7166 // #ifndef NOHELP
7167
7168 alias DWORD HELPPOLY;
7169 struct tagMULTIKEYHELPA {
7170 // #ifndef _MAC
7171 DWORD mkSize;
7172 // #else
7173 // ...
7174 // #endif
7175 CHAR mkKeylist;
7176 CHAR szKeyphrase[1];
7177 }
7178 alias tagMULTIKEYHELPA MULTIKEYHELPA;
7179 alias tagMULTIKEYHELPA* PMULTIKEYHELPA;
7180 alias tagMULTIKEYHELPA* LPMULTIKEYHELPA;
7181
7182 struct tagMULTIKEYHELPW {
7183 // #ifndef _MAC
7184 DWORD mkSize;
7185 // #else
7186 // ...
7187 // #endif
7188 WCHAR mkKeylist;
7189 WCHAR szKeyphrase[1];
7190 }
7191 alias tagMULTIKEYHELPW MULTIKEYHELPW;
7192 alias tagMULTIKEYHELPW* PMULTIKEYHELPW;
7193 alias tagMULTIKEYHELPW* LPMULTIKEYHELPW;
7194
7195 // #ifdef UNICODE
7196 alias MULTIKEYHELPW MULTIKEYHELP;
7197 alias PMULTIKEYHELPW PMULTIKEYHELP;
7198 alias LPMULTIKEYHELPW LPMULTIKEYHELP;
7199 // #else
7200 // ...
7201 // #endif // UNICODE
7202
7203 struct tagHELPWININFOA {
7204 int wStructSize;
7205 int x;
7206 int y;
7207 int dx;
7208 int dy;
7209 int wMax;
7210 CHAR rgchMember[2];
7211 }
7212 alias tagHELPWININFOA HELPWININFOA;
7213 alias tagHELPWININFOA* PHELPWININFOA;
7214 alias tagHELPWININFOA* LPHELPWININFOA;
7215
7216 struct tagHELPWININFOW {
7217 int wStructSize;
7218 int x;
7219 int y;
7220 int dx;
7221 int dy;
7222 int wMax;
7223 WCHAR rgchMember[2];
7224 }
7225 alias tagHELPWININFOW HELPWININFOW;
7226 alias tagHELPWININFOW* PHELPWININFOW;
7227 alias tagHELPWININFOW* LPHELPWININFOW;
7228
7229 // #ifdef UNICODE
7230 alias HELPWININFOW HELPWININFO;
7231 alias PHELPWININFOW PHELPWININFO;
7232 alias LPHELPWININFOW LPHELPWININFO;
7233 // #else
7234 // ...
7235 // #endif // UNICODE
7236
7237 enum : uint { HELP_CONTEXT = 0x0001 }
7238 enum : uint { HELP_QUIT = 0x0002 }
7239 enum : uint { HELP_INDEX = 0x0003 }
7240 enum : uint { HELP_CONTENTS = 0x0003 }
7241 enum : uint { HELP_HELPONHELP = 0x0004 }
7242 enum : uint { HELP_SETINDEX = 0x0005 }
7243 enum : uint { HELP_SETCONTENTS = 0x0005 }
7244 enum : uint { HELP_CONTEXTPOPUP = 0x0008 }
7245 enum : uint { HELP_FORCEFILE = 0x0009 }
7246 enum : uint { HELP_KEY = 0x0101 }
7247 enum : uint { HELP_COMMAND = 0x0102 }
7248 enum : uint { HELP_PARTIALKEY = 0x0105 }
7249 enum : uint { HELP_MULTIKEY = 0x0201 }
7250 enum : uint { HELP_SETWINPOS = 0x0203 }
7251 // #if(WINVER >= 0x0400)
7252 enum : uint { HELP_CONTEXTMENU = 0x000a }
7253 enum : uint { HELP_FINDER = 0x000b }
7254 enum : uint { HELP_WM_HELP = 0x000c }
7255 enum : uint { HELP_SETPOPUP_POS = 0x000d }
7256
7257 enum : uint { HELP_TCARD = 0x8000 }
7258 enum : uint { HELP_TCARD_DATA = 0x0010 }
7259 enum : uint { HELP_TCARD_OTHER_CALLER = 0x0011 }
7260
7261 enum : uint { IDH_NO_HELP = 28440 }
7262 enum : uint { IDH_MISSING_CONTEXT = 28441 }
7263 enum : uint { IDH_GENERIC_HELP_BUTTON = 28442 }
7264 enum : uint { IDH_OK = 28443 }
7265 enum : uint { IDH_CANCEL = 28444 }
7266 enum : uint { IDH_HELP = 28445 }
7267
7268 // #endif /* WINVER >= 0x0400 */
7269
7270 extern(Windows) export BOOL WinHelpA(
7271 HWND hWndMain,
7272 LPCSTR lpszHelp,
7273 UINT uCommand,
7274 ULONG_PTR dwData);
7275 extern(Windows) export BOOL WinHelpW(
7276 HWND hWndMain,
7277 LPCWSTR lpszHelp,
7278 UINT uCommand,
7279 ULONG_PTR dwData);
7280 // #ifdef UNICODE
7281 alias WinHelpW WinHelp;
7282 // #else
7283 // #...
7284 // #endif // !UNICODE
7285
7286 // #endif /* !NOHELP */
7287
7288 // #if(WINVER >= 0x0500)
7289
7290 enum : uint { GR_GDIOBJECTS = 0 }
7291 enum : uint { GR_USEROBJECTS = 1 }
7292
7293 extern(Windows) export DWORD GetGuiResources(
7294 HANDLE hProcess,
7295 DWORD uiFlags);
7296
7297 // #endif /* WINVER >= 0x0500 */
7298
7299 // #ifndef NOSYSPARAMSINFO
7300
7301 enum : uint { SPI_GETBEEP = 0x0001 }
7302 enum : uint { SPI_SETBEEP = 0x0002 }
7303 enum : uint { SPI_GETMOUSE = 0x0003 }
7304 enum : uint { SPI_SETMOUSE = 0x0004 }
7305 enum : uint { SPI_GETBORDER = 0x0005 }
7306 enum : uint { SPI_SETBORDER = 0x0006 }
7307 enum : uint { SPI_GETKEYBOARDSPEED = 0x000A }
7308 enum : uint { SPI_SETKEYBOARDSPEED = 0x000B }
7309 enum : uint { SPI_LANGDRIVER = 0x000C }
7310 enum : uint { SPI_ICONHORIZONTALSPACING = 0x000D }
7311 enum : uint { SPI_GETSCREENSAVETIMEOUT = 0x000E }
7312 enum : uint { SPI_SETSCREENSAVETIMEOUT = 0x000F }
7313 enum : uint { SPI_GETSCREENSAVEACTIVE = 0x0010 }
7314 enum : uint { SPI_SETSCREENSAVEACTIVE = 0x0011 }
7315 enum : uint { SPI_GETGRIDGRANULARITY = 0x0012 }
7316 enum : uint { SPI_SETGRIDGRANULARITY = 0x0013 }
7317 enum : uint { SPI_SETDESKWALLPAPER = 0x0014 }
7318 enum : uint { SPI_SETDESKPATTERN = 0x0015 }
7319 enum : uint { SPI_GETKEYBOARDDELAY = 0x0016 }
7320 enum : uint { SPI_SETKEYBOARDDELAY = 0x0017 }
7321 enum : uint { SPI_ICONVERTICALSPACING = 0x0018 }
7322 enum : uint { SPI_GETICONTITLEWRAP = 0x0019 }
7323 enum : uint { SPI_SETICONTITLEWRAP = 0x001A }
7324 enum : uint { SPI_GETMENUDROPALIGNMENT = 0x001B }
7325 enum : uint { SPI_SETMENUDROPALIGNMENT = 0x001C }
7326 enum : uint { SPI_SETDOUBLECLKWIDTH = 0x001D }
7327 enum : uint { SPI_SETDOUBLECLKHEIGHT = 0x001E }
7328 enum : uint { SPI_GETICONTITLELOGFONT = 0x001F }
7329 enum : uint { SPI_SETDOUBLECLICKTIME = 0x0020 }
7330 enum : uint { SPI_SETMOUSEBUTTONSWAP = 0x0021 }
7331 enum : uint { SPI_SETICONTITLELOGFONT = 0x0022 }
7332 enum : uint { SPI_GETFASTTASKSWITCH = 0x0023 }
7333 enum : uint { SPI_SETFASTTASKSWITCH = 0x0024 }
7334 // #if(WINVER >= 0x0400)
7335 enum : uint { SPI_SETDRAGFULLWINDOWS = 0x0025 }
7336 enum : uint { SPI_GETDRAGFULLWINDOWS = 0x0026 }
7337 enum : uint { SPI_GETNONCLIENTMETRICS = 0x0029 }
7338 enum : uint { SPI_SETNONCLIENTMETRICS = 0x002A }
7339 enum : uint { SPI_GETMINIMIZEDMETRICS = 0x002B }
7340 enum : uint { SPI_SETMINIMIZEDMETRICS = 0x002C }
7341 enum : uint { SPI_GETICONMETRICS = 0x002D }
7342 enum : uint { SPI_SETICONMETRICS = 0x002E }
7343 enum : uint { SPI_SETWORKAREA = 0x002F }
7344 enum : uint { SPI_GETWORKAREA = 0x0030 }
7345 enum : uint { SPI_SETPENWINDOWS = 0x0031 }
7346
7347 enum : uint { SPI_GETHIGHCONTRAST = 0x0042 }
7348 enum : uint { SPI_SETHIGHCONTRAST = 0x0043 }
7349 enum : uint { SPI_GETKEYBOARDPREF = 0x0044 }
7350 enum : uint { SPI_SETKEYBOARDPREF = 0x0045 }
7351 enum : uint { SPI_GETSCREENREADER = 0x0046 }
7352 enum : uint { SPI_SETSCREENREADER = 0x0047 }
7353 enum : uint { SPI_GETANIMATION = 0x0048 }
7354 enum : uint { SPI_SETANIMATION = 0x0049 }
7355 enum : uint { SPI_GETFONTSMOOTHING = 0x004A }
7356 enum : uint { SPI_SETFONTSMOOTHING = 0x004B }
7357 enum : uint { SPI_SETDRAGWIDTH = 0x004C }
7358 enum : uint { SPI_SETDRAGHEIGHT = 0x004D }
7359 enum : uint { SPI_SETHANDHELD = 0x004E }
7360 enum : uint { SPI_GETLOWPOWERTIMEOUT = 0x004F }
7361 enum : uint { SPI_GETPOWEROFFTIMEOUT = 0x0050 }
7362 enum : uint { SPI_SETLOWPOWERTIMEOUT = 0x0051 }
7363 enum : uint { SPI_SETPOWEROFFTIMEOUT = 0x0052 }
7364 enum : uint { SPI_GETLOWPOWERACTIVE = 0x0053 }
7365 enum : uint { SPI_GETPOWEROFFACTIVE = 0x0054 }
7366 enum : uint { SPI_SETLOWPOWERACTIVE = 0x0055 }
7367 enum : uint { SPI_SETPOWEROFFACTIVE = 0x0056 }
7368 enum : uint { SPI_SETCURSORS = 0x0057 }
7369 enum : uint { SPI_SETICONS = 0x0058 }
7370 enum : uint { SPI_GETDEFAULTINPUTLANG = 0x0059 }
7371 enum : uint { SPI_SETDEFAULTINPUTLANG = 0x005A }
7372 enum : uint { SPI_SETLANGTOGGLE = 0x005B }
7373 enum : uint { SPI_GETWINDOWSEXTENSION = 0x005C }
7374 enum : uint { SPI_SETMOUSETRAILS = 0x005D }
7375 enum : uint { SPI_GETMOUSETRAILS = 0x005E }
7376 enum : uint { SPI_SETSCREENSAVERRUNNING = 0x0061 }
7377 alias SPI_SETSCREENSAVERRUNNING SPI_SCREENSAVERRUNNING;
7378 // #endif /* WINVER >= 0x0400 */
7379 enum : uint { SPI_GETFILTERKEYS = 0x0032 }
7380 enum : uint { SPI_SETFILTERKEYS = 0x0033 }
7381 enum : uint { SPI_GETTOGGLEKEYS = 0x0034 }
7382 enum : uint { SPI_SETTOGGLEKEYS = 0x0035 }
7383 enum : uint { SPI_GETMOUSEKEYS = 0x0036 }
7384 enum : uint { SPI_SETMOUSEKEYS = 0x0037 }
7385 enum : uint { SPI_GETSHOWSOUNDS = 0x0038 }
7386 enum : uint { SPI_SETSHOWSOUNDS = 0x0039 }
7387 enum : uint { SPI_GETSTICKYKEYS = 0x003A }
7388 enum : uint { SPI_SETSTICKYKEYS = 0x003B }
7389 enum : uint { SPI_GETACCESSTIMEOUT = 0x003C }
7390 enum : uint { SPI_SETACCESSTIMEOUT = 0x003D }
7391 // #if(WINVER >= 0x0400)
7392 enum : uint { SPI_GETSERIALKEYS = 0x003E }
7393 enum : uint { SPI_SETSERIALKEYS = 0x003F }
7394 // #endif /* WINVER >= 0x0400 */
7395 enum : uint { SPI_GETSOUNDSENTRY = 0x0040 }
7396 enum : uint { SPI_SETSOUNDSENTRY = 0x0041 }
7397 // #if(_WIN32_WINNT >= 0x0400)
7398 enum : uint { SPI_GETSNAPTODEFBUTTON = 0x005F }
7399 enum : uint { SPI_SETSNAPTODEFBUTTON = 0x0060 }
7400 // #endif /* _WIN32_WINNT >= 0x0400 */
7401 // #if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)
7402 enum : uint { SPI_GETMOUSEHOVERWIDTH = 0x0062 }
7403 enum : uint { SPI_SETMOUSEHOVERWIDTH = 0x0063 }
7404 enum : uint { SPI_GETMOUSEHOVERHEIGHT = 0x0064 }
7405 enum : uint { SPI_SETMOUSEHOVERHEIGHT = 0x0065 }
7406 enum : uint { SPI_GETMOUSEHOVERTIME = 0x0066 }
7407 enum : uint { SPI_SETMOUSEHOVERTIME = 0x0067 }
7408 enum : uint { SPI_GETWHEELSCROLLLINES = 0x0068 }
7409 enum : uint { SPI_SETWHEELSCROLLLINES = 0x0069 }
7410 enum : uint { SPI_GETMENUSHOWDELAY = 0x006A }
7411 enum : uint { SPI_SETMENUSHOWDELAY = 0x006B }
7412
7413 enum : uint { SPI_GETSHOWIMEUI = 0x006E }
7414 enum : uint { SPI_SETSHOWIMEUI = 0x006F }
7415 // #endif
7416
7417 // #if(WINVER >= 0x0500)
7418 enum : uint { SPI_GETMOUSESPEED = 0x0070 }
7419 enum : uint { SPI_SETMOUSESPEED = 0x0071 }
7420 enum : uint { SPI_GETSCREENSAVERRUNNING = 0x0072 }
7421 enum : uint { SPI_GETDESKWALLPAPER = 0x0073 }
7422 // #endif /* WINVER >= 0x0500 */
7423
7424 // #if(WINVER >= 0x0500)
7425 enum : uint { SPI_GETACTIVEWINDOWTRACKING = 0x1000 }
7426 enum : uint { SPI_SETACTIVEWINDOWTRACKING = 0x1001 }
7427 enum : uint { SPI_GETMENUANIMATION = 0x1002 }
7428 enum : uint { SPI_SETMENUANIMATION = 0x1003 }
7429 enum : uint { SPI_GETCOMBOBOXANIMATION = 0x1004 }
7430 enum : uint { SPI_SETCOMBOBOXANIMATION = 0x1005 }
7431 enum : uint { SPI_GETLISTBOXSMOOTHSCROLLING = 0x1006 }
7432 enum : uint { SPI_SETLISTBOXSMOOTHSCROLLING = 0x1007 }
7433 enum : uint { SPI_GETGRADIENTCAPTIONS = 0x1008 }
7434 enum : uint { SPI_SETGRADIENTCAPTIONS = 0x1009 }
7435 enum : uint { SPI_GETKEYBOARDCUES = 0x100A }
7436 enum : uint { SPI_SETKEYBOARDCUES = 0x100B }
7437 alias SPI_GETKEYBOARDCUES SPI_GETMENUUNDERLINES;
7438 alias SPI_SETKEYBOARDCUES SPI_SETMENUUNDERLINES;
7439 enum : uint { SPI_GETACTIVEWNDTRKZORDER = 0x100C }
7440 enum : uint { SPI_SETACTIVEWNDTRKZORDER = 0x100D }
7441 enum : uint { SPI_GETHOTTRACKING = 0x100E }
7442 enum : uint { SPI_SETHOTTRACKING = 0x100F }
7443 enum : uint { SPI_GETMENUFADE = 0x1012 }
7444 enum : uint { SPI_SETMENUFADE = 0x1013 }
7445 enum : uint { SPI_GETSELECTIONFADE = 0x1014 }
7446 enum : uint { SPI_SETSELECTIONFADE = 0x1015 }
7447 enum : uint { SPI_GETTOOLTIPANIMATION = 0x1016 }
7448 enum : uint { SPI_SETTOOLTIPANIMATION = 0x1017 }
7449 enum : uint { SPI_GETTOOLTIPFADE = 0x1018 }
7450 enum : uint { SPI_SETTOOLTIPFADE = 0x1019 }
7451 enum : uint { SPI_GETCURSORSHADOW = 0x101A }
7452 enum : uint { SPI_SETCURSORSHADOW = 0x101B }
7453 // #if(_WIN32_WINNT >= 0x0501)
7454 enum : uint { SPI_GETMOUSESONAR = 0x101C }
7455 enum : uint { SPI_SETMOUSESONAR = 0x101D }
7456 enum : uint { SPI_GETMOUSECLICKLOCK = 0x101E }
7457 enum : uint { SPI_SETMOUSECLICKLOCK = 0x101F }
7458 enum : uint { SPI_GETMOUSEVANISH = 0x1020 }
7459 enum : uint { SPI_SETMOUSEVANISH = 0x1021 }
7460 enum : uint { SPI_GETFLATMENU = 0x1022 }
7461 enum : uint { SPI_SETFLATMENU = 0x1023 }
7462 enum : uint { SPI_GETDROPSHADOW = 0x1024 }
7463 enum : uint { SPI_SETDROPSHADOW = 0x1025 }
7464 // #endif /* _WIN32_WINNT >= 0x0501 */
7465
7466 enum : uint { SPI_GETUIEFFECTS = 0x103E }
7467 enum : uint { SPI_SETUIEFFECTS = 0x103F }
7468
7469 enum : uint { SPI_GETFOREGROUNDLOCKTIMEOUT = 0x2000 }
7470 enum : uint { SPI_SETFOREGROUNDLOCKTIMEOUT = 0x2001 }
7471 enum : uint { SPI_GETACTIVEWNDTRKTIMEOUT = 0x2002 }
7472 enum : uint { SPI_SETACTIVEWNDTRKTIMEOUT = 0x2003 }
7473 enum : uint { SPI_GETFOREGROUNDFLASHCOUNT = 0x2004 }
7474 enum : uint { SPI_SETFOREGROUNDFLASHCOUNT = 0x2005 }
7475 enum : uint { SPI_GETCARETWIDTH = 0x2006 }
7476 enum : uint { SPI_SETCARETWIDTH = 0x2007 }
7477
7478 // #if(_WIN32_WINNT >= 0x0501)
7479 enum : uint { SPI_GETMOUSECLICKLOCKTIME = 0x2008 }
7480 enum : uint { SPI_SETMOUSECLICKLOCKTIME = 0x2009 }
7481 enum : uint { SPI_GETFONTSMOOTHINGTYPE = 0x200A }
7482 enum : uint { SPI_SETFONTSMOOTHINGTYPE = 0x200B }
7483
7484 enum : uint { FE_FONTSMOOTHINGSTANDARD = 0x0001 }
7485 enum : uint { FE_FONTSMOOTHINGCLEARTYPE = 0x0002 }
7486 enum : uint { FE_FONTSMOOTHINGDOCKING = 0x8000 }
7487
7488 enum : uint { SPI_GETFONTSMOOTHINGCONTRAST = 0x200C }
7489 enum : uint { SPI_SETFONTSMOOTHINGCONTRAST = 0x200D }
7490
7491 enum : uint { SPI_GETFOCUSBORDERWIDTH = 0x200E }
7492 enum : uint { SPI_SETFOCUSBORDERWIDTH = 0x200F }
7493 enum : uint { SPI_GETFOCUSBORDERHEIGHT = 0x2010 }
7494 enum : uint { SPI_SETFOCUSBORDERHEIGHT = 0x2011 }
7495 // #endif /* _WIN32_WINNT >= 0x0501 */
7496
7497 // #endif /* WINVER >= 0x0500 */
7498
7499 enum : uint { SPIF_UPDATEINIFILE = 0x0001 }
7500 enum : uint { SPIF_SENDWININICHANGE = 0x0002 }
7501 alias SPIF_SENDWININICHANGE SPIF_SENDCHANGE;
7502
7503 enum { METRICS_USEDEFAULT = -1 }
7504 // #ifdef _WINGDI_
7505 // #ifndef NOGDI
7506 // ...
7507 // #ifdef UNICODE
7508 // ...
7509 // #else
7510 // ...
7511 // #endif // UNICODE
7512 // #endif /* NOGDI */
7513 // #endif /* _WINGDI_ */
7514
7515 enum : uint { ARW_BOTTOMLEFT = 0x0000 }
7516 enum : uint { ARW_BOTTOMRIGHT = 0x0001 }
7517 enum : uint { ARW_TOPLEFT = 0x0002 }
7518 enum : uint { ARW_TOPRIGHT = 0x0003 }
7519 enum : uint { ARW_STARTMASK = 0x0003 }
7520 enum : uint { ARW_STARTRIGHT = 0x0001 }
7521 enum : uint { ARW_STARTTOP = 0x0002 }
7522
7523 enum : uint { ARW_LEFT = 0x0000 }
7524 enum : uint { ARW_RIGHT = 0x0000 }
7525 enum : uint { ARW_UP = 0x0004 }
7526 enum : uint { ARW_DOWN = 0x0004 }
7527 enum : uint { ARW_HIDE = 0x0008 }
7528
7529 struct tagMINIMIZEDMETRICS {
7530 UINT cbSize;
7531 int iWidth;
7532 int iHorzGap;
7533 int iVertGap;
7534 int iArrange;
7535 }
7536 alias tagMINIMIZEDMETRICS MINIMIZEDMETRICS;
7537 alias tagMINIMIZEDMETRICS* PMINIMIZEDMETRICS;
7538 alias tagMINIMIZEDMETRICS* LPMINIMIZEDMETRICS;
7539
7540 // #ifdef _WINGDI_
7541 // #ifndef NOGDI
7542 // ...
7543 // #ifdef UNICODE
7544 // ...
7545 // #else
7546 // ...
7547 // #endif // UNICODE
7548 // #endif /* NOGDI */
7549 // #endif /* _WINGDI_ */
7550
7551 struct tagANIMATIONINFO {
7552 UINT cbSize;
7553 int iMinAnimate;
7554 }
7555 alias tagANIMATIONINFO ANIMATIONINFO;
7556 alias tagANIMATIONINFO* LPANIMATIONINFO;
7557
7558 struct tagSERIALKEYSA {
7559 UINT cbSize;
7560 DWORD dwFlags;
7561 LPSTR lpszActivePort;
7562 LPSTR lpszPort;
7563 UINT iBaudRate;
7564 UINT iPortState;
7565 UINT iActive;
7566 }
7567 alias tagSERIALKEYSA SERIALKEYSA;
7568 alias tagSERIALKEYSA* LPSERIALKEYSA;
7569
7570 struct tagSERIALKEYSW {
7571 UINT cbSize;
7572 DWORD dwFlags;
7573 LPWSTR lpszActivePort;
7574 LPWSTR lpszPort;
7575 UINT iBaudRate;
7576 UINT iPortState;
7577 UINT iActive;
7578 }
7579 alias tagSERIALKEYSW SERIALKEYSW;
7580 alias tagSERIALKEYSW* LPSERIALKEYSW;
7581
7582 // #ifdef UNICODE
7583 alias SERIALKEYSW SERIALKEYS;
7584 alias LPSERIALKEYSW LPSERIALKEYS;
7585 // #else
7586 // ...
7587 // #endif // UNICODE
7588
7589 enum : uint { SERKF_SERIALKEYSON = 0x00000001 }
7590 enum : uint { SERKF_AVAILABLE = 0x00000002 }
7591 enum : uint { SERKF_INDICATOR = 0x00000004 }
7592
7593 struct tagHIGHCONTRASTA {
7594 UINT cbSize;
7595 DWORD dwFlags;
7596 LPSTR lpszDefaultScheme;
7597 }
7598 alias tagHIGHCONTRASTA HIGHCONTRASTA;
7599 alias tagHIGHCONTRASTA* LPHIGHCONTRASTA;
7600
7601 struct tagHIGHCONTRASTW {
7602 UINT cbSize;
7603 DWORD dwFlags;
7604 LPWSTR lpszDefaultScheme;
7605 }
7606 alias tagHIGHCONTRASTW HIGHCONTRASTW;
7607 alias tagHIGHCONTRASTW* LPHIGHCONTRASTW;
7608
7609 // #ifdef UNICODE
7610 alias HIGHCONTRASTW HIGHCONTRAST;
7611 alias LPHIGHCONTRASTW LPHIGHCONTRAST;
7612 // #else
7613 // ...
7614 // #endif // UNICODE
7615
7616 enum : uint { HCF_HIGHCONTRASTON = 0x00000001 }
7617 enum : uint { HCF_AVAILABLE = 0x00000002 }
7618 enum : uint { HCF_HOTKEYACTIVE = 0x00000004 }
7619 enum : uint { HCF_CONFIRMHOTKEY = 0x00000008 }
7620 enum : uint { HCF_HOTKEYSOUND = 0x00000010 }
7621 enum : uint { HCF_INDICATOR = 0x00000020 }
7622 enum : uint { HCF_HOTKEYAVAILABLE = 0x00000040 }
7623
7624 enum : uint { CDS_UPDATEREGISTRY = 0x00000001 }
7625 enum : uint { CDS_TEST = 0x00000002 }
7626 enum : uint { CDS_FULLSCREEN = 0x00000004 }
7627 enum : uint { CDS_GLOBAL = 0x00000008 }
7628 enum : uint { CDS_SET_PRIMARY = 0x00000010 }
7629 enum : uint { CDS_VIDEOPARAMETERS = 0x00000020 }
7630 enum : uint { CDS_RESET = 0x40000000 }
7631 enum : uint { CDS_NORESET = 0x10000000 }
7632
7633 // #include <tvout.h>
7634
7635 enum : uint { DISP_CHANGE_SUCCESSFUL = 0 }
7636 enum : uint { DISP_CHANGE_RESTART = 1 }
7637 enum { DISP_CHANGE_FAILED = -1 }
7638 enum { DISP_CHANGE_BADMODE = -2 }
7639 enum { DISP_CHANGE_NOTUPDATED = -3 }
7640 enum { DISP_CHANGE_BADFLAGS = -4 }
7641 enum { DISP_CHANGE_BADPARAM = -5 }
7642 // #if(_WIN32_WINNT >= 0x0501)
7643 enum { DISP_CHANGE_BADDUALVIEW = -6 }
7644 // #endif /* _WIN32_WINNT >= 0x0501 */
7645
7646 // #ifdef _WINGDI_
7647 // #ifndef NOGDI
7648
7649 // ...
7650 // #ifdef UNICODE
7651 // #...
7652 // #else
7653 // #...
7654 // #endif // !UNICODE
7655
7656 // ...
7657 // #ifdef UNICODE
7658 // #...
7659 // #else
7660 // #...
7661 // #endif // !UNICODE
7662
7663 // #...
7664 // #...
7665
7666 // ...
7667 // #ifdef UNICODE
7668 // #...
7669 // #else
7670 // #...
7671 // #endif // !UNICODE
7672
7673 // #if(WINVER >= 0x0500)
7674
7675 // ...
7676 // #ifdef UNICODE
7677 // #...
7678 // #else
7679 // #...
7680 // #endif // !UNICODE
7681
7682 // #...
7683
7684 // ...
7685 // #ifdef UNICODE
7686 // #...
7687 // #else
7688 // #...
7689 // #endif // !UNICODE
7690 // #endif /* WINVER >= 0x0500 */
7691
7692 // #endif /* NOGDI */
7693 // #endif /* _WINGDI_ */
7694
7695 extern(Windows) export BOOL SystemParametersInfoA(
7696 UINT uiAction,
7697 UINT uiParam,
7698 PVOID pvParam,
7699 UINT fWinIni);
7700 extern(Windows) export BOOL SystemParametersInfoW(
7701 UINT uiAction,
7702 UINT uiParam,
7703 PVOID pvParam,
7704 UINT fWinIni);
7705 // #ifdef UNICODE
7706 alias SystemParametersInfoW SystemParametersInfo;
7707 // #else
7708 // #...
7709 // #endif // !UNICODE
7710
7711 // #endif /* !NOSYSPARAMSINFO */
7712
7713 struct tagFILTERKEYS {
7714 UINT cbSize;
7715 DWORD dwFlags;
7716 DWORD iWaitMSec;
7717 DWORD iDelayMSec;
7718 DWORD iRepeatMSec;
7719 DWORD iBounceMSec;
7720 }
7721 alias tagFILTERKEYS FILTERKEYS;
7722 alias tagFILTERKEYS* LPFILTERKEYS;
7723
7724 enum : uint { FKF_FILTERKEYSON = 0x00000001 }
7725 enum : uint { FKF_AVAILABLE = 0x00000002 }
7726 enum : uint { FKF_HOTKEYACTIVE = 0x00000004 }
7727 enum : uint { FKF_CONFIRMHOTKEY = 0x00000008 }
7728 enum : uint { FKF_HOTKEYSOUND = 0x00000010 }
7729 enum : uint { FKF_INDICATOR = 0x00000020 }
7730 enum : uint { FKF_CLICKON = 0x00000040 }
7731
7732 struct tagSTICKYKEYS {
7733 UINT cbSize;
7734 DWORD dwFlags;
7735 }
7736 alias tagSTICKYKEYS STICKYKEYS;
7737 alias tagSTICKYKEYS* LPSTICKYKEYS;
7738
7739 enum : uint { SKF_STICKYKEYSON = 0x00000001 }
7740 enum : uint { SKF_AVAILABLE = 0x00000002 }
7741 enum : uint { SKF_HOTKEYACTIVE = 0x00000004 }
7742 enum : uint { SKF_CONFIRMHOTKEY = 0x00000008 }
7743 enum : uint { SKF_HOTKEYSOUND = 0x00000010 }
7744 enum : uint { SKF_INDICATOR = 0x00000020 }
7745 enum : uint { SKF_AUDIBLEFEEDBACK = 0x00000040 }
7746 enum : uint { SKF_TRISTATE = 0x00000080 }
7747 enum : uint { SKF_TWOKEYSOFF = 0x00000100 }
7748 // #if(_WIN32_WINNT >= 0x0500)
7749 enum : uint { SKF_LALTLATCHED = 0x10000000 }
7750 enum : uint { SKF_LCTLLATCHED = 0x04000000 }
7751 enum : uint { SKF_LSHIFTLATCHED = 0x01000000 }
7752 enum : uint { SKF_RALTLATCHED = 0x20000000 }
7753 enum : uint { SKF_RCTLLATCHED = 0x08000000 }
7754 enum : uint { SKF_RSHIFTLATCHED = 0x02000000 }
7755 enum : uint { SKF_LWINLATCHED = 0x40000000 }
7756 enum : uint { SKF_RWINLATCHED = 0x80000000 }
7757 enum : uint { SKF_LALTLOCKED = 0x00100000 }
7758 enum : uint { SKF_LCTLLOCKED = 0x00040000 }
7759 enum : uint { SKF_LSHIFTLOCKED = 0x00010000 }
7760 enum : uint { SKF_RALTLOCKED = 0x00200000 }
7761 enum : uint { SKF_RCTLLOCKED = 0x00080000 }
7762 enum : uint { SKF_RSHIFTLOCKED = 0x00020000 }
7763 enum : uint { SKF_LWINLOCKED = 0x00400000 }
7764 enum : uint { SKF_RWINLOCKED = 0x00800000 }
7765 // #endif /* _WIN32_WINNT >= 0x0500 */
7766
7767 struct tagMOUSEKEYS {
7768 UINT cbSize;
7769 DWORD dwFlags;
7770 DWORD iMaxSpeed;
7771 DWORD iTimeToMaxSpeed;
7772 DWORD iCtrlSpeed;
7773 DWORD dwReserved1;
7774 DWORD dwReserved2;
7775 }
7776 alias tagMOUSEKEYS MOUSEKEYS;
7777 alias tagMOUSEKEYS* LPMOUSEKEYS;
7778
7779 enum : uint { MKF_MOUSEKEYSON = 0x00000001 }
7780 enum : uint { MKF_AVAILABLE = 0x00000002 }
7781 enum : uint { MKF_HOTKEYACTIVE = 0x00000004 }
7782 enum : uint { MKF_CONFIRMHOTKEY = 0x00000008 }
7783 enum : uint { MKF_HOTKEYSOUND = 0x00000010 }
7784 enum : uint { MKF_INDICATOR = 0x00000020 }
7785 enum : uint { MKF_MODIFIERS = 0x00000040 }
7786 enum : uint { MKF_REPLACENUMBERS = 0x00000080 }
7787 // #if(_WIN32_WINNT >= 0x0500)
7788 enum : uint { MKF_LEFTBUTTONSEL = 0x10000000 }
7789 enum : uint { MKF_RIGHTBUTTONSEL = 0x20000000 }
7790 enum : uint { MKF_LEFTBUTTONDOWN = 0x01000000 }
7791 enum : uint { MKF_RIGHTBUTTONDOWN = 0x02000000 }
7792 enum : uint { MKF_MOUSEMODE = 0x80000000 }
7793 // #endif /* _WIN32_WINNT >= 0x0500 */
7794
7795 struct tagACCESSTIMEOUT {
7796 UINT cbSize;
7797 DWORD dwFlags;
7798 DWORD iTimeOutMSec;
7799 }
7800 alias tagACCESSTIMEOUT ACCESSTIMEOUT;
7801 alias tagACCESSTIMEOUT* LPACCESSTIMEOUT;
7802
7803 enum : uint { ATF_TIMEOUTON = 0x00000001 }
7804 enum : uint { ATF_ONOFFFEEDBACK = 0x00000002 }
7805
7806 enum : uint { SSGF_NONE = 0 }
7807 enum : uint { SSGF_DISPLAY = 3 }
7808
7809 enum : uint { SSTF_NONE = 0 }
7810 enum : uint { SSTF_CHARS = 1 }
7811 enum : uint { SSTF_BORDER = 2 }
7812 enum : uint { SSTF_DISPLAY = 3 }
7813
7814 enum : uint { SSWF_NONE = 0 }
7815 enum : uint { SSWF_TITLE = 1 }
7816 enum : uint { SSWF_WINDOW = 2 }
7817 enum : uint { SSWF_DISPLAY = 3 }
7818 enum : uint { SSWF_CUSTOM = 4 }
7819
7820 struct tagSOUNDSENTRYA {
7821 UINT cbSize;
7822 DWORD dwFlags;
7823 DWORD iFSTextEffect;
7824 DWORD iFSTextEffectMSec;
7825 DWORD iFSTextEffectColorBits;
7826 DWORD iFSGrafEffect;
7827 DWORD iFSGrafEffectMSec;
7828 DWORD iFSGrafEffectColor;
7829 DWORD iWindowsEffect;
7830 DWORD iWindowsEffectMSec;
7831 LPSTR lpszWindowsEffectDLL;
7832 DWORD iWindowsEffectOrdinal;
7833 }
7834 alias tagSOUNDSENTRYA SOUNDSENTRYA;
7835 alias tagSOUNDSENTRYA* LPSOUNDSENTRYA;
7836
7837 struct tagSOUNDSENTRYW {
7838 UINT cbSize;
7839 DWORD dwFlags;
7840 DWORD iFSTextEffect;
7841 DWORD iFSTextEffectMSec;
7842 DWORD iFSTextEffectColorBits;
7843 DWORD iFSGrafEffect;
7844 DWORD iFSGrafEffectMSec;
7845 DWORD iFSGrafEffectColor;
7846 DWORD iWindowsEffect;
7847 DWORD iWindowsEffectMSec;
7848 LPWSTR lpszWindowsEffectDLL;
7849 DWORD iWindowsEffectOrdinal;
7850 }
7851 alias tagSOUNDSENTRYW SOUNDSENTRYW;
7852 alias tagSOUNDSENTRYW* LPSOUNDSENTRYW;
7853
7854 // #ifdef UNICODE
7855 alias SOUNDSENTRYW SOUNDSENTRY;
7856 alias LPSOUNDSENTRYW LPSOUNDSENTRY;
7857 // #else
7858 // ...
7859 // #endif // UNICODE
7860
7861 enum : uint { SSF_SOUNDSENTRYON = 0x00000001 }
7862 enum : uint { SSF_AVAILABLE = 0x00000002 }
7863 enum : uint { SSF_INDICATOR = 0x00000004 }
7864
7865 struct tagTOGGLEKEYS {
7866 UINT cbSize;
7867 DWORD dwFlags;
7868 }
7869 alias tagTOGGLEKEYS TOGGLEKEYS;
7870 alias tagTOGGLEKEYS* LPTOGGLEKEYS;
7871
7872 enum : uint { TKF_TOGGLEKEYSON = 0x00000001 }
7873 enum : uint { TKF_AVAILABLE = 0x00000002 }
7874 enum : uint { TKF_HOTKEYACTIVE = 0x00000004 }
7875 enum : uint { TKF_CONFIRMHOTKEY = 0x00000008 }
7876 enum : uint { TKF_HOTKEYSOUND = 0x00000010 }
7877 enum : uint { TKF_INDICATOR = 0x00000020 }
7878
7879 extern(Windows) export VOID SetDebugErrorLevel(
7880 DWORD dwLevel);
7881
7882 enum : uint { SLE_ERROR = 0x00000001 }
7883 enum : uint { SLE_MINORERROR = 0x00000002 }
7884 enum : uint { SLE_WARNING = 0x00000003 }
7885
7886 extern(Windows) export VOID SetLastErrorEx(
7887 DWORD dwErrCode,
7888 DWORD dwType);
7889
7890 // #if(WINVER >= 0x0500)
7891
7892 enum : uint { MONITOR_DEFAULTTONULL = 0x00000000 }
7893 enum : uint { MONITOR_DEFAULTTOPRIMARY = 0x00000001 }
7894 enum : uint { MONITOR_DEFAULTTONEAREST = 0x00000002 }
7895
7896 extern(Windows) export HMONITOR MonitorFromPoint(
7897 POINT pt,
7898 DWORD dwFlags);
7899
7900 extern(Windows) export HMONITOR MonitorFromRect(
7901 LPCRECT lprc,
7902 DWORD dwFlags);
7903
7904 extern(Windows) export HMONITOR MonitorFromWindow(HWND hwnd, DWORD dwFlags);
7905
7906 enum : uint { MONITORINFOF_PRIMARY = 0x00000001 }
7907
7908 // #ifndef CCHDEVICENAME
7909 // #...
7910 // #endif
7911
7912 struct tagMONITORINFO {
7913 DWORD cbSize;
7914 RECT rcMonitor;
7915 RECT rcWork;
7916 DWORD dwFlags;
7917 }
7918 alias tagMONITORINFO MONITORINFO;
7919 alias tagMONITORINFO* LPMONITORINFO;
7920
7921 // #ifdef __cplusplus
7922 struct tagMONITORINFOEXA {
7923 DWORD cbSize;
7924 RECT rcMonitor;
7925 RECT rcWork;
7926 DWORD dwFlags;
7927 CHAR szDevice[CCHDEVICENAME];
7928 }
7929 alias tagMONITORINFOEXA MONITORINFOEXA;
7930 alias tagMONITORINFOEXA* LPMONITORINFOEXA;
7931
7932 struct tagMONITORINFOEXW {
7933 DWORD cbSize;
7934 RECT rcMonitor;
7935 RECT rcWork;
7936 DWORD dwFlags;
7937 WCHAR szDevice[CCHDEVICENAME];
7938 }
7939 alias tagMONITORINFOEXW MONITORINFOEXW;
7940 alias tagMONITORINFOEXW* LPMONITORINFOEXW;
7941
7942 // #ifdef UNICODE
7943 alias MONITORINFOEXW MONITORINFOEX;
7944 alias LPMONITORINFOEXW LPMONITORINFOEX;
7945 // #else
7946 // ...
7947 // #endif // UNICODE
7948 // #else // ndef __cplusplus
7949 // ...
7950 // #ifdef UNICODE
7951 // ...
7952 // #else
7953 // ...
7954 // #endif // UNICODE
7955 // #endif
7956
7957 extern(Windows) export BOOL GetMonitorInfoA(HMONITOR hMonitor, LPMONITORINFO lpmi);
7958 extern(Windows) export BOOL GetMonitorInfoW(HMONITOR hMonitor, LPMONITORINFO lpmi);
7959 // #ifdef UNICODE
7960 alias GetMonitorInfoW GetMonitorInfo;
7961 // #else
7962 // #...
7963 // #endif // !UNICODE
7964
7965 extern(Windows) alias BOOL function(HMONITOR, HDC, LPRECT, LPARAM) MONITORENUMPROC;
7966
7967 extern(Windows) export BOOL EnumDisplayMonitors(
7968 HDC hdc,
7969 LPCRECT lprcClip,
7970 MONITORENUMPROC lpfnEnum,
7971 LPARAM dwData);
7972
7973 // #ifndef NOWINABLE
7974
7975 extern(Windows) export VOID NotifyWinEvent(
7976 DWORD event,
7977 HWND hwnd,
7978 LONG idObject,
7979 LONG idChild);
7980
7981 extern(Windows) alias VOID function( HWINEVENTHOOK hWinEventHook, DWORD event, HWND hwnd, LONG idObject, LONG idChild, DWORD idEventThread, DWORD dwmsEventTime) WINEVENTPROC;
7982
7983 extern(Windows) export HWINEVENTHOOK SetWinEventHook(
7984 DWORD eventMin,
7985 DWORD eventMax,
7986 HMODULE hmodWinEventProc,
7987 WINEVENTPROC pfnWinEventProc,
7988 DWORD idProcess,
7989 DWORD idThread,
7990 DWORD dwFlags);
7991
7992 // #if(_WIN32_WINNT >= 0x0501)
7993 extern(Windows) export BOOL IsWinEventHookInstalled(
7994 DWORD event);
7995 // #endif /* _WIN32_WINNT >= 0x0501 */
7996
7997 enum : uint { WINEVENT_OUTOFCONTEXT = 0x0000 }
7998 enum : uint { WINEVENT_SKIPOWNTHREAD = 0x0001 }
7999 enum : uint { WINEVENT_SKIPOWNPROCESS = 0x0002 }
8000 enum : uint { WINEVENT_INCONTEXT = 0x0004 }
8001
8002 extern(Windows) export BOOL UnhookWinEvent(
8003 HWINEVENTHOOK hWinEventHook);
8004
8005 enum : uint { CHILDID_SELF = 0 }
8006 enum : uint { INDEXID_OBJECT = 0 }
8007 enum : uint { INDEXID_CONTAINER = 0 }
8008
8009 enum : uint { OBJID_WINDOW = cast(LONG)0x00000000 }
8010 enum : uint { OBJID_SYSMENU = cast(LONG)0xFFFFFFFF }
8011 enum : uint { OBJID_TITLEBAR = cast(LONG)0xFFFFFFFE }
8012 enum : uint { OBJID_MENU = cast(LONG)0xFFFFFFFD }
8013 enum : uint { OBJID_CLIENT = cast(LONG)0xFFFFFFFC }
8014 enum : uint { OBJID_VSCROLL = cast(LONG)0xFFFFFFFB }
8015 enum : uint { OBJID_HSCROLL = cast(LONG)0xFFFFFFFA }
8016 enum : uint { OBJID_SIZEGRIP = cast(LONG)0xFFFFFFF9 }
8017 enum : uint { OBJID_CARET = cast(LONG)0xFFFFFFF8 }
8018 enum : uint { OBJID_CURSOR = cast(LONG)0xFFFFFFF7 }
8019 enum : uint { OBJID_ALERT = cast(LONG)0xFFFFFFF6 }
8020 enum : uint { OBJID_SOUND = cast(LONG)0xFFFFFFF5 }
8021 enum : uint { OBJID_QUERYCLASSNAMEIDX = cast(LONG)0xFFFFFFF4 }
8022 enum : uint { OBJID_NATIVEOM = cast(LONG)0xFFFFFFF0 }
8023
8024 enum : uint { EVENT_MIN = 0x00000001 }
8025 enum : uint { EVENT_MAX = 0x7FFFFFFF }
8026
8027 enum : uint { EVENT_SYSTEM_SOUND = 0x0001 }
8028
8029 enum : uint { EVENT_SYSTEM_ALERT = 0x0002 }
8030
8031 enum : uint { EVENT_SYSTEM_FOREGROUND = 0x0003 }
8032
8033 enum : uint { EVENT_SYSTEM_MENUSTART = 0x0004 }
8034 enum : uint { EVENT_SYSTEM_MENUEND = 0x0005 }
8035
8036 enum : uint { EVENT_SYSTEM_MENUPOPUPSTART = 0x0006 }
8037 enum : uint { EVENT_SYSTEM_MENUPOPUPEND = 0x0007 }
8038
8039 enum : uint { EVENT_SYSTEM_CAPTURESTART = 0x0008 }
8040 enum : uint { EVENT_SYSTEM_CAPTUREEND = 0x0009 }
8041
8042 enum : uint { EVENT_SYSTEM_MOVESIZESTART = 0x000A }
8043 enum : uint { EVENT_SYSTEM_MOVESIZEEND = 0x000B }
8044
8045 enum : uint { EVENT_SYSTEM_CONTEXTHELPSTART = 0x000C }
8046 enum : uint { EVENT_SYSTEM_CONTEXTHELPEND = 0x000D }
8047
8048 enum : uint { EVENT_SYSTEM_DRAGDROPSTART = 0x000E }
8049 enum : uint { EVENT_SYSTEM_DRAGDROPEND = 0x000F }
8050
8051 enum : uint { EVENT_SYSTEM_DIALOGSTART = 0x0010 }
8052 enum : uint { EVENT_SYSTEM_DIALOGEND = 0x0011 }
8053
8054 enum : uint { EVENT_SYSTEM_SCROLLINGSTART = 0x0012 }
8055 enum : uint { EVENT_SYSTEM_SCROLLINGEND = 0x0013 }
8056
8057 enum : uint { EVENT_SYSTEM_SWITCHSTART = 0x0014 }
8058 enum : uint { EVENT_SYSTEM_SWITCHEND = 0x0015 }
8059
8060 enum : uint { EVENT_SYSTEM_MINIMIZESTART = 0x0016 }
8061 enum : uint { EVENT_SYSTEM_MINIMIZEEND = 0x0017 }
8062
8063 // #if(_WIN32_WINNT >= 0x0501)
8064 enum : uint { EVENT_CONSOLE_CARET = 0x4001 }
8065 enum : uint { EVENT_CONSOLE_UPDATE_REGION = 0x4002 }
8066 enum : uint { EVENT_CONSOLE_UPDATE_SIMPLE = 0x4003 }
8067 enum : uint { EVENT_CONSOLE_UPDATE_SCROLL = 0x4004 }
8068 enum : uint { EVENT_CONSOLE_LAYOUT = 0x4005 }
8069 enum : uint { EVENT_CONSOLE_START_APPLICATION = 0x4006 }
8070 enum : uint { EVENT_CONSOLE_END_APPLICATION = 0x4007 }
8071
8072 enum : uint { CONSOLE_APPLICATION_16BIT = 0x0001 }
8073
8074 enum : uint { CONSOLE_CARET_SELECTION = 0x0001 }
8075 enum : uint { CONSOLE_CARET_VISIBLE = 0x0002 }
8076 // #endif /* _WIN32_WINNT >= 0x0501 */
8077
8078 enum : uint { EVENT_OBJECT_CREATE = 0x8000 }
8079 enum : uint { EVENT_OBJECT_DESTROY = 0x8001 }
8080 enum : uint { EVENT_OBJECT_SHOW = 0x8002 }
8081 enum : uint { EVENT_OBJECT_HIDE = 0x8003 }
8082 enum : uint { EVENT_OBJECT_REORDER = 0x8004 }
8083
8084 enum : uint { EVENT_OBJECT_FOCUS = 0x8005 }
8085 enum : uint { EVENT_OBJECT_SELECTION = 0x8006 }
8086 enum : uint { EVENT_OBJECT_SELECTIONADD = 0x8007 }
8087 enum : uint { EVENT_OBJECT_SELECTIONREMOVE = 0x8008 }
8088 enum : uint { EVENT_OBJECT_SELECTIONWITHIN = 0x8009 }
8089
8090 enum : uint { EVENT_OBJECT_STATECHANGE = 0x800A }
8091
8092 enum : uint { EVENT_OBJECT_LOCATIONCHANGE = 0x800B }
8093
8094 enum : uint { EVENT_OBJECT_NAMECHANGE = 0x800C }
8095 enum : uint { EVENT_OBJECT_DESCRIPTIONCHANGE = 0x800D }
8096 enum : uint { EVENT_OBJECT_VALUECHANGE = 0x800E }
8097 enum : uint { EVENT_OBJECT_PARENTCHANGE = 0x800F }
8098 enum : uint { EVENT_OBJECT_HELPCHANGE = 0x8010 }
8099 enum : uint { EVENT_OBJECT_DEFACTIONCHANGE = 0x8011 }
8100 enum : uint { EVENT_OBJECT_ACCELERATORCHANGE = 0x8012 }
8101
8102 enum : uint { SOUND_SYSTEM_STARTUP = 1 }
8103 enum : uint { SOUND_SYSTEM_SHUTDOWN = 2 }
8104 enum : uint { SOUND_SYSTEM_BEEP = 3 }
8105 enum : uint { SOUND_SYSTEM_ERROR = 4 }
8106 enum : uint { SOUND_SYSTEM_QUESTION = 5 }
8107 enum : uint { SOUND_SYSTEM_WARNING = 6 }
8108 enum : uint { SOUND_SYSTEM_INFORMATION = 7 }
8109 enum : uint { SOUND_SYSTEM_MAXIMIZE = 8 }
8110 enum : uint { SOUND_SYSTEM_MINIMIZE = 9 }
8111 enum : uint { SOUND_SYSTEM_RESTOREUP = 10 }
8112 enum : uint { SOUND_SYSTEM_RESTOREDOWN = 11 }
8113 enum : uint { SOUND_SYSTEM_APPSTART = 12 }
8114 enum : uint { SOUND_SYSTEM_FAULT = 13 }
8115 enum : uint { SOUND_SYSTEM_APPEND = 14 }
8116 enum : uint { SOUND_SYSTEM_MENUCOMMAND = 15 }
8117 enum : uint { SOUND_SYSTEM_MENUPOPUP = 16 }
8118 enum : uint { CSOUND_SYSTEM = 16 }
8119
8120 enum : uint { ALERT_SYSTEM_INFORMATIONAL = 1 }
8121 enum : uint { ALERT_SYSTEM_WARNING = 2 }
8122 enum : uint { ALERT_SYSTEM_ERROR = 3 }
8123 enum : uint { ALERT_SYSTEM_QUERY = 4 }
8124 enum : uint { ALERT_SYSTEM_CRITICAL = 5 }
8125 enum : uint { CALERT_SYSTEM = 6 }
8126
8127 struct tagGUITHREADINFO {
8128 DWORD cbSize;
8129 DWORD flags;
8130 HWND hwndActive;
8131 HWND hwndFocus;
8132 HWND hwndCapture;
8133 HWND hwndMenuOwner;
8134 HWND hwndMoveSize;
8135 HWND hwndCaret;
8136 RECT rcCaret;
8137 }
8138 alias tagGUITHREADINFO GUITHREADINFO;
8139 alias tagGUITHREADINFO* PGUITHREADINFO;
8140 alias tagGUITHREADINFO* LPGUITHREADINFO;
8141
8142 enum : uint { GUI_CARETBLINKING = 0x00000001 }
8143 enum : uint { GUI_INMOVESIZE = 0x00000002 }
8144 enum : uint { GUI_INMENUMODE = 0x00000004 }
8145 enum : uint { GUI_SYSTEMMENUMODE = 0x00000008 }
8146 enum : uint { GUI_POPUPMENUMODE = 0x00000010 }
8147 // #if(_WIN32_WINNT >= 0x0501)
8148 enum : uint { GUI_16BITTASK = 0x00000020 }
8149 // #endif /* _WIN32_WINNT >= 0x0501 */
8150
8151 extern(Windows) export BOOL GetGUIThreadInfo(
8152 DWORD idThread,
8153 PGUITHREADINFO pgui);
8154
8155 extern(Windows) export UINT GetWindowModuleFileNameA(
8156 HWND hwnd,
8157 LPSTR pszFileName,
8158 UINT cchFileNameMax);
8159 extern(Windows) export UINT GetWindowModuleFileNameW(
8160 HWND hwnd,
8161 LPWSTR pszFileName,
8162 UINT cchFileNameMax);
8163 // #ifdef UNICODE
8164 alias GetWindowModuleFileNameW GetWindowModuleFileName;
8165 // #else
8166 // #...
8167 // #endif // !UNICODE
8168
8169 // #ifndef NO_STATE_FLAGS
8170 enum : uint { STATE_SYSTEM_UNAVAILABLE = 0x00000001 }
8171 enum : uint { STATE_SYSTEM_SELECTED = 0x00000002 }
8172 enum : uint { STATE_SYSTEM_FOCUSED = 0x00000004 }
8173 enum : uint { STATE_SYSTEM_PRESSED = 0x00000008 }
8174 enum : uint { STATE_SYSTEM_CHECKED = 0x00000010 }
8175 enum : uint { STATE_SYSTEM_MIXED = 0x00000020 }
8176 alias STATE_SYSTEM_MIXED STATE_SYSTEM_INDETERMINATE;
8177 enum : uint { STATE_SYSTEM_READONLY = 0x00000040 }
8178 enum : uint { STATE_SYSTEM_HOTTRACKED = 0x00000080 }
8179 enum : uint { STATE_SYSTEM_DEFAULT = 0x00000100 }
8180 enum : uint { STATE_SYSTEM_EXPANDED = 0x00000200 }
8181 enum : uint { STATE_SYSTEM_COLLAPSED = 0x00000400 }
8182 enum : uint { STATE_SYSTEM_BUSY = 0x00000800 }
8183 enum : uint { STATE_SYSTEM_FLOATING = 0x00001000 }
8184 enum : uint { STATE_SYSTEM_MARQUEED = 0x00002000 }
8185 enum : uint { STATE_SYSTEM_ANIMATED = 0x00004000 }
8186 enum : uint { STATE_SYSTEM_INVISIBLE = 0x00008000 }
8187 enum : uint { STATE_SYSTEM_OFFSCREEN = 0x00010000 }
8188 enum : uint { STATE_SYSTEM_SIZEABLE = 0x00020000 }
8189 enum : uint { STATE_SYSTEM_MOVEABLE = 0x00040000 }
8190 enum : uint { STATE_SYSTEM_SELFVOICING = 0x00080000 }
8191 enum : uint { STATE_SYSTEM_FOCUSABLE = 0x00100000 }
8192 enum : uint { STATE_SYSTEM_SELECTABLE = 0x00200000 }
8193 enum : uint { STATE_SYSTEM_LINKED = 0x00400000 }
8194 enum : uint { STATE_SYSTEM_TRAVERSED = 0x00800000 }
8195 enum : uint { STATE_SYSTEM_MULTISELECTABLE = 0x01000000 }
8196 enum : uint { STATE_SYSTEM_EXTSELECTABLE = 0x02000000 }
8197 enum : uint { STATE_SYSTEM_ALERT_LOW = 0x04000000 }
8198 enum : uint { STATE_SYSTEM_ALERT_MEDIUM = 0x08000000 }
8199 enum : uint { STATE_SYSTEM_ALERT_HIGH = 0x10000000 }
8200 enum : uint { STATE_SYSTEM_PROTECTED = 0x20000000 }
8201 enum : uint { STATE_SYSTEM_VALID = 0x3FFFFFFF }
8202 // #endif
8203
8204 enum : uint { CCHILDREN_TITLEBAR = 5 }
8205 enum : uint { CCHILDREN_SCROLLBAR = 5 }
8206
8207 struct tagCURSORINFO {
8208 DWORD cbSize;
8209 DWORD flags;
8210 HCURSOR hCursor;
8211 POINT ptScreenPos;
8212 }
8213 alias tagCURSORINFO CURSORINFO;
8214 alias tagCURSORINFO* PCURSORINFO;
8215 alias tagCURSORINFO* LPCURSORINFO;
8216
8217 enum : uint { CURSOR_SHOWING = 0x00000001 }
8218
8219 extern(Windows) export BOOL GetCursorInfo(
8220 PCURSORINFO pci
8221 );
8222
8223 struct tagWINDOWINFO {
8224 DWORD cbSize;
8225 RECT rcWindow;
8226 RECT rcClient;
8227 DWORD dwStyle;
8228 DWORD dwExStyle;
8229 DWORD dwWindowStatus;
8230 UINT cxWindowBorders;
8231 UINT cyWindowBorders;
8232 ATOM atomWindowType;
8233 WORD wCreatorVersion;
8234 }
8235 alias tagWINDOWINFO WINDOWINFO;
8236 alias tagWINDOWINFO* PWINDOWINFO;
8237 alias tagWINDOWINFO* LPWINDOWINFO;
8238
8239 enum : uint { WS_ACTIVECAPTION = 0x0001 }
8240
8241 extern(Windows) export BOOL GetWindowInfo(
8242 HWND hwnd,
8243 PWINDOWINFO pwi
8244 );
8245
8246 struct tagTITLEBARINFO {
8247 DWORD cbSize;
8248 RECT rcTitleBar;
8249 DWORD rgstate[CCHILDREN_TITLEBAR+1];
8250 }
8251 alias tagTITLEBARINFO TITLEBARINFO;
8252 alias tagTITLEBARINFO* PTITLEBARINFO;
8253 alias tagTITLEBARINFO* LPTITLEBARINFO;
8254
8255 extern(Windows) export BOOL GetTitleBarInfo(
8256 HWND hwnd,
8257 PTITLEBARINFO pti
8258 );
8259
8260 struct tagMENUBARINFO {
8261 DWORD cbSize;
8262 RECT rcBar;
8263 HMENU hMenu;
8264 HWND hwndMenu;
8265 // BOOL fBarFocused:1;
8266 // BOOL fFocused:1;
8267 }
8268 alias tagMENUBARINFO MENUBARINFO;
8269 alias tagMENUBARINFO* PMENUBARINFO;
8270 alias tagMENUBARINFO* LPMENUBARINFO;
8271
8272 extern(Windows) export BOOL GetMenuBarInfo(
8273 HWND hwnd,
8274 LONG idObject,
8275 LONG idItem,
8276 PMENUBARINFO pmbi
8277 );
8278
8279 struct tagSCROLLBARINFO {
8280 DWORD cbSize;
8281 RECT rcScrollBar;
8282 int dxyLineButton;
8283 int xyThumbTop;
8284 int xyThumbBottom;
8285 int reserved;
8286 DWORD rgstate[CCHILDREN_SCROLLBAR+1];
8287 }
8288 alias tagSCROLLBARINFO SCROLLBARINFO;
8289 alias tagSCROLLBARINFO* PSCROLLBARINFO;
8290 alias tagSCROLLBARINFO* LPSCROLLBARINFO;
8291
8292 extern(Windows) export BOOL GetScrollBarInfo(
8293 HWND hwnd,
8294 LONG idObject,
8295 PSCROLLBARINFO psbi
8296 );
8297
8298 struct tagCOMBOBOXINFO {
8299 DWORD cbSize;
8300 RECT rcItem;
8301 RECT rcButton;
8302 DWORD stateButton;
8303 HWND hwndCombo;
8304 HWND hwndItem;
8305 HWND hwndList;
8306 }
8307 alias tagCOMBOBOXINFO COMBOBOXINFO;
8308 alias tagCOMBOBOXINFO* PCOMBOBOXINFO;
8309 alias tagCOMBOBOXINFO* LPCOMBOBOXINFO;
8310
8311 extern(Windows) export BOOL GetComboBoxInfo(
8312 HWND hwndCombo,
8313 PCOMBOBOXINFO pcbi
8314 );
8315
8316 enum : uint { GA_PARENT = 1 }
8317 enum : uint { GA_ROOT = 2 }
8318 enum : uint { GA_ROOTOWNER = 3 }
8319
8320 extern(Windows) export HWND GetAncestor(
8321 HWND hwnd,
8322 UINT gaFlags
8323 );
8324
8325 extern(Windows) export HWND RealChildWindowFromPoint(
8326 HWND hwndParent,
8327 POINT ptParentClientCoords
8328 );
8329
8330 extern(Windows) export UINT RealGetWindowClassA(
8331 HWND hwnd,
8332 LPSTR pszType,
8333 UINT cchType
8334 );
8335
8336 extern(Windows) export UINT RealGetWindowClassW(
8337 HWND hwnd,
8338 LPWSTR pszType,
8339 UINT cchType
8340 );
8341 // #ifdef UNICODE
8342 alias RealGetWindowClassW RealGetWindowClass;
8343 // #else
8344 // #...
8345 // #endif // !UNICODE
8346
8347 struct tagALTTABINFO {
8348 DWORD cbSize;
8349 int cItems;
8350 int cColumns;
8351 int cRows;
8352 int iColFocus;
8353 int iRowFocus;
8354 int cxItem;
8355 int cyItem;
8356 POINT ptStart;
8357 }
8358 alias tagALTTABINFO ALTTABINFO;
8359 alias tagALTTABINFO* PALTTABINFO;
8360 alias tagALTTABINFO* LPALTTABINFO;
8361
8362 extern(Windows) export BOOL GetAltTabInfoA(
8363 HWND hwnd,
8364 int iItem,
8365 PALTTABINFO pati,
8366 LPSTR pszItemText,
8367 UINT cchItemText
8368 );
8369 extern(Windows) export BOOL GetAltTabInfoW(
8370 HWND hwnd,
8371 int iItem,
8372 PALTTABINFO pati,
8373 LPWSTR pszItemText,
8374 UINT cchItemText
8375 );
8376 // #ifdef UNICODE
8377 alias GetAltTabInfoW GetAltTabInfo;
8378 // #else
8379 // #...
8380 // #endif // !UNICODE
8381
8382 extern(Windows) export DWORD GetListBoxInfo(
8383 HWND hwnd
8384 );
8385
8386 // #endif /* NOWINABLE */
8387 // #endif /* WINVER >= 0x0500 */
8388
8389 // #if(_WIN32_WINNT >= 0x0500)
8390 extern(Windows) export BOOL LockWorkStation();
8391 // #endif /* _WIN32_WINNT >= 0x0500 */
8392
8393 // #if(_WIN32_WINNT >= 0x0500)
8394
8395 extern(Windows) export BOOL UserHandleGrantAccess(
8396 HANDLE hUserHandle,
8397 HANDLE hJob,
8398 BOOL bGrant);
8399
8400 // #endif /* _WIN32_WINNT >= 0x0500 */
8401
8402 // #if(_WIN32_WINNT >= 0x0501)
8403
8404 alias void* HRAWINPUT;
8405
8406 // #define GET_RAWINPUT_CODE_WPARAM(wParam) ((wParam) & 0xff)
8407
8408 enum : uint { RIM_INPUT = 0 }
8409
8410 enum : uint { RIM_INPUTSINK = 1 }
8411
8412 struct tagRAWINPUTHEADER {
8413 DWORD dwType;
8414 DWORD dwSize;
8415 HANDLE hDevice;
8416 WPARAM wParam;
8417 }
8418 alias tagRAWINPUTHEADER RAWINPUTHEADER;
8419 alias tagRAWINPUTHEADER* PRAWINPUTHEADER;
8420 alias tagRAWINPUTHEADER* LPRAWINPUTHEADER;
8421
8422 enum : uint { RIM_TYPEMOUSE = 0 }
8423 enum : uint { RIM_TYPEKEYBOARD = 1 }
8424 enum : uint { RIM_TYPEHID = 2 }
8425
8426 struct tagRAWMOUSE {
8427
8428 USHORT usFlags;
8429 union {
8430 ULONG ulButtons;
8431 struct {
8432 USHORT usButtonFlags;
8433 USHORT usButtonData;
8434 }
8435
8436 }
8437
8438 ULONG ulRawButtons;
8439 LONG lLastX;
8440 LONG lLastY;
8441 ULONG ulExtraInformation;
8442 }
8443 alias tagRAWMOUSE RAWMOUSE;
8444 alias tagRAWMOUSE* PRAWMOUSE;
8445 alias tagRAWMOUSE* LPRAWMOUSE;
8446
8447 enum : uint { RI_MOUSE_LEFT_BUTTON_DOWN = 0x0001 }
8448 enum : uint { RI_MOUSE_LEFT_BUTTON_UP = 0x0002 }
8449 enum : uint { RI_MOUSE_RIGHT_BUTTON_DOWN = 0x0004 }
8450 enum : uint { RI_MOUSE_RIGHT_BUTTON_UP = 0x0008 }
8451 enum : uint { RI_MOUSE_MIDDLE_BUTTON_DOWN = 0x0010 }
8452 enum : uint { RI_MOUSE_MIDDLE_BUTTON_UP = 0x0020 }
8453
8454 alias RI_MOUSE_LEFT_BUTTON_DOWN RI_MOUSE_BUTTON_1_DOWN;
8455 alias RI_MOUSE_LEFT_BUTTON_UP RI_MOUSE_BUTTON_1_UP;
8456 alias RI_MOUSE_RIGHT_BUTTON_DOWN RI_MOUSE_BUTTON_2_DOWN;
8457 alias RI_MOUSE_RIGHT_BUTTON_UP RI_MOUSE_BUTTON_2_UP;
8458 alias RI_MOUSE_MIDDLE_BUTTON_DOWN RI_MOUSE_BUTTON_3_DOWN;
8459 alias RI_MOUSE_MIDDLE_BUTTON_UP RI_MOUSE_BUTTON_3_UP;
8460
8461 enum : uint { RI_MOUSE_BUTTON_4_DOWN = 0x0040 }
8462 enum : uint { RI_MOUSE_BUTTON_4_UP = 0x0080 }
8463 enum : uint { RI_MOUSE_BUTTON_5_DOWN = 0x0100 }
8464 enum : uint { RI_MOUSE_BUTTON_5_UP = 0x0200 }
8465
8466 enum : uint { RI_MOUSE_WHEEL = 0x0400 }
8467
8468 enum : uint { MOUSE_MOVE_RELATIVE = 0 }
8469 enum : uint { MOUSE_MOVE_ABSOLUTE = 1 }
8470 enum : uint { MOUSE_VIRTUAL_DESKTOP = 0x02 }
8471 enum : uint { MOUSE_ATTRIBUTES_CHANGED = 0x04 }
8472
8473 struct tagRAWKEYBOARD {
8474
8475 USHORT MakeCode;
8476 USHORT Flags;
8477 USHORT Reserved;
8478 USHORT VKey;
8479 UINT Message;
8480 ULONG ExtraInformation;
8481 }
8482 alias tagRAWKEYBOARD RAWKEYBOARD;
8483 alias tagRAWKEYBOARD* PRAWKEYBOARD;
8484 alias tagRAWKEYBOARD* LPRAWKEYBOARD;
8485
8486 enum : uint { KEYBOARD_OVERRUN_MAKE_CODE = 0xFF }
8487
8488 enum : uint { RI_KEY_MAKE = 0 }
8489 enum : uint { RI_KEY_BREAK = 1 }
8490 enum : uint { RI_KEY_E0 = 2 }
8491 enum : uint { RI_KEY_E1 = 4 }
8492 enum : uint { RI_KEY_TERMSRV_SET_LED = 8 }
8493 enum : uint { RI_KEY_TERMSRV_SHADOW = 0x10 }
8494
8495 struct tagRAWHID {
8496 DWORD dwSizeHid;
8497 DWORD dwCount;
8498 BYTE bRawData[1];
8499 }
8500 alias tagRAWHID RAWHID;
8501 alias tagRAWHID* PRAWHID;
8502 alias tagRAWHID* LPRAWHID;
8503
8504 struct tagRAWINPUT {
8505 RAWINPUTHEADER header;
8506 union {
8507 RAWMOUSE mouse;
8508 RAWKEYBOARD keyboard;
8509 RAWHID hid;
8510 }
8511
8512 }
8513 alias tagRAWINPUT RAWINPUT;
8514 alias tagRAWINPUT* PRAWINPUT;
8515 alias tagRAWINPUT* LPRAWINPUT;
8516
8517 // #ifdef _WIN64
8518 // #...
8519 // #else // _WIN64
8520 uint RAWINPUT_ALIGN(uint x){ return ((x + DWORD.sizeof - 1) & ~(DWORD.sizeof - 1)); }
8521 // #endif // _WIN64
8522
8523 // #define NEXTRAWINPUTBLOCK(ptr) ((PRAWINPUT)RAWINPUT_ALIGN((ULONG_PTR)((PBYTE)(ptr) + (ptr)->header.dwSize)))
8524
8525 enum : uint { RID_INPUT = 0x10000003 }
8526 enum : uint { RID_HEADER = 0x10000005 }
8527
8528 extern(Windows) export UINT GetRawInputData(
8529 HRAWINPUT hRawInput,
8530 UINT uiCommand,
8531 LPVOID pData,
8532 PUINT pcbSize,
8533 UINT cbSizeHeader);
8534
8535 enum : uint { RIDI_PREPARSEDDATA = 0x20000005 }
8536 enum : uint { RIDI_DEVICENAME = 0x20000007 }
8537 enum : uint { RIDI_DEVICEINFO = 0x2000000b }
8538
8539 struct tagRID_DEVICE_INFO_MOUSE {
8540 DWORD dwId;
8541 DWORD dwNumberOfButtons;
8542 DWORD dwSampleRate;
8543 }
8544 alias tagRID_DEVICE_INFO_MOUSE RID_DEVICE_INFO_MOUSE;
8545 alias tagRID_DEVICE_INFO_MOUSE* PRID_DEVICE_INFO_MOUSE;
8546
8547 struct tagRID_DEVICE_INFO_KEYBOARD {
8548 DWORD dwType;
8549 DWORD dwSubType;
8550 DWORD dwKeyboardMode;
8551 DWORD dwNumberOfFunctionKeys;
8552 DWORD dwNumberOfIndicators;
8553 DWORD dwNumberOfKeysTotal;
8554 }
8555 alias tagRID_DEVICE_INFO_KEYBOARD RID_DEVICE_INFO_KEYBOARD;
8556 alias tagRID_DEVICE_INFO_KEYBOARD* PRID_DEVICE_INFO_KEYBOARD;
8557
8558 struct tagRID_DEVICE_INFO_HID {
8559 DWORD dwVendorId;
8560 DWORD dwProductId;
8561 DWORD dwVersionNumber;
8562 USHORT usUsagePage;
8563 USHORT usUsage;
8564 }
8565 alias tagRID_DEVICE_INFO_HID RID_DEVICE_INFO_HID;
8566 alias tagRID_DEVICE_INFO_HID* PRID_DEVICE_INFO_HID;
8567
8568 struct tagRID_DEVICE_INFO {
8569 DWORD cbSize;
8570 DWORD dwType;
8571 union {
8572 RID_DEVICE_INFO_MOUSE mouse;
8573 RID_DEVICE_INFO_KEYBOARD keyboard;
8574 RID_DEVICE_INFO_HID hid;
8575 }
8576
8577 }
8578 alias tagRID_DEVICE_INFO RID_DEVICE_INFO;
8579 alias tagRID_DEVICE_INFO* PRID_DEVICE_INFO;
8580 alias tagRID_DEVICE_INFO* LPRID_DEVICE_INFO;
8581
8582 extern(Windows) export UINT GetRawInputDeviceInfoA(
8583 HANDLE hDevice,
8584 UINT uiCommand,
8585 LPVOID pData,
8586 PUINT pcbSize);
8587 extern(Windows) export UINT GetRawInputDeviceInfoW(
8588 HANDLE hDevice,
8589 UINT uiCommand,
8590 LPVOID pData,
8591 PUINT pcbSize);
8592 // #ifdef UNICODE
8593 alias GetRawInputDeviceInfoW GetRawInputDeviceInfo;
8594 // #else
8595 // #...
8596 // #endif // !UNICODE
8597
8598 extern(Windows) export UINT GetRawInputBuffer(
8599 PRAWINPUT pData,
8600 PUINT pcbSize,
8601 UINT cbSizeHeader);
8602
8603 struct tagRAWINPUTDEVICE {
8604 USHORT usUsagePage;
8605 USHORT usUsage;
8606 DWORD dwFlags;
8607 HWND hwndTarget;
8608 }
8609 alias tagRAWINPUTDEVICE RAWINPUTDEVICE;
8610 alias tagRAWINPUTDEVICE* PRAWINPUTDEVICE;
8611 alias tagRAWINPUTDEVICE* LPRAWINPUTDEVICE;
8612
8613 alias RAWINPUTDEVICE* PCRAWINPUTDEVICE;
8614
8615 enum : uint { RIDEV_REMOVE = 0x00000001 }
8616 enum : uint { RIDEV_EXCLUDE = 0x00000010 }
8617 enum : uint { RIDEV_PAGEONLY = 0x00000020 }
8618 enum : uint { RIDEV_NOLEGACY = 0x00000030 }
8619 enum : uint { RIDEV_CAPTUREMOUSE = 0x00000200 }
8620 enum : uint { RIDEV_NOHOTKEYS = 0x00000200 }
8621 enum : uint { RIDEV_EXMODEMASK = 0x000000F0 }
8622
8623 // #define RIDEV_EXMODE(mode) ((mode) & RIDEV_EXMODEMASK)
8624
8625 extern(Windows) export BOOL RegisterRawInputDevices(
8626 PCRAWINPUTDEVICE pRawInputDevices,
8627 UINT uiNumDevices,
8628 UINT cbSize);
8629
8630 extern(Windows) export UINT GetRegisteredRawInputDevices(
8631 PRAWINPUTDEVICE pRawInputDevices,
8632 PUINT puiNumDevices,
8633 UINT cbSize);
8634
8635 struct tagRAWINPUTDEVICELIST {
8636 HANDLE hDevice;
8637 DWORD dwType;
8638 }
8639 alias tagRAWINPUTDEVICELIST RAWINPUTDEVICELIST;
8640 alias tagRAWINPUTDEVICELIST* PRAWINPUTDEVICELIST;
8641
8642 extern(Windows) export UINT GetRawInputDeviceList(
8643 PRAWINPUTDEVICELIST pRawInputDeviceList,
8644 PUINT puiNumDevices,
8645 UINT cbSize);
8646
8647 extern(Windows) export LRESULT DefRawInputProc(
8648 PRAWINPUT* paRawInput,
8649 INT nInput,
8650 UINT cbSizeHeader);
8651
8652 // #endif /* _WIN32_WINNT >= 0x0501 */
8653
8654 // #if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */
8655 // #if ISOLATION_AWARE_ENABLED
8656 // #...
8657 // #endif /* ISOLATION_AWARE_ENABLED */
8658 // #endif /* RC */
8659
8660 // #ifdef __cplusplus
8661 // }
8662 // #endif /* __cplusplus */
8663
8664 // #endif /* !_WINUSER_ */
8665