blob: 9d8c26440edb1206a30aeec41934c65ffc3c45cd [file]
/**
* 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):
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 GCLP_HICONSM = GCL_HICONSM;
alias GCLP_HICON = GCL_HICON;
alias GCLP_HCURSOR = GCL_HCURSOR;
alias GCLP_HBRBACKGROUND = GCL_HBRBACKGROUND;
alias GCLP_HMODULE = GCL_HMODULE;
alias GCLP_MENUNAME = GCL_MENUNAME;
alias GCLP_WNDPROC = GCL_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 DLGPROC = INT_PTR function(HWND, UINT, WPARAM, LPARAM);
alias TIMERPROC = void function(HWND, UINT, UINT_PTR, DWORD);
alias GRAYSTRINGPROC = BOOL function(HDC, LPARAM, int);
alias HOOKPROC = LRESULT function(int, WPARAM, LPARAM);
alias PROPENUMPROCA = BOOL function(HWND, LPCSTR, HANDLE);
alias PROPENUMPROCW = BOOL function(HWND, LPCWSTR, HANDLE);
alias PROPENUMPROCEXA = BOOL function(HWND, LPSTR, HANDLE, ULONG_PTR);
alias PROPENUMPROCEXW = BOOL function(HWND, LPWSTR, HANDLE, ULONG_PTR);
alias EDITWORDBREAKPROCA = int function(LPSTR, int, int, int);
alias EDITWORDBREAKPROCW = int function(LPWSTR, int, int, int);
alias WNDPROC = LRESULT function(HWND, UINT, WPARAM, LPARAM);
alias DRAWSTATEPROC = BOOL function(HDC, LPARAM, WPARAM, int, int);
alias WNDENUMPROC = BOOL function(HWND, LPARAM);
alias ENUMWINDOWSPROC = BOOL function(HWND, LPARAM);
alias MSGBOXCALLBACK = void function(LPHELPINFO);
alias MONITORENUMPROC = BOOL function(HMONITOR, HDC, LPRECT, LPARAM);
alias NAMEENUMPROCA = BOOL function(LPSTR, LPARAM);
alias NAMEENUMPROCW = BOOL function(LPWSTR, LPARAM);
alias SENDASYNCPROC = void function(HWND, UINT, ULONG_PTR, LRESULT);
alias DESKTOPENUMPROCA = NAMEENUMPROCA;
alias DESKTOPENUMPROCW = NAMEENUMPROCW;
alias WINSTAENUMPROCA = NAMEENUMPROCA;
alias WINSTAENUMPROCW = NAMEENUMPROCW;
}
alias HDWP = HANDLE;
alias HDEVNOTIFY = HANDLE;
struct MENUGETOBJECTINFO {
DWORD dwFlags;
UINT uPos;
HMENU hmenu;
PVOID riid;
PVOID pvObj;
}
alias PMENUGETOBJECTINFO = MENUGETOBJECTINFO*;
struct ACCEL {
BYTE fVirt;
WORD key;
WORD cmd;
}
alias LPACCEL = ACCEL*;
struct ACCESSTIMEOUT {
UINT cbSize = ACCESSTIMEOUT.sizeof;
DWORD dwFlags;
DWORD iTimeOutMSec;
}
alias LPACCESSTIMEOUT = ACCESSTIMEOUT*;
struct ANIMATIONINFO {
UINT cbSize = ANIMATIONINFO.sizeof;
int iMinAnimate;
}
alias LPANIMATIONINFO = ANIMATIONINFO*;
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 LPCREATESTRUCTA = CREATESTRUCTA*;
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 LPCREATESTRUCTW = CREATESTRUCTW*;
struct CBT_CREATEWNDA {
LPCREATESTRUCTA lpcs;
HWND hwndInsertAfter;
}
alias LPCBT_CREATEWNDA = CBT_CREATEWNDA*;
struct CBT_CREATEWNDW {
LPCREATESTRUCTW lpcs;
HWND hwndInsertAfter;
}
alias LPCBT_CREATEWNDW = CBT_CREATEWNDW*;
struct CBTACTIVATESTRUCT {
BOOL fMouse;
HWND hWndActive;
}
alias LPCBTACTIVATESTRUCT = CBTACTIVATESTRUCT*;
static if (_WIN32_WINNT >= 0x501) {
struct WTSSESSION_NOTIFICATION
{
DWORD cbSize;
DWORD dwSessionId;
}
alias PWTSSESSION_NOTIFICATION = WTSSESSION_NOTIFICATION*;
}
struct CLIENTCREATESTRUCT {
HANDLE hWindowMenu;
UINT idFirstChild;
}
alias LPCLIENTCREATESTRUCT = CLIENTCREATESTRUCT*;
struct COMPAREITEMSTRUCT {
UINT CtlType;
UINT CtlID;
HWND hwndItem;
UINT itemID1;
ULONG_PTR itemData1;
UINT itemID2;
ULONG_PTR itemData2;
DWORD dwLocaleId;
}
alias LPCOMPAREITEMSTRUCT = COMPAREITEMSTRUCT*;
struct COPYDATASTRUCT {
ULONG_PTR dwData;
DWORD cbData;
PVOID lpData;
}
alias PCOPYDATASTRUCT = COPYDATASTRUCT*;
struct CURSORSHAPE {
int xHotSpot;
int yHotSpot;
int cx;
int cy;
int cbWidth;
BYTE Planes;
BYTE BitsPixel;
}
alias LPCURSORSHAPE = CURSORSHAPE*;
struct CWPRETSTRUCT {
LRESULT lResult;
LPARAM lParam;
WPARAM wParam;
DWORD message;
HWND hwnd;
}
struct CWPSTRUCT {
LPARAM lParam;
WPARAM wParam;
UINT message;
HWND hwnd;
}
alias PCWPSTRUCT = CWPSTRUCT*;
struct DEBUGHOOKINFO {
DWORD idThread;
DWORD idThreadInstaller;
LPARAM lParam;
WPARAM wParam;
int code;
}
alias PDEBUGHOOKINFO = DEBUGHOOKINFO*, LPDEBUGHOOKINFO = DEBUGHOOKINFO*;
struct DELETEITEMSTRUCT {
UINT CtlType;
UINT CtlID;
UINT itemID;
HWND hwndItem;
ULONG_PTR itemData;
}
alias PDELETEITEMSTRUCT = DELETEITEMSTRUCT*, LPDELETEITEMSTRUCT = DELETEITEMSTRUCT*;
align(2):
struct DLGITEMTEMPLATE {
DWORD style;
DWORD dwExtendedStyle;
short x;
short y;
short cx;
short cy;
WORD id;
}
alias LPDLGITEMTEMPLATE = DLGITEMTEMPLATE*;
struct DLGTEMPLATE {
DWORD style;
DWORD dwExtendedStyle;
WORD cdit;
short x;
short y;
short cx;
short cy;
}
alias LPDLGTEMPLATE = DLGTEMPLATE*, LPDLGTEMPLATEA = DLGTEMPLATE*, LPDLGTEMPLATEW = DLGTEMPLATE*;
alias LPCDLGTEMPLATE = const(DLGTEMPLATE)*, LPCDLGTEMPLATEA = const(DLGTEMPLATE)*, LPCDLGTEMPLATEW = const(DLGTEMPLATE)*;
align:
struct DRAWITEMSTRUCT {
UINT CtlType;
UINT CtlID;
UINT itemID;
UINT itemAction;
UINT itemState;
HWND hwndItem;
HDC hDC;
RECT rcItem;
ULONG_PTR itemData;
}
alias LPDRAWITEMSTRUCT = DRAWITEMSTRUCT*, PDRAWITEMSTRUCT = DRAWITEMSTRUCT*;
struct DRAWTEXTPARAMS {
UINT cbSize = DRAWTEXTPARAMS.sizeof;
int iTabLength;
int iLeftMargin;
int iRightMargin;
UINT uiLengthDrawn;
}
alias LPDRAWTEXTPARAMS = DRAWTEXTPARAMS*;
struct PAINTSTRUCT {
HDC hdc;
BOOL fErase;
RECT rcPaint;
BOOL fRestore;
BOOL fIncUpdate;
BYTE[32] rgbReserved;
}
alias PPAINTSTRUCT = PAINTSTRUCT*, NPPAINTSTRUCT = PAINTSTRUCT*, LPPAINTSTRUCT = PAINTSTRUCT*;
struct MSG {
HWND hwnd;
UINT message;
WPARAM wParam;
LPARAM lParam;
DWORD time;
POINT pt;
}
alias NPMSG = MSG*, LPMSG = MSG*, PMSG = MSG*;
struct ICONINFO {
BOOL fIcon;
DWORD xHotspot;
DWORD yHotspot;
HBITMAP hbmMask;
HBITMAP hbmColor;
}
alias PICONINFO = ICONINFO*;
struct NMHDR {
HWND hwndFrom;
UINT_PTR idFrom;
UINT code;
}
alias LPNMHDR = NMHDR*;
struct WNDCLASSA {
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCSTR lpszMenuName;
LPCSTR lpszClassName;
}
alias NPWNDCLASSA = WNDCLASSA*, LPWNDCLASSA = WNDCLASSA*, PWNDCLASSA = WNDCLASSA*;
struct WNDCLASSW {
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCWSTR lpszMenuName;
LPCWSTR lpszClassName;
}
alias NPWNDCLASSW = WNDCLASSW*, LPWNDCLASSW = WNDCLASSW*, PWNDCLASSW = WNDCLASSW*;
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 NPWNDCLASSEXA = WNDCLASSEXA*, LPWNDCLASSEXA = WNDCLASSEXA*, PWNDCLASSEXA = WNDCLASSEXA*;
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 LPWNDCLASSEXW = WNDCLASSEXW*, PWNDCLASSEXW = WNDCLASSEXW*;
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 LPMENUITEMINFOA = MENUITEMINFOA*;
alias LPCMENUITEMINFOA = const(MENUITEMINFOA)*;
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 LPMENUITEMINFOW = MENUITEMINFOW*;
alias LPCMENUITEMINFOW = const(MENUITEMINFOW)*;
struct SCROLLINFO {
UINT cbSize = this.sizeof;
UINT fMask;
int nMin;
int nMax;
UINT nPage;
int nPos;
int nTrackPos;
}
alias LPSCROLLINFO = SCROLLINFO*;
alias LPCSCROLLINFO = const(SCROLLINFO)*;
struct WINDOWPLACEMENT {
UINT length;
UINT flags;
UINT showCmd;
POINT ptMinPosition;
POINT ptMaxPosition;
RECT rcNormalPosition;
}
alias LPWINDOWPLACEMENT = WINDOWPLACEMENT*, PWINDOWPLACEMENT = WINDOWPLACEMENT*;
struct MENUITEMTEMPLATEHEADER {
WORD versionNumber;
WORD offset;
}
struct MENUITEMTEMPLATE {
WORD mtOption;
WORD mtID;
WCHAR[1] mtString = 0;
}
alias MENUTEMPLATE = void, MENUTEMPLATEA = void, MENUTEMPLATEW = void;
alias LPMENUTEMPLATEA = MENUTEMPLATE*, LPMENUTEMPLATEW = MENUTEMPLATE*, LPMENUTEMPLATE = MENUTEMPLATE*;
struct HELPINFO {
UINT cbSize = this.sizeof;
int iContextType;
int iCtrlId;
HANDLE hItemHandle;
DWORD_PTR dwContextId;
POINT MousePos;
}
alias LPHELPINFO = HELPINFO*;
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 PMSGBOXPARAMSA = MSGBOXPARAMSA*, LPMSGBOXPARAMSA = MSGBOXPARAMSA*;
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 PMSGBOXPARAMSW = MSGBOXPARAMSW*, LPMSGBOXPARAMSW = MSGBOXPARAMSW*;
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 LPHIGHCONTRASTA = HIGHCONTRASTA*;
struct HIGHCONTRASTW {
UINT cbSize = this.sizeof;
DWORD dwFlags;
LPWSTR lpszDefaultScheme;
}
alias LPHIGHCONTRASTW = HIGHCONTRASTW*;
struct ICONMETRICSA {
UINT cbSize = this.sizeof;
int iHorzSpacing;
int iVertSpacing;
int iTitleWrap;
LOGFONTA lfFont;
}
alias LPICONMETRICSA = ICONMETRICSA*;
struct ICONMETRICSW {
UINT cbSize = this.sizeof;
int iHorzSpacing;
int iVertSpacing;
int iTitleWrap;
LOGFONTW lfFont;
}
alias LPICONMETRICSW = ICONMETRICSW*;
struct MINIMIZEDMETRICS {
UINT cbSize = this.sizeof;
int iWidth;
int iHorzGap;
int iVertGap;
int iArrange;
}
alias LPMINIMIZEDMETRICS = MINIMIZEDMETRICS*;
struct MOUSEKEYS {
UINT cbSize = this.sizeof;
DWORD dwFlags;
DWORD iMaxSpeed;
DWORD iTimeToMaxSpeed;
DWORD iCtrlSpeed;
DWORD dwReserved1;
DWORD dwReserved2;
}
alias LPMOUSEKEYS = MOUSEKEYS*;
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 LPNONCLIENTMETRICSA = NONCLIENTMETRICSA*;
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 LPNONCLIENTMETRICSW = NONCLIENTMETRICSW*;
struct SERIALKEYSA {
UINT cbSize = this.sizeof;
DWORD dwFlags;
LPSTR lpszActivePort;
LPSTR lpszPort;
UINT iBaudRate;
UINT iPortState;
UINT iActive;
}
alias LPSERIALKEYSA = SERIALKEYSA*;
struct SERIALKEYSW {
UINT cbSize = this.sizeof;
DWORD dwFlags;
LPWSTR lpszActivePort;
LPWSTR lpszPort;
UINT iBaudRate;
UINT iPortState;
UINT iActive;
}
alias LPSERIALKEYSW = SERIALKEYSW*;
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 LPSOUNDSENTRYA = SOUNDSENTRYA*;
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 LPSOUNDSENTRYW = SOUNDSENTRYW*;
struct STICKYKEYS {
DWORD cbSize = this.sizeof;
DWORD dwFlags;
}
alias LPSTICKYKEYS = STICKYKEYS*;
struct TOGGLEKEYS {
DWORD cbSize = this.sizeof;
DWORD dwFlags;
}
struct MOUSEHOOKSTRUCT {
POINT pt;
HWND hwnd;
UINT wHitTestCode;
ULONG_PTR dwExtraInfo;
}
alias LPMOUSEHOOKSTRUCT = MOUSEHOOKSTRUCT*, PMOUSEHOOKSTRUCT = MOUSEHOOKSTRUCT*;
struct TRACKMOUSEEVENT {
DWORD cbSize = this.sizeof;
DWORD dwFlags;
HWND hwndTrack;
DWORD dwHoverTime;
}
alias LPTRACKMOUSEEVENT = TRACKMOUSEEVENT*;
struct TPMPARAMS {
UINT cbSize = this.sizeof;
RECT rcExclude;
}
alias LPTPMPARAMS = TPMPARAMS*;
struct EVENTMSG {
UINT message;
UINT paramL;
UINT paramH;
DWORD time;
HWND hwnd;
}
alias PEVENTMSGMSG = EVENTMSG*, LPEVENTMSGMSG = EVENTMSG*, PEVENTMSG = EVENTMSG*, LPEVENTMSG = EVENTMSG*;
struct WINDOWPOS {
HWND hwnd;
HWND hwndInsertAfter;
int x;
int y;
int cx;
int cy;
UINT flags;
}
alias PWINDOWPOS = WINDOWPOS*, LPWINDOWPOS = WINDOWPOS*;
struct NCCALCSIZE_PARAMS {
RECT[3] rgrc;
PWINDOWPOS lppos;
}
alias LPNCCALCSIZE_PARAMS = NCCALCSIZE_PARAMS*;
struct MDICREATESTRUCTA {
LPCSTR szClass;
LPCSTR szTitle;
HANDLE hOwner;
int x;
int y;
int cx;
int cy;
DWORD style;
LPARAM lParam;
}
alias LPMDICREATESTRUCTA = MDICREATESTRUCTA*;
struct MDICREATESTRUCTW {
LPCWSTR szClass;
LPCWSTR szTitle;
HANDLE hOwner;
int x;
int y;
int cx;
int cy;
DWORD style;
LPARAM lParam;
}
alias LPMDICREATESTRUCTW = MDICREATESTRUCTW*;
struct MINMAXINFO {
POINT ptReserved;
POINT ptMaxSize;
POINT ptMaxPosition;
POINT ptMinTrackSize;
POINT ptMaxTrackSize;
}
alias PMINMAXINFO = MINMAXINFO*, LPMINMAXINFO = MINMAXINFO*;
struct MDINEXTMENU {
HMENU hmenuIn;
HMENU hmenuNext;
HWND hwndNext;
}
alias PMDINEXTMENU = MDINEXTMENU*, LPMDINEXTMENU = MDINEXTMENU*;
struct MEASUREITEMSTRUCT {
UINT CtlType;
UINT CtlID;
UINT itemID;
UINT itemWidth;
UINT itemHeight;
ULONG_PTR itemData;
}
alias PMEASUREITEMSTRUCT = MEASUREITEMSTRUCT*, LPMEASUREITEMSTRUCT = MEASUREITEMSTRUCT*;
struct DROPSTRUCT {
HWND hwndSource;
HWND hwndSink;
DWORD wFmt;
ULONG_PTR dwData;
POINT ptDrop;
DWORD dwControlData;
}
alias PDROPSTRUCT = DROPSTRUCT*, LPDROPSTRUCT = DROPSTRUCT*;
alias HELPPOLY = DWORD;
struct MULTIKEYHELPA {
DWORD mkSize;
CHAR mkKeylist = 0;
CHAR[1] szKeyphrase = 0;
}
alias PMULTIKEYHELPA = MULTIKEYHELPA*, LPMULTIKEYHELPA = MULTIKEYHELPA*;
struct MULTIKEYHELPW {
DWORD mkSize;
WCHAR mkKeylist = 0;
WCHAR[1] szKeyphrase = 0;
}
alias PMULTIKEYHELPW = MULTIKEYHELPW*, LPMULTIKEYHELPW = MULTIKEYHELPW*;
struct HELPWININFOA {
int wStructSize;
int x;
int y;
int dx;
int dy;
int wMax;
CHAR[2] rgchMember = 0;
}
alias PHELPWININFOA = HELPWININFOA*, LPHELPWININFOA = HELPWININFOA*;
struct HELPWININFOW {
int wStructSize;
int x;
int y;
int dx;
int dy;
int wMax;
WCHAR[2] rgchMember = 0;
}
alias PHELPWININFOW = HELPWININFOW*, LPHELPWININFOW = HELPWININFOW*;
struct STYLESTRUCT {
DWORD styleOld;
DWORD styleNew;
}
alias LPSTYLESTRUCT = STYLESTRUCT*;
struct ALTTABINFO {
DWORD cbSize = this.sizeof;
int cItems;
int cColumns;
int cRows;
int iColFocus;
int iRowFocus;
int cxItem;
int cyItem;
POINT ptStart;
}
alias PALTTABINFO = ALTTABINFO*, LPALTTABINFO = ALTTABINFO*;
struct COMBOBOXINFO {
DWORD cbSize = this.sizeof;
RECT rcItem;
RECT rcButton;
DWORD stateButton;
HWND hwndCombo;
HWND hwndItem;
HWND hwndList;
}
alias PCOMBOBOXINFO = COMBOBOXINFO*, LPCOMBOBOXINFO = COMBOBOXINFO*;
struct CURSORINFO {
DWORD cbSize = this.sizeof;
DWORD flags;
HCURSOR hCursor;
POINT ptScreenPos;
}
alias PCURSORINFO = CURSORINFO*, LPCURSORINFO = CURSORINFO*;
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 PMENUBARINFO = MENUBARINFO*;
struct MENUINFO {
DWORD cbSize = this.sizeof;
DWORD fMask;
DWORD dwStyle;
UINT cyMax;
HBRUSH hbrBack;
DWORD dwContextHelpID;
ULONG_PTR dwMenuData;
}
alias LPMENUINFO = MENUINFO*;
alias LPCMENUINFO = const(MENUINFO)*;
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 PSCROLLBARINFO = SCROLLBARINFO*, LPSCROLLBARINFO = SCROLLBARINFO*;
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 PWINDOWINFO = WINDOWINFO*, LPWINDOWINFO = WINDOWINFO*;
struct LASTINPUTINFO {
UINT cbSize = this.sizeof;
DWORD dwTime;
}
alias PLASTINPUTINFO = LASTINPUTINFO*;
struct MONITORINFO {
DWORD cbSize = this.sizeof;
RECT rcMonitor;
RECT rcWork;
DWORD dwFlags;
}
alias LPMONITORINFO = MONITORINFO*;
enum CCHDEVICENAME = 32;
struct MONITORINFOEXA {
DWORD cbSize = MONITORINFOEXA.sizeof;
RECT rcMonitor;
RECT rcWork;
DWORD dwFlags;
CHAR[CCHDEVICENAME] szDevice = 0;
}
alias LPMONITORINFOEXA = MONITORINFOEXA*;
struct MONITORINFOEXW {
DWORD cbSize = MONITORINFOEXW.sizeof;
RECT rcMonitor;
RECT rcWork;
DWORD dwFlags;
WCHAR[CCHDEVICENAME] szDevice = 0;
}
alias LPMONITORINFOEXW = MONITORINFOEXW*;
struct KBDLLHOOKSTRUCT {
DWORD vkCode;
DWORD scanCode;
DWORD flags;
DWORD time;
ULONG_PTR dwExtraInfo;
}
alias LPKBDLLHOOKSTRUCT = KBDLLHOOKSTRUCT*, PKBDLLHOOKSTRUCT = KBDLLHOOKSTRUCT*;
struct MSLLHOOKSTRUCT {
POINT pt;
DWORD mouseData;
DWORD flags;
DWORD time;
ULONG_PTR dwExtraInfo;
}
alias PMSLLHOOKSTRUCT = MSLLHOOKSTRUCT*;
struct MOUSEINPUT {
LONG dx;
LONG dy;
DWORD mouseData;
DWORD dwFlags;
DWORD time;
ULONG_PTR dwExtraInfo;
}
alias PMOUSEINPUT = MOUSEINPUT*;
struct KEYBDINPUT {
WORD wVk;
WORD wScan;
DWORD dwFlags;
DWORD time;
ULONG_PTR dwExtraInfo;
}
alias PKEYBDINPUT = KEYBDINPUT*;
struct HARDWAREINPUT {
DWORD uMsg;
WORD wParamL;
WORD wParamH;
}
alias PHARDWAREINPUT = HARDWAREINPUT*;
struct INPUT {
DWORD type;
union {
MOUSEINPUT mi;
KEYBDINPUT ki;
HARDWAREINPUT hi;
}
}
alias PINPUT = INPUT*, LPINPUT = INPUT*;
static if (_WIN32_WINNT >= 0x501) {
align(4) struct BSMINFO {
UINT cbSize = this.sizeof;
HDESK hdesk;
HWND hwnd;
align(4) LUID luid;
}
alias PBSMINFO = BSMINFO*;
alias HRAWINPUT = HANDLE;
struct RAWINPUTHEADER {
DWORD dwType;
DWORD dwSize;
HANDLE hDevice;
WPARAM wParam;
}
alias PRAWINPUTHEADER = RAWINPUTHEADER*;
struct RAWMOUSE {
USHORT usFlags;
union {
ULONG ulButtons;
struct {
USHORT usButtonFlags;
USHORT usButtonData;
}
}
ULONG ulRawButtons;
LONG lLastX;
LONG lLastY;
ULONG ulExtraInformation;
}
alias PRAWMOUSE = RAWMOUSE*, LPRAWMOUSE = RAWMOUSE*;
struct RAWKEYBOARD {
USHORT MakeCode;
USHORT Flags;
USHORT Reserved;
USHORT VKey;
UINT Message;
ULONG ExtraInformation;
}
alias PRAWKEYBOARD = RAWKEYBOARD*, LPRAWKEYBOARD = RAWKEYBOARD*;
struct RAWHID {
DWORD dwSizeHid;
DWORD dwCount;
BYTE bRawData;
}
alias PRAWHID = RAWHID*, LPRAWHID = RAWHID*;
struct RAWINPUT {
RAWINPUTHEADER header;
union _data {
RAWMOUSE mouse;
RAWKEYBOARD keyboard;
RAWHID hid;
}
_data data;
}
alias PRAWINPUT = RAWINPUT*, LPRAWINPUT = RAWINPUT*;
struct RAWINPUTDEVICE {
USHORT usUsagePage;
USHORT usUsage;
DWORD dwFlags;
HWND hwndTarget;
}
alias PRAWINPUTDEVICE = RAWINPUTDEVICE*, LPRAWINPUTDEVICE = RAWINPUTDEVICE*;
alias PCRAWINPUTDEVICE = const(RAWINPUTDEVICE)*;
struct RAWINPUTDEVICELIST {
HANDLE hDevice;
DWORD dwType;
}
alias PRAWINPUTDEVICELIST = RAWINPUTDEVICELIST*;
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 AnsiToOem = CharToOemA;
alias OemToAnsi = OemToCharA;
alias AnsiToOemBuff = CharToOemBuffA;
alias OemToAnsiBuff = OemToCharBuffA;
alias AnsiUpper = CharUpperA;
alias AnsiUpperBuff = CharUpperBuffA;
alias AnsiLower = CharLowerA;
alias AnsiLowerBuff = CharLowerBuffA;
alias AnsiNext = CharNextA;
alias AnsiPrev = CharPrevA;
alias MAKEWPARAM = MAKELONG;
alias MAKELPARAM = MAKELONG;
alias MAKELRESULT = MAKELONG;
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 GetNextWindow = GetWindow;
extern (Windows) nothrow @nogc:
LRESULT DispatchMessageA(const(MSG)*);
LRESULT 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);
LPARAM 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);
LRESULT SendDlgItemMessageA(HWND, int, UINT, WPARAM, LPARAM);
LRESULT 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 va_list_ = char*;
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 PTITLEBARINFO = TITLEBARINFO*, LPTITLEBARINFO = TITLEBARINFO*;
static if (_WIN32_WINNT >= 0x501) { // *** correct?
struct FLASHWINFO {
UINT cbSize = this.sizeof;
HWND hwnd;
DWORD dwFlags;
UINT uCount;
DWORD dwTimeout;
}
alias PFLASHWINFO = FLASHWINFO*;
}
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 PMOUSEMOVEPOINT = MOUSEMOVEPOINT*, LPMOUSEMOVEPOINT = MOUSEMOVEPOINT*;
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 PGUITHREADINFO = GUITHREADINFO*, LPGUITHREADINFO = GUITHREADINFO*;
extern (Windows) {
alias WINEVENTPROC = void function(HWINEVENTHOOK, DWORD, HWND, LONG, LONG, DWORD, DWORD);
}
// *** 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 GetClassLongPtrA = GetClassLongA;
alias GetClassLongPtrW = GetClassLongW;
alias SetClassLongPtrA = SetClassLongA;
alias SetClassLongPtrW = SetClassLongW;
alias GetWindowLongPtrA = GetWindowLongA;
alias GetWindowLongPtrW = GetWindowLongW;
alias SetWindowLongPtrA = SetWindowLongA;
alias SetWindowLongPtrW = SetWindowLongW;
}
// -----
// Aliases for Unicode or Ansi
version (Unicode) {
alias EDITWORDBREAKPROC = EDITWORDBREAKPROCW;
alias PROPENUMPROC = PROPENUMPROCW;
alias PROPENUMPROCEX = PROPENUMPROCEXW;
alias DESKTOPENUMPROC = DESKTOPENUMPROCW;
alias WINSTAENUMPROC = WINSTAENUMPROCW;
alias MAKEINTRESOURCE = MAKEINTRESOURCEW;
alias WNDCLASS = WNDCLASSW;
alias WNDCLASSEX = WNDCLASSEXW;
alias MENUITEMINFO = MENUITEMINFOW;
alias LPCMENUITEMINFO = LPCMENUITEMINFOW;
alias MSGBOXPARAMS = MSGBOXPARAMSW;
alias HIGHCONTRAST = HIGHCONTRASTW;
alias SERIALKEYS = SERIALKEYSW;
alias SOUNDSENTRY = SOUNDSENTRYW;
alias CREATESTRUCT = CREATESTRUCTW;
alias CBT_CREATEWND = CBT_CREATEWNDW;
alias MDICREATESTRUCT = MDICREATESTRUCTW;
alias MULTIKEYHELP = MULTIKEYHELPW;
alias MONITORINFOEX = MONITORINFOEXW;
alias ICONMETRICS = ICONMETRICSW;
alias NONCLIENTMETRICS = NONCLIENTMETRICSW;
alias AppendMenu = AppendMenuW;
alias BroadcastSystemMessage = BroadcastSystemMessageW;
static if (_WIN32_WINNT >= 0x501) {
alias BroadcastSystemMessageEx = BroadcastSystemMessageExW;
}
alias CallMsgFilter = CallMsgFilterW;
alias CallWindowProc = CallWindowProcW;
alias ChangeMenu = ChangeMenuW;
alias CharLower = CharLowerW;
alias CharLowerBuff = CharLowerBuffW;
alias CharNext = CharNextW;
alias CharNextEx = CharNextExW;
alias CharPrev = CharPrevW;
alias CharPrevEx = CharPrevExW;
alias CharToOem = CharToOemW;
alias CharToOemBuff = CharToOemBuffW;
alias CharUpper = CharUpperW;
alias CharUpperBuff = CharUpperBuffW;
alias CopyAcceleratorTable = CopyAcceleratorTableW;
alias CreateAcceleratorTable = CreateAcceleratorTableW;
alias CreateDialog = CreateDialogW;
alias CreateDialogIndirect = CreateDialogIndirectW;
alias CreateDialogIndirectParam = CreateDialogIndirectParamW;
alias CreateDialogParam = CreateDialogParamW;
alias CreateMDIWindow = CreateMDIWindowW;
alias CreateWindow = CreateWindowW;
alias CreateWindowEx = CreateWindowExW;
alias CreateWindowStation = CreateWindowStationW;
alias DefDlgProc = DefDlgProcW;
alias DefFrameProc = DefFrameProcW;
alias DefMDIChildProc = DefMDIChildProcW;
alias DefWindowProc = DefWindowProcW;
alias DialogBox = DialogBoxW;
alias DialogBoxIndirect = DialogBoxIndirectW;
alias DialogBoxIndirectParam = DialogBoxIndirectParamW;
alias DialogBoxParam = DialogBoxParamW;
alias DispatchMessage = DispatchMessageW;
alias DlgDirList = DlgDirListW;
alias DlgDirListComboBox = DlgDirListComboBoxW;
alias DlgDirSelectComboBoxEx = DlgDirSelectComboBoxExW;
alias DlgDirSelectEx = DlgDirSelectExW;
alias DrawState = DrawStateW;
alias DrawText = DrawTextW;
alias DrawTextEx = DrawTextExW;
alias EnumDesktops = EnumDesktopsW;
alias EnumProps = EnumPropsW;
alias EnumPropsEx = EnumPropsExW;
alias EnumWindowStations = EnumWindowStationsW;
alias FindWindow = FindWindowW;
alias FindWindowEx = FindWindowExW;
alias GetClassInfo = GetClassInfoW;
alias GetClassInfoEx = GetClassInfoExW;
alias GetClassLong = GetClassLongW;
alias GetClassLongPtr = GetClassLongPtrW;
alias GetClassName = GetClassNameW;
alias GetClipboardFormatName = GetClipboardFormatNameW;
alias GetDlgItemText = GetDlgItemTextW;
alias GetKeyboardLayoutName = GetKeyboardLayoutNameW;
alias GetKeyNameText = GetKeyNameTextW;
alias GetMenuItemInfo = GetMenuItemInfoW;
alias GetMenuString = GetMenuStringW;
alias GetMessage = GetMessageW;
alias GetMonitorInfo = GetMonitorInfoW;
alias GetProp = GetPropW;
static if (_WIN32_WINNT >= 0x501) {
alias GetRawInputDeviceInfo = GetRawInputDeviceInfoW;
}
alias GetTabbedTextExtent = GetTabbedTextExtentW;
alias GetUserObjectInformation = GetUserObjectInformationW;
alias GetWindowLong = GetWindowLongW;
alias GetWindowLongPtr = GetWindowLongPtrW;
alias GetWindowText = GetWindowTextW;
alias GetWindowTextLength = GetWindowTextLengthW;
alias GetAltTabInfo = GetAltTabInfoW;
alias GetWindowModuleFileName = GetWindowModuleFileNameW;
alias GrayString = GrayStringW;
alias InsertMenu = InsertMenuW;
alias InsertMenuItem = InsertMenuItemW;
alias IsCharAlpha = IsCharAlphaW;
alias IsCharAlphaNumeric = IsCharAlphaNumericW;
alias IsCharLower = IsCharLowerW;
alias IsCharUpper = IsCharUpperW;
alias IsDialogMessage = IsDialogMessageW;
alias LoadAccelerators = LoadAcceleratorsW;
alias LoadBitmap = LoadBitmapW;
alias LoadCursor = LoadCursorW;
alias LoadCursorFromFile = LoadCursorFromFileW;
alias LoadIcon = LoadIconW;
alias LoadImage = LoadImageW;
alias LoadKeyboardLayout = LoadKeyboardLayoutW;
alias LoadMenu = LoadMenuW;
alias LoadMenuIndirect = LoadMenuIndirectW;
alias LoadString = LoadStringW;
alias MapVirtualKey = MapVirtualKeyW;
alias MapVirtualKeyEx = MapVirtualKeyExW;
alias MessageBox = MessageBoxW;
alias MessageBoxEx = MessageBoxExW;
alias MessageBoxIndirect = MessageBoxIndirectW;
alias ModifyMenu = ModifyMenuW;
alias OemToChar = OemToCharW;
alias OemToCharBuff = OemToCharBuffW;
alias OpenDesktop = OpenDesktopW;
alias OpenWindowStation = OpenWindowStationW;
alias PeekMessage = PeekMessageW;
alias PostMessage = PostMessageW;
alias PostThreadMessage = PostThreadMessageW;
alias RealGetWindowClass = RealGetWindowClassW;
alias RegisterClass = RegisterClassW;
alias RegisterClassEx = RegisterClassExW;
alias RegisterClipboardFormat = RegisterClipboardFormatW;
alias RegisterDeviceNotification = RegisterDeviceNotificationW;
alias RegisterWindowMessage = RegisterWindowMessageW;
alias RemoveProp = RemovePropW;
alias SendDlgItemMessage = SendDlgItemMessageW;
alias SendMessage = SendMessageW;
alias SendMessageCallback = SendMessageCallbackW;
alias SendMessageTimeout = SendMessageTimeoutW;
alias SendNotifyMessage = SendNotifyMessageW;
alias SetClassLong = SetClassLongW;
alias SetClassLongPtr = SetClassLongPtrW;
alias SetDlgItemText = SetDlgItemTextW;
alias SetMenuItemInfo = SetMenuItemInfoW;
alias SetProp = SetPropW;
alias SetUserObjectInformation = SetUserObjectInformationW;
alias SetWindowLong = SetWindowLongW;
alias SetWindowLongPtr = SetWindowLongPtrW;
alias SetWindowsHook = SetWindowsHookW;
alias SetWindowsHookEx = SetWindowsHookExW;
alias SetWindowText = SetWindowTextW;
alias SystemParametersInfo = SystemParametersInfoW;
alias TabbedTextOut = TabbedTextOutW;
alias TranslateAccelerator = TranslateAcceleratorW;
alias UnregisterClass = UnregisterClassW;
alias VkKeyScan = VkKeyScanW;
alias VkKeyScanEx = VkKeyScanExW;
alias WinHelp = WinHelpW;
alias wsprintf = wsprintfW;
alias wvsprintf = wvsprintfW;
alias ChangeDisplaySettings = ChangeDisplaySettingsW;
alias ChangeDisplaySettingsEx = ChangeDisplaySettingsExW;
alias CreateDesktop = CreateDesktopW;
alias EnumDisplaySettings = EnumDisplaySettingsW;
alias EnumDisplaySettingsEx = EnumDisplaySettingsExW;
alias EnumDisplayDevices = EnumDisplayDevicesW;
} else { // ANSI
alias EDITWORDBREAKPROC = EDITWORDBREAKPROCA;
alias PROPENUMPROC = PROPENUMPROCA;
alias PROPENUMPROCEX = PROPENUMPROCEXA;
alias DESKTOPENUMPROC = DESKTOPENUMPROCA;
alias WINSTAENUMPROC = WINSTAENUMPROCA;
alias MAKEINTRESOURCE = MAKEINTRESOURCEA;
alias WNDCLASS = WNDCLASSA;
alias WNDCLASSEX = WNDCLASSEXA;
alias MENUITEMINFO = MENUITEMINFOA;
alias LPCMENUITEMINFO = LPCMENUITEMINFOA;
alias MSGBOXPARAMS = MSGBOXPARAMSA;
alias HIGHCONTRAST = HIGHCONTRASTA;
alias SERIALKEYS = SERIALKEYSA;
alias SOUNDSENTRY = SOUNDSENTRYA;
alias CREATESTRUCT = CREATESTRUCTA;
alias CBT_CREATEWND = CBT_CREATEWNDA;
alias MDICREATESTRUCT = MDICREATESTRUCTA;
alias MULTIKEYHELP = MULTIKEYHELPA;
alias MONITORINFOEX = MONITORINFOEXA;
alias ICONMETRICS = ICONMETRICSA;
alias NONCLIENTMETRICS = NONCLIENTMETRICSA;
alias AppendMenu = AppendMenuA;
alias BroadcastSystemMessage = BroadcastSystemMessageA;
static if (_WIN32_WINNT >= 0x501) {
alias BroadcastSystemMessageEx = BroadcastSystemMessageExA;
}
alias CallMsgFilter = CallMsgFilterA;
alias CallWindowProc = CallWindowProcA;
alias ChangeMenu = ChangeMenuA;
alias CharLower = CharLowerA;
alias CharLowerBuff = CharLowerBuffA;
alias CharNext = CharNextA;
alias CharNextEx = CharNextExA;
alias CharPrev = CharPrevA;
alias CharPrevEx = CharPrevExA;
alias CharToOem = CharToOemA;
alias CharToOemBuff = CharToOemBuffA;
alias CharUpper = CharUpperA;
alias CharUpperBuff = CharUpperBuffA;
alias CopyAcceleratorTable = CopyAcceleratorTableA;
alias CreateAcceleratorTable = CreateAcceleratorTableA;
alias CreateDialog = CreateDialogA;
alias CreateDialogIndirect = CreateDialogIndirectA;
alias CreateDialogIndirectParam = CreateDialogIndirectParamA;
alias CreateDialogParam = CreateDialogParamA;
alias CreateMDIWindow = CreateMDIWindowA;
alias CreateWindow = CreateWindowA;
alias CreateWindowEx = CreateWindowExA;
alias CreateWindowStation = CreateWindowStationA;
alias DefDlgProc = DefDlgProcA;
alias DefFrameProc = DefFrameProcA;
alias DefMDIChildProc = DefMDIChildProcA;
alias DefWindowProc = DefWindowProcA;
alias DialogBox = DialogBoxA;
alias DialogBoxIndirect = DialogBoxIndirectA;
alias DialogBoxIndirectParam = DialogBoxIndirectParamA;
alias DialogBoxParam = DialogBoxParamA;
alias DispatchMessage = DispatchMessageA;
alias DlgDirList = DlgDirListA;
alias DlgDirListComboBox = DlgDirListComboBoxA;
alias DlgDirSelectComboBoxEx = DlgDirSelectComboBoxExA;
alias DlgDirSelectEx = DlgDirSelectExA;
alias DrawState = DrawStateA;
alias DrawText = DrawTextA;
alias DrawTextEx = DrawTextExA;
alias EnumDesktops = EnumDesktopsA;
alias EnumProps = EnumPropsA;
alias EnumPropsEx = EnumPropsExA;
alias EnumWindowStations = EnumWindowStationsA;
alias FindWindow = FindWindowA;
alias FindWindowEx = FindWindowExA;
alias GetClassInfo = GetClassInfoA;
alias GetClassInfoEx = GetClassInfoExA;
alias GetClassLong = GetClassLongA;
alias GetClassLongPtr = GetClassLongPtrA;
alias GetClassName = GetClassNameA;
alias GetClipboardFormatName = GetClipboardFormatNameA;
alias GetDlgItemText = GetDlgItemTextA;
alias GetKeyboardLayoutName = GetKeyboardLayoutNameA;
alias GetKeyNameText = GetKeyNameTextA;
alias GetMenuItemInfo = GetMenuItemInfoA;
alias GetMenuString = GetMenuStringA;
alias GetMessage = GetMessageA;
alias GetMonitorInfo = GetMonitorInfoA;
alias GetProp = GetPropA;
static if (_WIN32_WINNT >= 0x501) {
alias GetRawInputDeviceInfo = GetRawInputDeviceInfoA;
}
alias GetTabbedTextExtent = GetTabbedTextExtentA;
alias GetUserObjectInformation = GetUserObjectInformationA;
alias GetWindowLong = GetWindowLongA;
alias GetWindowLongPtr = GetWindowLongPtrA;
alias GetWindowText = GetWindowTextA;
alias GetWindowTextLength = GetWindowTextLengthA;
alias GetAltTabInfo = GetAltTabInfoA;
alias GetWindowModuleFileName = GetWindowModuleFileNameA;
alias GrayString = GrayStringA;
alias InsertMenu = InsertMenuA;
alias InsertMenuItem = InsertMenuItemA;
alias IsCharAlpha = IsCharAlphaA;
alias IsCharAlphaNumeric = IsCharAlphaNumericA;
alias IsCharLower = IsCharLowerA;
alias IsCharUpper = IsCharUpperA;
alias IsDialogMessage = IsDialogMessageA;
alias LoadAccelerators = LoadAcceleratorsA;
alias LoadBitmap = LoadBitmapA;
alias LoadCursor = LoadCursorA;
alias LoadIcon = LoadIconA;
alias LoadCursorFromFile = LoadCursorFromFileA;
alias LoadImage = LoadImageA;
alias LoadKeyboardLayout = LoadKeyboardLayoutA;
alias LoadMenu = LoadMenuA;
alias LoadMenuIndirect = LoadMenuIndirectA;
alias LoadString = LoadStringA;
alias MapVirtualKey = MapVirtualKeyA;
alias MapVirtualKeyEx = MapVirtualKeyExA;
alias MessageBox = MessageBoxA;
alias MessageBoxEx = MessageBoxExA;
alias MessageBoxIndirect = MessageBoxIndirectA;
alias ModifyMenu = ModifyMenuA;
alias OemToChar = OemToCharA;
alias OemToCharBuff = OemToCharBuffA;
alias OpenDesktop = OpenDesktopA;
alias OpenWindowStation = OpenWindowStationA;
alias PeekMessage = PeekMessageA;
alias PostMessage = PostMessageA;
alias PostThreadMessage = PostThreadMessageA;
alias RealGetWindowClass = RealGetWindowClassA;
alias RegisterClass = RegisterClassA;
alias RegisterClassEx = RegisterClassExA;
alias RegisterClipboardFormat = RegisterClipboardFormatA;
alias RegisterDeviceNotification = RegisterDeviceNotificationA;
alias RegisterWindowMessage = RegisterWindowMessageA;
alias RemoveProp = RemovePropA;
alias SendDlgItemMessage = SendDlgItemMessageA;
alias SendMessage = SendMessageA;
alias SendMessageCallback = SendMessageCallbackA;
alias SendMessageTimeout = SendMessageTimeoutA;
alias SendNotifyMessage = SendNotifyMessageA;
alias SetClassLong = SetClassLongA;
alias SetClassLongPtr = SetClassLongPtrA;
alias SetDlgItemText = SetDlgItemTextA;
alias SetMenuItemInfo = SetMenuItemInfoA;
alias SetProp = SetPropA;
alias SetUserObjectInformation = SetUserObjectInformationA;
alias SetWindowLong = SetWindowLongA;
alias SetWindowLongPtr = SetWindowLongPtrA;
alias SetWindowsHook = SetWindowsHookA;
alias SetWindowsHookEx = SetWindowsHookExA;
alias SetWindowText = SetWindowTextA;
alias SystemParametersInfo = SystemParametersInfoA;
alias TabbedTextOut = TabbedTextOutA;
alias TranslateAccelerator = TranslateAcceleratorA;
alias UnregisterClass = UnregisterClassA;
alias VkKeyScan = VkKeyScanA;
alias VkKeyScanEx = VkKeyScanExA;
alias WinHelp = WinHelpA;
alias wsprintf = wsprintfA;
alias wvsprintf = wvsprintfA;
alias ChangeDisplaySettings = ChangeDisplaySettingsA;
alias ChangeDisplaySettingsEx = ChangeDisplaySettingsExA;
alias CreateDesktop = CreateDesktopA;
alias EnumDisplaySettings = EnumDisplaySettingsA;
alias EnumDisplaySettingsEx = EnumDisplaySettingsExA;
alias EnumDisplayDevices = EnumDisplayDevicesA;
}
alias LPWNDCLASS = WNDCLASS*, PWNDCLASS = WNDCLASS*;
alias LPWNDCLASSEX = WNDCLASSEX*, PWNDCLASSEX = WNDCLASSEX*;
alias LPMENUITEMINFO = MENUITEMINFO*;
alias PMSGBOXPARAMS = MSGBOXPARAMS*, LPMSGBOXPARAMS = MSGBOXPARAMS*;
alias LPHIGHCONTRAST = HIGHCONTRAST*;
alias LPSERIALKEYS = SERIALKEYS*;
alias LPSOUNDSENTRY = SOUNDSENTRY*;
alias LPCREATESTRUCT = CREATESTRUCT*;
alias LPCBT_CREATEWND = CBT_CREATEWND*;
alias LPMDICREATESTRUCT = MDICREATESTRUCT*;
alias PMULTIKEYHELP = MULTIKEYHELP*, LPMULTIKEYHELP = MULTIKEYHELP*;
alias LPMONITORINFOEX = MONITORINFOEX*;
alias LPICONMETRICS = ICONMETRICS*;
alias LPNONCLIENTMETRICS = NONCLIENTMETRICS*;
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;
}