/** * Windows API header module * * Translated from MinGW Windows headers * * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) * Source: $(DRUNTIMESRC core/sys/windows/_winuser.d) */ module core.sys.windows.winuser; version (Windows): @system: version (ANSI) {} else version = Unicode; pragma(lib, "user32"); // Conversion Notes: // The following macros were for win16 only, and are not included in this file: //#define EnumTaskWindows(h, f, p) EnumThreadWindows((DWORD)h, f, p) //#define PostAppMessageA(t, m, w, l) PostThreadMessageA((DWORD)t, m, w, l) //#define PostAppMessageW(t, m, w, l) PostThreadMessageW((DWORD)t, m, w, l) //#define GetSysModalWindow() (NULL) //#define SetSysModalWindow(h) (NULL) //#define GetWindowTask(hWnd) ((HANDLE)GetWindowThreadProcessId(hWnd, NULL)) //#define DefHookProc(c, p, lp, h) CallNextHookEx((HHOOK)*h, c, p, lp) import core.sys.windows.w32api, core.sys.windows.winbase, core.sys.windows.wingdi; import core.sys.windows.windef; // for HMONITOR // FIXME: clean up Windows version support LPTSTR MAKEINTATOM_T()(int i) { return cast(LPTSTR) i; } enum LPTSTR WC_DIALOG = MAKEINTATOM_T(0x8002); enum { FAPPCOMMAND_MOUSE = 0x8000, FAPPCOMMAND_KEY = 0, FAPPCOMMAND_OEM = 0x1000, FAPPCOMMAND_MASK = 0xF000 } enum { MNGO_NOINTERFACE = 0, MNGO_NOERROR, MNGOF_TOPGAP = 1, MNGOF_BOTTOMGAP } enum { FVIRTKEY = 1, FNOINVERT = 2, FSHIFT = 4, FCONTROL = 8, FALT = 16 } enum { ATF_TIMEOUTON = 1, ATF_ONOFFFEEDBACK = 2, ATF_AVAILABLE = 4 // May be obsolete. Not in recent MS docs. } enum { WH_MIN = -1, WH_MSGFILTER = -1, WH_JOURNALRECORD, WH_JOURNALPLAYBACK, WH_KEYBOARD, WH_GETMESSAGE, WH_CALLWNDPROC, WH_CBT, WH_SYSMSGFILTER, WH_MOUSE, WH_HARDWARE, WH_DEBUG, WH_SHELL, WH_FOREGROUNDIDLE, WH_CALLWNDPROCRET, WH_KEYBOARD_LL, WH_MOUSE_LL, // = 14 WH_MAX = 14, WH_MINHOOK = WH_MIN, WH_MAXHOOK = WH_MAX } enum { HC_ACTION = 0, HC_GETNEXT, HC_SKIP, HC_NOREMOVE, // = 3 HC_NOREM = HC_NOREMOVE, HC_SYSMODALON, HC_SYSMODALOFF } enum { HCBT_MOVESIZE = 0, HCBT_MINMAX, HCBT_QS, HCBT_CREATEWND, HCBT_DESTROYWND, HCBT_ACTIVATE, HCBT_CLICKSKIPPED, HCBT_KEYSKIPPED, HCBT_SYSCOMMAND, HCBT_SETFOCUS // = 9 } enum { CF_TEXT = 0x0001, CF_BITMAP, CF_METAFILEPICT, CF_SYLK, CF_DIF, CF_TIFF, CF_OEMTEXT, CF_DIB, CF_PALETTE, CF_PENDATA, CF_RIFF, CF_WAVE, CF_UNICODETEXT, CF_ENHMETAFILE, CF_HDROP, CF_LOCALE, CF_DIBV5, CF_MAX, // = 0x0012 CF_OWNERDISPLAY = 0x0080, CF_DSPTEXT, CF_DSPBITMAP, CF_DSPMETAFILEPICT, // = 0x0083 CF_DSPENHMETAFILE = 0x008E, CF_PRIVATEFIRST = 0x0200, CF_PRIVATELAST = 0x02FF, CF_GDIOBJFIRST = 0x0300, CF_GDIOBJLAST = 0x03FF } enum HKL_PREV = 0; enum HKL_NEXT = 1; enum KLF_ACTIVATE = 1; enum KLF_SUBSTITUTE_OK = 2; enum KLF_UNLOADPREVIOUS = 4; enum KLF_REORDER = 8; enum KLF_REPLACELANG = 16; enum KLF_NOTELLSHELL = 128; enum KLF_SETFORPROCESS = 256; enum KL_NAMELENGTH = 9; enum MF_ENABLED = 0; enum MF_GRAYED = 1; enum MF_DISABLED = 2; enum MF_BITMAP = 4; enum MF_CHECKED = 8; enum MF_MENUBARBREAK = 32; enum MF_MENUBREAK = 64; enum MF_OWNERDRAW = 256; enum MF_POPUP = 16; enum MF_SEPARATOR = 0x800; enum MF_STRING = 0; enum MF_UNCHECKED = 0; enum MF_DEFAULT = 4096; enum MF_SYSMENU = 0x2000; enum MF_HELP = 0x4000; enum MF_END = 128; enum MF_RIGHTJUSTIFY = 0x4000; enum MF_MOUSESELECT = 0x8000; enum MF_INSERT = 0; enum MF_CHANGE = 128; enum MF_APPEND = 256; enum MF_DELETE = 512; enum MF_REMOVE = 4096; enum MF_USECHECKBITMAPS = 512; enum MF_UNHILITE = 0; enum MF_HILITE = 128; // Also defined in dbt.h enum BSM_ALLCOMPONENTS = 0; enum BSM_VXDS = 1; enum BSM_NETDRIVER = 2; enum BSM_INSTALLABLEDRIVERS = 4; enum BSM_APPLICATIONS = 8; enum BSM_ALLDESKTOPS = 16; enum { BSF_QUERY = 0x0001, BSF_IGNORECURRENTTASK = 0x0002, BSF_FLUSHDISK = 0x0004, BSF_NOHANG = 0x0008, BSF_POSTMESSAGE = 0x0010, BSF_FORCEIFHUNG = 0x0020, BSF_NOTIMEOUTIFNOTHUNG = 0x0040, BSF_ALLOWSFW = 0x0080, BSF_SENDNOTIFYMESSAGE = 0x0100 } static if (_WIN32_WINNT >= 0x501) { enum { BSF_RETURNHDESK = 0x0200, BSF_LUID = 0x0400 } } enum BROADCAST_QUERY_DENY = 1112363332; enum DWORD ENUM_CURRENT_SETTINGS = -1; enum DWORD ENUM_REGISTRY_SETTINGS = -2; enum CDS_UPDATEREGISTRY = 1; enum CDS_TEST = 2; enum CDS_FULLSCREEN = 4; enum CDS_GLOBAL = 8; enum CDS_SET_PRIMARY = 16; enum CDS_NORESET = 0x10000000; enum CDS_SETRECT = 0x20000000; enum CDS_RESET = 0x40000000; enum { DISP_CHANGE_BADPARAM = -5, DISP_CHANGE_BADFLAGS, DISP_CHANGE_NOTUPDATED, DISP_CHANGE_BADMODE, DISP_CHANGE_FAILED, DISP_CHANGE_SUCCESSFUL, DISP_CHANGE_RESTART // = 1 } enum BST_UNCHECKED = 0; enum BST_CHECKED = 1; enum BST_INDETERMINATE = 2; enum BST_PUSHED = 4; enum BST_FOCUS = 8; enum MF_BYCOMMAND = 0; enum MF_BYPOSITION = 1024; // [Redefined] MF_UNCHECKED = 0 // [Redefined] MF_HILITE = 128 // [Redefined] MF_UNHILITE = 0 enum CWP_ALL = 0; enum CWP_SKIPINVISIBLE = 1; enum CWP_SKIPDISABLED = 2; enum CWP_SKIPTRANSPARENT = 4; enum IMAGE_BITMAP = 0; enum IMAGE_ICON = 1; enum IMAGE_CURSOR = 2; enum IMAGE_ENHMETAFILE = 3; enum DF_ALLOWOTHERACCOUNTHOOK = 1; enum DESKTOP_READOBJECTS = 1; enum DESKTOP_CREATEWINDOW = 2; enum DESKTOP_CREATEMENU = 4; enum DESKTOP_HOOKCONTROL = 8; enum DESKTOP_JOURNALRECORD = 16; enum DESKTOP_JOURNALPLAYBACK = 32; enum DESKTOP_ENUMERATE = 64; enum DESKTOP_WRITEOBJECTS = 128; enum DESKTOP_SWITCHDESKTOP = 256; enum int CW_USEDEFAULT = 0x80000000; enum { WS_OVERLAPPED = 0, WS_TILED = WS_OVERLAPPED, WS_MAXIMIZEBOX = 0x00010000, WS_MINIMIZEBOX = 0x00020000, WS_TABSTOP = 0x00010000, WS_GROUP = 0x00020000, WS_THICKFRAME = 0x00040000, WS_SIZEBOX = WS_THICKFRAME, WS_SYSMENU = 0x00080000, WS_HSCROLL = 0x00100000, WS_VSCROLL = 0x00200000, WS_DLGFRAME = 0x00400000, WS_BORDER = 0x00800000, WS_CAPTION = 0x00c00000, WS_OVERLAPPEDWINDOW = WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX, WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW, WS_MAXIMIZE = 0x01000000, WS_CLIPCHILDREN = 0x02000000, WS_CLIPSIBLINGS = 0x04000000, WS_DISABLED = 0x08000000, WS_VISIBLE = 0x10000000, WS_MINIMIZE = 0x20000000, WS_ICONIC = WS_MINIMIZE, WS_CHILD = 0x40000000, WS_CHILDWINDOW = 0x40000000, WS_POPUP = 0x80000000, WS_POPUPWINDOW = WS_POPUP|WS_BORDER|WS_SYSMENU, } enum MDIS_ALLCHILDSTYLES = 1; enum BS_3STATE = 5; enum BS_AUTO3STATE = 6; enum BS_AUTOCHECKBOX = 3; enum BS_AUTORADIOBUTTON = 9; enum BS_BITMAP = 128; enum BS_BOTTOM = 0x800; enum BS_CENTER = 0x300; enum BS_CHECKBOX = 2; enum BS_DEFPUSHBUTTON = 1; enum BS_GROUPBOX = 7; enum BS_ICON = 64; enum BS_LEFT = 256; enum BS_LEFTTEXT = 32; enum BS_MULTILINE = 0x2000; enum BS_NOTIFY = 0x4000; enum BS_OWNERDRAW = 0xb; enum BS_PUSHBUTTON = 0; enum BS_PUSHLIKE = 4096; enum BS_RADIOBUTTON = 4; enum BS_RIGHT = 512; enum BS_RIGHTBUTTON = 32; enum BS_TEXT = 0; enum BS_TOP = 0x400; enum BS_USERBUTTON = 8; enum BS_VCENTER = 0xc00; enum BS_FLAT = 0x8000; enum CBS_AUTOHSCROLL = 64; enum CBS_DISABLENOSCROLL = 0x800; enum CBS_DROPDOWN = 2; enum CBS_DROPDOWNLIST = 3; enum CBS_HASSTRINGS = 512; enum CBS_LOWERCASE = 0x4000; enum CBS_NOINTEGRALHEIGHT = 0x400; enum CBS_OEMCONVERT = 128; enum CBS_OWNERDRAWFIXED = 16; enum CBS_OWNERDRAWVARIABLE = 32; enum CBS_SIMPLE = 1; enum CBS_SORT = 256; enum CBS_UPPERCASE = 0x2000; enum ES_AUTOHSCROLL = 128; enum ES_AUTOVSCROLL = 64; enum ES_CENTER = 1; enum ES_LEFT = 0; enum ES_LOWERCASE = 16; enum ES_MULTILINE = 4; enum ES_NOHIDESEL = 256; enum ES_NUMBER = 0x2000; enum ES_OEMCONVERT = 0x400; enum ES_PASSWORD = 32; enum ES_READONLY = 0x800; enum ES_RIGHT = 2; enum ES_UPPERCASE = 8; enum ES_WANTRETURN = 4096; enum LBS_DISABLENOSCROLL = 4096; enum LBS_EXTENDEDSEL = 0x800; enum LBS_HASSTRINGS = 64; enum LBS_MULTICOLUMN = 512; enum LBS_MULTIPLESEL = 8; enum LBS_NODATA = 0x2000; enum LBS_NOINTEGRALHEIGHT = 256; enum LBS_NOREDRAW = 4; enum LBS_NOSEL = 0x4000; enum LBS_NOTIFY = 1; enum LBS_OWNERDRAWFIXED = 16; enum LBS_OWNERDRAWVARIABLE = 32; enum LBS_SORT = 2; enum LBS_STANDARD = 0xa00003; enum LBS_USETABSTOPS = 128; enum LBS_WANTKEYBOARDINPUT = 0x400; enum SBS_BOTTOMALIGN = 4; enum SBS_HORZ = 0; enum SBS_LEFTALIGN = 2; enum SBS_RIGHTALIGN = 4; enum SBS_SIZEBOX = 8; enum SBS_SIZEBOXBOTTOMRIGHTALIGN = 4; enum SBS_SIZEBOXTOPLEFTALIGN = 2; enum SBS_SIZEGRIP = 16; enum SBS_TOPALIGN = 2; enum SBS_VERT = 1; enum SS_BITMAP = 14; enum SS_BLACKFRAME = 7; enum SS_BLACKRECT = 4; enum SS_CENTER = 1; enum SS_CENTERIMAGE = 512; enum SS_ENHMETAFILE = 15; enum SS_ETCHEDFRAME = 18; enum SS_ETCHEDHORZ = 16; enum SS_ETCHEDVERT = 17; enum SS_GRAYFRAME = 8; enum SS_GRAYRECT = 5; enum SS_ICON = 3; enum SS_LEFT = 0; enum SS_LEFTNOWORDWRAP = 0xc; enum SS_NOPREFIX = 128; enum SS_NOTIFY = 256; enum SS_OWNERDRAW = 0xd; enum SS_REALSIZEIMAGE = 0x800; enum SS_RIGHT = 2; enum SS_RIGHTJUST = 0x400; enum SS_SIMPLE = 11; enum SS_SUNKEN = 4096; enum SS_WHITEFRAME = 9; enum SS_WHITERECT = 6; enum SS_USERITEM = 10; enum SS_TYPEMASK = 0x0000001FL; enum SS_ENDELLIPSIS = 0x00004000L; enum SS_PATHELLIPSIS = 0x00008000L; enum SS_WORDELLIPSIS = 0x0000C000L; enum SS_ELLIPSISMASK = 0x0000C000L; enum DS_ABSALIGN = 0x0001; enum DS_3DLOOK = 0x0004; enum DS_SYSMODAL = 0x0002; enum DS_FIXEDSYS = 0x0008; enum DS_NOFAILCREATE = 0x0010; enum DS_LOCALEDIT = 0x0020; enum DS_SETFONT = 0x0040; enum DS_MODALFRAME = 0x0080; enum DS_NOIDLEMSG = 0x0100; enum DS_SETFOREGROUND = 0x0200; enum DS_CONTROL = 0x0400; enum DS_CENTER = 0x0800; enum DS_CENTERMOUSE = 0x1000; enum DS_CONTEXTHELP = 0x2000; enum DS_SHELLFONT = DS_SETFONT | DS_FIXEDSYS; enum WS_EX_ACCEPTFILES = 16; enum WS_EX_APPWINDOW = 0x40000; enum WS_EX_CLIENTEDGE = 512; enum WS_EX_COMPOSITED = 0x2000000; // XP enum WS_EX_CONTEXTHELP = 0x400; enum WS_EX_CONTROLPARENT = 0x10000; enum WS_EX_DLGMODALFRAME = 1; enum WS_EX_LAYERED = 0x80000; // w2k enum WS_EX_LAYOUTRTL = 0x400000; // w98, w2k enum WS_EX_LEFT = 0; enum WS_EX_LEFTSCROLLBAR = 0x4000; enum WS_EX_LTRREADING = 0; enum WS_EX_MDICHILD = 64; enum WS_EX_NOACTIVATE = 0x8000000; // w2k enum WS_EX_NOINHERITLAYOUT = 0x100000; // w2k enum WS_EX_NOPARENTNOTIFY = 4; enum WS_EX_NOREDIRECTIONBITMAP = 0x00200000; // w8, s2012 enum WS_EX_OVERLAPPEDWINDOW = 0x300; enum WS_EX_PALETTEWINDOW = 0x188; enum WS_EX_RIGHT = 0x1000; enum WS_EX_RIGHTSCROLLBAR = 0; enum WS_EX_RTLREADING = 0x2000; enum WS_EX_STATICEDGE = 0x20000; enum WS_EX_TOOLWINDOW = 128; enum WS_EX_TOPMOST = 8; enum WS_EX_TRANSPARENT = 32; enum WS_EX_WINDOWEDGE = 256; enum WINSTA_ENUMDESKTOPS = 1; enum WINSTA_READATTRIBUTES = 2; enum WINSTA_ACCESSCLIPBOARD = 4; enum WINSTA_CREATEDESKTOP = 8; enum WINSTA_WRITEATTRIBUTES = 16; enum WINSTA_ACCESSGLOBALATOMS = 32; enum WINSTA_EXITWINDOWS = 64; enum WINSTA_ENUMERATE = 256; enum WINSTA_READSCREEN = 512; enum DDL_READWRITE = 0; enum DDL_READONLY = 1; enum DDL_HIDDEN = 2; enum DDL_SYSTEM = 4; enum DDL_DIRECTORY = 16; enum DDL_ARCHIVE = 32; enum DDL_POSTMSGS = 8192; enum DDL_DRIVES = 16384; enum DDL_EXCLUSIVE = 32768; enum { DC_ACTIVE = 0x0001, DC_SMALLCAP = 0x0002, DC_ICON = 0x0004, DC_TEXT = 0x0008, DC_INBUTTON = 0x0010, DC_GRADIENT = 0x0020 } static if (_WIN32_WINNT >= 0x501) { enum DC_BUTTONS = 0x1000; } // Where are these documented? //enum DC_CAPTION = DC_ICON|DC_TEXT|DC_BUTTONS; //enum DC_NC = DC_CAPTION|DC_FRAME; enum BDR_RAISEDOUTER = 1; enum BDR_SUNKENOUTER = 2; enum BDR_RAISEDINNER = 4; enum BDR_SUNKENINNER = 8; enum BDR_OUTER = 3; enum BDR_INNER = 0xc; enum BDR_RAISED = 5; enum BDR_SUNKEN = 10; enum EDGE_RAISED = BDR_RAISEDOUTER|BDR_RAISEDINNER; enum EDGE_SUNKEN = BDR_SUNKENOUTER|BDR_SUNKENINNER; enum EDGE_ETCHED = BDR_SUNKENOUTER|BDR_RAISEDINNER; enum EDGE_BUMP = BDR_RAISEDOUTER|BDR_SUNKENINNER; enum BF_LEFT = 1; enum BF_TOP = 2; enum BF_RIGHT = 4; enum BF_BOTTOM = 8; enum BF_TOPLEFT = BF_TOP|BF_LEFT; enum BF_TOPRIGHT = BF_TOP|BF_RIGHT; enum BF_BOTTOMLEFT = BF_BOTTOM|BF_LEFT; enum BF_BOTTOMRIGHT = BF_BOTTOM|BF_RIGHT; enum BF_RECT = BF_LEFT|BF_TOP|BF_RIGHT|BF_BOTTOM ; enum BF_DIAGONAL = 16; enum BF_DIAGONAL_ENDTOPRIGHT = BF_DIAGONAL|BF_TOP|BF_RIGHT; enum BF_DIAGONAL_ENDTOPLEFT = BF_DIAGONAL|BF_TOP|BF_LEFT; enum BF_DIAGONAL_ENDBOTTOMLEFT = BF_DIAGONAL|BF_BOTTOM|BF_LEFT; enum BF_DIAGONAL_ENDBOTTOMRIGHT = BF_DIAGONAL|BF_BOTTOM|BF_RIGHT; enum BF_MIDDLE = 0x800; enum BF_SOFT = 0x1000; enum BF_ADJUST = 0x2000; enum BF_FLAT = 0x4000; enum BF_MONO = 0x8000; enum { DFC_CAPTION = 1, DFC_MENU, DFC_SCROLL, DFC_BUTTON, DFC_POPUPMENU // = 5 } enum { DFCS_CAPTIONCLOSE, DFCS_CAPTIONMIN, DFCS_CAPTIONMAX, DFCS_CAPTIONRESTORE, DFCS_CAPTIONHELP // = 4 } enum { DFCS_MENUARROW = 0, DFCS_MENUCHECK = 1, DFCS_MENUBULLET = 2, DFCS_MENUARROWRIGHT = 4 } enum { DFCS_SCROLLUP = 0, DFCS_SCROLLDOWN = 1, DFCS_SCROLLLEFT = 2, DFCS_SCROLLRIGHT = 3, DFCS_SCROLLCOMBOBOX = 5, DFCS_SCROLLSIZEGRIP = 8, DFCS_SCROLLSIZEGRIPRIGHT = 16 } enum { DFCS_BUTTONCHECK = 0, DFCS_BUTTONRADIOIMAGE = 0x0001, DFCS_BUTTONRADIOMASK = 0x0002, DFCS_BUTTONRADIO = 0x0004, DFCS_BUTTON3STATE = 0x0008, DFCS_BUTTONPUSH = 0x0010, DFCS_INACTIVE = 0x0100, DFCS_PUSHED = 0x0200, DFCS_CHECKED = 0x0400, DFCS_TRANSPARENT = 0x0800, DFCS_HOT = 0x1000, DFCS_ADJUSTRECT = 0x2000, DFCS_FLAT = 0x4000, DFCS_MONO = 0x8000 } enum { DST_COMPLEX = 0, DST_TEXT, DST_PREFIXTEXT, DST_ICON, DST_BITMAP // = 4 } enum DSS_NORMAL = 0; enum DSS_UNION = 16; enum DSS_DISABLED = 32; enum DSS_MONO = 128; enum DSS_RIGHT = 0x8000; enum DT_BOTTOM = 8; enum DT_CALCRECT = 1024; enum DT_CENTER = 1; enum DT_EDITCONTROL = 8192; enum DT_END_ELLIPSIS = 32768; enum DT_PATH_ELLIPSIS = 16384; enum DT_WORD_ELLIPSIS = 0x40000; enum DT_EXPANDTABS = 64; enum DT_EXTERNALLEADING = 512; enum DT_LEFT = 0; enum DT_MODIFYSTRING = 65536; enum DT_NOCLIP = 256; enum DT_NOPREFIX = 2048; enum DT_RIGHT = 2; enum DT_RTLREADING = 131072; enum DT_SINGLELINE = 32; enum DT_TABSTOP = 128; enum DT_TOP = 0; enum DT_VCENTER = 4; enum DT_WORDBREAK = 16; enum DT_INTERNAL = 4096; enum WB_ISDELIMITER = 2; enum WB_LEFT = 0; enum WB_RIGHT = 1; enum SB_HORZ = 0; enum SB_VERT = 1; enum SB_CTL = 2; enum SB_BOTH = 3; enum ESB_DISABLE_BOTH = 3; enum ESB_DISABLE_DOWN = 2; enum ESB_DISABLE_LEFT = 1; enum ESB_DISABLE_LTUP = 1; enum ESB_DISABLE_RIGHT = 2; enum ESB_DISABLE_RTDN = 2; enum ESB_DISABLE_UP = 1; enum ESB_ENABLE_BOTH = 0; enum SB_LINEUP = 0; enum SB_LINEDOWN = 1; enum SB_LINELEFT = 0; enum SB_LINERIGHT = 1; enum SB_PAGEUP = 2; enum SB_PAGEDOWN = 3; enum SB_PAGELEFT = 2; enum SB_PAGERIGHT = 3; enum SB_THUMBPOSITION = 4; enum SB_THUMBTRACK = 5; enum SB_ENDSCROLL = 8; enum SB_LEFT = 6; enum SB_RIGHT = 7; enum SB_BOTTOM = 7; enum SB_TOP = 6; //MACRO #define IS_INTRESOURCE(i) (((ULONG_PTR)(i) >> 16) == 0) template MAKEINTRESOURCE_T(WORD i) { enum LPTSTR MAKEINTRESOURCE_T = cast(LPTSTR)(i); } nothrow @nogc { LPSTR MAKEINTRESOURCEA(/*WORD*/uint i) { return cast(LPSTR) i; } LPWSTR MAKEINTRESOURCEW(/*WORD*/uint i) { return cast(LPWSTR) i; } } enum RT_CURSOR = MAKEINTRESOURCE_T!(1); enum RT_BITMAP = MAKEINTRESOURCE_T!(2); enum RT_ICON = MAKEINTRESOURCE_T!(3); enum RT_MENU = MAKEINTRESOURCE_T!(4); enum RT_DIALOG = MAKEINTRESOURCE_T!(5); enum RT_STRING = MAKEINTRESOURCE_T!(6); enum RT_FONTDIR = MAKEINTRESOURCE_T!(7); enum RT_FONT = MAKEINTRESOURCE_T!(8); enum RT_ACCELERATOR = MAKEINTRESOURCE_T!(9); enum RT_RCDATA = MAKEINTRESOURCE_T!(10); enum RT_MESSAGETABLE = MAKEINTRESOURCE_T!(11); enum RT_GROUP_CURSOR = MAKEINTRESOURCE_T!(12); enum RT_GROUP_ICON = MAKEINTRESOURCE_T!(14); enum RT_VERSION = MAKEINTRESOURCE_T!(16); enum RT_DLGINCLUDE = MAKEINTRESOURCE_T!(17); enum RT_PLUGPLAY = MAKEINTRESOURCE_T!(19); enum RT_VXD = MAKEINTRESOURCE_T!(20); enum RT_ANICURSOR = MAKEINTRESOURCE_T!(21); enum RT_ANIICON = MAKEINTRESOURCE_T!(22); enum RT_HTML = MAKEINTRESOURCE_T!(23); enum RT_MANIFEST = MAKEINTRESOURCE_T!(24); enum CREATEPROCESS_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE_T!(1); enum ISOLATIONAWARE_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE_T!(2); enum ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE_T!(3); enum { EWX_LOGOFF = 0, EWX_SHUTDOWN = 1, EWX_REBOOT = 2, EWX_FORCE = 4, EWX_POWEROFF = 8, EWX_FORCEIFHUNG = 16 } enum CS_BYTEALIGNCLIENT = 4096; enum CS_BYTEALIGNWINDOW = 8192; enum CS_KEYCVTWINDOW = 4; enum CS_NOKEYCVT = 256; enum CS_CLASSDC = 64; enum CS_DBLCLKS = 8; enum CS_GLOBALCLASS = 16384; enum CS_HREDRAW = 2; enum CS_NOCLOSE = 512; enum CS_OWNDC = 32; enum CS_PARENTDC = 128; enum CS_SAVEBITS = 2048; enum CS_VREDRAW = 1; enum CS_IME = 0x10000; enum GCW_ATOM = -32; enum GCL_CBCLSEXTRA = -20; enum GCL_CBWNDEXTRA = -18; enum GCL_HBRBACKGROUND = -10; enum GCL_HCURSOR = -12; enum GCL_HICON = -14; enum GCL_HICONSM = -34; enum GCL_HMODULE = -16; enum GCL_MENUNAME = -8; enum GCL_STYLE = -26; enum GCL_WNDPROC = -24; alias GCL_HICONSM GCLP_HICONSM; alias GCL_HICON GCLP_HICON; alias GCL_HCURSOR GCLP_HCURSOR; alias GCL_HBRBACKGROUND GCLP_HBRBACKGROUND; alias GCL_HMODULE GCLP_HMODULE; alias GCL_MENUNAME GCLP_MENUNAME; alias GCL_WNDPROC GCLP_WNDPROC; enum { IDC_ARROW = MAKEINTRESOURCE_T!(32512), IDC_IBEAM = MAKEINTRESOURCE_T!(32513), IDC_WAIT = MAKEINTRESOURCE_T!(32514), IDC_CROSS = MAKEINTRESOURCE_T!(32515), IDC_UPARROW = MAKEINTRESOURCE_T!(32516), IDC_SIZE = MAKEINTRESOURCE_T!(32640), IDC_ICON = MAKEINTRESOURCE_T!(32641), IDC_SIZENWSE = MAKEINTRESOURCE_T!(32642), IDC_SIZENESW = MAKEINTRESOURCE_T!(32643), IDC_SIZEWE = MAKEINTRESOURCE_T!(32644), IDC_SIZENS = MAKEINTRESOURCE_T!(32645), IDC_SIZEALL = MAKEINTRESOURCE_T!(32646), IDC_NO = MAKEINTRESOURCE_T!(32648), IDC_HAND = MAKEINTRESOURCE_T!(32649), IDC_APPSTARTING = MAKEINTRESOURCE_T!(32650), IDC_HELP = MAKEINTRESOURCE_T!(32651), IDI_APPLICATION = MAKEINTRESOURCE_T!(32512), IDI_HAND = MAKEINTRESOURCE_T!(32513), IDI_QUESTION = MAKEINTRESOURCE_T!(32514), IDI_EXCLAMATION = MAKEINTRESOURCE_T!(32515), IDI_ASTERISK = MAKEINTRESOURCE_T!(32516), IDI_WINLOGO = MAKEINTRESOURCE_T!(32517), IDI_WARNING = IDI_EXCLAMATION, IDI_ERROR = IDI_HAND, IDI_INFORMATION = IDI_ASTERISK } static if (_WIN32_WINNT >= 0x600) { enum IDI_SHIELD = MAKEINTRESOURCE_T!(32518); } enum { MIIM_STATE = 0x0001, MIIM_ID = 0x0002, MIIM_SUBMENU = 0x0004, MIIM_CHECKMARKS = 0x0008, MIIM_TYPE = 0x0010, MIIM_DATA = 0x0020, MIIM_STRING = 0x0040, MIIM_BITMAP = 0x0080, MIIM_FTYPE = 0x0100 } enum { MFT_BITMAP = 0x0004, MFT_MENUBARBREAK = 0x0020, MFT_MENUBREAK = 0x0040, MFT_OWNERDRAW = 0x0100, MFT_RADIOCHECK = 0x0200, MFT_RIGHTJUSTIFY = 0x4000, MFT_SEPARATOR = 0x0800, MFT_RIGHTORDER = 0x2000, MFT_STRING = 0 } enum { MFS_CHECKED = 8, MFS_DEFAULT = 4096, MFS_DISABLED = 3, MFS_ENABLED = 0, MFS_GRAYED = 3, MFS_HILITE = 128, MFS_UNCHECKED = 0, MFS_UNHILITE = 0 } enum { GW_HWNDFIRST = 0, GW_HWNDLAST, GW_HWNDNEXT, GW_HWNDPREV, GW_OWNER, GW_CHILD // = 5 } enum { SW_HIDE = 0, SW_NORMAL = 1, SW_SHOWNORMAL = 1, SW_SHOWMINIMIZED = 2, SW_MAXIMIZE = 3, SW_SHOWMAXIMIZED = 3, SW_SHOWNOACTIVATE = 4, SW_SHOW = 5, SW_MINIMIZE = 6, SW_SHOWMINNOACTIVE = 7, SW_SHOWNA = 8, SW_RESTORE = 9, SW_SHOWDEFAULT = 10, SW_FORCEMINIMIZE = 11, SW_MAX = 11 } enum { SW_PARENTCLOSING = 1, SW_OTHERZOOM, SW_PARENTOPENING, SW_OTHERUNZOOM // = 4 } enum { // is this a different SW from the previous? SW_SCROLLCHILDREN = 0x01, SW_INVALIDATE = 0x02, SW_ERASE = 0x04, SW_SMOOTHSCROLL = 0x10 } enum { MB_OK = 0, MB_OKCANCEL, MB_ABORTRETRYIGNORE, MB_YESNOCANCEL, MB_YESNO, MB_RETRYCANCEL, MB_CANCELTRYCONTINUE, // = 6 MB_TYPEMASK = 0x0000000F, MB_ICONHAND = 0x00000010, MB_ICONSTOP = MB_ICONHAND, MB_ICONERROR = MB_ICONHAND, MB_ICONQUESTION = 0x00000020, MB_ICONEXCLAMATION = 0x00000030, MB_ICONWARNING = MB_ICONEXCLAMATION, MB_ICONASTERISK = 0x00000040, MB_ICONINFORMATION = MB_ICONASTERISK, MB_USERICON = 0x00000080, MB_ICONMASK = 0x000000F0, MB_DEFBUTTON1 = 0, MB_DEFBUTTON2 = 0x00000100, MB_DEFBUTTON3 = 0x00000200, MB_DEFBUTTON4 = 0x00000300, MB_DEFMASK = 0x00000F00, MB_APPLMODAL = 0, MB_SYSTEMMODAL = 0x00001000, MB_TASKMODAL = 0x00002000, MB_MODEMASK = 0x00003000, MB_HELP = 0x00004000, MB_NOFOCUS = 0x00008000, MB_MISCMASK = 0x0000C000, MB_SETFOREGROUND = 0x00010000, MB_DEFAULT_DESKTOP_ONLY = 0x00020000, MB_TOPMOST = 0x00040000, MB_SERVICE_NOTIFICATION_NT3X = 0x00040000, MB_RIGHT = 0x00080000, MB_RTLREADING = 0x00100000, MB_SERVICE_NOTIFICATION = 0x00200000 } enum { IDOK = 1, IDCANCEL, IDABORT, IDRETRY, IDIGNORE, IDYES, IDNO, IDCLOSE, IDHELP, IDTRYAGAIN, IDCONTINUE // = 11 } enum GWL_EXSTYLE = -20; enum GWL_STYLE = -16; enum GWL_WNDPROC = -4; enum GWLP_WNDPROC = -4; enum GWL_HINSTANCE = -6; enum GWLP_HINSTANCE = -6; enum GWL_HWNDPARENT = -8; enum GWLP_HWNDPARENT = -8; enum GWL_ID = -12; enum GWLP_ID = -12; enum GWL_USERDATA = -21; enum GWLP_USERDATA = -21; enum DWL_DLGPROC = 4; enum DWLP_DLGPROC = 4; enum DWL_MSGRESULT = 0; enum DWLP_MSGRESULT = 0; enum DWL_USER = 8; enum DWLP_USER = 8; enum QS_KEY = 1; enum QS_MOUSEMOVE = 2; enum QS_MOUSEBUTTON = 4; enum QS_MOUSE = 6; enum QS_POSTMESSAGE = 8; enum QS_TIMER = 16; enum QS_PAINT = 32; enum QS_SENDMESSAGE = 64; enum QS_HOTKEY = 128; enum QS_ALLPOSTMESSAGE = 256; static if (_WIN32_WINNT >= 0x501) { enum QS_RAWINPUT = 1024; enum QS_INPUT = 1031; enum QS_ALLEVENTS = 1215; enum QS_ALLINPUT = 1279; } else { enum QS_INPUT = 7; enum QS_ALLEVENTS = 191; enum QS_ALLINPUT = 255; } enum MWMO_WAITALL = 1; enum MWMO_ALERTABLE = 2; enum MWMO_INPUTAVAILABLE = 4; enum COLOR_3DDKSHADOW = 21; enum COLOR_3DFACE = 15; enum COLOR_3DHILIGHT = 20; enum COLOR_3DHIGHLIGHT = 20; enum COLOR_3DLIGHT = 22; enum COLOR_BTNHILIGHT = 20; enum COLOR_3DSHADOW = 16; enum COLOR_ACTIVEBORDER = 10; enum COLOR_ACTIVECAPTION = 2; enum COLOR_APPWORKSPACE = 12; enum COLOR_BACKGROUND = 1; enum COLOR_DESKTOP = 1; enum COLOR_BTNFACE = 15; enum COLOR_BTNHIGHLIGHT = 20; enum COLOR_BTNSHADOW = 16; enum COLOR_BTNTEXT = 18; enum COLOR_CAPTIONTEXT = 9; enum COLOR_GRAYTEXT = 17; enum COLOR_HIGHLIGHT = 13; enum COLOR_HIGHLIGHTTEXT = 14; enum COLOR_INACTIVEBORDER = 11; enum COLOR_INACTIVECAPTION = 3; enum COLOR_INACTIVECAPTIONTEXT = 19; enum COLOR_INFOBK = 24; enum COLOR_INFOTEXT = 23; enum COLOR_MENU = 4; enum COLOR_MENUTEXT = 7; enum COLOR_SCROLLBAR = 0; enum COLOR_WINDOW = 5; enum COLOR_WINDOWFRAME = 6; enum COLOR_WINDOWTEXT = 8; enum COLOR_HOTLIGHT = 26; enum COLOR_GRADIENTACTIVECAPTION = 27; enum COLOR_GRADIENTINACTIVECAPTION = 28; enum CTLCOLOR_MSGBOX = 0; enum CTLCOLOR_EDIT = 1; enum CTLCOLOR_LISTBOX = 2; enum CTLCOLOR_BTN = 3; enum CTLCOLOR_DLG = 4; enum CTLCOLOR_SCROLLBAR = 5; enum CTLCOLOR_STATIC = 6; enum CTLCOLOR_MAX = 7; // For GetSystemMetrics() enum : int { SM_CXSCREEN = 0, SM_CYSCREEN, SM_CXVSCROLL, SM_CYHSCROLL, SM_CYCAPTION, SM_CXBORDER, SM_CYBORDER, SM_CXDLGFRAME, // = 7 SM_CXFIXEDFRAME = SM_CXDLGFRAME, SM_CYDLGFRAME, // = 8 SM_CYFIXEDFRAME = SM_CYDLGFRAME, SM_CYVTHUMB, // = 9 SM_CXHTHUMB, SM_CXICON, SM_CYICON, SM_CXCURSOR, SM_CYCURSOR, SM_CYMENU, SM_CXFULLSCREEN, SM_CYFULLSCREEN, SM_CYKANJIWINDOW, SM_MOUSEPRESENT, SM_CYVSCROLL, SM_CXHSCROLL, SM_DEBUG, SM_SWAPBUTTON, SM_RESERVED1, SM_RESERVED2, SM_RESERVED3, SM_RESERVED4, SM_CXMIN, SM_CYMIN, SM_CXSIZE, SM_CYSIZE, SM_CXSIZEFRAME, // = 32, SM_CXFRAME = SM_CXSIZEFRAME, SM_CYSIZEFRAME, // = 33 SM_CYFRAME = SM_CYSIZEFRAME, SM_CXMINTRACK, SM_CYMINTRACK, SM_CXDOUBLECLK, SM_CYDOUBLECLK, SM_CXICONSPACING, SM_CYICONSPACING, SM_MENUDROPALIGNMENT, SM_PENWINDOWS, SM_DBCSENABLED, SM_CMOUSEBUTTONS, SM_SECURE, SM_CXEDGE, SM_CYEDGE, SM_CXMINSPACING, SM_CYMINSPACING, SM_CXSMICON, SM_CYSMICON, SM_CYSMCAPTION, SM_CXSMSIZE, SM_CYSMSIZE, SM_CXMENUSIZE, SM_CYMENUSIZE, SM_ARRANGE, SM_CXMINIMIZED, SM_CYMINIMIZED, SM_CXMAXTRACK, SM_CYMAXTRACK, SM_CXMAXIMIZED, SM_CYMAXIMIZED, SM_NETWORK, // = 63 SM_CLEANBOOT = 67, SM_CXDRAG, SM_CYDRAG, SM_SHOWSOUNDS, SM_CXMENUCHECK, SM_CYMENUCHECK, SM_SLOWMACHINE, SM_MIDEASTENABLED, SM_MOUSEWHEELPRESENT, SM_XVIRTUALSCREEN, SM_YVIRTUALSCREEN, SM_CXVIRTUALSCREEN, SM_CYVIRTUALSCREEN, SM_CMONITORS, SM_SAMEDISPLAYFORMAT, SM_IMMENABLED, SM_CXFOCUSBORDER, SM_CYFOCUSBORDER, // = 84 SM_TABLETPC = 86, SM_MEDIACENTER, SM_STARTER, // = 88 SM_CMETRICS = 88, SM_SERVERR2, SM_REMOTESESSION = 0x1000, } static if (_WIN32_WINNT >= 0x501) { enum { // These are only for WinXP and later SM_SHUTTINGDOWN = 0x2000, SM_REMOTECONTROL = 0x2001 } } enum ARW_BOTTOMLEFT = 0; enum ARW_BOTTOMRIGHT = 1; enum ARW_HIDE = 8; enum ARW_TOPLEFT = 2; enum ARW_TOPRIGHT = 3; enum ARW_DOWN = 4; enum ARW_LEFT = 0; enum ARW_RIGHT = 0; enum ARW_UP = 4; enum UOI_FLAGS = 1; enum UOI_NAME = 2; enum UOI_TYPE = 3; enum UOI_USER_SID = 4; // For the fuLoad parameter of LoadImage() enum : UINT { LR_DEFAULTCOLOR = 0, LR_MONOCHROME = 0x0001, LR_COLOR = 0x0002, LR_COPYRETURNORG = 0x0004, LR_COPYDELETEORG = 0x0008, LR_LOADFROMFILE = 0x0010, LR_LOADTRANSPARENT = 0x0020, LR_DEFAULTSIZE = 0x0040, LR_VGACOLOR = 0x0080, LR_LOADREALSIZE = 0x0080, LR_LOADMAP3DCOLORS = 0x1000, LR_CREATEDIBSECTION = 0x2000, LR_COPYFROMRESOURCE = 0x4000, LR_SHARED = 0x8000 } enum { KEYEVENTF_EXTENDEDKEY = 1, KEYEVENTF_KEYUP = 2, KEYEVENTF_UNICODE = 4, KEYEVENTF_SCANCODE = 8 } enum OBM_BTNCORNERS = 32758; enum OBM_BTSIZE = 32761; enum OBM_CHECK = 32760; enum OBM_CHECKBOXES = 32759; enum OBM_CLOSE = 32754; enum OBM_COMBO = 32738; enum OBM_DNARROW = 32752; enum OBM_DNARROWD = 32742; enum OBM_DNARROWI = 32736; enum OBM_LFARROW = 32750; enum OBM_LFARROWI = 32734; enum OBM_LFARROWD = 32740; enum OBM_MNARROW = 32739; enum OBM_OLD_CLOSE = 32767; enum OBM_OLD_DNARROW = 32764; enum OBM_OLD_LFARROW = 32762; enum OBM_OLD_REDUCE = 32757; enum OBM_OLD_RESTORE = 32755; enum OBM_OLD_RGARROW = 32763; enum OBM_OLD_UPARROW = 32765; enum OBM_OLD_ZOOM = 32756; enum OBM_REDUCE = 32749; enum OBM_REDUCED = 32746; enum OBM_RESTORE = 32747; enum OBM_RESTORED = 32744; enum OBM_RGARROW = 32751; enum OBM_RGARROWD = 32741; enum OBM_RGARROWI = 32735; enum OBM_SIZE = 32766; enum OBM_UPARROW = 32753; enum OBM_UPARROWD = 32743; enum OBM_UPARROWI = 32737; enum OBM_ZOOM = 32748; enum OBM_ZOOMD = 32745; enum OCR_NORMAL = 32512; enum OCR_IBEAM = 32513; enum OCR_WAIT = 32514; enum OCR_CROSS = 32515; enum OCR_UP = 32516; enum OCR_SIZE = 32640; enum OCR_ICON = 32641; enum OCR_SIZENWSE = 32642; enum OCR_SIZENESW = 32643; enum OCR_SIZEWE = 32644; enum OCR_SIZENS = 32645; enum OCR_SIZEALL = 32646; enum OCR_NO = 32648; enum OCR_APPSTARTING = 32650; enum OIC_SAMPLE = 32512; enum OIC_HAND = 32513; enum OIC_QUES = 32514; enum OIC_BANG = 32515; enum OIC_NOTE = 32516; enum OIC_WINLOGO = 32517; enum OIC_WARNING = OIC_BANG; enum OIC_ERROR = OIC_HAND; enum OIC_INFORMATION = OIC_NOTE; enum HELPINFO_MENUITEM = 2; enum HELPINFO_WINDOW = 1; static if (_WIN32_WINNT >= 0x501) { enum { WTS_CONSOLE_CONNECT = 1, WTS_CONSOLE_DISCONNECT, WTS_REMOTE_CONNECT, WTS_REMOTE_DISCONNECT, WTS_SESSION_LOGON, WTS_SESSION_LOGOFF, WTS_SESSION_LOCK, WTS_SESSION_UNLOCK, WTS_SESSION_REMOTE_CONTROL // = 9 } } enum MSGF_DIALOGBOX = 0; enum MSGF_MESSAGEBOX = 1; enum MSGF_MENU = 2; enum MSGF_MOVE = 3; enum MSGF_SIZE = 4; enum MSGF_SCROLLBAR = 5; enum MSGF_NEXTWINDOW = 6; enum MSGF_MAINLOOP = 8; enum MSGF_USER = 4096; enum { MOUSEEVENTF_MOVE = 0x0001, MOUSEEVENTF_LEFTDOWN = 0x0002, MOUSEEVENTF_LEFTUP = 0x0004, MOUSEEVENTF_RIGHTDOWN = 0x0008, MOUSEEVENTF_RIGHTUP = 0x0010, MOUSEEVENTF_MIDDLEDOWN = 0x0020, MOUSEEVENTF_MIDDLEUP = 0x0040, MOUSEEVENTF_XDOWN = 0x0080, MOUSEEVENTF_XUP = 0x0100, MOUSEEVENTF_WHEEL = 0x0800, MOUSEEVENTF_ABSOLUTE = 0x8000 } enum PM_NOREMOVE = 0; enum PM_REMOVE = 1; enum PM_NOYIELD = 2; enum : HWND { HWND_BROADCAST = cast(HWND) 0xFFFF, HWND_MESSAGE = cast(HWND) -3, HWND_NOTOPMOST = cast(HWND) -2, HWND_TOPMOST = cast(HWND) -1, HWND_TOP = cast(HWND) 0, HWND_DESKTOP = cast(HWND) 0, HWND_BOTTOM = cast(HWND) 1 } enum RDW_INVALIDATE = 1; enum RDW_INTERNALPAINT = 2; enum RDW_ERASE = 4; enum RDW_VALIDATE = 8; enum RDW_NOINTERNALPAINT = 16; enum RDW_NOERASE = 32; enum RDW_NOCHILDREN = 64; enum RDW_ALLCHILDREN = 128; enum RDW_UPDATENOW = 256; enum RDW_ERASENOW = 512; enum RDW_FRAME = 1024; enum RDW_NOFRAME = 2048; enum { SMTO_NORMAL = 0, SMTO_BLOCK = 1, SMTO_ABORTIFHUNG = 2, SMTO_NOTIMEOUTIFNOTHUNG = 8 } enum SIF_ALL = 23; enum SIF_PAGE = 2; enum SIF_POS = 4; enum SIF_RANGE = 1; enum SIF_DISABLENOSCROLL = 8; enum SIF_TRACKPOS = 16; enum SWP_DRAWFRAME = 32; enum SWP_FRAMECHANGED = 32; enum SWP_HIDEWINDOW = 128; enum SWP_NOACTIVATE = 16; enum SWP_NOCOPYBITS = 256; enum SWP_NOMOVE = 2; enum SWP_NOSIZE = 1; enum SWP_NOREDRAW = 8; enum SWP_NOZORDER = 4; enum SWP_SHOWWINDOW = 64; enum SWP_NOOWNERZORDER = 512; enum SWP_NOREPOSITION = 512; enum SWP_NOSENDCHANGING = 1024; enum SWP_DEFERERASE = 8192; enum SWP_ASYNCWINDOWPOS = 16384; enum { // passed variously as int or WPARAM HSHELL_WINDOWCREATED = 1, HSHELL_WINDOWDESTROYED, HSHELL_ACTIVATESHELLWINDOW, HSHELL_WINDOWACTIVATED, HSHELL_GETMINRECT, HSHELL_REDRAW, HSHELL_TASKMAN, HSHELL_LANGUAGE, // = 8 HSHELL_ENDTASK = 10, HSHELL_ACCESSIBILITYSTATE, HSHELL_APPCOMMAND, // = 12 HSHELL_RUDEAPPACTIVATED = 32772, HSHELL_FLASH = 32774 } static if (_WIN32_WINNT >= 0x501) { enum { HSHELL_WINDOWREPLACED = 13, HSHELL_WINDOWREPLACING } } enum { SPI_GETBEEP = 0x0001, SPI_SETBEEP = 0x0002, SPI_GETMOUSE = 0x0003, SPI_SETMOUSE = 0x0004, SPI_GETBORDER = 0x0005, SPI_SETBORDER = 0x0006, SPI_GETKEYBOARDSPEED = 0x000A, SPI_SETKEYBOARDSPEED = 0x000B, SPI_LANGDRIVER = 0x000C, SPI_ICONHORIZONTALSPACING = 0x000D, SPI_GETSCREENSAVETIMEOUT = 0x000E, SPI_SETSCREENSAVETIMEOUT = 0x000F, SPI_GETSCREENSAVEACTIVE = 0x0010, SPI_SETSCREENSAVEACTIVE = 0x0011, SPI_GETGRIDGRANULARITY = 0x0012, SPI_SETGRIDGRANULARITY = 0x0013, SPI_SETDESKWALLPAPER = 0x0014, SPI_SETDESKPATTERN = 0x0015, SPI_GETKEYBOARDDELAY = 0x0016, SPI_SETKEYBOARDDELAY = 0x0017, SPI_ICONVERTICALSPACING = 0x0018, SPI_GETICONTITLEWRAP = 0x0019, SPI_SETICONTITLEWRAP = 0x001A, SPI_GETMENUDROPALIGNMENT = 0x001B, SPI_SETMENUDROPALIGNMENT = 0x001C, SPI_SETDOUBLECLKWIDTH = 0x001D, SPI_SETDOUBLECLKHEIGHT = 0x001E, SPI_GETICONTITLELOGFONT = 0x001F, SPI_SETDOUBLECLICKTIME = 0x0020, SPI_SETMOUSEBUTTONSWAP = 0x0021, SPI_SETICONTITLELOGFONT = 0x0022, SPI_GETFASTTASKSWITCH = 0x0023, SPI_SETFASTTASKSWITCH = 0x0024, SPI_SETDRAGFULLWINDOWS = 0x0025, SPI_GETDRAGFULLWINDOWS = 0x0026, SPI_GETNONCLIENTMETRICS = 0x0029, SPI_SETNONCLIENTMETRICS = 0x002A, SPI_GETMINIMIZEDMETRICS = 0x002B, SPI_SETMINIMIZEDMETRICS = 0x002C, SPI_GETICONMETRICS = 0x002D, SPI_SETICONMETRICS = 0x002E, SPI_SETWORKAREA = 0x002F, SPI_GETWORKAREA = 0x0030, SPI_SETPENWINDOWS = 0x0031, SPI_GETFILTERKEYS = 0x0032, SPI_SETFILTERKEYS = 0x0033, SPI_GETTOGGLEKEYS = 0x0034, SPI_SETTOGGLEKEYS = 0x0035, SPI_GETMOUSEKEYS = 0x0036, SPI_SETMOUSEKEYS = 0x0037, SPI_GETSHOWSOUNDS = 0x0038, SPI_SETSHOWSOUNDS = 0x0039, SPI_GETSTICKYKEYS = 0x003A, SPI_SETSTICKYKEYS = 0x003B, SPI_GETACCESSTIMEOUT = 0x003C, SPI_SETACCESSTIMEOUT = 0x003D, SPI_GETSERIALKEYS = 0x003E, SPI_SETSERIALKEYS = 0x003F, SPI_GETSOUNDSENTRY = 0x0040, SPI_SETSOUNDSENTRY = 0x0041, SPI_GETHIGHCONTRAST = 0x0042, SPI_SETHIGHCONTRAST = 0x0043, SPI_GETKEYBOARDPREF = 0x0044, SPI_SETKEYBOARDPREF = 0x0045, SPI_GETSCREENREADER = 0x0046, SPI_SETSCREENREADER = 0x0047, SPI_GETANIMATION = 0x0048, SPI_SETANIMATION = 0x0049, SPI_GETFONTSMOOTHING = 0x004A, SPI_SETFONTSMOOTHING = 0x004B, SPI_SETDRAGWIDTH = 0x004C, SPI_SETDRAGHEIGHT = 0x004D, SPI_SETHANDHELD = 0x004E, SPI_GETLOWPOWERTIMEOUT = 0x004F, SPI_GETPOWEROFFTIMEOUT = 0x0050, SPI_SETLOWPOWERTIMEOUT = 0x0051, SPI_SETPOWEROFFTIMEOUT = 0x0052, SPI_GETLOWPOWERACTIVE = 0x0053, SPI_GETPOWEROFFACTIVE = 0x0054, SPI_SETLOWPOWERACTIVE = 0x0055, SPI_SETPOWEROFFACTIVE = 0x0056, SPI_SETCURSORS = 0x0057, SPI_SETICONS = 0x0058, SPI_GETDEFAULTINPUTLANG = 0x0059, SPI_SETDEFAULTINPUTLANG = 0x005A, SPI_SETLANGTOGGLE = 0x005B, SPI_GETWINDOWSEXTENSION = 0x005C, SPI_SETMOUSETRAILS = 0x005D, SPI_GETMOUSETRAILS = 0x005E, SPI_GETSNAPTODEFBUTTON = 0x005F, SPI_SETSNAPTODEFBUTTON = 0x0060, //SPI_SCREENSAVERRUNNING = 0x0061, // mistake in older MinGW? SPI_SETSCREENSAVERRUNNING = 0x0061, SPI_GETMOUSEHOVERWIDTH = 0x0062, SPI_SETMOUSEHOVERWIDTH = 0x0063, SPI_GETMOUSEHOVERHEIGHT = 0x0064, SPI_SETMOUSEHOVERHEIGHT = 0x0065, SPI_GETMOUSEHOVERTIME = 0x0066, SPI_SETMOUSEHOVERTIME = 0x0067, SPI_GETWHEELSCROLLLINES = 0x0068, SPI_SETWHEELSCROLLLINES = 0x0069, SPI_GETMENUSHOWDELAY = 0x006A, SPI_SETMENUSHOWDELAY = 0x006B, SPI_GETSHOWIMEUI = 0x006E, SPI_SETSHOWIMEUI = 0x006F, SPI_GETMOUSESPEED = 0x0070, SPI_SETMOUSESPEED = 0x0071, SPI_GETSCREENSAVERRUNNING = 0x0072, SPI_GETDESKWALLPAPER = 0x0073, SPI_GETACTIVEWINDOWTRACKING = 0x1000, SPI_SETACTIVEWINDOWTRACKING = 0x1001, SPI_GETMENUANIMATION = 0x1002, SPI_SETMENUANIMATION = 0x1003, SPI_GETCOMBOBOXANIMATION = 0x1004, SPI_SETCOMBOBOXANIMATION = 0x1005, SPI_GETLISTBOXSMOOTHSCROLLING = 0x1006, SPI_SETLISTBOXSMOOTHSCROLLING = 0x1007, SPI_GETGRADIENTCAPTIONS = 0x1008, SPI_SETGRADIENTCAPTIONS = 0x1009, SPI_GETKEYBOARDCUES = 0x100A, SPI_GETMENUUNDERLINES = SPI_GETKEYBOARDCUES, SPI_SETKEYBOARDCUES = 0x100B, SPI_SETMENUUNDERLINES = SPI_SETKEYBOARDCUES, SPI_GETACTIVEWNDTRKZORDER = 0x100C, SPI_SETACTIVEWNDTRKZORDER = 0x100D, SPI_GETHOTTRACKING = 0x100E, SPI_SETHOTTRACKING = 0x100F, SPI_GETMENUFADE = 0x1012, SPI_SETMENUFADE = 0x1013, SPI_GETSELECTIONFADE = 0x1014, SPI_SETSELECTIONFADE = 0x1015, SPI_GETTOOLTIPANIMATION = 0x1016, SPI_SETTOOLTIPANIMATION = 0x1017, SPI_GETTOOLTIPFADE = 0x1018, SPI_SETTOOLTIPFADE = 0x1019, SPI_GETCURSORSHADOW = 0x101A, SPI_SETCURSORSHADOW = 0x101B, SPI_GETBLOCKSENDINPUTRESETS = 0x1026, SPI_SETBLOCKSENDINPUTRESETS = 0x1027, SPI_GETUIEFFECTS = 0x103E, SPI_SETUIEFFECTS = 0x103F, SPI_GETFOREGROUNDLOCKTIMEOUT = 0x2000, SPI_SETFOREGROUNDLOCKTIMEOUT = 0x2001, SPI_GETACTIVEWNDTRKTIMEOUT = 0x2002, SPI_SETACTIVEWNDTRKTIMEOUT = 0x2003, SPI_GETFOREGROUNDFLASHCOUNT = 0x2004, SPI_SETFOREGROUNDFLASHCOUNT = 0x2005, SPI_GETCARETWIDTH = 0x2006, SPI_SETCARETWIDTH = 0x2007 } enum { SPIF_UPDATEINIFILE = 1, SPIF_SENDWININICHANGE = 2, SPIF_SENDCHANGE = SPIF_SENDWININICHANGE } // [Redefined] ATF_ONOFFFEEDBACK = 2 // [Redefined] ATF_TIMEOUTON = 1 enum WM_APP = 32768; enum WM_ACTIVATE = 6; enum WM_ACTIVATEAPP = 28; enum WM_AFXFIRST = 864; enum WM_AFXLAST = 895; enum WM_ASKCBFORMATNAME = 780; enum WM_CANCELJOURNAL = 75; enum WM_CANCELMODE = 31; enum WM_CAPTURECHANGED = 533; enum WM_CHANGECBCHAIN = 781; enum WM_CHAR = 258; enum WM_CHARTOITEM = 47; enum WM_CHILDACTIVATE = 34; enum WM_CLEAR = 771; enum WM_CLOSE = 16; enum WM_COMMAND = 273; enum WM_COMMNOTIFY = 68; // obsolete enum WM_COMPACTING = 65; enum WM_COMPAREITEM = 57; enum WM_CONTEXTMENU = 123; enum WM_COPY = 769; enum WM_COPYDATA = 74; enum WM_CREATE = 1; enum WM_CTLCOLORBTN = 309; enum WM_CTLCOLORDLG = 310; enum WM_CTLCOLOREDIT = 307; enum WM_CTLCOLORLISTBOX = 308; enum WM_CTLCOLORMSGBOX = 306; enum WM_CTLCOLORSCROLLBAR = 311; enum WM_CTLCOLORSTATIC = 312; enum WM_CUT = 768; enum WM_DEADCHAR = 259; enum WM_DELETEITEM = 45; enum WM_DESTROY = 2; enum WM_DESTROYCLIPBOARD = 775; enum WM_DEVICECHANGE = 537; enum WM_DEVMODECHANGE = 27; enum WM_DISPLAYCHANGE = 126; enum WM_DRAWCLIPBOARD = 776; enum WM_DRAWITEM = 43; enum WM_DROPFILES = 563; enum WM_ENABLE = 10; enum WM_ENDSESSION = 22; enum WM_ENTERIDLE = 289; enum WM_ENTERMENULOOP = 529; enum WM_ENTERSIZEMOVE = 561; enum WM_ERASEBKGND = 20; enum WM_EXITMENULOOP = 530; enum WM_EXITSIZEMOVE = 562; enum WM_FONTCHANGE = 29; enum WM_GETDLGCODE = 135; enum WM_GETFONT = 49; enum WM_GETHOTKEY = 51; enum WM_GETICON = 127; enum WM_GETMINMAXINFO = 36; enum WM_GETTEXT = 13; enum WM_GETTEXTLENGTH = 14; enum WM_HANDHELDFIRST = 856; enum WM_HANDHELDLAST = 863; enum WM_HELP = 83; enum WM_HOTKEY = 786; enum WM_HSCROLL = 276; enum WM_HSCROLLCLIPBOARD = 782; enum WM_ICONERASEBKGND = 39; enum WM_INITDIALOG = 272; enum WM_INITMENU = 278; enum WM_INITMENUPOPUP = 279; enum WM_INPUTLANGCHANGE = 81; enum WM_INPUTLANGCHANGEREQUEST = 80; enum WM_KEYDOWN = 256; enum WM_KEYUP = 257; enum WM_KILLFOCUS = 8; enum WM_MDIACTIVATE = 546; enum WM_MDICASCADE = 551; enum WM_MDICREATE = 544; enum WM_MDIDESTROY = 545; enum WM_MDIGETACTIVE = 553; enum WM_MDIICONARRANGE = 552; enum WM_MDIMAXIMIZE = 549; enum WM_MDINEXT = 548; enum WM_MDIREFRESHMENU = 564; enum WM_MDIRESTORE = 547; enum WM_MDISETMENU = 560; enum WM_MDITILE = 550; enum WM_MEASUREITEM = 44; enum WM_UNINITMENUPOPUP = 0x0125; enum WM_MENURBUTTONUP = 290; enum WM_MENUCOMMAND = 0x0126; enum WM_MENUGETOBJECT = 0x0124; enum WM_MENUDRAG = 0x0123; enum WM_CHANGEUISTATE = 0x0127; enum WM_UPDATEUISTATE = 0x0128; enum WM_QUERYUISTATE = 0x0129; // LOWORD(wParam) values in WM_*UISTATE* enum { UIS_SET = 1, UIS_CLEAR = 2, UIS_INITIALIZE = 3 } // HIWORD(wParam) values in WM_*UISTATE* enum { UISF_HIDEFOCUS = 0x1, UISF_HIDEACCEL = 0x2 } static if (_WIN32_WINNT >= 0x501) { // HIWORD(wParam) values in WM_*UISTATE* enum { UISF_ACTIVE = 0x4 } } enum WM_MENUCHAR = 288; enum WM_MENUSELECT = 287; enum WM_MOVE = 3; enum WM_MOVING = 534; enum WM_NCACTIVATE = 134; enum WM_NCCALCSIZE = 131; enum WM_NCCREATE = 129; enum WM_NCDESTROY = 130; enum WM_NCHITTEST = 132; enum WM_NCLBUTTONDBLCLK = 163; enum WM_NCLBUTTONDOWN = 161; enum WM_NCLBUTTONUP = 162; enum WM_NCMBUTTONDBLCLK = 169; enum WM_NCMBUTTONDOWN = 167; enum WM_NCMBUTTONUP = 168; enum WM_NCXBUTTONDOWN = 171; enum WM_NCXBUTTONUP = 172; enum WM_NCXBUTTONDBLCLK = 173; enum WM_NCMOUSEHOVER = 0x02A0; enum WM_NCMOUSELEAVE = 0x02A2; enum WM_NCMOUSEMOVE = 160; enum WM_NCPAINT = 133; enum WM_NCRBUTTONDBLCLK = 166; enum WM_NCRBUTTONDOWN = 164; enum WM_NCRBUTTONUP = 165; enum WM_NEXTDLGCTL = 40; enum WM_NEXTMENU = 531; enum WM_NOTIFY = 78; enum WM_NOTIFYFORMAT = 85; enum WM_NULL = 0; enum WM_PAINT = 15; enum WM_PAINTCLIPBOARD = 777; enum WM_PAINTICON = 38; enum WM_PALETTECHANGED = 785; enum WM_PALETTEISCHANGING = 784; enum WM_PARENTNOTIFY = 528; enum WM_PASTE = 770; enum WM_PENWINFIRST = 896; enum WM_PENWINLAST = 911; enum WM_POWER = 72; enum WM_POWERBROADCAST = 536; enum WM_PRINT = 791; enum WM_PRINTCLIENT = 792; enum WM_APPCOMMAND = 0x0319; enum WM_QUERYDRAGICON = 55; enum WM_QUERYENDSESSION = 17; enum WM_QUERYNEWPALETTE = 783; enum WM_QUERYOPEN = 19; enum WM_QUEUESYNC = 35; enum WM_QUIT = 18; enum WM_RENDERALLFORMATS = 774; enum WM_RENDERFORMAT = 773; enum WM_SETCURSOR = 32; enum WM_SETFOCUS = 7; enum WM_SETFONT = 48; enum WM_SETHOTKEY = 50; enum WM_SETICON = 128; enum WM_SETREDRAW = 11; enum WM_SETTEXT = 12; enum WM_SETTINGCHANGE = 26; enum WM_SHOWWINDOW = 24; enum WM_SIZE = 5; enum WM_SIZECLIPBOARD = 779; enum WM_SIZING = 532; enum WM_SPOOLERSTATUS = 42; enum WM_STYLECHANGED = 125; enum WM_STYLECHANGING = 124; enum WM_SYSCHAR = 262; enum WM_SYSCOLORCHANGE = 21; enum WM_SYSCOMMAND = 274; enum WM_SYSDEADCHAR = 263; enum WM_SYSKEYDOWN = 260; enum WM_SYSKEYUP = 261; static if (_WIN32_WINNT >= 0x501) { enum WM_TABLET_FIRST = 704; enum WM_TABLET_LAST = 735; } enum WM_TCARD = 82; enum WM_THEMECHANGED = 794; enum WM_TIMECHANGE = 30; enum WM_TIMER = 275; enum WM_UNDO = 772; enum WM_USER = 1024; enum WM_USERCHANGED = 84; enum WM_VKEYTOITEM = 46; enum WM_VSCROLL = 277; enum WM_VSCROLLCLIPBOARD = 778; enum WM_WINDOWPOSCHANGED = 71; enum WM_WINDOWPOSCHANGING = 70; enum WM_WININICHANGE = 26; static if (_WIN32_WINNT >= 0x501) { enum WM_WTSSESSION_CHANGE = 689; } enum WM_INPUT = 255; enum WM_KEYFIRST = 256; static if (_WIN32_WINNT >= 0x501) { enum WM_UNICHAR = 265; enum WM_KEYLAST = 265; enum UNICODE_NOCHAR = 0xFFFF; } else { enum WM_KEYLAST = 264; } enum WM_SYNCPAINT = 136; enum WM_MOUSEACTIVATE = 33; enum WM_MOUSEMOVE = 512; enum WM_LBUTTONDOWN = 513; enum WM_LBUTTONUP = 514; enum WM_LBUTTONDBLCLK = 515; enum WM_RBUTTONDOWN = 516; enum WM_RBUTTONUP = 517; enum WM_RBUTTONDBLCLK = 518; enum WM_MBUTTONDOWN = 519; enum WM_MBUTTONUP = 520; enum WM_MBUTTONDBLCLK = 521; enum WM_MOUSEWHEEL = 522; enum WM_MOUSEFIRST = 512; static if (_WIN32_WINNT >= 0x501) { enum WM_XBUTTONDOWN = 523; enum WM_XBUTTONUP = 524; enum WM_XBUTTONDBLCLK = 525; } static if (_WIN32_WINNT >= 0x600) { // FIXME: where did this come from? what version is it? enum WM_MOUSEHWHEEL = 526; } static if (_WIN32_WINNT >= 0x600) { enum WM_MOUSELAST = WM_MOUSEHWHEEL; } else static if (_WIN32_WINNT >= 0x501) { enum WM_MOUSELAST = WM_XBUTTONDBLCLK; } else { enum WM_MOUSELAST = WM_MOUSEWHEEL; } enum WM_MOUSEHOVER = 0x2A1; enum WM_MOUSELEAVE = 0x2A3; enum WHEEL_DELTA = 120; SHORT GET_WHEEL_DELTA_WPARAM()(WPARAM wparam) { return cast(SHORT) HIWORD(wparam); } enum WHEEL_PAGESCROLL = uint.max; enum BM_CLICK = 245; enum BM_GETCHECK = 240; enum BM_GETIMAGE = 246; enum BM_GETSTATE = 242; enum BM_SETCHECK = 241; enum BM_SETIMAGE = 247; static if (_WIN32_WINNT >= 0x600) { enum BM_SETDONTCLICK = 248; } enum BM_SETSTATE = 243; enum BM_SETSTYLE = 244; enum BN_CLICKED = 0; enum BN_DBLCLK = 5; enum BN_DISABLE = 4; enum BN_DOUBLECLICKED = 5; enum BN_HILITE = 2; enum BN_KILLFOCUS = 7; enum BN_PAINT = 1; enum BN_PUSHED = 2; enum BN_SETFOCUS = 6; enum BN_UNHILITE = 3; enum BN_UNPUSHED = 3; enum CB_ADDSTRING = 323; enum CB_DELETESTRING = 324; enum CB_DIR = 325; enum CB_FINDSTRING = 332; enum CB_FINDSTRINGEXACT = 344; enum CB_GETCOUNT = 326; enum CB_GETCURSEL = 327; enum CB_GETDROPPEDCONTROLRECT = 338; enum CB_GETDROPPEDSTATE = 343; enum CB_GETDROPPEDWIDTH = 351; enum CB_GETEDITSEL = 320; enum CB_GETEXTENDEDUI = 342; enum CB_GETHORIZONTALEXTENT = 349; enum CB_GETITEMDATA = 336; enum CB_GETITEMHEIGHT = 340; enum CB_GETLBTEXT = 328; enum CB_GETLBTEXTLEN = 329; enum CB_GETLOCALE = 346; enum CB_GETTOPINDEX = 347; enum CB_INITSTORAGE = 353; enum CB_INSERTSTRING = 330; enum CB_LIMITTEXT = 321; enum CB_RESETCONTENT = 331; enum CB_SELECTSTRING = 333; enum CB_SETCURSEL = 334; enum CB_SETDROPPEDWIDTH = 352; enum CB_SETEDITSEL = 322; enum CB_SETEXTENDEDUI = 341; enum CB_SETHORIZONTALEXTENT = 350; enum CB_SETITEMDATA = 337; enum CB_SETITEMHEIGHT = 339; enum CB_SETLOCALE = 345; enum CB_SETTOPINDEX = 348; enum CB_SHOWDROPDOWN = 335; static if (_WIN32_WINNT >= 0x501) { enum CB_GETCOMBOBOXINFO = 356; } enum CBN_CLOSEUP = 8; enum CBN_DBLCLK = 2; enum CBN_DROPDOWN = 7; enum CBN_EDITCHANGE = 5; enum CBN_EDITUPDATE = 6; enum CBN_ERRSPACE = (-1); enum CBN_KILLFOCUS = 4; enum CBN_SELCHANGE = 1; enum CBN_SELENDCANCEL = 10; enum CBN_SELENDOK = 9; enum CBN_SETFOCUS = 3; enum EM_CANUNDO = 198; enum EM_CHARFROMPOS = 215; enum EM_EMPTYUNDOBUFFER = 205; enum EM_FMTLINES = 200; enum EM_GETFIRSTVISIBLELINE = 206; enum EM_GETHANDLE = 189; enum EM_GETLIMITTEXT = 213; enum EM_GETLINE = 196; enum EM_GETLINECOUNT = 186; enum EM_GETMARGINS = 212; enum EM_GETMODIFY = 184; enum EM_GETPASSWORDCHAR = 210; enum EM_GETRECT = 178; enum EM_GETSEL = 176; enum EM_GETTHUMB = 190; enum EM_GETWORDBREAKPROC = 209; enum EM_LIMITTEXT = 197; enum EM_LINEFROMCHAR = 201; enum EM_LINEINDEX = 187; enum EM_LINELENGTH = 193; enum EM_LINESCROLL = 182; enum EM_POSFROMCHAR = 214; enum EM_REPLACESEL = 194; enum EM_SCROLL = 181; enum EM_SCROLLCARET = 183; enum EM_SETHANDLE = 188; enum EM_SETLIMITTEXT = 197; enum EM_SETMARGINS = 211; enum EM_SETMODIFY = 185; enum EM_SETPASSWORDCHAR = 204; enum EM_SETREADONLY = 207; enum EM_SETRECT = 179; enum EM_SETRECTNP = 180; enum EM_SETSEL = 177; enum EM_SETTABSTOPS = 203; enum EM_SETWORDBREAKPROC = 208; enum EM_UNDO = 199; enum EM_SETIMESTATUS = 216; enum EM_GETIMESTATUS = 217; enum EN_CHANGE = 768; enum EN_ERRSPACE = 1280; enum EN_HSCROLL = 1537; enum EN_KILLFOCUS = 512; enum EN_MAXTEXT = 1281; enum EN_SETFOCUS = 256; enum EN_UPDATE = 1024; enum EN_VSCROLL = 1538; enum LB_ADDFILE = 406; enum LB_ADDSTRING = 384; enum LB_DELETESTRING = 386; enum LB_DIR = 397; enum LB_FINDSTRING = 399; enum LB_FINDSTRINGEXACT = 418; enum LB_GETANCHORINDEX = 413; enum LB_GETCARETINDEX = 415; enum LB_GETCOUNT = 395; enum LB_GETCURSEL = 392; enum LB_GETHORIZONTALEXTENT = 403; enum LB_GETITEMDATA = 409; enum LB_GETITEMHEIGHT = 417; enum LB_GETITEMRECT = 408; enum LB_GETLOCALE = 422; enum LB_GETSEL = 391; enum LB_GETSELCOUNT = 400; enum LB_GETSELITEMS = 401; enum LB_GETTEXT = 393; enum LB_GETTEXTLEN = 394; enum LB_GETTOPINDEX = 398; enum LB_INITSTORAGE = 424; enum LB_INSERTSTRING = 385; enum LB_ITEMFROMPOINT = 425; enum LB_RESETCONTENT = 388; enum LB_SELECTSTRING = 396; enum LB_SELITEMRANGE = 411; enum LB_SELITEMRANGEEX = 387; enum LB_SETANCHORINDEX = 412; enum LB_SETCARETINDEX = 414; enum LB_SETCOLUMNWIDTH = 405; enum LB_SETCOUNT = 423; enum LB_SETCURSEL = 390; enum LB_SETHORIZONTALEXTENT = 404; enum LB_SETITEMDATA = 410; enum LB_SETITEMHEIGHT = 416; enum LB_SETLOCALE = 421; enum LB_SETSEL = 389; enum LB_SETTABSTOPS = 402; enum LB_SETTOPINDEX = 407; static if (_WIN32_WINNT >= 0x501) { enum LB_GETLISTBOXINFO = 434; } enum LBN_DBLCLK = 2; enum LBN_ERRSPACE = -2; enum LBN_KILLFOCUS = 5; enum LBN_SELCANCEL = 3; enum LBN_SELCHANGE = 1; enum LBN_SETFOCUS = 4; enum SBM_ENABLE_ARROWS = 228; enum SBM_GETPOS = 225; enum SBM_GETRANGE = 227; enum SBM_GETSCROLLINFO = 234; enum SBM_SETPOS = 224; enum SBM_SETRANGE = 226; enum SBM_SETRANGEREDRAW = 230; enum SBM_SETSCROLLINFO = 233; static if (_WIN32_WINNT >= 0x501) { enum SBM_GETSCROLLBARINFO = 235; } enum STM_GETICON = 369; enum STM_GETIMAGE = 371; enum STM_SETICON = 368; enum STM_SETIMAGE = 370; enum STN_CLICKED = 0; enum STN_DBLCLK = 1; enum STN_DISABLE = 3; enum STN_ENABLE = 2; enum STM_MSGMAX = 372; enum DM_GETDEFID = WM_USER; enum DM_SETDEFID = WM_USER+1; enum DM_REPOSITION = WM_USER+2; enum PSM_PAGEINFO = WM_USER+100; enum PSM_SHEETINFO = WM_USER+101; enum PSI_SETACTIVE = 1; enum PSI_KILLACTIVE = 2; enum PSI_APPLY = 3; enum PSI_RESET = 4; enum PSI_HASHELP = 5; enum PSI_HELP = 6; enum PSI_CHANGED = 1; enum PSI_GUISTART = 2; enum PSI_REBOOT = 3; enum PSI_GETSIBLINGS = 4; enum DCX_WINDOW = 1; enum DCX_CACHE = 2; enum DCX_PARENTCLIP = 32; enum DCX_CLIPSIBLINGS = 16; enum DCX_CLIPCHILDREN = 8; enum DCX_NORESETATTRS = 4; enum DCX_INTERSECTUPDATE = 0x200; enum DCX_LOCKWINDOWUPDATE = 0x400; enum DCX_EXCLUDERGN = 64; enum DCX_INTERSECTRGN = 128; enum DCX_EXCLUDEUPDATE = 256; enum DCX_VALIDATE = 0x200000; enum GMDI_GOINTOPOPUPS = 2; enum GMDI_USEDISABLED = 1; enum FKF_AVAILABLE = 2; enum FKF_CLICKON = 64; enum FKF_FILTERKEYSON = 1; enum FKF_HOTKEYACTIVE = 4; enum FKF_HOTKEYSOUND = 16; enum FKF_CONFIRMHOTKEY = 8; enum FKF_INDICATOR = 32; enum HCF_HIGHCONTRASTON = 1; enum HCF_AVAILABLE = 2; enum HCF_HOTKEYACTIVE = 4; enum HCF_CONFIRMHOTKEY = 8; enum HCF_HOTKEYSOUND = 16; enum HCF_INDICATOR = 32; enum HCF_HOTKEYAVAILABLE = 64; enum MKF_AVAILABLE = 2; enum MKF_CONFIRMHOTKEY = 8; enum MKF_HOTKEYACTIVE = 4; enum MKF_HOTKEYSOUND = 16; enum MKF_INDICATOR = 32; enum MKF_MOUSEKEYSON = 1; enum MKF_MODIFIERS = 64; enum MKF_REPLACENUMBERS = 128; enum SERKF_ACTIVE = 8; // May be obsolete. Not in recent MS docs. enum SERKF_AVAILABLE = 2; enum SERKF_INDICATOR = 4; enum SERKF_SERIALKEYSON = 1; enum SSF_AVAILABLE = 2; enum SSF_SOUNDSENTRYON = 1; enum SSTF_BORDER = 2; enum SSTF_CHARS = 1; enum SSTF_DISPLAY = 3; enum SSTF_NONE = 0; enum SSGF_DISPLAY = 3; enum SSGF_NONE = 0; enum SSWF_CUSTOM = 4; enum SSWF_DISPLAY = 3; enum SSWF_NONE = 0; enum SSWF_TITLE = 1; enum SSWF_WINDOW = 2; enum SKF_AUDIBLEFEEDBACK = 64; enum SKF_AVAILABLE = 2; enum SKF_CONFIRMHOTKEY = 8; enum SKF_HOTKEYACTIVE = 4; enum SKF_HOTKEYSOUND = 16; enum SKF_INDICATOR = 32; enum SKF_STICKYKEYSON = 1; enum SKF_TRISTATE = 128; enum SKF_TWOKEYSOFF = 256; enum TKF_AVAILABLE = 2; enum TKF_CONFIRMHOTKEY = 8; enum TKF_HOTKEYACTIVE = 4; enum TKF_HOTKEYSOUND = 16; enum TKF_TOGGLEKEYSON = 1; enum MDITILE_SKIPDISABLED = 2; enum MDITILE_HORIZONTAL = 1; enum MDITILE_VERTICAL = 0; enum { VK_LBUTTON = 0x01, VK_RBUTTON = 0x02, VK_CANCEL = 0x03, VK_MBUTTON = 0x04, VK_XBUTTON1 = 0x05, VK_XBUTTON2 = 0x06, VK_BACK = 0x08, VK_TAB = 0x09, VK_CLEAR = 0x0C, VK_RETURN = 0x0D, VK_SHIFT = 0x10, VK_CONTROL = 0x11, VK_MENU = 0x12, VK_PAUSE = 0x13, VK_CAPITAL = 0x14, VK_KANA = 0x15, VK_HANGEUL = 0x15, VK_HANGUL = 0x15, VK_JUNJA = 0x17, VK_FINAL = 0x18, VK_HANJA = 0x19, VK_KANJI = 0x19, VK_ESCAPE = 0x1B, VK_CONVERT = 0x1C, VK_NONCONVERT = 0x1D, VK_ACCEPT = 0x1E, VK_MODECHANGE = 0x1F, VK_SPACE = 0x20, VK_PRIOR = 0x21, VK_NEXT = 0x22, VK_END = 0x23, VK_HOME = 0x24, VK_LEFT = 0x25, VK_UP = 0x26, VK_RIGHT = 0x27, VK_DOWN = 0x28, VK_SELECT = 0x29, VK_PRINT = 0x2A, VK_EXECUTE = 0x2B, VK_SNAPSHOT = 0x2C, VK_INSERT = 0x2D, VK_DELETE = 0x2E, VK_HELP = 0x2F, VK_LWIN = 0x5B, VK_RWIN = 0x5C, VK_APPS = 0x5D, VK_SLEEP = 0x5F, VK_NUMPAD0 = 0x60, VK_NUMPAD1 = 0x61, VK_NUMPAD2 = 0x62, VK_NUMPAD3 = 0x63, VK_NUMPAD4 = 0x64, VK_NUMPAD5 = 0x65, VK_NUMPAD6 = 0x66, VK_NUMPAD7 = 0x67, VK_NUMPAD8 = 0x68, VK_NUMPAD9 = 0x69, VK_MULTIPLY = 0x6A, VK_ADD = 0x6B, VK_SEPARATOR = 0x6C, VK_SUBTRACT = 0x6D, VK_DECIMAL = 0x6E, VK_DIVIDE = 0x6F, VK_F1 = 0x70, VK_F2 = 0x71, VK_F3 = 0x72, VK_F4 = 0x73, VK_F5 = 0x74, VK_F6 = 0x75, VK_F7 = 0x76, VK_F8 = 0x77, VK_F9 = 0x78, VK_F10 = 0x79, VK_F11 = 0x7A, VK_F12 = 0x7B, VK_F13 = 0x7C, VK_F14 = 0x7D, VK_F15 = 0x7E, VK_F16 = 0x7F, VK_F17 = 0x80, VK_F18 = 0x81, VK_F19 = 0x82, VK_F20 = 0x83, VK_F21 = 0x84, VK_F22 = 0x85, VK_F23 = 0x86, VK_F24 = 0x87, VK_NUMLOCK = 0x90, VK_SCROLL = 0x91, VK_LSHIFT = 0xA0, VK_RSHIFT = 0xA1, VK_LCONTROL = 0xA2, VK_RCONTROL = 0xA3, VK_LMENU = 0xA4, VK_RMENU = 0xA5, VK_BROWSER_BACK = 0xA6, VK_BROWSER_FORWARD = 0xA7, VK_BROWSER_REFRESH = 0xA8, VK_BROWSER_STOP = 0xA9, VK_BROWSER_SEARCH = 0xAA, VK_BROWSER_FAVORITES = 0xAB, VK_BROWSER_HOME = 0xAC, VK_VOLUME_MUTE = 0xAD, VK_VOLUME_DOWN = 0xAE, VK_VOLUME_UP = 0xAF, VK_MEDIA_NEXT_TRACK = 0xB0, VK_MEDIA_PREV_TRACK = 0xB1, VK_MEDIA_STOP = 0xB2, VK_MEDIA_PLAY_PAUSE = 0xB3, VK_LAUNCH_MAIL = 0xB4, VK_LAUNCH_MEDIA_SELECT = 0xB5, VK_LAUNCH_APP1 = 0xB6, VK_LAUNCH_APP2 = 0xB7, VK_OEM_1 = 0xBA, VK_OEM_PLUS = 0xBB, VK_OEM_COMMA = 0xBC, VK_OEM_MINUS = 0xBD, VK_OEM_PERIOD = 0xBE, VK_OEM_2 = 0xBF, VK_OEM_3 = 0xC0, VK_OEM_4 = 0xDB, VK_OEM_5 = 0xDC, VK_OEM_6 = 0xDD, VK_OEM_7 = 0xDE, VK_OEM_8 = 0xDF, VK_OEM_102 = 0xE2, VK_PROCESSKEY = 0xE5, VK_PACKET = 0xE7, VK_ATTN = 0xF6, VK_CRSEL = 0xF7, VK_EXSEL = 0xF8, VK_EREOF = 0xF9, VK_PLAY = 0xFA, VK_ZOOM = 0xFB, VK_NONAME = 0xFC, VK_PA1 = 0xFD, VK_OEM_CLEAR = 0xFE, } enum TME_HOVER = 1; enum TME_LEAVE = 2; enum TME_QUERY = 0x40000000; enum TME_CANCEL = 0x80000000; enum HOVER_DEFAULT = 0xFFFFFFFF; enum MK_LBUTTON = 1; enum MK_RBUTTON = 2; enum MK_SHIFT = 4; enum MK_CONTROL = 8; enum MK_MBUTTON = 16; enum MK_XBUTTON1 = 32; enum MK_XBUTTON2 = 64; enum { TPM_RECURSE = 0x0001, TPM_LEFTBUTTON = 0, TPM_RIGHTBUTTON = 0x0002, TPM_LEFTALIGN = 0, TPM_CENTERALIGN = 0x0004, TPM_RIGHTALIGN = 0x0008, TPM_TOPALIGN = 0, TPM_VCENTERALIGN = 0x0010, TPM_BOTTOMALIGN = 0x0020, TPM_HORIZONTAL = 0, TPM_VERTICAL = 0x0040, TPM_NONOTIFY = 0x0080, TPM_RETURNCMD = 0x0100 } enum HELP_COMMAND = 0x102; enum HELP_CONTENTS = 3; enum HELP_CONTEXT = 1; enum HELP_CONTEXTPOPUP = 8; enum HELP_FORCEFILE = 9; enum HELP_HELPONHELP = 4; enum HELP_INDEX = 3; enum HELP_KEY = 0x101; enum HELP_MULTIKEY = 0x201; enum HELP_PARTIALKEY = 0x105; enum HELP_QUIT = 2; enum HELP_SETCONTENTS = 5; enum HELP_SETINDEX = 5; enum HELP_SETWINPOS = 0x203; enum HELP_CONTEXTMENU = 0xa; enum HELP_FINDER = 0xb; enum HELP_WM_HELP = 0xc; enum HELP_TCARD = 0x8000; enum HELP_TCARD_DATA = 16; enum HELP_TCARD_OTHER_CALLER = 0x11; enum IDH_NO_HELP = 28440; enum IDH_MISSING_CONTEXT = 28441; enum IDH_GENERIC_HELP_BUTTON = 28442; enum IDH_OK = 28443; enum IDH_CANCEL = 28444; enum IDH_HELP = 28445; enum LB_CTLCODE = 0; enum LB_OKAY = 0; enum LB_ERR = -1; enum LB_ERRSPACE = -2; enum CB_OKAY = 0; enum CB_ERR = -1; enum CB_ERRSPACE = -2; enum HIDE_WINDOW = 0; enum SHOW_OPENWINDOW = 1; enum SHOW_ICONWINDOW = 2; enum SHOW_FULLSCREEN = 3; enum SHOW_OPENNOACTIVATE = 4; enum KF_EXTENDED = 256; enum KF_DLGMODE = 2048; enum KF_MENUMODE = 4096; enum KF_ALTDOWN = 8192; enum KF_REPEAT = 16384; enum KF_UP = 32768; enum WSF_VISIBLE = 1; enum PWR_OK = 1; enum PWR_FAIL = -1; enum PWR_SUSPENDREQUEST = 1; enum PWR_SUSPENDRESUME = 2; enum PWR_CRITICALRESUME = 3; enum NFR_ANSI = 1; enum NFR_UNICODE = 2; enum NF_QUERY = 3; enum NF_REQUERY = 4; enum MENULOOP_WINDOW = 0; enum MENULOOP_POPUP = 1; enum WMSZ_LEFT = 1; enum WMSZ_RIGHT = 2; enum WMSZ_TOP = 3; enum WMSZ_TOPLEFT = 4; enum WMSZ_TOPRIGHT = 5; enum WMSZ_BOTTOM = 6; enum WMSZ_BOTTOMLEFT = 7; enum WMSZ_BOTTOMRIGHT = 8; enum HTERROR = -2; enum HTTRANSPARENT = -1; enum HTNOWHERE = 0; enum HTCLIENT = 1; enum HTCAPTION = 2; enum HTSYSMENU = 3; enum HTGROWBOX = 4; enum HTSIZE = 4; enum HTMENU = 5; enum HTHSCROLL = 6; enum HTVSCROLL = 7; enum HTMINBUTTON = 8; enum HTMAXBUTTON = 9; enum HTREDUCE = 8; enum HTZOOM = 9; enum HTLEFT = 10; enum HTSIZEFIRST = 10; enum HTRIGHT = 11; enum HTTOP = 12; enum HTTOPLEFT = 13; enum HTTOPRIGHT = 14; enum HTBOTTOM = 15; enum HTBOTTOMLEFT = 16; enum HTBOTTOMRIGHT = 17; enum HTSIZELAST = 17; enum HTBORDER = 18; enum HTOBJECT = 19; enum HTCLOSE = 20; enum HTHELP = 21; enum MA_ACTIVATE = 1; enum MA_ACTIVATEANDEAT = 2; enum MA_NOACTIVATE = 3; enum MA_NOACTIVATEANDEAT = 4; enum SIZE_RESTORED = 0; enum SIZE_MINIMIZED = 1; enum SIZE_MAXIMIZED = 2; enum SIZE_MAXSHOW = 3; enum SIZE_MAXHIDE = 4; enum SIZENORMAL = 0; enum SIZEICONIC = 1; enum SIZEFULLSCREEN = 2; enum SIZEZOOMSHOW = 3; enum SIZEZOOMHIDE = 4; enum WVR_ALIGNTOP = 16; enum WVR_ALIGNLEFT = 32; enum WVR_ALIGNBOTTOM = 64; enum WVR_ALIGNRIGHT = 128; enum WVR_HREDRAW = 256; enum WVR_VREDRAW = 512; enum WVR_REDRAW = (WVR_HREDRAW|WVR_VREDRAW); enum WVR_VALIDRECTS = 1024; enum PRF_CHECKVISIBLE = 1; enum PRF_NONCLIENT = 2; enum PRF_CLIENT = 4; enum PRF_ERASEBKGND = 8; enum PRF_CHILDREN = 16; enum PRF_OWNED = 32; enum IDANI_OPEN = 1; enum IDANI_CLOSE = 2; enum IDANI_CAPTION = 3; enum WPF_RESTORETOMAXIMIZED = 2; enum WPF_SETMINPOSITION = 1; enum ODT_MENU = 1; enum ODT_LISTBOX = 2; enum ODT_COMBOBOX = 3; enum ODT_BUTTON = 4; enum ODT_STATIC = 5; enum ODA_DRAWENTIRE = 1; enum ODA_SELECT = 2; enum ODA_FOCUS = 4; enum ODS_SELECTED = 1; enum ODS_GRAYED = 2; enum ODS_DISABLED = 4; enum ODS_CHECKED = 8; enum ODS_FOCUS = 16; enum ODS_DEFAULT = 32; enum ODS_COMBOBOXEDIT = 4096; enum IDHOT_SNAPWINDOW = -1; enum IDHOT_SNAPDESKTOP = -2; enum DBWF_LPARAMPOINTER = 0x8000; enum DLGWINDOWEXTRA = 30; enum MNC_IGNORE = 0; enum MNC_CLOSE = 1; enum MNC_EXECUTE = 2; enum MNC_SELECT = 3; enum DOF_EXECUTABLE = 0x8001; enum DOF_DOCUMENT = 0x8002; enum DOF_DIRECTORY = 0x8003; enum DOF_MULTIPLE = 0x8004; enum DOF_PROGMAN = 1; enum DOF_SHELLDATA = 2; enum DO_DROPFILE = 0x454C4946; enum DO_PRINTFILE = 0x544E5250; enum SC_SIZE = 0xF000; enum SC_MOVE = 0xF010; enum SC_MINIMIZE = 0xF020; enum SC_ICON = 0xf020; enum SC_MAXIMIZE = 0xF030; enum SC_ZOOM = 0xF030; enum SC_NEXTWINDOW = 0xF040; enum SC_PREVWINDOW = 0xF050; enum SC_CLOSE = 0xF060; enum SC_VSCROLL = 0xF070; enum SC_HSCROLL = 0xF080; enum SC_MOUSEMENU = 0xF090; enum SC_KEYMENU = 0xF100; enum SC_ARRANGE = 0xF110; enum SC_RESTORE = 0xF120; enum SC_TASKLIST = 0xF130; enum SC_SCREENSAVE = 0xF140; enum SC_HOTKEY = 0xF150; enum SC_DEFAULT = 0xF160; enum SC_MONITORPOWER = 0xF170; enum SC_CONTEXTHELP = 0xF180; enum SC_SEPARATOR = 0xF00F; enum EC_LEFTMARGIN = 1; enum EC_RIGHTMARGIN = 2; enum EC_USEFONTINFO = 0xffff; enum DC_HASDEFID = 0x534B; enum DLGC_WANTARROWS = 1; enum DLGC_WANTTAB = 2; enum DLGC_WANTALLKEYS = 4; enum DLGC_WANTMESSAGE = 4; enum DLGC_HASSETSEL = 8; enum DLGC_DEFPUSHBUTTON = 16; enum DLGC_UNDEFPUSHBUTTON = 32; enum DLGC_RADIOBUTTON = 64; enum DLGC_WANTCHARS = 128; enum DLGC_STATIC = 256; enum DLGC_BUTTON = 0x2000; enum WA_INACTIVE = 0; enum WA_ACTIVE = 1; enum WA_CLICKACTIVE = 2; enum ICON_SMALL = 0; enum ICON_BIG = 1; static if (_WIN32_WINNT >= 0x501) { enum ICON_SMALL2 = 2; } enum HBITMAP HBMMENU_CALLBACK = cast(HBITMAP)-1, HBMMENU_SYSTEM = cast(HBITMAP)1, HBMMENU_MBAR_RESTORE = cast(HBITMAP)2, HBMMENU_MBAR_MINIMIZE = cast(HBITMAP)3, HBMMENU_MBAR_CLOSE = cast(HBITMAP)5, HBMMENU_MBAR_CLOSE_D = cast(HBITMAP)6, HBMMENU_MBAR_MINIMIZE_D = cast(HBITMAP)7, HBMMENU_POPUP_CLOSE = cast(HBITMAP)8, HBMMENU_POPUP_RESTORE = cast(HBITMAP)9, HBMMENU_POPUP_MAXIMIZE = cast(HBITMAP)10, HBMMENU_POPUP_MINIMIZE = cast(HBITMAP)11; enum MOD_ALT = 1; enum MOD_CONTROL = 2; enum MOD_SHIFT = 4; enum MOD_WIN = 8; enum MOD_IGNORE_ALL_MODIFIER = 1024; enum MOD_ON_KEYUP = 2048; enum MOD_RIGHT = 16384; enum MOD_LEFT = 32768; enum LLKHF_EXTENDED = (KF_EXTENDED >> 8); enum LLKHF_INJECTED = 0x00000010; enum LLKHF_ALTDOWN = (KF_ALTDOWN >> 8); enum LLKHF_UP = (KF_UP >> 8); enum CURSOR_SHOWING = 0x00000001; enum WS_ACTIVECAPTION = 0x00000001; enum ENDSESSION_LOGOFF = 0x80000000; enum GA_PARENT = 1; enum GA_ROOT = 2; enum GA_ROOTOWNER = 3; enum { MAPVK_VK_TO_VSC, MAPVK_VSC_TO_VK, MAPVK_VK_TO_CHAR, MAPVK_VSC_TO_VK_EX, MAPVK_VK_TO_VSC_EX // = 4 } enum { INPUT_MOUSE, INPUT_KEYBOARD, INPUT_HARDWARE // = 2 } // Callbacks // --------- extern (Windows) nothrow { alias INT_PTR function(HWND, UINT, WPARAM, LPARAM) DLGPROC; alias void function(HWND, UINT, UINT_PTR, DWORD) TIMERPROC; alias BOOL function(HDC, LPARAM, int) GRAYSTRINGPROC; alias LRESULT function(int, WPARAM, LPARAM) HOOKPROC; alias BOOL function(HWND, LPCSTR, HANDLE) PROPENUMPROCA; alias BOOL function(HWND, LPCWSTR, HANDLE) PROPENUMPROCW; alias BOOL function(HWND, LPSTR, HANDLE, ULONG_PTR) PROPENUMPROCEXA; alias BOOL function(HWND, LPWSTR, HANDLE, ULONG_PTR) PROPENUMPROCEXW; alias int function(LPSTR, int, int, int) EDITWORDBREAKPROCA; alias int function(LPWSTR, int, int, int) EDITWORDBREAKPROCW; alias LRESULT function(HWND, UINT, WPARAM, LPARAM) WNDPROC; alias BOOL function(HDC, LPARAM, WPARAM, int, int) DRAWSTATEPROC; alias BOOL function(HWND, LPARAM) WNDENUMPROC; alias BOOL function(HWND, LPARAM) ENUMWINDOWSPROC; alias void function(LPHELPINFO) MSGBOXCALLBACK; alias BOOL function(HMONITOR, HDC, LPRECT, LPARAM) MONITORENUMPROC; alias BOOL function(LPSTR, LPARAM) NAMEENUMPROCA; alias BOOL function(LPWSTR, LPARAM) NAMEENUMPROCW; alias void function(HWND, UINT, ULONG_PTR, LRESULT) SENDASYNCPROC; alias NAMEENUMPROCA DESKTOPENUMPROCA; alias NAMEENUMPROCW DESKTOPENUMPROCW; alias NAMEENUMPROCA WINSTAENUMPROCA; alias NAMEENUMPROCW WINSTAENUMPROCW; } mixin DECLARE_HANDLE!("HDWP"); mixin DECLARE_HANDLE!("HDEVNOTIFY"); struct MENUGETOBJECTINFO { DWORD dwFlags; UINT uPos; HMENU hmenu; PVOID riid; PVOID pvObj; } alias MENUGETOBJECTINFO* PMENUGETOBJECTINFO; struct ACCEL { BYTE fVirt; WORD key; WORD cmd; } alias ACCEL* LPACCEL; struct ACCESSTIMEOUT { UINT cbSize = ACCESSTIMEOUT.sizeof; DWORD dwFlags; DWORD iTimeOutMSec; } alias ACCESSTIMEOUT* LPACCESSTIMEOUT; struct ANIMATIONINFO { UINT cbSize = ANIMATIONINFO.sizeof; int iMinAnimate; } alias ANIMATIONINFO* LPANIMATIONINFO; struct CREATESTRUCTA { LPVOID lpCreateParams; HINSTANCE hInstance; HMENU hMenu; HWND hwndParent; int cy; int cx; int y; int x; LONG style; LPCSTR lpszName; LPCSTR lpszClass; DWORD dwExStyle; } alias CREATESTRUCTA* LPCREATESTRUCTA; struct CREATESTRUCTW { LPVOID lpCreateParams; HINSTANCE hInstance; HMENU hMenu; HWND hwndParent; int cy; int cx; int y; int x; LONG style; LPCWSTR lpszName; LPCWSTR lpszClass; DWORD dwExStyle; } alias CREATESTRUCTW* LPCREATESTRUCTW; struct CBT_CREATEWNDA { LPCREATESTRUCTA lpcs; HWND hwndInsertAfter; } alias CBT_CREATEWNDA* LPCBT_CREATEWNDA; struct CBT_CREATEWNDW { LPCREATESTRUCTW lpcs; HWND hwndInsertAfter; } alias CBT_CREATEWNDW* LPCBT_CREATEWNDW; struct CBTACTIVATESTRUCT { BOOL fMouse; HWND hWndActive; } alias CBTACTIVATESTRUCT* LPCBTACTIVATESTRUCT; static if (_WIN32_WINNT >= 0x501) { struct WTSSESSION_NOTIFICATION { DWORD cbSize; DWORD dwSessionId; } alias WTSSESSION_NOTIFICATION* PWTSSESSION_NOTIFICATION; } struct CLIENTCREATESTRUCT { HANDLE hWindowMenu; UINT idFirstChild; } alias CLIENTCREATESTRUCT* LPCLIENTCREATESTRUCT; struct COMPAREITEMSTRUCT { UINT CtlType; UINT CtlID; HWND hwndItem; UINT itemID1; ULONG_PTR itemData1; UINT itemID2; ULONG_PTR itemData2; DWORD dwLocaleId; } alias COMPAREITEMSTRUCT* LPCOMPAREITEMSTRUCT; struct COPYDATASTRUCT { ULONG_PTR dwData; DWORD cbData; PVOID lpData; } alias COPYDATASTRUCT* PCOPYDATASTRUCT; struct CURSORSHAPE { int xHotSpot; int yHotSpot; int cx; int cy; int cbWidth; BYTE Planes; BYTE BitsPixel; } alias CURSORSHAPE* LPCURSORSHAPE; struct CWPRETSTRUCT { LRESULT lResult; LPARAM lParam; WPARAM wParam; DWORD message; HWND hwnd; } struct CWPSTRUCT { LPARAM lParam; WPARAM wParam; UINT message; HWND hwnd; } alias CWPSTRUCT* PCWPSTRUCT; struct DEBUGHOOKINFO { DWORD idThread; DWORD idThreadInstaller; LPARAM lParam; WPARAM wParam; int code; } alias DEBUGHOOKINFO* PDEBUGHOOKINFO, LPDEBUGHOOKINFO; struct DELETEITEMSTRUCT { UINT CtlType; UINT CtlID; UINT itemID; HWND hwndItem; ULONG_PTR itemData; } alias DELETEITEMSTRUCT* PDELETEITEMSTRUCT, LPDELETEITEMSTRUCT; align(2): struct DLGITEMTEMPLATE { DWORD style; DWORD dwExtendedStyle; short x; short y; short cx; short cy; WORD id; } alias DLGITEMTEMPLATE* LPDLGITEMTEMPLATE; struct DLGTEMPLATE { DWORD style; DWORD dwExtendedStyle; WORD cdit; short x; short y; short cx; short cy; } alias DLGTEMPLATE* LPDLGTEMPLATE, LPDLGTEMPLATEA, LPDLGTEMPLATEW; alias const(DLGTEMPLATE)* LPCDLGTEMPLATE, LPCDLGTEMPLATEA, LPCDLGTEMPLATEW; align: struct DRAWITEMSTRUCT { UINT CtlType; UINT CtlID; UINT itemID; UINT itemAction; UINT itemState; HWND hwndItem; HDC hDC; RECT rcItem; ULONG_PTR itemData; } alias DRAWITEMSTRUCT* LPDRAWITEMSTRUCT, PDRAWITEMSTRUCT; struct DRAWTEXTPARAMS { UINT cbSize = DRAWTEXTPARAMS.sizeof; int iTabLength; int iLeftMargin; int iRightMargin; UINT uiLengthDrawn; } alias DRAWTEXTPARAMS* LPDRAWTEXTPARAMS; struct PAINTSTRUCT { HDC hdc; BOOL fErase; RECT rcPaint; BOOL fRestore; BOOL fIncUpdate; BYTE[32] rgbReserved; } alias PAINTSTRUCT* PPAINTSTRUCT, NPPAINTSTRUCT, LPPAINTSTRUCT; struct MSG { HWND hwnd; UINT message; WPARAM wParam; LPARAM lParam; DWORD time; POINT pt; } alias MSG* NPMSG, LPMSG, PMSG; struct ICONINFO { BOOL fIcon; DWORD xHotspot; DWORD yHotspot; HBITMAP hbmMask; HBITMAP hbmColor; } alias ICONINFO* PICONINFO; struct NMHDR { HWND hwndFrom; UINT_PTR idFrom; UINT code; } alias NMHDR* LPNMHDR; struct WNDCLASSA { UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCSTR lpszMenuName; LPCSTR lpszClassName; } alias WNDCLASSA* NPWNDCLASSA, LPWNDCLASSA, PWNDCLASSA; struct WNDCLASSW { UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCWSTR lpszMenuName; LPCWSTR lpszClassName; } alias WNDCLASSW* NPWNDCLASSW, LPWNDCLASSW, PWNDCLASSW; struct WNDCLASSEXA { UINT cbSize = WNDCLASSEXA.sizeof; UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCSTR lpszMenuName; LPCSTR lpszClassName; HICON hIconSm; } alias WNDCLASSEXA* NPWNDCLASSEXA, LPWNDCLASSEXA, PWNDCLASSEXA; struct WNDCLASSEXW { UINT cbSize = WNDCLASSEXW.sizeof; UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCWSTR lpszMenuName; LPCWSTR lpszClassName; HICON hIconSm; } alias WNDCLASSEXW* LPWNDCLASSEXW, PWNDCLASSEXW; struct MENUITEMINFOA { UINT cbSize = MENUITEMINFOA.sizeof; UINT fMask; UINT fType; UINT fState; UINT wID; HMENU hSubMenu; HBITMAP hbmpChecked; HBITMAP hbmpUnchecked; ULONG_PTR dwItemData; LPSTR dwTypeData; UINT cch; HBITMAP hbmpItem; } alias MENUITEMINFOA* LPMENUITEMINFOA; alias const(MENUITEMINFOA)* LPCMENUITEMINFOA; struct MENUITEMINFOW { UINT cbSize = MENUITEMINFOW.sizeof; UINT fMask; UINT fType; UINT fState; UINT wID; HMENU hSubMenu; HBITMAP hbmpChecked; HBITMAP hbmpUnchecked; ULONG_PTR dwItemData; LPWSTR dwTypeData; UINT cch; HBITMAP hbmpItem; } alias MENUITEMINFOW* LPMENUITEMINFOW; alias const(MENUITEMINFOW)* LPCMENUITEMINFOW; struct SCROLLINFO { UINT cbSize = this.sizeof; UINT fMask; int nMin; int nMax; UINT nPage; int nPos; int nTrackPos; } alias SCROLLINFO* LPSCROLLINFO; alias const(SCROLLINFO)* LPCSCROLLINFO; struct WINDOWPLACEMENT { UINT length; UINT flags; UINT showCmd; POINT ptMinPosition; POINT ptMaxPosition; RECT rcNormalPosition; } alias WINDOWPLACEMENT* LPWINDOWPLACEMENT, PWINDOWPLACEMENT; struct MENUITEMTEMPLATEHEADER { WORD versionNumber; WORD offset; } struct MENUITEMTEMPLATE { WORD mtOption; WORD mtID; WCHAR[1] mtString = 0; } alias void MENUTEMPLATE, MENUTEMPLATEA, MENUTEMPLATEW; alias MENUTEMPLATE* LPMENUTEMPLATEA, LPMENUTEMPLATEW, LPMENUTEMPLATE; struct HELPINFO { UINT cbSize = this.sizeof; int iContextType; int iCtrlId; HANDLE hItemHandle; DWORD_PTR dwContextId; POINT MousePos; } alias HELPINFO* LPHELPINFO; struct MSGBOXPARAMSA { UINT cbSize = this.sizeof; HWND hwndOwner; HINSTANCE hInstance; LPCSTR lpszText; LPCSTR lpszCaption; DWORD dwStyle; LPCSTR lpszIcon; DWORD_PTR dwContextHelpId; MSGBOXCALLBACK lpfnMsgBoxCallback; DWORD dwLanguageId; } alias MSGBOXPARAMSA* PMSGBOXPARAMSA, LPMSGBOXPARAMSA; struct MSGBOXPARAMSW { UINT cbSize = this.sizeof; HWND hwndOwner; HINSTANCE hInstance; LPCWSTR lpszText; LPCWSTR lpszCaption; DWORD dwStyle; LPCWSTR lpszIcon; DWORD_PTR dwContextHelpId; MSGBOXCALLBACK lpfnMsgBoxCallback; DWORD dwLanguageId; } alias MSGBOXPARAMSW* PMSGBOXPARAMSW, LPMSGBOXPARAMSW; struct USEROBJECTFLAGS { BOOL fInherit; BOOL fReserved; DWORD dwFlags; } struct FILTERKEYS { UINT cbSize = this.sizeof; DWORD dwFlags; DWORD iWaitMSec; DWORD iDelayMSec; DWORD iRepeatMSec; DWORD iBounceMSec; } struct HIGHCONTRASTA { UINT cbSize = this.sizeof; DWORD dwFlags; LPSTR lpszDefaultScheme; } alias HIGHCONTRASTA* LPHIGHCONTRASTA; struct HIGHCONTRASTW { UINT cbSize = this.sizeof; DWORD dwFlags; LPWSTR lpszDefaultScheme; } alias HIGHCONTRASTW* LPHIGHCONTRASTW; struct ICONMETRICSA { UINT cbSize = this.sizeof; int iHorzSpacing; int iVertSpacing; int iTitleWrap; LOGFONTA lfFont; } alias ICONMETRICSA* LPICONMETRICSA; struct ICONMETRICSW { UINT cbSize = this.sizeof; int iHorzSpacing; int iVertSpacing; int iTitleWrap; LOGFONTW lfFont; } alias ICONMETRICSW* LPICONMETRICSW; struct MINIMIZEDMETRICS { UINT cbSize = this.sizeof; int iWidth; int iHorzGap; int iVertGap; int iArrange; } alias MINIMIZEDMETRICS* LPMINIMIZEDMETRICS; struct MOUSEKEYS { UINT cbSize = this.sizeof; DWORD dwFlags; DWORD iMaxSpeed; DWORD iTimeToMaxSpeed; DWORD iCtrlSpeed; DWORD dwReserved1; DWORD dwReserved2; } alias MOUSEKEYS* LPMOUSEKEYS; struct NONCLIENTMETRICSA { UINT cbSize = this.sizeof; int iBorderWidth; int iScrollWidth; int iScrollHeight; int iCaptionWidth; int iCaptionHeight; LOGFONTA lfCaptionFont; int iSmCaptionWidth; int iSmCaptionHeight; LOGFONTA lfSmCaptionFont; int iMenuWidth; int iMenuHeight; LOGFONTA lfMenuFont; LOGFONTA lfStatusFont; LOGFONTA lfMessageFont; } alias NONCLIENTMETRICSA* LPNONCLIENTMETRICSA; struct NONCLIENTMETRICSW { UINT cbSize = this.sizeof; int iBorderWidth; int iScrollWidth; int iScrollHeight; int iCaptionWidth; int iCaptionHeight; LOGFONTW lfCaptionFont; int iSmCaptionWidth; int iSmCaptionHeight; LOGFONTW lfSmCaptionFont; int iMenuWidth; int iMenuHeight; LOGFONTW lfMenuFont; LOGFONTW lfStatusFont; LOGFONTW lfMessageFont; } alias NONCLIENTMETRICSW* LPNONCLIENTMETRICSW; struct SERIALKEYSA { UINT cbSize = this.sizeof; DWORD dwFlags; LPSTR lpszActivePort; LPSTR lpszPort; UINT iBaudRate; UINT iPortState; UINT iActive; } alias SERIALKEYSA* LPSERIALKEYSA; struct SERIALKEYSW { UINT cbSize = this.sizeof; DWORD dwFlags; LPWSTR lpszActivePort; LPWSTR lpszPort; UINT iBaudRate; UINT iPortState; UINT iActive; } alias SERIALKEYSW* LPSERIALKEYSW; struct SOUNDSENTRYA { UINT cbSize = this.sizeof; DWORD dwFlags; DWORD iFSTextEffect; DWORD iFSTextEffectMSec; DWORD iFSTextEffectColorBits; DWORD iFSGrafEffect; DWORD iFSGrafEffectMSec; DWORD iFSGrafEffectColor; DWORD iWindowsEffect; DWORD iWindowsEffectMSec; LPSTR lpszWindowsEffectDLL; DWORD iWindowsEffectOrdinal; } alias SOUNDSENTRYA* LPSOUNDSENTRYA; struct SOUNDSENTRYW { UINT cbSize = this.sizeof; DWORD dwFlags; DWORD iFSTextEffect; DWORD iFSTextEffectMSec; DWORD iFSTextEffectColorBits; DWORD iFSGrafEffect; DWORD iFSGrafEffectMSec; DWORD iFSGrafEffectColor; DWORD iWindowsEffect; DWORD iWindowsEffectMSec; LPWSTR lpszWindowsEffectDLL; DWORD iWindowsEffectOrdinal; } alias SOUNDSENTRYW* LPSOUNDSENTRYW; struct STICKYKEYS { DWORD cbSize = this.sizeof; DWORD dwFlags; } alias STICKYKEYS* LPSTICKYKEYS; struct TOGGLEKEYS { DWORD cbSize = this.sizeof; DWORD dwFlags; } struct MOUSEHOOKSTRUCT { POINT pt; HWND hwnd; UINT wHitTestCode; ULONG_PTR dwExtraInfo; } alias MOUSEHOOKSTRUCT* LPMOUSEHOOKSTRUCT, PMOUSEHOOKSTRUCT; struct TRACKMOUSEEVENT { DWORD cbSize = this.sizeof; DWORD dwFlags; HWND hwndTrack; DWORD dwHoverTime; } alias TRACKMOUSEEVENT* LPTRACKMOUSEEVENT; struct TPMPARAMS { UINT cbSize = this.sizeof; RECT rcExclude; } alias TPMPARAMS* LPTPMPARAMS; struct EVENTMSG { UINT message; UINT paramL; UINT paramH; DWORD time; HWND hwnd; } alias EVENTMSG* PEVENTMSGMSG, LPEVENTMSGMSG, PEVENTMSG, LPEVENTMSG; struct WINDOWPOS { HWND hwnd; HWND hwndInsertAfter; int x; int y; int cx; int cy; UINT flags; } alias WINDOWPOS* PWINDOWPOS, LPWINDOWPOS; struct NCCALCSIZE_PARAMS { RECT[3] rgrc; PWINDOWPOS lppos; } alias NCCALCSIZE_PARAMS* LPNCCALCSIZE_PARAMS; struct MDICREATESTRUCTA { LPCSTR szClass; LPCSTR szTitle; HANDLE hOwner; int x; int y; int cx; int cy; DWORD style; LPARAM lParam; } alias MDICREATESTRUCTA* LPMDICREATESTRUCTA; struct MDICREATESTRUCTW { LPCWSTR szClass; LPCWSTR szTitle; HANDLE hOwner; int x; int y; int cx; int cy; DWORD style; LPARAM lParam; } alias MDICREATESTRUCTW* LPMDICREATESTRUCTW; struct MINMAXINFO { POINT ptReserved; POINT ptMaxSize; POINT ptMaxPosition; POINT ptMinTrackSize; POINT ptMaxTrackSize; } alias MINMAXINFO* PMINMAXINFO, LPMINMAXINFO; struct MDINEXTMENU { HMENU hmenuIn; HMENU hmenuNext; HWND hwndNext; } alias MDINEXTMENU* PMDINEXTMENU, LPMDINEXTMENU; struct MEASUREITEMSTRUCT { UINT CtlType; UINT CtlID; UINT itemID; UINT itemWidth; UINT itemHeight; ULONG_PTR itemData; } alias MEASUREITEMSTRUCT* PMEASUREITEMSTRUCT, LPMEASUREITEMSTRUCT; struct DROPSTRUCT { HWND hwndSource; HWND hwndSink; DWORD wFmt; ULONG_PTR dwData; POINT ptDrop; DWORD dwControlData; } alias DROPSTRUCT* PDROPSTRUCT, LPDROPSTRUCT; alias DWORD HELPPOLY; struct MULTIKEYHELPA { DWORD mkSize; CHAR mkKeylist = 0; CHAR[1] szKeyphrase = 0; } alias MULTIKEYHELPA* PMULTIKEYHELPA, LPMULTIKEYHELPA; struct MULTIKEYHELPW { DWORD mkSize; WCHAR mkKeylist = 0; WCHAR[1] szKeyphrase = 0; } alias MULTIKEYHELPW* PMULTIKEYHELPW, LPMULTIKEYHELPW; struct HELPWININFOA { int wStructSize; int x; int y; int dx; int dy; int wMax; CHAR[2] rgchMember = 0; } alias HELPWININFOA* PHELPWININFOA, LPHELPWININFOA; struct HELPWININFOW { int wStructSize; int x; int y; int dx; int dy; int wMax; WCHAR[2] rgchMember = 0; } alias HELPWININFOW* PHELPWININFOW, LPHELPWININFOW; struct STYLESTRUCT { DWORD styleOld; DWORD styleNew; } alias STYLESTRUCT* LPSTYLESTRUCT; struct ALTTABINFO { DWORD cbSize = this.sizeof; int cItems; int cColumns; int cRows; int iColFocus; int iRowFocus; int cxItem; int cyItem; POINT ptStart; } alias ALTTABINFO* PALTTABINFO, LPALTTABINFO; struct COMBOBOXINFO { DWORD cbSize = this.sizeof; RECT rcItem; RECT rcButton; DWORD stateButton; HWND hwndCombo; HWND hwndItem; HWND hwndList; } alias COMBOBOXINFO* PCOMBOBOXINFO, LPCOMBOBOXINFO; struct CURSORINFO { DWORD cbSize = this.sizeof; DWORD flags; HCURSOR hCursor; POINT ptScreenPos; } alias CURSORINFO* PCURSORINFO, LPCURSORINFO; struct MENUBARINFO { DWORD cbSize = this.sizeof; RECT rcBar; HMENU hMenu; HWND hwndMenu; byte bf_; // Simulated bitfield // BOOL fBarFocused:1; // BOOL fFocused:1; bool fBarFocused() { return (bf_ & 1) == 1; } bool fFocused() { return (bf_ & 2) == 2; } bool fBarFocused(bool b) { bf_ = cast(byte) ((bf_ & 0xFE) | b); return b; } bool fFocused(bool b) { bf_ = cast(byte) (b ? (bf_ | 2) : bf_ & 0xFD); return b; } } alias MENUBARINFO* PMENUBARINFO; struct MENUINFO { DWORD cbSize = this.sizeof; DWORD fMask; DWORD dwStyle; UINT cyMax; HBRUSH hbrBack; DWORD dwContextHelpID; ULONG_PTR dwMenuData; } alias MENUINFO* LPMENUINFO; alias const(MENUINFO)* LPCMENUINFO; enum CCHILDREN_SCROLLBAR = 5; struct SCROLLBARINFO { DWORD cbSize = this.sizeof; RECT rcScrollBar; int dxyLineButton; int xyThumbTop; int xyThumbBottom; int reserved; DWORD[CCHILDREN_SCROLLBAR+1] rgstate; } alias SCROLLBARINFO* PSCROLLBARINFO, LPSCROLLBARINFO; enum CCHILDREN_TITLEBAR = 5; struct WINDOWINFO { DWORD cbSize = WINDOWINFO.sizeof; RECT rcWindow; RECT rcClient; DWORD dwStyle; DWORD dwExStyle; DWORD dwWindowStatus; UINT cxWindowBorders; UINT cyWindowBorders; ATOM atomWindowType; WORD wCreatorVersion; } alias WINDOWINFO* PWINDOWINFO, LPWINDOWINFO; struct LASTINPUTINFO { UINT cbSize = this.sizeof; DWORD dwTime; } alias LASTINPUTINFO* PLASTINPUTINFO; struct MONITORINFO { DWORD cbSize = this.sizeof; RECT rcMonitor; RECT rcWork; DWORD dwFlags; } alias MONITORINFO* LPMONITORINFO; enum CCHDEVICENAME = 32; struct MONITORINFOEXA { DWORD cbSize = MONITORINFOEXA.sizeof; RECT rcMonitor; RECT rcWork; DWORD dwFlags; CHAR[CCHDEVICENAME] szDevice = 0; } alias MONITORINFOEXA* LPMONITORINFOEXA; struct MONITORINFOEXW { DWORD cbSize = MONITORINFOEXW.sizeof; RECT rcMonitor; RECT rcWork; DWORD dwFlags; WCHAR[CCHDEVICENAME] szDevice = 0; } alias MONITORINFOEXW* LPMONITORINFOEXW; struct KBDLLHOOKSTRUCT { DWORD vkCode; DWORD scanCode; DWORD flags; DWORD time; ULONG_PTR dwExtraInfo; } alias KBDLLHOOKSTRUCT* LPKBDLLHOOKSTRUCT, PKBDLLHOOKSTRUCT; struct MSLLHOOKSTRUCT { POINT pt; DWORD mouseData; DWORD flags; DWORD time; ULONG_PTR dwExtraInfo; } alias MSLLHOOKSTRUCT* PMSLLHOOKSTRUCT; struct MOUSEINPUT { LONG dx; LONG dy; DWORD mouseData; DWORD dwFlags; DWORD time; ULONG_PTR dwExtraInfo; } alias MOUSEINPUT* PMOUSEINPUT; struct KEYBDINPUT { WORD wVk; WORD wScan; DWORD dwFlags; DWORD time; ULONG_PTR dwExtraInfo; } alias KEYBDINPUT* PKEYBDINPUT; struct HARDWAREINPUT { DWORD uMsg; WORD wParamL; WORD wParamH; } alias HARDWAREINPUT* PHARDWAREINPUT; struct INPUT { DWORD type; union { MOUSEINPUT mi; KEYBDINPUT ki; HARDWAREINPUT hi; } } alias INPUT* PINPUT, LPINPUT; static if (_WIN32_WINNT >= 0x501) { align(4) struct BSMINFO { UINT cbSize = this.sizeof; HDESK hdesk; HWND hwnd; align(4) LUID luid; } alias BSMINFO* PBSMINFO; alias TypeDef!(HANDLE) HRAWINPUT; struct RAWINPUTHEADER { DWORD dwType; DWORD dwSize; HANDLE hDevice; WPARAM wParam; } alias RAWINPUTHEADER* PRAWINPUTHEADER; struct RAWMOUSE { USHORT usFlags; union { ULONG ulButtons; struct { USHORT usButtonFlags; USHORT usButtonData; } } ULONG ulRawButtons; LONG lLastX; LONG lLastY; ULONG ulExtraInformation; } alias RAWMOUSE* PRAWMOUSE, LPRAWMOUSE; struct RAWKEYBOARD { USHORT MakeCode; USHORT Flags; USHORT Reserved; USHORT VKey; UINT Message; ULONG ExtraInformation; } alias RAWKEYBOARD* PRAWKEYBOARD, LPRAWKEYBOARD; struct RAWHID { DWORD dwSizeHid; DWORD dwCount; BYTE bRawData; } alias RAWHID* PRAWHID, LPRAWHID; struct RAWINPUT { RAWINPUTHEADER header; union _data { RAWMOUSE mouse; RAWKEYBOARD keyboard; RAWHID hid; } _data data; } alias RAWINPUT* PRAWINPUT, LPRAWINPUT; struct RAWINPUTDEVICE { USHORT usUsagePage; USHORT usUsage; DWORD dwFlags; HWND hwndTarget; } alias RAWINPUTDEVICE* PRAWINPUTDEVICE, LPRAWINPUTDEVICE; alias const(RAWINPUTDEVICE)* PCRAWINPUTDEVICE; struct RAWINPUTDEVICELIST { HANDLE hDevice; DWORD dwType; } alias RAWINPUTDEVICELIST* PRAWINPUTDEVICELIST; struct RID_DEVICE_INFO_MOUSE { DWORD dwId; DWORD dwNumberOfButtons; DWORD dwSampleRate; BOOL fHasHorizontalWheel; } struct RID_DEVICE_INFO_KEYBOARD { DWORD dwType; DWORD dwSubType; DWORD dwKeyboardMode; DWORD dwNumberOfFunctionKeys; DWORD dwNumberOfIndicators; DWORD dwNumberOfKeysTotal; } struct RID_DEVICE_INFO_HID { DWORD dwVendorId; DWORD dwProductId; DWORD dwVersionNumber; USHORT usUsagePage; USHORT usUsage; } struct RID_DEVICE_INFO { DWORD cbSize = this.sizeof; DWORD dwType; union { RID_DEVICE_INFO_MOUSE mouse; RID_DEVICE_INFO_KEYBOARD keyboard; RID_DEVICE_INFO_HID hid; } } }// (_WIN32_WINNT >= 0x501) alias CharToOemA AnsiToOem; alias OemToCharA OemToAnsi; alias CharToOemBuffA AnsiToOemBuff; alias OemToCharBuffA OemToAnsiBuff; alias CharUpperA AnsiUpper; alias CharUpperBuffA AnsiUpperBuff; alias CharLowerA AnsiLower; alias CharLowerBuffA AnsiLowerBuff; alias CharNextA AnsiNext; alias CharPrevA AnsiPrev; alias MAKELONG MAKEWPARAM; alias MAKELONG MAKELPARAM; alias MAKELONG MAKELRESULT; void POINTSTOPOINT()(out POINT p, LONG ps) { p.x = LOWORD(ps); p.y = HIWORD(ps); } POINTS POINTTOPOINTS()(const POINT p) { return MAKELONG(p.x, p.y); } extern (Windows) nothrow @nogc { HKL ActivateKeyboardLayout(HKL, UINT); BOOL AdjustWindowRect(LPRECT, DWORD, BOOL); BOOL AdjustWindowRectEx(LPRECT, DWORD, BOOL, DWORD); BOOL AnyPopup(); BOOL AppendMenuA(HMENU, UINT, UINT_PTR, LPCSTR); BOOL AppendMenuW(HMENU, UINT, UINT_PTR, LPCWSTR); UINT ArrangeIconicWindows(HWND); BOOL AttachThreadInput(DWORD, DWORD, BOOL); HDWP BeginDeferWindowPos(int); HDC BeginPaint(HWND, LPPAINTSTRUCT); BOOL BringWindowToTop(HWND); BOOL CallMsgFilterA(LPMSG, INT); BOOL CallMsgFilterW(LPMSG, INT); LRESULT CallNextHookEx(HHOOK, int, WPARAM, LPARAM); LRESULT CallWindowProcA(WNDPROC, HWND, UINT, WPARAM, LPARAM); LRESULT CallWindowProcW(WNDPROC, HWND, UINT, WPARAM, LPARAM); WORD CascadeWindows(HWND, UINT, LPCRECT, UINT, const(HWND)*); BOOL ChangeClipboardChain(HWND, HWND); LONG ChangeDisplaySettingsA(PDEVMODEA, DWORD); LONG ChangeDisplaySettingsW(PDEVMODEW, DWORD); LONG ChangeDisplaySettingsExA(LPCSTR, LPDEVMODEA, HWND, DWORD, LPVOID); LONG ChangeDisplaySettingsExW(LPCWSTR, LPDEVMODEW, HWND, DWORD, LPVOID); BOOL ChangeMenuA(HMENU, UINT, LPCSTR, UINT, UINT); BOOL ChangeMenuW(HMENU, UINT, LPCWSTR, UINT, UINT); LPSTR CharLowerA(LPSTR); LPWSTR CharLowerW(LPWSTR); DWORD CharLowerBuffA(LPSTR, DWORD); DWORD CharLowerBuffW(LPWSTR, DWORD); LPSTR CharNextA(LPCSTR); LPWSTR CharNextW(LPCWSTR); LPSTR CharNextExA(WORD, LPCSTR, DWORD); LPWSTR CharNextExW(WORD, LPCWSTR, DWORD); LPSTR CharPrevA(LPCSTR, LPCSTR); LPWSTR CharPrevW(LPCWSTR, LPCWSTR); LPSTR CharPrevExA(WORD, LPCSTR, LPCSTR, DWORD); LPWSTR CharPrevExW(WORD, LPCWSTR, LPCWSTR, DWORD); BOOL CharToOemA(LPCSTR, LPSTR); BOOL CharToOemW(LPCWSTR, LPSTR); BOOL CharToOemBuffA(LPCSTR, LPSTR, DWORD); BOOL CharToOemBuffW(LPCWSTR, LPSTR, DWORD); LPSTR CharUpperA(LPSTR); LPWSTR CharUpperW(LPWSTR); DWORD CharUpperBuffA(LPSTR, DWORD); DWORD CharUpperBuffW(LPWSTR, DWORD); BOOL CheckDlgButton(HWND, int, UINT); DWORD CheckMenuItem(HMENU, UINT, UINT); BOOL CheckMenuRadioItem(HMENU, UINT, UINT, UINT, UINT); BOOL CheckRadioButton(HWND, int, int, int); HWND ChildWindowFromPoint(HWND, POINT); HWND ChildWindowFromPointEx(HWND, POINT, UINT); BOOL ClientToScreen(HWND, LPPOINT); BOOL ClipCursor(LPCRECT); BOOL CloseClipboard(); BOOL CloseDesktop(HDESK); BOOL CloseWindow(HWND); BOOL CloseWindowStation(HWINSTA); int CopyAcceleratorTableA(HACCEL, LPACCEL, int); int CopyAcceleratorTableW(HACCEL, LPACCEL, int); HICON CopyIcon(HICON); HANDLE CopyImage(HANDLE, UINT, int, int, UINT); BOOL CopyRect(LPRECT, LPCRECT); int CountClipboardFormats(); HACCEL CreateAcceleratorTableA(LPACCEL, int); HACCEL CreateAcceleratorTableW(LPACCEL, int); BOOL CreateCaret(HWND, HBITMAP, int, int); HCURSOR CreateCursor(HINSTANCE, int, int, int, int, PCVOID, PCVOID); HDESK CreateDesktopA(LPCSTR, LPCSTR, LPDEVMODEA, DWORD, ACCESS_MASK, LPSECURITY_ATTRIBUTES); HDESK CreateDesktopW(LPCWSTR, LPCWSTR, LPDEVMODEW, DWORD, ACCESS_MASK, LPSECURITY_ATTRIBUTES); HWND CreateDialogParamA(HINSTANCE, LPCSTR, HWND, DLGPROC, LPARAM); HWND CreateDialogParamW(HINSTANCE, LPCWSTR, HWND, DLGPROC, LPARAM); HWND CreateDialogIndirectParamA(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM); HWND CreateDialogIndirectParamW(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM); HICON CreateIcon(HINSTANCE, int, int, BYTE, BYTE, const(BYTE)*, BYTE*); HICON CreateIconFromResource(PBYTE, DWORD, BOOL, DWORD); HICON CreateIconFromResourceEx(PBYTE, DWORD, BOOL, DWORD, int, int, UINT); HICON CreateIconIndirect(PICONINFO); HWND CreateMDIWindowA(LPCSTR, LPCSTR, DWORD, int, int, int, int, HWND, HINSTANCE, LPARAM); HWND CreateMDIWindowW(LPCWSTR, LPCWSTR, DWORD, int, int, int, int, HWND, HINSTANCE, LPARAM); HMENU CreateMenu(); HMENU CreatePopupMenu(); HWND CreateWindowExA(DWORD, LPCSTR, LPCSTR, DWORD, int, int, int, int, HWND, HMENU, HINSTANCE, LPVOID); HWND CreateWindowExW(DWORD, LPCWSTR, LPCWSTR, DWORD, int, int, int, int, HWND, HMENU, HINSTANCE, LPVOID); HWINSTA CreateWindowStationA(LPSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES); HWINSTA CreateWindowStationW(LPWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES); LRESULT DefDlgProcA(HWND, UINT, WPARAM, LPARAM); LRESULT DefDlgProcW(HWND, UINT, WPARAM, LPARAM); HDWP DeferWindowPos(HDWP, HWND, HWND, int, int, int, int, UINT); LRESULT DefFrameProcA(HWND, HWND, UINT, WPARAM, LPARAM); LRESULT DefFrameProcW(HWND, HWND, UINT, WPARAM, LPARAM); LRESULT DefMDIChildProcA(HWND, UINT, WPARAM, LPARAM); LRESULT DefMDIChildProcW(HWND, UINT, WPARAM, LPARAM); LRESULT DefWindowProcA(HWND, UINT, WPARAM, LPARAM); LRESULT DefWindowProcW(HWND, UINT, WPARAM, LPARAM); BOOL DeleteMenu(HMENU, UINT, UINT); BOOL DeregisterShellHookWindow(HWND); BOOL DestroyAcceleratorTable(HACCEL); BOOL DestroyCaret(); BOOL DestroyCursor(HCURSOR); BOOL DestroyIcon(HICON); BOOL DestroyMenu(HMENU); BOOL DestroyWindow(HWND); INT_PTR DialogBoxParamA(HINSTANCE, LPCSTR, HWND, DLGPROC, LPARAM); INT_PTR DialogBoxParamW(HINSTANCE, LPCWSTR, HWND, DLGPROC, LPARAM); INT_PTR DialogBoxIndirectParamA(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM); INT_PTR DialogBoxIndirectParamW(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM); } // extern (Windows) nothrow @nogc { HCURSOR CopyCursor(HCURSOR c) { return cast(HCURSOR)CopyIcon(cast(HICON)c); } HWND CreateDialogA(HINSTANCE h, LPCSTR n, HWND w, DLGPROC f) { return CreateDialogParamA(h, n, w, f, 0); } HWND CreateDialogW(HINSTANCE h, LPCWSTR n, HWND w, DLGPROC f) { return CreateDialogParamW(h, n, w, f, 0); } HWND CreateDialogIndirectA(HINSTANCE h, LPCDLGTEMPLATE t, HWND w, DLGPROC f) { return CreateDialogIndirectParamA(h, t, w, f, 0); } HWND CreateDialogIndirectW(HINSTANCE h, LPCDLGTEMPLATE t, HWND w, DLGPROC f) { return CreateDialogIndirectParamW(h, t, w, f, 0); } HWND CreateWindowA(LPCSTR a, LPCSTR b, DWORD c, int d, int e, int f, int g, HWND h, HMENU i, HINSTANCE j, LPVOID k) { return CreateWindowExA(0, a, b, c, d, e, f, g, h, i, j, k); } HWND CreateWindowW(LPCWSTR a, LPCWSTR b, DWORD c, int d, int e, int f, int g, HWND h, HMENU i, HINSTANCE j, LPVOID k) { return CreateWindowExW(0, a, b, c, d, e, f, g, h, i, j, k); } INT_PTR DialogBoxA(HINSTANCE i, LPCSTR t, HWND p, DLGPROC f) { return DialogBoxParamA(i, t, p, f, 0); } INT_PTR DialogBoxW(HINSTANCE i, LPCWSTR t, HWND p, DLGPROC f) { return DialogBoxParamW(i, t, p, f, 0); } INT_PTR DialogBoxIndirectA(HINSTANCE i, LPCDLGTEMPLATE t, HWND p, DLGPROC f) { return DialogBoxIndirectParamA(i, t, p, f, 0); } INT_PTR DialogBoxIndirectW(HINSTANCE i, LPCDLGTEMPLATE t, HWND p, DLGPROC f) { return DialogBoxIndirectParamW(i, t, p, f, 0); } BOOL ExitWindows(UINT r, DWORD c) { return ExitWindowsEx(EWX_LOGOFF, 0); } } alias GetWindow GetNextWindow; extern (Windows) nothrow @nogc: LONG DispatchMessageA(const(MSG)*); LONG DispatchMessageW(const(MSG)*); int DlgDirListA(HWND, LPSTR, int, int, UINT); int DlgDirListW(HWND, LPWSTR, int, int, UINT); int DlgDirListComboBoxA(HWND, LPSTR, int, int, UINT); int DlgDirListComboBoxW(HWND, LPWSTR, int, int, UINT); BOOL DlgDirSelectComboBoxExA(HWND, LPSTR, int, int); BOOL DlgDirSelectComboBoxExW(HWND, LPWSTR, int, int); BOOL DlgDirSelectExA(HWND, LPSTR, int, int); BOOL DlgDirSelectExW(HWND, LPWSTR, int, int); BOOL DragDetect(HWND, POINT); DWORD DragObject(HWND, HWND, UINT, ULONG_PTR, HCURSOR); BOOL DrawAnimatedRects(HWND, int, LPCRECT, LPCRECT); BOOL DrawCaption(HWND, HDC, LPCRECT, UINT); BOOL DrawEdge(HDC, LPRECT, UINT, UINT); BOOL DrawFocusRect(HDC, LPCRECT); BOOL DrawFrameControl(HDC, LPRECT, UINT, UINT); BOOL DrawIcon(HDC, int, int, HICON); BOOL DrawIconEx(HDC, int, int, HICON, int, int, UINT, HBRUSH, UINT); BOOL DrawMenuBar(HWND); BOOL DrawStateA(HDC, HBRUSH, DRAWSTATEPROC, LPARAM, WPARAM, int, int, int, int, UINT); BOOL DrawStateW(HDC, HBRUSH, DRAWSTATEPROC, LPARAM, WPARAM, int, int, int, int, UINT); int DrawTextA(HDC, LPCSTR, int, LPRECT, UINT); int DrawTextW(HDC, LPCWSTR, int, LPRECT, UINT); int DrawTextExA(HDC, LPSTR, int, LPRECT, UINT, LPDRAWTEXTPARAMS); int DrawTextExW(HDC, LPWSTR, int, LPRECT, UINT, LPDRAWTEXTPARAMS); BOOL EmptyClipboard(); BOOL EnableMenuItem(HMENU, UINT, UINT); BOOL EnableScrollBar(HWND, UINT, UINT); BOOL EnableWindow(HWND, BOOL); BOOL EndDeferWindowPos(HDWP); BOOL EndDialog(HWND, INT_PTR); BOOL EndMenu(); BOOL EndPaint(HWND, const(PAINTSTRUCT)*); BOOL EnumChildWindows(HWND, ENUMWINDOWSPROC, LPARAM); UINT EnumClipboardFormats(UINT); BOOL EnumDesktopsA(HWINSTA, DESKTOPENUMPROCA, LPARAM); BOOL EnumDesktopsW(HWINSTA, DESKTOPENUMPROCW, LPARAM); BOOL EnumDesktopWindows(HDESK, ENUMWINDOWSPROC, LPARAM); BOOL EnumDisplaySettingsA(LPCSTR, DWORD, PDEVMODEA); BOOL EnumDisplaySettingsW(LPCWSTR, DWORD, PDEVMODEW); BOOL EnumDisplayDevicesA(LPCSTR, DWORD, PDISPLAY_DEVICEA, DWORD); BOOL EnumDisplayDevicesW(LPCWSTR, DWORD, PDISPLAY_DEVICEW, DWORD); int EnumPropsA(HWND, PROPENUMPROCA); int EnumPropsW(HWND, PROPENUMPROCW); int EnumPropsExA(HWND, PROPENUMPROCEXA, LPARAM); int EnumPropsExW(HWND, PROPENUMPROCEXW, LPARAM); BOOL EnumThreadWindows(DWORD, WNDENUMPROC, LPARAM); BOOL EnumWindows(WNDENUMPROC, LPARAM); BOOL EnumWindowStationsA(WINSTAENUMPROCA, LPARAM); BOOL EnumWindowStationsW(WINSTAENUMPROCW, LPARAM); BOOL EqualRect(LPCRECT, LPCRECT); BOOL ExitWindowsEx(UINT, DWORD); HWND FindWindowA(LPCSTR, LPCSTR); HWND FindWindowExA(HWND, HWND, LPCSTR, LPCSTR); HWND FindWindowExW(HWND, HWND, LPCWSTR, LPCWSTR); HWND FindWindowW(LPCWSTR, LPCWSTR); BOOL FlashWindow(HWND, BOOL); int FrameRect(HDC, LPCRECT, HBRUSH); BOOL FrameRgn(HDC, HRGN, HBRUSH, int, int); HWND GetActiveWindow(); HWND GetAncestor(HWND, UINT); SHORT GetAsyncKeyState(int); HWND GetCapture(); UINT GetCaretBlinkTime(); BOOL GetCaretPos(LPPOINT); BOOL GetClassInfoA(HINSTANCE, LPCSTR, LPWNDCLASSA); BOOL GetClassInfoExA(HINSTANCE, LPCSTR, LPWNDCLASSEXA); BOOL GetClassInfoW(HINSTANCE, LPCWSTR, LPWNDCLASSW); BOOL GetClassInfoExW(HINSTANCE, LPCWSTR, LPWNDCLASSEXW); DWORD GetClassLongA(HWND, int); DWORD GetClassLongW(HWND, int); int GetClassNameA(HWND, LPSTR, int); int GetClassNameW(HWND, LPWSTR, int); WORD GetClassWord(HWND, int); BOOL GetClientRect(HWND, LPRECT); HANDLE GetClipboardData(UINT); int GetClipboardFormatNameA(UINT, LPSTR, int); int GetClipboardFormatNameW(UINT, LPWSTR, int); HWND GetClipboardOwner(); HWND GetClipboardViewer(); BOOL GetClipCursor(LPRECT); BOOL GetCursorPos(LPPOINT); HDC GetDC(HWND); HDC GetDCEx(HWND, HRGN, DWORD); HWND GetDesktopWindow(); int GetDialogBaseUnits(); int GetDlgCtrlID(HWND); HWND GetDlgItem(HWND, int); UINT GetDlgItemInt(HWND, int, PBOOL, BOOL); UINT GetDlgItemTextA(HWND, int, LPSTR, int); UINT GetDlgItemTextW(HWND, int, LPWSTR, int); UINT GetDoubleClickTime(); HWND GetFocus(); HWND GetForegroundWindow(); BOOL GetIconInfo(HICON, PICONINFO); BOOL GetInputState(); UINT GetKBCodePage(); HKL GetKeyboardLayout(DWORD); UINT GetKeyboardLayoutList(int, HKL*); BOOL GetKeyboardLayoutNameA(LPSTR); BOOL GetKeyboardLayoutNameW(LPWSTR); BOOL GetKeyboardState(PBYTE); int GetKeyboardType(int); int GetKeyNameTextA(LONG, LPSTR, int); int GetKeyNameTextW(LONG, LPWSTR, int); SHORT GetKeyState(int); HWND GetLastActivePopup(HWND); HMENU GetMenu(HWND); LONG GetMenuCheckMarkDimensions(); DWORD GetMenuContextHelpId(HMENU); UINT GetMenuDefaultItem(HMENU, UINT, UINT); int GetMenuItemCount(HMENU); UINT GetMenuItemID(HMENU, int); BOOL GetMenuItemInfoA(HMENU, UINT, BOOL, LPMENUITEMINFOA); BOOL GetMenuItemInfoW(HMENU, UINT, BOOL, LPMENUITEMINFOW); BOOL GetMenuItemRect(HWND, HMENU, UINT, LPRECT); UINT GetMenuState(HMENU, UINT, UINT); int GetMenuStringA(HMENU, UINT, LPSTR, int, UINT); int GetMenuStringW(HMENU, UINT, LPWSTR, int, UINT); BOOL GetMessageA(LPMSG, HWND, UINT, UINT); BOOL GetMessageW(LPMSG, HWND, UINT, UINT); LONG GetMessageExtraInfo(); DWORD GetMessagePos(); LONG GetMessageTime(); HWND GetNextDlgGroupItem(HWND, HWND, BOOL); HWND GetNextDlgTabItem(HWND, HWND, BOOL); HWND GetOpenClipboardWindow(); HWND GetParent(HWND); int GetPriorityClipboardFormat(UINT*, int); HANDLE GetPropA(HWND, LPCSTR); HANDLE GetPropW(HWND, LPCWSTR); DWORD GetQueueStatus(UINT); BOOL GetScrollInfo(HWND, int, LPSCROLLINFO); int GetScrollPos(HWND, int); BOOL GetScrollRange(HWND, int, LPINT, LPINT); HMENU GetSubMenu(HMENU, int); DWORD GetSysColor(int); HBRUSH GetSysColorBrush(int); HMENU GetSystemMenu(HWND, BOOL); int GetSystemMetrics(int); DWORD GetTabbedTextExtentA(HDC, LPCSTR, int, int, LPINT); DWORD GetTabbedTextExtentW(HDC, LPCWSTR, int, int, LPINT); LONG GetWindowLongA(HWND, int); LONG GetWindowLongW(HWND, int); HDESK GetThreadDesktop(DWORD); HWND GetTopWindow(HWND); BOOL GetUpdateRect(HWND, LPRECT, BOOL); int GetUpdateRgn(HWND, HRGN, BOOL); BOOL GetUserObjectInformationA(HANDLE, int, PVOID, DWORD, PDWORD); BOOL GetUserObjectInformationW(HANDLE, int, PVOID, DWORD, PDWORD); BOOL GetUserObjectSecurity(HANDLE, PSECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD); HWND GetWindow(HWND, UINT); DWORD GetWindowContextHelpId(HWND); HDC GetWindowDC(HWND); BOOL GetWindowPlacement(HWND, WINDOWPLACEMENT*); BOOL GetWindowRect(HWND, LPRECT); int GetWindowRgn(HWND, HRGN); int GetWindowTextA(HWND, LPSTR, int); int GetWindowTextLengthA(HWND); int GetWindowTextLengthW(HWND); int GetWindowTextW(HWND, LPWSTR, int); WORD GetWindowWord(HWND, int); BOOL GetAltTabInfoA(HWND, int, PALTTABINFO, LPSTR, UINT); BOOL GetAltTabInfoW(HWND, int, PALTTABINFO, LPWSTR, UINT); BOOL GetComboBoxInfo(HWND, PCOMBOBOXINFO); BOOL GetCursorInfo(PCURSORINFO); BOOL GetLastInputInfo(PLASTINPUTINFO); DWORD GetListBoxInfo(HWND); BOOL GetMenuBarInfo(HWND, LONG, LONG, PMENUBARINFO); BOOL GetMenuInfo(HMENU, LPMENUINFO); BOOL GetScrollBarInfo(HWND, LONG, PSCROLLBARINFO); BOOL GetTitleBarInfo(HWND, PTITLEBARINFO); BOOL GetWindowInfo(HWND, PWINDOWINFO); UINT GetWindowModuleFileNameA(HWND, LPSTR, UINT); UINT GetWindowModuleFileNameW(HWND, LPWSTR, UINT); BOOL GrayStringA(HDC, HBRUSH, GRAYSTRINGPROC, LPARAM, int, int, int, int, int); BOOL GrayStringW(HDC, HBRUSH, GRAYSTRINGPROC, LPARAM, int, int, int, int, int); BOOL HideCaret(HWND); BOOL HiliteMenuItem(HWND, HMENU, UINT, UINT); BOOL InflateRect(LPRECT, int, int); BOOL InSendMessage(); BOOL InsertMenuA(HMENU, UINT, UINT, UINT_PTR, LPCSTR); BOOL InsertMenuW(HMENU, UINT, UINT, UINT_PTR, LPCWSTR); BOOL InsertMenuItemA(HMENU, UINT, BOOL, LPCMENUITEMINFOA); BOOL InsertMenuItemW(HMENU, UINT, BOOL, LPCMENUITEMINFOW); INT InternalGetWindowText(HWND, LPWSTR, INT); BOOL IntersectRect(LPRECT, LPCRECT, LPCRECT); BOOL InvalidateRect(HWND, LPCRECT, BOOL); BOOL InvalidateRgn(HWND, HRGN, BOOL); BOOL InvertRect(HDC, LPCRECT); BOOL IsCharAlphaA(CHAR ch); BOOL IsCharAlphaNumericA(CHAR); BOOL IsCharAlphaNumericW(WCHAR); BOOL IsCharAlphaW(WCHAR); BOOL IsCharLowerA(CHAR); BOOL IsCharLowerW(WCHAR); BOOL IsCharUpperA(CHAR); BOOL IsCharUpperW(WCHAR); BOOL IsChild(HWND, HWND); BOOL IsClipboardFormatAvailable(UINT); BOOL IsDialogMessageA(HWND, LPMSG); BOOL IsDialogMessageW(HWND, LPMSG); UINT IsDlgButtonChecked(HWND, int); BOOL IsIconic(HWND); BOOL IsMenu(HMENU); BOOL IsRectEmpty(LPCRECT); BOOL IsWindow(HWND); BOOL IsWindowEnabled(HWND); BOOL IsWindowUnicode(HWND); BOOL IsWindowVisible(HWND); BOOL IsZoomed(HWND); void keybd_event(BYTE, BYTE, DWORD, ULONG_PTR); BOOL KillTimer(HWND, UINT_PTR); HACCEL LoadAcceleratorsA(HINSTANCE, LPCSTR); HACCEL LoadAcceleratorsW(HINSTANCE, LPCWSTR); HBITMAP LoadBitmapA(HINSTANCE, LPCSTR); HBITMAP LoadBitmapW(HINSTANCE, LPCWSTR); HCURSOR LoadCursorA(HINSTANCE, LPCSTR); HCURSOR LoadCursorFromFileA(LPCSTR); HCURSOR LoadCursorFromFileW(LPCWSTR); HCURSOR LoadCursorW(HINSTANCE, LPCWSTR); HICON LoadIconA(HINSTANCE, LPCSTR); HICON LoadIconW(HINSTANCE, LPCWSTR); HANDLE LoadImageA(HINSTANCE, LPCSTR, UINT, int, int, UINT); HANDLE LoadImageW(HINSTANCE, LPCWSTR, UINT, int, int, UINT); HKL LoadKeyboardLayoutA(LPCSTR, UINT); HKL LoadKeyboardLayoutW(LPCWSTR, UINT); HMENU LoadMenuA(HINSTANCE, LPCSTR); HMENU LoadMenuIndirectA(const(MENUTEMPLATE)*); HMENU LoadMenuIndirectW(const(MENUTEMPLATE)*); HMENU LoadMenuW(HINSTANCE, LPCWSTR); int LoadStringA(HINSTANCE, UINT, LPSTR, int); int LoadStringW(HINSTANCE, UINT, LPWSTR, int); BOOL LockWindowUpdate(HWND); int LookupIconIdFromDirectory(PBYTE, BOOL); int LookupIconIdFromDirectoryEx(PBYTE, BOOL, int, int, UINT); BOOL MapDialogRect(HWND, LPRECT); UINT MapVirtualKeyA(UINT, UINT); UINT MapVirtualKeyExA(UINT, UINT, HKL); UINT MapVirtualKeyExW(UINT, UINT, HKL); UINT MapVirtualKeyW(UINT, UINT); int MapWindowPoints(HWND, HWND, LPPOINT, UINT); int MenuItemFromPoint(HWND, HMENU, POINT); BOOL MessageBeep(UINT); int MessageBoxA(HWND, LPCSTR, LPCSTR, UINT); int MessageBoxW(HWND, LPCWSTR, LPCWSTR, UINT); int MessageBoxExA(HWND, LPCSTR, LPCSTR, UINT, WORD); int MessageBoxExW(HWND, LPCWSTR, LPCWSTR, UINT, WORD); int MessageBoxIndirectA(const(MSGBOXPARAMSA)*); int MessageBoxIndirectW(const(MSGBOXPARAMSW)*); BOOL ModifyMenuA(HMENU, UINT, UINT, UINT_PTR, LPCSTR); BOOL ModifyMenuW(HMENU, UINT, UINT, UINT_PTR, LPCWSTR); void mouse_event(DWORD, DWORD, DWORD, DWORD, ULONG_PTR); BOOL MoveWindow(HWND, int, int, int, int, BOOL); DWORD MsgWaitForMultipleObjects(DWORD, const(HANDLE)*, BOOL, DWORD, DWORD); DWORD MsgWaitForMultipleObjectsEx(DWORD, const(HANDLE)*, DWORD, DWORD, DWORD); DWORD OemKeyScan(WORD); BOOL OemToCharA(LPCSTR, LPSTR); BOOL OemToCharBuffA(LPCSTR, LPSTR, DWORD); BOOL OemToCharBuffW(LPCSTR, LPWSTR, DWORD); BOOL OemToCharW(LPCSTR, LPWSTR); BOOL OffsetRect(LPRECT, int, int); BOOL OpenClipboard(HWND); HDESK OpenDesktopA(LPSTR, DWORD, BOOL, DWORD); HDESK OpenDesktopW(LPWSTR, DWORD, BOOL, DWORD); BOOL OpenIcon(HWND); HDESK OpenInputDesktop(DWORD, BOOL, DWORD); HWINSTA OpenWindowStationA(LPSTR, BOOL, DWORD); HWINSTA OpenWindowStationW(LPWSTR, BOOL, DWORD); BOOL PaintDesktop(HDC); BOOL PeekMessageA(LPMSG, HWND, UINT, UINT, UINT); BOOL PeekMessageW(LPMSG, HWND, UINT, UINT, UINT); BOOL PostMessageA(HWND, UINT, WPARAM, LPARAM); BOOL PostMessageW(HWND, UINT, WPARAM, LPARAM); void PostQuitMessage(int); BOOL PostThreadMessageA(DWORD, UINT, WPARAM, LPARAM); BOOL PostThreadMessageW(DWORD, UINT, WPARAM, LPARAM); BOOL PtInRect(LPCRECT, POINT); HWND RealChildWindowFromPoint(HWND, POINT); UINT RealGetWindowClassA(HWND, LPSTR, UINT); UINT RealGetWindowClassW(HWND, LPWSTR, UINT); BOOL RedrawWindow(HWND, LPCRECT, HRGN, UINT); ATOM RegisterClassA(const(WNDCLASSA)*); ATOM RegisterClassW(const(WNDCLASSW)*); ATOM RegisterClassExA(const(WNDCLASSEXA)*); ATOM RegisterClassExW(const(WNDCLASSEXW)*); UINT RegisterClipboardFormatA(LPCSTR); UINT RegisterClipboardFormatW(LPCWSTR); BOOL RegisterHotKey(HWND, int, UINT, UINT); UINT RegisterWindowMessageA(LPCSTR); UINT RegisterWindowMessageW(LPCWSTR); BOOL ReleaseCapture(); int ReleaseDC(HWND, HDC); BOOL RemoveMenu(HMENU, UINT, UINT); HANDLE RemovePropA(HWND, LPCSTR); HANDLE RemovePropW(HWND, LPCWSTR); BOOL ReplyMessage(LRESULT); BOOL ScreenToClient(HWND, LPPOINT); BOOL ScrollDC(HDC, int, int, LPCRECT, LPCRECT, HRGN, LPRECT); BOOL ScrollWindow(HWND, int, int, LPCRECT, LPCRECT); int ScrollWindowEx(HWND, int, int, LPCRECT, LPCRECT, HRGN, LPRECT, UINT); LONG SendDlgItemMessageA(HWND, int, UINT, WPARAM, LPARAM); LONG SendDlgItemMessageW(HWND, int, UINT, WPARAM, LPARAM); LRESULT SendMessageA(HWND, UINT, WPARAM, LPARAM); BOOL SendMessageCallbackA(HWND, UINT, WPARAM, LPARAM, SENDASYNCPROC, ULONG_PTR); BOOL SendMessageCallbackW(HWND, UINT, WPARAM, LPARAM, SENDASYNCPROC, ULONG_PTR); LRESULT SendMessageTimeoutA(HWND, UINT, WPARAM, LPARAM, UINT, UINT, PDWORD); LRESULT SendMessageTimeoutW(HWND, UINT, WPARAM, LPARAM, UINT, UINT, PDWORD); LRESULT SendMessageW(HWND, UINT, WPARAM, LPARAM); BOOL SendNotifyMessageA(HWND, UINT, WPARAM, LPARAM); BOOL SendNotifyMessageW(HWND, UINT, WPARAM, LPARAM); HWND SetActiveWindow(HWND); HWND SetCapture(HWND hWnd); BOOL SetCaretBlinkTime(UINT); BOOL SetCaretPos(int, int); DWORD SetClassLongA(HWND, int, LONG); DWORD SetClassLongW(HWND, int, LONG); WORD SetClassWord(HWND, int, WORD); HANDLE SetClipboardData(UINT, HANDLE); HWND SetClipboardViewer(HWND); HCURSOR SetCursor(HCURSOR); BOOL SetCursorPos(int, int); void SetDebugErrorLevel(DWORD); BOOL SetDlgItemInt(HWND, int, UINT, BOOL); BOOL SetDlgItemTextA(HWND, int, LPCSTR); BOOL SetDlgItemTextW(HWND, int, LPCWSTR); BOOL SetDoubleClickTime(UINT); HWND SetFocus(HWND); BOOL SetForegroundWindow(HWND); BOOL SetKeyboardState(PBYTE); BOOL SetMenu(HWND, HMENU); BOOL SetMenuContextHelpId(HMENU, DWORD); BOOL SetMenuDefaultItem(HMENU, UINT, UINT); BOOL SetMenuInfo(HMENU, LPCMENUINFO); BOOL SetMenuItemBitmaps(HMENU, UINT, UINT, HBITMAP, HBITMAP); BOOL SetMenuItemInfoA(HMENU, UINT, BOOL, LPCMENUITEMINFOA); BOOL SetMenuItemInfoW(HMENU, UINT, BOOL, LPCMENUITEMINFOW); LPARAM SetMessageExtraInfo(LPARAM); BOOL SetMessageQueue(int); HWND SetParent(HWND, HWND); BOOL SetProcessWindowStation(HWINSTA); BOOL SetPropA(HWND, LPCSTR, HANDLE); BOOL SetPropW(HWND, LPCWSTR, HANDLE); BOOL SetRect(LPRECT, int, int, int, int); BOOL SetRectEmpty(LPRECT); int SetScrollInfo(HWND, int, LPCSCROLLINFO, BOOL); int SetScrollPos(HWND, int, int, BOOL); BOOL SetScrollRange(HWND, int, int, int, BOOL); BOOL SetSysColors(int, const(INT)*, const(COLORREF)*); BOOL SetSystemCursor(HCURSOR, DWORD); BOOL SetThreadDesktop(HDESK); UINT_PTR SetTimer(HWND, UINT_PTR, UINT, TIMERPROC); BOOL SetUserObjectInformationA(HANDLE, int, PVOID, DWORD); BOOL SetUserObjectInformationW(HANDLE, int, PVOID, DWORD); BOOL SetUserObjectSecurity(HANDLE, PSECURITY_INFORMATION, PSECURITY_DESCRIPTOR); BOOL SetWindowContextHelpId(HWND, DWORD); LONG SetWindowLongA(HWND, int, LONG); LONG SetWindowLongW(HWND, int, LONG); BOOL SetWindowPlacement(HWND hWnd, const(WINDOWPLACEMENT)*); BOOL SetWindowPos(HWND, HWND, int, int, int, int, UINT); int SetWindowRgn(HWND, HRGN, BOOL); HHOOK SetWindowsHookA(int, HOOKPROC); HHOOK SetWindowsHookW(int, HOOKPROC); HHOOK SetWindowsHookExA(int, HOOKPROC, HINSTANCE, DWORD); HHOOK SetWindowsHookExW(int, HOOKPROC, HINSTANCE, DWORD); BOOL SetWindowTextA(HWND, LPCSTR); BOOL SetWindowTextW(HWND, LPCWSTR); WORD SetWindowWord(HWND, int, WORD); BOOL ShowCaret(HWND); int ShowCursor(BOOL); BOOL ShowOwnedPopups(HWND, BOOL); BOOL ShowScrollBar(HWND, int, BOOL); BOOL ShowWindow(HWND, int); BOOL ShowWindowAsync(HWND, int); BOOL SubtractRect(LPRECT, LPCRECT, LPCRECT); BOOL SwapMouseButton(BOOL); BOOL SwitchDesktop(HDESK); BOOL SystemParametersInfoA(UINT, UINT, PVOID, UINT); BOOL SystemParametersInfoW(UINT, UINT, PVOID, UINT); LONG TabbedTextOutA(HDC, int, int, LPCSTR, int, int, LPINT, int); LONG TabbedTextOutW(HDC, int, int, LPCWSTR, int, int, LPINT, int); WORD TileWindows(HWND, UINT, LPCRECT, UINT, const(HWND)*); int ToAscii(UINT, UINT, PBYTE, LPWORD, UINT); int ToAsciiEx(UINT, UINT, PBYTE, LPWORD, UINT, HKL); int ToUnicode(UINT, UINT, PBYTE, LPWSTR, int, UINT); int ToUnicodeEx(UINT, UINT, PBYTE, LPWSTR, int, UINT, HKL); BOOL TrackMouseEvent(LPTRACKMOUSEEVENT); BOOL TrackPopupMenu(HMENU, UINT, int, int, int, HWND, LPCRECT); BOOL TrackPopupMenuEx(HMENU, UINT, int, int, HWND, LPTPMPARAMS); int TranslateAcceleratorA(HWND, HACCEL, LPMSG); int TranslateAcceleratorW(HWND, HACCEL, LPMSG); BOOL TranslateMDISysAccel(HWND, LPMSG); BOOL TranslateMessage(const(MSG)*); BOOL UnhookWindowsHook(int, HOOKPROC); BOOL UnhookWindowsHookEx(HHOOK); BOOL UnionRect(LPRECT, LPCRECT, LPCRECT); BOOL UnloadKeyboardLayout(HKL); BOOL UnregisterClassA(LPCSTR, HINSTANCE); BOOL UnregisterClassW(LPCWSTR, HINSTANCE); BOOL UnregisterHotKey(HWND, int); BOOL UpdateWindow(HWND); BOOL ValidateRect(HWND, LPCRECT); BOOL ValidateRgn(HWND, HRGN); SHORT VkKeyScanA(CHAR); SHORT VkKeyScanExA(CHAR, HKL); SHORT VkKeyScanExW(WCHAR, HKL); SHORT VkKeyScanW(WCHAR); DWORD WaitForInputIdle(HANDLE, DWORD); BOOL WaitMessage(); HWND WindowFromDC(HDC hDC); HWND WindowFromPoint(POINT); UINT WinExec(LPCSTR, UINT); BOOL WinHelpA(HWND, LPCSTR, UINT, ULONG_PTR); BOOL WinHelpW(HWND, LPCWSTR, UINT, ULONG_PTR); extern (C) { int wsprintfA(LPSTR, LPCSTR, ...); int wsprintfW(LPWSTR, LPCWSTR, ...); } // These shouldn't be necessary for D. alias TypeDef!(char*) va_list_; int wvsprintfA(LPSTR, LPCSTR, va_list_ arglist); int wvsprintfW(LPWSTR, LPCWSTR, va_list_ arglist); enum : DWORD { MONITOR_DEFAULTTONULL, MONITOR_DEFAULTTOPRIMARY, MONITOR_DEFAULTTONEAREST // = 2 } enum MONITORINFOF_PRIMARY = 1; enum EDS_RAWMODE = 0x00000002; enum { ISMEX_NOSEND = 0, ISMEX_SEND = 1, ISMEX_NOTIFY = 2, ISMEX_CALLBACK = 4, ISMEX_REPLIED = 8 } struct TITLEBARINFO { DWORD cbSize = TITLEBARINFO.sizeof; RECT rcTitleBar; DWORD[CCHILDREN_TITLEBAR+1] rgstate; } alias TITLEBARINFO* PTITLEBARINFO, LPTITLEBARINFO; static if (_WIN32_WINNT >= 0x501) { // *** correct? struct FLASHWINFO { UINT cbSize = this.sizeof; HWND hwnd; DWORD dwFlags; UINT uCount; DWORD dwTimeout; } alias FLASHWINFO* PFLASHWINFO; } enum DWORD ASFW_ANY = -1; enum : UINT { LSFW_LOCK = 1, LSFW_UNLOCK } enum { GMMP_USE_DISPLAY_POINTS = 1, GMMP_USE_HIGH_RESOLUTION_POINTS } struct MOUSEMOVEPOINT { int x; int y; DWORD time; ULONG_PTR dwExtraInfo; } alias MOUSEMOVEPOINT* PMOUSEMOVEPOINT, LPMOUSEMOVEPOINT; enum { MIM_MAXHEIGHT = 1, MIM_BACKGROUND = 2, MIM_HELPID = 4, MIM_MENUDATA = 8, MIM_STYLE = 16, MIM_APPLYTOSUBMENUS = 0x80000000L } enum { MNS_NOCHECK = 0x80000000, MNS_MODELESS = 0x40000000, MNS_DRAGDROP = 0x20000000, MNS_AUTODISMISS = 0x10000000, MNS_NOTIFYBYPOS = 0x08000000, MNS_CHECKORBMP = 0x04000000 } enum { PM_QS_INPUT = (QS_INPUT << 16), PM_QS_POSTMESSAGE = ((QS_POSTMESSAGE | QS_HOTKEY | QS_TIMER) << 16), PM_QS_PAINT = (QS_PAINT << 16), PM_QS_SENDMESSAGE = (QS_SENDMESSAGE << 16) } /* #define WM_GETOBJECT 0x003D #define WM_CHANGEUISTATE 0x0127 #define WM_UPDATEUISTATE 0x0128 #define WM_QUERYUISTATE 0x0129 #define WM_UNINITMENUPOPUP 0x0125 #define WM_MENURBUTTONUP 290 #define WM_MENUCOMMAND 0x0126 #define WM_MENUGETOBJECT 0x0124 #define WM_MENUDRAG 0x0123 #define WM_APPCOMMAND 0x0319 #define WM_NCXBUTTONDOWN 171 #define WM_NCXBUTTONUP 172 #define WM_NCXBUTTONDBLCLK 173 #define WM_NCMOUSEHOVER 0x02A0 #define WM_NCMOUSELEAVE 0x02A2*/ enum { FLASHW_STOP = 0, FLASHW_CAPTION = 0x01, FLASHW_TRAY = 0x02, FLASHW_ALL = 0x03, FLASHW_TIMER = 0x04, FLASHW_TIMERNOFG = 0x0C } enum CHILDID_SELF = 0; enum { OBJID_WINDOW = 0x00000000, OBJID_SOUND = 0xFFFFFFF5, OBJID_ALERT = 0xFFFFFFF6, OBJID_CURSOR = 0xFFFFFFF7, OBJID_CARET = 0xFFFFFFF8, OBJID_SIZEGRIP = 0xFFFFFFF9, OBJID_HSCROLL = 0xFFFFFFFA, OBJID_VSCROLL = 0xFFFFFFFB, OBJID_CLIENT = 0xFFFFFFFC, OBJID_MENU = 0xFFFFFFFD, OBJID_TITLEBAR = 0xFFFFFFFE, OBJID_SYSMENU = 0xFFFFFFFF } enum { GUI_CARETBLINKING = 0x0001, GUI_INMOVESIZE = 0x0002, GUI_INMENUMODE = 0x0004, GUI_SYSTEMMENUMODE = 0x0008, GUI_POPUPMENUMODE = 0x0010 } static if (_WIN32_WINNT >= 0x501) { enum GUI_16BITTASK = 0x0020; } enum { WINEVENT_OUTOFCONTEXT = 0x00, WINEVENT_SKIPOWNTHREAD = 0x01, WINEVENT_SKIPOWNPROCESS = 0x02, WINEVENT_INCONTEXT = 0x04 } enum { AW_HOR_POSITIVE = 0x00000001, AW_HOR_NEGATIVE = 0x00000002, AW_VER_POSITIVE = 0x00000004, AW_VER_NEGATIVE = 0x00000008, AW_CENTER = 0x00000010, AW_HIDE = 0x00010000, AW_ACTIVATE = 0x00020000, AW_SLIDE = 0x00040000, AW_BLEND = 0x00080000 } enum { DEVICE_NOTIFY_WINDOW_HANDLE = 0x00000000, DEVICE_NOTIFY_SERVICE_HANDLE = 0x00000001 } static if (_WIN32_WINNT >= 0x501) { enum DEVICE_NOTIFY_ALL_INTERFACE_CLASSES = 0x00000004; } enum : DWORD { EVENT_MIN = 0x00000001, EVENT_SYSTEM_SOUND = 0x00000001, EVENT_SYSTEM_ALERT, EVENT_SYSTEM_FOREGROUND, EVENT_SYSTEM_MENUSTART, EVENT_SYSTEM_MENUEND, EVENT_SYSTEM_MENUPOPUPSTART, EVENT_SYSTEM_MENUPOPUPEND, EVENT_SYSTEM_CAPTURESTART, EVENT_SYSTEM_CAPTUREEND, EVENT_SYSTEM_MOVESIZESTART, EVENT_SYSTEM_MOVESIZEEND, EVENT_SYSTEM_CONTEXTHELPSTART, EVENT_SYSTEM_CONTEXTHELPEND, EVENT_SYSTEM_DRAGDROPSTART, EVENT_SYSTEM_DRAGDROPEND, EVENT_SYSTEM_DIALOGSTART, EVENT_SYSTEM_DIALOGEND, EVENT_SYSTEM_SCROLLINGSTART, EVENT_SYSTEM_SCROLLINGEND, EVENT_SYSTEM_SWITCHSTART, EVENT_SYSTEM_SWITCHEND, EVENT_SYSTEM_MINIMIZESTART, EVENT_SYSTEM_MINIMIZEEND, // = 0x00000017 EVENT_OBJECT_CREATE = 0x00008000, EVENT_OBJECT_DESTROY, EVENT_OBJECT_SHOW, EVENT_OBJECT_HIDE, EVENT_OBJECT_REORDER, EVENT_OBJECT_FOCUS, EVENT_OBJECT_SELECTION, EVENT_OBJECT_SELECTIONADD, EVENT_OBJECT_SELECTIONREMOVE, EVENT_OBJECT_SELECTIONWITHIN, EVENT_OBJECT_STATECHANGE, EVENT_OBJECT_LOCATIONCHANGE, EVENT_OBJECT_NAMECHANGE, EVENT_OBJECT_DESCRIPTIONCHANGE, EVENT_OBJECT_VALUECHANGE, EVENT_OBJECT_PARENTCHANGE, EVENT_OBJECT_HELPCHANGE, EVENT_OBJECT_DEFACTIONCHANGE, EVENT_OBJECT_ACCELERATORCHANGE, // = 0x00008012 EVENT_MAX = 0x7FFFFFFF } static if (_WIN32_WINNT >= 0x501) { enum : DWORD { EVENT_CONSOLE_CARET = 0x00004000, EVENT_CONSOLE_UPDATE_REGION, EVENT_CONSOLE_UPDATE_SIMPLE, EVENT_CONSOLE_UPDATE_SCROLL, EVENT_CONSOLE_LAYOUT, EVENT_CONSOLE_START_APPLICATION, EVENT_CONSOLE_END_APPLICATION, // = 0x00004007 } enum : LONG { CONSOLE_CARET_SELECTION = 1, CONSOLE_CARET_VISIBLE // = 2 } enum LONG CONSOLE_APPLICATION_16BIT = 1; } enum { LWA_COLORKEY = 1, LWA_ALPHA } enum { ULW_COLORKEY = 1, ULW_ALPHA = 2, ULW_OPAQUE = 4 } enum { GR_GDIOBJECTS, GR_USEROBJECTS } enum { XBUTTON1 = 1, XBUTTON2 } struct GUITHREADINFO { DWORD cbSize = this.sizeof; DWORD flags; HWND hwndActive; HWND hwndFocus; HWND hwndCapture; HWND hwndMenuOwner; HWND hwndMoveSize; HWND hwndCaret; RECT rcCaret; } alias GUITHREADINFO* PGUITHREADINFO, LPGUITHREADINFO; extern (Windows) { alias void function(HWINEVENTHOOK, DWORD, HWND, LONG, LONG, DWORD, DWORD) WINEVENTPROC; } // *** line 4680 of MinGW 4.0 int BroadcastSystemMessageA(DWORD, LPDWORD, UINT, WPARAM, LPARAM); int BroadcastSystemMessageW(DWORD, LPDWORD, UINT, WPARAM, LPARAM); UINT SendInput(UINT, LPINPUT, int); BOOL EnumDisplayMonitors(HDC, LPCRECT, MONITORENUMPROC, LPARAM); BOOL GetMonitorInfoA(HMONITOR, LPMONITORINFO); extern(D) BOOL GetMonitorInfoA(HMONITOR m, LPMONITORINFOEXA mi) { return GetMonitorInfoA(m, cast(LPMONITORINFO)mi); } BOOL GetMonitorInfoW(HMONITOR, LPMONITORINFO); extern(D) BOOL GetMonitorInfoW(HMONITOR m, LPMONITORINFOEXW mi) { return GetMonitorInfoW(m, cast(LPMONITORINFO)mi); } HMONITOR MonitorFromPoint(POINT, DWORD); HMONITOR MonitorFromRect(LPCRECT, DWORD); HMONITOR MonitorFromWindow(HWND, DWORD); BOOL AllowSetForegroundWindow(DWORD); BOOL AnimateWindow(HWND, DWORD, DWORD); BOOL EndTask(HWND, BOOL, BOOL); BOOL EnumDisplaySettingsExA(LPCSTR, DWORD, LPDEVMODEA, DWORD); BOOL EnumDisplaySettingsExW(LPCWSTR, DWORD, LPDEVMODEW, DWORD); DWORD GetClipboardSequenceNumber(); DWORD GetGuiResources(HANDLE, DWORD); BOOL GetGUIThreadInfo(DWORD, LPGUITHREADINFO); int GetMouseMovePointsEx(UINT, LPMOUSEMOVEPOINT, LPMOUSEMOVEPOINT, int, DWORD); BOOL GetProcessDefaultLayout(DWORD*); HWND GetShellWindow(); BOOL IsHungAppWindow(HWND); DWORD InSendMessageEx(LPVOID); BOOL LockSetForegroundWindow(UINT); BOOL LockWorkStation(); void NotifyWinEvent(DWORD, HWND, LONG, LONG); HDEVNOTIFY RegisterDeviceNotificationA(HANDLE, LPVOID, DWORD); HDEVNOTIFY RegisterDeviceNotificationW(HANDLE, LPVOID, DWORD); BOOL SetProcessDefaultLayout(DWORD); HWINEVENTHOOK SetWinEventHook(UINT, UINT, HMODULE, WINEVENTPROC, DWORD, DWORD, UINT); void SwitchToThisWindow(HWND, BOOL); BOOL SetLayeredWindowAttributes(HWND, COLORREF, BYTE, DWORD); BOOL UpdateLayeredWindow(HWND, HDC, POINT*, SIZE*, HDC, POINT*, COLORREF, BLENDFUNCTION*, DWORD); BOOL UserHandleGrantAccess(HANDLE, HANDLE, BOOL); BOOL UnhookWinEvent(HWINEVENTHOOK); BOOL UnregisterDeviceNotification(HANDLE); static if (_WIN32_WINNT >= 0x501) { int BroadcastSystemMessageExA(DWORD, LPDWORD, UINT, WPARAM, LPARAM, PBSMINFO); int BroadcastSystemMessageExW(DWORD, LPDWORD, UINT, WPARAM, LPARAM, PBSMINFO); LRESULT DefRawInputProc(PRAWINPUT*, INT, UINT); BOOL FlashWindowEx(PFLASHWINFO); BOOL GetLayeredWindowAttributes(HWND, COLORREF*, BYTE*, DWORD*); UINT GetRawInputBuffer(PRAWINPUT, PUINT, UINT); UINT GetRawInputData(HRAWINPUT, UINT, LPVOID, PUINT, UINT); UINT GetRawInputDeviceInfoA(HANDLE, UINT, LPVOID, PUINT); UINT GetRawInputDeviceInfoW(HANDLE, UINT, LPVOID, PUINT); UINT GetRawInputDeviceList(PRAWINPUTDEVICELIST, PUINT, UINT); UINT GetRegisteredRawInputDevices(PRAWINPUTDEVICE, PUINT, UINT); BOOL IsGUIThread(BOOL); BOOL IsWinEventHookInstalled(DWORD); BOOL PrintWindow(HWND, HDC, UINT); BOOL RegisterRawInputDevices(PCRAWINPUTDEVICE, UINT, UINT); } version (Win64) { ULONG_PTR GetClassLongPtrA(HWND, int); ULONG_PTR GetClassLongPtrW(HWND, int); ULONG_PTR SetClassLongPtrA(HWND, int, LONG_PTR); ULONG_PTR SetClassLongPtrW(HWND, int, LONG_PTR); LONG_PTR GetWindowLongPtrA(HWND, int); LONG_PTR GetWindowLongPtrW(HWND, int); LONG_PTR SetWindowLongPtrA(HWND, int, LONG_PTR); LONG_PTR SetWindowLongPtrW(HWND, int, LONG_PTR); } else { alias GetClassLongA GetClassLongPtrA; alias GetClassLongW GetClassLongPtrW; alias SetClassLongA SetClassLongPtrA; alias SetClassLongW SetClassLongPtrW; alias GetWindowLongA GetWindowLongPtrA; alias GetWindowLongW GetWindowLongPtrW; alias SetWindowLongA SetWindowLongPtrA; alias SetWindowLongW SetWindowLongPtrW; } // ----- // Aliases for Unicode or Ansi version (Unicode) { alias EDITWORDBREAKPROCW EDITWORDBREAKPROC; alias PROPENUMPROCW PROPENUMPROC; alias PROPENUMPROCEXW PROPENUMPROCEX; alias DESKTOPENUMPROCW DESKTOPENUMPROC; alias WINSTAENUMPROCW WINSTAENUMPROC; alias MAKEINTRESOURCEW MAKEINTRESOURCE; alias WNDCLASSW WNDCLASS; alias WNDCLASSEXW WNDCLASSEX; alias MENUITEMINFOW MENUITEMINFO; alias LPCMENUITEMINFOW LPCMENUITEMINFO; alias MSGBOXPARAMSW MSGBOXPARAMS; alias HIGHCONTRASTW HIGHCONTRAST; alias SERIALKEYSW SERIALKEYS; alias SOUNDSENTRYW SOUNDSENTRY; alias CREATESTRUCTW CREATESTRUCT; alias CBT_CREATEWNDW CBT_CREATEWND; alias MDICREATESTRUCTW MDICREATESTRUCT; alias MULTIKEYHELPW MULTIKEYHELP; alias MONITORINFOEXW MONITORINFOEX; alias ICONMETRICSW ICONMETRICS; alias NONCLIENTMETRICSW NONCLIENTMETRICS; alias AppendMenuW AppendMenu; alias BroadcastSystemMessageW BroadcastSystemMessage; static if (_WIN32_WINNT >= 0x501) { alias BroadcastSystemMessageExW BroadcastSystemMessageEx; } alias CallMsgFilterW CallMsgFilter; alias CallWindowProcW CallWindowProc; alias ChangeMenuW ChangeMenu; alias CharLowerW CharLower; alias CharLowerBuffW CharLowerBuff; alias CharNextW CharNext; alias CharNextExW CharNextEx; alias CharPrevW CharPrev; alias CharPrevExW CharPrevEx; alias CharToOemW CharToOem; alias CharToOemBuffW CharToOemBuff; alias CharUpperW CharUpper; alias CharUpperBuffW CharUpperBuff; alias CopyAcceleratorTableW CopyAcceleratorTable; alias CreateAcceleratorTableW CreateAcceleratorTable; alias CreateDialogW CreateDialog; alias CreateDialogIndirectW CreateDialogIndirect; alias CreateDialogIndirectParamW CreateDialogIndirectParam; alias CreateDialogParamW CreateDialogParam; alias CreateMDIWindowW CreateMDIWindow; alias CreateWindowW CreateWindow; alias CreateWindowExW CreateWindowEx; alias CreateWindowStationW CreateWindowStation; alias DefDlgProcW DefDlgProc; alias DefFrameProcW DefFrameProc; alias DefMDIChildProcW DefMDIChildProc; alias DefWindowProcW DefWindowProc; alias DialogBoxW DialogBox; alias DialogBoxIndirectW DialogBoxIndirect; alias DialogBoxIndirectParamW DialogBoxIndirectParam; alias DialogBoxParamW DialogBoxParam; alias DispatchMessageW DispatchMessage; alias DlgDirListW DlgDirList; alias DlgDirListComboBoxW DlgDirListComboBox; alias DlgDirSelectComboBoxExW DlgDirSelectComboBoxEx; alias DlgDirSelectExW DlgDirSelectEx; alias DrawStateW DrawState; alias DrawTextW DrawText; alias DrawTextExW DrawTextEx; alias EnumDesktopsW EnumDesktops; alias EnumPropsW EnumProps; alias EnumPropsExW EnumPropsEx; alias EnumWindowStationsW EnumWindowStations; alias FindWindowW FindWindow; alias FindWindowExW FindWindowEx; alias GetClassInfoW GetClassInfo; alias GetClassInfoExW GetClassInfoEx; alias GetClassLongW GetClassLong; alias GetClassLongPtrW GetClassLongPtr; alias GetClassNameW GetClassName; alias GetClipboardFormatNameW GetClipboardFormatName; alias GetDlgItemTextW GetDlgItemText; alias GetKeyboardLayoutNameW GetKeyboardLayoutName; alias GetKeyNameTextW GetKeyNameText; alias GetMenuItemInfoW GetMenuItemInfo; alias GetMenuStringW GetMenuString; alias GetMessageW GetMessage; alias GetMonitorInfoW GetMonitorInfo; alias GetPropW GetProp; static if (_WIN32_WINNT >= 0x501) { alias GetRawInputDeviceInfoW GetRawInputDeviceInfo; } alias GetTabbedTextExtentW GetTabbedTextExtent; alias GetUserObjectInformationW GetUserObjectInformation; alias GetWindowLongW GetWindowLong; alias GetWindowLongPtrW GetWindowLongPtr; alias GetWindowTextW GetWindowText; alias GetWindowTextLengthW GetWindowTextLength; alias GetAltTabInfoW GetAltTabInfo; alias GetWindowModuleFileNameW GetWindowModuleFileName; alias GrayStringW GrayString; alias InsertMenuW InsertMenu; alias InsertMenuItemW InsertMenuItem; alias IsCharAlphaW IsCharAlpha; alias IsCharAlphaNumericW IsCharAlphaNumeric; alias IsCharLowerW IsCharLower; alias IsCharUpperW IsCharUpper; alias IsDialogMessageW IsDialogMessage; alias LoadAcceleratorsW LoadAccelerators; alias LoadBitmapW LoadBitmap; alias LoadCursorW LoadCursor; alias LoadCursorFromFileW LoadCursorFromFile; alias LoadIconW LoadIcon; alias LoadImageW LoadImage; alias LoadKeyboardLayoutW LoadKeyboardLayout; alias LoadMenuW LoadMenu; alias LoadMenuIndirectW LoadMenuIndirect; alias LoadStringW LoadString; alias MapVirtualKeyW MapVirtualKey; alias MapVirtualKeyExW MapVirtualKeyEx; alias MessageBoxW MessageBox; alias MessageBoxExW MessageBoxEx; alias MessageBoxIndirectW MessageBoxIndirect; alias ModifyMenuW ModifyMenu; alias OemToCharW OemToChar; alias OemToCharBuffW OemToCharBuff; alias OpenDesktopW OpenDesktop; alias OpenWindowStationW OpenWindowStation; alias PeekMessageW PeekMessage; alias PostMessageW PostMessage; alias PostThreadMessageW PostThreadMessage; alias RealGetWindowClassW RealGetWindowClass; alias RegisterClassW RegisterClass; alias RegisterClassExW RegisterClassEx; alias RegisterClipboardFormatW RegisterClipboardFormat; alias RegisterDeviceNotificationW RegisterDeviceNotification; alias RegisterWindowMessageW RegisterWindowMessage; alias RemovePropW RemoveProp; alias SendDlgItemMessageW SendDlgItemMessage; alias SendMessageW SendMessage; alias SendMessageCallbackW SendMessageCallback; alias SendMessageTimeoutW SendMessageTimeout; alias SendNotifyMessageW SendNotifyMessage; alias SetClassLongW SetClassLong; alias SetClassLongPtrW SetClassLongPtr; alias SetDlgItemTextW SetDlgItemText; alias SetMenuItemInfoW SetMenuItemInfo; alias SetPropW SetProp; alias SetUserObjectInformationW SetUserObjectInformation; alias SetWindowLongW SetWindowLong; alias SetWindowLongPtrW SetWindowLongPtr; alias SetWindowsHookW SetWindowsHook; alias SetWindowsHookExW SetWindowsHookEx; alias SetWindowTextW SetWindowText; alias SystemParametersInfoW SystemParametersInfo; alias TabbedTextOutW TabbedTextOut; alias TranslateAcceleratorW TranslateAccelerator; alias UnregisterClassW UnregisterClass; alias VkKeyScanW VkKeyScan; alias VkKeyScanExW VkKeyScanEx; alias WinHelpW WinHelp; alias wsprintfW wsprintf; alias wvsprintfW wvsprintf; alias ChangeDisplaySettingsW ChangeDisplaySettings; alias ChangeDisplaySettingsExW ChangeDisplaySettingsEx; alias CreateDesktopW CreateDesktop; alias EnumDisplaySettingsW EnumDisplaySettings; alias EnumDisplaySettingsExW EnumDisplaySettingsEx; alias EnumDisplayDevicesW EnumDisplayDevices; } else { // ANSI alias EDITWORDBREAKPROCA EDITWORDBREAKPROC; alias PROPENUMPROCA PROPENUMPROC; alias PROPENUMPROCEXA PROPENUMPROCEX; alias DESKTOPENUMPROCA DESKTOPENUMPROC; alias WINSTAENUMPROCA WINSTAENUMPROC; alias MAKEINTRESOURCEA MAKEINTRESOURCE; alias WNDCLASSA WNDCLASS; alias WNDCLASSEXA WNDCLASSEX; alias MENUITEMINFOA MENUITEMINFO; alias LPCMENUITEMINFOA LPCMENUITEMINFO; alias MSGBOXPARAMSA MSGBOXPARAMS; alias HIGHCONTRASTA HIGHCONTRAST; alias SERIALKEYSA SERIALKEYS; alias SOUNDSENTRYA SOUNDSENTRY; alias CREATESTRUCTA CREATESTRUCT; alias CBT_CREATEWNDA CBT_CREATEWND; alias MDICREATESTRUCTA MDICREATESTRUCT; alias MULTIKEYHELPA MULTIKEYHELP; alias MONITORINFOEXA MONITORINFOEX; alias ICONMETRICSA ICONMETRICS; alias NONCLIENTMETRICSA NONCLIENTMETRICS; alias AppendMenuA AppendMenu; alias BroadcastSystemMessageA BroadcastSystemMessage; static if (_WIN32_WINNT >= 0x501) { alias BroadcastSystemMessageExA BroadcastSystemMessageEx; } alias CallMsgFilterA CallMsgFilter; alias CallWindowProcA CallWindowProc; alias ChangeMenuA ChangeMenu; alias CharLowerA CharLower; alias CharLowerBuffA CharLowerBuff; alias CharNextA CharNext; alias CharNextExA CharNextEx; alias CharPrevA CharPrev; alias CharPrevExA CharPrevEx; alias CharToOemA CharToOem; alias CharToOemBuffA CharToOemBuff; alias CharUpperA CharUpper; alias CharUpperBuffA CharUpperBuff; alias CopyAcceleratorTableA CopyAcceleratorTable; alias CreateAcceleratorTableA CreateAcceleratorTable; alias CreateDialogA CreateDialog; alias CreateDialogIndirectA CreateDialogIndirect; alias CreateDialogIndirectParamA CreateDialogIndirectParam; alias CreateDialogParamA CreateDialogParam; alias CreateMDIWindowA CreateMDIWindow; alias CreateWindowA CreateWindow; alias CreateWindowExA CreateWindowEx; alias CreateWindowStationA CreateWindowStation; alias DefDlgProcA DefDlgProc; alias DefFrameProcA DefFrameProc; alias DefMDIChildProcA DefMDIChildProc; alias DefWindowProcA DefWindowProc; alias DialogBoxA DialogBox; alias DialogBoxIndirectA DialogBoxIndirect; alias DialogBoxIndirectParamA DialogBoxIndirectParam; alias DialogBoxParamA DialogBoxParam; alias DispatchMessageA DispatchMessage; alias DlgDirListA DlgDirList; alias DlgDirListComboBoxA DlgDirListComboBox; alias DlgDirSelectComboBoxExA DlgDirSelectComboBoxEx; alias DlgDirSelectExA DlgDirSelectEx; alias DrawStateA DrawState; alias DrawTextA DrawText; alias DrawTextExA DrawTextEx; alias EnumDesktopsA EnumDesktops; alias EnumPropsA EnumProps; alias EnumPropsExA EnumPropsEx; alias EnumWindowStationsA EnumWindowStations; alias FindWindowA FindWindow; alias FindWindowExA FindWindowEx; alias GetClassInfoA GetClassInfo; alias GetClassInfoExA GetClassInfoEx; alias GetClassLongA GetClassLong; alias GetClassLongPtrA GetClassLongPtr; alias GetClassNameA GetClassName; alias GetClipboardFormatNameA GetClipboardFormatName; alias GetDlgItemTextA GetDlgItemText; alias GetKeyboardLayoutNameA GetKeyboardLayoutName; alias GetKeyNameTextA GetKeyNameText; alias GetMenuItemInfoA GetMenuItemInfo; alias GetMenuStringA GetMenuString; alias GetMessageA GetMessage; alias GetMonitorInfoA GetMonitorInfo; alias GetPropA GetProp; static if (_WIN32_WINNT >= 0x501) { alias GetRawInputDeviceInfoA GetRawInputDeviceInfo; } alias GetTabbedTextExtentA GetTabbedTextExtent; alias GetUserObjectInformationA GetUserObjectInformation; alias GetWindowLongA GetWindowLong; alias GetWindowLongPtrA GetWindowLongPtr; alias GetWindowTextA GetWindowText; alias GetWindowTextLengthA GetWindowTextLength; alias GetAltTabInfoA GetAltTabInfo; alias GetWindowModuleFileNameA GetWindowModuleFileName; alias GrayStringA GrayString; alias InsertMenuA InsertMenu; alias InsertMenuItemA InsertMenuItem; alias IsCharAlphaA IsCharAlpha; alias IsCharAlphaNumericA IsCharAlphaNumeric; alias IsCharLowerA IsCharLower; alias IsCharUpperA IsCharUpper; alias IsDialogMessageA IsDialogMessage; alias LoadAcceleratorsA LoadAccelerators; alias LoadBitmapA LoadBitmap; alias LoadCursorA LoadCursor; alias LoadIconA LoadIcon; alias LoadCursorFromFileA LoadCursorFromFile; alias LoadImageA LoadImage; alias LoadKeyboardLayoutA LoadKeyboardLayout; alias LoadMenuA LoadMenu; alias LoadMenuIndirectA LoadMenuIndirect; alias LoadStringA LoadString; alias MapVirtualKeyA MapVirtualKey; alias MapVirtualKeyExA MapVirtualKeyEx; alias MessageBoxA MessageBox; alias MessageBoxExA MessageBoxEx; alias MessageBoxIndirectA MessageBoxIndirect; alias ModifyMenuA ModifyMenu; alias OemToCharA OemToChar; alias OemToCharBuffA OemToCharBuff; alias OpenDesktopA OpenDesktop; alias OpenWindowStationA OpenWindowStation; alias PeekMessageA PeekMessage; alias PostMessageA PostMessage; alias PostThreadMessageA PostThreadMessage; alias RealGetWindowClassA RealGetWindowClass; alias RegisterClassA RegisterClass; alias RegisterClassExA RegisterClassEx; alias RegisterClipboardFormatA RegisterClipboardFormat; alias RegisterDeviceNotificationA RegisterDeviceNotification; alias RegisterWindowMessageA RegisterWindowMessage; alias RemovePropA RemoveProp; alias SendDlgItemMessageA SendDlgItemMessage; alias SendMessageA SendMessage; alias SendMessageCallbackA SendMessageCallback; alias SendMessageTimeoutA SendMessageTimeout; alias SendNotifyMessageA SendNotifyMessage; alias SetClassLongA SetClassLong; alias SetClassLongPtrA SetClassLongPtr; alias SetDlgItemTextA SetDlgItemText; alias SetMenuItemInfoA SetMenuItemInfo; alias SetPropA SetProp; alias SetUserObjectInformationA SetUserObjectInformation; alias SetWindowLongA SetWindowLong; alias SetWindowLongPtrA SetWindowLongPtr; alias SetWindowsHookA SetWindowsHook; alias SetWindowsHookExA SetWindowsHookEx; alias SetWindowTextA SetWindowText; alias SystemParametersInfoA SystemParametersInfo; alias TabbedTextOutA TabbedTextOut; alias TranslateAcceleratorA TranslateAccelerator; alias UnregisterClassA UnregisterClass; alias VkKeyScanA VkKeyScan; alias VkKeyScanExA VkKeyScanEx; alias WinHelpA WinHelp; alias wsprintfA wsprintf; alias wvsprintfA wvsprintf; alias ChangeDisplaySettingsA ChangeDisplaySettings; alias ChangeDisplaySettingsExA ChangeDisplaySettingsEx; alias CreateDesktopA CreateDesktop; alias EnumDisplaySettingsA EnumDisplaySettings; alias EnumDisplaySettingsExA EnumDisplaySettingsEx; alias EnumDisplayDevicesA EnumDisplayDevices; } alias WNDCLASS* LPWNDCLASS, PWNDCLASS; alias WNDCLASSEX* LPWNDCLASSEX, PWNDCLASSEX; alias MENUITEMINFO* LPMENUITEMINFO; alias MSGBOXPARAMS* PMSGBOXPARAMS, LPMSGBOXPARAMS; alias HIGHCONTRAST* LPHIGHCONTRAST; alias SERIALKEYS* LPSERIALKEYS; alias SOUNDSENTRY* LPSOUNDSENTRY; alias CREATESTRUCT* LPCREATESTRUCT; alias CBT_CREATEWND* LPCBT_CREATEWND; alias MDICREATESTRUCT* LPMDICREATESTRUCT; alias MULTIKEYHELP* PMULTIKEYHELP, LPMULTIKEYHELP; alias MONITORINFOEX* LPMONITORINFOEX; alias ICONMETRICS* LPICONMETRICS; alias NONCLIENTMETRICS* LPNONCLIENTMETRICS; static if (_WIN32_WINNT >= 0x501) { enum PW_CLIENTONLY = 0x00000001; enum RIM_INPUT = 0x00000000; enum RIM_INPUTSINK = 0x00000001; enum RIM_TYPEMOUSE = 0x00000000; enum RIM_TYPEKEYBOARD = 0x00000001; enum RIM_TYPEHID = 0x00000002; enum MOUSE_MOVE_RELATIVE = 0x00000000; enum MOUSE_MOVE_ABSOLUTE = 0x00000001; enum MOUSE_VIRTUAL_DESKTOP = 0x00000002; enum MOUSE_ATTRIBUTES_CHANGED = 0x00000004; enum RI_MOUSE_LEFT_BUTTON_DOWN = 0x0001; enum RI_MOUSE_LEFT_BUTTON_UP = 0x0002; enum RI_MOUSE_RIGHT_BUTTON_DOWN = 0x0004; enum RI_MOUSE_RIGHT_BUTTON_UP = 0x0008; enum RI_MOUSE_MIDDLE_BUTTON_DOWN = 0x0010; enum RI_MOUSE_MIDDLE_BUTTON_UP = 0x0020; enum RI_MOUSE_BUTTON_1_DOWN = RI_MOUSE_LEFT_BUTTON_DOWN; enum RI_MOUSE_BUTTON_1_UP = RI_MOUSE_LEFT_BUTTON_UP; enum RI_MOUSE_BUTTON_2_DOWN = RI_MOUSE_RIGHT_BUTTON_DOWN; enum RI_MOUSE_BUTTON_2_UP = RI_MOUSE_RIGHT_BUTTON_UP; enum RI_MOUSE_BUTTON_3_DOWN = RI_MOUSE_MIDDLE_BUTTON_DOWN; enum RI_MOUSE_BUTTON_3_UP = RI_MOUSE_MIDDLE_BUTTON_UP; enum RI_MOUSE_BUTTON_4_DOWN = 0x0040; enum RI_MOUSE_BUTTON_4_UP = 0x0080; enum RI_MOUSE_BUTTON_5_DOWN = 0x0100; enum RI_MOUSE_BUTTON_5_UP = 0x0200; enum RI_MOUSE_WHEEL = 0x0400; enum KEYBOARD_OVERRUN_MAKE_CODE = 0x00ff; enum RI_KEY_MAKE = 0x0000; enum RI_KEY_BREAK = 0x0001; enum RI_KEY_E0 = 0x0002; enum RI_KEY_E1 = 0x0004; enum RI_KEY_TERMSRV_SET_LED = 0x0008; enum RI_KEY_TERMSRV_SHADOW = 0x0010; enum RID_INPUT = 0x10000003; enum RID_HEADER = 0x10000005; enum RIDI_PREPARSEDDATA = 0x20000005; enum RIDI_DEVICENAME = 0x20000007; enum RIDI_DEVICEINFO = 0x2000000b; enum RIDEV_REMOVE = 0x00000001; enum RIDEV_EXCLUDE = 0x00000010; enum RIDEV_PAGEONLY = 0x00000020; enum RIDEV_NOLEGACY = 0x00000030; enum RIDEV_INPUTSINK = 0x00000100; enum RIDEV_CAPTUREMOUSE = 0x00000200; enum RIDEV_NOHOTKEYS = 0x00000200; enum RIDEV_APPKEYS = 0x00000400; }