comparison win32/winuser.d @ 1:4a9dcbd9e54f

-files of 0.13 beta -fixes so that it now compiles with the current dmd version
author marton@basel.hu
date Tue, 05 Apr 2011 20:44:01 +0200
parents
children
comparison
equal deleted inserted replaced
0:586e4a649642 1:4a9dcbd9e54f
1 /***********************************************************************\
2 * winuser.d *
3 * *
4 * Windows API header module *
5 * *
6 * Translated from MinGW Windows headers *
7 * *
8 * Placed into public domain *
9 \***********************************************************************/
10 module win32.winuser;
11 pragma(lib, "user32.lib");
12
13 // Conversion Notes:
14 // The following macros were for win16 only, and are not included in this file:
15 //#define EnumTaskWindows(h, f, p) EnumThreadWindows((DWORD)h, f, p)
16 //#define PostAppMessageA(t, m, w, l) PostThreadMessageA((DWORD)t, m, w, l)
17 //#define PostAppMessageW(t, m, w, l) PostThreadMessageW((DWORD)t, m, w, l)
18 //#define GetSysModalWindow() (NULL)
19 //#define SetSysModalWindow(h) (NULL)
20 //#define GetWindowTask(hWnd) ((HANDLE)GetWindowThreadProcessId(hWnd, NULL))
21 //#define DefHookProc(c, p, lp, h) CallNextHookEx((HHOOK)*h, c, p, lp)
22
23 private import win32.w32api, win32.winbase, win32.wingdi;
24 private import win32.windef; // for HMONITOR
25
26 // FIXME: clean up Windows version support
27
28 template MAKEINTATOM_T(int i) {
29 const LPTSTR MAKEINTATOM_T = cast(LPTSTR) i;
30 }
31
32 const WC_DIALOG = MAKEINTATOM_T!(0x8002);
33
34 const FVIRTKEY = 1;
35 const FNOINVERT = 2;
36 const FSHIFT = 4;
37 const FCONTROL = 8;
38 const FALT = 16;
39
40 const ATF_TIMEOUTON = 1;
41 const ATF_ONOFFFEEDBACK = 2;
42 const ATF_AVAILABLE = 4; // May be obsolete. Not in recent MS docs.
43
44 const WH_MIN = -1;
45 const WH_MSGFILTER = -1;
46 const WH_JOURNALRECORD = 0;
47 const WH_JOURNALPLAYBACK = 1;
48 const WH_KEYBOARD = 2;
49 const WH_GETMESSAGE = 3;
50 const WH_CALLWNDPROC = 4;
51 const WH_CBT = 5;
52 const WH_SYSMSGFILTER = 6;
53 const WH_MOUSE = 7;
54 const WH_HARDWARE = 8;
55 const WH_DEBUG = 9;
56 const WH_SHELL = 10;
57 const WH_FOREGROUNDIDLE = 11;
58 const WH_CALLWNDPROCRET = 12;
59 const WH_KEYBOARD_LL = 13;
60 const WH_MOUSE_LL = 14;
61 const WH_MAX = 14;
62 const WH_MINHOOK = WH_MIN;
63 const WH_MAXHOOK = WH_MAX;
64
65 enum {
66 HC_ACTION = 0,
67 HC_GETNEXT,
68 HC_SKIP,
69 HC_NOREMOVE, // = 3
70 HC_NOREM = HC_NOREMOVE,
71 HC_SYSMODALON,
72 HC_SYSMODALOFF
73 }
74
75 enum {
76 HCBT_MOVESIZE = 0,
77 HCBT_MINMAX,
78 HCBT_QS,
79 HCBT_CREATEWND,
80 HCBT_DESTROYWND,
81 HCBT_ACTIVATE,
82 HCBT_CLICKSKIPPED,
83 HCBT_KEYSKIPPED,
84 HCBT_SYSCOMMAND,
85 HCBT_SETFOCUS // = 9
86 }
87
88 enum {
89 CF_TEXT = 1,
90 CF_BITMAP,
91 CF_METAFILEPICT,
92 CF_SYLK,
93 CF_DIF,
94 CF_TIFF,
95 CF_OEMTEXT,
96 CF_DIB,
97 CF_PALETTE,
98 CF_PENDATA,
99 CF_RIFF,
100 CF_WAVE,
101 CF_UNICODETEXT,
102 CF_ENHMETAFILE,
103 CF_HDROP,
104 CF_LOCALE,
105 CF_MAX, // = 17
106 CF_OWNERDISPLAY = 128,
107 CF_DSPTEXT,
108 CF_DSPBITMAP,
109 CF_DSPMETAFILEPICT, // = 131
110 CF_DSPENHMETAFILE = 142,
111 CF_PRIVATEFIRST = 512,
112 CF_PRIVATELAST = 767,
113 CF_GDIOBJFIRST = 768,
114 CF_GDIOBJLAST = 1023
115 }
116
117 const HKL_PREV = 0;
118 const HKL_NEXT = 1;
119
120 const KLF_ACTIVATE = 1;
121 const KLF_SUBSTITUTE_OK = 2;
122 const KLF_UNLOADPREVIOUS = 4;
123 const KLF_REORDER = 8;
124 const KLF_REPLACELANG = 16;
125 const KLF_NOTELLSHELL = 128;
126 const KLF_SETFORPROCESS = 256;
127 const KL_NAMELENGTH = 9;
128
129 const MF_ENABLED = 0;
130 const MF_GRAYED = 1;
131 const MF_DISABLED = 2;
132 const MF_BITMAP = 4;
133 const MF_CHECKED = 8;
134 const MF_MENUBARBREAK = 32;
135 const MF_MENUBREAK = 64;
136 const MF_OWNERDRAW = 256;
137 const MF_POPUP = 16;
138 const MF_SEPARATOR = 0x800;
139 const MF_STRING = 0;
140 const MF_UNCHECKED = 0;
141 const MF_DEFAULT = 4096;
142 const MF_SYSMENU = 0x2000;
143 const MF_HELP = 0x4000;
144 const MF_END = 128;
145 const MF_RIGHTJUSTIFY = 0x4000;
146 const MF_MOUSESELECT = 0x8000;
147 const MF_INSERT = 0;
148 const MF_CHANGE = 128;
149 const MF_APPEND = 256;
150 const MF_DELETE = 512;
151 const MF_REMOVE = 4096;
152 const MF_USECHECKBITMAPS = 512;
153 const MF_UNHILITE = 0;
154 const MF_HILITE = 128;
155
156 // Also defined in dbt.h
157 const BSM_ALLCOMPONENTS = 0;
158 const BSM_VXDS = 1;
159 const BSM_NETDRIVER = 2;
160 const BSM_INSTALLABLEDRIVERS = 4;
161 const BSM_APPLICATIONS = 8;
162 const BSM_ALLDESKTOPS = 16;
163
164 const BSF_QUERY = 0x00000001;
165 const BSF_IGNORECURRENTTASK = 0x00000002;
166 const BSF_FLUSHDISK = 0x00000004;
167 const BSF_NOHANG = 0x00000008;
168 const BSF_POSTMESSAGE = 0x00000010;
169 const BSF_FORCEIFHUNG = 0x00000020;
170 const BSF_NOTIMEOUTIFNOTHUNG = 0x00000040;
171
172 static if (_WIN32_WINNT >= 0x500) {
173 const BSF_ALLOWSFW = 0x00000080;
174 const BSF_SENDNOTIFYMESSAGE = 0x00000100;
175 }
176 static if (_WIN32_WINNT >= 0x501) {
177 const BSF_RETURNHDESK = 0x00000200;
178 const BSF_LUID = 0x00000400;
179 }
180
181 const BROADCAST_QUERY_DENY = 1112363332;
182 const DWORD ENUM_CURRENT_SETTINGS = -1;
183 const DWORD ENUM_REGISTRY_SETTINGS = -2;
184
185 const CDS_UPDATEREGISTRY = 1;
186 const CDS_TEST = 2;
187 const CDS_FULLSCREEN = 4;
188 const CDS_GLOBAL = 8;
189 const CDS_SET_PRIMARY = 16;
190 const CDS_NORESET = 0x10000000;
191 const CDS_SETRECT = 0x20000000;
192 const CDS_RESET = 0x40000000;
193
194 const DISP_CHANGE_RESTART = 1;
195 const DISP_CHANGE_SUCCESSFUL = 0;
196 const DISP_CHANGE_FAILED = -1;
197 const DISP_CHANGE_BADMODE = -2;
198 const DISP_CHANGE_NOTUPDATED = -3;
199 const DISP_CHANGE_BADFLAGS = -4;
200 const DISP_CHANGE_BADPARAM = -5;
201
202 const BST_UNCHECKED = 0;
203 const BST_CHECKED = 1;
204 const BST_INDETERMINATE = 2;
205 const BST_PUSHED = 4;
206 const BST_FOCUS = 8;
207
208 const MF_BYCOMMAND = 0;
209 const MF_BYPOSITION = 1024;
210 // [Redefined] MF_UNCHECKED=0
211 // [Redefined] MF_HILITE=128
212 // [Redefined] MF_UNHILITE=0
213
214 const CWP_ALL = 0;
215 const CWP_SKIPINVISIBLE = 1;
216 const CWP_SKIPDISABLED = 2;
217 const CWP_SKIPTRANSPARENT = 4;
218
219 const IMAGE_BITMAP=0;
220 const IMAGE_ICON=1;
221 const IMAGE_CURSOR=2;
222 const IMAGE_ENHMETAFILE=3;
223
224 const DF_ALLOWOTHERACCOUNTHOOK = 1;
225
226 const DESKTOP_READOBJECTS = 1;
227 const DESKTOP_CREATEWINDOW = 2;
228 const DESKTOP_CREATEMENU = 4;
229 const DESKTOP_HOOKCONTROL = 8;
230 const DESKTOP_JOURNALRECORD = 16;
231 const DESKTOP_JOURNALPLAYBACK = 32;
232 const DESKTOP_ENUMERATE = 64;
233 const DESKTOP_WRITEOBJECTS = 128;
234 const DESKTOP_SWITCHDESKTOP = 256;
235
236 const CW_USEDEFAULT = 0x80000000;
237
238 enum {
239 WS_OVERLAPPED = 0,
240 WS_TILED = WS_OVERLAPPED,
241 WS_MAXIMIZEBOX = 0x00010000,
242 WS_MINIMIZEBOX = 0x00020000,
243 WS_TABSTOP = 0x00010000,
244 WS_GROUP = 0x00020000,
245 WS_THICKFRAME = 0x00040000,
246 WS_SIZEBOX = WS_THICKFRAME,
247 WS_SYSMENU = 0x00080000,
248 WS_HSCROLL = 0x00100000,
249 WS_VSCROLL = 0x00200000,
250 WS_DLGFRAME = 0x00400000,
251 WS_BORDER = 0x00800000,
252 WS_CAPTION = 0x00c00000,
253 WS_OVERLAPPEDWINDOW = WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX,
254 WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW,
255 WS_MAXIMIZE = 0x01000000,
256 WS_CLIPCHILDREN = 0x02000000,
257 WS_CLIPSIBLINGS = 0x04000000,
258 WS_DISABLED = 0x08000000,
259 WS_VISIBLE = 0x10000000,
260 WS_MINIMIZE = 0x20000000,
261 WS_ICONIC = WS_MINIMIZE,
262 WS_CHILD = 0x40000000,
263 WS_CHILDWINDOW = 0x40000000,
264 WS_POPUP = 0x80000000,
265 WS_POPUPWINDOW = WS_POPUP|WS_BORDER|WS_SYSMENU,
266 }
267
268 const MDIS_ALLCHILDSTYLES = 1;
269
270 const BS_3STATE = 5;
271 const BS_AUTO3STATE = 6;
272 const BS_AUTOCHECKBOX = 3;
273 const BS_AUTORADIOBUTTON = 9;
274 const BS_BITMAP = 128;
275 const BS_BOTTOM = 0x800;
276 const BS_CENTER = 0x300;
277 const BS_CHECKBOX = 2;
278 const BS_DEFPUSHBUTTON = 1;
279 const BS_GROUPBOX = 7;
280 const BS_ICON = 64;
281 const BS_LEFT = 256;
282 const BS_LEFTTEXT = 32;
283 const BS_MULTILINE = 0x2000;
284 const BS_NOTIFY = 0x4000;
285 const BS_OWNERDRAW = 0xb;
286 const BS_PUSHBUTTON = 0;
287 const BS_PUSHLIKE = 4096;
288 const BS_RADIOBUTTON = 4;
289 const BS_RIGHT = 512;
290 const BS_RIGHTBUTTON = 32;
291 const BS_TEXT = 0;
292 const BS_TOP = 0x400;
293 const BS_USERBUTTON = 8;
294 const BS_VCENTER = 0xc00;
295 const BS_FLAT = 0x8000;
296
297 const CBS_AUTOHSCROLL = 64;
298 const CBS_DISABLENOSCROLL = 0x800;
299 const CBS_DROPDOWN = 2;
300 const CBS_DROPDOWNLIST = 3;
301 const CBS_HASSTRINGS = 512;
302 const CBS_LOWERCASE = 0x4000;
303 const CBS_NOINTEGRALHEIGHT = 0x400;
304 const CBS_OEMCONVERT = 128;
305 const CBS_OWNERDRAWFIXED = 16;
306 const CBS_OWNERDRAWVARIABLE = 32;
307 const CBS_SIMPLE = 1;
308 const CBS_SORT = 256;
309 const CBS_UPPERCASE = 0x2000;
310
311 const ES_AUTOHSCROLL = 128;
312 const ES_AUTOVSCROLL = 64;
313 const ES_CENTER = 1;
314 const ES_LEFT = 0;
315 const ES_LOWERCASE = 16;
316 const ES_MULTILINE = 4;
317 const ES_NOHIDESEL = 256;
318 const ES_NUMBER = 0x2000;
319 const ES_OEMCONVERT = 0x400;
320 const ES_PASSWORD = 32;
321 const ES_READONLY = 0x800;
322 const ES_RIGHT = 2;
323 const ES_UPPERCASE = 8;
324 const ES_WANTRETURN = 4096;
325
326 const LBS_DISABLENOSCROLL = 4096;
327 const LBS_EXTENDEDSEL = 0x800;
328 const LBS_HASSTRINGS = 64;
329 const LBS_MULTICOLUMN = 512;
330 const LBS_MULTIPLESEL = 8;
331 const LBS_NODATA = 0x2000;
332 const LBS_NOINTEGRALHEIGHT = 256;
333 const LBS_NOREDRAW = 4;
334 const LBS_NOSEL = 0x4000;
335 const LBS_NOTIFY = 1;
336 const LBS_OWNERDRAWFIXED = 16;
337 const LBS_OWNERDRAWVARIABLE = 32;
338 const LBS_SORT = 2;
339 const LBS_STANDARD = 0xa00003;
340 const LBS_USETABSTOPS = 128;
341 const LBS_WANTKEYBOARDINPUT = 0x400;
342
343 const SBS_BOTTOMALIGN = 4;
344 const SBS_HORZ = 0;
345 const SBS_LEFTALIGN = 2;
346 const SBS_RIGHTALIGN = 4;
347 const SBS_SIZEBOX = 8;
348 const SBS_SIZEBOXBOTTOMRIGHTALIGN = 4;
349 const SBS_SIZEBOXTOPLEFTALIGN = 2;
350 const SBS_SIZEGRIP = 16;
351 const SBS_TOPALIGN = 2;
352 const SBS_VERT = 1;
353
354 const SS_BITMAP = 14;
355 const SS_BLACKFRAME = 7;
356 const SS_BLACKRECT = 4;
357 const SS_CENTER = 1;
358 const SS_CENTERIMAGE = 512;
359 const SS_ENHMETAFILE = 15;
360 const SS_ETCHEDFRAME = 18;
361 const SS_ETCHEDHORZ = 16;
362 const SS_ETCHEDVERT = 17;
363 const SS_GRAYFRAME = 8;
364 const SS_GRAYRECT = 5;
365 const SS_ICON = 3;
366 const SS_LEFT = 0;
367 const SS_LEFTNOWORDWRAP = 0xc;
368 const SS_NOPREFIX = 128;
369 const SS_NOTIFY = 256;
370 const SS_OWNERDRAW = 0xd;
371 const SS_REALSIZEIMAGE = 0x800;
372 const SS_RIGHT = 2;
373 const SS_RIGHTJUST = 0x400;
374 const SS_SIMPLE = 11;
375 const SS_SUNKEN = 4096;
376 const SS_WHITEFRAME = 9;
377 const SS_WHITERECT = 6;
378 const SS_USERITEM = 10;
379 const SS_TYPEMASK = 0x0000001FL;
380 const SS_ENDELLIPSIS = 0x00004000L;
381 const SS_PATHELLIPSIS = 0x00008000L;
382 const SS_WORDELLIPSIS = 0x0000C000L;
383 const SS_ELLIPSISMASK = 0x0000C000L;
384
385 const DS_ABSALIGN = 0x0001;
386 const DS_3DLOOK = 0x0004;
387 const DS_SYSMODAL = 0x0002;
388 const DS_FIXEDSYS = 0x0008;
389 const DS_NOFAILCREATE = 0x0010;
390 const DS_LOCALEDIT = 0x0020;
391 const DS_SETFONT = 0x0040;
392 const DS_MODALFRAME = 0x0080;
393 const DS_NOIDLEMSG = 0x0100;
394 const DS_SETFOREGROUND = 0x0200;
395 const DS_CONTROL = 0x0400;
396 const DS_CENTER = 0x0800;
397 const DS_CENTERMOUSE = 0x1000;
398 const DS_CONTEXTHELP = 0x2000;
399 const DS_SHELLFONT = DS_SETFONT | DS_FIXEDSYS;
400
401 const WS_EX_ACCEPTFILES = 16;
402 const WS_EX_APPWINDOW = 0x40000;
403 const WS_EX_CLIENTEDGE = 512;
404 const WS_EX_COMPOSITED = 0x2000000; // XP
405 const WS_EX_CONTEXTHELP = 0x400;
406 const WS_EX_CONTROLPARENT = 0x10000;
407 const WS_EX_DLGMODALFRAME = 1;
408 const WS_EX_LAYERED = 0x80000; // w2k
409 const WS_EX_LAYOUTRTL = 0x400000; // w98, w2k
410 const WS_EX_LEFT = 0;
411 const WS_EX_LEFTSCROLLBAR = 0x4000;
412 const WS_EX_LTRREADING = 0;
413 const WS_EX_MDICHILD = 64;
414 const WS_EX_NOACTIVATE = 0x8000000; // w2k
415 const WS_EX_NOINHERITLAYOUT = 0x100000; // w2k
416 const WS_EX_NOPARENTNOTIFY = 4;
417 const WS_EX_OVERLAPPEDWINDOW = 0x300;
418 const WS_EX_PALETTEWINDOW = 0x188;
419 const WS_EX_RIGHT = 0x1000;
420 const WS_EX_RIGHTSCROLLBAR = 0;
421 const WS_EX_RTLREADING = 0x2000;
422 const WS_EX_STATICEDGE = 0x20000;
423 const WS_EX_TOOLWINDOW = 128;
424 const WS_EX_TOPMOST = 8;
425 const WS_EX_TRANSPARENT = 32;
426 const WS_EX_WINDOWEDGE = 256;
427
428 const WINSTA_ENUMDESKTOPS = 1;
429 const WINSTA_READATTRIBUTES = 2;
430 const WINSTA_ACCESSCLIPBOARD = 4;
431 const WINSTA_CREATEDESKTOP = 8;
432 const WINSTA_WRITEATTRIBUTES = 16;
433 const WINSTA_ACCESSGLOBALATOMS = 32;
434 const WINSTA_EXITWINDOWS = 64;
435 const WINSTA_ENUMERATE = 256;
436 const WINSTA_READSCREEN = 512;
437
438 const DDL_READWRITE = 0;
439 const DDL_READONLY = 1;
440 const DDL_HIDDEN = 2;
441 const DDL_SYSTEM = 4;
442 const DDL_DIRECTORY = 16;
443 const DDL_ARCHIVE = 32;
444 const DDL_POSTMSGS = 8192;
445 const DDL_DRIVES = 16384;
446 const DDL_EXCLUSIVE = 32768;
447
448 const DC_ACTIVE = 0x00000001;
449 const DC_SMALLCAP = 0x00000002;
450 const DC_ICON = 0x00000004;
451 const DC_TEXT = 0x00000008;
452 const DC_INBUTTON = 0x00000010;
453
454 static if (WINVER >= 0x500) {
455 const DC_GRADIENT=0x00000020;
456 }
457 static if (_WIN32_WINNT >= 0x501) {
458 const DC_BUTTONS=0x00001000;
459 }
460
461 // Where are these documented?
462 //const DC_CAPTION = DC_ICON|DC_TEXT|DC_BUTTONS;
463 //const DC_NC = DC_CAPTION|DC_FRAME;
464
465 const BDR_RAISEDOUTER = 1;
466 const BDR_SUNKENOUTER = 2;
467 const BDR_RAISEDINNER = 4;
468 const BDR_SUNKENINNER = 8;
469 const BDR_OUTER = 3;
470 const BDR_INNER = 0xc;
471 const BDR_RAISED = 5;
472 const BDR_SUNKEN = 10;
473
474 const EDGE_RAISED = BDR_RAISEDOUTER|BDR_RAISEDINNER;
475 const EDGE_SUNKEN = BDR_SUNKENOUTER|BDR_SUNKENINNER;
476 const EDGE_ETCHED = BDR_SUNKENOUTER|BDR_RAISEDINNER;
477 const EDGE_BUMP = BDR_RAISEDOUTER|BDR_SUNKENINNER;
478
479 const BF_LEFT = 1;
480 const BF_TOP = 2;
481 const BF_RIGHT = 4;
482 const BF_BOTTOM = 8;
483 const BF_TOPLEFT = BF_TOP|BF_LEFT;
484 const BF_TOPRIGHT = BF_TOP|BF_RIGHT;
485 const BF_BOTTOMLEFT = BF_BOTTOM|BF_LEFT;
486 const BF_BOTTOMRIGHT = BF_BOTTOM|BF_RIGHT;
487 const BF_RECT = BF_LEFT|BF_TOP|BF_RIGHT|BF_BOTTOM ;
488 const BF_DIAGONAL = 16;
489 const BF_DIAGONAL_ENDTOPRIGHT = BF_DIAGONAL|BF_TOP|BF_RIGHT;
490 const BF_DIAGONAL_ENDTOPLEFT = BF_DIAGONAL|BF_TOP|BF_LEFT;
491 const BF_DIAGONAL_ENDBOTTOMLEFT = BF_DIAGONAL|BF_BOTTOM|BF_LEFT;
492 const BF_DIAGONAL_ENDBOTTOMRIGHT = BF_DIAGONAL|BF_BOTTOM|BF_RIGHT;
493 const BF_MIDDLE = 0x800;
494 const BF_SOFT = 0x1000;
495 const BF_ADJUST = 0x2000;
496 const BF_FLAT = 0x4000;
497 const BF_MONO = 0x8000;
498
499 const DFC_CAPTION=1;
500 const DFC_MENU=2;
501 const DFC_SCROLL=3;
502 const DFC_BUTTON=4;
503 static if (WINVER >= 0x500) {
504 const DFC_POPUPMENU=5;
505 }// WINVER >= 0x500
506
507 const DFCS_CAPTIONCLOSE = 0;
508 const DFCS_CAPTIONMIN = 1;
509 const DFCS_CAPTIONMAX = 2;
510 const DFCS_CAPTIONRESTORE = 3;
511 const DFCS_CAPTIONHELP = 4;
512
513 const DFCS_MENUARROW = 0;
514 const DFCS_MENUCHECK = 1;
515 const DFCS_MENUBULLET = 2;
516 const DFCS_MENUARROWRIGHT = 4;
517
518 const DFCS_SCROLLUP = 0;
519 const DFCS_SCROLLDOWN = 1;
520 const DFCS_SCROLLLEFT = 2;
521 const DFCS_SCROLLRIGHT = 3;
522 const DFCS_SCROLLCOMBOBOX = 5;
523 const DFCS_SCROLLSIZEGRIP = 8;
524 const DFCS_SCROLLSIZEGRIPRIGHT = 16;
525
526 const DFCS_BUTTONCHECK = 0;
527 const DFCS_BUTTONRADIOIMAGE = 1;
528 const DFCS_BUTTONRADIOMASK = 2;
529 const DFCS_BUTTONRADIO = 4;
530 const DFCS_BUTTON3STATE = 8;
531 const DFCS_BUTTONPUSH = 16;
532 const DFCS_INACTIVE = 256;
533 const DFCS_PUSHED = 512;
534 const DFCS_CHECKED = 1024;
535 static if (WINVER >= 0x500) {
536 const DFCS_TRANSPARENT = 0x800;
537 const DFCS_HOT = 0x1000;
538 }
539 const DFCS_ADJUSTRECT = 0x2000;
540 const DFCS_FLAT = 0x4000;
541 const DFCS_MONO = 0x8000;
542
543 enum {
544 DST_COMPLEX = 0,
545 DST_TEXT,
546 DST_PREFIXTEXT,
547 DST_ICON,
548 DST_BITMAP // = 4
549 }
550
551 const DSS_NORMAL = 0;
552 const DSS_UNION = 16;
553 const DSS_DISABLED = 32;
554 const DSS_MONO = 128;
555 const DSS_RIGHT = 0x8000;
556
557 const DT_BOTTOM = 8;
558 const DT_CALCRECT = 1024;
559 const DT_CENTER = 1;
560 const DT_EDITCONTROL = 8192;
561 const DT_END_ELLIPSIS = 32768;
562 const DT_PATH_ELLIPSIS = 16384;
563 const DT_WORD_ELLIPSIS = 0x40000;
564 const DT_EXPANDTABS = 64;
565 const DT_EXTERNALLEADING = 512;
566 const DT_LEFT = 0;
567 const DT_MODIFYSTRING = 65536;
568 const DT_NOCLIP = 256;
569 const DT_NOPREFIX = 2048;
570 const DT_RIGHT = 2;
571 const DT_RTLREADING = 131072;
572 const DT_SINGLELINE = 32;
573 const DT_TABSTOP = 128;
574 const DT_TOP = 0;
575 const DT_VCENTER = 4;
576 const DT_WORDBREAK = 16;
577 const DT_INTERNAL = 4096;
578
579 const WB_ISDELIMITER = 2;
580 const WB_LEFT = 0;
581 const WB_RIGHT = 1;
582
583 const SB_HORZ = 0;
584 const SB_VERT = 1;
585 const SB_CTL = 2;
586 const SB_BOTH = 3;
587
588 const ESB_DISABLE_BOTH = 3;
589 const ESB_DISABLE_DOWN = 2;
590 const ESB_DISABLE_LEFT = 1;
591 const ESB_DISABLE_LTUP = 1;
592 const ESB_DISABLE_RIGHT = 2;
593 const ESB_DISABLE_RTDN = 2;
594 const ESB_DISABLE_UP = 1;
595 const ESB_ENABLE_BOTH = 0;
596
597 const SB_LINEUP = 0;
598 const SB_LINEDOWN = 1;
599 const SB_LINELEFT = 0;
600 const SB_LINERIGHT = 1;
601 const SB_PAGEUP = 2;
602 const SB_PAGEDOWN = 3;
603 const SB_PAGELEFT = 2;
604 const SB_PAGERIGHT = 3;
605 const SB_THUMBPOSITION = 4;
606 const SB_THUMBTRACK = 5;
607 const SB_ENDSCROLL = 8;
608 const SB_LEFT = 6;
609 const SB_RIGHT = 7;
610 const SB_BOTTOM = 7;
611 const SB_TOP = 6;
612
613 //MACRO #define IS_INTRESOURCE(i) (((ULONG_PTR)(i) >> 16) == 0)
614
615 template MAKEINTRESOURCE_T (WORD i)
616 {
617 const LPTSTR MAKEINTRESOURCE_T = cast(LPTSTR)(i);
618 }
619
620 LPSTR MAKEINTRESOURCEA(WORD i)
621 {
622 return cast(LPSTR)(i);
623 }
624
625 LPWSTR MAKEINTRESOURCEW(WORD i)
626 {
627 return cast(LPWSTR)(i);
628 }
629
630 const RT_CURSOR = MAKEINTRESOURCE_T!(1);
631 const RT_BITMAP = MAKEINTRESOURCE_T!(2);
632 const RT_ICON = MAKEINTRESOURCE_T!(3);
633 const RT_MENU = MAKEINTRESOURCE_T!(4);
634 const RT_DIALOG = MAKEINTRESOURCE_T!(5);
635 const RT_STRING = MAKEINTRESOURCE_T!(6);
636 const RT_FONTDIR = MAKEINTRESOURCE_T!(7);
637 const RT_FONT = MAKEINTRESOURCE_T!(8);
638 const RT_ACCELERATOR = MAKEINTRESOURCE_T!(9);
639 const RT_RCDATA = MAKEINTRESOURCE_T!(10);
640 const RT_MESSAGETABLE = MAKEINTRESOURCE_T!(11);
641
642 const RT_GROUP_CURSOR = MAKEINTRESOURCE_T!(12);
643 const RT_GROUP_ICON = MAKEINTRESOURCE_T!(14);
644 const RT_VERSION = MAKEINTRESOURCE_T!(16);
645 const RT_DLGINCLUDE = MAKEINTRESOURCE_T!(17);
646 const RT_PLUGPLAY = MAKEINTRESOURCE_T!(19);
647 const RT_VXD = MAKEINTRESOURCE_T!(20);
648 const RT_ANICURSOR = MAKEINTRESOURCE_T!(21);
649 const RT_ANIICON = MAKEINTRESOURCE_T!(22);
650 const RT_HTML = MAKEINTRESOURCE_T!(23);
651 const RT_MANIFEST = MAKEINTRESOURCE_T!(24);
652
653 const CREATEPROCESS_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE_T!(1);
654 const ISOLATIONAWARE_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE_T!(2);
655 const ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE_T!(3);
656
657 const EWX_LOGOFF = 0;
658 const EWX_SHUTDOWN = 1;
659 const EWX_REBOOT = 2;
660 const EWX_FORCE = 4;
661 const EWX_POWEROFF = 8;
662 static if (_WIN32_WINNT >= 0x500) {
663 const EWX_FORCEIFHUNG = 16;
664 }
665
666 const CS_BYTEALIGNCLIENT = 4096;
667 const CS_BYTEALIGNWINDOW = 8192;
668 const CS_KEYCVTWINDOW = 4;
669 const CS_NOKEYCVT = 256;
670 const CS_CLASSDC = 64;
671 const CS_DBLCLKS = 8;
672 const CS_GLOBALCLASS = 16384;
673 const CS_HREDRAW = 2;
674 const CS_NOCLOSE = 512;
675 const CS_OWNDC = 32;
676 const CS_PARENTDC = 128;
677 const CS_SAVEBITS = 2048;
678 const CS_VREDRAW = 1;
679 const CS_IME = 0x10000;
680
681 const GCW_ATOM = -32;
682 const GCL_CBCLSEXTRA = -20;
683 const GCL_CBWNDEXTRA = -18;
684 const GCL_HBRBACKGROUND = -10;
685 const GCL_HCURSOR = -12;
686 const GCL_HICON = -14;
687 const GCL_HICONSM = -34;
688 const GCL_HMODULE = -16;
689 const GCL_MENUNAME = -8;
690 const GCL_STYLE = -26;
691 const GCL_WNDPROC = -24;
692
693 alias GCL_HICONSM GCLP_HICONSM;
694 alias GCL_HICON GCLP_HICON;
695 alias GCL_HCURSOR GCLP_HCURSOR;
696 alias GCL_HBRBACKGROUND GCLP_HBRBACKGROUND;
697 alias GCL_HMODULE GCLP_HMODULE;
698 alias GCL_MENUNAME GCLP_MENUNAME;
699 alias GCL_WNDPROC GCLP_WNDPROC;
700
701 const IDC_ARROW = MAKEINTRESOURCE_T!(32512);
702 const IDC_IBEAM = MAKEINTRESOURCE_T!(32513);
703 const IDC_WAIT = MAKEINTRESOURCE_T!(32514);
704 const IDC_CROSS = MAKEINTRESOURCE_T!(32515);
705 const IDC_UPARROW = MAKEINTRESOURCE_T!(32516);
706 const IDC_SIZENWSE = MAKEINTRESOURCE_T!(32642);
707 const IDC_SIZENESW = MAKEINTRESOURCE_T!(32643);
708 const IDC_SIZEWE = MAKEINTRESOURCE_T!(32644);
709 const IDC_SIZENS = MAKEINTRESOURCE_T!(32645);
710 const IDC_SIZEALL = MAKEINTRESOURCE_T!(32646);
711 const IDC_NO = MAKEINTRESOURCE_T!(32648);
712 const IDC_HAND = MAKEINTRESOURCE_T!(32649);
713 const IDC_APPSTARTING = MAKEINTRESOURCE_T!(32650);
714 const IDC_HELP = MAKEINTRESOURCE_T!(32651);
715 const IDC_ICON = MAKEINTRESOURCE_T!(32641);
716 const IDC_SIZE = MAKEINTRESOURCE_T!(32640);
717 const IDI_APPLICATION = MAKEINTRESOURCE_T!(32512);
718 const IDI_HAND = MAKEINTRESOURCE_T!(32513);
719 const IDI_QUESTION = MAKEINTRESOURCE_T!(32514);
720 const IDI_EXCLAMATION = MAKEINTRESOURCE_T!(32515);
721 const IDI_ASTERISK = MAKEINTRESOURCE_T!(32516);
722 const IDI_WINLOGO = MAKEINTRESOURCE_T!(32517);
723 const IDI_WARNING = IDI_EXCLAMATION;
724 const IDI_ERROR = IDI_HAND;
725 const IDI_INFORMATION = IDI_ASTERISK;
726
727 const MIIM_STATE = 1;
728 const MIIM_ID = 2;
729 const MIIM_SUBMENU = 4;
730 const MIIM_CHECKMARKS = 8;
731 const MIIM_TYPE = 16;
732 const MIIM_DATA = 32;
733 const MIIM_STRING = 64;
734 const MIIM_BITMAP = 128;
735 const MIIM_FTYPE = 256;
736
737 static if (WINVER >= 0x500) {
738
739 const MIM_MAXHEIGHT = 1;
740 const MIM_BACKGROUND = 2;
741 const MIM_HELPID = 4;
742 const MIM_MENUDATA = 8;
743 const MIM_STYLE = 16;
744 const MIM_APPLYTOSUBMENUS = 0x80000000L;
745
746 const MNS_NOCHECK = 0x80000000;
747 const MNS_MODELESS = 0x40000000;
748 const MNS_DRAGDROP = 0x20000000;
749 const MNS_AUTODISMISS = 0x10000000;
750 const MNS_NOTIFYBYPOS = 0x08000000;
751 const MNS_CHECKORBMP = 0x04000000;
752
753 }
754
755 const MFT_BITMAP = 4;
756 const MFT_MENUBARBREAK = 32;
757 const MFT_MENUBREAK = 64;
758 const MFT_OWNERDRAW = 256;
759 const MFT_RADIOCHECK = 512;
760 const MFT_RIGHTJUSTIFY = 0x4000;
761 const MFT_SEPARATOR = 0x800;
762 const MFT_RIGHTORDER = 0x2000L;
763 const MFT_STRING = 0;
764
765 const MFS_CHECKED = 8;
766 const MFS_DEFAULT = 4096;
767 const MFS_DISABLED = 3;
768 const MFS_ENABLED = 0;
769 const MFS_GRAYED = 3;
770 const MFS_HILITE = 128;
771 const MFS_UNCHECKED = 0;
772 const MFS_UNHILITE = 0;
773
774 const GW_HWNDNEXT = 2;
775 const GW_HWNDPREV = 3;
776 const GW_CHILD = 5;
777 const GW_HWNDFIRST = 0;
778 const GW_HWNDLAST = 1;
779 const GW_OWNER = 4;
780
781 const SW_HIDE = 0;
782 const SW_NORMAL = 1;
783 const SW_SHOWNORMAL = 1;
784 const SW_SHOWMINIMIZED = 2;
785 const SW_MAXIMIZE = 3;
786 const SW_SHOWMAXIMIZED = 3;
787 const SW_SHOWNOACTIVATE = 4;
788 const SW_SHOW = 5;
789 const SW_MINIMIZE = 6;
790 const SW_SHOWMINNOACTIVE = 7;
791 const SW_SHOWNA = 8;
792 const SW_RESTORE = 9;
793 const SW_SHOWDEFAULT = 10;
794 const SW_FORCEMINIMIZE = 11;
795 const SW_MAX = 11;
796
797 const MB_USERICON = 128;
798 const MB_ICONASTERISK = 64;
799 const MB_ICONEXCLAMATION = 0x30;
800 const MB_ICONWARNING = 0x30;
801 const MB_ICONERROR = 16;
802 const MB_ICONHAND = 16;
803 const MB_ICONQUESTION = 32;
804 const MB_OK = 0;
805 const MB_ABORTRETRYIGNORE = 2;
806 const MB_APPLMODAL = 0;
807 const MB_DEFAULT_DESKTOP_ONLY = 0x20000;
808 const MB_HELP = 0x4000;
809 const MB_RIGHT = 0x80000;
810 const MB_RTLREADING = 0x100000;
811 const MB_TOPMOST = 0x40000;
812 const MB_DEFBUTTON1 = 0;
813 const MB_DEFBUTTON2 = 256;
814 const MB_DEFBUTTON3 = 512;
815 const MB_DEFBUTTON4 = 0x300;
816 const MB_ICONINFORMATION = 64;
817 const MB_ICONSTOP = 16;
818 const MB_OKCANCEL = 1;
819 const MB_RETRYCANCEL = 5;
820
821 static if (_WIN32_WINNT_ONLY) {
822 static if (_WIN32_WINNT >= 0x400) {
823 const MB_SERVICE_NOTIFICATION = 0x00200000;
824 } else {
825 const MB_SERVICE_NOTIFICATION = 0x00040000;
826 }
827 const MB_SERVICE_NOTIFICATION_NT3X = 0x00040000;
828 }
829
830 const MB_SETFOREGROUND = 0x10000;
831 const MB_SYSTEMMODAL = 4096;
832 const MB_TASKMODAL = 0x2000;
833 const MB_YESNO = 4;
834 const MB_YESNOCANCEL = 3;
835 const MB_ICONMASK = 240;
836 const MB_DEFMASK = 3840;
837 const MB_MODEMASK = 0x00003000;
838 const MB_MISCMASK = 0x0000C000;
839 const MB_NOFOCUS = 0x00008000;
840 const MB_TYPEMASK = 15;
841 // [Redefined] MB_TOPMOST=0x40000
842 static if (WINVER >= 0x500) {
843 const MB_CANCELTRYCONTINUE=6;
844 }
845
846 const IDOK = 1;
847 const IDCANCEL = 2;
848 const IDABORT = 3;
849 const IDRETRY = 4;
850 const IDIGNORE = 5;
851 const IDYES = 6;
852 const IDNO = 7;
853 static if (WINVER >= 0x400) {
854 const IDCLOSE = 8;
855 const IDHELP = 9;
856 }
857 static if (WINVER >= 0x500) {
858 const IDTRYAGAIN = 10;
859 const IDCONTINUE = 11;
860 }
861
862 const GWL_EXSTYLE = -20;
863 const GWL_STYLE = -16;
864 const GWL_WNDPROC = -4;
865 const GWLP_WNDPROC = -4;
866 const GWL_HINSTANCE = -6;
867 const GWLP_HINSTANCE = -6;
868 const GWL_HWNDPARENT = -8;
869 const GWLP_HWNDPARENT = -8;
870 const GWL_ID = -12;
871 const GWLP_ID = -12;
872 const GWL_USERDATA = -21;
873 const GWLP_USERDATA = -21;
874
875 const DWL_DLGPROC = 4;
876 const DWLP_DLGPROC = 4;
877 const DWL_MSGRESULT = 0;
878 const DWLP_MSGRESULT = 0;
879 const DWL_USER = 8;
880 const DWLP_USER = 8;
881
882 const QS_KEY = 1;
883 const QS_MOUSEMOVE = 2;
884 const QS_MOUSEBUTTON = 4;
885 const QS_MOUSE = 6;
886 const QS_POSTMESSAGE = 8;
887 const QS_TIMER = 16;
888 const QS_PAINT = 32;
889 const QS_SENDMESSAGE = 64;
890 const QS_HOTKEY = 128;
891 const QS_ALLPOSTMESSAGE = 256;
892 static if (_WIN32_WINNT >= 0x501) {
893 const QS_RAWINPUT = 1024;
894 const QS_INPUT = 1031;
895 const QS_ALLEVENTS = 1215;
896 const QS_ALLINPUT = 1279;
897 } else {
898 const QS_INPUT = 7;
899 const QS_ALLEVENTS = 191;
900 const QS_ALLINPUT = 255;
901 }
902
903 const MWMO_WAITALL = 1;
904 const MWMO_ALERTABLE = 2;
905 const MWMO_INPUTAVAILABLE = 4;
906
907 const COLOR_3DDKSHADOW=21;
908 const COLOR_3DFACE=15;
909 const COLOR_3DHILIGHT=20;
910 const COLOR_3DHIGHLIGHT=20;
911 const COLOR_3DLIGHT=22;
912 const COLOR_BTNHILIGHT=20;
913 const COLOR_3DSHADOW=16;
914 const COLOR_ACTIVEBORDER=10;
915 const COLOR_ACTIVECAPTION=2;
916 const COLOR_APPWORKSPACE=12;
917 const COLOR_BACKGROUND=1;
918 const COLOR_DESKTOP=1;
919 const COLOR_BTNFACE=15;
920 const COLOR_BTNHIGHLIGHT=20;
921 const COLOR_BTNSHADOW=16;
922 const COLOR_BTNTEXT=18;
923 const COLOR_CAPTIONTEXT=9;
924 const COLOR_GRAYTEXT=17;
925 const COLOR_HIGHLIGHT=13;
926 const COLOR_HIGHLIGHTTEXT=14;
927 const COLOR_INACTIVEBORDER=11;
928 const COLOR_INACTIVECAPTION=3;
929 const COLOR_INACTIVECAPTIONTEXT=19;
930 const COLOR_INFOBK=24;
931 const COLOR_INFOTEXT=23;
932 const COLOR_MENU=4;
933 const COLOR_MENUTEXT=7;
934 const COLOR_SCROLLBAR=0;
935 const COLOR_WINDOW=5;
936 const COLOR_WINDOWFRAME=6;
937 const COLOR_WINDOWTEXT=8;
938 const COLOR_HOTLIGHT=26;
939 const COLOR_GRADIENTACTIVECAPTION=27;
940 const COLOR_GRADIENTINACTIVECAPTION=28;
941
942 const CTLCOLOR_MSGBOX=0;
943 const CTLCOLOR_EDIT=1;
944 const CTLCOLOR_LISTBOX=2;
945 const CTLCOLOR_BTN=3;
946 const CTLCOLOR_DLG=4;
947 const CTLCOLOR_SCROLLBAR=5;
948 const CTLCOLOR_STATIC=6;
949 const CTLCOLOR_MAX=7;
950
951 // For GetSystemMetrics()
952 enum : int {
953 SM_CXSCREEN = 0,
954 SM_CYSCREEN,
955 SM_CXVSCROLL,
956 SM_CYHSCROLL,
957 SM_CYCAPTION,
958 SM_CXBORDER,
959 SM_CYBORDER,
960 SM_CXDLGFRAME, // = 7,
961 SM_CXFIXEDFRAME = SM_CXDLGFRAME,
962 SM_CYDLGFRAME, // =8,
963 SM_CYFIXEDFRAME = SM_CYDLGFRAME,
964 SM_CYVTHUMB = 9,
965 SM_CXHTHUMB,
966 SM_CXICON,
967 SM_CYICON,
968 SM_CXCURSOR,
969 SM_CYCURSOR,
970 SM_CYMENU,
971 SM_CXFULLSCREEN,
972 SM_CYFULLSCREEN,
973 SM_CYKANJIWINDOW,
974 SM_MOUSEPRESENT,
975 SM_CYVSCROLL,
976 SM_CXHSCROLL,
977 SM_DEBUG,
978 SM_SWAPBUTTON,
979 SM_RESERVED1,
980 SM_RESERVED2,
981 SM_RESERVED3,
982 SM_RESERVED4,
983 SM_CXMIN,
984 SM_CYMIN,
985 SM_CXSIZE,
986 SM_CYSIZE,
987 SM_CXSIZEFRAME, // = 32,
988 SM_CXFRAME = SM_CXSIZEFRAME,
989 SM_CYSIZEFRAME, // = 33
990 SM_CYFRAME = SM_CYSIZEFRAME,
991 SM_CXMINTRACK,
992 SM_CYMINTRACK,
993 SM_CXDOUBLECLK,
994 SM_CYDOUBLECLK,
995 SM_CXICONSPACING,
996 SM_CYICONSPACING,
997 SM_MENUDROPALIGNMENT,
998 SM_PENWINDOWS,
999 SM_DBCSENABLED,
1000 SM_CMOUSEBUTTONS,
1001 SM_SECURE,
1002 SM_CXEDGE,
1003 SM_CYEDGE,
1004 SM_CXMINSPACING,
1005 SM_CYMINSPACING,
1006 SM_CXSMICON,
1007 SM_CYSMICON,
1008 SM_CYSMCAPTION,
1009 SM_CXSMSIZE,
1010 SM_CYSMSIZE,
1011 SM_CXMENUSIZE,
1012 SM_CYMENUSIZE,
1013 SM_ARRANGE,
1014 SM_CXMINIMIZED,
1015 SM_CYMINIMIZED,
1016 SM_CXMAXTRACK,
1017 SM_CYMAXTRACK,
1018 SM_CXMAXIMIZED,
1019 SM_CYMAXIMIZED,
1020 SM_NETWORK, // = 63
1021 SM_CLEANBOOT = 67,
1022 SM_CXDRAG,
1023 SM_CYDRAG,
1024 SM_SHOWSOUNDS,
1025 SM_CXMENUCHECK,
1026 SM_CYMENUCHECK,
1027 SM_SLOWMACHINE,
1028 SM_MIDEASTENABLED,
1029 // The next values aren't supported in Win95.
1030 SM_MOUSEWHEELPRESENT,
1031 SM_XVIRTUALSCREEN,
1032 SM_YVIRTUALSCREEN,
1033 SM_CXVIRTUALSCREEN,
1034 SM_CYVIRTUALSCREEN,
1035 SM_CMONITORS,
1036 SM_SAMEDISPLAYFORMAT,
1037 SM_IMMENABLED,
1038 SM_CXFOCUSBORDER,
1039 SM_CYFOCUSBORDER, // = 84
1040 SM_TABLETPC = 86,
1041 SM_MEDIACENTER = 87,
1042 SM_REMOTESESSION = 0x1000,
1043 // These are only for WinXP and later
1044 SM_SHUTTINGDOWN = 0x2000,
1045 SM_REMOTECONTROL = 0x2001
1046 }
1047
1048 const ARW_BOTTOMLEFT=0;
1049 const ARW_BOTTOMRIGHT=1;
1050 const ARW_HIDE=8;
1051 const ARW_TOPLEFT=2;
1052 const ARW_TOPRIGHT=3;
1053 const ARW_DOWN=4;
1054 const ARW_LEFT=0;
1055 const ARW_RIGHT=0;
1056 const ARW_UP=4;
1057
1058 const UOI_FLAGS=1;
1059 const UOI_NAME=2;
1060 const UOI_TYPE=3;
1061 const UOI_USER_SID=4;
1062
1063 // For the fuLoad parameter of LoadImage()
1064 enum : UINT {
1065 LR_DEFAULTCOLOR = 0,
1066 LR_MONOCHROME = 1,
1067 LR_COLOR = 2,
1068 LR_COPYRETURNORG = 4,
1069 LR_COPYDELETEORG = 8,
1070 LR_LOADFROMFILE = 16,
1071 LR_LOADTRANSPARENT = 32,
1072 LR_DEFAULTSIZE = 64,
1073 LR_LOADREALSIZE = 128,
1074 LR_LOADMAP3DCOLORS = 4096,
1075 LR_CREATEDIBSECTION = 8192,
1076 LR_COPYFROMRESOURCE = 16384,
1077 LR_SHARED = 32768
1078 }
1079
1080 const KEYEVENTF_EXTENDEDKEY = 0x00000001;
1081 const KEYEVENTF_KEYUP = 00000002;
1082 static if (_WIN32_WINNT >= 0x500) {
1083 const KEYEVENTF_UNICODE = 0x00000004;
1084 const KEYEVENTF_SCANCODE = 0x00000008;
1085 }
1086
1087 const OBM_BTNCORNERS = 32758;
1088 const OBM_BTSIZE = 32761;
1089 const OBM_CHECK = 32760;
1090 const OBM_CHECKBOXES = 32759;
1091 const OBM_CLOSE = 32754;
1092 const OBM_COMBO = 32738;
1093 const OBM_DNARROW = 32752;
1094 const OBM_DNARROWD = 32742;
1095 const OBM_DNARROWI = 32736;
1096 const OBM_LFARROW = 32750;
1097 const OBM_LFARROWI = 32734;
1098 const OBM_LFARROWD = 32740;
1099 const OBM_MNARROW = 32739;
1100 const OBM_OLD_CLOSE = 32767;
1101 const OBM_OLD_DNARROW = 32764;
1102 const OBM_OLD_LFARROW = 32762;
1103 const OBM_OLD_REDUCE = 32757;
1104 const OBM_OLD_RESTORE = 32755;
1105 const OBM_OLD_RGARROW = 32763;
1106 const OBM_OLD_UPARROW = 32765;
1107 const OBM_OLD_ZOOM = 32756;
1108 const OBM_REDUCE = 32749;
1109 const OBM_REDUCED = 32746;
1110 const OBM_RESTORE = 32747;
1111 const OBM_RESTORED = 32744;
1112 const OBM_RGARROW = 32751;
1113 const OBM_RGARROWD = 32741;
1114 const OBM_RGARROWI = 32735;
1115 const OBM_SIZE = 32766;
1116 const OBM_UPARROW = 32753;
1117 const OBM_UPARROWD = 32743;
1118 const OBM_UPARROWI = 32737;
1119 const OBM_ZOOM = 32748;
1120 const OBM_ZOOMD = 32745;
1121
1122 const OCR_NORMAL = 32512;
1123 const OCR_IBEAM = 32513;
1124 const OCR_WAIT = 32514;
1125 const OCR_CROSS = 32515;
1126 const OCR_UP = 32516;
1127 const OCR_SIZE = 32640;
1128 const OCR_ICON = 32641;
1129 const OCR_SIZENWSE = 32642;
1130 const OCR_SIZENESW = 32643;
1131 const OCR_SIZEWE = 32644;
1132 const OCR_SIZENS = 32645;
1133 const OCR_SIZEALL = 32646;
1134 const OCR_NO = 32648;
1135 const OCR_APPSTARTING = 32650;
1136
1137 const OIC_SAMPLE = 32512;
1138 const OIC_HAND = 32513;
1139 const OIC_QUES = 32514;
1140 const OIC_BANG = 32515;
1141 const OIC_NOTE = 32516;
1142 const OIC_WINLOGO = 32517;
1143 const OIC_WARNING = OIC_BANG;
1144 const OIC_ERROR = OIC_HAND;
1145 const OIC_INFORMATION = OIC_NOTE;
1146
1147 const HELPINFO_MENUITEM = 2;
1148 const HELPINFO_WINDOW = 1;
1149
1150 const MSGF_DIALOGBOX = 0;
1151 const MSGF_MESSAGEBOX = 1;
1152 const MSGF_MENU = 2;
1153 const MSGF_MOVE = 3;
1154 const MSGF_SIZE = 4;
1155 const MSGF_SCROLLBAR = 5;
1156 const MSGF_NEXTWINDOW = 6;
1157 const MSGF_MAINLOOP = 8;
1158 const MSGF_USER = 4096;
1159
1160 const MOUSEEVENTF_MOVE = 1;
1161 const MOUSEEVENTF_LEFTDOWN = 2;
1162 const MOUSEEVENTF_LEFTUP = 4;
1163 const MOUSEEVENTF_RIGHTDOWN = 8;
1164 const MOUSEEVENTF_RIGHTUP = 16;
1165 const MOUSEEVENTF_MIDDLEDOWN = 32;
1166 const MOUSEEVENTF_MIDDLEUP = 64;
1167 const MOUSEEVENTF_WHEEL = 0x0800;
1168 const MOUSEEVENTF_ABSOLUTE = 32768;
1169
1170 const PM_NOREMOVE = 0;
1171 const PM_REMOVE = 1;
1172 const PM_NOYIELD = 2;
1173
1174 static if (WINVER >= 0x500) {
1175 const PM_QS_INPUT = (QS_INPUT << 16);
1176 const PM_QS_POSTMESSAGE = ((QS_POSTMESSAGE|QS_HOTKEY|QS_TIMER) << 16);
1177 const PM_QS_PAINT = (QS_PAINT << 16);
1178 const PM_QS_SENDMESSAGE = (QS_SENDMESSAGE << 16);
1179 }
1180 const HWND
1181 HWND_BROADCAST = cast(HWND)0xffff,
1182 HWND_BOTTOM = cast(HWND)1,
1183 HWND_NOTOPMOST = cast(HWND)(-2),
1184 HWND_TOP = cast(HWND)0,
1185 HWND_TOPMOST = cast(HWND)(-1),
1186 HWND_DESKTOP = cast(HWND)0,
1187 HWND_MESSAGE = cast(HWND)(-3);// w2k
1188
1189 const RDW_INVALIDATE = 1;
1190 const RDW_INTERNALPAINT = 2;
1191 const RDW_ERASE = 4;
1192 const RDW_VALIDATE = 8;
1193 const RDW_NOINTERNALPAINT = 16;
1194 const RDW_NOERASE = 32;
1195 const RDW_NOCHILDREN = 64;
1196 const RDW_ALLCHILDREN = 128;
1197 const RDW_UPDATENOW = 256;
1198 const RDW_ERASENOW = 512;
1199 const RDW_FRAME = 1024;
1200 const RDW_NOFRAME = 2048;
1201
1202 const SMTO_NORMAL = 0;
1203 const SMTO_BLOCK = 1;
1204 const SMTO_ABORTIFHUNG = 2;
1205
1206 const SIF_ALL = 23;
1207 const SIF_PAGE = 2;
1208 const SIF_POS = 4;
1209 const SIF_RANGE = 1;
1210 const SIF_DISABLENOSCROLL = 8;
1211 const SIF_TRACKPOS = 16;
1212
1213 const SWP_DRAWFRAME = 32;
1214 const SWP_FRAMECHANGED = 32;
1215 const SWP_HIDEWINDOW = 128;
1216 const SWP_NOACTIVATE = 16;
1217 const SWP_NOCOPYBITS = 256;
1218 const SWP_NOMOVE = 2;
1219 const SWP_NOSIZE = 1;
1220 const SWP_NOREDRAW = 8;
1221 const SWP_NOZORDER = 4;
1222 const SWP_SHOWWINDOW = 64;
1223 const SWP_NOOWNERZORDER = 512;
1224 const SWP_NOREPOSITION = 512;
1225 const SWP_NOSENDCHANGING = 1024;
1226 const SWP_DEFERERASE = 8192;
1227 const SWP_ASYNCWINDOWPOS = 16384;
1228
1229 const HSHELL_ACTIVATESHELLWINDOW = 3;
1230 const HSHELL_GETMINRECT = 5;
1231 const HSHELL_LANGUAGE = 8;
1232 const HSHELL_REDRAW = 6;
1233 const HSHELL_TASKMAN = 7;
1234 const HSHELL_WINDOWACTIVATED = 4;
1235 const HSHELL_WINDOWCREATED = 1;
1236 const HSHELL_WINDOWDESTROYED = 2;
1237 const HSHELL_FLASH = 32774;
1238
1239 static if (WINVER >= 0x500) {
1240 const SPI_SETFOREGROUNDLOCKTIMEOUT=0x2001;
1241 const SPI_GETFOREGROUNDLOCKTIMEOUT=0x2000;
1242 }
1243
1244 const SPI_GETACCESSTIMEOUT=60;
1245 const SPI_GETACTIVEWNDTRKTIMEOUT=8194;
1246 const SPI_GETANIMATION=72;
1247 const SPI_GETBEEP=1;
1248 const SPI_GETBORDER=5;
1249 const SPI_GETDEFAULTINPUTLANG=89;
1250 const SPI_GETDRAGFULLWINDOWS=38;
1251 const SPI_GETFASTTASKSWITCH=35;
1252 const SPI_GETFILTERKEYS=50;
1253 const SPI_GETFONTSMOOTHING=74;
1254 const SPI_GETGRIDGRANULARITY=18;
1255 const SPI_GETHIGHCONTRAST=66;
1256 const SPI_GETICONMETRICS=45;
1257 const SPI_GETICONTITLELOGFONT=31;
1258 const SPI_GETICONTITLEWRAP=25;
1259 const SPI_GETKEYBOARDDELAY=22;
1260 const SPI_GETKEYBOARDPREF=68;
1261 const SPI_GETKEYBOARDSPEED=10;
1262 const SPI_GETLOWPOWERACTIVE=83;
1263 const SPI_GETLOWPOWERTIMEOUT=79;
1264 const SPI_GETMENUDROPALIGNMENT=27;
1265 const SPI_GETMINIMIZEDMETRICS=43;
1266 const SPI_GETMOUSE=3;
1267 const SPI_GETMOUSEKEYS=54;
1268 const SPI_GETMOUSETRAILS=94;
1269 const SPI_GETNONCLIENTMETRICS=41;
1270 const SPI_GETPOWEROFFACTIVE=84;
1271 const SPI_GETPOWEROFFTIMEOUT=80;
1272 const SPI_GETSCREENREADER=70;
1273 const SPI_GETSCREENSAVEACTIVE=16;
1274 const SPI_GETSCREENSAVETIMEOUT=14;
1275 const SPI_GETSERIALKEYS=62;
1276 const SPI_GETSHOWSOUNDS=56;
1277 const SPI_GETSOUNDSENTRY=64;
1278 const SPI_GETSTICKYKEYS=58;
1279 const SPI_GETTOGGLEKEYS=52;
1280 const SPI_GETWHEELSCROLLLINES=104;
1281 const SPI_GETWINDOWSEXTENSION=92;
1282 const SPI_GETWORKAREA=48;
1283 const SPI_ICONHORIZONTALSPACING=13;
1284 const SPI_ICONVERTICALSPACING=24;
1285 const SPI_LANGDRIVER=12;
1286 const SPI_SCREENSAVERRUNNING=97;
1287 const SPI_SETACCESSTIMEOUT=61;
1288 const SPI_SETACTIVEWNDTRKTIMEOUT=8195;
1289 const SPI_SETANIMATION=73;
1290 const SPI_SETBEEP=2;
1291 const SPI_SETBORDER=6;
1292 const SPI_SETDEFAULTINPUTLANG=90;
1293 const SPI_SETDESKPATTERN=21;
1294 const SPI_SETDESKWALLPAPER=20;
1295 const SPI_SETDOUBLECLICKTIME=32;
1296 const SPI_SETDOUBLECLKHEIGHT=30;
1297 const SPI_SETDOUBLECLKWIDTH=29;
1298 const SPI_SETDRAGFULLWINDOWS=37;
1299 const SPI_SETDRAGHEIGHT=77;
1300 const SPI_SETDRAGWIDTH=76;
1301 const SPI_SETFASTTASKSWITCH=36;
1302 const SPI_SETFILTERKEYS=51;
1303 const SPI_SETFONTSMOOTHING=75;
1304 const SPI_SETGRIDGRANULARITY=19;
1305 const SPI_SETHANDHELD=78;
1306 const SPI_SETHIGHCONTRAST=67;
1307 const SPI_SETICONMETRICS=46;
1308 const SPI_SETICONTITLELOGFONT=34;
1309 const SPI_SETICONTITLEWRAP=26;
1310 const SPI_SETKEYBOARDDELAY=23;
1311 const SPI_SETKEYBOARDPREF=69;
1312 const SPI_SETKEYBOARDSPEED=11;
1313 const SPI_SETLANGTOGGLE=91;
1314 const SPI_SETLOWPOWERACTIVE=85;
1315 const SPI_SETLOWPOWERTIMEOUT=81;
1316 const SPI_SETMENUDROPALIGNMENT=28;
1317 const SPI_SETMINIMIZEDMETRICS=44;
1318 const SPI_SETMOUSE=4;
1319 const SPI_SETMOUSEBUTTONSWAP=33;
1320 const SPI_SETMOUSEKEYS=55;
1321 const SPI_SETMOUSETRAILS=93;
1322 const SPI_SETNONCLIENTMETRICS=42;
1323 const SPI_SETPENWINDOWS=49;
1324 const SPI_SETPOWEROFFACTIVE=86;
1325 const SPI_SETPOWEROFFTIMEOUT=82;
1326 const SPI_SETSCREENREADER=71;
1327 const SPI_SETSCREENSAVEACTIVE=17;
1328 const SPI_SETSCREENSAVERRUNNING=97;
1329 const SPI_SETSCREENSAVETIMEOUT=15;
1330 const SPI_SETSERIALKEYS=63;
1331 const SPI_SETSHOWSOUNDS=57;
1332 const SPI_SETSOUNDSENTRY=65;
1333 const SPI_SETSTICKYKEYS=59;
1334 const SPI_SETTOGGLEKEYS=53;
1335 const SPI_SETWHEELSCROLLLINES=105;
1336 const SPI_SETWORKAREA=47;
1337
1338 static if (WINVER >= 0x500) {
1339 const SPI_GETDESKWALLPAPER=115;
1340 const SPI_GETMOUSESPEED=112;
1341 const SPI_GETSCREENSAVERRUNNING=114;
1342 const SPI_GETACTIVEWINDOWTRACKING=0x1000;
1343 const SPI_GETACTIVEWNDTRKZORDER=0x100C;
1344 const SPI_GETCOMBOBOXANIMATION=0x1004;
1345 const SPI_GETCURSORSHADOW=0x101A;
1346 const SPI_GETGRADIENTCAPTIONS=0x1008;
1347 const SPI_GETHOTTRACKING=0x100E;
1348 const SPI_GETKEYBOARDCUES=0x100A;
1349 const SPI_GETLISTBOXSMOOTHSCROLLING=0x1006;
1350 const SPI_GETMENUANIMATION=0x1002;
1351 const SPI_GETMENUFADE=0x1012;
1352 const SPI_GETMENUUNDERLINES=0x100A;
1353 const SPI_GETSELECTIONFADE=0x1014;
1354 const SPI_GETTOOLTIPANIMATION=0x1016;
1355 const SPI_GETTOOLTIPFADE=0x1018;
1356 const SPI_SETACTIVEWINDOWTRACKING=0x1001;
1357 const SPI_SETACTIVEWNDTRKZORDER=0x100D;
1358 const SPI_SETCOMBOBOXANIMATION=0x1005;
1359 const SPI_SETCURSORSHADOW=0x101B;
1360 const SPI_SETGRADIENTCAPTIONS=0x1009;
1361 const SPI_SETHOTTRACKING=0x100F;
1362 const SPI_SETKEYBOARDCUES=0x100B;
1363 const SPI_SETLISTBOXSMOOTHSCROLLING=0x1007;
1364 const SPI_SETMENUANIMATION=0x1003;
1365 const SPI_SETMENUFADE=0x1013;
1366 const SPI_SETMENUUNDERLINES=0x100B;
1367 const SPI_SETMOUSESPEED=113;
1368 const SPI_SETSELECTIONFADE=0x1015;
1369 const SPI_SETTOOLTIPANIMATION=0x1017;
1370 const SPI_SETTOOLTIPFADE=0x1019;
1371 }
1372
1373 const SPIF_UPDATEINIFILE=1;
1374 const SPIF_SENDWININICHANGE=2;
1375 const SPIF_SENDCHANGE=2;
1376 // [Redefined] ATF_ONOFFFEEDBACK=2
1377 // [Redefined] ATF_TIMEOUTON=1
1378 const WM_APP=32768;
1379 const WM_ACTIVATE=6;
1380 const WM_ACTIVATEAPP=28;
1381 // FIXME/CHECK: Are WM_AFX {FIRST, LAST} valid for WINVER < 0x400?
1382 const WM_AFXFIRST=864;
1383 const WM_AFXLAST=895;
1384 const WM_ASKCBFORMATNAME=780;
1385 const WM_CANCELJOURNAL=75;
1386 const WM_CANCELMODE=31;
1387 const WM_CAPTURECHANGED=533;
1388 const WM_CHANGECBCHAIN=781;
1389 const WM_CHAR=258;
1390 const WM_CHARTOITEM=47;
1391 const WM_CHILDACTIVATE=34;
1392 const WM_CLEAR=771;
1393 const WM_CLOSE=16;
1394 const WM_COMMAND=273;
1395 const WM_COMMNOTIFY=68; // obsolete
1396 const WM_COMPACTING=65;
1397 const WM_COMPAREITEM=57;
1398 const WM_CONTEXTMENU=123;
1399 const WM_COPY=769;
1400 const WM_COPYDATA=74;
1401 const WM_CREATE=1;
1402 const WM_CTLCOLORBTN=309;
1403 const WM_CTLCOLORDLG=310;
1404 const WM_CTLCOLOREDIT=307;
1405 const WM_CTLCOLORLISTBOX=308;
1406 const WM_CTLCOLORMSGBOX=306;
1407 const WM_CTLCOLORSCROLLBAR=311;
1408 const WM_CTLCOLORSTATIC=312;
1409 const WM_CUT=768;
1410 const WM_DEADCHAR=259;
1411 const WM_DELETEITEM=45;
1412 const WM_DESTROY=2;
1413 const WM_DESTROYCLIPBOARD=775;
1414 const WM_DEVICECHANGE=537;
1415 const WM_DEVMODECHANGE=27;
1416 const WM_DISPLAYCHANGE=126;
1417 const WM_DRAWCLIPBOARD=776;
1418 const WM_DRAWITEM=43;
1419 const WM_DROPFILES=563;
1420 const WM_ENABLE=10;
1421 const WM_ENDSESSION=22;
1422 const WM_ENTERIDLE=289;
1423 const WM_ENTERMENULOOP=529;
1424 const WM_ENTERSIZEMOVE=561;
1425 const WM_ERASEBKGND=20;
1426 const WM_EXITMENULOOP=530;
1427 const WM_EXITSIZEMOVE=562;
1428 const WM_FONTCHANGE=29;
1429 const WM_GETDLGCODE=135;
1430 const WM_GETFONT=49;
1431 const WM_GETHOTKEY=51;
1432 const WM_GETICON=127;
1433 const WM_GETMINMAXINFO=36;
1434 const WM_GETTEXT=13;
1435 const WM_GETTEXTLENGTH=14;
1436 const WM_HANDHELDFIRST=856;
1437 const WM_HANDHELDLAST=863;
1438 const WM_HELP=83;
1439 const WM_HOTKEY=786;
1440 const WM_HSCROLL=276;
1441 const WM_HSCROLLCLIPBOARD=782;
1442 const WM_ICONERASEBKGND=39;
1443 const WM_INITDIALOG=272;
1444 const WM_INITMENU=278;
1445 const WM_INITMENUPOPUP=279;
1446 const WM_INPUTLANGCHANGE=81;
1447 const WM_INPUTLANGCHANGEREQUEST=80;
1448 const WM_KEYDOWN=256;
1449 const WM_KEYUP=257;
1450 const WM_KILLFOCUS=8;
1451 const WM_MDIACTIVATE=546;
1452 const WM_MDICASCADE=551;
1453 const WM_MDICREATE=544;
1454 const WM_MDIDESTROY=545;
1455 const WM_MDIGETACTIVE=553;
1456 const WM_MDIICONARRANGE=552;
1457 const WM_MDIMAXIMIZE=549;
1458 const WM_MDINEXT=548;
1459 const WM_MDIREFRESHMENU=564;
1460 const WM_MDIRESTORE=547;
1461 const WM_MDISETMENU=560;
1462 const WM_MDITILE=550;
1463 const WM_MEASUREITEM=44;
1464 static if (WINVER >= 0x500) {
1465 const WM_UNINITMENUPOPUP=0x0125;
1466 const WM_MENURBUTTONUP=290;
1467 const WM_MENUCOMMAND=0x0126;
1468 const WM_MENUGETOBJECT=0x0124;
1469 const WM_MENUDRAG=0x0123;
1470 }
1471
1472 static if (_WIN32_WINNT >= 0x500) {
1473
1474 enum {
1475 WM_CHANGEUISTATE = 0x0127,
1476 WM_UPDATEUISTATE = 0x0128,
1477 WM_QUERYUISTATE = 0x0129
1478 }
1479
1480 // LOWORD(wParam) values in WM_*UISTATE*
1481 enum {
1482 UIS_SET = 1,
1483 UIS_CLEAR = 2,
1484 UIS_INITIALIZE = 3
1485 }
1486
1487 // HIWORD(wParam) values in WM_*UISTATE*
1488 enum {
1489 UISF_HIDEFOCUS = 0x1,
1490 UISF_HIDEACCEL = 0x2
1491 }
1492
1493 }
1494
1495 static if (_WIN32_WINNT >= 0x501) {
1496
1497 // HIWORD(wParam) values in WM_*UISTATE*
1498 enum {
1499 UISF_ACTIVE = 0x4
1500 }
1501
1502 }
1503
1504 const WM_MENUCHAR=288;
1505 const WM_MENUSELECT=287;
1506 const WM_MOVE=3;
1507 const WM_MOVING=534;
1508 const WM_NCACTIVATE=134;
1509 const WM_NCCALCSIZE=131;
1510 const WM_NCCREATE=129;
1511 const WM_NCDESTROY=130;
1512 const WM_NCHITTEST=132;
1513 const WM_NCLBUTTONDBLCLK=163;
1514 const WM_NCLBUTTONDOWN=161;
1515 const WM_NCLBUTTONUP=162;
1516 const WM_NCMBUTTONDBLCLK=169;
1517 const WM_NCMBUTTONDOWN=167;
1518 const WM_NCMBUTTONUP=168;
1519 static if (_WIN32_WINNT >= 0x500) {
1520 const WM_NCXBUTTONDOWN=171;
1521 const WM_NCXBUTTONUP=172;
1522 const WM_NCXBUTTONDBLCLK=173;
1523 const WM_NCMOUSEHOVER=0x02A0;
1524 const WM_NCMOUSELEAVE=0x02A2;
1525 }
1526 const WM_NCMOUSEMOVE=160;
1527 const WM_NCPAINT=133;
1528 const WM_NCRBUTTONDBLCLK=166;
1529 const WM_NCRBUTTONDOWN=164;
1530 const WM_NCRBUTTONUP=165;
1531 const WM_NEXTDLGCTL=40;
1532 const WM_NEXTMENU=531;
1533 const WM_NOTIFY=78;
1534 const WM_NOTIFYFORMAT=85;
1535 const WM_NULL=0;
1536 const WM_PAINT=15;
1537 const WM_PAINTCLIPBOARD=777;
1538 const WM_PAINTICON=38;
1539 const WM_PALETTECHANGED=785;
1540 const WM_PALETTEISCHANGING=784;
1541 const WM_PARENTNOTIFY=528;
1542 const WM_PASTE=770;
1543 const WM_PENWINFIRST=896;
1544 const WM_PENWINLAST=911;
1545 const WM_POWER=72;
1546 const WM_POWERBROADCAST=536;
1547 const WM_PRINT=791;
1548 const WM_PRINTCLIENT=792;
1549 const WM_APPCOMMAND = 0x0319;
1550 const WM_QUERYDRAGICON=55;
1551 const WM_QUERYENDSESSION=17;
1552 const WM_QUERYNEWPALETTE=783;
1553 const WM_QUERYOPEN=19;
1554 const WM_QUEUESYNC=35;
1555 const WM_QUIT=18;
1556 const WM_RENDERALLFORMATS=774;
1557 const WM_RENDERFORMAT=773;
1558 const WM_SETCURSOR=32;
1559 const WM_SETFOCUS=7;
1560 const WM_SETFONT=48;
1561 const WM_SETHOTKEY=50;
1562 const WM_SETICON=128;
1563 const WM_SETREDRAW=11;
1564 const WM_SETTEXT=12;
1565 const WM_SETTINGCHANGE=26;
1566 const WM_SHOWWINDOW=24;
1567 const WM_SIZE=5;
1568 const WM_SIZECLIPBOARD=779;
1569 const WM_SIZING=532;
1570 const WM_SPOOLERSTATUS=42;
1571 const WM_STYLECHANGED=125;
1572 const WM_STYLECHANGING=124;
1573 const WM_SYSCHAR=262;
1574 const WM_SYSCOLORCHANGE=21;
1575 const WM_SYSCOMMAND=274;
1576 const WM_SYSDEADCHAR=263;
1577 const WM_SYSKEYDOWN=260;
1578 const WM_SYSKEYUP=261;
1579 const WM_TCARD=82;
1580 const WM_THEMECHANGED=794;
1581 const WM_TIMECHANGE=30;
1582 const WM_TIMER=275;
1583 const WM_UNDO=772;
1584 const WM_USER=1024;
1585 const WM_USERCHANGED=84;
1586 const WM_VKEYTOITEM=46;
1587 const WM_VSCROLL=277;
1588 const WM_VSCROLLCLIPBOARD=778;
1589 const WM_WINDOWPOSCHANGED=71;
1590 const WM_WINDOWPOSCHANGING=70;
1591 const WM_WININICHANGE=26;
1592 const WM_INPUT=255;
1593 const WM_KEYFIRST=256;
1594 const WM_KEYLAST=264;
1595 const WM_SYNCPAINT=136;
1596 const WM_MOUSEACTIVATE=33;
1597 const WM_MOUSEMOVE=512;
1598 const WM_LBUTTONDOWN=513;
1599 const WM_LBUTTONUP=514;
1600 const WM_LBUTTONDBLCLK=515;
1601 const WM_RBUTTONDOWN=516;
1602 const WM_RBUTTONUP=517;
1603 const WM_RBUTTONDBLCLK=518;
1604 const WM_MBUTTONDOWN=519;
1605 const WM_MBUTTONUP=520;
1606 const WM_MBUTTONDBLCLK=521;
1607 const WM_MOUSEWHEEL=522;
1608 const WM_MOUSEFIRST=512;
1609 static if (_WIN32_WINNT >= 0x500) {
1610 const WM_XBUTTONDOWN=523;
1611 const WM_XBUTTONUP=524;
1612 const WM_XBUTTONDBLCLK=525;
1613 const WM_MOUSELAST=525;
1614 } else {
1615 const WM_MOUSELAST=522;
1616 }
1617 const WM_MOUSEHOVER=0x2A1;
1618 const WM_MOUSELEAVE=0x2A3;
1619 static if (_WIN32_WINNT >= 0x400) {
1620 const WHEEL_DELTA=120;
1621
1622 SHORT GET_WHEEL_DELTA_WPARAM(WPARAM wparam)
1623 {
1624 return cast(SHORT) HIWORD(wparam);
1625 }
1626
1627 const WHEEL_PAGESCROLL = uint.max;
1628 }
1629 const BM_CLICK=245;
1630 const BM_GETCHECK=240;
1631 const BM_GETIMAGE=246;
1632 const BM_GETSTATE=242;
1633 const BM_SETCHECK=241;
1634 const BM_SETIMAGE=247;
1635 const BM_SETSTATE=243;
1636 const BM_SETSTYLE=244;
1637 const BN_CLICKED=0;
1638 const BN_DBLCLK=5;
1639 const BN_DISABLE=4;
1640 const BN_DOUBLECLICKED=5;
1641 const BN_HILITE=2;
1642 const BN_KILLFOCUS=7;
1643 const BN_PAINT=1;
1644 const BN_PUSHED=2;
1645 const BN_SETFOCUS=6;
1646 const BN_UNHILITE=3;
1647 const BN_UNPUSHED=3;
1648 const CB_ADDSTRING=323;
1649 const CB_DELETESTRING=324;
1650 const CB_DIR=325;
1651 const CB_FINDSTRING=332;
1652 const CB_FINDSTRINGEXACT=344;
1653 const CB_GETCOUNT=326;
1654 const CB_GETCURSEL=327;
1655 const CB_GETDROPPEDCONTROLRECT=338;
1656 const CB_GETDROPPEDSTATE=343;
1657 const CB_GETDROPPEDWIDTH=351;
1658 const CB_GETEDITSEL=320;
1659 const CB_GETEXTENDEDUI=342;
1660 const CB_GETHORIZONTALEXTENT=349;
1661 const CB_GETITEMDATA=336;
1662 const CB_GETITEMHEIGHT=340;
1663 const CB_GETLBTEXT=328;
1664 const CB_GETLBTEXTLEN=329;
1665 const CB_GETLOCALE=346;
1666 const CB_GETTOPINDEX=347;
1667 const CB_INITSTORAGE=353;
1668 const CB_INSERTSTRING=330;
1669 const CB_LIMITTEXT=321;
1670 const CB_RESETCONTENT=331;
1671 const CB_SELECTSTRING=333;
1672 const CB_SETCURSEL=334;
1673 const CB_SETDROPPEDWIDTH=352;
1674 const CB_SETEDITSEL=322;
1675 const CB_SETEXTENDEDUI=341;
1676 const CB_SETHORIZONTALEXTENT=350;
1677 const CB_SETITEMDATA=337;
1678 const CB_SETITEMHEIGHT=339;
1679 const CB_SETLOCALE=345;
1680 const CB_SETTOPINDEX=348;
1681 const CB_SHOWDROPDOWN=335;
1682
1683 const CBN_CLOSEUP=8;
1684 const CBN_DBLCLK=2;
1685 const CBN_DROPDOWN=7;
1686 const CBN_EDITCHANGE=5;
1687 const CBN_EDITUPDATE=6;
1688 const CBN_ERRSPACE=(-1);
1689 const CBN_KILLFOCUS=4;
1690 const CBN_SELCHANGE=1;
1691 const CBN_SELENDCANCEL=10;
1692 const CBN_SELENDOK=9;
1693 const CBN_SETFOCUS=3;
1694
1695 const EM_CANUNDO=198;
1696 const EM_CHARFROMPOS=215;
1697 const EM_EMPTYUNDOBUFFER=205;
1698 const EM_FMTLINES=200;
1699 const EM_GETFIRSTVISIBLELINE=206;
1700 const EM_GETHANDLE=189;
1701 const EM_GETLIMITTEXT=213;
1702 const EM_GETLINE=196;
1703 const EM_GETLINECOUNT=186;
1704 const EM_GETMARGINS=212;
1705 const EM_GETMODIFY=184;
1706 const EM_GETPASSWORDCHAR=210;
1707 const EM_GETRECT=178;
1708 const EM_GETSEL=176;
1709 const EM_GETTHUMB=190;
1710 const EM_GETWORDBREAKPROC=209;
1711 const EM_LIMITTEXT=197;
1712 const EM_LINEFROMCHAR=201;
1713 const EM_LINEINDEX=187;
1714 const EM_LINELENGTH=193;
1715 const EM_LINESCROLL=182;
1716 const EM_POSFROMCHAR=214;
1717 const EM_REPLACESEL=194;
1718 const EM_SCROLL=181;
1719 const EM_SCROLLCARET=183;
1720 const EM_SETHANDLE=188;
1721 const EM_SETLIMITTEXT=197;
1722 const EM_SETMARGINS=211;
1723 const EM_SETMODIFY=185;
1724 const EM_SETPASSWORDCHAR=204;
1725 const EM_SETREADONLY=207;
1726 const EM_SETRECT=179;
1727 const EM_SETRECTNP=180;
1728 const EM_SETSEL=177;
1729 const EM_SETTABSTOPS=203;
1730 const EM_SETWORDBREAKPROC=208;
1731 const EM_UNDO=199;
1732
1733 const EN_CHANGE=768;
1734 const EN_ERRSPACE=1280;
1735 const EN_HSCROLL=1537;
1736 const EN_KILLFOCUS=512;
1737 const EN_MAXTEXT=1281;
1738 const EN_SETFOCUS=256;
1739 const EN_UPDATE=1024;
1740 const EN_VSCROLL=1538;
1741
1742 const LB_ADDFILE=406;
1743 const LB_ADDSTRING=384;
1744 const LB_DELETESTRING=386;
1745 const LB_DIR=397;
1746 const LB_FINDSTRING=399;
1747 const LB_FINDSTRINGEXACT=418;
1748 const LB_GETANCHORINDEX=413;
1749 const LB_GETCARETINDEX=415;
1750 const LB_GETCOUNT=395;
1751 const LB_GETCURSEL=392;
1752 const LB_GETHORIZONTALEXTENT=403;
1753 const LB_GETITEMDATA=409;
1754 const LB_GETITEMHEIGHT=417;
1755 const LB_GETITEMRECT=408;
1756 const LB_GETLOCALE=422;
1757 const LB_GETSEL=391;
1758 const LB_GETSELCOUNT=400;
1759 const LB_GETSELITEMS=401;
1760 const LB_GETTEXT=393;
1761 const LB_GETTEXTLEN=394;
1762 const LB_GETTOPINDEX=398;
1763 const LB_INITSTORAGE=424;
1764 const LB_INSERTSTRING=385;
1765 const LB_ITEMFROMPOINT=425;
1766 const LB_RESETCONTENT=388;
1767 const LB_SELECTSTRING=396;
1768 const LB_SELITEMRANGE=411;
1769 const LB_SELITEMRANGEEX=387;
1770 const LB_SETANCHORINDEX=412;
1771 const LB_SETCARETINDEX=414;
1772 const LB_SETCOLUMNWIDTH=405;
1773 const LB_SETCOUNT=423;
1774 const LB_SETCURSEL=390;
1775 const LB_SETHORIZONTALEXTENT=404;
1776 const LB_SETITEMDATA=410;
1777 const LB_SETITEMHEIGHT=416;
1778 const LB_SETLOCALE=421;
1779 const LB_SETSEL=389;
1780 const LB_SETTABSTOPS=402;
1781 const LB_SETTOPINDEX=407;
1782
1783 const LBN_DBLCLK=2;
1784 const LBN_ERRSPACE=-2;
1785 const LBN_KILLFOCUS=5;
1786 const LBN_SELCANCEL=3;
1787 const LBN_SELCHANGE=1;
1788 const LBN_SETFOCUS=4;
1789
1790 const SBM_ENABLE_ARROWS=228;
1791 const SBM_GETPOS=225;
1792 const SBM_GETRANGE=227;
1793 const SBM_GETSCROLLINFO=234;
1794 const SBM_SETPOS=224;
1795 const SBM_SETRANGE=226;
1796 const SBM_SETRANGEREDRAW=230;
1797 const SBM_SETSCROLLINFO=233;
1798 const STM_GETICON=369;
1799 const STM_GETIMAGE=371;
1800 const STM_SETICON=368;
1801 const STM_SETIMAGE=370;
1802 const STN_CLICKED=0;
1803 const STN_DBLCLK=1;
1804 const STN_DISABLE=3;
1805 const STN_ENABLE=2;
1806
1807 const DM_GETDEFID = WM_USER;
1808 const DM_SETDEFID = WM_USER+1;
1809 const DM_REPOSITION = WM_USER+2;
1810
1811 const PSM_PAGEINFO = WM_USER+100;
1812 const PSM_SHEETINFO = WM_USER+101;
1813
1814 const PSI_SETACTIVE=1;
1815 const PSI_KILLACTIVE=2;
1816 const PSI_APPLY=3;
1817 const PSI_RESET=4;
1818 const PSI_HASHELP=5;
1819 const PSI_HELP=6;
1820 const PSI_CHANGED=1;
1821 const PSI_GUISTART=2;
1822 const PSI_REBOOT=3;
1823 const PSI_GETSIBLINGS=4;
1824
1825 const DCX_WINDOW=1;
1826 const DCX_CACHE=2;
1827 const DCX_PARENTCLIP=32;
1828 const DCX_CLIPSIBLINGS=16;
1829 const DCX_CLIPCHILDREN=8;
1830 const DCX_NORESETATTRS=4;
1831 const DCX_INTERSECTUPDATE=0x200;
1832 const DCX_LOCKWINDOWUPDATE=0x400;
1833 const DCX_EXCLUDERGN=64;
1834 const DCX_INTERSECTRGN=128;
1835 const DCX_VALIDATE=0x200000;
1836
1837 const GMDI_GOINTOPOPUPS=2;
1838 const GMDI_USEDISABLED=1;
1839 const FKF_AVAILABLE=2;
1840 const FKF_CLICKON=64;
1841 const FKF_FILTERKEYSON=1;
1842 const FKF_HOTKEYACTIVE=4;
1843 const FKF_HOTKEYSOUND=16;
1844 const FKF_CONFIRMHOTKEY=8;
1845 const FKF_INDICATOR=32;
1846 const HCF_HIGHCONTRASTON=1;
1847 const HCF_AVAILABLE=2;
1848 const HCF_HOTKEYACTIVE=4;
1849 const HCF_CONFIRMHOTKEY=8;
1850 const HCF_HOTKEYSOUND=16;
1851 const HCF_INDICATOR=32;
1852 const HCF_HOTKEYAVAILABLE=64;
1853 const MKF_AVAILABLE=2;
1854 const MKF_CONFIRMHOTKEY=8;
1855 const MKF_HOTKEYACTIVE=4;
1856 const MKF_HOTKEYSOUND=16;
1857 const MKF_INDICATOR=32;
1858 const MKF_MOUSEKEYSON=1;
1859 const MKF_MODIFIERS=64;
1860 const MKF_REPLACENUMBERS=128;
1861 const SERKF_ACTIVE=8; // May be obsolete. Not in recent MS docs.
1862 const SERKF_AVAILABLE=2;
1863 const SERKF_INDICATOR=4;
1864 const SERKF_SERIALKEYSON=1;
1865 const SSF_AVAILABLE=2;
1866 const SSF_SOUNDSENTRYON=1;
1867 const SSTF_BORDER=2;
1868 const SSTF_CHARS=1;
1869 const SSTF_DISPLAY=3;
1870 const SSTF_NONE=0;
1871 const SSGF_DISPLAY=3;
1872 const SSGF_NONE=0;
1873 const SSWF_CUSTOM=4;
1874 const SSWF_DISPLAY=3;
1875 const SSWF_NONE=0;
1876 const SSWF_TITLE=1;
1877 const SSWF_WINDOW=2;
1878 const SKF_AUDIBLEFEEDBACK=64;
1879 const SKF_AVAILABLE=2;
1880 const SKF_CONFIRMHOTKEY=8;
1881 const SKF_HOTKEYACTIVE=4;
1882 const SKF_HOTKEYSOUND=16;
1883 const SKF_INDICATOR=32;
1884 const SKF_STICKYKEYSON=1;
1885 const SKF_TRISTATE=128;
1886 const SKF_TWOKEYSOFF=256;
1887 const TKF_AVAILABLE=2;
1888 const TKF_CONFIRMHOTKEY=8;
1889 const TKF_HOTKEYACTIVE=4;
1890 const TKF_HOTKEYSOUND=16;
1891 const TKF_TOGGLEKEYSON=1;
1892 const MDITILE_SKIPDISABLED=2;
1893 const MDITILE_HORIZONTAL=1;
1894 const MDITILE_VERTICAL=0;
1895
1896 enum {
1897 VK_LBUTTON = 0x01,
1898 VK_RBUTTON = 0x02,
1899 VK_CANCEL = 0x03,
1900 VK_MBUTTON = 0x04,
1901 //static if (_WIN32_WINNT > = 0x500) {
1902 VK_XBUTTON1 = 0x05,
1903 VK_XBUTTON2 = 0x06,
1904 //}
1905 VK_BACK = 0x08,
1906 VK_TAB = 0x09,
1907 VK_CLEAR = 0x0C,
1908 VK_RETURN = 0x0D,
1909 VK_SHIFT = 0x10,
1910 VK_CONTROL = 0x11,
1911 VK_MENU = 0x12,
1912 VK_PAUSE = 0x13,
1913 VK_CAPITAL = 0x14,
1914 VK_KANA = 0x15,
1915 VK_HANGEUL = 0x15,
1916 VK_HANGUL = 0x15,
1917 VK_JUNJA = 0x17,
1918 VK_FINAL = 0x18,
1919 VK_HANJA = 0x19,
1920 VK_KANJI = 0x19,
1921 VK_ESCAPE = 0x1B,
1922 VK_CONVERT = 0x1C,
1923 VK_NONCONVERT = 0x1D,
1924 VK_ACCEPT = 0x1E,
1925 VK_MODECHANGE = 0x1F,
1926 VK_SPACE = 0x20,
1927 VK_PRIOR = 0x21,
1928 VK_NEXT = 0x22,
1929 VK_END = 0x23,
1930 VK_HOME = 0x24,
1931 VK_LEFT = 0x25,
1932 VK_UP = 0x26,
1933 VK_RIGHT = 0x27,
1934 VK_DOWN = 0x28,
1935 VK_SELECT = 0x29,
1936 VK_PRINT = 0x2A,
1937 VK_EXECUTE = 0x2B,
1938 VK_SNAPSHOT = 0x2C,
1939 VK_INSERT = 0x2D,
1940 VK_DELETE = 0x2E,
1941 VK_HELP = 0x2F,
1942 VK_LWIN = 0x5B,
1943 VK_RWIN = 0x5C,
1944 VK_APPS = 0x5D,
1945 VK_SLEEP = 0x5F,
1946 VK_NUMPAD0 = 0x60,
1947 VK_NUMPAD1 = 0x61,
1948 VK_NUMPAD2 = 0x62,
1949 VK_NUMPAD3 = 0x63,
1950 VK_NUMPAD4 = 0x64,
1951 VK_NUMPAD5 = 0x65,
1952 VK_NUMPAD6 = 0x66,
1953 VK_NUMPAD7 = 0x67,
1954 VK_NUMPAD8 = 0x68,
1955 VK_NUMPAD9 = 0x69,
1956 VK_MULTIPLY = 0x6A,
1957 VK_ADD = 0x6B,
1958 VK_SEPARATOR = 0x6C,
1959 VK_SUBTRACT = 0x6D,
1960 VK_DECIMAL = 0x6E,
1961 VK_DIVIDE = 0x6F,
1962 VK_F1 = 0x70,
1963 VK_F2 = 0x71,
1964 VK_F3 = 0x72,
1965 VK_F4 = 0x73,
1966 VK_F5 = 0x74,
1967 VK_F6 = 0x75,
1968 VK_F7 = 0x76,
1969 VK_F8 = 0x77,
1970 VK_F9 = 0x78,
1971 VK_F10 = 0x79,
1972 VK_F11 = 0x7A,
1973 VK_F12 = 0x7B,
1974 VK_F13 = 0x7C,
1975 VK_F14 = 0x7D,
1976 VK_F15 = 0x7E,
1977 VK_F16 = 0x7F,
1978 VK_F17 = 0x80,
1979 VK_F18 = 0x81,
1980 VK_F19 = 0x82,
1981 VK_F20 = 0x83,
1982 VK_F21 = 0x84,
1983 VK_F22 = 0x85,
1984 VK_F23 = 0x86,
1985 VK_F24 = 0x87,
1986 VK_NUMLOCK = 0x90,
1987 VK_SCROLL = 0x91,
1988 VK_LSHIFT = 0xA0,
1989 VK_RSHIFT = 0xA1,
1990 VK_LCONTROL = 0xA2,
1991 VK_RCONTROL = 0xA3,
1992 VK_LMENU = 0xA4,
1993 VK_RMENU = 0xA5,
1994 //static if (_WIN32_WINNT > = 0x500) {
1995 VK_BROWSER_BACK = 0xA6,
1996 VK_BROWSER_FORWARD = 0xA7,
1997 VK_BROWSER_REFRESH = 0xA8,
1998 VK_BROWSER_STOP = 0xA9,
1999 VK_BROWSER_SEARCH = 0xAA,
2000 VK_BROWSER_FAVORITES = 0xAB,
2001 VK_BROWSER_HOME = 0xAC,
2002 VK_VOLUME_MUTE = 0xAD,
2003 VK_VOLUME_DOWN = 0xAE,
2004 VK_VOLUME_UP = 0xAF,
2005 VK_MEDIA_NEXT_TRACK = 0xB0,
2006 VK_MEDIA_PREV_TRACK = 0xB1,
2007 VK_MEDIA_STOP = 0xB2,
2008 VK_MEDIA_PLAY_PAUSE = 0xB3,
2009 VK_LAUNCH_MAIL = 0xB4,
2010 VK_LAUNCH_MEDIA_SELECT = 0xB5,
2011 VK_LAUNCH_APP1 = 0xB6,
2012 VK_LAUNCH_APP2 = 0xB7,
2013 //}
2014 VK_OEM_1 = 0xBA,
2015 //static if (_WIN32_WINNT > = 0x500) {
2016 VK_OEM_PLUS = 0xBB,
2017 VK_OEM_COMMA = 0xBC,
2018 VK_OEM_MINUS = 0xBD,
2019 VK_OEM_PERIOD = 0xBE,
2020 //}
2021 VK_OEM_2 = 0xBF,
2022 VK_OEM_3 = 0xC0,
2023 VK_OEM_4 = 0xDB,
2024 VK_OEM_5 = 0xDC,
2025 VK_OEM_6 = 0xDD,
2026 VK_OEM_7 = 0xDE,
2027 VK_OEM_8 = 0xDF,
2028 //static if (_WIN32_WINNT > = 0x500) {
2029 VK_OEM_102 = 0xE2,
2030 //}
2031 VK_PROCESSKEY = 0xE5,
2032 //static if (_WIN32_WINNT > = 0x500) {
2033 VK_PACKET = 0xE7,
2034 //}
2035 VK_ATTN = 0xF6,
2036 VK_CRSEL = 0xF7,
2037 VK_EXSEL = 0xF8,
2038 VK_EREOF = 0xF9,
2039 VK_PLAY = 0xFA,
2040 VK_ZOOM = 0xFB,
2041 VK_NONAME = 0xFC,
2042 VK_PA1 = 0xFD,
2043 VK_OEM_CLEAR = 0xFE,
2044 }
2045
2046 const TME_HOVER=1;
2047 const TME_LEAVE=2;
2048 const TME_QUERY=0x40000000;
2049 const TME_CANCEL=0x80000000;
2050
2051 const HOVER_DEFAULT=0xFFFFFFFF;
2052
2053 const MK_LBUTTON=1;
2054 const MK_RBUTTON=2;
2055 const MK_SHIFT=4;
2056 const MK_CONTROL=8;
2057 const MK_MBUTTON=16;
2058 static if (_WIN32_WINNT >= 0x500) {
2059 const MK_XBUTTON1=32;
2060 const MK_XBUTTON2=64;
2061 }
2062 const TPM_CENTERALIGN=4;
2063 const TPM_LEFTALIGN=0;
2064 const TPM_RIGHTALIGN=8;
2065 const TPM_LEFTBUTTON=0;
2066 const TPM_RIGHTBUTTON=2;
2067 const TPM_HORIZONTAL=0;
2068 const TPM_VERTICAL=64;
2069 const TPM_TOPALIGN=0;
2070 const TPM_VCENTERALIGN=16;
2071 const TPM_BOTTOMALIGN=32;
2072 const TPM_NONOTIFY=128;
2073 const TPM_RETURNCMD=256;
2074 static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x410)) {
2075 const TPM_RECURSE=1;
2076 }
2077
2078 const HELP_COMMAND=0x102;
2079 const HELP_CONTENTS=3;
2080 const HELP_CONTEXT=1;
2081 const HELP_CONTEXTPOPUP=8;
2082 const HELP_FORCEFILE=9;
2083 const HELP_HELPONHELP=4;
2084 const HELP_INDEX=3;
2085 const HELP_KEY=0x101;
2086 const HELP_MULTIKEY=0x201;
2087 const HELP_PARTIALKEY=0x105;
2088 const HELP_QUIT=2;
2089 const HELP_SETCONTENTS=5;
2090 const HELP_SETINDEX=5;
2091 const HELP_SETWINPOS=0x203;
2092 const HELP_CONTEXTMENU=0xa;
2093 const HELP_FINDER=0xb;
2094 const HELP_WM_HELP=0xc;
2095 const HELP_TCARD=0x8000;
2096 const HELP_TCARD_DATA=16;
2097 const HELP_TCARD_OTHER_CALLER=0x11;
2098
2099 const IDH_NO_HELP=28440;
2100 const IDH_MISSING_CONTEXT=28441;
2101 const IDH_GENERIC_HELP_BUTTON=28442;
2102 const IDH_OK=28443;
2103 const IDH_CANCEL=28444;
2104 const IDH_HELP=28445;
2105
2106 const LB_CTLCODE=0;
2107 const LB_OKAY=0;
2108 const LB_ERR=-1;
2109 const LB_ERRSPACE=-2;
2110
2111 const CB_OKAY=0;
2112 const CB_ERR=-1;
2113 const CB_ERRSPACE=-2;
2114
2115 const HIDE_WINDOW=0;
2116
2117 const SHOW_OPENWINDOW=1;
2118 const SHOW_ICONWINDOW=2;
2119 const SHOW_FULLSCREEN=3;
2120 const SHOW_OPENNOACTIVATE=4;
2121
2122 const SW_PARENTCLOSING=1;
2123 const SW_OTHERZOOM=2;
2124 const SW_PARENTOPENING=3;
2125 const SW_OTHERUNZOOM=4;
2126
2127 const KF_EXTENDED=256;
2128 const KF_DLGMODE=2048;
2129 const KF_MENUMODE=4096;
2130 const KF_ALTDOWN=8192;
2131 const KF_REPEAT=16384;
2132 const KF_UP=32768;
2133
2134 const WSF_VISIBLE=1;
2135
2136 const PWR_OK=1;
2137 const PWR_FAIL=-1;
2138 const PWR_SUSPENDREQUEST=1;
2139 const PWR_SUSPENDRESUME=2;
2140 const PWR_CRITICALRESUME=3;
2141
2142 const NFR_ANSI=1;
2143 const NFR_UNICODE=2;
2144 const NF_QUERY=3;
2145 const NF_REQUERY=4;
2146
2147 const MENULOOP_WINDOW=0;
2148 const MENULOOP_POPUP=1;
2149
2150 const WMSZ_LEFT=1;
2151 const WMSZ_RIGHT=2;
2152 const WMSZ_TOP=3;
2153 const WMSZ_TOPLEFT=4;
2154 const WMSZ_TOPRIGHT=5;
2155 const WMSZ_BOTTOM=6;
2156 const WMSZ_BOTTOMLEFT=7;
2157 const WMSZ_BOTTOMRIGHT=8;
2158
2159 const HTERROR=-2;
2160 const HTTRANSPARENT=-1;
2161 const HTNOWHERE=0;
2162 const HTCLIENT=1;
2163 const HTCAPTION=2;
2164 const HTSYSMENU=3;
2165 const HTGROWBOX=4;
2166 const HTSIZE=4;
2167 const HTMENU=5;
2168 const HTHSCROLL=6;
2169 const HTVSCROLL=7;
2170 const HTMINBUTTON=8;
2171 const HTMAXBUTTON=9;
2172 const HTREDUCE=8;
2173 const HTZOOM=9;
2174 const HTLEFT=10;
2175 const HTSIZEFIRST=10;
2176 const HTRIGHT=11;
2177 const HTTOP=12;
2178 const HTTOPLEFT=13;
2179 const HTTOPRIGHT=14;
2180 const HTBOTTOM=15;
2181 const HTBOTTOMLEFT=16;
2182 const HTBOTTOMRIGHT=17;
2183 const HTSIZELAST=17;
2184 const HTBORDER=18;
2185 const HTOBJECT=19;
2186 const HTCLOSE=20;
2187 const HTHELP=21;
2188
2189 const MA_ACTIVATE=1;
2190 const MA_ACTIVATEANDEAT=2;
2191 const MA_NOACTIVATE=3;
2192 const MA_NOACTIVATEANDEAT=4;
2193
2194 const SIZE_RESTORED=0;
2195 const SIZE_MINIMIZED=1;
2196 const SIZE_MAXIMIZED=2;
2197 const SIZE_MAXSHOW=3;
2198 const SIZE_MAXHIDE=4;
2199
2200 const SIZENORMAL=0;
2201 const SIZEICONIC=1;
2202 const SIZEFULLSCREEN=2;
2203 const SIZEZOOMSHOW=3;
2204 const SIZEZOOMHIDE=4;
2205
2206 const WVR_ALIGNTOP=16;
2207 const WVR_ALIGNLEFT=32;
2208 const WVR_ALIGNBOTTOM=64;
2209 const WVR_ALIGNRIGHT=128;
2210 const WVR_HREDRAW=256;
2211 const WVR_VREDRAW=512;
2212 const WVR_REDRAW=(WVR_HREDRAW|WVR_VREDRAW);
2213 const WVR_VALIDRECTS=1024;
2214
2215 const PRF_CHECKVISIBLE=1;
2216 const PRF_NONCLIENT=2;
2217 const PRF_CLIENT=4;
2218 const PRF_ERASEBKGND=8;
2219 const PRF_CHILDREN=16;
2220 const PRF_OWNED=32;
2221
2222 const IDANI_OPEN=1;
2223 const IDANI_CLOSE=2;
2224 const IDANI_CAPTION=3;
2225
2226 const WPF_RESTORETOMAXIMIZED=2;
2227 const WPF_SETMINPOSITION=1;
2228
2229 const ODT_MENU=1;
2230 const ODT_LISTBOX=2;
2231 const ODT_COMBOBOX=3;
2232 const ODT_BUTTON=4;
2233 const ODT_STATIC=5;
2234 const ODA_DRAWENTIRE=1;
2235 const ODA_SELECT=2;
2236 const ODA_FOCUS=4;
2237 const ODS_SELECTED=1;
2238 const ODS_GRAYED=2;
2239 const ODS_DISABLED=4;
2240 const ODS_CHECKED=8;
2241 const ODS_FOCUS=16;
2242 const ODS_DEFAULT=32;
2243 const ODS_COMBOBOXEDIT=4096;
2244
2245 const IDHOT_SNAPWINDOW=-1;
2246 const IDHOT_SNAPDESKTOP=-2;
2247
2248 const DBWF_LPARAMPOINTER=0x8000;
2249 const DLGWINDOWEXTRA=30;
2250 const MNC_IGNORE=0;
2251 const MNC_CLOSE=1;
2252 const MNC_EXECUTE=2;
2253 const MNC_SELECT=3;
2254 const DOF_EXECUTABLE=0x8001;
2255 const DOF_DOCUMENT=0x8002;
2256 const DOF_DIRECTORY=0x8003;
2257 const DOF_MULTIPLE=0x8004;
2258 const DOF_PROGMAN=1;
2259 const DOF_SHELLDATA=2;
2260 const DO_DROPFILE=0x454C4946;
2261 const DO_PRINTFILE=0x544E5250;
2262
2263 const SW_SCROLLCHILDREN=1;
2264 const SW_INVALIDATE=2;
2265 const SW_ERASE=4;
2266
2267 const SC_SIZE=0xF000;
2268 const SC_MOVE=0xF010;
2269 const SC_MINIMIZE=0xF020;
2270 const SC_ICON=0xf020;
2271 const SC_MAXIMIZE=0xF030;
2272 const SC_ZOOM=0xF030;
2273 const SC_NEXTWINDOW=0xF040;
2274 const SC_PREVWINDOW=0xF050;
2275 const SC_CLOSE=0xF060;
2276 const SC_VSCROLL=0xF070;
2277 const SC_HSCROLL=0xF080;
2278 const SC_MOUSEMENU=0xF090;
2279 const SC_KEYMENU=0xF100;
2280 const SC_ARRANGE=0xF110;
2281 const SC_RESTORE=0xF120;
2282 const SC_TASKLIST=0xF130;
2283 const SC_SCREENSAVE=0xF140;
2284 const SC_HOTKEY=0xF150;
2285 const SC_DEFAULT=0xF160;
2286 const SC_MONITORPOWER=0xF170;
2287 const SC_CONTEXTHELP=0xF180;
2288 const SC_SEPARATOR=0xF00F;
2289
2290 const EC_LEFTMARGIN=1;
2291 const EC_RIGHTMARGIN=2;
2292 const EC_USEFONTINFO=0xffff;
2293
2294 const DC_HASDEFID=0x534B;
2295
2296 const DLGC_WANTARROWS=1;
2297 const DLGC_WANTTAB=2;
2298 const DLGC_WANTALLKEYS=4;
2299 const DLGC_WANTMESSAGE=4;
2300 const DLGC_HASSETSEL=8;
2301 const DLGC_DEFPUSHBUTTON=16;
2302 const DLGC_UNDEFPUSHBUTTON=32;
2303 const DLGC_RADIOBUTTON=64;
2304 const DLGC_WANTCHARS=128;
2305 const DLGC_STATIC=256;
2306 const DLGC_BUTTON=0x2000;
2307
2308 const WA_INACTIVE=0;
2309 const WA_ACTIVE=1;
2310 const WA_CLICKACTIVE=2;
2311
2312 const ICON_SMALL=0;
2313 const ICON_BIG=1;
2314 static if (_WIN32_WINNT >= 0x501) {
2315 const ICON_SMALL2=2;
2316 }
2317
2318 const HBITMAP
2319 HBMMENU_CALLBACK = cast(HBITMAP)-1,
2320 HBMMENU_SYSTEM = cast(HBITMAP)1,
2321 HBMMENU_MBAR_RESTORE = cast(HBITMAP)2,
2322 HBMMENU_MBAR_MINIMIZE = cast(HBITMAP)3,
2323 HBMMENU_MBAR_CLOSE = cast(HBITMAP)5,
2324 HBMMENU_MBAR_CLOSE_D = cast(HBITMAP)6,
2325 HBMMENU_MBAR_MINIMIZE_D = cast(HBITMAP)7,
2326 HBMMENU_POPUP_CLOSE = cast(HBITMAP)8,
2327 HBMMENU_POPUP_RESTORE = cast(HBITMAP)9,
2328 HBMMENU_POPUP_MAXIMIZE = cast(HBITMAP)10,
2329 HBMMENU_POPUP_MINIMIZE = cast(HBITMAP)11;
2330
2331 const MOD_ALT=1;
2332 const MOD_CONTROL=2;
2333 const MOD_SHIFT=4;
2334 const MOD_WIN=8;
2335 const MOD_IGNORE_ALL_MODIFIER=1024;
2336 const MOD_ON_KEYUP=2048;
2337 const MOD_RIGHT=16384;
2338 const MOD_LEFT=32768;
2339
2340 const LLKHF_EXTENDED=(KF_EXTENDED >> 8);
2341 const LLKHF_INJECTED=0x00000010;
2342 const LLKHF_ALTDOWN=(KF_ALTDOWN >> 8);
2343 const LLKHF_UP=(KF_UP >> 8);
2344
2345 static if (WINVER >= 0x500) {
2346 const FLASHW_STOP=0;
2347 const FLASHW_CAPTION=1;
2348 const FLASHW_TRAY=2;
2349 const FLASHW_ALL=(FLASHW_CAPTION|FLASHW_TRAY);
2350 const FLASHW_TIMER=4;
2351 const FLASHW_TIMERNOFG=12;
2352 }
2353
2354 const CURSOR_SHOWING=0x00000001;
2355 const WS_ACTIVECAPTION=0x00000001;
2356 static if (_WIN32_WINNT >= 0x403) {
2357 const INPUT_MOUSE=0x00000000;
2358 const INPUT_KEYBOARD=0x00000001;
2359 const INPUT_HARDWARE=0x00000002;
2360 }
2361 static if (WINVER >= 0x400) {
2362 const ENDSESSION_LOGOFF = 0x80000000;
2363 }
2364
2365 static if (WINVER >= 0x500) {
2366 const CHILDID_SELF = 0;
2367 const OBJID_WINDOW = 0x00000000;
2368 const OBJID_SYSMENU = 0xFFFFFFFF;
2369 const OBJID_TITLEBAR = 0xFFFFFFFE;
2370 const OBJID_MENU = 0xFFFFFFFD;
2371 const OBJID_CLIENT = 0xFFFFFFFC;
2372 const OBJID_VSCROLL = 0xFFFFFFFB;
2373 const OBJID_HSCROLL = 0xFFFFFFFA;
2374 const OBJID_SIZEGRIP = 0xFFFFFFF9;
2375 const OBJID_CARET = 0xFFFFFFF8;
2376 const OBJID_CURSOR = 0xFFFFFFF7;
2377 const OBJID_ALERT = 0xFFFFFFF6;
2378 const OBJID_SOUND = 0xFFFFFFF5;
2379
2380 const GUI_CARETBLINKING = 0x00000001;
2381 const GUI_INMOVESIZE = 0x00000002;
2382 const GUI_INMENUMODE = 0x00000004;
2383 const GUI_SYSTEMMENUMODE = 0x00000008;
2384 const GUI_POPUPMENUMODE = 0x00000010;
2385
2386 static if (_WIN32_WINNT >= 0x501) {
2387 const GUI_16BITTASK = 0x00000020;
2388 }
2389 const WINEVENT_OUTOFCONTEXT=0x0000;
2390 const WINEVENT_SKIPOWNTHREAD=0x0001;
2391 const WINEVENT_SKIPOWNPROCESS=0x0002;
2392 const WINEVENT_INCONTEXT=0x0004;
2393 const AW_HOR_POSITIVE=0x00000001;
2394 const AW_HOR_NEGATIVE=0x00000002;
2395 const AW_VER_POSITIVE=0x00000004;
2396 const AW_VER_NEGATIVE=0x00000008;
2397 const AW_CENTER=0x00000010;
2398 const AW_HIDE=0x00010000;
2399 const AW_ACTIVATE=0x00020000;
2400 const AW_SLIDE=0x00040000;
2401 const AW_BLEND=0x00080000;
2402 const DEVICE_NOTIFY_WINDOW_HANDLE=0x00000000;
2403 const DEVICE_NOTIFY_SERVICE_HANDLE=0x00000001;
2404
2405 static if (_WIN32_WINNT >= 0x501) {
2406 const DEVICE_NOTIFY_ALL_INTERFACE_CLASSES=0x00000004;
2407 }
2408
2409 const EVENT_MIN = 0x00000001;
2410 const EVENT_SYSTEM_SOUND = 0x00000001;
2411 const EVENT_SYSTEM_ALERT = 0x00000002;
2412 const EVENT_SYSTEM_FOREGROUND = 0x00000003;
2413 const EVENT_SYSTEM_MENUSTART = 0x00000004;
2414 const EVENT_SYSTEM_MENUEND = 0x00000005;
2415 const EVENT_SYSTEM_MENUPOPUPSTART = 0x00000006;
2416 const EVENT_SYSTEM_MENUPOPUPEND = 0x00000007;
2417 const EVENT_SYSTEM_CAPTURESTART = 0x00000008;
2418 const EVENT_SYSTEM_CAPTUREEND = 0x00000009;
2419 const EVENT_SYSTEM_MOVESIZESTART = 0x0000000a;
2420 const EVENT_SYSTEM_MOVESIZEEND = 0x0000000b;
2421 const EVENT_SYSTEM_CONTEXTHELPSTART = 0x0000000c;
2422 const EVENT_SYSTEM_CONTEXTHELPEND = 0x0000000d;
2423 const EVENT_SYSTEM_DRAGDROPSTART = 0x0000000e;
2424 const EVENT_SYSTEM_DRAGDROPEND = 0x0000000f;
2425 const EVENT_SYSTEM_DIALOGSTART = 0x00000010;
2426 const EVENT_SYSTEM_DIALOGEND = 0x00000011;
2427 const EVENT_SYSTEM_SCROLLINGSTART = 0x00000012;
2428 const EVENT_SYSTEM_SCROLLINGEND = 0x00000013;
2429 const EVENT_SYSTEM_SWITCHSTART = 0x00000014;
2430 const EVENT_SYSTEM_SWITCHEND = 0x00000015;
2431 const EVENT_SYSTEM_MINIMIZESTART = 0x00000016;
2432 const EVENT_SYSTEM_MINIMIZEEND = 0x00000017;
2433
2434 const EVENT_OBJECT_CREATE = 0x00008000;
2435 const EVENT_OBJECT_DESTROY = 0x00008001;
2436 const EVENT_OBJECT_SHOW = 0x00008002;
2437 const EVENT_OBJECT_HIDE = 0x00008003;
2438 const EVENT_OBJECT_REORDER = 0x00008004;
2439 const EVENT_OBJECT_FOCUS = 0x00008005;
2440 const EVENT_OBJECT_SELECTION = 0x00008006;
2441 const EVENT_OBJECT_SELECTIONADD = 0x00008007;
2442 const EVENT_OBJECT_SELECTIONREMOVE = 0x00008008;
2443 const EVENT_OBJECT_SELECTIONWITHIN = 0x00008009;
2444 const EVENT_OBJECT_STATECHANGE = 0x0000800a;
2445 const EVENT_OBJECT_LOCATIONCHANGE = 0x0000800b;
2446 const EVENT_OBJECT_NAMECHANGE = 0x0000800c;
2447 const EVENT_OBJECT_DESCRIPTIONCHANGE = 0x0000800d;
2448 const EVENT_OBJECT_VALUECHANGE = 0x0000800e;
2449 const EVENT_OBJECT_PARENTCHANGE = 0x0000800f;
2450 const EVENT_OBJECT_HELPCHANGE = 0x00008010;
2451 const EVENT_OBJECT_DEFACTIONCHANGE = 0x00008011;
2452 const EVENT_OBJECT_ACCELERATORCHANGE = 0x00008012;
2453
2454 static if (_WIN32_WINNT >= 0x501) {
2455 const EVENT_CONSOLE_CARET = 0x00004001;
2456 const EVENT_CONSOLE_UPDATE_REGION = 0x00004002;
2457 const EVENT_CONSOLE_UPDATE_SIMPLE = 0x00004003;
2458 const EVENT_CONSOLE_UPDATE_SCROLL = 0x00004004;
2459 const EVENT_CONSOLE_LAYOUT = 0x00004005;
2460 const EVENT_CONSOLE_START_APPLICATION = 0x00004006;
2461 const EVENT_CONSOLE_END_APPLICATION = 0x00004007;
2462
2463 const CONSOLE_CARET_SELECTION = 0x00000001;
2464 const CONSOLE_CARET_VISIBLE = 0x00000002;
2465
2466 const CONSOLE_APPLICATION_16BIT = 0x00000001;
2467
2468 }
2469 const EVENT_MAX=0x7fffffff;
2470
2471 }//(WINVER >= 0x500)
2472
2473 static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x490)) {
2474 const DWORD ASFW_ANY = -1;
2475 const LSFW_LOCK = 1;
2476 const LSFW_UNLOCK = 2;
2477 }
2478
2479 static if (_WIN32_WINNT >= 0x500) {
2480 const LWA_COLORKEY=0x01;
2481 const LWA_ALPHA=0x02;
2482 const ULW_COLORKEY=0x01;
2483 const ULW_ALPHA=0x02;
2484 const ULW_OPAQUE=0x04;
2485 }
2486
2487 const GA_PARENT = 1;
2488 const GA_ROOT = 2;
2489 const GA_ROOTOWNER = 3;
2490
2491 static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x410)) {
2492
2493 const MONITOR_DEFAULTTONULL = 0;
2494 const MONITOR_DEFAULTTOPRIMARY = 1;
2495 const MONITOR_DEFAULTTONEAREST = 2;
2496 const MONITORINFOF_PRIMARY = 1;
2497
2498 const EDS_RAWMODE = 0x00000002;
2499
2500 const ISMEX_NOSEND = 0x00000000;
2501 const ISMEX_SEND = 0x00000001;
2502 const ISMEX_NOTIFY = 0x00000002;
2503 const ISMEX_CALLBACK = 0x00000004;
2504 const ISMEX_REPLIED = 0x00000008;
2505 }
2506
2507 static if (_WIN32_WINNT >= 0x500) {
2508 const GR_GDIOBJECTS = 0;
2509 const GR_USEROBJECTS = 1;
2510 }
2511
2512 static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x490)) {
2513 const GMMP_USE_DISPLAY_POINTS = 1;
2514 const GMMP_USE_HIGH_RESOLUTION_POINTS = 2;
2515 }
2516
2517 static if (_WIN32_WINNT >= 0x501) {
2518 const PW_CLIENTONLY = 0x00000001;
2519 const RIM_INPUT = 0x00000000;
2520 const RIM_INPUTSINK = 0x00000001;
2521 const RIM_TYPEMOUSE = 0x00000000;
2522 const RIM_TYPEKEYBOARD = 0x00000001;
2523 const RIM_TYPEHID = 0x00000002;
2524 const MOUSE_MOVE_RELATIVE = 0x00000000;
2525 const MOUSE_MOVE_ABSOLUTE = 0x00000001;
2526 const MOUSE_VIRTUAL_DESKTOP = 0x00000002;
2527 const MOUSE_ATTRIBUTES_CHANGED = 0x00000004;
2528 const RI_MOUSE_LEFT_BUTTON_DOWN = 0x0001;
2529 const RI_MOUSE_LEFT_BUTTON_UP = 0x0002;
2530 const RI_MOUSE_RIGHT_BUTTON_DOWN = 0x0004;
2531 const RI_MOUSE_RIGHT_BUTTON_UP = 0x0008;
2532 const RI_MOUSE_MIDDLE_BUTTON_DOWN = 0x0010;
2533 const RI_MOUSE_MIDDLE_BUTTON_UP = 0x0020;
2534 const RI_MOUSE_BUTTON_1_DOWN = RI_MOUSE_LEFT_BUTTON_DOWN;
2535 const RI_MOUSE_BUTTON_1_UP = RI_MOUSE_LEFT_BUTTON_UP;
2536 const RI_MOUSE_BUTTON_2_DOWN = RI_MOUSE_RIGHT_BUTTON_DOWN;
2537 const RI_MOUSE_BUTTON_2_UP = RI_MOUSE_RIGHT_BUTTON_UP;
2538 const RI_MOUSE_BUTTON_3_DOWN = RI_MOUSE_MIDDLE_BUTTON_DOWN;
2539 const RI_MOUSE_BUTTON_3_UP = RI_MOUSE_MIDDLE_BUTTON_UP;
2540 const RI_MOUSE_BUTTON_4_DOWN = 0x0040;
2541 const RI_MOUSE_BUTTON_4_UP = 0x0080;
2542 const RI_MOUSE_BUTTON_5_DOWN = 0x0100;
2543 const RI_MOUSE_BUTTON_5_UP = 0x0200;
2544 const RI_MOUSE_WHEEL = 0x0400;
2545 const KEYBOARD_OVERRUN_MAKE_CODE = 0x00ff;
2546 const RI_KEY_MAKE = 0x0000;
2547 const RI_KEY_BREAK = 0x0001;
2548 const RI_KEY_E0 = 0x0002;
2549 const RI_KEY_E1 = 0x0004;
2550 const RI_KEY_TERMSRV_SET_LED = 0x0008;
2551 const RI_KEY_TERMSRV_SHADOW = 0x0010;
2552
2553 const RID_INPUT = 0x10000003;
2554 const RID_HEADER = 0x10000005;
2555
2556 const RIDI_PREPARSEDDATA = 0x20000005;
2557 const RIDI_DEVICENAME = 0x20000007;
2558 const RIDI_DEVICEINFO = 0x2000000b;
2559
2560 const RIDEV_REMOVE = 0x00000001;
2561 const RIDEV_EXCLUDE = 0x00000010;
2562 const RIDEV_PAGEONLY = 0x00000020;
2563 const RIDEV_NOLEGACY = 0x00000030;
2564 const RIDEV_INPUTSINK = 0x00000100;
2565 const RIDEV_CAPTUREMOUSE = 0x00000200;
2566 const RIDEV_NOHOTKEYS = 0x00000200;
2567 const RIDEV_APPKEYS = 0x00000400;
2568 }
2569
2570 // Callbacks
2571 // ---------
2572 extern (Windows) {
2573 alias BOOL function (HWND, UINT, WPARAM, LPARAM) DLGPROC;
2574 alias void function (HWND, UINT, UINT, DWORD) TIMERPROC;
2575 alias BOOL function (HDC, LPARAM, int) GRAYSTRINGPROC;
2576 alias LRESULT function (int, WPARAM, LPARAM) HOOKPROC;
2577 alias BOOL function (HWND, LPCSTR, HANDLE) PROPENUMPROCA;
2578 alias BOOL function (HWND, LPCWSTR, HANDLE) PROPENUMPROCW;
2579 alias BOOL function (HWND, LPSTR, HANDLE, DWORD) PROPENUMPROCEXA;
2580 alias BOOL function (HWND, LPWSTR, HANDLE, DWORD) PROPENUMPROCEXW;
2581 alias int function (LPSTR, int, int, int) EDITWORDBREAKPROCA;
2582 alias int function (LPWSTR, int, int, int) EDITWORDBREAKPROCW;
2583 alias LRESULT function (HWND, UINT, WPARAM, LPARAM) WNDPROC;
2584 alias BOOL function (HDC, LPARAM, WPARAM, int, int) DRAWSTATEPROC;
2585 alias BOOL function (HWND, LPARAM) WNDENUMPROC;
2586 alias BOOL function (HWND, LPARAM) ENUMWINDOWSPROC;
2587 alias void function (LPHELPINFO) MSGBOXCALLBACK;
2588
2589 static if (WINVER >= 0x410) {
2590 alias BOOL function (HMONITOR, HDC, LPRECT, LPARAM) MONITORENUMPROC;
2591 }
2592 alias BOOL function (LPSTR, LPARAM) NAMEENUMPROCA;
2593 alias BOOL function (LPWSTR, LPARAM) NAMEENUMPROCW;
2594 alias void function (HWND, UINT, DWORD, LRESULT) SENDASYNCPROC;
2595
2596 alias NAMEENUMPROCA DESKTOPENUMPROCA;
2597 alias NAMEENUMPROCW DESKTOPENUMPROCW;
2598 alias NAMEENUMPROCA WINSTAENUMPROCA;
2599 alias NAMEENUMPROCW WINSTAENUMPROCW;
2600 }
2601
2602 typedef HANDLE HHOOK;
2603 typedef HANDLE HDWP;
2604 typedef HANDLE HDEVNOTIFY;
2605
2606 struct ACCEL {
2607 BYTE fVirt;
2608 WORD key;
2609 WORD cmd;
2610 }
2611 alias ACCEL* LPACCEL;
2612
2613 struct ACCESSTIMEOUT {
2614 UINT cbSize = ACCESSTIMEOUT.sizeof;
2615 DWORD dwFlags;
2616 DWORD iTimeOutMSec;
2617 }
2618 alias ACCESSTIMEOUT* LPACCESSTIMEOUT;
2619
2620 struct ANIMATIONINFO {
2621 UINT cbSize = ANIMATIONINFO.sizeof;
2622 int iMinAnimate;
2623 }
2624 alias ANIMATIONINFO* LPANIMATIONINFO;
2625
2626 struct CREATESTRUCTA {
2627 LPVOID lpCreateParams;
2628 HINSTANCE hInstance;
2629 HMENU hMenu;
2630 HWND hwndParent;
2631 int cy;
2632 int cx;
2633 int y;
2634 int x;
2635 LONG style;
2636 LPCSTR lpszName;
2637 LPCSTR lpszClass;
2638 DWORD dwExStyle;
2639 }
2640 alias CREATESTRUCTA* LPCREATESTRUCTA;
2641
2642 struct CREATESTRUCTW {
2643 LPVOID lpCreateParams;
2644 HINSTANCE hInstance;
2645 HMENU hMenu;
2646 HWND hwndParent;
2647 int cy;
2648 int cx;
2649 int y;
2650 int x;
2651 LONG style;
2652 LPCWSTR lpszName;
2653 LPCWSTR lpszClass;
2654 DWORD dwExStyle;
2655 }
2656 alias CREATESTRUCTW* LPCREATESTRUCTW;
2657
2658 struct CBT_CREATEWNDA {
2659 LPCREATESTRUCTA lpcs;
2660 HWND hwndInsertAfter;
2661 }
2662 alias CBT_CREATEWNDA* LPCBT_CREATEWNDA;
2663
2664 struct CBT_CREATEWNDW {
2665 LPCREATESTRUCTW lpcs;
2666 HWND hwndInsertAfter;
2667 }
2668 alias CBT_CREATEWNDW* LPCBT_CREATEWNDW;
2669
2670 struct CBTACTIVATESTRUCT {
2671 BOOL fMouse;
2672 HWND hWndActive;
2673 }
2674 alias CBTACTIVATESTRUCT* LPCBTACTIVATESTRUCT;
2675
2676 struct CLIENTCREATESTRUCT {
2677 HANDLE hWindowMenu;
2678 UINT idFirstChild;
2679 }
2680 alias CLIENTCREATESTRUCT* LPCLIENTCREATESTRUCT;
2681
2682 struct COMPAREITEMSTRUCT {
2683 UINT CtlType;
2684 UINT CtlID;
2685 HWND hwndItem;
2686 UINT itemID1;
2687 DWORD itemData1;
2688 UINT itemID2;
2689 DWORD itemData2;
2690 DWORD dwLocaleId;
2691 }
2692 alias COMPAREITEMSTRUCT* LPCOMPAREITEMSTRUCT;
2693
2694 struct COPYDATASTRUCT {
2695 DWORD dwData;
2696 DWORD cbData;
2697 PVOID lpData;
2698 }
2699 alias COPYDATASTRUCT* PCOPYDATASTRUCT;
2700
2701 struct CURSORSHAPE {
2702 int xHotSpot;
2703 int yHotSpot;
2704 int cx;
2705 int cy;
2706 int cbWidth;
2707 BYTE Planes;
2708 BYTE BitsPixel;
2709 }
2710 alias CURSORSHAPE* LPCURSORSHAPE;
2711
2712 struct CWPRETSTRUCT {
2713 LRESULT lResult;
2714 LPARAM lParam;
2715 WPARAM wParam;
2716 DWORD message;
2717 HWND hwnd;
2718 }
2719
2720 struct CWPSTRUCT {
2721 LPARAM lParam;
2722 WPARAM wParam;
2723 UINT message;
2724 HWND hwnd;
2725 }
2726 alias CWPSTRUCT* PCWPSTRUCT;
2727
2728 struct DEBUGHOOKINFO {
2729 DWORD idThread;
2730 DWORD idThreadInstaller;
2731 LPARAM lParam;
2732 WPARAM wParam;
2733 int code;
2734 }
2735 alias DEBUGHOOKINFO* PDEBUGHOOKINFO, LPDEBUGHOOKINFO;
2736
2737 struct DELETEITEMSTRUCT {
2738 UINT CtlType;
2739 UINT CtlID;
2740 UINT itemID;
2741 HWND hwndItem;
2742 UINT itemData;
2743 }
2744 alias DELETEITEMSTRUCT* PDELETEITEMSTRUCT, LPDELETEITEMSTRUCT;
2745
2746 align(2):
2747 struct DLGITEMTEMPLATE {
2748 DWORD style;
2749 DWORD dwExtendedStyle;
2750 short x;
2751 short y;
2752 short cx;
2753 short cy;
2754 WORD id;
2755 }
2756 alias DLGITEMTEMPLATE* LPDLGITEMTEMPLATE;
2757
2758 struct DLGTEMPLATE {
2759 DWORD style;
2760 DWORD dwExtendedStyle;
2761 WORD cdit;
2762 short x;
2763 short y;
2764 short cx;
2765 short cy;
2766 }
2767 alias DLGTEMPLATE* LPDLGTEMPLATE, LPDLGTEMPLATEA, LPDLGTEMPLATEW;
2768 alias DLGTEMPLATE* LPCDLGTEMPLATE;
2769
2770 align:
2771
2772 struct DRAWITEMSTRUCT {
2773 UINT CtlType;
2774 UINT CtlID;
2775 UINT itemID;
2776 UINT itemAction;
2777 UINT itemState;
2778 HWND hwndItem;
2779 HDC hDC;
2780 RECT rcItem;
2781 DWORD itemData;
2782 }
2783 alias DRAWITEMSTRUCT* LPDRAWITEMSTRUCT, PDRAWITEMSTRUCT;
2784
2785 struct DRAWTEXTPARAMS {
2786 UINT cbSize = DRAWTEXTPARAMS.sizeof;
2787 int iTabLength;
2788 int iLeftMargin;
2789 int iRightMargin;
2790 UINT uiLengthDrawn;
2791 }
2792 alias DRAWTEXTPARAMS* LPDRAWTEXTPARAMS;
2793
2794 struct PAINTSTRUCT {
2795 HDC hdc;
2796 BOOL fErase;
2797 RECT rcPaint;
2798 BOOL fRestore;
2799 BOOL fIncUpdate;
2800 BYTE[32] rgbReserved;
2801 }
2802 alias PAINTSTRUCT* LPPAINTSTRUCT;
2803
2804 struct MSG {
2805 HWND hwnd;
2806 UINT message;
2807 WPARAM wParam;
2808 LPARAM lParam;
2809 DWORD time;
2810 POINT pt;
2811 }
2812 alias MSG* LPMSG, PMSG;
2813
2814 struct ICONINFO {
2815 BOOL fIcon;
2816 DWORD xHotspot;
2817 DWORD yHotspot;
2818 HBITMAP hbmMask;
2819 HBITMAP hbmColor;
2820 }
2821 alias ICONINFO* PICONINFO;
2822
2823 struct NMHDR {
2824 HWND hwndFrom;
2825 UINT idFrom;
2826 UINT code;
2827 }
2828 alias NMHDR* LPNMHDR;
2829
2830 struct WNDCLASSA {
2831 UINT style;
2832 WNDPROC lpfnWndProc;
2833 int cbClsExtra;
2834 int cbWndExtra;
2835 HINSTANCE hInstance;
2836 HICON hIcon;
2837 HCURSOR hCursor;
2838 HBRUSH hbrBackground;
2839 LPCSTR lpszMenuName;
2840 LPCSTR lpszClassName;
2841 }
2842 alias WNDCLASSA* LPWNDCLASSA, PWNDCLASSA;
2843
2844 struct WNDCLASSW {
2845 UINT style;
2846 WNDPROC lpfnWndProc;
2847 int cbClsExtra;
2848 int cbWndExtra;
2849 HINSTANCE hInstance;
2850 HICON hIcon;
2851 HCURSOR hCursor;
2852 HBRUSH hbrBackground;
2853 LPCWSTR lpszMenuName;
2854 LPCWSTR lpszClassName;
2855 }
2856 alias WNDCLASSW* LPWNDCLASSW, PWNDCLASSW;
2857
2858 struct WNDCLASSEXA {
2859 UINT cbSize = WNDCLASSEXA.sizeof;
2860 UINT style;
2861 WNDPROC lpfnWndProc;
2862 int cbClsExtra;
2863 int cbWndExtra;
2864 HINSTANCE hInstance;
2865 HICON hIcon;
2866 HCURSOR hCursor;
2867 HBRUSH hbrBackground;
2868 LPCSTR lpszMenuName;
2869 LPCSTR lpszClassName;
2870 HICON hIconSm;
2871 }
2872 alias WNDCLASSEXA* LPWNDCLASSEXA, PWNDCLASSEXA;
2873
2874 struct WNDCLASSEXW {
2875 UINT cbSize = WNDCLASSEXW.sizeof;
2876 UINT style;
2877 WNDPROC lpfnWndProc;
2878 int cbClsExtra;
2879 int cbWndExtra;
2880 HINSTANCE hInstance;
2881 HICON hIcon;
2882 HCURSOR hCursor;
2883 HBRUSH hbrBackground;
2884 LPCWSTR lpszMenuName;
2885 LPCWSTR lpszClassName;
2886 HICON hIconSm;
2887 }
2888 alias WNDCLASSEXW* LPWNDCLASSEXW, PWNDCLASSEXW;
2889
2890 struct MENUITEMINFOA {
2891 UINT cbSize = MENUITEMINFOA.sizeof;
2892 UINT fMask;
2893 UINT fType;
2894 UINT fState;
2895 UINT wID;
2896 HMENU hSubMenu;
2897 HBITMAP hbmpChecked;
2898 HBITMAP hbmpUnchecked;
2899 DWORD dwItemData;
2900 LPSTR dwTypeData;
2901 UINT cch;
2902 static if (_WIN32_WINNT >= 0x500) {
2903 HBITMAP hbmpItem;
2904 }
2905 }
2906 alias MENUITEMINFOA* LPMENUITEMINFOA;
2907 alias MENUITEMINFOA* LPCMENUITEMINFOA;
2908
2909 struct MENUITEMINFOW {
2910 UINT cbSize = MENUITEMINFOW.sizeof;
2911 UINT fMask;
2912 UINT fType;
2913 UINT fState;
2914 UINT wID;
2915 HMENU hSubMenu;
2916 HBITMAP hbmpChecked;
2917 HBITMAP hbmpUnchecked;
2918 DWORD dwItemData;
2919 LPWSTR dwTypeData;
2920 UINT cch;
2921 static if (_WIN32_WINNT >= 0x500) {
2922 HBITMAP hbmpItem;
2923 }
2924 }
2925 alias MENUITEMINFOW* LPMENUITEMINFOW;
2926 alias MENUITEMINFOW* LPCMENUITEMINFOW;
2927
2928 struct SCROLLINFO {
2929 UINT cbSize = this.sizeof;
2930 UINT fMask;
2931 int nMin;
2932 int nMax;
2933 UINT nPage;
2934 int nPos;
2935 int nTrackPos;
2936 }
2937 alias SCROLLINFO* LPSCROLLINFO;
2938 alias SCROLLINFO* LPCSCROLLINFO;
2939
2940 struct WINDOWPLACEMENT {
2941 UINT length;
2942 UINT flags;
2943 UINT showCmd;
2944 POINT ptMinPosition;
2945 POINT ptMaxPosition;
2946 RECT rcNormalPosition;
2947 }
2948 alias WINDOWPLACEMENT* LPWINDOWPLACEMENT, PWINDOWPLACEMENT;
2949
2950 struct MENUITEMTEMPLATEHEADER {
2951 WORD versionNumber;
2952 WORD offset;
2953 }
2954
2955 struct MENUITEMTEMPLATE {
2956 WORD mtOption;
2957 WORD mtID;
2958 WCHAR mtString[1];
2959 }
2960
2961 alias void MENUTEMPLATE, MENUTEMPLATEA, MENUTEMPLATEW;
2962
2963 alias MENUTEMPLATE* LPMENUTEMPLATEA, LPMENUTEMPLATEW, LPMENUTEMPLATE;
2964
2965 struct HELPINFO {
2966 UINT cbSize = this.sizeof;
2967 int iContextType;
2968 int iCtrlId;
2969 HANDLE hItemHandle;
2970 DWORD dwContextId;
2971 POINT MousePos;
2972 }
2973 alias HELPINFO* LPHELPINFO;
2974
2975 struct MSGBOXPARAMSA {
2976 UINT cbSize = this.sizeof;
2977 HWND hwndOwner;
2978 HINSTANCE hInstance;
2979 LPCSTR lpszText;
2980 LPCSTR lpszCaption;
2981 DWORD dwStyle;
2982 LPCSTR lpszIcon;
2983 DWORD dwContextHelpId;
2984 MSGBOXCALLBACK lpfnMsgBoxCallback;
2985 DWORD dwLanguageId;
2986 }
2987 alias MSGBOXPARAMSA* PMSGBOXPARAMSA, LPMSGBOXPARAMSA;
2988
2989 struct MSGBOXPARAMSW {
2990 UINT cbSize = this.sizeof;
2991 HWND hwndOwner;
2992 HINSTANCE hInstance;
2993 LPCWSTR lpszText;
2994 LPCWSTR lpszCaption;
2995 DWORD dwStyle;
2996 LPCWSTR lpszIcon;
2997 DWORD dwContextHelpId;
2998 MSGBOXCALLBACK lpfnMsgBoxCallback;
2999 DWORD dwLanguageId;
3000 }
3001 alias MSGBOXPARAMSW* PMSGBOXPARAMSW, LPMSGBOXPARAMSW;
3002
3003 struct USEROBJECTFLAGS {
3004 BOOL fInherit;
3005 BOOL fReserved;
3006 DWORD dwFlags;
3007 }
3008
3009 struct FILTERKEYS {
3010 UINT cbSize = this.sizeof;
3011 DWORD dwFlags;
3012 DWORD iWaitMSec;
3013 DWORD iDelayMSec;
3014 DWORD iRepeatMSec;
3015 DWORD iBounceMSec;
3016 }
3017
3018 struct HIGHCONTRASTA {
3019 UINT cbSize = this.sizeof;
3020 DWORD dwFlags;
3021 LPSTR lpszDefaultScheme;
3022 }
3023 alias HIGHCONTRASTA* LPHIGHCONTRASTA;
3024
3025 struct HIGHCONTRASTW {
3026 UINT cbSize = this.sizeof;
3027 DWORD dwFlags;
3028 LPWSTR lpszDefaultScheme;
3029 }
3030 alias HIGHCONTRASTW* LPHIGHCONTRASTW;
3031
3032 struct ICONMETRICSA {
3033 UINT cbSize = this.sizeof;
3034 int iHorzSpacing;
3035 int iVertSpacing;
3036 int iTitleWrap;
3037 LOGFONTA lfFont;
3038 }
3039 alias ICONMETRICSA* LPICONMETRICSA;
3040
3041 struct ICONMETRICSW {
3042 UINT cbSize = this.sizeof;
3043 int iHorzSpacing;
3044 int iVertSpacing;
3045 int iTitleWrap;
3046 LOGFONTW lfFont;
3047 }
3048 alias ICONMETRICSW* LPICONMETRICSW;
3049
3050 struct MINIMIZEDMETRICS {
3051 UINT cbSize = this.sizeof;
3052 int iWidth;
3053 int iHorzGap;
3054 int iVertGap;
3055 int iArrange;
3056 }
3057 alias MINIMIZEDMETRICS* LPMINIMIZEDMETRICS;
3058
3059 struct MOUSEKEYS {
3060 UINT cbSize = this.sizeof;
3061 DWORD dwFlags;
3062 DWORD iMaxSpeed;
3063 DWORD iTimeToMaxSpeed;
3064 DWORD iCtrlSpeed;
3065 DWORD dwReserved1;
3066 DWORD dwReserved2;
3067 }
3068 alias MOUSEKEYS* LPMOUSEKEYS;
3069
3070 struct NONCLIENTMETRICSA {
3071 UINT cbSize = this.sizeof;
3072 int iBorderWidth;
3073 int iScrollWidth;
3074 int iScrollHeight;
3075 int iCaptionWidth;
3076 int iCaptionHeight;
3077 LOGFONTA lfCaptionFont;
3078 int iSmCaptionWidth;
3079 int iSmCaptionHeight;
3080 LOGFONTA lfSmCaptionFont;
3081 int iMenuWidth;
3082 int iMenuHeight;
3083 LOGFONTA lfMenuFont;
3084 LOGFONTA lfStatusFont;
3085 LOGFONTA lfMessageFont;
3086 }
3087 alias NONCLIENTMETRICSA* LPNONCLIENTMETRICSA;
3088
3089 struct NONCLIENTMETRICSW {
3090 UINT cbSize = this.sizeof;
3091 int iBorderWidth;
3092 int iScrollWidth;
3093 int iScrollHeight;
3094 int iCaptionWidth;
3095 int iCaptionHeight;
3096 LOGFONTW lfCaptionFont;
3097 int iSmCaptionWidth;
3098 int iSmCaptionHeight;
3099 LOGFONTW lfSmCaptionFont;
3100 int iMenuWidth;
3101 int iMenuHeight;
3102 LOGFONTW lfMenuFont;
3103 LOGFONTW lfStatusFont;
3104 LOGFONTW lfMessageFont;
3105 }
3106 alias NONCLIENTMETRICSW* LPNONCLIENTMETRICSW;
3107
3108 struct SERIALKEYSA {
3109 UINT cbSize = this.sizeof;
3110 DWORD dwFlags;
3111 LPSTR lpszActivePort;
3112 LPSTR lpszPort;
3113 UINT iBaudRate;
3114 UINT iPortState;
3115 UINT iActive;
3116 }
3117 alias SERIALKEYSA* LPSERIALKEYSA;
3118
3119 struct SERIALKEYSW {
3120 UINT cbSize = this.sizeof;
3121 DWORD dwFlags;
3122 LPWSTR lpszActivePort;
3123 LPWSTR lpszPort;
3124 UINT iBaudRate;
3125 UINT iPortState;
3126 UINT iActive;
3127 }
3128 alias SERIALKEYSW* LPSERIALKEYSW;
3129
3130 struct SOUNDSENTRYA {
3131 UINT cbSize = this.sizeof;
3132 DWORD dwFlags;
3133 DWORD iFSTextEffect;
3134 DWORD iFSTextEffectMSec;
3135 DWORD iFSTextEffectColorBits;
3136 DWORD iFSGrafEffect;
3137 DWORD iFSGrafEffectMSec;
3138 DWORD iFSGrafEffectColor;
3139 DWORD iWindowsEffect;
3140 DWORD iWindowsEffectMSec;
3141 LPSTR lpszWindowsEffectDLL;
3142 DWORD iWindowsEffectOrdinal;
3143 }
3144 alias SOUNDSENTRYA* LPSOUNDSENTRYA;
3145
3146 struct SOUNDSENTRYW {
3147 UINT cbSize = this.sizeof;
3148 DWORD dwFlags;
3149 DWORD iFSTextEffect;
3150 DWORD iFSTextEffectMSec;
3151 DWORD iFSTextEffectColorBits;
3152 DWORD iFSGrafEffect;
3153 DWORD iFSGrafEffectMSec;
3154 DWORD iFSGrafEffectColor;
3155 DWORD iWindowsEffect;
3156 DWORD iWindowsEffectMSec;
3157 LPWSTR lpszWindowsEffectDLL;
3158 DWORD iWindowsEffectOrdinal;
3159 }
3160 alias SOUNDSENTRYW* LPSOUNDSENTRYW;
3161
3162 struct STICKYKEYS {
3163 DWORD cbSize = this.sizeof;
3164 DWORD dwFlags;
3165 }
3166 alias STICKYKEYS* LPSTICKYKEYS;
3167
3168 struct TOGGLEKEYS {
3169 DWORD cbSize = this.sizeof;
3170 DWORD dwFlags;
3171 }
3172
3173 struct MOUSEHOOKSTRUCT {
3174 POINT pt;
3175 HWND hwnd;
3176 UINT wHitTestCode;
3177 DWORD dwExtraInfo;
3178 }
3179 alias MOUSEHOOKSTRUCT* LPMOUSEHOOKSTRUCT, PMOUSEHOOKSTRUCT;
3180
3181 struct TRACKMOUSEEVENT {
3182 DWORD cbSize = this.sizeof;
3183 DWORD dwFlags;
3184 HWND hwndTrack;
3185 DWORD dwHoverTime;
3186 }
3187 alias TRACKMOUSEEVENT* LPTRACKMOUSEEVENT;
3188
3189 struct TPMPARAMS {
3190 UINT cbSize = this.sizeof;
3191 RECT rcExclude;
3192 }
3193 alias TPMPARAMS* LPTPMPARAMS;
3194
3195 struct EVENTMSG {
3196 UINT message;
3197 UINT paramL;
3198 UINT paramH;
3199 DWORD time;
3200 HWND hwnd;
3201 }
3202 alias EVENTMSG* PEVENTMSGMSG, LPEVENTMSGMSG, PEVENTMSG, LPEVENTMSG;
3203
3204 struct WINDOWPOS {
3205 HWND hwnd;
3206 HWND hwndInsertAfter;
3207 int x;
3208 int y;
3209 int cx;
3210 int cy;
3211 UINT flags;
3212 }
3213 alias WINDOWPOS* PWINDOWPOS, LPWINDOWPOS;
3214
3215 struct NCCALCSIZE_PARAMS {
3216 RECT rgrc[3];
3217 PWINDOWPOS lppos;
3218 }
3219 alias NCCALCSIZE_PARAMS* LPNCCALCSIZE_PARAMS;
3220
3221 struct MDICREATESTRUCTA {
3222 LPCSTR szClass;
3223 LPCSTR szTitle;
3224 HANDLE hOwner;
3225 int x;
3226 int y;
3227 int cx;
3228 int cy;
3229 DWORD style;
3230 LPARAM lParam;
3231 }
3232 alias MDICREATESTRUCTA* LPMDICREATESTRUCTA;
3233
3234 struct MDICREATESTRUCTW {
3235 LPCWSTR szClass;
3236 LPCWSTR szTitle;
3237 HANDLE hOwner;
3238 int x;
3239 int y;
3240 int cx;
3241 int cy;
3242 DWORD style;
3243 LPARAM lParam;
3244 }
3245 alias MDICREATESTRUCTW* LPMDICREATESTRUCTW;
3246
3247 struct MINMAXINFO {
3248 POINT ptReserved;
3249 POINT ptMaxSize;
3250 POINT ptMaxPosition;
3251 POINT ptMinTrackSize;
3252 POINT ptMaxTrackSize;
3253 }
3254 alias MINMAXINFO* PMINMAXINFO, LPMINMAXINFO;
3255
3256 struct MDINEXTMENU {
3257 HMENU hmenuIn;
3258 HMENU hmenuNext;
3259 HWND hwndNext;
3260 }
3261 alias MDINEXTMENU* PMDINEXTMENU, LPMDINEXTMENU;
3262
3263 struct MEASUREITEMSTRUCT {
3264 UINT CtlType;
3265 UINT CtlID;
3266 UINT itemID;
3267 UINT itemWidth;
3268 UINT itemHeight;
3269 DWORD itemData;
3270 }
3271 alias MEASUREITEMSTRUCT* PMEASUREITEMSTRUCT, LPMEASUREITEMSTRUCT;
3272
3273 struct DROPSTRUCT {
3274 HWND hwndSource;
3275 HWND hwndSink;
3276 DWORD wFmt;
3277 DWORD dwData;
3278 POINT ptDrop;
3279 DWORD dwControlData;
3280 }
3281 alias DROPSTRUCT* PDROPSTRUCT, LPDROPSTRUCT;
3282
3283 alias DWORD HELPPOLY;
3284
3285 struct MULTIKEYHELPA {
3286 DWORD mkSize;
3287 CHAR mkKeylist;
3288 CHAR szKeyphrase[1];
3289 }
3290 alias MULTIKEYHELPA* PMULTIKEYHELPA, LPMULTIKEYHELPA;
3291
3292 struct MULTIKEYHELPW {
3293 DWORD mkSize;
3294 WCHAR mkKeylist;
3295 WCHAR szKeyphrase[1];
3296 }
3297 alias MULTIKEYHELPW* PMULTIKEYHELPW, LPMULTIKEYHELPW;
3298
3299 struct HELPWININFOA {
3300 int wStructSize;
3301 int x;
3302 int y;
3303 int dx;
3304 int dy;
3305 int wMax;
3306 CHAR rgchMember[2];
3307 }
3308 alias HELPWININFOA* PHELPWININFOA, LPHELPWININFOA;
3309
3310 struct HELPWININFOW {
3311 int wStructSize;
3312 int x;
3313 int y;
3314 int dx;
3315 int dy;
3316 int wMax;
3317 WCHAR rgchMember[2];
3318 }
3319 alias HELPWININFOW* PHELPWININFOW, LPHELPWININFOW;
3320
3321 struct STYLESTRUCT {
3322 DWORD styleOld;
3323 DWORD styleNew;
3324 }
3325 alias STYLESTRUCT* LPSTYLESTRUCT;
3326
3327 struct ALTTABINFO {
3328 DWORD cbSize = this.sizeof;
3329 int cItems;
3330 int cColumns;
3331 int cRows;
3332 int iColFocus;
3333 int iRowFocus;
3334 int cxItem;
3335 int cyItem;
3336 POINT ptStart;
3337 }
3338 alias ALTTABINFO* PALTTABINFO, LPALTTABINFO;
3339
3340 struct COMBOBOXINFO {
3341 DWORD cbSize = this.sizeof;
3342 RECT rcItem;
3343 RECT rcButton;
3344 DWORD stateButton;
3345 HWND hwndCombo;
3346 HWND hwndItem;
3347 HWND hwndList;
3348 }
3349 alias COMBOBOXINFO* PCOMBOBOXINFO, LPCOMBOBOXINFO;
3350
3351 struct CURSORINFO {
3352 DWORD cbSize = this.sizeof;
3353 DWORD flags;
3354 HCURSOR hCursor;
3355 POINT ptScreenPos;
3356 }
3357 alias CURSORINFO* PCURSORINFO, LPCURSORINFO;
3358
3359 struct MENUBARINFO {
3360 DWORD cbSize = this.sizeof;
3361 RECT rcBar;
3362 HMENU hMenu;
3363 HWND hwndMenu;
3364 byte bf_; // Simulated bitfield
3365 // BOOL fBarFocused:1;
3366 // BOOL fFocused:1;
3367 bool fBarFocused() { return (bf_ & 1) == 1; }
3368 bool fFocused() { return (bf_ & 2) == 2; }
3369 void fBarFocused(bool b) { bf_ = cast(byte)((bf_ & 0xFE) | b); }
3370 void fFocused(bool b) { bf_ = cast(byte)(b ? (bf_ | 2) : bf_ & 0xFD); }
3371 }
3372 alias MENUBARINFO* PMENUBARINFO;
3373
3374 struct MENUINFO {
3375 DWORD cbSize = this.sizeof;
3376 DWORD fMask;
3377 DWORD dwStyle;
3378 UINT cyMax;
3379 HBRUSH hbrBack;
3380 DWORD dwContextHelpID;
3381 ULONG_PTR dwMenuData;
3382 }
3383 alias MENUINFO* LPMENUINFO, LPCMENUINFO;
3384
3385
3386 const CCHILDREN_SCROLLBAR=5;
3387
3388 struct SCROLLBARINFO {
3389 DWORD cbSize = this.sizeof;
3390 RECT rcScrollBar;
3391 int dxyLineButton;
3392 int xyThumbTop;
3393 int xyThumbBottom;
3394 int reserved;
3395 DWORD rgstate[CCHILDREN_SCROLLBAR+1];
3396 }
3397 alias SCROLLBARINFO* PSCROLLBARINFO, LPSCROLLBARINFO;
3398
3399 const CCHILDREN_TITLEBAR=5;
3400
3401 struct TITLEBARINFO {
3402 DWORD cbSize = TITLEBARINFO.sizeof;
3403 RECT rcTitleBar;
3404 DWORD[CCHILDREN_TITLEBAR+1] rgstate;
3405 }
3406 alias TITLEBARINFO* PTITLEBARINFO, LPTITLEBARINFO;
3407
3408 struct WINDOWINFO {
3409 DWORD cbSize = WINDOWINFO.sizeof;
3410 RECT rcWindow;
3411 RECT rcClient;
3412 DWORD dwStyle;
3413 DWORD dwExStyle;
3414 DWORD dwWindowStatus;
3415 UINT cxWindowBorders;
3416 UINT cyWindowBorders;
3417 ATOM atomWindowType;
3418 WORD wCreatorVersion;
3419 }
3420 alias WINDOWINFO* PWINDOWINFO, LPWINDOWINFO;
3421
3422 struct LASTINPUTINFO {
3423 UINT cbSize = this.sizeof;
3424 DWORD dwTime;
3425 }
3426 alias LASTINPUTINFO* PLASTINPUTINFO;
3427
3428 struct MONITORINFO {
3429 DWORD cbSize = this.sizeof;
3430 RECT rcMonitor;
3431 RECT rcWork;
3432 DWORD dwFlags;
3433 }
3434 alias MONITORINFO* LPMONITORINFO;
3435
3436 const CCHDEVICENAME=32;
3437
3438 struct MONITORINFOEXA {
3439 DWORD cbSize = MONITORINFOEXA.sizeof;
3440 RECT rcMonitor;
3441 RECT rcWork;
3442 DWORD dwFlags;
3443 CHAR[CCHDEVICENAME] szDevice;
3444 }
3445 alias MONITORINFOEXA* LPMONITORINFOEXA;
3446
3447 struct MONITORINFOEXW {
3448 DWORD cbSize = MONITORINFOEXW.sizeof;
3449 RECT rcMonitor;
3450 RECT rcWork;
3451 DWORD dwFlags;
3452 WCHAR[CCHDEVICENAME] szDevice;
3453 }
3454 alias MONITORINFOEXW* LPMONITORINFOEXW;
3455
3456 struct KBDLLHOOKSTRUCT {
3457 DWORD vkCode;
3458 DWORD scanCode;
3459 DWORD flags;
3460 DWORD time;
3461 DWORD dwExtraInfo;
3462 }
3463 alias KBDLLHOOKSTRUCT* LPKBDLLHOOKSTRUCT, PKBDLLHOOKSTRUCT;
3464
3465 static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x410)) {
3466
3467 struct FLASHWINFO {
3468 UINT cbSize = this.sizeof;
3469 HWND hwnd;
3470 DWORD dwFlags;
3471 UINT uCount;
3472 DWORD dwTimeout;
3473 }
3474 alias FLASHWINFO* PFLASHWINFO;
3475
3476 }
3477
3478 static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x490)) {
3479
3480 struct MOUSEMOVEPOINT {
3481 int x;
3482 int y;
3483 DWORD time;
3484 ULONG_PTR dwExtraInfo;
3485 }
3486 alias MOUSEMOVEPOINT* PMOUSEMOVEPOINT, LPMOUSEMOVEPOINT;
3487 }
3488
3489 static if (_WIN32_WINNT >= 0x403) {
3490 struct MOUSEINPUT {
3491 LONG dx;
3492 LONG dy;
3493 DWORD mouseData;
3494 DWORD dwFlags;
3495 DWORD time;
3496 ULONG_PTR dwExtraInfo;
3497 }
3498 alias MOUSEINPUT* PMOUSEINPUT;
3499
3500 struct KEYBDINPUT {
3501 WORD wVk;
3502 WORD wScan;
3503 DWORD dwFlags;
3504 DWORD time;
3505 ULONG_PTR dwExtraInfo;
3506 }
3507 alias KEYBDINPUT* PKEYBDINPUT;
3508
3509 struct HARDWAREINPUT {
3510 DWORD uMsg;
3511 WORD wParamL;
3512 WORD wParamH;
3513 }
3514 alias HARDWAREINPUT* PHARDWAREINPUT;
3515
3516 struct INPUT {
3517 DWORD type;
3518 union {
3519 MOUSEINPUT mi;
3520 KEYBDINPUT ki;
3521 HARDWAREINPUT hi;
3522 }
3523 }
3524 alias INPUT* PINPUT, LPINPUT;
3525 }// (_WIN32_WINNT >= 0x403)
3526
3527 static if (WINVER >= 0x500) {
3528 struct GUITHREADINFO {
3529 DWORD cbSize = this.sizeof;
3530 DWORD flags;
3531 HWND hwndActive;
3532 HWND hwndFocus;
3533 HWND hwndCapture;
3534 HWND hwndMenuOwner;
3535 HWND hwndMoveSize;
3536 HWND hwndCaret;
3537 RECT rcCaret;
3538 }
3539 alias GUITHREADINFO* PGUITHREADINFO, LPGUITHREADINFO;
3540 extern (Windows) {
3541 alias void function (HWINEVENTHOOK, DWORD, HWND, LONG, LONG, DWORD, DWORD) WINEVENTPROC;
3542 }
3543
3544 }// (WINVER >= 0x500)
3545
3546 static if (_WIN32_WINNT >= 0x501) {
3547 struct BSMINFO {
3548 UINT cbSize = this.sizeof;
3549 HDESK hdesk;
3550 HWND hwnd;
3551 LUID luid;
3552 }
3553 alias BSMINFO* PBSMINFO;
3554
3555 typedef HANDLE HRAWINPUT;
3556
3557 struct RAWINPUTHEADER {
3558 DWORD dwType;
3559 DWORD dwSize;
3560 HANDLE hDevice;
3561 WPARAM wParam;
3562 }
3563 alias RAWINPUTHEADER* PRAWINPUTHEADER;
3564
3565 struct RAWMOUSE {
3566 USHORT usFlags;
3567 union {
3568 ULONG ulButtons;
3569 struct {
3570 USHORT usButtonFlags;
3571 USHORT usButtonData;
3572 }
3573 }
3574 ULONG ulRawButtons;
3575 LONG lLastX;
3576 LONG lLastY;
3577 ULONG ulExtraInformation;
3578 }
3579 alias RAWMOUSE* PRAWMOUSE, LPRAWMOUSE;
3580
3581 struct RAWKEYBOARD {
3582 USHORT MakeCode;
3583 USHORT Flags;
3584 USHORT Reserved;
3585 USHORT VKey;
3586 UINT Message;
3587 ULONG ExtraInformation;
3588 }
3589 alias RAWKEYBOARD* PRAWKEYBOARD, LPRAWKEYBOARD;
3590
3591 struct RAWHID {
3592 DWORD dwSizeHid;
3593 DWORD dwCount;
3594 BYTE bRawData;
3595 }
3596 alias RAWHID* PRAWHID, LPRAWHID;
3597
3598 struct RAWINPUT {
3599 RAWINPUTHEADER header;
3600 union _data {
3601 RAWMOUSE mouse;
3602 RAWKEYBOARD keyboard;
3603 RAWHID hid;
3604 }
3605 _data data;
3606 }
3607 alias RAWINPUT* PRAWINPUT, LPRAWINPUT;
3608
3609 struct RAWINPUTDEVICE {
3610 USHORT usUsagePage;
3611 USHORT usUsage;
3612 DWORD dwFlags;
3613 HWND hwndTarget;
3614 }
3615 alias RAWINPUTDEVICE* PRAWINPUTDEVICE, LPRAWINPUTDEVICE;
3616 alias RAWINPUTDEVICE* PCRAWINPUTDEVICE;
3617
3618 struct RAWINPUTDEVICELIST {
3619 HANDLE hDevice;
3620 DWORD dwType;
3621 }
3622 alias RAWINPUTDEVICELIST* PRAWINPUTDEVICELIST;
3623
3624 struct RID_DEVICE_INFO_MOUSE {
3625 DWORD dwId;
3626 DWORD dwNumberOfButtons;
3627 DWORD dwSampleRate;
3628 BOOL fHasHorizontalWheel;
3629 }
3630
3631 struct RID_DEVICE_INFO_KEYBOARD {
3632 DWORD dwType;
3633 DWORD dwSubType;
3634 DWORD dwKeyboardMode;
3635 DWORD dwNumberOfFunctionKeys;
3636 DWORD dwNumberOfIndicators;
3637 DWORD dwNumberOfKeysTotal;
3638 }
3639
3640 struct RID_DEVICE_INFO_HID {
3641 DWORD dwVendorId;
3642 DWORD dwProductId;
3643 DWORD dwVersionNumber;
3644 USHORT usUsagePage;
3645 USHORT usUsage;
3646 }
3647
3648 struct RID_DEVICE_INFO {
3649 DWORD cbSize = this.sizeof;
3650 DWORD dwType;
3651 union {
3652 RID_DEVICE_INFO_MOUSE mouse;
3653 RID_DEVICE_INFO_KEYBOARD keyboard;
3654 RID_DEVICE_INFO_HID hid;
3655 }
3656 }
3657 }// (_WIN32_WINNT >= 0x501)
3658
3659 struct MSLLHOOKSTRUCT {
3660 POINT pt;
3661 DWORD mouseData;
3662 DWORD flags;
3663 DWORD time;
3664 ULONG_PTR dwExtraInfo;
3665 }
3666 alias MSLLHOOKSTRUCT* PMSLLHOOKSTRUCT;
3667
3668 alias CharToOemA AnsiToOem;
3669 alias OemToCharA OemToAnsi;
3670 alias CharToOemBuffA AnsiToOemBuff;
3671 alias OemToCharBuffA OemToAnsiBuff;
3672 alias CharUpperA AnsiUpper;
3673 alias CharUpperBuffA AnsiUpperBuff;
3674 alias CharLowerA AnsiLower;
3675 alias CharLowerBuffA AnsiLowerBuff;
3676 alias CharNextA AnsiNext;
3677 alias CharPrevA AnsiPrev;
3678
3679 alias MAKELONG MAKEWPARAM;
3680 alias MAKELONG MAKELPARAM;
3681 alias MAKELONG MAKELRESULT;
3682
3683 //MACRO #define POINTSTOPOINT(p, ps) { (p).x=LOWORD(*(DWORD* )&ps); (p).y=HIWORD(*(DWORD* )&ps); }
3684 //MACRO #define POINTTOPOINTS(p) ((POINTS)MAKELONG((p).x, (p).y))
3685
3686 extern (Windows) {
3687
3688 HKL ActivateKeyboardLayout(HKL, UINT);
3689 BOOL AdjustWindowRect(LPRECT, DWORD, BOOL);
3690 BOOL AdjustWindowRectEx(LPRECT, DWORD, BOOL, DWORD);
3691 BOOL AnyPopup();
3692 BOOL AppendMenuA(HMENU, UINT, UINT_PTR, LPCSTR);
3693 BOOL AppendMenuW(HMENU, UINT, UINT_PTR, LPCWSTR);
3694 UINT ArrangeIconicWindows(HWND);
3695 BOOL AttachThreadInput(DWORD, DWORD, BOOL);
3696 HDWP BeginDeferWindowPos(int);
3697 HDC BeginPaint(HWND, LPPAINTSTRUCT);
3698 BOOL BringWindowToTop(HWND);
3699 BOOL CallMsgFilterA(LPMSG, INT);
3700 BOOL CallMsgFilterW(LPMSG, INT);
3701 LRESULT CallNextHookEx(HHOOK, int, WPARAM, LPARAM);
3702 LRESULT CallWindowProcA(WNDPROC, HWND, UINT, WPARAM, LPARAM);
3703 LRESULT CallWindowProcW(WNDPROC, HWND, UINT, WPARAM, LPARAM);
3704 WORD CascadeWindows(HWND, UINT, LPCRECT, UINT, HWND*);
3705 BOOL ChangeClipboardChain(HWND, HWND);
3706
3707 LONG ChangeDisplaySettingsA(PDEVMODEA, DWORD);
3708 LONG ChangeDisplaySettingsW(PDEVMODEW, DWORD);
3709 LONG ChangeDisplaySettingsExA(LPCSTR, LPDEVMODEA, HWND, DWORD, LPVOID);
3710 LONG ChangeDisplaySettingsExW(LPCWSTR, LPDEVMODEW, HWND, DWORD, LPVOID);
3711
3712 BOOL ChangeMenuA(HMENU, UINT, LPCSTR, UINT, UINT);
3713 BOOL ChangeMenuW(HMENU, UINT, LPCWSTR, UINT, UINT);
3714 LPSTR CharLowerA(LPSTR);
3715 LPWSTR CharLowerW(LPWSTR);
3716 DWORD CharLowerBuffA(LPSTR, DWORD);
3717 DWORD CharLowerBuffW(LPWSTR, DWORD);
3718 LPSTR CharNextA(LPCSTR);
3719 LPWSTR CharNextW(LPCWSTR);
3720 LPSTR CharNextExA(WORD, LPCSTR, DWORD);
3721 LPWSTR CharNextExW(WORD, LPCWSTR, DWORD);
3722 LPSTR CharPrevA(LPCSTR, LPCSTR);
3723 LPWSTR CharPrevW(LPCWSTR, LPCWSTR);
3724 LPSTR CharPrevExA(WORD, LPCSTR, LPCSTR, DWORD);
3725 LPWSTR CharPrevExW(WORD, LPCWSTR, LPCWSTR, DWORD);
3726 BOOL CharToOemA(LPCSTR, LPSTR);
3727 BOOL CharToOemW(LPCWSTR, LPSTR);
3728 BOOL CharToOemBuffA(LPCSTR, LPSTR, DWORD);
3729 BOOL CharToOemBuffW(LPCWSTR, LPSTR, DWORD);
3730 LPSTR CharUpperA(LPSTR);
3731 LPWSTR CharUpperW(LPWSTR);
3732 DWORD CharUpperBuffA(LPSTR, DWORD);
3733 DWORD CharUpperBuffW(LPWSTR, DWORD);
3734 BOOL CheckDlgButton(HWND, int, UINT);
3735 DWORD CheckMenuItem(HMENU, UINT, UINT);
3736 BOOL CheckMenuRadioItem(HMENU, UINT, UINT, UINT, UINT);
3737 BOOL CheckRadioButton(HWND, int, int, int);
3738 HWND ChildWindowFromPoint(HWND, POINT);
3739 HWND ChildWindowFromPointEx(HWND, POINT, UINT);
3740 BOOL ClientToScreen(HWND, LPPOINT);
3741 BOOL ClipCursor(LPCRECT);
3742 BOOL CloseClipboard();
3743 BOOL CloseDesktop(HDESK);
3744 BOOL CloseWindow(HWND);
3745 BOOL CloseWindowStation(HWINSTA);
3746 int CopyAcceleratorTableA(HACCEL, LPACCEL, int);
3747 int CopyAcceleratorTableW(HACCEL, LPACCEL, int);
3748
3749 HICON CopyIcon(HICON);
3750 HANDLE CopyImage(HANDLE, UINT, int, int, UINT);
3751 BOOL CopyRect(LPRECT, LPCRECT);
3752 int CountClipboardFormats();
3753 HACCEL CreateAcceleratorTableA(LPACCEL, int);
3754 HACCEL CreateAcceleratorTableW(LPACCEL, int);
3755 BOOL CreateCaret(HWND, HBITMAP, int, int);
3756 HCURSOR CreateCursor(HINSTANCE, int, int, int, int, PCVOID, PCVOID);
3757
3758 HDESK CreateDesktopA(LPCSTR, LPCSTR, LPDEVMODEA, DWORD, ACCESS_MASK, LPSECURITY_ATTRIBUTES);
3759 HDESK CreateDesktopW(LPCWSTR, LPCWSTR, LPDEVMODEW, DWORD, ACCESS_MASK, LPSECURITY_ATTRIBUTES);
3760
3761 HWND CreateDialogParamA(HINSTANCE, LPCSTR, HWND, DLGPROC, LPARAM);
3762 HWND CreateDialogParamW(HINSTANCE, LPCWSTR, HWND, DLGPROC, LPARAM);
3763 HWND CreateDialogIndirectParamA(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM);
3764 HWND CreateDialogIndirectParamW(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM);
3765
3766 HICON CreateIcon(HINSTANCE, int, int, BYTE, BYTE, BYTE*, BYTE*);
3767 HICON CreateIconFromResource(PBYTE, DWORD, BOOL, DWORD);
3768 HICON CreateIconFromResourceEx(PBYTE, DWORD, BOOL, DWORD, int, int, UINT);
3769 HICON CreateIconIndirect(PICONINFO);
3770 HWND CreateMDIWindowA(LPCSTR, LPCSTR, DWORD, int, int, int, int, HWND, HINSTANCE, LPARAM);
3771 HWND CreateMDIWindowW(LPCWSTR, LPCWSTR, DWORD, int, int, int, int, HWND, HINSTANCE, LPARAM);
3772 HMENU CreateMenu();
3773 HMENU CreatePopupMenu();
3774
3775 HWND CreateWindowExA(DWORD, LPCSTR, LPCSTR, DWORD, int, int, int, int, HWND, HMENU, HINSTANCE, LPVOID);
3776 HWND CreateWindowExW(DWORD, LPCWSTR, LPCWSTR, DWORD, int, int, int, int, HWND, HMENU, HINSTANCE, LPVOID);
3777
3778 HWINSTA CreateWindowStationA(LPSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES);
3779 HWINSTA CreateWindowStationW(LPWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES);
3780 LRESULT DefDlgProcA(HWND, UINT, WPARAM, LPARAM);
3781 LRESULT DefDlgProcW(HWND, UINT, WPARAM, LPARAM);
3782 HDWP DeferWindowPos(HDWP, HWND, HWND, int, int, int, int, UINT);
3783 LRESULT DefFrameProcA(HWND, HWND, UINT, WPARAM, LPARAM);
3784 LRESULT DefFrameProcW(HWND, HWND, UINT, WPARAM, LPARAM);
3785
3786 LRESULT DefMDIChildProcA(HWND, UINT, WPARAM, LPARAM);
3787 LRESULT DefMDIChildProcW(HWND, UINT, WPARAM, LPARAM);
3788 LRESULT DefWindowProcA(HWND, UINT, WPARAM, LPARAM);
3789 LRESULT DefWindowProcW(HWND, UINT, WPARAM, LPARAM);
3790 BOOL DeleteMenu(HMENU, UINT, UINT);
3791 BOOL DeregisterShellHookWindow(HWND);
3792 BOOL DestroyAcceleratorTable(HACCEL);
3793 BOOL DestroyCaret();
3794 BOOL DestroyCursor(HCURSOR);
3795 BOOL DestroyIcon(HICON);
3796 BOOL DestroyMenu(HMENU);
3797 BOOL DestroyWindow(HWND);
3798
3799 int DialogBoxParamA(HINSTANCE, LPCSTR, HWND, DLGPROC, LPARAM);
3800 int DialogBoxParamW(HINSTANCE, LPCWSTR, HWND, DLGPROC, LPARAM);
3801 int DialogBoxIndirectParamA(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM);
3802 int DialogBoxIndirectParamW(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM);
3803
3804 } // extern (Windows)
3805
3806 HCURSOR CopyCursor(HCURSOR c)
3807 {
3808 return cast(HCURSOR)CopyIcon(cast(HICON)c);
3809 }
3810
3811 HWND CreateDialogA(HINSTANCE h, LPCSTR n, HWND w, DLGPROC f)
3812 {
3813 return CreateDialogParamA(h, n, w, f, 0);
3814 }
3815
3816 HWND CreateDialogW(HINSTANCE h, LPCWSTR n, HWND w, DLGPROC f)
3817 {
3818 return CreateDialogParamW(h, n, w, f, 0);
3819 }
3820
3821 HWND CreateDialogIndirectA(HINSTANCE h, LPCDLGTEMPLATE t, HWND w , DLGPROC f)
3822 {
3823 return CreateDialogIndirectParamA(h, t, w, f, 0);
3824 }
3825
3826 HWND CreateDialogIndirectW(HINSTANCE h, LPCDLGTEMPLATE t, HWND w , DLGPROC f)
3827 {
3828 return CreateDialogIndirectParamW(h, t, w, f, 0);
3829 }
3830
3831
3832 HWND CreateWindowA(LPCSTR a, LPCSTR b, DWORD c, int d, int e, int f, int g, HWND h, HMENU i, HINSTANCE j, LPVOID k)
3833 {
3834 return CreateWindowExA(0, a, b, c, d, e, f, g, h, i, j, k);
3835 }
3836
3837 HWND CreateWindowW(LPCWSTR a, LPCWSTR b, DWORD c, int d, int e, int f, int g, HWND h, HMENU i, HINSTANCE j, LPVOID k)
3838 {
3839 return CreateWindowExW(0, a, b, c, d, e, f, g, h, i, j, k);
3840 }
3841
3842 int DialogBoxA(HINSTANCE i, LPCSTR t, HWND p, DLGPROC f)
3843 {
3844 return DialogBoxParamA(i, t, p, f, 0);
3845 }
3846
3847 int DialogBoxW(HINSTANCE i, LPCWSTR t, HWND p, DLGPROC f)
3848 {
3849 return DialogBoxParamW(i, t, p, f, 0);
3850 }
3851
3852 int DialogBoxIndirectA(HINSTANCE i, LPCDLGTEMPLATE t, HWND p, DLGPROC f)
3853 {
3854 return DialogBoxIndirectParamA(i, t, p, f, 0);
3855 }
3856
3857 int DialogBoxIndirectW(HINSTANCE i, LPCDLGTEMPLATE t, HWND p, DLGPROC f)
3858 {
3859 return DialogBoxIndirectParamW(i, t, p, f, 0);
3860 }
3861
3862 BOOL ExitWindows(UINT r, DWORD c)
3863 {
3864 return ExitWindowsEx(EWX_LOGOFF, 0);
3865 }
3866 alias GetWindow GetNextWindow;
3867
3868 extern (Windows):
3869 LONG DispatchMessageA( MSG*);
3870 LONG DispatchMessageW( MSG*);
3871 int DlgDirListA(HWND, LPSTR, int, int, UINT);
3872 int DlgDirListW(HWND, LPWSTR, int, int, UINT);
3873 int DlgDirListComboBoxA(HWND, LPSTR, int, int, UINT);
3874 int DlgDirListComboBoxW(HWND, LPWSTR, int, int, UINT);
3875 BOOL DlgDirSelectComboBoxExA(HWND, LPSTR, int, int);
3876 BOOL DlgDirSelectComboBoxExW(HWND, LPWSTR, int, int);
3877 BOOL DlgDirSelectExA(HWND, LPSTR, int, int);
3878 BOOL DlgDirSelectExW(HWND, LPWSTR, int, int);
3879 BOOL DragDetect(HWND, POINT);
3880 DWORD DragObject(HWND, HWND, UINT, DWORD, HCURSOR);
3881 BOOL DrawAnimatedRects(HWND, int, LPCRECT, LPCRECT);
3882 BOOL DrawCaption(HWND, HDC, LPCRECT, UINT);
3883 BOOL DrawEdge(HDC, LPRECT, UINT, UINT);
3884 BOOL DrawFocusRect(HDC, LPCRECT);
3885 BOOL DrawFrameControl(HDC, LPRECT, UINT, UINT);
3886 BOOL DrawIcon(HDC, int, int, HICON);
3887 BOOL DrawIconEx(HDC, int, int, HICON, int, int, UINT, HBRUSH, UINT);
3888 BOOL DrawMenuBar(HWND);
3889 BOOL DrawStateA(HDC, HBRUSH, DRAWSTATEPROC, LPARAM, WPARAM, int, int, int, int, UINT);
3890 BOOL DrawStateW(HDC, HBRUSH, DRAWSTATEPROC, LPARAM, WPARAM, int, int, int, int, UINT);
3891 int DrawTextA(HDC, LPCSTR, int, LPRECT, UINT);
3892 int DrawTextW(HDC, LPCWSTR, int, LPRECT, UINT);
3893 int DrawTextExA(HDC, LPSTR, int, LPRECT, UINT, LPDRAWTEXTPARAMS);
3894 int DrawTextExW(HDC, LPWSTR, int, LPRECT, UINT, LPDRAWTEXTPARAMS);
3895 BOOL EmptyClipboard();
3896 BOOL EnableMenuItem(HMENU, UINT, UINT);
3897 BOOL EnableScrollBar(HWND, UINT, UINT);
3898 BOOL EnableWindow(HWND, BOOL);
3899 BOOL EndDeferWindowPos(HDWP);
3900 BOOL EndDialog(HWND, int);
3901 BOOL EndMenu();
3902 BOOL EndPaint(HWND, PAINTSTRUCT*);
3903 BOOL EnumChildWindows(HWND, ENUMWINDOWSPROC, LPARAM);
3904 UINT EnumClipboardFormats(UINT);
3905 BOOL EnumDesktopsA(HWINSTA, DESKTOPENUMPROCA, LPARAM);
3906 BOOL EnumDesktopsW(HWINSTA, DESKTOPENUMPROCW, LPARAM);
3907 BOOL EnumDesktopWindows(HDESK, ENUMWINDOWSPROC, LPARAM);
3908 BOOL EnumDisplaySettingsA(LPCSTR, DWORD, PDEVMODEA);
3909 BOOL EnumDisplaySettingsW(LPCWSTR, DWORD, PDEVMODEW);
3910
3911 BOOL EnumDisplayDevicesA(LPCSTR, DWORD, PDISPLAY_DEVICEA, DWORD);
3912 BOOL EnumDisplayDevicesW(LPCWSTR, DWORD, PDISPLAY_DEVICEW, DWORD);
3913
3914 int EnumPropsA(HWND, PROPENUMPROCA);
3915 int EnumPropsW(HWND, PROPENUMPROCW);
3916 int EnumPropsExA(HWND, PROPENUMPROCEXA, LPARAM);
3917 int EnumPropsExW(HWND, PROPENUMPROCEXW, LPARAM);
3918
3919 BOOL EnumThreadWindows(DWORD, WNDENUMPROC, LPARAM);
3920 BOOL EnumWindows(WNDENUMPROC, LPARAM);
3921 BOOL EnumWindowStationsA(WINSTAENUMPROCA, LPARAM);
3922 BOOL EnumWindowStationsW(WINSTAENUMPROCW, LPARAM);
3923 BOOL EqualRect(LPCRECT, LPCRECT);
3924
3925 BOOL ExitWindowsEx(UINT, DWORD);
3926 HWND FindWindowA(LPCSTR, LPCSTR);
3927 HWND FindWindowExA(HWND, HWND, LPCSTR, LPCSTR);
3928 HWND FindWindowExW(HWND, HWND, LPCWSTR, LPCWSTR);
3929 HWND FindWindowW(LPCWSTR, LPCWSTR);
3930 BOOL FlashWindow(HWND, BOOL);
3931
3932 int FrameRect(HDC, LPCRECT, HBRUSH);
3933 BOOL FrameRgn(HDC, HRGN, HBRUSH, int, int);
3934 HWND GetActiveWindow();
3935 HWND GetAncestor(HWND, UINT);
3936 SHORT GetAsyncKeyState(int);
3937 HWND GetCapture();
3938 UINT GetCaretBlinkTime();
3939 BOOL GetCaretPos(LPPOINT);
3940 BOOL GetClassInfoA(HINSTANCE, LPCSTR, LPWNDCLASSA);
3941 BOOL GetClassInfoExA(HINSTANCE, LPCSTR, LPWNDCLASSEXA);
3942 BOOL GetClassInfoW(HINSTANCE, LPCWSTR, LPWNDCLASSW);
3943 BOOL GetClassInfoExW(HINSTANCE, LPCWSTR, LPWNDCLASSEXW);
3944 DWORD GetClassLongA(HWND, int);
3945 DWORD GetClassLongW(HWND, int);
3946 int GetClassNameA(HWND, LPSTR, int);
3947 int GetClassNameW(HWND, LPWSTR, int);
3948 WORD GetClassWord(HWND, int);
3949 BOOL GetClientRect(HWND, LPRECT);
3950 HANDLE GetClipboardData(UINT);
3951 int GetClipboardFormatNameA(UINT, LPSTR, int);
3952 int GetClipboardFormatNameW(UINT, LPWSTR, int);
3953 HWND GetClipboardOwner();
3954 HWND GetClipboardViewer();
3955 BOOL GetClipCursor(LPRECT);
3956 BOOL GetCursorPos(LPPOINT);
3957 HDC GetDC(HWND);
3958 HDC GetDCEx(HWND, HRGN, DWORD);
3959 HWND GetDesktopWindow();
3960 int GetDialogBaseUnits();
3961 int GetDlgCtrlID(HWND);
3962 HWND GetDlgItem(HWND, int);
3963 UINT GetDlgItemInt(HWND, int, PBOOL, BOOL);
3964 UINT GetDlgItemTextA(HWND, int, LPSTR, int);
3965 UINT GetDlgItemTextW(HWND, int, LPWSTR, int);
3966 UINT GetDoubleClickTime();
3967 HWND GetFocus();
3968 HWND GetForegroundWindow();
3969
3970 BOOL GetIconInfo(HICON, PICONINFO);
3971 BOOL GetInputState();
3972 UINT GetKBCodePage();
3973 HKL GetKeyboardLayout(DWORD);
3974 UINT GetKeyboardLayoutList(int, HKL*);
3975 BOOL GetKeyboardLayoutNameA(LPSTR);
3976 BOOL GetKeyboardLayoutNameW(LPWSTR);
3977 BOOL GetKeyboardState(PBYTE);
3978 int GetKeyboardType(int);
3979 int GetKeyNameTextA(LONG, LPSTR, int);
3980 int GetKeyNameTextW(LONG, LPWSTR, int);
3981 SHORT GetKeyState(int);
3982 HWND GetLastActivePopup(HWND);
3983 HMENU GetMenu(HWND);
3984 LONG GetMenuCheckMarkDimensions();
3985 DWORD GetMenuContextHelpId(HMENU);
3986 UINT GetMenuDefaultItem(HMENU, UINT, UINT);
3987 int GetMenuItemCount(HMENU);
3988 UINT GetMenuItemID(HMENU, int);
3989 BOOL GetMenuItemInfoA(HMENU, UINT, BOOL, LPMENUITEMINFOA);
3990 BOOL GetMenuItemInfoW(HMENU, UINT, BOOL, LPMENUITEMINFOW);
3991 BOOL GetMenuItemRect(HWND, HMENU, UINT, LPRECT);
3992 UINT GetMenuState(HMENU, UINT, UINT);
3993 int GetMenuStringA(HMENU, UINT, LPSTR, int, UINT);
3994 int GetMenuStringW(HMENU, UINT, LPWSTR, int, UINT);
3995 BOOL GetMessageA(LPMSG, HWND, UINT, UINT);
3996 BOOL GetMessageW(LPMSG, HWND, UINT, UINT);
3997 LONG GetMessageExtraInfo();
3998 DWORD GetMessagePos();
3999 LONG GetMessageTime();
4000
4001 HWND GetNextDlgGroupItem(HWND, HWND, BOOL);
4002 HWND GetNextDlgTabItem(HWND, HWND, BOOL);
4003
4004 HWND GetOpenClipboardWindow();
4005 HWND GetParent(HWND);
4006 int GetPriorityClipboardFormat(UINT*, int);
4007 HANDLE GetPropA(HWND, LPCSTR);
4008 HANDLE GetPropW(HWND, LPCWSTR);
4009
4010 DWORD GetQueueStatus(UINT);
4011 BOOL GetScrollInfo(HWND, int, LPSCROLLINFO);
4012 int GetScrollPos(HWND, int);
4013 BOOL GetScrollRange(HWND, int, LPINT, LPINT);
4014
4015 HMENU GetSubMenu(HMENU, int);
4016 DWORD GetSysColor(int);
4017 HBRUSH GetSysColorBrush(int);
4018
4019 HMENU GetSystemMenu(HWND, BOOL);
4020 int GetSystemMetrics(int);
4021 DWORD GetTabbedTextExtentA(HDC, LPCSTR, int, int, LPINT);
4022 DWORD GetTabbedTextExtentW(HDC, LPCWSTR, int, int, LPINT);
4023 LONG GetWindowLongA(HWND, int);
4024 LONG GetWindowLongW(HWND, int);
4025
4026 HDESK GetThreadDesktop(DWORD);
4027 HWND GetTopWindow(HWND);
4028 BOOL GetUpdateRect(HWND, LPRECT, BOOL);
4029 int GetUpdateRgn(HWND, HRGN, BOOL);
4030 BOOL GetUserObjectInformationA(HANDLE, int, PVOID, DWORD, PDWORD);
4031 BOOL GetUserObjectInformationW(HANDLE, int, PVOID, DWORD, PDWORD);
4032 BOOL GetUserObjectSecurity(HANDLE, PSECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD);
4033 HWND GetWindow(HWND, UINT);
4034 DWORD GetWindowContextHelpId(HWND);
4035 HDC GetWindowDC(HWND);
4036 BOOL GetWindowPlacement(HWND, WINDOWPLACEMENT*);
4037 BOOL GetWindowRect(HWND, LPRECT);
4038 int GetWindowRgn(HWND, HRGN);
4039 int GetWindowTextA(HWND, LPSTR, int);
4040 int GetWindowTextLengthA(HWND);
4041 int GetWindowTextLengthW(HWND);
4042 int GetWindowTextW(HWND, LPWSTR, int);
4043 WORD GetWindowWord(HWND, int);
4044 BOOL GetAltTabInfoA(HWND, int, PALTTABINFO, LPSTR, UINT);
4045 BOOL GetAltTabInfoW(HWND, int, PALTTABINFO, LPWSTR, UINT);
4046 BOOL GetComboBoxInfo(HWND, PCOMBOBOXINFO);
4047 BOOL GetCursorInfo(PCURSORINFO);
4048 BOOL GetLastInputInfo(PLASTINPUTINFO);
4049 DWORD GetListBoxInfo(HWND);
4050 BOOL GetMenuBarInfo(HWND, LONG, LONG, PMENUBARINFO);
4051 BOOL GetMenuInfo(HMENU, LPMENUINFO);
4052 BOOL GetScrollBarInfo(HWND, LONG, PSCROLLBARINFO);
4053 BOOL GetTitleBarInfo(HWND, PTITLEBARINFO);
4054 BOOL GetWindowInfo(HWND, PWINDOWINFO);
4055 UINT GetWindowModuleFileNameA(HWND, LPSTR, UINT);
4056 UINT GetWindowModuleFileNameW(HWND, LPWSTR, UINT);
4057 BOOL GrayStringA(HDC, HBRUSH, GRAYSTRINGPROC, LPARAM, int, int, int, int, int);
4058 BOOL GrayStringW(HDC, HBRUSH, GRAYSTRINGPROC, LPARAM, int, int, int, int, int);
4059 BOOL HideCaret(HWND);
4060 BOOL HiliteMenuItem(HWND, HMENU, UINT, UINT);
4061 BOOL InflateRect(LPRECT, int, int);
4062 BOOL InSendMessage();
4063 BOOL InsertMenuA(HMENU, UINT, UINT, UINT, LPCSTR);
4064 BOOL InsertMenuW(HMENU, UINT, UINT, UINT, LPCWSTR);
4065 BOOL InsertMenuItemA(HMENU, UINT, BOOL, LPCMENUITEMINFOA);
4066 BOOL InsertMenuItemW(HMENU, UINT, BOOL, LPCMENUITEMINFOW);
4067 INT InternalGetWindowText(HWND, LPWSTR, INT);
4068 BOOL IntersectRect(LPRECT, LPCRECT, LPCRECT);
4069 BOOL InvalidateRect(HWND, LPCRECT, BOOL);
4070 BOOL InvalidateRgn(HWND, HRGN, BOOL);
4071 BOOL InvertRect(HDC, LPCRECT);
4072 BOOL IsCharAlphaA(CHAR ch);
4073 BOOL IsCharAlphaNumericA(CHAR);
4074 BOOL IsCharAlphaNumericW(WCHAR);
4075 BOOL IsCharAlphaW(WCHAR);
4076 BOOL IsCharLowerA(CHAR);
4077 BOOL IsCharLowerW(WCHAR);
4078 BOOL IsCharUpperA(CHAR);
4079 BOOL IsCharUpperW(WCHAR);
4080 BOOL IsChild(HWND, HWND);
4081 BOOL IsClipboardFormatAvailable(UINT);
4082 BOOL IsDialogMessageA(HWND, LPMSG);
4083 BOOL IsDialogMessageW(HWND, LPMSG);
4084 UINT IsDlgButtonChecked(HWND, int);
4085 BOOL IsIconic(HWND);
4086 BOOL IsMenu(HMENU);
4087 BOOL IsRectEmpty(LPCRECT);
4088 BOOL IsWindow(HWND);
4089 BOOL IsWindowEnabled(HWND);
4090 BOOL IsWindowUnicode(HWND);
4091 BOOL IsWindowVisible(HWND);
4092 BOOL IsZoomed(HWND);
4093 void keybd_event(BYTE, BYTE, DWORD, DWORD);
4094 BOOL KillTimer(HWND, UINT);
4095 HACCEL LoadAcceleratorsA(HINSTANCE, LPCSTR);
4096 HACCEL LoadAcceleratorsW(HINSTANCE, LPCWSTR);
4097 HBITMAP LoadBitmapA(HINSTANCE, LPCSTR);
4098 HBITMAP LoadBitmapW(HINSTANCE, LPCWSTR);
4099 HCURSOR LoadCursorA(HINSTANCE, LPCSTR);
4100 HCURSOR LoadCursorFromFileA(LPCSTR);
4101 HCURSOR LoadCursorFromFileW(LPCWSTR);
4102 HCURSOR LoadCursorW(HINSTANCE, LPCWSTR);
4103 HICON LoadIconA(HINSTANCE, LPCSTR);
4104 HICON LoadIconW(HINSTANCE, LPCWSTR);
4105 HANDLE LoadImageA(HINSTANCE, LPCSTR, UINT, int, int, UINT);
4106 HANDLE LoadImageW(HINSTANCE, LPCWSTR, UINT, int, int, UINT);
4107 HKL LoadKeyboardLayoutA(LPCSTR, UINT);
4108 HKL LoadKeyboardLayoutW(LPCWSTR, UINT);
4109 HMENU LoadMenuA(HINSTANCE, LPCSTR);
4110 HMENU LoadMenuIndirectA( MENUTEMPLATE*);
4111 HMENU LoadMenuIndirectW( MENUTEMPLATE*);
4112 HMENU LoadMenuW(HINSTANCE, LPCWSTR);
4113 int LoadStringA(HINSTANCE, UINT, LPSTR, int);
4114 int LoadStringW(HINSTANCE, UINT, LPWSTR, int);
4115 BOOL LockWindowUpdate(HWND);
4116 int LookupIconIdFromDirectory(PBYTE, BOOL);
4117 int LookupIconIdFromDirectoryEx(PBYTE, BOOL, int, int, UINT);
4118 BOOL MapDialogRect(HWND, LPRECT);
4119 UINT MapVirtualKeyA(UINT, UINT);
4120 UINT MapVirtualKeyExA(UINT, UINT, HKL);
4121 UINT MapVirtualKeyExW(UINT, UINT, HKL);
4122 UINT MapVirtualKeyW(UINT, UINT);
4123 int MapWindowPoints(HWND, HWND, LPPOINT, UINT);
4124 int MenuItemFromPoint(HWND, HMENU, POINT);
4125 BOOL MessageBeep(UINT);
4126 int MessageBoxA(HWND, LPCSTR, LPCSTR, UINT);
4127 int MessageBoxW(HWND, LPCWSTR, LPCWSTR, UINT);
4128 int MessageBoxExA(HWND, LPCSTR, LPCSTR, UINT, WORD);
4129 int MessageBoxExW(HWND, LPCWSTR, LPCWSTR, UINT, WORD);
4130 int MessageBoxIndirectA(MSGBOXPARAMSA*);
4131 int MessageBoxIndirectW(MSGBOXPARAMSW*);
4132 BOOL ModifyMenuA(HMENU, UINT, UINT, UINT, LPCSTR);
4133 BOOL ModifyMenuW(HMENU, UINT, UINT, UINT, LPCWSTR);
4134 void mouse_event(DWORD, DWORD, DWORD, DWORD, ULONG_PTR);
4135 BOOL MoveWindow(HWND, int, int, int, int, BOOL);
4136 DWORD MsgWaitForMultipleObjects(DWORD, HANDLE*, BOOL, DWORD, DWORD);
4137 DWORD MsgWaitForMultipleObjectsEx(DWORD, HANDLE*, DWORD, DWORD, DWORD);
4138 DWORD OemKeyScan(WORD);
4139 BOOL OemToCharA(LPCSTR, LPSTR);
4140 BOOL OemToCharBuffA(LPCSTR, LPSTR, DWORD);
4141 BOOL OemToCharBuffW(LPCSTR, LPWSTR, DWORD);
4142 BOOL OemToCharW(LPCSTR, LPWSTR);
4143 BOOL OffsetRect(LPRECT, int, int);
4144 BOOL OpenClipboard(HWND);
4145 HDESK OpenDesktopA(LPSTR, DWORD, BOOL, DWORD);
4146 HDESK OpenDesktopW(LPWSTR, DWORD, BOOL, DWORD);
4147 BOOL OpenIcon(HWND);
4148 HDESK OpenInputDesktop(DWORD, BOOL, DWORD);
4149 HWINSTA OpenWindowStationA(LPSTR, BOOL, DWORD);
4150 HWINSTA OpenWindowStationW(LPWSTR, BOOL, DWORD);
4151 BOOL PaintDesktop(HDC);
4152 BOOL PeekMessageA(LPMSG, HWND, UINT, UINT, UINT);
4153 BOOL PeekMessageW(LPMSG, HWND, UINT, UINT, UINT);
4154 BOOL PostMessageA(HWND, UINT, WPARAM, LPARAM);
4155 BOOL PostMessageW(HWND, UINT, WPARAM, LPARAM);
4156 void PostQuitMessage(int);
4157 BOOL PostThreadMessageA(DWORD, UINT, WPARAM, LPARAM);
4158 BOOL PostThreadMessageW(DWORD, UINT, WPARAM, LPARAM);
4159 BOOL PtInRect(LPCRECT, POINT);
4160 HWND RealChildWindowFromPoint(HWND, POINT);
4161 UINT RealGetWindowClassA(HWND, LPSTR, UINT);
4162 UINT RealGetWindowClassW(HWND, LPWSTR, UINT);
4163 BOOL RedrawWindow(HWND, LPCRECT, HRGN, UINT);
4164 ATOM RegisterClassA(WNDCLASSA*);
4165 ATOM RegisterClassW(WNDCLASSW*);
4166 ATOM RegisterClassExA(WNDCLASSEXA*);
4167 ATOM RegisterClassExW(WNDCLASSEXW*);
4168 UINT RegisterClipboardFormatA(LPCSTR);
4169 UINT RegisterClipboardFormatW(LPCWSTR);
4170 BOOL RegisterHotKey(HWND, int, UINT, UINT);
4171 UINT RegisterWindowMessageA(LPCSTR);
4172 UINT RegisterWindowMessageW(LPCWSTR);
4173 BOOL ReleaseCapture();
4174 int ReleaseDC(HWND, HDC);
4175 BOOL RemoveMenu(HMENU, UINT, UINT);
4176 HANDLE RemovePropA(HWND, LPCSTR);
4177 HANDLE RemovePropW(HWND, LPCWSTR);
4178 BOOL ReplyMessage(LRESULT);
4179 BOOL ScreenToClient(HWND, LPPOINT);
4180 BOOL ScrollDC(HDC, int, int, LPCRECT, LPCRECT, HRGN, LPRECT);
4181 BOOL ScrollWindow(HWND, int, int, LPCRECT, LPCRECT);
4182 int ScrollWindowEx(HWND, int, int, LPCRECT, LPCRECT, HRGN, LPRECT, UINT);
4183 LONG SendDlgItemMessageA(HWND, int, UINT, WPARAM, LPARAM);
4184 LONG SendDlgItemMessageW(HWND, int, UINT, WPARAM, LPARAM);
4185 LRESULT SendMessageA(HWND, UINT, WPARAM, LPARAM);
4186 BOOL SendMessageCallbackA(HWND, UINT, WPARAM, LPARAM, SENDASYNCPROC, DWORD);
4187 BOOL SendMessageCallbackW(HWND, UINT, WPARAM, LPARAM, SENDASYNCPROC, DWORD);
4188 LRESULT SendMessageTimeoutA(HWND, UINT, WPARAM, LPARAM, UINT, UINT, PDWORD);
4189 LRESULT SendMessageTimeoutW(HWND, UINT, WPARAM, LPARAM, UINT, UINT, PDWORD);
4190 LRESULT SendMessageW(HWND, UINT, WPARAM, LPARAM);
4191 BOOL SendNotifyMessageA(HWND, UINT, WPARAM, LPARAM);
4192 BOOL SendNotifyMessageW(HWND, UINT, WPARAM, LPARAM);
4193 HWND SetActiveWindow(HWND);
4194 HWND SetCapture(HWND hWnd);
4195 BOOL SetCaretBlinkTime(UINT);
4196 BOOL SetCaretPos(int, int);
4197 DWORD SetClassLongA(HWND, int, LONG);
4198 DWORD SetClassLongW(HWND, int, LONG);
4199 WORD SetClassWord(HWND, int, WORD);
4200 HANDLE SetClipboardData(UINT, HANDLE);
4201 HWND SetClipboardViewer(HWND);
4202 HCURSOR SetCursor(HCURSOR);
4203 BOOL SetCursorPos(int, int);
4204 void SetDebugErrorLevel(DWORD);
4205 BOOL SetDlgItemInt(HWND, int, UINT, BOOL);
4206 BOOL SetDlgItemTextA(HWND, int, LPCSTR);
4207 BOOL SetDlgItemTextW(HWND, int, LPCWSTR);
4208 BOOL SetDoubleClickTime(UINT);
4209 HWND SetFocus(HWND);
4210 BOOL SetForegroundWindow(HWND);
4211 BOOL SetKeyboardState(PBYTE);
4212 BOOL SetMenu(HWND, HMENU);
4213 BOOL SetMenuContextHelpId(HMENU, DWORD);
4214 BOOL SetMenuDefaultItem(HMENU, UINT, UINT);
4215 BOOL SetMenuInfo(HMENU, LPCMENUINFO);
4216 BOOL SetMenuItemBitmaps(HMENU, UINT, UINT, HBITMAP, HBITMAP);
4217 BOOL SetMenuItemInfoA(HMENU, UINT, BOOL, LPCMENUITEMINFOA);
4218 BOOL SetMenuItemInfoW( HMENU, UINT, BOOL, LPCMENUITEMINFOW);
4219 LPARAM SetMessageExtraInfo(LPARAM);
4220 BOOL SetMessageQueue(int);
4221 HWND SetParent(HWND, HWND);
4222 BOOL SetProcessWindowStation(HWINSTA);
4223 BOOL SetPropA(HWND, LPCSTR, HANDLE);
4224 BOOL SetPropW(HWND, LPCWSTR, HANDLE);
4225 BOOL SetRect(LPRECT, int, int, int, int);
4226 BOOL SetRectEmpty(LPRECT);
4227 int SetScrollInfo(HWND, int, LPCSCROLLINFO, BOOL);
4228 int SetScrollPos(HWND, int, int, BOOL);
4229 BOOL SetScrollRange(HWND, int, int, int, BOOL);
4230 BOOL SetSysColors(int, INT* , COLORREF* );
4231 BOOL SetSystemCursor(HCURSOR, DWORD);
4232 BOOL SetThreadDesktop(HDESK);
4233 UINT SetTimer(HWND, UINT, UINT, TIMERPROC);
4234 BOOL SetUserObjectInformationA(HANDLE, int, PVOID, DWORD);
4235 BOOL SetUserObjectInformationW(HANDLE, int, PVOID, DWORD);
4236 BOOL SetUserObjectSecurity(HANDLE, PSECURITY_INFORMATION, PSECURITY_DESCRIPTOR);
4237 BOOL SetWindowContextHelpId(HWND, DWORD);
4238 LONG SetWindowLongA(HWND, int, LONG);
4239 LONG SetWindowLongW(HWND, int, LONG);
4240 BOOL SetWindowPlacement(HWND hWnd, WINDOWPLACEMENT*);
4241 BOOL SetWindowPos(HWND, HWND, int, int, int, int, UINT);
4242 int SetWindowRgn(HWND, HRGN, BOOL);
4243 HHOOK SetWindowsHookA(int, HOOKPROC);
4244 HHOOK SetWindowsHookW(int, HOOKPROC);
4245 HHOOK SetWindowsHookExA(int, HOOKPROC, HINSTANCE, DWORD);
4246 HHOOK SetWindowsHookExW(int, HOOKPROC, HINSTANCE, DWORD);
4247 BOOL SetWindowTextA(HWND, LPCSTR);
4248 BOOL SetWindowTextW(HWND, LPCWSTR);
4249 WORD SetWindowWord(HWND, int, WORD);
4250 BOOL ShowCaret(HWND);
4251 int ShowCursor(BOOL);
4252 BOOL ShowOwnedPopups(HWND, BOOL);
4253 BOOL ShowScrollBar(HWND, int, BOOL);
4254 BOOL ShowWindow(HWND, int);
4255 BOOL ShowWindowAsync(HWND, int);
4256 BOOL SubtractRect(LPRECT, LPCRECT, LPCRECT);
4257 BOOL SwapMouseButton(BOOL);
4258 BOOL SwitchDesktop(HDESK);
4259 BOOL SystemParametersInfoA(UINT, UINT, PVOID, UINT);
4260 BOOL SystemParametersInfoW(UINT, UINT, PVOID, UINT);
4261 LONG TabbedTextOutA(HDC, int, int, LPCSTR, int, int, LPINT, int);
4262 LONG TabbedTextOutW(HDC, int, int, LPCWSTR, int, int, LPINT, int);
4263 WORD TileWindows(HWND, UINT, LPCRECT, UINT, HWND* );
4264 int ToAscii(UINT, UINT, PBYTE, LPWORD, UINT);
4265 int ToAsciiEx(UINT, UINT, PBYTE, LPWORD, UINT, HKL);
4266 int ToUnicode(UINT, UINT, PBYTE, LPWSTR, int, UINT);
4267 int ToUnicodeEx(UINT, UINT, PBYTE, LPWSTR, int, UINT, HKL);
4268 BOOL TrackMouseEvent(LPTRACKMOUSEEVENT);
4269 BOOL TrackPopupMenu(HMENU, UINT, int, int, int, HWND, LPCRECT);
4270 BOOL TrackPopupMenuEx(HMENU, UINT, int, int, HWND, LPTPMPARAMS);
4271 int TranslateAcceleratorA(HWND, HACCEL, LPMSG);
4272 int TranslateAcceleratorW(HWND, HACCEL, LPMSG);
4273 BOOL TranslateMDISysAccel(HWND, LPMSG);
4274 BOOL TranslateMessage( MSG*);
4275 BOOL UnhookWindowsHook(int, HOOKPROC);
4276 BOOL UnhookWindowsHookEx(HHOOK);
4277 BOOL UnionRect(LPRECT, LPCRECT, LPCRECT);
4278 BOOL UnloadKeyboardLayout(HKL);
4279 BOOL UnregisterClassA(LPCSTR, HINSTANCE);
4280 BOOL UnregisterClassW(LPCWSTR, HINSTANCE);
4281 BOOL UnregisterHotKey(HWND, int);
4282 BOOL UpdateWindow(HWND);
4283 BOOL ValidateRect(HWND, LPCRECT);
4284 BOOL ValidateRgn(HWND, HRGN);
4285 SHORT VkKeyScanA(CHAR);
4286 SHORT VkKeyScanExA(CHAR, HKL);
4287 SHORT VkKeyScanExW(WCHAR, HKL);
4288 SHORT VkKeyScanW(WCHAR);
4289 DWORD WaitForInputIdle(HANDLE, DWORD);
4290 BOOL WaitMessage();
4291 HWND WindowFromDC(HDC hDC);
4292 HWND WindowFromPoint(POINT);
4293 UINT WinExec(LPCSTR, UINT);
4294 BOOL WinHelpA(HWND, LPCSTR, UINT, DWORD);
4295 BOOL WinHelpW(HWND, LPCWSTR, UINT, DWORD);
4296
4297 extern (C) {
4298 int wsprintfA(LPSTR, LPCSTR, ...);
4299 int wsprintfW(LPWSTR, LPCWSTR, ...);
4300 }
4301
4302
4303 // These shouldn't be necessary for D.
4304 typedef char* va_list_;
4305 int wvsprintfA(LPSTR, LPCSTR, va_list_ arglist);
4306 int wvsprintfW(LPWSTR, LPCWSTR, va_list_ arglist);
4307
4308
4309 static if (_WIN32_WINDOWS == 0x400) {
4310 // On Win95, there's only one version.
4311 int BroadcastSystemMessage(DWORD, LPDWORD, UINT, WPARAM, LPARAM);
4312 }
4313 static if (_WIN32_WINNT >= 0x400) {
4314 int BroadcastSystemMessageA(DWORD, LPDWORD, UINT, WPARAM, LPARAM);
4315 int BroadcastSystemMessageW(DWORD, LPDWORD, UINT, WPARAM, LPARAM);
4316 }
4317 static if (_WIN32_WINNT >= 0x501) {
4318 int BroadcastSystemMessageExA(DWORD, LPDWORD, UINT, WPARAM, LPARAM, PBSMINFO);
4319 int BroadcastSystemMessageExW(DWORD, LPDWORD, UINT, WPARAM, LPARAM, PBSMINFO);
4320 }
4321
4322 static if (_WIN32_WINNT >= 0x403) {
4323 UINT SendInput(UINT, LPINPUT, int);
4324 }
4325 static if (_WIN32_WINNT >= 0x500) {
4326 BOOL AnimateWindow(HWND, DWORD, DWORD);
4327 BOOL EndTask(HWND, BOOL, BOOL);
4328 DWORD GetGuiResources(HANDLE, DWORD);
4329 HWND GetShellWindow();
4330 BOOL GetProcessDefaultLayout(DWORD*);
4331 BOOL IsHungAppWindow(HWND);
4332 BOOL LockWorkStation();
4333 HDEVNOTIFY RegisterDeviceNotificationA(HANDLE, LPVOID, DWORD);
4334 HDEVNOTIFY RegisterDeviceNotificationW(HANDLE, LPVOID, DWORD);
4335 BOOL SetProcessDefaultLayout(DWORD);
4336 void SwitchToThisWindow(HWND, BOOL);
4337 BOOL SetLayeredWindowAttributes(HWND, COLORREF, BYTE, DWORD);
4338 BOOL UpdateLayeredWindow(HWND, HDC, POINT*, SIZE*, HDC, POINT*, COLORREF, BLENDFUNCTION*, DWORD);
4339 BOOL UserHandleGrantAccess(HANDLE, HANDLE, BOOL);
4340 }
4341 static if (_WIN32_WINNT >= 0x501) {
4342 UINT GetRawInputBuffer(PRAWINPUT, PUINT, UINT);
4343 UINT GetRawInputData(HRAWINPUT, UINT, LPVOID, PUINT, UINT);
4344 UINT GetRawInputDeviceInfoA(HANDLE, UINT, LPVOID, PUINT);
4345 UINT GetRawInputDeviceInfoW(HANDLE, UINT, LPVOID, PUINT);
4346 UINT GetRawInputDeviceList(PRAWINPUTDEVICELIST, PUINT, UINT);
4347 UINT GetRegisteredRawInputDevices(PRAWINPUTDEVICE, PUINT, UINT);
4348 LRESULT DefRawInputProc(PRAWINPUT*, INT, UINT);
4349 BOOL RegisterRawInputDevices(PCRAWINPUTDEVICE, UINT, UINT);
4350
4351 BOOL IsGUIThread(BOOL);
4352 BOOL IsWinEventHookInstalled(DWORD);
4353 BOOL PrintWindow(HWND, HDC, UINT);
4354 BOOL GetLayeredWindowAttributes(HWND, COLORREF*, BYTE*, DWORD*);
4355 }
4356 static if (WINVER >= 0x410) {
4357 BOOL EnumDisplayMonitors(HDC, LPCRECT, MONITORENUMPROC, LPARAM);
4358 BOOL GetMonitorInfoA(HMONITOR, LPMONITORINFO);
4359 BOOL GetMonitorInfoA(HMONITOR, LPMONITORINFOEXA);
4360 BOOL GetMonitorInfoW(HMONITOR, LPMONITORINFO);
4361 BOOL GetMonitorInfoW(HMONITOR, LPMONITORINFOEXW);
4362 HMONITOR MonitorFromPoint(POINT, DWORD);
4363 HMONITOR MonitorFromRect(LPCRECT, DWORD);
4364 HMONITOR MonitorFromWindow(HWND, DWORD);
4365 }
4366 static if (WINVER >= 0x500) {
4367 BOOL GetGUIThreadInfo(DWORD, LPGUITHREADINFO);
4368 void NotifyWinEvent(DWORD, HWND, LONG, LONG);
4369 HWINEVENTHOOK SetWinEventHook(UINT, UINT, HMODULE, WINEVENTPROC, DWORD, DWORD, UINT);
4370 BOOL UnhookWinEvent(HWINEVENTHOOK);
4371 BOOL UnregisterDeviceNotification(HANDLE);
4372 }
4373 static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x410)) {
4374 BOOL EnumDisplaySettingsExA(LPCSTR, DWORD, LPDEVMODEA, DWORD);
4375 BOOL EnumDisplaySettingsExW(LPCWSTR, DWORD, LPDEVMODEW, DWORD);
4376 BOOL FlashWindowEx(PFLASHWINFO);
4377 DWORD GetClipboardSequenceNumber();
4378 DWORD InSendMessageEx(LPVOID);
4379 }
4380 static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x490)) {
4381 BOOL AllowSetForegroundWindow(DWORD);
4382 BOOL LockSetForegroundWindow(UINT);
4383 int GetMouseMovePointsEx(UINT, LPMOUSEMOVEPOINT, LPMOUSEMOVEPOINT, int, DWORD);
4384 }
4385
4386 version (Win64) {
4387 LONG_PTR GetWindowLongPtrA(HWND, int);
4388 LONG_PTR GetWindowLongPtrW(HWND, int);
4389 LONG_PTR SetWindowLongPtrA(HWND, int, LONG_PTR);
4390 LONG_PTR SetWindowLongPtrW(HWND, int, LONG_PTR);
4391 } else {
4392 alias GetWindowLongA GetWindowLongPtrA;
4393 alias GetWindowLongW GetWindowLongPtrW;
4394 alias SetWindowLongA SetWindowLongPtrA;
4395 alias SetWindowLongW SetWindowLongPtrW;
4396 }
4397
4398
4399 // -----
4400 // Aliases for Unicode or Ansi
4401 version(Unicode) {
4402
4403 alias EDITWORDBREAKPROCW EDITWORDBREAKPROC;
4404 alias PROPENUMPROCW PROPENUMPROC;
4405 alias PROPENUMPROCEXW PROPENUMPROCEX;
4406 alias DESKTOPENUMPROCW DESKTOPENUMPROC;
4407 alias WINSTAENUMPROCW WINSTAENUMPROC;
4408 alias MAKEINTRESOURCEW MAKEINTRESOURCE;
4409
4410 alias WNDCLASSW WNDCLASS;
4411 alias WNDCLASSEXW WNDCLASSEX;
4412 alias MENUITEMINFOW MENUITEMINFO;
4413 alias LPCMENUITEMINFOW LPCMENUITEMINFO;
4414 alias MSGBOXPARAMSW MSGBOXPARAMS;
4415 alias HIGHCONTRASTW HIGHCONTRAST;
4416 alias SERIALKEYSW SERIALKEYS;
4417 alias SOUNDSENTRYW SOUNDSENTRY;
4418 alias CREATESTRUCTW CREATESTRUCT;
4419 alias CBT_CREATEWNDW CBT_CREATEWND;
4420 alias MDICREATESTRUCTW MDICREATESTRUCT;
4421 alias MULTIKEYHELPW MULTIKEYHELP;
4422 alias MONITORINFOEXW MONITORINFOEX;
4423 alias ICONMETRICSW ICONMETRICS;
4424 alias NONCLIENTMETRICSW NONCLIENTMETRICS;
4425
4426 alias AppendMenuW AppendMenu;
4427 alias BroadcastSystemMessageW BroadcastSystemMessage;
4428 static if (_WIN32_WINNT >= 0x501) {
4429 alias BroadcastSystemMessageExW BroadcastSystemMessageEx;
4430 }
4431 alias CallMsgFilterW CallMsgFilter;
4432 alias CallWindowProcW CallWindowProc;
4433 alias ChangeMenuW ChangeMenu;
4434 alias CharLowerW CharLower;
4435 alias CharLowerBuffW CharLowerBuff;
4436 alias CharNextW CharNext;
4437 alias CharNextExW CharNextEx;
4438 alias CharPrevW CharPrev;
4439 alias CharPrevExW CharPrevEx;
4440 alias CharToOemW CharToOem;
4441 alias CharToOemBuffW CharToOemBuff;
4442 alias CharUpperW CharUpper;
4443 alias CharUpperBuffW CharUpperBuff;
4444 alias CopyAcceleratorTableW CopyAcceleratorTable;
4445 alias CreateAcceleratorTableW CreateAcceleratorTable;
4446 alias CreateDialogW CreateDialog;
4447 alias CreateDialogIndirectW CreateDialogIndirect;
4448 alias CreateDialogIndirectParamW CreateDialogIndirectParam;
4449 alias CreateDialogParamW CreateDialogParam;
4450 alias CreateMDIWindowW CreateMDIWindow;
4451 alias CreateWindowW CreateWindow;
4452 alias CreateWindowExW CreateWindowEx;
4453 alias CreateWindowStationW CreateWindowStation;
4454 alias DefDlgProcW DefDlgProc;
4455 alias DefFrameProcW DefFrameProc;
4456 alias DefMDIChildProcW DefMDIChildProc;
4457 alias DefWindowProcW DefWindowProc;
4458 alias DialogBoxW DialogBox;
4459 alias DialogBoxIndirectW DialogBoxIndirect;
4460 alias DialogBoxIndirectParamW DialogBoxIndirectParam;
4461 alias DialogBoxParamW DialogBoxParam;
4462 alias DispatchMessageW DispatchMessage;
4463 alias DlgDirListW DlgDirList;
4464 alias DlgDirListComboBoxW DlgDirListComboBox;
4465 alias DlgDirSelectComboBoxExW DlgDirSelectComboBoxEx;
4466 alias DlgDirSelectExW DlgDirSelectEx;
4467 alias DrawStateW DrawState;
4468 alias DrawTextW DrawText;
4469 alias DrawTextExW DrawTextEx;
4470 alias EnumDesktopsW EnumDesktops;
4471 alias EnumPropsW EnumProps;
4472 alias EnumPropsExW EnumPropsEx;
4473 alias EnumWindowStationsW EnumWindowStations;
4474 alias FindWindowW FindWindow;
4475 alias FindWindowExW FindWindowEx;
4476 alias GetClassInfoW GetClassInfo;
4477 alias GetClassInfoExW GetClassInfoEx;
4478 alias GetClassLongW GetClassLong;
4479 alias GetClassNameW GetClassName;
4480 alias GetClipboardFormatNameW GetClipboardFormatName;
4481 alias GetDlgItemTextW GetDlgItemText;
4482 alias GetKeyboardLayoutNameW GetKeyboardLayoutName;
4483 alias GetKeyNameTextW GetKeyNameText;
4484 alias GetMenuItemInfoW GetMenuItemInfo;
4485 alias GetMenuStringW GetMenuString;
4486 alias GetMessageW GetMessage;
4487 static if (WINVER >=0x410) {
4488 alias GetMonitorInfoW GetMonitorInfo;
4489 }
4490 alias GetPropW GetProp;
4491 static if (_WIN32_WINNT >= 0x501) {
4492 alias GetRawInputDeviceInfoW GetRawInputDeviceInfo;
4493 }
4494 alias GetTabbedTextExtentW GetTabbedTextExtent;
4495 alias GetUserObjectInformationW GetUserObjectInformation;
4496 alias GetWindowLongW GetWindowLong;
4497 alias GetWindowLongPtrW GetWindowLongPtr;
4498 alias GetWindowTextW GetWindowText;
4499 alias GetWindowTextLengthW GetWindowTextLength;
4500 alias GetAltTabInfoW GetAltTabInfo;
4501 alias GetWindowModuleFileNameW GetWindowModuleFileName;
4502 alias GrayStringW GrayString;
4503 alias InsertMenuW InsertMenu;
4504 alias InsertMenuItemW InsertMenuItem;
4505 alias IsCharAlphaW IsCharAlpha;
4506 alias IsCharAlphaNumericW IsCharAlphaNumeric;
4507 alias IsCharLowerW IsCharLower;
4508 alias IsCharUpperW IsCharUpper;
4509 alias IsDialogMessageW IsDialogMessage;
4510 alias LoadAcceleratorsW LoadAccelerators;
4511 alias LoadBitmapW LoadBitmap;
4512 alias LoadCursorW LoadCursor;
4513 alias LoadCursorFromFileW LoadCursorFromFile;
4514 alias LoadIconW LoadIcon;
4515 alias LoadImageW LoadImage;
4516 alias LoadKeyboardLayoutW LoadKeyboardLayout;
4517 alias LoadMenuW LoadMenu;
4518 alias LoadMenuIndirectW LoadMenuIndirect;
4519 alias LoadStringW LoadString;
4520 alias MapVirtualKeyW MapVirtualKey;
4521 alias MapVirtualKeyExW MapVirtualKeyEx;
4522 alias MessageBoxW MessageBox;
4523 alias MessageBoxExW MessageBoxEx;
4524 alias MessageBoxIndirectW MessageBoxIndirect;
4525 alias ModifyMenuW ModifyMenu;
4526 alias OemToCharW OemToChar;
4527 alias OemToCharBuffW OemToCharBuff;
4528 alias OpenDesktopW OpenDesktop;
4529 alias OpenWindowStationW OpenWindowStation;
4530 alias PeekMessageW PeekMessage;
4531 alias PostMessageW PostMessage;
4532 alias PostThreadMessageW PostThreadMessage;
4533 alias RealGetWindowClassW RealGetWindowClass;
4534 alias RegisterClassW RegisterClass;
4535 alias RegisterClassExW RegisterClassEx;
4536 alias RegisterClipboardFormatW RegisterClipboardFormat;
4537 static if (WINVER >= 0x500) {
4538 alias RegisterDeviceNotificationW RegisterDeviceNotification;
4539 }
4540 alias RegisterWindowMessageW RegisterWindowMessage;
4541 alias RemovePropW RemoveProp;
4542 alias SendDlgItemMessageW SendDlgItemMessage;
4543 alias SendMessageW SendMessage;
4544 alias SendMessageCallbackW SendMessageCallback;
4545 alias SendMessageTimeoutW SendMessageTimeout;
4546 alias SendNotifyMessageW SendNotifyMessage;
4547 alias SetClassLongW SetClassLong;
4548 alias SetDlgItemTextW SetDlgItemText;
4549 alias SetMenuItemInfoW SetMenuItemInfo;
4550 alias SetPropW SetProp;
4551 alias SetUserObjectInformationW SetUserObjectInformation;
4552 alias SetWindowLongW SetWindowLong;
4553 alias SetWindowLongPtrW SetWindowLongPtr;
4554 alias SetWindowsHookW SetWindowsHook;
4555 alias SetWindowsHookExW SetWindowsHookEx;
4556 alias SetWindowTextW SetWindowText;
4557 alias SystemParametersInfoW SystemParametersInfo;
4558 alias TabbedTextOutW TabbedTextOut;
4559 alias TranslateAcceleratorW TranslateAccelerator;
4560 alias UnregisterClassW UnregisterClass;
4561 alias VkKeyScanW VkKeyScan;
4562 alias VkKeyScanExW VkKeyScanEx;
4563 alias WinHelpW WinHelp;
4564 alias wsprintfW wsprintf;
4565 alias wvsprintfW wvsprintf;
4566
4567 alias ChangeDisplaySettingsW ChangeDisplaySettings;
4568 alias ChangeDisplaySettingsExW ChangeDisplaySettingsEx;
4569 alias CreateDesktopW CreateDesktop;
4570 alias EnumDisplaySettingsW EnumDisplaySettings;
4571 static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x410)) {
4572 alias EnumDisplaySettingsExW EnumDisplaySettingsEx;
4573 }
4574 alias EnumDisplayDevicesW EnumDisplayDevices;
4575
4576 } else { // ANSI
4577
4578 alias EDITWORDBREAKPROCA EDITWORDBREAKPROC;
4579 alias PROPENUMPROCA PROPENUMPROC;
4580 alias PROPENUMPROCEXA PROPENUMPROCEX;
4581 alias DESKTOPENUMPROCA DESKTOPENUMPROC;
4582 alias WINSTAENUMPROCA WINSTAENUMPROC;
4583 alias MAKEINTRESOURCEA MAKEINTRESOURCE;
4584
4585 alias WNDCLASSA WNDCLASS;
4586 alias WNDCLASSEXA WNDCLASSEX;
4587 alias MENUITEMINFOA MENUITEMINFO;
4588 alias LPCMENUITEMINFOA LPCMENUITEMINFO;
4589 alias MSGBOXPARAMSA MSGBOXPARAMS;
4590 alias HIGHCONTRASTA HIGHCONTRAST;
4591 alias SERIALKEYSA SERIALKEYS;
4592 alias SOUNDSENTRYA SOUNDSENTRY;
4593 alias CREATESTRUCTA CREATESTRUCT;
4594 alias CBT_CREATEWNDA CBT_CREATEWND;
4595 alias MDICREATESTRUCTA MDICREATESTRUCT;
4596 alias MULTIKEYHELPA MULTIKEYHELP;
4597 alias MONITORINFOEXA MONITORINFOEX;
4598 alias ICONMETRICSA ICONMETRICS;
4599 alias NONCLIENTMETRICSA NONCLIENTMETRICS;
4600
4601 alias AppendMenuA AppendMenu;
4602 alias BroadcastSystemMessageA BroadcastSystemMessage;
4603 static if (_WIN32_WINNT >= 0x501) {
4604 alias BroadcastSystemMessageExA BroadcastSystemMessageEx;
4605 }
4606 alias CallMsgFilterA CallMsgFilter;
4607 alias CallWindowProcA CallWindowProc;
4608 alias ChangeMenuA ChangeMenu;
4609 alias CharLowerA CharLower;
4610 alias CharLowerBuffA CharLowerBuff;
4611 alias CharNextA CharNext;
4612 alias CharNextExA CharNextEx;
4613 alias CharPrevA CharPrev;
4614 alias CharPrevExA CharPrevEx;
4615 alias CharToOemA CharToOem;
4616 alias CharToOemBuffA CharToOemBuff;
4617 alias CharUpperA CharUpper;
4618 alias CharUpperBuffA CharUpperBuff;
4619 alias CopyAcceleratorTableA CopyAcceleratorTable;
4620 alias CreateAcceleratorTableA CreateAcceleratorTable;
4621 alias CreateDialogA CreateDialog;
4622 alias CreateDialogIndirectA CreateDialogIndirect;
4623 alias CreateDialogIndirectParamA CreateDialogIndirectParam;
4624 alias CreateDialogParamA CreateDialogParam;
4625 alias CreateMDIWindowA CreateMDIWindow;
4626 alias CreateWindowA CreateWindow;
4627 alias CreateWindowExA CreateWindowEx;
4628 alias CreateWindowStationA CreateWindowStation;
4629 alias DefDlgProcA DefDlgProc;
4630 alias DefFrameProcA DefFrameProc;
4631 alias DefMDIChildProcA DefMDIChildProc;
4632 alias DefWindowProcA DefWindowProc;
4633 alias DialogBoxA DialogBox;
4634 alias DialogBoxIndirectA DialogBoxIndirect;
4635 alias DialogBoxIndirectParamA DialogBoxIndirectParam;
4636 alias DialogBoxParamA DialogBoxParam;
4637 alias DispatchMessageA DispatchMessage;
4638 alias DlgDirListA DlgDirList;
4639 alias DlgDirListComboBoxA DlgDirListComboBox;
4640 alias DlgDirSelectComboBoxExA DlgDirSelectComboBoxEx;
4641 alias DlgDirSelectExA DlgDirSelectEx;
4642 alias DrawStateA DrawState;
4643 alias DrawTextA DrawText;
4644 alias DrawTextExA DrawTextEx;
4645 alias EnumDesktopsA EnumDesktops;
4646 alias EnumPropsA EnumProps;
4647 alias EnumPropsExA EnumPropsEx;
4648 alias EnumWindowStationsA EnumWindowStations;
4649 alias FindWindowA FindWindow;
4650 alias FindWindowExA FindWindowEx;
4651 alias GetClassInfoA GetClassInfo;
4652 alias GetClassInfoExA GetClassInfoEx;
4653 alias GetClassLongA GetClassLong;
4654 alias GetClassNameA GetClassName;
4655 alias GetClipboardFormatNameA GetClipboardFormatName;
4656 alias GetDlgItemTextA GetDlgItemText;
4657 alias GetKeyboardLayoutNameA GetKeyboardLayoutName;
4658 alias GetKeyNameTextA GetKeyNameText;
4659 alias GetMenuItemInfoA GetMenuItemInfo;
4660 alias GetMenuStringA GetMenuString;
4661 alias GetMessageA GetMessage;
4662 static if (WINVER >=0x410) {
4663 alias GetMonitorInfoA GetMonitorInfo;
4664 }
4665 alias GetPropA GetProp;
4666 static if (_WIN32_WINNT >= 0x501) {
4667 alias GetRawInputDeviceInfoA GetRawInputDeviceInfo;
4668 }
4669 alias GetTabbedTextExtentA GetTabbedTextExtent;
4670 alias GetUserObjectInformationA GetUserObjectInformation;
4671 alias GetWindowLongA GetWindowLong;
4672 alias GetWindowLongPtrA GetWindowLongPtr;
4673 alias GetWindowTextA GetWindowText;
4674 alias GetWindowTextLengthA GetWindowTextLength;
4675 alias GetAltTabInfoA GetAltTabInfo;
4676 alias GetWindowModuleFileNameA GetWindowModuleFileName;
4677 alias GrayStringA GrayString;
4678 alias InsertMenuA InsertMenu;
4679 alias InsertMenuItemA InsertMenuItem;
4680 alias IsCharAlphaA IsCharAlpha;
4681 alias IsCharAlphaNumericA IsCharAlphaNumeric;
4682 alias IsCharLowerA IsCharLower;
4683 alias IsCharUpperA IsCharUpper;
4684 alias IsDialogMessageA IsDialogMessage;
4685 alias LoadAcceleratorsA LoadAccelerators;
4686 alias LoadBitmapA LoadBitmap;
4687 alias LoadCursorA LoadCursor;
4688 alias LoadIconA LoadIcon;
4689 alias LoadCursorFromFileA LoadCursorFromFile;
4690 alias LoadImageA LoadImage;
4691 alias LoadKeyboardLayoutA LoadKeyboardLayout;
4692 alias LoadMenuA LoadMenu;
4693 alias LoadMenuIndirectA LoadMenuIndirect;
4694 alias LoadStringA LoadString;
4695 alias MapVirtualKeyA MapVirtualKey;
4696 alias MapVirtualKeyExA MapVirtualKeyEx;
4697 alias MessageBoxA MessageBox;
4698 alias MessageBoxExA MessageBoxEx;
4699 alias MessageBoxIndirectA MessageBoxIndirect;
4700 alias ModifyMenuA ModifyMenu;
4701 alias OemToCharA OemToChar;
4702 alias OemToCharBuffA OemToCharBuff;
4703 alias OpenDesktopA OpenDesktop;
4704 alias OpenWindowStationA OpenWindowStation;
4705 alias PeekMessageA PeekMessage;
4706 alias PostMessageA PostMessage;
4707 alias PostThreadMessageA PostThreadMessage;
4708 alias RealGetWindowClassA RealGetWindowClass;
4709 alias RegisterClassA RegisterClass;
4710 alias RegisterClassExA RegisterClassEx;
4711 alias RegisterClipboardFormatA RegisterClipboardFormat;
4712 static if (WINVER >= 0x500) {
4713 alias RegisterDeviceNotificationA RegisterDeviceNotification;
4714 }
4715 alias RegisterWindowMessageA RegisterWindowMessage;
4716 alias RemovePropA RemoveProp;
4717 alias SendDlgItemMessageA SendDlgItemMessage;
4718 alias SendMessageA SendMessage;
4719 alias SendMessageCallbackA SendMessageCallback;
4720 alias SendMessageTimeoutA SendMessageTimeout;
4721 alias SendNotifyMessageA SendNotifyMessage;
4722 alias SetClassLongA SetClassLong;
4723 alias SetDlgItemTextA SetDlgItemText;
4724 alias SetMenuItemInfoA SetMenuItemInfo;
4725 alias SetPropA SetProp;
4726 alias SetUserObjectInformationA SetUserObjectInformation;
4727 alias SetWindowLongA SetWindowLong;
4728 alias SetWindowLongPtrA SetWindowLongPtr;
4729 alias SetWindowsHookA SetWindowsHook;
4730 alias SetWindowsHookExA SetWindowsHookEx;
4731 alias SetWindowTextA SetWindowText;
4732 alias SystemParametersInfoA SystemParametersInfo;
4733 alias TabbedTextOutA TabbedTextOut;
4734 alias TranslateAcceleratorA TranslateAccelerator;
4735 alias UnregisterClassA UnregisterClass;
4736 alias VkKeyScanA VkKeyScan;
4737 alias VkKeyScanExA VkKeyScanEx;
4738 alias WinHelpA WinHelp;
4739 alias wsprintfA wsprintf;
4740 alias wvsprintfA wvsprintf;
4741
4742 alias ChangeDisplaySettingsA ChangeDisplaySettings;
4743 alias ChangeDisplaySettingsExA ChangeDisplaySettingsEx;
4744 alias CreateDesktopA CreateDesktop;
4745 alias EnumDisplaySettingsA EnumDisplaySettings;
4746 static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x410)) {
4747 alias EnumDisplaySettingsExA EnumDisplaySettingsEx;
4748 }
4749 alias EnumDisplayDevicesA EnumDisplayDevices;
4750 }
4751
4752
4753 alias WNDCLASS* LPWNDCLASS, PWNDCLASS;
4754 alias WNDCLASSEX* LPWNDCLASSEX, PWNDCLASSEX;
4755 alias MENUITEMINFO* LPMENUITEMINFO;
4756 alias MSGBOXPARAMS* PMSGBOXPARAMS, LPMSGBOXPARAMS;
4757 alias HIGHCONTRAST* LPHIGHCONTRAST;
4758 alias SERIALKEYS* LPSERIALKEYS;
4759 alias SOUNDSENTRY* LPSOUNDSENTRY;
4760 alias CREATESTRUCT* LPCREATESTRUCT;
4761 alias CBT_CREATEWND* LPCBT_CREATEWND;
4762 alias MDICREATESTRUCT* LPMDICREATESTRUCT;
4763 alias MULTIKEYHELP* PMULTIKEYHELP, LPMULTIKEYHELP;
4764 alias MONITORINFOEX* LPMONITORINFOEX;
4765 alias ICONMETRICS* LPICONMETRICS;
4766 alias NONCLIENTMETRICS* LPNONCLIENTMETRICS;