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