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 core.sys.windows.winuser; 10 version (Windows): 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 core.sys.windows.w32api, core.sys.windows.winbase, core.sys.windows.wingdi; 26 import core.sys.windows.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 GCL_HICONSM GCLP_HICONSM; 725 alias GCL_HICON GCLP_HICON; 726 alias GCL_HCURSOR GCLP_HCURSOR; 727 alias GCL_HBRBACKGROUND GCLP_HBRBACKGROUND; 728 alias GCL_HMODULE GCLP_HMODULE; 729 alias GCL_MENUNAME GCLP_MENUNAME; 730 alias GCL_WNDPROC GCLP_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 INT_PTR function(HWND, UINT, WPARAM, LPARAM) DLGPROC; 2472 alias void function(HWND, UINT, UINT_PTR, DWORD) TIMERPROC; 2473 alias BOOL function(HDC, LPARAM, int) GRAYSTRINGPROC; 2474 alias LRESULT function(int, WPARAM, LPARAM) HOOKPROC; 2475 alias BOOL function(HWND, LPCSTR, HANDLE) PROPENUMPROCA; 2476 alias BOOL function(HWND, LPCWSTR, HANDLE) PROPENUMPROCW; 2477 alias BOOL function(HWND, LPSTR, HANDLE, ULONG_PTR) PROPENUMPROCEXA; 2478 alias BOOL function(HWND, LPWSTR, HANDLE, ULONG_PTR) PROPENUMPROCEXW; 2479 alias int function(LPSTR, int, int, int) EDITWORDBREAKPROCA; 2480 alias int function(LPWSTR, int, int, int) EDITWORDBREAKPROCW; 2481 alias LRESULT function(HWND, UINT, WPARAM, LPARAM) WNDPROC; 2482 alias BOOL function(HDC, LPARAM, WPARAM, int, int) DRAWSTATEPROC; 2483 alias BOOL function(HWND, LPARAM) WNDENUMPROC; 2484 alias BOOL function(HWND, LPARAM) ENUMWINDOWSPROC; 2485 alias void function(LPHELPINFO) MSGBOXCALLBACK; 2486 2487 alias BOOL function(HMONITOR, HDC, LPRECT, LPARAM) MONITORENUMPROC; 2488 alias BOOL function(LPSTR, LPARAM) NAMEENUMPROCA; 2489 alias BOOL function(LPWSTR, LPARAM) NAMEENUMPROCW; 2490 alias void function(HWND, UINT, ULONG_PTR, LRESULT) SENDASYNCPROC; 2491 2492 alias NAMEENUMPROCA DESKTOPENUMPROCA; 2493 alias NAMEENUMPROCW DESKTOPENUMPROCW; 2494 alias NAMEENUMPROCA WINSTAENUMPROCA; 2495 alias NAMEENUMPROCW WINSTAENUMPROCW; 2496 } 2497 2498 mixin DECLARE_HANDLE!("HDWP"); 2499 mixin DECLARE_HANDLE!("HDEVNOTIFY"); 2500 2501 struct MENUGETOBJECTINFO { 2502 DWORD dwFlags; 2503 UINT uPos; 2504 HMENU hmenu; 2505 PVOID riid; 2506 PVOID pvObj; 2507 } 2508 alias MENUGETOBJECTINFO* PMENUGETOBJECTINFO; 2509 2510 struct ACCEL { 2511 BYTE fVirt; 2512 WORD key; 2513 WORD cmd; 2514 } 2515 alias ACCEL* LPACCEL; 2516 2517 struct ACCESSTIMEOUT { 2518 UINT cbSize = ACCESSTIMEOUT.sizeof; 2519 DWORD dwFlags; 2520 DWORD iTimeOutMSec; 2521 } 2522 alias ACCESSTIMEOUT* LPACCESSTIMEOUT; 2523 2524 struct ANIMATIONINFO { 2525 UINT cbSize = ANIMATIONINFO.sizeof; 2526 int iMinAnimate; 2527 } 2528 alias ANIMATIONINFO* LPANIMATIONINFO; 2529 2530 struct CREATESTRUCTA { 2531 LPVOID lpCreateParams; 2532 HINSTANCE hInstance; 2533 HMENU hMenu; 2534 HWND hwndParent; 2535 int cy; 2536 int cx; 2537 int y; 2538 int x; 2539 LONG style; 2540 LPCSTR lpszName; 2541 LPCSTR lpszClass; 2542 DWORD dwExStyle; 2543 } 2544 alias CREATESTRUCTA* LPCREATESTRUCTA; 2545 2546 struct CREATESTRUCTW { 2547 LPVOID lpCreateParams; 2548 HINSTANCE hInstance; 2549 HMENU hMenu; 2550 HWND hwndParent; 2551 int cy; 2552 int cx; 2553 int y; 2554 int x; 2555 LONG style; 2556 LPCWSTR lpszName; 2557 LPCWSTR lpszClass; 2558 DWORD dwExStyle; 2559 } 2560 alias CREATESTRUCTW* LPCREATESTRUCTW; 2561 2562 struct CBT_CREATEWNDA { 2563 LPCREATESTRUCTA lpcs; 2564 HWND hwndInsertAfter; 2565 } 2566 alias CBT_CREATEWNDA* LPCBT_CREATEWNDA; 2567 2568 struct CBT_CREATEWNDW { 2569 LPCREATESTRUCTW lpcs; 2570 HWND hwndInsertAfter; 2571 } 2572 alias CBT_CREATEWNDW* LPCBT_CREATEWNDW; 2573 2574 struct CBTACTIVATESTRUCT { 2575 BOOL fMouse; 2576 HWND hWndActive; 2577 } 2578 alias CBTACTIVATESTRUCT* LPCBTACTIVATESTRUCT; 2579 2580 static if (_WIN32_WINNT >= 0x501) { 2581 2582 struct WTSSESSION_NOTIFICATION 2583 { 2584 DWORD cbSize; 2585 DWORD dwSessionId; 2586 } 2587 alias WTSSESSION_NOTIFICATION* PWTSSESSION_NOTIFICATION; 2588 2589 } 2590 2591 struct CLIENTCREATESTRUCT { 2592 HANDLE hWindowMenu; 2593 UINT idFirstChild; 2594 } 2595 alias CLIENTCREATESTRUCT* LPCLIENTCREATESTRUCT; 2596 2597 struct COMPAREITEMSTRUCT { 2598 UINT CtlType; 2599 UINT CtlID; 2600 HWND hwndItem; 2601 UINT itemID1; 2602 ULONG_PTR itemData1; 2603 UINT itemID2; 2604 ULONG_PTR itemData2; 2605 DWORD dwLocaleId; 2606 } 2607 alias COMPAREITEMSTRUCT* LPCOMPAREITEMSTRUCT; 2608 2609 struct COPYDATASTRUCT { 2610 ULONG_PTR dwData; 2611 DWORD cbData; 2612 PVOID lpData; 2613 } 2614 alias COPYDATASTRUCT* PCOPYDATASTRUCT; 2615 2616 struct CURSORSHAPE { 2617 int xHotSpot; 2618 int yHotSpot; 2619 int cx; 2620 int cy; 2621 int cbWidth; 2622 BYTE Planes; 2623 BYTE BitsPixel; 2624 } 2625 alias CURSORSHAPE* LPCURSORSHAPE; 2626 2627 struct CWPRETSTRUCT { 2628 LRESULT lResult; 2629 LPARAM lParam; 2630 WPARAM wParam; 2631 DWORD message; 2632 HWND hwnd; 2633 } 2634 2635 struct CWPSTRUCT { 2636 LPARAM lParam; 2637 WPARAM wParam; 2638 UINT message; 2639 HWND hwnd; 2640 } 2641 alias CWPSTRUCT* PCWPSTRUCT; 2642 2643 struct DEBUGHOOKINFO { 2644 DWORD idThread; 2645 DWORD idThreadInstaller; 2646 LPARAM lParam; 2647 WPARAM wParam; 2648 int code; 2649 } 2650 alias DEBUGHOOKINFO* PDEBUGHOOKINFO, LPDEBUGHOOKINFO; 2651 2652 struct DELETEITEMSTRUCT { 2653 UINT CtlType; 2654 UINT CtlID; 2655 UINT itemID; 2656 HWND hwndItem; 2657 ULONG_PTR itemData; 2658 } 2659 alias DELETEITEMSTRUCT* PDELETEITEMSTRUCT, LPDELETEITEMSTRUCT; 2660 2661 align(2): 2662 struct DLGITEMTEMPLATE { 2663 DWORD style; 2664 DWORD dwExtendedStyle; 2665 short x; 2666 short y; 2667 short cx; 2668 short cy; 2669 WORD id; 2670 } 2671 alias DLGITEMTEMPLATE* LPDLGITEMTEMPLATE; 2672 2673 struct DLGTEMPLATE { 2674 DWORD style; 2675 DWORD dwExtendedStyle; 2676 WORD cdit; 2677 short x; 2678 short y; 2679 short cx; 2680 short cy; 2681 } 2682 alias DLGTEMPLATE* LPDLGTEMPLATE, LPDLGTEMPLATEA, LPDLGTEMPLATEW; 2683 alias const(DLGTEMPLATE)* LPCDLGTEMPLATE, LPCDLGTEMPLATEA, LPCDLGTEMPLATEW; 2684 2685 align: 2686 2687 struct DRAWITEMSTRUCT { 2688 UINT CtlType; 2689 UINT CtlID; 2690 UINT itemID; 2691 UINT itemAction; 2692 UINT itemState; 2693 HWND hwndItem; 2694 HDC hDC; 2695 RECT rcItem; 2696 ULONG_PTR itemData; 2697 } 2698 alias DRAWITEMSTRUCT* LPDRAWITEMSTRUCT, PDRAWITEMSTRUCT; 2699 2700 struct DRAWTEXTPARAMS { 2701 UINT cbSize = DRAWTEXTPARAMS.sizeof; 2702 int iTabLength; 2703 int iLeftMargin; 2704 int iRightMargin; 2705 UINT uiLengthDrawn; 2706 } 2707 alias DRAWTEXTPARAMS* LPDRAWTEXTPARAMS; 2708 2709 struct PAINTSTRUCT { 2710 HDC hdc; 2711 BOOL fErase; 2712 RECT rcPaint; 2713 BOOL fRestore; 2714 BOOL fIncUpdate; 2715 BYTE[32] rgbReserved; 2716 } 2717 alias PAINTSTRUCT* PPAINTSTRUCT, NPPAINTSTRUCT, LPPAINTSTRUCT; 2718 2719 struct MSG { 2720 HWND hwnd; 2721 UINT message; 2722 WPARAM wParam; 2723 LPARAM lParam; 2724 DWORD time; 2725 POINT pt; 2726 } 2727 alias MSG* NPMSG, LPMSG, PMSG; 2728 2729 struct ICONINFO { 2730 BOOL fIcon; 2731 DWORD xHotspot; 2732 DWORD yHotspot; 2733 HBITMAP hbmMask; 2734 HBITMAP hbmColor; 2735 } 2736 alias ICONINFO* PICONINFO; 2737 2738 struct NMHDR { 2739 HWND hwndFrom; 2740 UINT_PTR idFrom; 2741 UINT code; 2742 } 2743 alias NMHDR* LPNMHDR; 2744 2745 struct WNDCLASSA { 2746 UINT style; 2747 WNDPROC lpfnWndProc; 2748 int cbClsExtra; 2749 int cbWndExtra; 2750 HINSTANCE hInstance; 2751 HICON hIcon; 2752 HCURSOR hCursor; 2753 HBRUSH hbrBackground; 2754 LPCSTR lpszMenuName; 2755 LPCSTR lpszClassName; 2756 } 2757 alias WNDCLASSA* NPWNDCLASSA, LPWNDCLASSA, PWNDCLASSA; 2758 2759 struct WNDCLASSW { 2760 UINT style; 2761 WNDPROC lpfnWndProc; 2762 int cbClsExtra; 2763 int cbWndExtra; 2764 HINSTANCE hInstance; 2765 HICON hIcon; 2766 HCURSOR hCursor; 2767 HBRUSH hbrBackground; 2768 LPCWSTR lpszMenuName; 2769 LPCWSTR lpszClassName; 2770 } 2771 alias WNDCLASSW* NPWNDCLASSW, LPWNDCLASSW, PWNDCLASSW; 2772 2773 struct WNDCLASSEXA { 2774 UINT cbSize = WNDCLASSEXA.sizeof; 2775 UINT style; 2776 WNDPROC lpfnWndProc; 2777 int cbClsExtra; 2778 int cbWndExtra; 2779 HINSTANCE hInstance; 2780 HICON hIcon; 2781 HCURSOR hCursor; 2782 HBRUSH hbrBackground; 2783 LPCSTR lpszMenuName; 2784 LPCSTR lpszClassName; 2785 HICON hIconSm; 2786 } 2787 alias WNDCLASSEXA* NPWNDCLASSEXA, LPWNDCLASSEXA, PWNDCLASSEXA; 2788 2789 struct WNDCLASSEXW { 2790 UINT cbSize = WNDCLASSEXW.sizeof; 2791 UINT style; 2792 WNDPROC lpfnWndProc; 2793 int cbClsExtra; 2794 int cbWndExtra; 2795 HINSTANCE hInstance; 2796 HICON hIcon; 2797 HCURSOR hCursor; 2798 HBRUSH hbrBackground; 2799 LPCWSTR lpszMenuName; 2800 LPCWSTR lpszClassName; 2801 HICON hIconSm; 2802 } 2803 alias WNDCLASSEXW* LPWNDCLASSEXW, PWNDCLASSEXW; 2804 2805 struct MENUITEMINFOA { 2806 UINT cbSize = MENUITEMINFOA.sizeof; 2807 UINT fMask; 2808 UINT fType; 2809 UINT fState; 2810 UINT wID; 2811 HMENU hSubMenu; 2812 HBITMAP hbmpChecked; 2813 HBITMAP hbmpUnchecked; 2814 ULONG_PTR dwItemData; 2815 LPSTR dwTypeData; 2816 UINT cch; 2817 HBITMAP hbmpItem; 2818 } 2819 alias MENUITEMINFOA* LPMENUITEMINFOA; 2820 alias const(MENUITEMINFOA)* LPCMENUITEMINFOA; 2821 2822 struct MENUITEMINFOW { 2823 UINT cbSize = MENUITEMINFOW.sizeof; 2824 UINT fMask; 2825 UINT fType; 2826 UINT fState; 2827 UINT wID; 2828 HMENU hSubMenu; 2829 HBITMAP hbmpChecked; 2830 HBITMAP hbmpUnchecked; 2831 ULONG_PTR dwItemData; 2832 LPWSTR dwTypeData; 2833 UINT cch; 2834 HBITMAP hbmpItem; 2835 } 2836 alias MENUITEMINFOW* LPMENUITEMINFOW; 2837 alias const(MENUITEMINFOW)* LPCMENUITEMINFOW; 2838 2839 struct SCROLLINFO { 2840 UINT cbSize = this.sizeof; 2841 UINT fMask; 2842 int nMin; 2843 int nMax; 2844 UINT nPage; 2845 int nPos; 2846 int nTrackPos; 2847 } 2848 alias SCROLLINFO* LPSCROLLINFO; 2849 alias const(SCROLLINFO)* LPCSCROLLINFO; 2850 2851 struct WINDOWPLACEMENT { 2852 UINT length; 2853 UINT flags; 2854 UINT showCmd; 2855 POINT ptMinPosition; 2856 POINT ptMaxPosition; 2857 RECT rcNormalPosition; 2858 } 2859 alias WINDOWPLACEMENT* LPWINDOWPLACEMENT, PWINDOWPLACEMENT; 2860 2861 struct MENUITEMTEMPLATEHEADER { 2862 WORD versionNumber; 2863 WORD offset; 2864 } 2865 2866 struct MENUITEMTEMPLATE { 2867 WORD mtOption; 2868 WORD mtID; 2869 WCHAR[1] mtString = 0; 2870 } 2871 2872 alias void MENUTEMPLATE, MENUTEMPLATEA, MENUTEMPLATEW; 2873 2874 alias MENUTEMPLATE* LPMENUTEMPLATEA, LPMENUTEMPLATEW, LPMENUTEMPLATE; 2875 2876 struct HELPINFO { 2877 UINT cbSize = this.sizeof; 2878 int iContextType; 2879 int iCtrlId; 2880 HANDLE hItemHandle; 2881 DWORD_PTR dwContextId; 2882 POINT MousePos; 2883 } 2884 alias HELPINFO* LPHELPINFO; 2885 2886 struct MSGBOXPARAMSA { 2887 UINT cbSize = this.sizeof; 2888 HWND hwndOwner; 2889 HINSTANCE hInstance; 2890 LPCSTR lpszText; 2891 LPCSTR lpszCaption; 2892 DWORD dwStyle; 2893 LPCSTR lpszIcon; 2894 DWORD_PTR dwContextHelpId; 2895 MSGBOXCALLBACK lpfnMsgBoxCallback; 2896 DWORD dwLanguageId; 2897 } 2898 alias MSGBOXPARAMSA* PMSGBOXPARAMSA, LPMSGBOXPARAMSA; 2899 2900 struct MSGBOXPARAMSW { 2901 UINT cbSize = this.sizeof; 2902 HWND hwndOwner; 2903 HINSTANCE hInstance; 2904 LPCWSTR lpszText; 2905 LPCWSTR lpszCaption; 2906 DWORD dwStyle; 2907 LPCWSTR lpszIcon; 2908 DWORD_PTR dwContextHelpId; 2909 MSGBOXCALLBACK lpfnMsgBoxCallback; 2910 DWORD dwLanguageId; 2911 } 2912 alias MSGBOXPARAMSW* PMSGBOXPARAMSW, LPMSGBOXPARAMSW; 2913 2914 struct USEROBJECTFLAGS { 2915 BOOL fInherit; 2916 BOOL fReserved; 2917 DWORD dwFlags; 2918 } 2919 2920 struct FILTERKEYS { 2921 UINT cbSize = this.sizeof; 2922 DWORD dwFlags; 2923 DWORD iWaitMSec; 2924 DWORD iDelayMSec; 2925 DWORD iRepeatMSec; 2926 DWORD iBounceMSec; 2927 } 2928 2929 struct HIGHCONTRASTA { 2930 UINT cbSize = this.sizeof; 2931 DWORD dwFlags; 2932 LPSTR lpszDefaultScheme; 2933 } 2934 alias HIGHCONTRASTA* LPHIGHCONTRASTA; 2935 2936 struct HIGHCONTRASTW { 2937 UINT cbSize = this.sizeof; 2938 DWORD dwFlags; 2939 LPWSTR lpszDefaultScheme; 2940 } 2941 alias HIGHCONTRASTW* LPHIGHCONTRASTW; 2942 2943 struct ICONMETRICSA { 2944 UINT cbSize = this.sizeof; 2945 int iHorzSpacing; 2946 int iVertSpacing; 2947 int iTitleWrap; 2948 LOGFONTA lfFont; 2949 } 2950 alias ICONMETRICSA* LPICONMETRICSA; 2951 2952 struct ICONMETRICSW { 2953 UINT cbSize = this.sizeof; 2954 int iHorzSpacing; 2955 int iVertSpacing; 2956 int iTitleWrap; 2957 LOGFONTW lfFont; 2958 } 2959 alias ICONMETRICSW* LPICONMETRICSW; 2960 2961 struct MINIMIZEDMETRICS { 2962 UINT cbSize = this.sizeof; 2963 int iWidth; 2964 int iHorzGap; 2965 int iVertGap; 2966 int iArrange; 2967 } 2968 alias MINIMIZEDMETRICS* LPMINIMIZEDMETRICS; 2969 2970 struct MOUSEKEYS { 2971 UINT cbSize = this.sizeof; 2972 DWORD dwFlags; 2973 DWORD iMaxSpeed; 2974 DWORD iTimeToMaxSpeed; 2975 DWORD iCtrlSpeed; 2976 DWORD dwReserved1; 2977 DWORD dwReserved2; 2978 } 2979 alias MOUSEKEYS* LPMOUSEKEYS; 2980 2981 struct NONCLIENTMETRICSA { 2982 UINT cbSize = this.sizeof; 2983 int iBorderWidth; 2984 int iScrollWidth; 2985 int iScrollHeight; 2986 int iCaptionWidth; 2987 int iCaptionHeight; 2988 LOGFONTA lfCaptionFont; 2989 int iSmCaptionWidth; 2990 int iSmCaptionHeight; 2991 LOGFONTA lfSmCaptionFont; 2992 int iMenuWidth; 2993 int iMenuHeight; 2994 LOGFONTA lfMenuFont; 2995 LOGFONTA lfStatusFont; 2996 LOGFONTA lfMessageFont; 2997 } 2998 alias NONCLIENTMETRICSA* LPNONCLIENTMETRICSA; 2999 3000 struct NONCLIENTMETRICSW { 3001 UINT cbSize = this.sizeof; 3002 int iBorderWidth; 3003 int iScrollWidth; 3004 int iScrollHeight; 3005 int iCaptionWidth; 3006 int iCaptionHeight; 3007 LOGFONTW lfCaptionFont; 3008 int iSmCaptionWidth; 3009 int iSmCaptionHeight; 3010 LOGFONTW lfSmCaptionFont; 3011 int iMenuWidth; 3012 int iMenuHeight; 3013 LOGFONTW lfMenuFont; 3014 LOGFONTW lfStatusFont; 3015 LOGFONTW lfMessageFont; 3016 } 3017 alias NONCLIENTMETRICSW* LPNONCLIENTMETRICSW; 3018 3019 struct SERIALKEYSA { 3020 UINT cbSize = this.sizeof; 3021 DWORD dwFlags; 3022 LPSTR lpszActivePort; 3023 LPSTR lpszPort; 3024 UINT iBaudRate; 3025 UINT iPortState; 3026 UINT iActive; 3027 } 3028 alias SERIALKEYSA* LPSERIALKEYSA; 3029 3030 struct SERIALKEYSW { 3031 UINT cbSize = this.sizeof; 3032 DWORD dwFlags; 3033 LPWSTR lpszActivePort; 3034 LPWSTR lpszPort; 3035 UINT iBaudRate; 3036 UINT iPortState; 3037 UINT iActive; 3038 } 3039 alias SERIALKEYSW* LPSERIALKEYSW; 3040 3041 struct SOUNDSENTRYA { 3042 UINT cbSize = this.sizeof; 3043 DWORD dwFlags; 3044 DWORD iFSTextEffect; 3045 DWORD iFSTextEffectMSec; 3046 DWORD iFSTextEffectColorBits; 3047 DWORD iFSGrafEffect; 3048 DWORD iFSGrafEffectMSec; 3049 DWORD iFSGrafEffectColor; 3050 DWORD iWindowsEffect; 3051 DWORD iWindowsEffectMSec; 3052 LPSTR lpszWindowsEffectDLL; 3053 DWORD iWindowsEffectOrdinal; 3054 } 3055 alias SOUNDSENTRYA* LPSOUNDSENTRYA; 3056 3057 struct SOUNDSENTRYW { 3058 UINT cbSize = this.sizeof; 3059 DWORD dwFlags; 3060 DWORD iFSTextEffect; 3061 DWORD iFSTextEffectMSec; 3062 DWORD iFSTextEffectColorBits; 3063 DWORD iFSGrafEffect; 3064 DWORD iFSGrafEffectMSec; 3065 DWORD iFSGrafEffectColor; 3066 DWORD iWindowsEffect; 3067 DWORD iWindowsEffectMSec; 3068 LPWSTR lpszWindowsEffectDLL; 3069 DWORD iWindowsEffectOrdinal; 3070 } 3071 alias SOUNDSENTRYW* LPSOUNDSENTRYW; 3072 3073 struct STICKYKEYS { 3074 DWORD cbSize = this.sizeof; 3075 DWORD dwFlags; 3076 } 3077 alias STICKYKEYS* LPSTICKYKEYS; 3078 3079 struct TOGGLEKEYS { 3080 DWORD cbSize = this.sizeof; 3081 DWORD dwFlags; 3082 } 3083 3084 struct MOUSEHOOKSTRUCT { 3085 POINT pt; 3086 HWND hwnd; 3087 UINT wHitTestCode; 3088 ULONG_PTR dwExtraInfo; 3089 } 3090 alias MOUSEHOOKSTRUCT* LPMOUSEHOOKSTRUCT, PMOUSEHOOKSTRUCT; 3091 3092 struct TRACKMOUSEEVENT { 3093 DWORD cbSize = this.sizeof; 3094 DWORD dwFlags; 3095 HWND hwndTrack; 3096 DWORD dwHoverTime; 3097 } 3098 alias TRACKMOUSEEVENT* LPTRACKMOUSEEVENT; 3099 3100 struct TPMPARAMS { 3101 UINT cbSize = this.sizeof; 3102 RECT rcExclude; 3103 } 3104 alias TPMPARAMS* LPTPMPARAMS; 3105 3106 struct EVENTMSG { 3107 UINT message; 3108 UINT paramL; 3109 UINT paramH; 3110 DWORD time; 3111 HWND hwnd; 3112 } 3113 alias EVENTMSG* PEVENTMSGMSG, LPEVENTMSGMSG, PEVENTMSG, LPEVENTMSG; 3114 3115 struct WINDOWPOS { 3116 HWND hwnd; 3117 HWND hwndInsertAfter; 3118 int x; 3119 int y; 3120 int cx; 3121 int cy; 3122 UINT flags; 3123 } 3124 alias WINDOWPOS* PWINDOWPOS, LPWINDOWPOS; 3125 3126 struct NCCALCSIZE_PARAMS { 3127 RECT[3] rgrc; 3128 PWINDOWPOS lppos; 3129 } 3130 alias NCCALCSIZE_PARAMS* LPNCCALCSIZE_PARAMS; 3131 3132 struct MDICREATESTRUCTA { 3133 LPCSTR szClass; 3134 LPCSTR szTitle; 3135 HANDLE hOwner; 3136 int x; 3137 int y; 3138 int cx; 3139 int cy; 3140 DWORD style; 3141 LPARAM lParam; 3142 } 3143 alias MDICREATESTRUCTA* LPMDICREATESTRUCTA; 3144 3145 struct MDICREATESTRUCTW { 3146 LPCWSTR szClass; 3147 LPCWSTR szTitle; 3148 HANDLE hOwner; 3149 int x; 3150 int y; 3151 int cx; 3152 int cy; 3153 DWORD style; 3154 LPARAM lParam; 3155 } 3156 alias MDICREATESTRUCTW* LPMDICREATESTRUCTW; 3157 3158 struct MINMAXINFO { 3159 POINT ptReserved; 3160 POINT ptMaxSize; 3161 POINT ptMaxPosition; 3162 POINT ptMinTrackSize; 3163 POINT ptMaxTrackSize; 3164 } 3165 alias MINMAXINFO* PMINMAXINFO, LPMINMAXINFO; 3166 3167 struct MDINEXTMENU { 3168 HMENU hmenuIn; 3169 HMENU hmenuNext; 3170 HWND hwndNext; 3171 } 3172 alias MDINEXTMENU* PMDINEXTMENU, LPMDINEXTMENU; 3173 3174 struct MEASUREITEMSTRUCT { 3175 UINT CtlType; 3176 UINT CtlID; 3177 UINT itemID; 3178 UINT itemWidth; 3179 UINT itemHeight; 3180 ULONG_PTR itemData; 3181 } 3182 alias MEASUREITEMSTRUCT* PMEASUREITEMSTRUCT, LPMEASUREITEMSTRUCT; 3183 3184 struct DROPSTRUCT { 3185 HWND hwndSource; 3186 HWND hwndSink; 3187 DWORD wFmt; 3188 ULONG_PTR dwData; 3189 POINT ptDrop; 3190 DWORD dwControlData; 3191 } 3192 alias DROPSTRUCT* PDROPSTRUCT, LPDROPSTRUCT; 3193 3194 alias DWORD HELPPOLY; 3195 3196 struct MULTIKEYHELPA { 3197 DWORD mkSize; 3198 CHAR mkKeylist = 0; 3199 CHAR[1] szKeyphrase = 0; 3200 } 3201 alias MULTIKEYHELPA* PMULTIKEYHELPA, LPMULTIKEYHELPA; 3202 3203 struct MULTIKEYHELPW { 3204 DWORD mkSize; 3205 WCHAR mkKeylist = 0; 3206 WCHAR[1] szKeyphrase = 0; 3207 } 3208 alias MULTIKEYHELPW* PMULTIKEYHELPW, LPMULTIKEYHELPW; 3209 3210 struct HELPWININFOA { 3211 int wStructSize; 3212 int x; 3213 int y; 3214 int dx; 3215 int dy; 3216 int wMax; 3217 CHAR[2] rgchMember = 0; 3218 } 3219 alias HELPWININFOA* PHELPWININFOA, LPHELPWININFOA; 3220 3221 struct HELPWININFOW { 3222 int wStructSize; 3223 int x; 3224 int y; 3225 int dx; 3226 int dy; 3227 int wMax; 3228 WCHAR[2] rgchMember = 0; 3229 } 3230 alias HELPWININFOW* PHELPWININFOW, LPHELPWININFOW; 3231 3232 struct STYLESTRUCT { 3233 DWORD styleOld; 3234 DWORD styleNew; 3235 } 3236 alias STYLESTRUCT* LPSTYLESTRUCT; 3237 3238 struct ALTTABINFO { 3239 DWORD cbSize = this.sizeof; 3240 int cItems; 3241 int cColumns; 3242 int cRows; 3243 int iColFocus; 3244 int iRowFocus; 3245 int cxItem; 3246 int cyItem; 3247 POINT ptStart; 3248 } 3249 alias ALTTABINFO* PALTTABINFO, LPALTTABINFO; 3250 3251 struct COMBOBOXINFO { 3252 DWORD cbSize = this.sizeof; 3253 RECT rcItem; 3254 RECT rcButton; 3255 DWORD stateButton; 3256 HWND hwndCombo; 3257 HWND hwndItem; 3258 HWND hwndList; 3259 } 3260 alias COMBOBOXINFO* PCOMBOBOXINFO, LPCOMBOBOXINFO; 3261 3262 struct CURSORINFO { 3263 DWORD cbSize = this.sizeof; 3264 DWORD flags; 3265 HCURSOR hCursor; 3266 POINT ptScreenPos; 3267 } 3268 alias CURSORINFO* PCURSORINFO, LPCURSORINFO; 3269 3270 struct MENUBARINFO { 3271 DWORD cbSize = this.sizeof; 3272 RECT rcBar; 3273 HMENU hMenu; 3274 HWND hwndMenu; 3275 byte bf_; // Simulated bitfield 3276 // BOOL fBarFocused:1; 3277 // BOOL fFocused:1; 3278 bool fBarFocused() { return (bf_ & 1) == 1; } 3279 bool fFocused() { return (bf_ & 2) == 2; } 3280 bool fBarFocused(bool b) { bf_ = cast(byte) ((bf_ & 0xFE) | b); return b; } 3281 bool fFocused(bool b) { bf_ = cast(byte) (b ? (bf_ | 2) : bf_ & 0xFD); return b; } 3282 } 3283 alias MENUBARINFO* PMENUBARINFO; 3284 3285 struct MENUINFO { 3286 DWORD cbSize = this.sizeof; 3287 DWORD fMask; 3288 DWORD dwStyle; 3289 UINT cyMax; 3290 HBRUSH hbrBack; 3291 DWORD dwContextHelpID; 3292 ULONG_PTR dwMenuData; 3293 } 3294 alias MENUINFO* LPMENUINFO; 3295 alias const(MENUINFO)* LPCMENUINFO; 3296 3297 3298 enum CCHILDREN_SCROLLBAR = 5; 3299 3300 struct SCROLLBARINFO { 3301 DWORD cbSize = this.sizeof; 3302 RECT rcScrollBar; 3303 int dxyLineButton; 3304 int xyThumbTop; 3305 int xyThumbBottom; 3306 int reserved; 3307 DWORD[CCHILDREN_SCROLLBAR+1] rgstate; 3308 } 3309 alias SCROLLBARINFO* PSCROLLBARINFO, LPSCROLLBARINFO; 3310 3311 enum CCHILDREN_TITLEBAR = 5; 3312 3313 struct WINDOWINFO { 3314 DWORD cbSize = WINDOWINFO.sizeof; 3315 RECT rcWindow; 3316 RECT rcClient; 3317 DWORD dwStyle; 3318 DWORD dwExStyle; 3319 DWORD dwWindowStatus; 3320 UINT cxWindowBorders; 3321 UINT cyWindowBorders; 3322 ATOM atomWindowType; 3323 WORD wCreatorVersion; 3324 } 3325 alias WINDOWINFO* PWINDOWINFO, LPWINDOWINFO; 3326 3327 struct LASTINPUTINFO { 3328 UINT cbSize = this.sizeof; 3329 DWORD dwTime; 3330 } 3331 alias LASTINPUTINFO* PLASTINPUTINFO; 3332 3333 struct MONITORINFO { 3334 DWORD cbSize = this.sizeof; 3335 RECT rcMonitor; 3336 RECT rcWork; 3337 DWORD dwFlags; 3338 } 3339 alias MONITORINFO* LPMONITORINFO; 3340 3341 enum CCHDEVICENAME = 32; 3342 3343 struct MONITORINFOEXA { 3344 DWORD cbSize = MONITORINFOEXA.sizeof; 3345 RECT rcMonitor; 3346 RECT rcWork; 3347 DWORD dwFlags; 3348 CHAR[CCHDEVICENAME] szDevice = 0; 3349 } 3350 alias MONITORINFOEXA* LPMONITORINFOEXA; 3351 3352 struct MONITORINFOEXW { 3353 DWORD cbSize = MONITORINFOEXW.sizeof; 3354 RECT rcMonitor; 3355 RECT rcWork; 3356 DWORD dwFlags; 3357 WCHAR[CCHDEVICENAME] szDevice = 0; 3358 } 3359 alias MONITORINFOEXW* LPMONITORINFOEXW; 3360 3361 struct KBDLLHOOKSTRUCT { 3362 DWORD vkCode; 3363 DWORD scanCode; 3364 DWORD flags; 3365 DWORD time; 3366 ULONG_PTR dwExtraInfo; 3367 } 3368 alias KBDLLHOOKSTRUCT* LPKBDLLHOOKSTRUCT, PKBDLLHOOKSTRUCT; 3369 3370 struct MSLLHOOKSTRUCT { 3371 POINT pt; 3372 DWORD mouseData; 3373 DWORD flags; 3374 DWORD time; 3375 ULONG_PTR dwExtraInfo; 3376 } 3377 alias MSLLHOOKSTRUCT* PMSLLHOOKSTRUCT; 3378 3379 struct MOUSEINPUT { 3380 LONG dx; 3381 LONG dy; 3382 DWORD mouseData; 3383 DWORD dwFlags; 3384 DWORD time; 3385 ULONG_PTR dwExtraInfo; 3386 } 3387 alias MOUSEINPUT* PMOUSEINPUT; 3388 3389 struct KEYBDINPUT { 3390 WORD wVk; 3391 WORD wScan; 3392 DWORD dwFlags; 3393 DWORD time; 3394 ULONG_PTR dwExtraInfo; 3395 } 3396 alias KEYBDINPUT* PKEYBDINPUT; 3397 3398 struct HARDWAREINPUT { 3399 DWORD uMsg; 3400 WORD wParamL; 3401 WORD wParamH; 3402 } 3403 alias HARDWAREINPUT* PHARDWAREINPUT; 3404 3405 struct INPUT { 3406 DWORD type; 3407 union { 3408 MOUSEINPUT mi; 3409 KEYBDINPUT ki; 3410 HARDWAREINPUT hi; 3411 } 3412 } 3413 alias INPUT* PINPUT, LPINPUT; 3414 3415 static if (_WIN32_WINNT >= 0x501) { 3416 align(4) struct BSMINFO { 3417 UINT cbSize = this.sizeof; 3418 HDESK hdesk; 3419 HWND hwnd; 3420 align(4) LUID luid; 3421 } 3422 alias BSMINFO* PBSMINFO; 3423 3424 alias HANDLE HRAWINPUT; 3425 3426 struct RAWINPUTHEADER { 3427 DWORD dwType; 3428 DWORD dwSize; 3429 HANDLE hDevice; 3430 WPARAM wParam; 3431 } 3432 alias RAWINPUTHEADER* PRAWINPUTHEADER; 3433 3434 struct RAWMOUSE { 3435 USHORT usFlags; 3436 union { 3437 ULONG ulButtons; 3438 struct { 3439 USHORT usButtonFlags; 3440 USHORT usButtonData; 3441 } 3442 } 3443 ULONG ulRawButtons; 3444 LONG lLastX; 3445 LONG lLastY; 3446 ULONG ulExtraInformation; 3447 } 3448 alias RAWMOUSE* PRAWMOUSE, LPRAWMOUSE; 3449 3450 struct RAWKEYBOARD { 3451 USHORT MakeCode; 3452 USHORT Flags; 3453 USHORT Reserved; 3454 USHORT VKey; 3455 UINT Message; 3456 ULONG ExtraInformation; 3457 } 3458 alias RAWKEYBOARD* PRAWKEYBOARD, LPRAWKEYBOARD; 3459 3460 struct RAWHID { 3461 DWORD dwSizeHid; 3462 DWORD dwCount; 3463 BYTE bRawData; 3464 } 3465 alias RAWHID* PRAWHID, LPRAWHID; 3466 3467 struct RAWINPUT { 3468 RAWINPUTHEADER header; 3469 union _data { 3470 RAWMOUSE mouse; 3471 RAWKEYBOARD keyboard; 3472 RAWHID hid; 3473 } 3474 _data data; 3475 } 3476 alias RAWINPUT* PRAWINPUT, LPRAWINPUT; 3477 3478 struct RAWINPUTDEVICE { 3479 USHORT usUsagePage; 3480 USHORT usUsage; 3481 DWORD dwFlags; 3482 HWND hwndTarget; 3483 } 3484 alias RAWINPUTDEVICE* PRAWINPUTDEVICE, LPRAWINPUTDEVICE; 3485 alias const(RAWINPUTDEVICE)* PCRAWINPUTDEVICE; 3486 3487 struct RAWINPUTDEVICELIST { 3488 HANDLE hDevice; 3489 DWORD dwType; 3490 } 3491 alias RAWINPUTDEVICELIST* PRAWINPUTDEVICELIST; 3492 3493 struct RID_DEVICE_INFO_MOUSE { 3494 DWORD dwId; 3495 DWORD dwNumberOfButtons; 3496 DWORD dwSampleRate; 3497 BOOL fHasHorizontalWheel; 3498 } 3499 3500 struct RID_DEVICE_INFO_KEYBOARD { 3501 DWORD dwType; 3502 DWORD dwSubType; 3503 DWORD dwKeyboardMode; 3504 DWORD dwNumberOfFunctionKeys; 3505 DWORD dwNumberOfIndicators; 3506 DWORD dwNumberOfKeysTotal; 3507 } 3508 3509 struct RID_DEVICE_INFO_HID { 3510 DWORD dwVendorId; 3511 DWORD dwProductId; 3512 DWORD dwVersionNumber; 3513 USHORT usUsagePage; 3514 USHORT usUsage; 3515 } 3516 3517 struct RID_DEVICE_INFO { 3518 DWORD cbSize = this.sizeof; 3519 DWORD dwType; 3520 union { 3521 RID_DEVICE_INFO_MOUSE mouse; 3522 RID_DEVICE_INFO_KEYBOARD keyboard; 3523 RID_DEVICE_INFO_HID hid; 3524 } 3525 } 3526 }// (_WIN32_WINNT >= 0x501) 3527 3528 alias CharToOemA AnsiToOem; 3529 alias OemToCharA OemToAnsi; 3530 alias CharToOemBuffA AnsiToOemBuff; 3531 alias OemToCharBuffA OemToAnsiBuff; 3532 alias CharUpperA AnsiUpper; 3533 alias CharUpperBuffA AnsiUpperBuff; 3534 alias CharLowerA AnsiLower; 3535 alias CharLowerBuffA AnsiLowerBuff; 3536 alias CharNextA AnsiNext; 3537 alias CharPrevA AnsiPrev; 3538 3539 alias MAKELONG MAKEWPARAM; 3540 alias MAKELONG MAKELPARAM; 3541 alias MAKELONG MAKELRESULT; 3542 3543 void POINTSTOPOINT()(out POINT p, LONG ps) { 3544 p.x = LOWORD(ps); 3545 p.y = HIWORD(ps); 3546 } 3547 3548 POINTS POINTTOPOINTS()(const POINT p) { 3549 return MAKELONG(p.x, p.y); 3550 } 3551 3552 extern (Windows) nothrow @nogc { 3553 HKL ActivateKeyboardLayout(HKL, UINT); 3554 BOOL AdjustWindowRect(LPRECT, DWORD, BOOL); 3555 BOOL AdjustWindowRectEx(LPRECT, DWORD, BOOL, DWORD); 3556 BOOL AnyPopup(); 3557 BOOL AppendMenuA(HMENU, UINT, UINT_PTR, LPCSTR); 3558 BOOL AppendMenuW(HMENU, UINT, UINT_PTR, LPCWSTR); 3559 UINT ArrangeIconicWindows(HWND); 3560 BOOL AttachThreadInput(DWORD, DWORD, BOOL); 3561 HDWP BeginDeferWindowPos(int); 3562 HDC BeginPaint(HWND, LPPAINTSTRUCT); 3563 BOOL BringWindowToTop(HWND); 3564 BOOL CallMsgFilterA(LPMSG, INT); 3565 BOOL CallMsgFilterW(LPMSG, INT); 3566 LRESULT CallNextHookEx(HHOOK, int, WPARAM, LPARAM); 3567 LRESULT CallWindowProcA(WNDPROC, HWND, UINT, WPARAM, LPARAM); 3568 LRESULT CallWindowProcW(WNDPROC, HWND, UINT, WPARAM, LPARAM); 3569 WORD CascadeWindows(HWND, UINT, LPCRECT, UINT, const(HWND)*); 3570 BOOL ChangeClipboardChain(HWND, HWND); 3571 3572 LONG ChangeDisplaySettingsA(PDEVMODEA, DWORD); 3573 LONG ChangeDisplaySettingsW(PDEVMODEW, DWORD); 3574 LONG ChangeDisplaySettingsExA(LPCSTR, LPDEVMODEA, HWND, DWORD, LPVOID); 3575 LONG ChangeDisplaySettingsExW(LPCWSTR, LPDEVMODEW, HWND, DWORD, LPVOID); 3576 3577 BOOL ChangeMenuA(HMENU, UINT, LPCSTR, UINT, UINT); 3578 BOOL ChangeMenuW(HMENU, UINT, LPCWSTR, UINT, UINT); 3579 LPSTR CharLowerA(LPSTR); 3580 LPWSTR CharLowerW(LPWSTR); 3581 DWORD CharLowerBuffA(LPSTR, DWORD); 3582 DWORD CharLowerBuffW(LPWSTR, DWORD); 3583 LPSTR CharNextA(LPCSTR); 3584 LPWSTR CharNextW(LPCWSTR); 3585 LPSTR CharNextExA(WORD, LPCSTR, DWORD); 3586 LPWSTR CharNextExW(WORD, LPCWSTR, DWORD); 3587 LPSTR CharPrevA(LPCSTR, LPCSTR); 3588 LPWSTR CharPrevW(LPCWSTR, LPCWSTR); 3589 LPSTR CharPrevExA(WORD, LPCSTR, LPCSTR, DWORD); 3590 LPWSTR CharPrevExW(WORD, LPCWSTR, LPCWSTR, DWORD); 3591 BOOL CharToOemA(LPCSTR, LPSTR); 3592 BOOL CharToOemW(LPCWSTR, LPSTR); 3593 BOOL CharToOemBuffA(LPCSTR, LPSTR, DWORD); 3594 BOOL CharToOemBuffW(LPCWSTR, LPSTR, DWORD); 3595 LPSTR CharUpperA(LPSTR); 3596 LPWSTR CharUpperW(LPWSTR); 3597 DWORD CharUpperBuffA(LPSTR, DWORD); 3598 DWORD CharUpperBuffW(LPWSTR, DWORD); 3599 BOOL CheckDlgButton(HWND, int, UINT); 3600 DWORD CheckMenuItem(HMENU, UINT, UINT); 3601 BOOL CheckMenuRadioItem(HMENU, UINT, UINT, UINT, UINT); 3602 BOOL CheckRadioButton(HWND, int, int, int); 3603 HWND ChildWindowFromPoint(HWND, POINT); 3604 HWND ChildWindowFromPointEx(HWND, POINT, UINT); 3605 BOOL ClientToScreen(HWND, LPPOINT); 3606 BOOL ClipCursor(LPCRECT); 3607 BOOL CloseClipboard(); 3608 BOOL CloseDesktop(HDESK); 3609 BOOL CloseWindow(HWND); 3610 BOOL CloseWindowStation(HWINSTA); 3611 int CopyAcceleratorTableA(HACCEL, LPACCEL, int); 3612 int CopyAcceleratorTableW(HACCEL, LPACCEL, int); 3613 3614 HICON CopyIcon(HICON); 3615 HANDLE CopyImage(HANDLE, UINT, int, int, UINT); 3616 BOOL CopyRect(LPRECT, LPCRECT); 3617 int CountClipboardFormats(); 3618 HACCEL CreateAcceleratorTableA(LPACCEL, int); 3619 HACCEL CreateAcceleratorTableW(LPACCEL, int); 3620 BOOL CreateCaret(HWND, HBITMAP, int, int); 3621 HCURSOR CreateCursor(HINSTANCE, int, int, int, int, PCVOID, PCVOID); 3622 3623 HDESK CreateDesktopA(LPCSTR, LPCSTR, LPDEVMODEA, DWORD, ACCESS_MASK, LPSECURITY_ATTRIBUTES); 3624 HDESK CreateDesktopW(LPCWSTR, LPCWSTR, LPDEVMODEW, DWORD, ACCESS_MASK, LPSECURITY_ATTRIBUTES); 3625 3626 HWND CreateDialogParamA(HINSTANCE, LPCSTR, HWND, DLGPROC, LPARAM); 3627 HWND CreateDialogParamW(HINSTANCE, LPCWSTR, HWND, DLGPROC, LPARAM); 3628 HWND CreateDialogIndirectParamA(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM); 3629 HWND CreateDialogIndirectParamW(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM); 3630 3631 HICON CreateIcon(HINSTANCE, int, int, BYTE, BYTE, const(BYTE)*, BYTE*); 3632 HICON CreateIconFromResource(PBYTE, DWORD, BOOL, DWORD); 3633 HICON CreateIconFromResourceEx(PBYTE, DWORD, BOOL, DWORD, int, int, UINT); 3634 HICON CreateIconIndirect(PICONINFO); 3635 HWND CreateMDIWindowA(LPCSTR, LPCSTR, DWORD, int, int, int, int, HWND, HINSTANCE, LPARAM); 3636 HWND CreateMDIWindowW(LPCWSTR, LPCWSTR, DWORD, int, int, int, int, HWND, HINSTANCE, LPARAM); 3637 HMENU CreateMenu(); 3638 HMENU CreatePopupMenu(); 3639 3640 HWND CreateWindowExA(DWORD, LPCSTR, LPCSTR, DWORD, int, int, int, int, HWND, HMENU, HINSTANCE, LPVOID); 3641 HWND CreateWindowExW(DWORD, LPCWSTR, LPCWSTR, DWORD, int, int, int, int, HWND, HMENU, HINSTANCE, LPVOID); 3642 3643 HWINSTA CreateWindowStationA(LPSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES); 3644 HWINSTA CreateWindowStationW(LPWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES); 3645 LRESULT DefDlgProcA(HWND, UINT, WPARAM, LPARAM); 3646 LRESULT DefDlgProcW(HWND, UINT, WPARAM, LPARAM); 3647 HDWP DeferWindowPos(HDWP, HWND, HWND, int, int, int, int, UINT); 3648 LRESULT DefFrameProcA(HWND, HWND, UINT, WPARAM, LPARAM); 3649 LRESULT DefFrameProcW(HWND, HWND, UINT, WPARAM, LPARAM); 3650 3651 LRESULT DefMDIChildProcA(HWND, UINT, WPARAM, LPARAM); 3652 LRESULT DefMDIChildProcW(HWND, UINT, WPARAM, LPARAM); 3653 LRESULT DefWindowProcA(HWND, UINT, WPARAM, LPARAM); 3654 LRESULT DefWindowProcW(HWND, UINT, WPARAM, LPARAM); 3655 BOOL DeleteMenu(HMENU, UINT, UINT); 3656 BOOL DeregisterShellHookWindow(HWND); 3657 BOOL DestroyAcceleratorTable(HACCEL); 3658 BOOL DestroyCaret(); 3659 BOOL DestroyCursor(HCURSOR); 3660 BOOL DestroyIcon(HICON); 3661 BOOL DestroyMenu(HMENU); 3662 BOOL DestroyWindow(HWND); 3663 3664 INT_PTR DialogBoxParamA(HINSTANCE, LPCSTR, HWND, DLGPROC, LPARAM); 3665 INT_PTR DialogBoxParamW(HINSTANCE, LPCWSTR, HWND, DLGPROC, LPARAM); 3666 INT_PTR DialogBoxIndirectParamA(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM); 3667 INT_PTR DialogBoxIndirectParamW(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM); 3668 3669 } // extern (Windows) 3670 3671 nothrow @nogc { 3672 HCURSOR CopyCursor(HCURSOR c) { 3673 return cast(HCURSOR)CopyIcon(cast(HICON)c); 3674 } 3675 3676 HWND CreateDialogA(HINSTANCE h, LPCSTR n, HWND w, DLGPROC f) { 3677 return CreateDialogParamA(h, n, w, f, 0); 3678 } 3679 3680 HWND CreateDialogW(HINSTANCE h, LPCWSTR n, HWND w, DLGPROC f) { 3681 return CreateDialogParamW(h, n, w, f, 0); 3682 } 3683 3684 HWND CreateDialogIndirectA(HINSTANCE h, LPCDLGTEMPLATE t, HWND w, DLGPROC f) { 3685 return CreateDialogIndirectParamA(h, t, w, f, 0); 3686 } 3687 3688 HWND CreateDialogIndirectW(HINSTANCE h, LPCDLGTEMPLATE t, HWND w, DLGPROC f) { 3689 return CreateDialogIndirectParamW(h, t, w, f, 0); 3690 } 3691 3692 HWND CreateWindowA(LPCSTR a, LPCSTR b, DWORD c, int d, int e, int f, int g, HWND h, HMENU i, HINSTANCE j, LPVOID k) { 3693 return CreateWindowExA(0, a, b, c, d, e, f, g, h, i, j, k); 3694 } 3695 3696 HWND CreateWindowW(LPCWSTR a, LPCWSTR b, DWORD c, int d, int e, int f, int g, HWND h, HMENU i, HINSTANCE j, LPVOID k) { 3697 return CreateWindowExW(0, a, b, c, d, e, f, g, h, i, j, k); 3698 } 3699 3700 INT_PTR DialogBoxA(HINSTANCE i, LPCSTR t, HWND p, DLGPROC f) { 3701 return DialogBoxParamA(i, t, p, f, 0); 3702 } 3703 3704 INT_PTR DialogBoxW(HINSTANCE i, LPCWSTR t, HWND p, DLGPROC f) { 3705 return DialogBoxParamW(i, t, p, f, 0); 3706 } 3707 3708 INT_PTR DialogBoxIndirectA(HINSTANCE i, LPCDLGTEMPLATE t, HWND p, DLGPROC f) { 3709 return DialogBoxIndirectParamA(i, t, p, f, 0); 3710 } 3711 3712 INT_PTR DialogBoxIndirectW(HINSTANCE i, LPCDLGTEMPLATE t, HWND p, DLGPROC f) { 3713 return DialogBoxIndirectParamW(i, t, p, f, 0); 3714 } 3715 3716 BOOL ExitWindows(UINT r, DWORD c) { 3717 return ExitWindowsEx(EWX_LOGOFF, 0); 3718 } 3719 } 3720 alias GetWindow GetNextWindow; 3721 3722 extern (Windows) nothrow @nogc: 3723 LONG DispatchMessageA(const(MSG)*); 3724 LONG DispatchMessageW(const(MSG)*); 3725 int DlgDirListA(HWND, LPSTR, int, int, UINT); 3726 int DlgDirListW(HWND, LPWSTR, int, int, UINT); 3727 int DlgDirListComboBoxA(HWND, LPSTR, int, int, UINT); 3728 int DlgDirListComboBoxW(HWND, LPWSTR, int, int, UINT); 3729 BOOL DlgDirSelectComboBoxExA(HWND, LPSTR, int, int); 3730 BOOL DlgDirSelectComboBoxExW(HWND, LPWSTR, int, int); 3731 BOOL DlgDirSelectExA(HWND, LPSTR, int, int); 3732 BOOL DlgDirSelectExW(HWND, LPWSTR, int, int); 3733 BOOL DragDetect(HWND, POINT); 3734 DWORD DragObject(HWND, HWND, UINT, ULONG_PTR, HCURSOR); 3735 BOOL DrawAnimatedRects(HWND, int, LPCRECT, LPCRECT); 3736 BOOL DrawCaption(HWND, HDC, LPCRECT, UINT); 3737 BOOL DrawEdge(HDC, LPRECT, UINT, UINT); 3738 BOOL DrawFocusRect(HDC, LPCRECT); 3739 BOOL DrawFrameControl(HDC, LPRECT, UINT, UINT); 3740 BOOL DrawIcon(HDC, int, int, HICON); 3741 BOOL DrawIconEx(HDC, int, int, HICON, int, int, UINT, HBRUSH, UINT); 3742 BOOL DrawMenuBar(HWND); 3743 BOOL DrawStateA(HDC, HBRUSH, DRAWSTATEPROC, LPARAM, WPARAM, int, int, int, int, UINT); 3744 BOOL DrawStateW(HDC, HBRUSH, DRAWSTATEPROC, LPARAM, WPARAM, int, int, int, int, UINT); 3745 int DrawTextA(HDC, LPCSTR, int, LPRECT, UINT); 3746 int DrawTextW(HDC, LPCWSTR, int, LPRECT, UINT); 3747 int DrawTextExA(HDC, LPSTR, int, LPRECT, UINT, LPDRAWTEXTPARAMS); 3748 int DrawTextExW(HDC, LPWSTR, int, LPRECT, UINT, LPDRAWTEXTPARAMS); 3749 BOOL EmptyClipboard(); 3750 BOOL EnableMenuItem(HMENU, UINT, UINT); 3751 BOOL EnableScrollBar(HWND, UINT, UINT); 3752 BOOL EnableWindow(HWND, BOOL); 3753 BOOL EndDeferWindowPos(HDWP); 3754 BOOL EndDialog(HWND, INT_PTR); 3755 BOOL EndMenu(); 3756 BOOL EndPaint(HWND, const(PAINTSTRUCT)*); 3757 BOOL EnumChildWindows(HWND, ENUMWINDOWSPROC, LPARAM); 3758 UINT EnumClipboardFormats(UINT); 3759 BOOL EnumDesktopsA(HWINSTA, DESKTOPENUMPROCA, LPARAM); 3760 BOOL EnumDesktopsW(HWINSTA, DESKTOPENUMPROCW, LPARAM); 3761 BOOL EnumDesktopWindows(HDESK, ENUMWINDOWSPROC, LPARAM); 3762 BOOL EnumDisplaySettingsA(LPCSTR, DWORD, PDEVMODEA); 3763 BOOL EnumDisplaySettingsW(LPCWSTR, DWORD, PDEVMODEW); 3764 3765 BOOL EnumDisplayDevicesA(LPCSTR, DWORD, PDISPLAY_DEVICEA, DWORD); 3766 BOOL EnumDisplayDevicesW(LPCWSTR, DWORD, PDISPLAY_DEVICEW, DWORD); 3767 3768 int EnumPropsA(HWND, PROPENUMPROCA); 3769 int EnumPropsW(HWND, PROPENUMPROCW); 3770 int EnumPropsExA(HWND, PROPENUMPROCEXA, LPARAM); 3771 int EnumPropsExW(HWND, PROPENUMPROCEXW, LPARAM); 3772 3773 BOOL EnumThreadWindows(DWORD, WNDENUMPROC, LPARAM); 3774 BOOL EnumWindows(WNDENUMPROC, LPARAM); 3775 BOOL EnumWindowStationsA(WINSTAENUMPROCA, LPARAM); 3776 BOOL EnumWindowStationsW(WINSTAENUMPROCW, LPARAM); 3777 BOOL EqualRect(LPCRECT, LPCRECT); 3778 3779 BOOL ExitWindowsEx(UINT, DWORD); 3780 HWND FindWindowA(LPCSTR, LPCSTR); 3781 HWND FindWindowExA(HWND, HWND, LPCSTR, LPCSTR); 3782 HWND FindWindowExW(HWND, HWND, LPCWSTR, LPCWSTR); 3783 HWND FindWindowW(LPCWSTR, LPCWSTR); 3784 BOOL FlashWindow(HWND, BOOL); 3785 3786 int FrameRect(HDC, LPCRECT, HBRUSH); 3787 BOOL FrameRgn(HDC, HRGN, HBRUSH, int, int); 3788 HWND GetActiveWindow(); 3789 HWND GetAncestor(HWND, UINT); 3790 SHORT GetAsyncKeyState(int); 3791 HWND GetCapture(); 3792 UINT GetCaretBlinkTime(); 3793 BOOL GetCaretPos(LPPOINT); 3794 BOOL GetClassInfoA(HINSTANCE, LPCSTR, LPWNDCLASSA); 3795 BOOL GetClassInfoExA(HINSTANCE, LPCSTR, LPWNDCLASSEXA); 3796 BOOL GetClassInfoW(HINSTANCE, LPCWSTR, LPWNDCLASSW); 3797 BOOL GetClassInfoExW(HINSTANCE, LPCWSTR, LPWNDCLASSEXW); 3798 DWORD GetClassLongA(HWND, int); 3799 DWORD GetClassLongW(HWND, int); 3800 int GetClassNameA(HWND, LPSTR, int); 3801 int GetClassNameW(HWND, LPWSTR, int); 3802 WORD GetClassWord(HWND, int); 3803 BOOL GetClientRect(HWND, LPRECT); 3804 HANDLE GetClipboardData(UINT); 3805 int GetClipboardFormatNameA(UINT, LPSTR, int); 3806 int GetClipboardFormatNameW(UINT, LPWSTR, int); 3807 HWND GetClipboardOwner(); 3808 HWND GetClipboardViewer(); 3809 BOOL GetClipCursor(LPRECT); 3810 BOOL GetCursorPos(LPPOINT); 3811 HDC GetDC(HWND); 3812 HDC GetDCEx(HWND, HRGN, DWORD); 3813 HWND GetDesktopWindow(); 3814 int GetDialogBaseUnits(); 3815 int GetDlgCtrlID(HWND); 3816 HWND GetDlgItem(HWND, int); 3817 UINT GetDlgItemInt(HWND, int, PBOOL, BOOL); 3818 UINT GetDlgItemTextA(HWND, int, LPSTR, int); 3819 UINT GetDlgItemTextW(HWND, int, LPWSTR, int); 3820 UINT GetDoubleClickTime(); 3821 HWND GetFocus(); 3822 HWND GetForegroundWindow(); 3823 3824 BOOL GetIconInfo(HICON, PICONINFO); 3825 BOOL GetInputState(); 3826 UINT GetKBCodePage(); 3827 HKL GetKeyboardLayout(DWORD); 3828 UINT GetKeyboardLayoutList(int, HKL*); 3829 BOOL GetKeyboardLayoutNameA(LPSTR); 3830 BOOL GetKeyboardLayoutNameW(LPWSTR); 3831 BOOL GetKeyboardState(PBYTE); 3832 int GetKeyboardType(int); 3833 int GetKeyNameTextA(LONG, LPSTR, int); 3834 int GetKeyNameTextW(LONG, LPWSTR, int); 3835 SHORT GetKeyState(int); 3836 HWND GetLastActivePopup(HWND); 3837 HMENU GetMenu(HWND); 3838 LONG GetMenuCheckMarkDimensions(); 3839 DWORD GetMenuContextHelpId(HMENU); 3840 UINT GetMenuDefaultItem(HMENU, UINT, UINT); 3841 int GetMenuItemCount(HMENU); 3842 UINT GetMenuItemID(HMENU, int); 3843 BOOL GetMenuItemInfoA(HMENU, UINT, BOOL, LPMENUITEMINFOA); 3844 BOOL GetMenuItemInfoW(HMENU, UINT, BOOL, LPMENUITEMINFOW); 3845 BOOL GetMenuItemRect(HWND, HMENU, UINT, LPRECT); 3846 UINT GetMenuState(HMENU, UINT, UINT); 3847 int GetMenuStringA(HMENU, UINT, LPSTR, int, UINT); 3848 int GetMenuStringW(HMENU, UINT, LPWSTR, int, UINT); 3849 BOOL GetMessageA(LPMSG, HWND, UINT, UINT); 3850 BOOL GetMessageW(LPMSG, HWND, UINT, UINT); 3851 LONG GetMessageExtraInfo(); 3852 DWORD GetMessagePos(); 3853 LONG GetMessageTime(); 3854 3855 HWND GetNextDlgGroupItem(HWND, HWND, BOOL); 3856 HWND GetNextDlgTabItem(HWND, HWND, BOOL); 3857 3858 HWND GetOpenClipboardWindow(); 3859 HWND GetParent(HWND); 3860 int GetPriorityClipboardFormat(UINT*, int); 3861 HANDLE GetPropA(HWND, LPCSTR); 3862 HANDLE GetPropW(HWND, LPCWSTR); 3863 3864 DWORD GetQueueStatus(UINT); 3865 BOOL GetScrollInfo(HWND, int, LPSCROLLINFO); 3866 int GetScrollPos(HWND, int); 3867 BOOL GetScrollRange(HWND, int, LPINT, LPINT); 3868 3869 HMENU GetSubMenu(HMENU, int); 3870 DWORD GetSysColor(int); 3871 HBRUSH GetSysColorBrush(int); 3872 3873 HMENU GetSystemMenu(HWND, BOOL); 3874 int GetSystemMetrics(int); 3875 DWORD GetTabbedTextExtentA(HDC, LPCSTR, int, int, LPINT); 3876 DWORD GetTabbedTextExtentW(HDC, LPCWSTR, int, int, LPINT); 3877 LONG GetWindowLongA(HWND, int); 3878 LONG GetWindowLongW(HWND, int); 3879 3880 HDESK GetThreadDesktop(DWORD); 3881 HWND GetTopWindow(HWND); 3882 BOOL GetUpdateRect(HWND, LPRECT, BOOL); 3883 int GetUpdateRgn(HWND, HRGN, BOOL); 3884 BOOL GetUserObjectInformationA(HANDLE, int, PVOID, DWORD, PDWORD); 3885 BOOL GetUserObjectInformationW(HANDLE, int, PVOID, DWORD, PDWORD); 3886 BOOL GetUserObjectSecurity(HANDLE, PSECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD); 3887 HWND GetWindow(HWND, UINT); 3888 DWORD GetWindowContextHelpId(HWND); 3889 HDC GetWindowDC(HWND); 3890 BOOL GetWindowPlacement(HWND, WINDOWPLACEMENT*); 3891 BOOL GetWindowRect(HWND, LPRECT); 3892 int GetWindowRgn(HWND, HRGN); 3893 int GetWindowTextA(HWND, LPSTR, int); 3894 int GetWindowTextLengthA(HWND); 3895 int GetWindowTextLengthW(HWND); 3896 int GetWindowTextW(HWND, LPWSTR, int); 3897 WORD GetWindowWord(HWND, int); 3898 BOOL GetAltTabInfoA(HWND, int, PALTTABINFO, LPSTR, UINT); 3899 BOOL GetAltTabInfoW(HWND, int, PALTTABINFO, LPWSTR, UINT); 3900 BOOL GetComboBoxInfo(HWND, PCOMBOBOXINFO); 3901 BOOL GetCursorInfo(PCURSORINFO); 3902 BOOL GetLastInputInfo(PLASTINPUTINFO); 3903 DWORD GetListBoxInfo(HWND); 3904 BOOL GetMenuBarInfo(HWND, LONG, LONG, PMENUBARINFO); 3905 BOOL GetMenuInfo(HMENU, LPMENUINFO); 3906 BOOL GetScrollBarInfo(HWND, LONG, PSCROLLBARINFO); 3907 BOOL GetTitleBarInfo(HWND, PTITLEBARINFO); 3908 BOOL GetWindowInfo(HWND, PWINDOWINFO); 3909 UINT GetWindowModuleFileNameA(HWND, LPSTR, UINT); 3910 UINT GetWindowModuleFileNameW(HWND, LPWSTR, UINT); 3911 BOOL GrayStringA(HDC, HBRUSH, GRAYSTRINGPROC, LPARAM, int, int, int, int, int); 3912 BOOL GrayStringW(HDC, HBRUSH, GRAYSTRINGPROC, LPARAM, int, int, int, int, int); 3913 BOOL HideCaret(HWND); 3914 BOOL HiliteMenuItem(HWND, HMENU, UINT, UINT); 3915 BOOL InflateRect(LPRECT, int, int); 3916 BOOL InSendMessage(); 3917 BOOL InsertMenuA(HMENU, UINT, UINT, UINT_PTR, LPCSTR); 3918 BOOL InsertMenuW(HMENU, UINT, UINT, UINT_PTR, LPCWSTR); 3919 BOOL InsertMenuItemA(HMENU, UINT, BOOL, LPCMENUITEMINFOA); 3920 BOOL InsertMenuItemW(HMENU, UINT, BOOL, LPCMENUITEMINFOW); 3921 INT InternalGetWindowText(HWND, LPWSTR, INT); 3922 BOOL IntersectRect(LPRECT, LPCRECT, LPCRECT); 3923 BOOL InvalidateRect(HWND, LPCRECT, BOOL); 3924 BOOL InvalidateRgn(HWND, HRGN, BOOL); 3925 BOOL InvertRect(HDC, LPCRECT); 3926 BOOL IsCharAlphaA(CHAR ch); 3927 BOOL IsCharAlphaNumericA(CHAR); 3928 BOOL IsCharAlphaNumericW(WCHAR); 3929 BOOL IsCharAlphaW(WCHAR); 3930 BOOL IsCharLowerA(CHAR); 3931 BOOL IsCharLowerW(WCHAR); 3932 BOOL IsCharUpperA(CHAR); 3933 BOOL IsCharUpperW(WCHAR); 3934 BOOL IsChild(HWND, HWND); 3935 BOOL IsClipboardFormatAvailable(UINT); 3936 BOOL IsDialogMessageA(HWND, LPMSG); 3937 BOOL IsDialogMessageW(HWND, LPMSG); 3938 UINT IsDlgButtonChecked(HWND, int); 3939 BOOL IsIconic(HWND); 3940 BOOL IsMenu(HMENU); 3941 BOOL IsRectEmpty(LPCRECT); 3942 BOOL IsWindow(HWND); 3943 BOOL IsWindowEnabled(HWND); 3944 BOOL IsWindowUnicode(HWND); 3945 BOOL IsWindowVisible(HWND); 3946 BOOL IsZoomed(HWND); 3947 void keybd_event(BYTE, BYTE, DWORD, ULONG_PTR); 3948 BOOL KillTimer(HWND, UINT_PTR); 3949 HACCEL LoadAcceleratorsA(HINSTANCE, LPCSTR); 3950 HACCEL LoadAcceleratorsW(HINSTANCE, LPCWSTR); 3951 HBITMAP LoadBitmapA(HINSTANCE, LPCSTR); 3952 HBITMAP LoadBitmapW(HINSTANCE, LPCWSTR); 3953 HCURSOR LoadCursorA(HINSTANCE, LPCSTR); 3954 HCURSOR LoadCursorFromFileA(LPCSTR); 3955 HCURSOR LoadCursorFromFileW(LPCWSTR); 3956 HCURSOR LoadCursorW(HINSTANCE, LPCWSTR); 3957 HICON LoadIconA(HINSTANCE, LPCSTR); 3958 HICON LoadIconW(HINSTANCE, LPCWSTR); 3959 HANDLE LoadImageA(HINSTANCE, LPCSTR, UINT, int, int, UINT); 3960 HANDLE LoadImageW(HINSTANCE, LPCWSTR, UINT, int, int, UINT); 3961 HKL LoadKeyboardLayoutA(LPCSTR, UINT); 3962 HKL LoadKeyboardLayoutW(LPCWSTR, UINT); 3963 HMENU LoadMenuA(HINSTANCE, LPCSTR); 3964 HMENU LoadMenuIndirectA(const(MENUTEMPLATE)*); 3965 HMENU LoadMenuIndirectW(const(MENUTEMPLATE)*); 3966 HMENU LoadMenuW(HINSTANCE, LPCWSTR); 3967 int LoadStringA(HINSTANCE, UINT, LPSTR, int); 3968 int LoadStringW(HINSTANCE, UINT, LPWSTR, int); 3969 BOOL LockWindowUpdate(HWND); 3970 int LookupIconIdFromDirectory(PBYTE, BOOL); 3971 int LookupIconIdFromDirectoryEx(PBYTE, BOOL, int, int, UINT); 3972 BOOL MapDialogRect(HWND, LPRECT); 3973 UINT MapVirtualKeyA(UINT, UINT); 3974 UINT MapVirtualKeyExA(UINT, UINT, HKL); 3975 UINT MapVirtualKeyExW(UINT, UINT, HKL); 3976 UINT MapVirtualKeyW(UINT, UINT); 3977 int MapWindowPoints(HWND, HWND, LPPOINT, UINT); 3978 int MenuItemFromPoint(HWND, HMENU, POINT); 3979 BOOL MessageBeep(UINT); 3980 int MessageBoxA(HWND, LPCSTR, LPCSTR, UINT); 3981 int MessageBoxW(HWND, LPCWSTR, LPCWSTR, UINT); 3982 int MessageBoxExA(HWND, LPCSTR, LPCSTR, UINT, WORD); 3983 int MessageBoxExW(HWND, LPCWSTR, LPCWSTR, UINT, WORD); 3984 int MessageBoxIndirectA(const(MSGBOXPARAMSA)*); 3985 int MessageBoxIndirectW(const(MSGBOXPARAMSW)*); 3986 BOOL ModifyMenuA(HMENU, UINT, UINT, UINT_PTR, LPCSTR); 3987 BOOL ModifyMenuW(HMENU, UINT, UINT, UINT_PTR, LPCWSTR); 3988 void mouse_event(DWORD, DWORD, DWORD, DWORD, ULONG_PTR); 3989 BOOL MoveWindow(HWND, int, int, int, int, BOOL); 3990 DWORD MsgWaitForMultipleObjects(DWORD, const(HANDLE)*, BOOL, DWORD, DWORD); 3991 DWORD MsgWaitForMultipleObjectsEx(DWORD, const(HANDLE)*, DWORD, DWORD, DWORD); 3992 DWORD OemKeyScan(WORD); 3993 BOOL OemToCharA(LPCSTR, LPSTR); 3994 BOOL OemToCharBuffA(LPCSTR, LPSTR, DWORD); 3995 BOOL OemToCharBuffW(LPCSTR, LPWSTR, DWORD); 3996 BOOL OemToCharW(LPCSTR, LPWSTR); 3997 BOOL OffsetRect(LPRECT, int, int); 3998 BOOL OpenClipboard(HWND); 3999 HDESK OpenDesktopA(LPSTR, DWORD, BOOL, DWORD); 4000 HDESK OpenDesktopW(LPWSTR, DWORD, BOOL, DWORD); 4001 BOOL OpenIcon(HWND); 4002 HDESK OpenInputDesktop(DWORD, BOOL, DWORD); 4003 HWINSTA OpenWindowStationA(LPSTR, BOOL, DWORD); 4004 HWINSTA OpenWindowStationW(LPWSTR, BOOL, DWORD); 4005 BOOL PaintDesktop(HDC); 4006 BOOL PeekMessageA(LPMSG, HWND, UINT, UINT, UINT); 4007 BOOL PeekMessageW(LPMSG, HWND, UINT, UINT, UINT); 4008 BOOL PostMessageA(HWND, UINT, WPARAM, LPARAM); 4009 BOOL PostMessageW(HWND, UINT, WPARAM, LPARAM); 4010 void PostQuitMessage(int); 4011 BOOL PostThreadMessageA(DWORD, UINT, WPARAM, LPARAM); 4012 BOOL PostThreadMessageW(DWORD, UINT, WPARAM, LPARAM); 4013 BOOL PtInRect(LPCRECT, POINT); 4014 HWND RealChildWindowFromPoint(HWND, POINT); 4015 UINT RealGetWindowClassA(HWND, LPSTR, UINT); 4016 UINT RealGetWindowClassW(HWND, LPWSTR, UINT); 4017 BOOL RedrawWindow(HWND, LPCRECT, HRGN, UINT); 4018 ATOM RegisterClassA(const(WNDCLASSA)*); 4019 ATOM RegisterClassW(const(WNDCLASSW)*); 4020 ATOM RegisterClassExA(const(WNDCLASSEXA)*); 4021 ATOM RegisterClassExW(const(WNDCLASSEXW)*); 4022 UINT RegisterClipboardFormatA(LPCSTR); 4023 UINT RegisterClipboardFormatW(LPCWSTR); 4024 BOOL RegisterHotKey(HWND, int, UINT, UINT); 4025 UINT RegisterWindowMessageA(LPCSTR); 4026 UINT RegisterWindowMessageW(LPCWSTR); 4027 BOOL ReleaseCapture(); 4028 int ReleaseDC(HWND, HDC); 4029 BOOL RemoveMenu(HMENU, UINT, UINT); 4030 HANDLE RemovePropA(HWND, LPCSTR); 4031 HANDLE RemovePropW(HWND, LPCWSTR); 4032 BOOL ReplyMessage(LRESULT); 4033 BOOL ScreenToClient(HWND, LPPOINT); 4034 BOOL ScrollDC(HDC, int, int, LPCRECT, LPCRECT, HRGN, LPRECT); 4035 BOOL ScrollWindow(HWND, int, int, LPCRECT, LPCRECT); 4036 int ScrollWindowEx(HWND, int, int, LPCRECT, LPCRECT, HRGN, LPRECT, UINT); 4037 LONG SendDlgItemMessageA(HWND, int, UINT, WPARAM, LPARAM); 4038 LONG SendDlgItemMessageW(HWND, int, UINT, WPARAM, LPARAM); 4039 LRESULT SendMessageA(HWND, UINT, WPARAM, LPARAM); 4040 BOOL SendMessageCallbackA(HWND, UINT, WPARAM, LPARAM, SENDASYNCPROC, ULONG_PTR); 4041 BOOL SendMessageCallbackW(HWND, UINT, WPARAM, LPARAM, SENDASYNCPROC, ULONG_PTR); 4042 LRESULT SendMessageTimeoutA(HWND, UINT, WPARAM, LPARAM, UINT, UINT, PDWORD); 4043 LRESULT SendMessageTimeoutW(HWND, UINT, WPARAM, LPARAM, UINT, UINT, PDWORD); 4044 LRESULT SendMessageW(HWND, UINT, WPARAM, LPARAM); 4045 BOOL SendNotifyMessageA(HWND, UINT, WPARAM, LPARAM); 4046 BOOL SendNotifyMessageW(HWND, UINT, WPARAM, LPARAM); 4047 HWND SetActiveWindow(HWND); 4048 HWND SetCapture(HWND hWnd); 4049 BOOL SetCaretBlinkTime(UINT); 4050 BOOL SetCaretPos(int, int); 4051 DWORD SetClassLongA(HWND, int, LONG); 4052 DWORD SetClassLongW(HWND, int, LONG); 4053 WORD SetClassWord(HWND, int, WORD); 4054 HANDLE SetClipboardData(UINT, HANDLE); 4055 HWND SetClipboardViewer(HWND); 4056 HCURSOR SetCursor(HCURSOR); 4057 BOOL SetCursorPos(int, int); 4058 void SetDebugErrorLevel(DWORD); 4059 BOOL SetDlgItemInt(HWND, int, UINT, BOOL); 4060 BOOL SetDlgItemTextA(HWND, int, LPCSTR); 4061 BOOL SetDlgItemTextW(HWND, int, LPCWSTR); 4062 BOOL SetDoubleClickTime(UINT); 4063 HWND SetFocus(HWND); 4064 BOOL SetForegroundWindow(HWND); 4065 BOOL SetKeyboardState(PBYTE); 4066 BOOL SetMenu(HWND, HMENU); 4067 BOOL SetMenuContextHelpId(HMENU, DWORD); 4068 BOOL SetMenuDefaultItem(HMENU, UINT, UINT); 4069 BOOL SetMenuInfo(HMENU, LPCMENUINFO); 4070 BOOL SetMenuItemBitmaps(HMENU, UINT, UINT, HBITMAP, HBITMAP); 4071 BOOL SetMenuItemInfoA(HMENU, UINT, BOOL, LPCMENUITEMINFOA); 4072 BOOL SetMenuItemInfoW(HMENU, UINT, BOOL, LPCMENUITEMINFOW); 4073 LPARAM SetMessageExtraInfo(LPARAM); 4074 BOOL SetMessageQueue(int); 4075 HWND SetParent(HWND, HWND); 4076 BOOL SetProcessWindowStation(HWINSTA); 4077 BOOL SetPropA(HWND, LPCSTR, HANDLE); 4078 BOOL SetPropW(HWND, LPCWSTR, HANDLE); 4079 BOOL SetRect(LPRECT, int, int, int, int); 4080 BOOL SetRectEmpty(LPRECT); 4081 int SetScrollInfo(HWND, int, LPCSCROLLINFO, BOOL); 4082 int SetScrollPos(HWND, int, int, BOOL); 4083 BOOL SetScrollRange(HWND, int, int, int, BOOL); 4084 BOOL SetSysColors(int, const(INT)*, const(COLORREF)*); 4085 BOOL SetSystemCursor(HCURSOR, DWORD); 4086 BOOL SetThreadDesktop(HDESK); 4087 UINT_PTR SetTimer(HWND, UINT_PTR, UINT, TIMERPROC); 4088 BOOL SetUserObjectInformationA(HANDLE, int, PVOID, DWORD); 4089 BOOL SetUserObjectInformationW(HANDLE, int, PVOID, DWORD); 4090 BOOL SetUserObjectSecurity(HANDLE, PSECURITY_INFORMATION, PSECURITY_DESCRIPTOR); 4091 BOOL SetWindowContextHelpId(HWND, DWORD); 4092 LONG SetWindowLongA(HWND, int, LONG); 4093 LONG SetWindowLongW(HWND, int, LONG); 4094 BOOL SetWindowPlacement(HWND hWnd, const(WINDOWPLACEMENT)*); 4095 BOOL SetWindowPos(HWND, HWND, int, int, int, int, UINT); 4096 int SetWindowRgn(HWND, HRGN, BOOL); 4097 HHOOK SetWindowsHookA(int, HOOKPROC); 4098 HHOOK SetWindowsHookW(int, HOOKPROC); 4099 HHOOK SetWindowsHookExA(int, HOOKPROC, HINSTANCE, DWORD); 4100 HHOOK SetWindowsHookExW(int, HOOKPROC, HINSTANCE, DWORD); 4101 BOOL SetWindowTextA(HWND, LPCSTR); 4102 BOOL SetWindowTextW(HWND, LPCWSTR); 4103 WORD SetWindowWord(HWND, int, WORD); 4104 BOOL ShowCaret(HWND); 4105 int ShowCursor(BOOL); 4106 BOOL ShowOwnedPopups(HWND, BOOL); 4107 BOOL ShowScrollBar(HWND, int, BOOL); 4108 BOOL ShowWindow(HWND, int); 4109 BOOL ShowWindowAsync(HWND, int); 4110 BOOL SubtractRect(LPRECT, LPCRECT, LPCRECT); 4111 BOOL SwapMouseButton(BOOL); 4112 BOOL SwitchDesktop(HDESK); 4113 BOOL SystemParametersInfoA(UINT, UINT, PVOID, UINT); 4114 BOOL SystemParametersInfoW(UINT, UINT, PVOID, UINT); 4115 LONG TabbedTextOutA(HDC, int, int, LPCSTR, int, int, LPINT, int); 4116 LONG TabbedTextOutW(HDC, int, int, LPCWSTR, int, int, LPINT, int); 4117 WORD TileWindows(HWND, UINT, LPCRECT, UINT, const(HWND)*); 4118 int ToAscii(UINT, UINT, PBYTE, LPWORD, UINT); 4119 int ToAsciiEx(UINT, UINT, PBYTE, LPWORD, UINT, HKL); 4120 int ToUnicode(UINT, UINT, PBYTE, LPWSTR, int, UINT); 4121 int ToUnicodeEx(UINT, UINT, PBYTE, LPWSTR, int, UINT, HKL); 4122 BOOL TrackMouseEvent(LPTRACKMOUSEEVENT); 4123 BOOL TrackPopupMenu(HMENU, UINT, int, int, int, HWND, LPCRECT); 4124 BOOL TrackPopupMenuEx(HMENU, UINT, int, int, HWND, LPTPMPARAMS); 4125 int TranslateAcceleratorA(HWND, HACCEL, LPMSG); 4126 int TranslateAcceleratorW(HWND, HACCEL, LPMSG); 4127 BOOL TranslateMDISysAccel(HWND, LPMSG); 4128 BOOL TranslateMessage(const(MSG)*); 4129 BOOL UnhookWindowsHook(int, HOOKPROC); 4130 BOOL UnhookWindowsHookEx(HHOOK); 4131 BOOL UnionRect(LPRECT, LPCRECT, LPCRECT); 4132 BOOL UnloadKeyboardLayout(HKL); 4133 BOOL UnregisterClassA(LPCSTR, HINSTANCE); 4134 BOOL UnregisterClassW(LPCWSTR, HINSTANCE); 4135 BOOL UnregisterHotKey(HWND, int); 4136 BOOL UpdateWindow(HWND); 4137 BOOL ValidateRect(HWND, LPCRECT); 4138 BOOL ValidateRgn(HWND, HRGN); 4139 SHORT VkKeyScanA(CHAR); 4140 SHORT VkKeyScanExA(CHAR, HKL); 4141 SHORT VkKeyScanExW(WCHAR, HKL); 4142 SHORT VkKeyScanW(WCHAR); 4143 DWORD WaitForInputIdle(HANDLE, DWORD); 4144 BOOL WaitMessage(); 4145 HWND WindowFromDC(HDC hDC); 4146 HWND WindowFromPoint(POINT); 4147 UINT WinExec(LPCSTR, UINT); 4148 BOOL WinHelpA(HWND, LPCSTR, UINT, ULONG_PTR); 4149 BOOL WinHelpW(HWND, LPCWSTR, UINT, ULONG_PTR); 4150 4151 extern (C) { 4152 int wsprintfA(LPSTR, LPCSTR, ...); 4153 int wsprintfW(LPWSTR, LPCWSTR, ...); 4154 } 4155 4156 4157 // These shouldn't be necessary for D. 4158 alias char* va_list_; 4159 int wvsprintfA(LPSTR, LPCSTR, va_list_ arglist); 4160 int wvsprintfW(LPWSTR, LPCWSTR, va_list_ arglist); 4161 4162 enum : DWORD { 4163 MONITOR_DEFAULTTONULL, 4164 MONITOR_DEFAULTTOPRIMARY, 4165 MONITOR_DEFAULTTONEAREST // = 2 4166 } 4167 enum MONITORINFOF_PRIMARY = 1; 4168 4169 enum EDS_RAWMODE = 0x00000002; 4170 4171 enum { 4172 ISMEX_NOSEND = 0, 4173 ISMEX_SEND = 1, 4174 ISMEX_NOTIFY = 2, 4175 ISMEX_CALLBACK = 4, 4176 ISMEX_REPLIED = 8 4177 } 4178 4179 struct TITLEBARINFO { 4180 DWORD cbSize = TITLEBARINFO.sizeof; 4181 RECT rcTitleBar; 4182 DWORD[CCHILDREN_TITLEBAR+1] rgstate; 4183 } 4184 alias TITLEBARINFO* PTITLEBARINFO, LPTITLEBARINFO; 4185 4186 static if (_WIN32_WINNT >= 0x501) { // *** correct? 4187 struct FLASHWINFO { 4188 UINT cbSize = this.sizeof; 4189 HWND hwnd; 4190 DWORD dwFlags; 4191 UINT uCount; 4192 DWORD dwTimeout; 4193 } 4194 alias FLASHWINFO* PFLASHWINFO; 4195 } 4196 4197 enum DWORD ASFW_ANY = -1; 4198 enum : UINT { 4199 LSFW_LOCK = 1, 4200 LSFW_UNLOCK 4201 } 4202 enum { 4203 GMMP_USE_DISPLAY_POINTS = 1, 4204 GMMP_USE_HIGH_RESOLUTION_POINTS 4205 } 4206 4207 struct MOUSEMOVEPOINT { 4208 int x; 4209 int y; 4210 DWORD time; 4211 ULONG_PTR dwExtraInfo; 4212 } 4213 alias MOUSEMOVEPOINT* PMOUSEMOVEPOINT, LPMOUSEMOVEPOINT; 4214 4215 enum { 4216 MIM_MAXHEIGHT = 1, 4217 MIM_BACKGROUND = 2, 4218 MIM_HELPID = 4, 4219 MIM_MENUDATA = 8, 4220 MIM_STYLE = 16, 4221 MIM_APPLYTOSUBMENUS = 0x80000000L 4222 } 4223 4224 enum { 4225 MNS_NOCHECK = 0x80000000, 4226 MNS_MODELESS = 0x40000000, 4227 MNS_DRAGDROP = 0x20000000, 4228 MNS_AUTODISMISS = 0x10000000, 4229 MNS_NOTIFYBYPOS = 0x08000000, 4230 MNS_CHECKORBMP = 0x04000000 4231 } 4232 4233 enum { 4234 PM_QS_INPUT = (QS_INPUT << 16), 4235 PM_QS_POSTMESSAGE = ((QS_POSTMESSAGE | QS_HOTKEY | QS_TIMER) << 16), 4236 PM_QS_PAINT = (QS_PAINT << 16), 4237 PM_QS_SENDMESSAGE = (QS_SENDMESSAGE << 16) 4238 } 4239 /* 4240 #define WM_GETOBJECT 0x003D 4241 #define WM_CHANGEUISTATE 0x0127 4242 #define WM_UPDATEUISTATE 0x0128 4243 #define WM_QUERYUISTATE 0x0129 4244 #define WM_UNINITMENUPOPUP 0x0125 4245 #define WM_MENURBUTTONUP 290 4246 #define WM_MENUCOMMAND 0x0126 4247 #define WM_MENUGETOBJECT 0x0124 4248 #define WM_MENUDRAG 0x0123 4249 #define WM_APPCOMMAND 0x0319 4250 #define WM_NCXBUTTONDOWN 171 4251 #define WM_NCXBUTTONUP 172 4252 #define WM_NCXBUTTONDBLCLK 173 4253 #define WM_NCMOUSEHOVER 0x02A0 4254 #define WM_NCMOUSELEAVE 0x02A2*/ 4255 4256 enum { 4257 FLASHW_STOP = 0, 4258 FLASHW_CAPTION = 0x01, 4259 FLASHW_TRAY = 0x02, 4260 FLASHW_ALL = 0x03, 4261 FLASHW_TIMER = 0x04, 4262 FLASHW_TIMERNOFG = 0x0C 4263 } 4264 4265 enum CHILDID_SELF = 0; 4266 4267 enum { 4268 OBJID_WINDOW = 0x00000000, 4269 OBJID_SOUND = 0xFFFFFFF5, 4270 OBJID_ALERT = 0xFFFFFFF6, 4271 OBJID_CURSOR = 0xFFFFFFF7, 4272 OBJID_CARET = 0xFFFFFFF8, 4273 OBJID_SIZEGRIP = 0xFFFFFFF9, 4274 OBJID_HSCROLL = 0xFFFFFFFA, 4275 OBJID_VSCROLL = 0xFFFFFFFB, 4276 OBJID_CLIENT = 0xFFFFFFFC, 4277 OBJID_MENU = 0xFFFFFFFD, 4278 OBJID_TITLEBAR = 0xFFFFFFFE, 4279 OBJID_SYSMENU = 0xFFFFFFFF 4280 } 4281 4282 enum { 4283 GUI_CARETBLINKING = 0x0001, 4284 GUI_INMOVESIZE = 0x0002, 4285 GUI_INMENUMODE = 0x0004, 4286 GUI_SYSTEMMENUMODE = 0x0008, 4287 GUI_POPUPMENUMODE = 0x0010 4288 } 4289 static if (_WIN32_WINNT >= 0x501) { 4290 enum GUI_16BITTASK = 0x0020; 4291 } 4292 4293 enum { 4294 WINEVENT_OUTOFCONTEXT = 0x00, 4295 WINEVENT_SKIPOWNTHREAD = 0x01, 4296 WINEVENT_SKIPOWNPROCESS = 0x02, 4297 WINEVENT_INCONTEXT = 0x04 4298 } 4299 4300 enum { 4301 AW_HOR_POSITIVE = 0x00000001, 4302 AW_HOR_NEGATIVE = 0x00000002, 4303 AW_VER_POSITIVE = 0x00000004, 4304 AW_VER_NEGATIVE = 0x00000008, 4305 AW_CENTER = 0x00000010, 4306 AW_HIDE = 0x00010000, 4307 AW_ACTIVATE = 0x00020000, 4308 AW_SLIDE = 0x00040000, 4309 AW_BLEND = 0x00080000 4310 } 4311 4312 enum { 4313 DEVICE_NOTIFY_WINDOW_HANDLE = 0x00000000, 4314 DEVICE_NOTIFY_SERVICE_HANDLE = 0x00000001 4315 } 4316 4317 static if (_WIN32_WINNT >= 0x501) { 4318 enum DEVICE_NOTIFY_ALL_INTERFACE_CLASSES = 0x00000004; 4319 } 4320 4321 enum : DWORD { 4322 EVENT_MIN = 0x00000001, 4323 EVENT_SYSTEM_SOUND = 0x00000001, 4324 EVENT_SYSTEM_ALERT, 4325 EVENT_SYSTEM_FOREGROUND, 4326 EVENT_SYSTEM_MENUSTART, 4327 EVENT_SYSTEM_MENUEND, 4328 EVENT_SYSTEM_MENUPOPUPSTART, 4329 EVENT_SYSTEM_MENUPOPUPEND, 4330 EVENT_SYSTEM_CAPTURESTART, 4331 EVENT_SYSTEM_CAPTUREEND, 4332 EVENT_SYSTEM_MOVESIZESTART, 4333 EVENT_SYSTEM_MOVESIZEEND, 4334 EVENT_SYSTEM_CONTEXTHELPSTART, 4335 EVENT_SYSTEM_CONTEXTHELPEND, 4336 EVENT_SYSTEM_DRAGDROPSTART, 4337 EVENT_SYSTEM_DRAGDROPEND, 4338 EVENT_SYSTEM_DIALOGSTART, 4339 EVENT_SYSTEM_DIALOGEND, 4340 EVENT_SYSTEM_SCROLLINGSTART, 4341 EVENT_SYSTEM_SCROLLINGEND, 4342 EVENT_SYSTEM_SWITCHSTART, 4343 EVENT_SYSTEM_SWITCHEND, 4344 EVENT_SYSTEM_MINIMIZESTART, 4345 EVENT_SYSTEM_MINIMIZEEND, // = 0x00000017 4346 EVENT_OBJECT_CREATE = 0x00008000, 4347 EVENT_OBJECT_DESTROY, 4348 EVENT_OBJECT_SHOW, 4349 EVENT_OBJECT_HIDE, 4350 EVENT_OBJECT_REORDER, 4351 EVENT_OBJECT_FOCUS, 4352 EVENT_OBJECT_SELECTION, 4353 EVENT_OBJECT_SELECTIONADD, 4354 EVENT_OBJECT_SELECTIONREMOVE, 4355 EVENT_OBJECT_SELECTIONWITHIN, 4356 EVENT_OBJECT_STATECHANGE, 4357 EVENT_OBJECT_LOCATIONCHANGE, 4358 EVENT_OBJECT_NAMECHANGE, 4359 EVENT_OBJECT_DESCRIPTIONCHANGE, 4360 EVENT_OBJECT_VALUECHANGE, 4361 EVENT_OBJECT_PARENTCHANGE, 4362 EVENT_OBJECT_HELPCHANGE, 4363 EVENT_OBJECT_DEFACTIONCHANGE, 4364 EVENT_OBJECT_ACCELERATORCHANGE, // = 0x00008012 4365 EVENT_MAX = 0x7FFFFFFF 4366 } 4367 4368 static if (_WIN32_WINNT >= 0x501) { 4369 enum : DWORD { 4370 EVENT_CONSOLE_CARET = 0x00004000, 4371 EVENT_CONSOLE_UPDATE_REGION, 4372 EVENT_CONSOLE_UPDATE_SIMPLE, 4373 EVENT_CONSOLE_UPDATE_SCROLL, 4374 EVENT_CONSOLE_LAYOUT, 4375 EVENT_CONSOLE_START_APPLICATION, 4376 EVENT_CONSOLE_END_APPLICATION, // = 0x00004007 4377 } 4378 4379 enum : LONG { 4380 CONSOLE_CARET_SELECTION = 1, 4381 CONSOLE_CARET_VISIBLE // = 2 4382 } 4383 enum LONG CONSOLE_APPLICATION_16BIT = 1; 4384 } 4385 4386 enum { 4387 LWA_COLORKEY = 1, 4388 LWA_ALPHA 4389 } 4390 enum { 4391 ULW_COLORKEY = 1, 4392 ULW_ALPHA = 2, 4393 ULW_OPAQUE = 4 4394 } 4395 enum { 4396 GR_GDIOBJECTS, 4397 GR_USEROBJECTS 4398 } 4399 4400 enum { 4401 XBUTTON1 = 1, 4402 XBUTTON2 4403 } 4404 4405 struct GUITHREADINFO { 4406 DWORD cbSize = this.sizeof; 4407 DWORD flags; 4408 HWND hwndActive; 4409 HWND hwndFocus; 4410 HWND hwndCapture; 4411 HWND hwndMenuOwner; 4412 HWND hwndMoveSize; 4413 HWND hwndCaret; 4414 RECT rcCaret; 4415 } 4416 alias GUITHREADINFO* PGUITHREADINFO, LPGUITHREADINFO; 4417 extern (Windows) { 4418 alias void function(HWINEVENTHOOK, DWORD, HWND, LONG, LONG, DWORD, DWORD) WINEVENTPROC; 4419 } 4420 // *** line 4680 of MinGW 4.0 4421 int BroadcastSystemMessageA(DWORD, LPDWORD, UINT, WPARAM, LPARAM); 4422 int BroadcastSystemMessageW(DWORD, LPDWORD, UINT, WPARAM, LPARAM); 4423 4424 UINT SendInput(UINT, LPINPUT, int); 4425 BOOL EnumDisplayMonitors(HDC, LPCRECT, MONITORENUMPROC, LPARAM); 4426 BOOL GetMonitorInfoA(HMONITOR, LPMONITORINFO); 4427 extern(D) BOOL GetMonitorInfoA(HMONITOR m, LPMONITORINFOEXA mi) { return GetMonitorInfoA(m, cast(LPMONITORINFO)mi); } 4428 BOOL GetMonitorInfoW(HMONITOR, LPMONITORINFO); 4429 extern(D) BOOL GetMonitorInfoW(HMONITOR m, LPMONITORINFOEXW mi) { return GetMonitorInfoW(m, cast(LPMONITORINFO)mi); } 4430 HMONITOR MonitorFromPoint(POINT, DWORD); 4431 HMONITOR MonitorFromRect(LPCRECT, DWORD); 4432 HMONITOR MonitorFromWindow(HWND, DWORD); 4433 BOOL AllowSetForegroundWindow(DWORD); 4434 BOOL AnimateWindow(HWND, DWORD, DWORD); 4435 BOOL EndTask(HWND, BOOL, BOOL); 4436 BOOL EnumDisplaySettingsExA(LPCSTR, DWORD, LPDEVMODEA, DWORD); 4437 BOOL EnumDisplaySettingsExW(LPCWSTR, DWORD, LPDEVMODEW, DWORD); 4438 DWORD GetClipboardSequenceNumber(); 4439 DWORD GetGuiResources(HANDLE, DWORD); 4440 BOOL GetGUIThreadInfo(DWORD, LPGUITHREADINFO); 4441 4442 int GetMouseMovePointsEx(UINT, LPMOUSEMOVEPOINT, LPMOUSEMOVEPOINT, int, DWORD); 4443 BOOL GetProcessDefaultLayout(DWORD*); 4444 HWND GetShellWindow(); 4445 BOOL IsHungAppWindow(HWND); 4446 DWORD InSendMessageEx(LPVOID); 4447 BOOL LockSetForegroundWindow(UINT); 4448 BOOL LockWorkStation(); 4449 void NotifyWinEvent(DWORD, HWND, LONG, LONG); 4450 HDEVNOTIFY RegisterDeviceNotificationA(HANDLE, LPVOID, DWORD); 4451 HDEVNOTIFY RegisterDeviceNotificationW(HANDLE, LPVOID, DWORD); 4452 BOOL SetProcessDefaultLayout(DWORD); 4453 HWINEVENTHOOK SetWinEventHook(UINT, UINT, HMODULE, WINEVENTPROC, DWORD, DWORD, UINT); 4454 void SwitchToThisWindow(HWND, BOOL); 4455 BOOL SetLayeredWindowAttributes(HWND, COLORREF, BYTE, DWORD); 4456 BOOL UpdateLayeredWindow(HWND, HDC, POINT*, SIZE*, HDC, POINT*, COLORREF, BLENDFUNCTION*, DWORD); 4457 BOOL UserHandleGrantAccess(HANDLE, HANDLE, BOOL); 4458 BOOL UnhookWinEvent(HWINEVENTHOOK); 4459 BOOL UnregisterDeviceNotification(HANDLE); 4460 4461 static if (_WIN32_WINNT >= 0x501) { 4462 int BroadcastSystemMessageExA(DWORD, LPDWORD, UINT, WPARAM, LPARAM, PBSMINFO); 4463 int BroadcastSystemMessageExW(DWORD, LPDWORD, UINT, WPARAM, LPARAM, PBSMINFO); 4464 LRESULT DefRawInputProc(PRAWINPUT*, INT, UINT); 4465 BOOL FlashWindowEx(PFLASHWINFO); 4466 BOOL GetLayeredWindowAttributes(HWND, COLORREF*, BYTE*, DWORD*); 4467 UINT GetRawInputBuffer(PRAWINPUT, PUINT, UINT); 4468 UINT GetRawInputData(HRAWINPUT, UINT, LPVOID, PUINT, UINT); 4469 UINT GetRawInputDeviceInfoA(HANDLE, UINT, LPVOID, PUINT); 4470 UINT GetRawInputDeviceInfoW(HANDLE, UINT, LPVOID, PUINT); 4471 UINT GetRawInputDeviceList(PRAWINPUTDEVICELIST, PUINT, UINT); 4472 UINT GetRegisteredRawInputDevices(PRAWINPUTDEVICE, PUINT, UINT); 4473 BOOL IsGUIThread(BOOL); 4474 BOOL IsWinEventHookInstalled(DWORD); 4475 BOOL PrintWindow(HWND, HDC, UINT); 4476 BOOL RegisterRawInputDevices(PCRAWINPUTDEVICE, UINT, UINT); 4477 } 4478 4479 version (Win64) { 4480 ULONG_PTR GetClassLongPtrA(HWND, int); 4481 ULONG_PTR GetClassLongPtrW(HWND, int); 4482 ULONG_PTR SetClassLongPtrA(HWND, int, LONG_PTR); 4483 ULONG_PTR SetClassLongPtrW(HWND, int, LONG_PTR); 4484 LONG_PTR GetWindowLongPtrA(HWND, int); 4485 LONG_PTR GetWindowLongPtrW(HWND, int); 4486 LONG_PTR SetWindowLongPtrA(HWND, int, LONG_PTR); 4487 LONG_PTR SetWindowLongPtrW(HWND, int, LONG_PTR); 4488 } else { 4489 alias GetClassLongA GetClassLongPtrA; 4490 alias GetClassLongW GetClassLongPtrW; 4491 alias SetClassLongA SetClassLongPtrA; 4492 alias SetClassLongW SetClassLongPtrW; 4493 alias GetWindowLongA GetWindowLongPtrA; 4494 alias GetWindowLongW GetWindowLongPtrW; 4495 alias SetWindowLongA SetWindowLongPtrA; 4496 alias SetWindowLongW SetWindowLongPtrW; 4497 } 4498 4499 4500 // ----- 4501 // Aliases for Unicode or Ansi 4502 version (Unicode) { 4503 alias EDITWORDBREAKPROCW EDITWORDBREAKPROC; 4504 alias PROPENUMPROCW PROPENUMPROC; 4505 alias PROPENUMPROCEXW PROPENUMPROCEX; 4506 alias DESKTOPENUMPROCW DESKTOPENUMPROC; 4507 alias WINSTAENUMPROCW WINSTAENUMPROC; 4508 alias MAKEINTRESOURCEW MAKEINTRESOURCE; 4509 4510 alias WNDCLASSW WNDCLASS; 4511 alias WNDCLASSEXW WNDCLASSEX; 4512 alias MENUITEMINFOW MENUITEMINFO; 4513 alias LPCMENUITEMINFOW LPCMENUITEMINFO; 4514 alias MSGBOXPARAMSW MSGBOXPARAMS; 4515 alias HIGHCONTRASTW HIGHCONTRAST; 4516 alias SERIALKEYSW SERIALKEYS; 4517 alias SOUNDSENTRYW SOUNDSENTRY; 4518 alias CREATESTRUCTW CREATESTRUCT; 4519 alias CBT_CREATEWNDW CBT_CREATEWND; 4520 alias MDICREATESTRUCTW MDICREATESTRUCT; 4521 alias MULTIKEYHELPW MULTIKEYHELP; 4522 alias MONITORINFOEXW MONITORINFOEX; 4523 alias ICONMETRICSW ICONMETRICS; 4524 alias NONCLIENTMETRICSW NONCLIENTMETRICS; 4525 4526 alias AppendMenuW AppendMenu; 4527 alias BroadcastSystemMessageW BroadcastSystemMessage; 4528 static if (_WIN32_WINNT >= 0x501) { 4529 alias BroadcastSystemMessageExW BroadcastSystemMessageEx; 4530 } 4531 alias CallMsgFilterW CallMsgFilter; 4532 alias CallWindowProcW CallWindowProc; 4533 alias ChangeMenuW ChangeMenu; 4534 alias CharLowerW CharLower; 4535 alias CharLowerBuffW CharLowerBuff; 4536 alias CharNextW CharNext; 4537 alias CharNextExW CharNextEx; 4538 alias CharPrevW CharPrev; 4539 alias CharPrevExW CharPrevEx; 4540 alias CharToOemW CharToOem; 4541 alias CharToOemBuffW CharToOemBuff; 4542 alias CharUpperW CharUpper; 4543 alias CharUpperBuffW CharUpperBuff; 4544 alias CopyAcceleratorTableW CopyAcceleratorTable; 4545 alias CreateAcceleratorTableW CreateAcceleratorTable; 4546 alias CreateDialogW CreateDialog; 4547 alias CreateDialogIndirectW CreateDialogIndirect; 4548 alias CreateDialogIndirectParamW CreateDialogIndirectParam; 4549 alias CreateDialogParamW CreateDialogParam; 4550 alias CreateMDIWindowW CreateMDIWindow; 4551 alias CreateWindowW CreateWindow; 4552 alias CreateWindowExW CreateWindowEx; 4553 alias CreateWindowStationW CreateWindowStation; 4554 alias DefDlgProcW DefDlgProc; 4555 alias DefFrameProcW DefFrameProc; 4556 alias DefMDIChildProcW DefMDIChildProc; 4557 alias DefWindowProcW DefWindowProc; 4558 alias DialogBoxW DialogBox; 4559 alias DialogBoxIndirectW DialogBoxIndirect; 4560 alias DialogBoxIndirectParamW DialogBoxIndirectParam; 4561 alias DialogBoxParamW DialogBoxParam; 4562 alias DispatchMessageW DispatchMessage; 4563 alias DlgDirListW DlgDirList; 4564 alias DlgDirListComboBoxW DlgDirListComboBox; 4565 alias DlgDirSelectComboBoxExW DlgDirSelectComboBoxEx; 4566 alias DlgDirSelectExW DlgDirSelectEx; 4567 alias DrawStateW DrawState; 4568 alias DrawTextW DrawText; 4569 alias DrawTextExW DrawTextEx; 4570 alias EnumDesktopsW EnumDesktops; 4571 alias EnumPropsW EnumProps; 4572 alias EnumPropsExW EnumPropsEx; 4573 alias EnumWindowStationsW EnumWindowStations; 4574 alias FindWindowW FindWindow; 4575 alias FindWindowExW FindWindowEx; 4576 alias GetClassInfoW GetClassInfo; 4577 alias GetClassInfoExW GetClassInfoEx; 4578 alias GetClassLongW GetClassLong; 4579 alias GetClassLongPtrW GetClassLongPtr; 4580 alias GetClassNameW GetClassName; 4581 alias GetClipboardFormatNameW GetClipboardFormatName; 4582 alias GetDlgItemTextW GetDlgItemText; 4583 alias GetKeyboardLayoutNameW GetKeyboardLayoutName; 4584 alias GetKeyNameTextW GetKeyNameText; 4585 alias GetMenuItemInfoW GetMenuItemInfo; 4586 alias GetMenuStringW GetMenuString; 4587 alias GetMessageW GetMessage; 4588 alias GetMonitorInfoW GetMonitorInfo; 4589 alias GetPropW GetProp; 4590 static if (_WIN32_WINNT >= 0x501) { 4591 alias GetRawInputDeviceInfoW GetRawInputDeviceInfo; 4592 } 4593 alias GetTabbedTextExtentW GetTabbedTextExtent; 4594 alias GetUserObjectInformationW GetUserObjectInformation; 4595 alias GetWindowLongW GetWindowLong; 4596 alias GetWindowLongPtrW GetWindowLongPtr; 4597 alias GetWindowTextW GetWindowText; 4598 alias GetWindowTextLengthW GetWindowTextLength; 4599 alias GetAltTabInfoW GetAltTabInfo; 4600 alias GetWindowModuleFileNameW GetWindowModuleFileName; 4601 alias GrayStringW GrayString; 4602 alias InsertMenuW InsertMenu; 4603 alias InsertMenuItemW InsertMenuItem; 4604 alias IsCharAlphaW IsCharAlpha; 4605 alias IsCharAlphaNumericW IsCharAlphaNumeric; 4606 alias IsCharLowerW IsCharLower; 4607 alias IsCharUpperW IsCharUpper; 4608 alias IsDialogMessageW IsDialogMessage; 4609 alias LoadAcceleratorsW LoadAccelerators; 4610 alias LoadBitmapW LoadBitmap; 4611 alias LoadCursorW LoadCursor; 4612 alias LoadCursorFromFileW LoadCursorFromFile; 4613 alias LoadIconW LoadIcon; 4614 alias LoadImageW LoadImage; 4615 alias LoadKeyboardLayoutW LoadKeyboardLayout; 4616 alias LoadMenuW LoadMenu; 4617 alias LoadMenuIndirectW LoadMenuIndirect; 4618 alias LoadStringW LoadString; 4619 alias MapVirtualKeyW MapVirtualKey; 4620 alias MapVirtualKeyExW MapVirtualKeyEx; 4621 alias MessageBoxW MessageBox; 4622 alias MessageBoxExW MessageBoxEx; 4623 alias MessageBoxIndirectW MessageBoxIndirect; 4624 alias ModifyMenuW ModifyMenu; 4625 alias OemToCharW OemToChar; 4626 alias OemToCharBuffW OemToCharBuff; 4627 alias OpenDesktopW OpenDesktop; 4628 alias OpenWindowStationW OpenWindowStation; 4629 alias PeekMessageW PeekMessage; 4630 alias PostMessageW PostMessage; 4631 alias PostThreadMessageW PostThreadMessage; 4632 alias RealGetWindowClassW RealGetWindowClass; 4633 alias RegisterClassW RegisterClass; 4634 alias RegisterClassExW RegisterClassEx; 4635 alias RegisterClipboardFormatW RegisterClipboardFormat; 4636 alias RegisterDeviceNotificationW RegisterDeviceNotification; 4637 alias RegisterWindowMessageW RegisterWindowMessage; 4638 alias RemovePropW RemoveProp; 4639 alias SendDlgItemMessageW SendDlgItemMessage; 4640 alias SendMessageW SendMessage; 4641 alias SendMessageCallbackW SendMessageCallback; 4642 alias SendMessageTimeoutW SendMessageTimeout; 4643 alias SendNotifyMessageW SendNotifyMessage; 4644 alias SetClassLongW SetClassLong; 4645 alias SetClassLongPtrW SetClassLongPtr; 4646 alias SetDlgItemTextW SetDlgItemText; 4647 alias SetMenuItemInfoW SetMenuItemInfo; 4648 alias SetPropW SetProp; 4649 alias SetUserObjectInformationW SetUserObjectInformation; 4650 alias SetWindowLongW SetWindowLong; 4651 alias SetWindowLongPtrW SetWindowLongPtr; 4652 alias SetWindowsHookW SetWindowsHook; 4653 alias SetWindowsHookExW SetWindowsHookEx; 4654 alias SetWindowTextW SetWindowText; 4655 alias SystemParametersInfoW SystemParametersInfo; 4656 alias TabbedTextOutW TabbedTextOut; 4657 alias TranslateAcceleratorW TranslateAccelerator; 4658 alias UnregisterClassW UnregisterClass; 4659 alias VkKeyScanW VkKeyScan; 4660 alias VkKeyScanExW VkKeyScanEx; 4661 alias WinHelpW WinHelp; 4662 alias wsprintfW wsprintf; 4663 alias wvsprintfW wvsprintf; 4664 4665 alias ChangeDisplaySettingsW ChangeDisplaySettings; 4666 alias ChangeDisplaySettingsExW ChangeDisplaySettingsEx; 4667 alias CreateDesktopW CreateDesktop; 4668 alias EnumDisplaySettingsW EnumDisplaySettings; 4669 alias EnumDisplaySettingsExW EnumDisplaySettingsEx; 4670 alias EnumDisplayDevicesW EnumDisplayDevices; 4671 4672 } else { // ANSI 4673 4674 alias EDITWORDBREAKPROCA EDITWORDBREAKPROC; 4675 alias PROPENUMPROCA PROPENUMPROC; 4676 alias PROPENUMPROCEXA PROPENUMPROCEX; 4677 alias DESKTOPENUMPROCA DESKTOPENUMPROC; 4678 alias WINSTAENUMPROCA WINSTAENUMPROC; 4679 alias MAKEINTRESOURCEA MAKEINTRESOURCE; 4680 4681 alias WNDCLASSA WNDCLASS; 4682 alias WNDCLASSEXA WNDCLASSEX; 4683 alias MENUITEMINFOA MENUITEMINFO; 4684 alias LPCMENUITEMINFOA LPCMENUITEMINFO; 4685 alias MSGBOXPARAMSA MSGBOXPARAMS; 4686 alias HIGHCONTRASTA HIGHCONTRAST; 4687 alias SERIALKEYSA SERIALKEYS; 4688 alias SOUNDSENTRYA SOUNDSENTRY; 4689 alias CREATESTRUCTA CREATESTRUCT; 4690 alias CBT_CREATEWNDA CBT_CREATEWND; 4691 alias MDICREATESTRUCTA MDICREATESTRUCT; 4692 alias MULTIKEYHELPA MULTIKEYHELP; 4693 alias MONITORINFOEXA MONITORINFOEX; 4694 alias ICONMETRICSA ICONMETRICS; 4695 alias NONCLIENTMETRICSA NONCLIENTMETRICS; 4696 4697 alias AppendMenuA AppendMenu; 4698 alias BroadcastSystemMessageA BroadcastSystemMessage; 4699 static if (_WIN32_WINNT >= 0x501) { 4700 alias BroadcastSystemMessageExA BroadcastSystemMessageEx; 4701 } 4702 alias CallMsgFilterA CallMsgFilter; 4703 alias CallWindowProcA CallWindowProc; 4704 alias ChangeMenuA ChangeMenu; 4705 alias CharLowerA CharLower; 4706 alias CharLowerBuffA CharLowerBuff; 4707 alias CharNextA CharNext; 4708 alias CharNextExA CharNextEx; 4709 alias CharPrevA CharPrev; 4710 alias CharPrevExA CharPrevEx; 4711 alias CharToOemA CharToOem; 4712 alias CharToOemBuffA CharToOemBuff; 4713 alias CharUpperA CharUpper; 4714 alias CharUpperBuffA CharUpperBuff; 4715 alias CopyAcceleratorTableA CopyAcceleratorTable; 4716 alias CreateAcceleratorTableA CreateAcceleratorTable; 4717 alias CreateDialogA CreateDialog; 4718 alias CreateDialogIndirectA CreateDialogIndirect; 4719 alias CreateDialogIndirectParamA CreateDialogIndirectParam; 4720 alias CreateDialogParamA CreateDialogParam; 4721 alias CreateMDIWindowA CreateMDIWindow; 4722 alias CreateWindowA CreateWindow; 4723 alias CreateWindowExA CreateWindowEx; 4724 alias CreateWindowStationA CreateWindowStation; 4725 alias DefDlgProcA DefDlgProc; 4726 alias DefFrameProcA DefFrameProc; 4727 alias DefMDIChildProcA DefMDIChildProc; 4728 alias DefWindowProcA DefWindowProc; 4729 alias DialogBoxA DialogBox; 4730 alias DialogBoxIndirectA DialogBoxIndirect; 4731 alias DialogBoxIndirectParamA DialogBoxIndirectParam; 4732 alias DialogBoxParamA DialogBoxParam; 4733 alias DispatchMessageA DispatchMessage; 4734 alias DlgDirListA DlgDirList; 4735 alias DlgDirListComboBoxA DlgDirListComboBox; 4736 alias DlgDirSelectComboBoxExA DlgDirSelectComboBoxEx; 4737 alias DlgDirSelectExA DlgDirSelectEx; 4738 alias DrawStateA DrawState; 4739 alias DrawTextA DrawText; 4740 alias DrawTextExA DrawTextEx; 4741 alias EnumDesktopsA EnumDesktops; 4742 alias EnumPropsA EnumProps; 4743 alias EnumPropsExA EnumPropsEx; 4744 alias EnumWindowStationsA EnumWindowStations; 4745 alias FindWindowA FindWindow; 4746 alias FindWindowExA FindWindowEx; 4747 alias GetClassInfoA GetClassInfo; 4748 alias GetClassInfoExA GetClassInfoEx; 4749 alias GetClassLongA GetClassLong; 4750 alias GetClassLongPtrA GetClassLongPtr; 4751 alias GetClassNameA GetClassName; 4752 alias GetClipboardFormatNameA GetClipboardFormatName; 4753 alias GetDlgItemTextA GetDlgItemText; 4754 alias GetKeyboardLayoutNameA GetKeyboardLayoutName; 4755 alias GetKeyNameTextA GetKeyNameText; 4756 alias GetMenuItemInfoA GetMenuItemInfo; 4757 alias GetMenuStringA GetMenuString; 4758 alias GetMessageA GetMessage; 4759 alias GetMonitorInfoA GetMonitorInfo; 4760 alias GetPropA GetProp; 4761 static if (_WIN32_WINNT >= 0x501) { 4762 alias GetRawInputDeviceInfoA GetRawInputDeviceInfo; 4763 } 4764 alias GetTabbedTextExtentA GetTabbedTextExtent; 4765 alias GetUserObjectInformationA GetUserObjectInformation; 4766 alias GetWindowLongA GetWindowLong; 4767 alias GetWindowLongPtrA GetWindowLongPtr; 4768 alias GetWindowTextA GetWindowText; 4769 alias GetWindowTextLengthA GetWindowTextLength; 4770 alias GetAltTabInfoA GetAltTabInfo; 4771 alias GetWindowModuleFileNameA GetWindowModuleFileName; 4772 alias GrayStringA GrayString; 4773 alias InsertMenuA InsertMenu; 4774 alias InsertMenuItemA InsertMenuItem; 4775 alias IsCharAlphaA IsCharAlpha; 4776 alias IsCharAlphaNumericA IsCharAlphaNumeric; 4777 alias IsCharLowerA IsCharLower; 4778 alias IsCharUpperA IsCharUpper; 4779 alias IsDialogMessageA IsDialogMessage; 4780 alias LoadAcceleratorsA LoadAccelerators; 4781 alias LoadBitmapA LoadBitmap; 4782 alias LoadCursorA LoadCursor; 4783 alias LoadIconA LoadIcon; 4784 alias LoadCursorFromFileA LoadCursorFromFile; 4785 alias LoadImageA LoadImage; 4786 alias LoadKeyboardLayoutA LoadKeyboardLayout; 4787 alias LoadMenuA LoadMenu; 4788 alias LoadMenuIndirectA LoadMenuIndirect; 4789 alias LoadStringA LoadString; 4790 alias MapVirtualKeyA MapVirtualKey; 4791 alias MapVirtualKeyExA MapVirtualKeyEx; 4792 alias MessageBoxA MessageBox; 4793 alias MessageBoxExA MessageBoxEx; 4794 alias MessageBoxIndirectA MessageBoxIndirect; 4795 alias ModifyMenuA ModifyMenu; 4796 alias OemToCharA OemToChar; 4797 alias OemToCharBuffA OemToCharBuff; 4798 alias OpenDesktopA OpenDesktop; 4799 alias OpenWindowStationA OpenWindowStation; 4800 alias PeekMessageA PeekMessage; 4801 alias PostMessageA PostMessage; 4802 alias PostThreadMessageA PostThreadMessage; 4803 alias RealGetWindowClassA RealGetWindowClass; 4804 alias RegisterClassA RegisterClass; 4805 alias RegisterClassExA RegisterClassEx; 4806 alias RegisterClipboardFormatA RegisterClipboardFormat; 4807 alias RegisterDeviceNotificationA RegisterDeviceNotification; 4808 alias RegisterWindowMessageA RegisterWindowMessage; 4809 alias RemovePropA RemoveProp; 4810 alias SendDlgItemMessageA SendDlgItemMessage; 4811 alias SendMessageA SendMessage; 4812 alias SendMessageCallbackA SendMessageCallback; 4813 alias SendMessageTimeoutA SendMessageTimeout; 4814 alias SendNotifyMessageA SendNotifyMessage; 4815 alias SetClassLongA SetClassLong; 4816 alias SetClassLongPtrA SetClassLongPtr; 4817 alias SetDlgItemTextA SetDlgItemText; 4818 alias SetMenuItemInfoA SetMenuItemInfo; 4819 alias SetPropA SetProp; 4820 alias SetUserObjectInformationA SetUserObjectInformation; 4821 alias SetWindowLongA SetWindowLong; 4822 alias SetWindowLongPtrA SetWindowLongPtr; 4823 alias SetWindowsHookA SetWindowsHook; 4824 alias SetWindowsHookExA SetWindowsHookEx; 4825 alias SetWindowTextA SetWindowText; 4826 alias SystemParametersInfoA SystemParametersInfo; 4827 alias TabbedTextOutA TabbedTextOut; 4828 alias TranslateAcceleratorA TranslateAccelerator; 4829 alias UnregisterClassA UnregisterClass; 4830 alias VkKeyScanA VkKeyScan; 4831 alias VkKeyScanExA VkKeyScanEx; 4832 alias WinHelpA WinHelp; 4833 alias wsprintfA wsprintf; 4834 alias wvsprintfA wvsprintf; 4835 4836 alias ChangeDisplaySettingsA ChangeDisplaySettings; 4837 alias ChangeDisplaySettingsExA ChangeDisplaySettingsEx; 4838 alias CreateDesktopA CreateDesktop; 4839 alias EnumDisplaySettingsA EnumDisplaySettings; 4840 alias EnumDisplaySettingsExA EnumDisplaySettingsEx; 4841 alias EnumDisplayDevicesA EnumDisplayDevices; 4842 } 4843 4844 alias WNDCLASS* LPWNDCLASS, PWNDCLASS; 4845 alias WNDCLASSEX* LPWNDCLASSEX, PWNDCLASSEX; 4846 alias MENUITEMINFO* LPMENUITEMINFO; 4847 alias MSGBOXPARAMS* PMSGBOXPARAMS, LPMSGBOXPARAMS; 4848 alias HIGHCONTRAST* LPHIGHCONTRAST; 4849 alias SERIALKEYS* LPSERIALKEYS; 4850 alias SOUNDSENTRY* LPSOUNDSENTRY; 4851 alias CREATESTRUCT* LPCREATESTRUCT; 4852 alias CBT_CREATEWND* LPCBT_CREATEWND; 4853 alias MDICREATESTRUCT* LPMDICREATESTRUCT; 4854 alias MULTIKEYHELP* PMULTIKEYHELP, LPMULTIKEYHELP; 4855 alias MONITORINFOEX* LPMONITORINFOEX; 4856 alias ICONMETRICS* LPICONMETRICS; 4857 alias NONCLIENTMETRICS* LPNONCLIENTMETRICS; 4858 4859 static if (_WIN32_WINNT >= 0x501) { 4860 enum PW_CLIENTONLY = 0x00000001; 4861 enum RIM_INPUT = 0x00000000; 4862 enum RIM_INPUTSINK = 0x00000001; 4863 enum RIM_TYPEMOUSE = 0x00000000; 4864 enum RIM_TYPEKEYBOARD = 0x00000001; 4865 enum RIM_TYPEHID = 0x00000002; 4866 enum MOUSE_MOVE_RELATIVE = 0x00000000; 4867 enum MOUSE_MOVE_ABSOLUTE = 0x00000001; 4868 enum MOUSE_VIRTUAL_DESKTOP = 0x00000002; 4869 enum MOUSE_ATTRIBUTES_CHANGED = 0x00000004; 4870 enum RI_MOUSE_LEFT_BUTTON_DOWN = 0x0001; 4871 enum RI_MOUSE_LEFT_BUTTON_UP = 0x0002; 4872 enum RI_MOUSE_RIGHT_BUTTON_DOWN = 0x0004; 4873 enum RI_MOUSE_RIGHT_BUTTON_UP = 0x0008; 4874 enum RI_MOUSE_MIDDLE_BUTTON_DOWN = 0x0010; 4875 enum RI_MOUSE_MIDDLE_BUTTON_UP = 0x0020; 4876 enum RI_MOUSE_BUTTON_1_DOWN = RI_MOUSE_LEFT_BUTTON_DOWN; 4877 enum RI_MOUSE_BUTTON_1_UP = RI_MOUSE_LEFT_BUTTON_UP; 4878 enum RI_MOUSE_BUTTON_2_DOWN = RI_MOUSE_RIGHT_BUTTON_DOWN; 4879 enum RI_MOUSE_BUTTON_2_UP = RI_MOUSE_RIGHT_BUTTON_UP; 4880 enum RI_MOUSE_BUTTON_3_DOWN = RI_MOUSE_MIDDLE_BUTTON_DOWN; 4881 enum RI_MOUSE_BUTTON_3_UP = RI_MOUSE_MIDDLE_BUTTON_UP; 4882 enum RI_MOUSE_BUTTON_4_DOWN = 0x0040; 4883 enum RI_MOUSE_BUTTON_4_UP = 0x0080; 4884 enum RI_MOUSE_BUTTON_5_DOWN = 0x0100; 4885 enum RI_MOUSE_BUTTON_5_UP = 0x0200; 4886 enum RI_MOUSE_WHEEL = 0x0400; 4887 enum KEYBOARD_OVERRUN_MAKE_CODE = 0x00ff; 4888 enum RI_KEY_MAKE = 0x0000; 4889 enum RI_KEY_BREAK = 0x0001; 4890 enum RI_KEY_E0 = 0x0002; 4891 enum RI_KEY_E1 = 0x0004; 4892 enum RI_KEY_TERMSRV_SET_LED = 0x0008; 4893 enum RI_KEY_TERMSRV_SHADOW = 0x0010; 4894 4895 enum RID_INPUT = 0x10000003; 4896 enum RID_HEADER = 0x10000005; 4897 4898 enum RIDI_PREPARSEDDATA = 0x20000005; 4899 enum RIDI_DEVICENAME = 0x20000007; 4900 enum RIDI_DEVICEINFO = 0x2000000b; 4901 4902 enum RIDEV_REMOVE = 0x00000001; 4903 enum RIDEV_EXCLUDE = 0x00000010; 4904 enum RIDEV_PAGEONLY = 0x00000020; 4905 enum RIDEV_NOLEGACY = 0x00000030; 4906 enum RIDEV_INPUTSINK = 0x00000100; 4907 enum RIDEV_CAPTUREMOUSE = 0x00000200; 4908 enum RIDEV_NOHOTKEYS = 0x00000200; 4909 enum RIDEV_APPKEYS = 0x00000400; 4910 }