diff org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/win32/WINTYPES.d @ 0:6dd524f61e62

add dwt win and basic java stuff
author Frank Benoit <benoit@tionex.de>
date Mon, 02 Mar 2009 14:44:16 +0100
parents
children 2847134a5fc0
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/win32/WINTYPES.d	Mon Mar 02 14:44:16 2009 +0100
@@ -0,0 +1,15928 @@
+/*
+ * This module declared types required by SWT but not in std.c.windows.windows
+ */
+
+module org.eclipse.swt.internal.win32.WINTYPES;
+
+
+/*
+    adopted form tango
+    Author:     Trevor Parscal
+*/
+version(TANGOSVN){
+    public import tango.sys.win32.Types;
+}
+else{ // !TANGOSVN
+/+ Aliases, Types, and Constants +/
+const void* NULL = null;
+alias int SCODE;
+alias void VOID;
+alias void* POINTER;
+alias ushort ATOM;
+alias int WINBOOL;
+alias WINBOOL BOOL;
+alias uint CALTYPE;
+alias uint CALID;
+alias char CCHAR;
+alias char* PCHAR;
+alias uint COLORREF;
+alias uint TCOLORREF;
+alias char CHAR;
+alias ubyte BYTE;
+alias short INT16;
+alias ushort UINT16;
+alias short SHORT;
+alias int INT;
+alias int WINT;
+alias int LONG;
+alias ushort WORD;
+alias uint DWORD;
+alias int INT_PTR;
+alias uint UINT_PTR;
+alias int LONG_PTR;
+alias uint ULONG_PTR;
+alias DWORD DWORD_PTR;
+alias uint PROPID;
+const BOOL FALSE = 0;
+const BOOL TRUE = -1;
+alias char* PANSICHAR;
+alias wchar* PWIDECHAR;
+alias int* PINTEGER;
+alias long LONGLONG;
+alias LONGLONG* PLONGLONG;
+alias ulong DWORDLONG;
+alias DWORDLONG* PDWORDLONG;
+alias float FLOAT;
+alias void* HANDLE;
+alias HANDLE HACCEL;
+alias HANDLE HBITMAP;
+alias HANDLE HBRUSH;
+alias HANDLE HCOLORSPACE;
+alias HANDLE HCONV;
+alias HANDLE HCONVLIST;
+alias HANDLE HCURSOR;
+alias HANDLE HDBC;
+alias HANDLE HDC;
+alias HANDLE HDDEDATA;
+alias HANDLE HDESK;
+alias HANDLE HDROP;
+alias HANDLE HDWP;
+alias HANDLE HENHMETAFILE;
+alias HANDLE HENV;
+alias HANDLE HFILE;
+alias HANDLE HFONT;
+alias HANDLE HGDIOBJ;
+alias HANDLE HGLOBAL;
+alias HANDLE HGLRC;
+alias HANDLE HHOOK;
+alias HANDLE HICON;
+alias HANDLE HIMAGELIST;
+alias HANDLE HINST;
+alias HINST HINSTANCE;
+alias HANDLE HKEY;
+alias HANDLE HKL;
+alias HANDLE HLOCAL;
+alias HANDLE HMENU;
+alias HANDLE HMETAFILE;
+alias HANDLE HMODULE;
+alias HANDLE HPALETTE;
+alias HANDLE HPEN;
+alias HANDLE HRASCONN;
+alias int HRESULT;
+alias HANDLE HRGN;
+alias HANDLE HRSRC;
+alias HANDLE HSTMT;
+alias HANDLE HSZ;
+alias HANDLE HWINSTA;
+alias HANDLE HWND;
+alias ushort LANGID;
+alias DWORD LCID;
+alias DWORD LCTYPE;
+alias int LPARAM;
+alias ushort* LP;
+alias WINBOOL* LPBOOL;
+alias ubyte* LPBYTE;
+alias PCHAR LPCCH;
+alias PCHAR LPCH;
+alias COLORREF* LPCOLORREF;
+alias PCHAR LPCSTR;
+alias TCHAR* LPCTSTR;
+alias wchar* LPCWCH;
+alias wchar* LPCWSTR;
+alias DWORD* LPDWORD;
+alias HANDLE* LPHANDLE;
+alias int* LPINT;
+alias int* LPLONG;
+alias PCHAR LPSTR;
+alias PCHAR LPTCH;
+alias TCHAR* LPTSTR;
+alias int LRESULT;
+alias POINTER LPVOID;
+alias POINTER LPCVOID;
+alias wchar* LPWCH;
+alias wchar* LPWORD;
+alias wchar* LPWSTR;
+alias wchar* NWPSTR;
+alias WINBOOL* PWINBOOL;
+alias ubyte BOOLEAN;
+alias ubyte* PBOOLEAN;
+alias ubyte* PBYTE;
+alias PCHAR PCCH;
+alias PCHAR PCH;
+alias PCHAR PCSTR;
+alias wchar* PCWCH;
+alias wchar* PCWSTR;
+alias DWORD* PDWORD;
+alias float* PFLOAT;
+alias HANDLE* PHANDLE;
+alias HKEY* PHKEY;
+alias int* PINT;
+alias int* PLONG;
+alias int* PSHORT;
+alias PCHAR PSTR;
+alias PCHAR PSZ;
+alias ubyte* PTBYTE;
+alias PCHAR PTCH;
+alias PCHAR PTCHAR;
+alias PCHAR PTSTR;
+alias ubyte* PUCHAR;
+alias wchar* PWCH;
+alias wchar* PWCHAR;
+alias ushort* PWORD;
+alias uint* PUINT;
+alias uint* PULONG;
+alias ushort* PUSHORT;
+alias POINTER PVOID;
+// NOTE: This is defined in sqltypes.  Probably shouldn't be here.  Commenting for now.
+//alias int RETCODE;
+alias HANDLE SC_HANDLE;
+alias LPVOID SC_LOCK;
+alias SC_HANDLE* LPSC_HANDLE;
+alias DWORD SERVICE_STATUS_HANDLE;
+alias ubyte TBYTE;
+
+version(Win32SansUnicode){
+    // Strictly speaking this should be ubyte since char is UTF-8, but that
+    // fills code with so many casts that it's just not sensible.
+    // (See also DMD Issue 2193.)
+    alias  char TCHAR;
+}else{
+    alias wchar TCHAR;
+}
+
+alias ubyte BCHAR;
+alias ubyte UCHAR;
+alias wchar WCHAR;
+alias uint UINT;
+alias uint ULONG;
+alias ushort USHORT;
+alias uint WPARAM;
+alias int ACL_INFORMATION_CLASS;
+
+alias GUID IID;
+alias IID* REFIID;
+
+// Cast a string literal to a ubyte*=PCHAR
+template _PCHAR( char[] a ){
+    const PCHAR _PCHAR = cast(PCHAR)a.ptr;
+}
+
+enum { AclRevisionInformation = 1, AclSizeInformation,  };
+alias ACL_INFORMATION_CLASS _ACL_INFORMATION_CLASS;
+alias int MEDIA_TYPE;
+enum { Unknown, F5_1Pt2_512, F3_1Pt44_512, F3_2Pt88_512, F3_20Pt8_512, F3_720_512, F5_360_512, F5_320_512, F5_320_1024, F5_180_512, F5_160_512, RemovableMedia, FixedMedia,  };
+alias MEDIA_TYPE _MEDIA_TYPE;
+const int RASCS_DONE = (0x2000);
+const int RASCS_PAUSED = (0x1000);
+alias int RASCONNSTATE;
+enum { RASCS_OpenPort = 0, RASCS_PortOpened, RASCS_ConnectDevice, RASCS_DeviceConnected, RASCS_AllDevicesConnected, RASCS_Authenticate, RASCS_AuthNotify, RASCS_AuthRetry, RASCS_AuthCallback, RASCS_AuthChangePassword, RASCS_AuthProject, RASCS_AuthLinkSpeed, RASCS_AuthAck, RASCS_ReAuthenticate, RASCS_Authenticated, RASCS_PrepareForCallback, RASCS_WaitForModemReset, RASCS_WaitForCallback, RASCS_Projected, RASCS_StartAuthentication, RASCS_CallbackComplete, RASCS_LogonNetwork, RASCS_Interactive = RASCS_PAUSED, RASCS_RetryAuthentication, RASCS_CallbackSetByCaller, RASCS_PasswordExpired, RASCS_Connected = RASCS_DONE, RASCS_Disconnected,  };
+alias RASCONNSTATE _RASCONNSTATE;
+alias int RASPROJECTION;
+enum { RASP_Amb = 0x10000, RASP_PppNbf = 0x803F, RASP_PppIpx = 0x802B, RASP_PppIp = 0x8021,  };
+alias RASPROJECTION _RASPROJECTION;
+alias int SECURITY_IMPERSONATION_LEVEL;
+enum { SecurityAnonymous, SecurityIdentification, SecurityImpersonation, SecurityDelegation,  };
+alias SECURITY_IMPERSONATION_LEVEL _SECURITY_IMPERSONATION_LEVEL;
+alias int SID_NAME_USE;
+enum { SidTypeUser = 1, SidTypeGroup, SidTypeDomain, SidTypeAlias, SidTypeWellKnownGroup, SidTypeDeletedAccount, SidTypeInvalid, SidTypeUnknown,  };
+alias SID_NAME_USE* PSID_NAME_USE;
+alias SID_NAME_USE _SID_NAME_USE;
+alias int TOKEN_INFORMATION_CLASS;
+enum { TokenUser = 1, TokenGroups, TokenPrivileges, TokenOwner, TokenPrimaryGroup, TokenDefaultDacl, TokenSource, TokenType, TokenImpersonationLevel, TokenStatistics,  };
+alias TOKEN_INFORMATION_CLASS _TOKEN_INFORMATION_CLASS;
+alias int TOKEN_TYPE;
+enum { TokenPrimary = 1, TokenImpersonation,  };
+alias TOKEN_TYPE TAGTOKEN_TYPE;
+
+extern(Windows){
+alias int (*BFFCALLBACK)(HWND, UINT, LPARAM, LPARAM);
+alias UINT (*LPCCHOOKPROC)(HWND, UINT, WPARAM, LPARAM);
+alias UINT (*LPCFHOOKPROC)(HWND, UINT, WPARAM, LPARAM);
+alias POINTER PTHREAD_START_ROUTINE;
+alias PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE;
+alias DWORD (*EDITSTREAMCALLBACK)(DWORD, LPBYTE, LONG, LONG);
+alias UINT (*LPFRHOOKPROC)(HWND, UINT, WPARAM, LPARAM);
+alias UINT (*LPOFNHOOKPROC)(HWND, UINT, WPARAM, LPARAM);
+alias UINT (*LPPRINTHOOKPROC)(HWND, UINT, WPARAM, LPARAM);
+alias UINT (*LPSETUPHOOKPROC)(HWND, UINT, WPARAM, LPARAM);
+alias LRESULT (*DLGPROC)(HWND, UINT, WPARAM, LPARAM);
+alias int (*PFNPROPSHEETCALLBACK)(HWND, UINT, LPARAM);
+alias void (*LPSERVICE_MAIN_FUNCTION)(DWORD, LPTSTR);
+alias int (*PFNTVCOMPARE)(LPARAM, LPARAM, LPARAM);
+alias LRESULT (*WNDPROC)(HWND, UINT, WPARAM, LPARAM);
+alias POINTER FARPROC;
+alias FARPROC PROC;
+alias WINBOOL (*ENUMRESTYPEPROC)(HANDLE, LPTSTR, LONG);
+alias WINBOOL (*ENUMRESNAMEPROC)(HANDLE, LPCTSTR, LPTSTR, LONG);
+alias WINBOOL (*ENUMRESLANGPROC)(HANDLE, LPCTSTR, LPCTSTR, ushort, LONG);
+alias FARPROC DESKTOPENUMPROC;
+alias WINBOOL (*ENUMWINDOWSPROC)(HWND, LPARAM);
+alias WINBOOL (*ENUMWINDOWSTATIONPROC)(LPTSTR, LPARAM);
+alias void (*SENDASYNCPROC)(HWND, UINT, DWORD);
+alias void (*TIMERPROC)(HWND, UINT, UINT, DWORD);
+alias BOOL(*MONITORENUMPROC)(HMONITOR, HDC, RECT*, LPARAM);
+alias FARPROC GRAYSTRINGPROC;
+alias WINBOOL (*DRAWSTATEPROC)(HDC, LPARAM, WPARAM, int, int);
+alias WINBOOL (*PROPENUMPROCEX)(HWND, LPCTSTR, HANDLE, DWORD);
+alias WINBOOL (*PROPENUMPROC)(HWND, LPCTSTR, HANDLE);
+alias LRESULT (*HOOKPROC)(int, WPARAM, LPARAM);
+alias void (*ENUMOBJECTSPROC)(LPVOID);
+alias void (*LINEDDAPROC)(int, int);
+alias WINBOOL (*TABORTPROC)(HDC, int);
+alias UINT (*LPPAGEPAINTHOOK)(HWND, UINT, WPARAM, LPARAM);
+alias UINT (*LPPAGESETUPHOOK)(HWND, UINT, WPARAM, LPARAM);
+alias int (*ICMENUMPROC)(LPTSTR, LPARAM);
+alias LONG (*EDITWORDBREAKPROCEX)(PCHAR, LONG, ubyte, INT);
+alias int (*PFNLVCOMPARE)(LPARAM, LPARAM, LPARAM);
+alias WINBOOL (*LOCALE_ENUMPROC)(LPTSTR);
+alias WINBOOL (*CODEPAGE_ENUMPROC)(LPTSTR);
+alias WINBOOL (*DATEFMT_ENUMPROC)(LPTSTR);
+alias WINBOOL (*TIMEFMT_ENUMPROC)(LPTSTR);
+alias WINBOOL (*CALINFO_ENUMPROC)(LPTSTR);
+alias WINBOOL (*PHANDLER_ROUTINE)(DWORD);
+alias WINBOOL (*LPHANDLER_FUNCTION)(DWORD);
+alias void (*PTIMERAPCROUTINE)(LPVOID, DWORD, DWORD);
+alias UINT (*PFNGETPROFILEPATH)(LPCTSTR, LPSTR, UINT);
+alias UINT (*PFNRECONCILEPROFILE)(LPCTSTR, LPCTSTR, DWORD);
+alias WINBOOL (*PFNPROCESSPOLICIES)(HWND, LPCTSTR, LPCTSTR, LPCTSTR, DWORD);
+}
+
+const {
+    LPCTSTR SE_CREATE_TOKEN_NAME = ("SeCreateTokenPrivilege");
+    LPCTSTR SE_ASSIGNPRIMARYTOKEN_NAME = ("SeAssignPrimaryTokenPrivilege");
+    LPCTSTR SE_LOCK_MEMORY_NAME = ("SeLockMemoryPrivilege");
+    LPCTSTR SE_INCREASE_QUOTA_NAME = ("SeIncreaseQuotaPrivilege");
+    LPCTSTR SE_UNSOLICITED_INPUT_NAME = ("SeUnsolicitedInputPrivilege");
+    LPCTSTR SE_MACHINE_ACCOUNT_NAME = ("SeMachineAccountPrivilege");
+    LPCTSTR SE_TCB_NAME = ("SeTcbPrivilege");
+    LPCTSTR SE_SECURITY_NAME = ("SeSecurityPrivilege");
+    LPCTSTR SE_TAKE_OWNERSHIP_NAME = ("SeTakeOwnershipPrivilege");
+    LPCTSTR SE_LOAD_DRIVER_NAME = ("SeLoadDriverPrivilege");
+    LPCTSTR SE_SYSTEM_PROFILE_NAME = ("SeSystemProfilePrivilege");
+    LPCTSTR SE_SYSTEMTIME_NAME = ("SeSystemtimePrivilege");
+    LPCTSTR SE_PROF_SINGLE_PROCESS_NAME = ("SeProfileSingleProcessPrivilege");
+    LPCTSTR SE_INC_BASE_PRIORITY_NAME = ("SeIncreaseBasePriorityPrivilege");
+    LPCTSTR SE_CREATE_PAGEFILE_NAME = ("SeCreatePagefilePrivilege");
+    LPCTSTR SE_CREATE_PERMANENT_NAME = ("SeCreatePermanentPrivilege");
+    LPCTSTR SE_BACKUP_NAME = ("SeBackupPrivilege");
+    LPCTSTR SE_RESTORE_NAME = ("SeRestorePrivilege");
+    LPCTSTR SE_SHUTDOWN_NAME = ("SeShutdownPrivilege");
+    LPCTSTR SE_DEBUG_NAME = ("SeDebugPrivilege");
+    LPCTSTR SE_AUDIT_NAME = ("SeAuditPrivilege");
+    LPCTSTR SE_SYSTEM_ENVIRONMENT_NAME = ("SeSystemEnvironmentPrivilege");
+    LPCTSTR SE_CHANGE_NOTIFY_NAME = ("SeChangeNotifyPrivilege");
+    LPCTSTR SE_REMOTE_SHUTDOWN_NAME = ("SeRemoteShutdownPrivilege");
+
+    LPCSTR  SERVICES_ACTIVE_DATABASEA = _PCHAR!("ServicesActive");
+    LPCWSTR SERVICES_ACTIVE_DATABASEW = ("ServicesActive");
+    LPCSTR  SERVICES_FAILED_DATABASEA = _PCHAR!("ServicesFailed");
+    LPCWSTR SERVICES_FAILED_DATABASEW = ("ServicesFailed");
+    LPCSTR  SC_GROUP_IDENTIFIERA = _PCHAR!("+");
+    LPCWSTR SC_GROUP_IDENTIFIERW = ("+");
+    version(Win32SansUnicode){
+        alias SERVICES_ACTIVE_DATABASEA SERVICES_ACTIVE_DATABASE;
+        alias SERVICES_FAILED_DATABASEA SERVICES_FAILED_DATABASE;
+        alias SC_GROUP_IDENTIFIERA SC_GROUP_IDENTIFIER;
+    }
+    else{
+        alias SERVICES_ACTIVE_DATABASEW SERVICES_ACTIVE_DATABASE;
+        alias SERVICES_FAILED_DATABASEW SERVICES_FAILED_DATABASE;
+        alias SC_GROUP_IDENTIFIERW SC_GROUP_IDENTIFIER;
+    }
+}
+
+extern(Windows){
+alias HDDEDATA (*PFNCALLBACK)(UINT, UINT, HCONV, HSZ, HSZ, HDDEDATA, DWORD, DWORD);
+}
+alias PFNCALLBACK CALLB;
+alias WINBOOL SECURITY___FILE___TRACKING_MODE;
+alias FARPROC WNDENUMPROC;
+alias FARPROC ENHMFENUMPROC;
+alias DWORD CCSTYLE;
+alias CCSTYLE* PCCSTYLE;
+alias CCSTYLE* LPCCSTYLE;
+alias DWORD CCSTYLEFLAGA;
+alias CCSTYLEFLAGA* PCCSTYLEFLAGA;
+alias CCSTYLEFLAGA* LPCCSTYLEFLAGA;
+
+const HANDLE INVALID_HANDLE_VALUE = cast(HANDLE) -1;
+
+
+enum : DWORD {
+    SM_CXVIRTUALSCREEN = (76),
+    SM_CYVIRTUALSCREEN = (77),
+    MONITORINFOF_PRIMARY = (1),
+    LZERROR_UNKNOWNALG = -((8)),
+    LZERROR_BADVALUE = -((7)),
+    LZERROR_GLOBLOCK = -((6)),
+    LZERROR_GLOBALLOC = -((5)),
+    LZERROR_WRITE = -((4)),
+    LZERROR_READ = -((3)),
+    LZERROR_BADOUTHANDLE = -((2)),
+    LZERROR_BADINHANDLE = -((1)),
+    NO_ERROR = (0),
+    ERROR_SUCCESS = (0),
+    ERROR_INVALID_FUNCTION = (1),
+    ERROR_FILE_NOT_FOUND = (2),
+    ERROR_PATH_NOT_FOUND = (3),
+    ERROR_TOO_MANY_OPEN_FILES = (4),
+    ERROR_ACCESS_DENIED = (5),
+    ERROR_INVALID_HANDLE = (6),
+    ERROR_ARENA_TRASHED = (7),
+    ERROR_NOT_ENOUGH_MEMORY = (8),
+    ERROR_INVALID_BLOCK = (9),
+    ERROR_BAD_ENVIRONMENT = (10),
+    ERROR_BAD_FORMAT = (11),
+    ERROR_INVALID_ACCESS = (12),
+    ERROR_INVALID_DATA = (13),
+    ERROR_OUTOFMEMORY = (14),
+    ERROR_INVALID_DRIVE = (15),
+    ERROR_CURRENT_DIRECTORY = (16),
+    ERROR_NOT_SAME_DEVICE = (17),
+    ERROR_NO_MORE_FILES = (18),
+    ERROR_WRITE_PROTECT = (19),
+    ERROR_BAD_UNIT = (20),
+    ERROR_NOT_READY = (21),
+    ERROR_BAD_COMMAND = (22),
+    ERROR_CRC = (23),
+    ERROR_BAD_LENGTH = (24),
+    ERROR_SEEK = (25),
+    ERROR_NOT_DOS_DISK = (26),
+    ERROR_SECTOR_NOT_FOUND = (27),
+    ERROR_OUT_OF_PAPER = (28),
+    ERROR_WRITE_FAULT = (29),
+    ERROR_READ_FAULT = (30),
+    ERROR_GEN_FAILURE = (31),
+    ERROR_SHARING_VIOLATION = (32),
+    ERROR_LOCK_VIOLATION = (33),
+    ERROR_WRONG_DISK = (34),
+    ERROR_SHARING_BUFFER_EXCEEDED = (36),
+    ERROR_HANDLE_EOF = (38),
+    ERROR_HANDLE_DISK_FULL = (39),
+    ERROR_NOT_SUPPORTED = (50),
+    ERROR_REM_NOT_LIST = (51),
+    ERROR_DUP_NAME = (52),
+    ERROR_BAD_NETPATH = (53),
+    ERROR_NETWORK_BUSY = (54),
+    ERROR_DEV_NOT_EXIST = (55),
+    ERROR_TOO_MANY_CMDS = (56),
+    ERROR_ADAP_HDW_ERR = (57),
+    ERROR_BAD_NET_RESP = (58),
+    ERROR_UNEXP_NET_ERR = (59),
+    ERROR_BAD_REM_ADAP = (60),
+    ERROR_PRINTQ_FULL = (61),
+    ERROR_NO_SPOOL_SPACE = (62),
+    ERROR_PRINT_CANCELLED = (63),
+    ERROR_NETNAME_DELETED = (64),
+    ERROR_NETWORK_ACCESS_DENIED = (65),
+    ERROR_BAD_DEV_TYPE = (66),
+    ERROR_BAD_NET_NAME = (67),
+    ERROR_TOO_MANY_NAMES = (68),
+    ERROR_TOO_MANY_SESS = (69),
+    ERROR_SHARING_PAUSED = (70),
+    ERROR_REQ_NOT_ACCEP = (71),
+    ERROR_REDIR_PAUSED = (72),
+    ERROR_FILE_EXISTS = (80),
+    ERROR_CANNOT_MAKE = (82),
+    ERROR_FAIL_I24 = (83),
+    ERROR_OUT_OF_STRUCTURES = (84),
+    ERROR_ALREADY_ASSIGNED = (85),
+    ERROR_INVALID_PASSWORD = (86),
+    ERROR_INVALID_PARAMETER = (87),
+    ERROR_NET_WRITE_FAULT = (88),
+    ERROR_NO_PROC_SLOTS = (89),
+    ERROR_TOO_MANY_SEMAPHORES = (100),
+    ERROR_EXCL_SEM_ALREADY_OWNED = (101),
+    ERROR_SEM_IS_SET = (102),
+    ERROR_TOO_MANY_SEM_REQUESTS = (103),
+    ERROR_INVALID_AT_INTERRUPT_TIME = (104),
+    ERROR_SEM_OWNER_DIED = (105),
+    ERROR_SEM_USER_LIMIT = (106),
+    ERROR_DISK_CHANGE = (107),
+    ERROR_DRIVE_LOCKED = (108),
+    ERROR_BROKEN_PIPE = (109),
+    ERROR_OPEN_FAILED = (110),
+    ERROR_BUFFER_OVERFLOW = (111),
+    ERROR_DISK_FULL = (112),
+    ERROR_NO_MORE_SEARCH_HANDLES = (113),
+    ERROR_INVALID_TARGET_HANDLE = (114),
+    ERROR_INVALID_CATEGORY = (117),
+    ERROR_INVALID_VERIFY_SWITCH = (118),
+    ERROR_BAD_DRIVER_LEVEL = (119),
+    ERROR_CALL_NOT_IMPLEMENTED = (120),
+    ERROR_SEM_TIMEOUT = (121),
+    ERROR_INSUFFICIENT_BUFFER = (122),
+    ERROR_INVALID_NAME = (123),
+    ERROR_INVALID_LEVEL = (124),
+    ERROR_NO_VOLUME_LABEL = (125),
+    ERROR_MOD_NOT_FOUND = (126),
+    ERROR_PROC_NOT_FOUND = (127),
+    ERROR_WAIT_NO_CHILDREN = (128),
+    ERROR_CHILD_NOT_COMPLETE = (129),
+    ERROR_DIRECT_ACCESS_HANDLE = (130),
+    ERROR_NEGATIVE_SEEK = (131),
+    ERROR_SEEK_ON_DEVICE = (132),
+    ERROR_IS_JOIN_TARGET = (133),
+    ERROR_IS_JOINED = (134),
+    ERROR_IS_SUBSTED = (135),
+    ERROR_NOT_JOINED = (136),
+    ERROR_NOT_SUBSTED = (137),
+    ERROR_JOIN_TO_JOIN = (138),
+    ERROR_SUBST_TO_SUBST = (139),
+    ERROR_JOIN_TO_SUBST = (140),
+    ERROR_SUBST_TO_JOIN = (141),
+    ERROR_BUSY_DRIVE = (142),
+    ERROR_SAME_DRIVE = (143),
+    ERROR_DIR_NOT_ROOT = (144),
+    ERROR_DIR_NOT_EMPTY = (145),
+    ERROR_IS_SUBST_PATH = (146),
+    ERROR_IS_JOIN_PATH = (147),
+    ERROR_PATH_BUSY = (148),
+    ERROR_IS_SUBST_TARGET = (149),
+    ERROR_SYSTEM_TRACE = (150),
+    ERROR_INVALID_EVENT_COUNT = (151),
+    ERROR_TOO_MANY_MUXWAITERS = (152),
+    ERROR_INVALID_LIST_FORMAT = (153),
+    ERROR_LABEL_TOO_LONG = (154),
+    ERROR_TOO_MANY_TCBS = (155),
+    ERROR_SIGNAL_REFUSED = (156),
+    ERROR_DISCARDED = (157),
+    ERROR_NOT_LOCKED = (158),
+    ERROR_BAD_THREADID_ADDR = (159),
+    ERROR_BAD_ARGUMENTS = (160),
+    ERROR_BAD_PATHNAME = (161),
+    ERROR_SIGNAL_PENDING = (162),
+    ERROR_MAX_THRDS_REACHED = (164),
+    ERROR_LOCK_FAILED = (167),
+    ERROR_BUSY = (170),
+    ERROR_CANCEL_VIOLATION = (173),
+    ERROR_ATOMIC_LOCKS_NOT_SUPPORTED = (174),
+    ERROR_INVALID_SEGMENT_NUMBER = (180),
+    ERROR_INVALID_ORDINAL = (182),
+    ERROR_ALREADY_EXISTS = (183),
+    ERROR_INVALID_FLAG_NUMBER = (186),
+    ERROR_SEM_NOT_FOUND = (187),
+    ERROR_INVALID_STARTING_CODESEG = (188),
+    ERROR_INVALID_STACKSEG = (189),
+    ERROR_INVALID_MODULETYPE = (190),
+    ERROR_INVALID_EXE_SIGNATURE = (191),
+    ERROR_EXE_MARKED_INVALID = (192),
+    ERROR_BAD_EXE_FORMAT = (193),
+    ERROR_ITERATED_DATA_EXCEEDS_64k = (194),
+    ERROR_INVALID_MINALLOCSIZE = (195),
+    ERROR_DYNLINK_FROM_INVALID_RING = (196),
+    ERROR_IOPL_NOT_ENABLED = (197),
+    ERROR_INVALID_SEGDPL = (198),
+    ERROR_AUTODATASEG_EXCEEDS_64k = (199),
+    ERROR_RING2SEG_MUST_BE_MOVABLE = (200),
+    ERROR_RELOC_CHAIN_XEEDS_SEGLIM = (201),
+    ERROR_INFLOOP_IN_RELOC_CHAIN = (202),
+    ERROR_ENVVAR_NOT_FOUND = (203),
+    ERROR_NO_SIGNAL_SENT = (205),
+    ERROR_FILENAME_EXCED_RANGE = (206),
+    ERROR_RING2_STACK_IN_USE = (207),
+    ERROR_META_EXPANSION_TOO_LONG = (208),
+    ERROR_INVALID_SIGNAL_NUMBER = (209),
+    ERROR_THREAD_1_INACTIVE = (210),
+    ERROR_LOCKED = (212),
+    ERROR_TOO_MANY_MODULES = (214),
+    ERROR_NESTING_NOT_ALLOWED = (215),
+    ERROR_BAD_PIPE = (230),
+    ERROR_PIPE_BUSY = (231),
+    ERROR_NO_DATA = (232),
+    ERROR_PIPE_NOT_CONNECTED = (233),
+    ERROR_MORE_DATA = (234),
+    ERROR_VC_DISCONNECTED = (240),
+    ERROR_INVALID_EA_NAME = (254),
+    ERROR_EA_LIST_INCONSISTENT = (255),
+    ERROR_NO_MORE_ITEMS = (259),
+    ERROR_CANNOT_COPY = (266),
+    ERROR_DIRECTORY = (267),
+    ERROR_EAS_DIDNT_FIT = (275),
+    ERROR_EA_FILE_CORRUPT = (276),
+    ERROR_EA_TABLE_FULL = (277),
+    ERROR_INVALID_EA_HANDLE = (278),
+    ERROR_EAS_NOT_SUPPORTED = (282),
+    ERROR_NOT_OWNER = (288),
+    ERROR_TOO_MANY_POSTS = (298),
+    ERROR_PARTIAL_COPY = (299),
+    ERROR_MR_MID_NOT_FOUND = (317),
+    ERROR_INVALID_ADDRESS = (487),
+    ERROR_ARITHMETIC_OVERFLOW = (534),
+    ERROR_PIPE_CONNECTED = (535),
+    ERROR_PIPE_LISTENING = (536),
+    ERROR_EA_ACCESS_DENIED = (994),
+    ERROR_OPERATION_ABORTED = (995),
+    ERROR_IO_INCOMPLETE = (996),
+    ERROR_IO_PENDING = (997),
+    ERROR_NOACCESS = (998),
+    ERROR_SWAPERROR = (999),
+    ERROR_STACK_OVERFLOW = (1001),
+    ERROR_INVALID_MESSAGE = (1002),
+    ERROR_CAN_NOT_COMPLETE = (1003),
+    ERROR_INVALID_FLAGS = (1004),
+    ERROR_UNRECOGNIZED_VOLUME = (1005),
+    ERROR_FILE_INVALID = (1006),
+    ERROR_FULLSCREEN_MODE = (1007),
+    ERROR_NO_TOKEN = (1008),
+    ERROR_BADDB = (1009),
+    ERROR_BADKEY = (1010),
+    ERROR_CANTOPEN = (1011),
+    ERROR_CANTREAD = (1012),
+    ERROR_CANTWRITE = (1013),
+    ERROR_REGISTRY_RECOVERED = (1014),
+    ERROR_REGISTRY_CORRUPT = (1015),
+    ERROR_REGISTRY_IO_FAILED = (1016),
+    ERROR_NOT_REGISTRY_FILE = (1017),
+    ERROR_KEY_DELETED = (1018),
+    ERROR_NO_LOG_SPACE = (1019),
+    ERROR_KEY_HAS_CHILDREN = (1020),
+    ERROR_CHILD_MUST_BE_VOLATILE = (1021),
+    ERROR_NOTIFY_ENUM_DIR = (1022),
+    ERROR_DEPENDENT_SERVICES_RUNNING = (1051),
+    ERROR_INVALID_SERVICE_CONTROL = (1052),
+    ERROR_SERVICE_REQUEST_TIMEOUT = (1053),
+    ERROR_SERVICE_NO_THREAD = (1054),
+    ERROR_SERVICE_DATABASE_LOCKED = (1055),
+    ERROR_SERVICE_ALREADY_RUNNING = (1056),
+    ERROR_INVALID_SERVICE_ACCOUNT = (1057),
+    ERROR_SERVICE_DISABLED = (1058),
+    ERROR_CIRCULAR_DEPENDENCY = (1059),
+    ERROR_SERVICE_DOES_NOT_EXIST = (1060),
+    ERROR_SERVICE_CANNOT_ACCEPT_CTRL = (1061),
+    ERROR_SERVICE_NOT_ACTIVE = (1062),
+    ERROR_FAILED_SERVICE_CONTROLLER_CONNECT = (1063),
+    ERROR_EXCEPTION_IN_SERVICE = (1064),
+    ERROR_DATABASE_DOES_NOT_EXIST = (1065),
+    ERROR_SERVICE_SPECIFIC_ERROR = (1066),
+    ERROR_PROCESS_ABORTED = (1067),
+    ERROR_SERVICE_DEPENDENCY_FAIL = (1068),
+    ERROR_SERVICE_LOGON_FAILED = (1069),
+    ERROR_SERVICE_START_HANG = (1070),
+    ERROR_INVALID_SERVICE_LOCK = (1071),
+    ERROR_SERVICE_MARKED_FOR_DELETE = (1072),
+    ERROR_SERVICE_EXISTS = (1073),
+    ERROR_ALREADY_RUNNING_LKG = (1074),
+    ERROR_SERVICE_DEPENDENCY_DELETED = (1075),
+    ERROR_BOOT_ALREADY_ACCEPTED = (1076),
+    ERROR_SERVICE_NEVER_STARTED = (1077),
+    ERROR_DUPLICATE_SERVICE_NAME = (1078),
+    ERROR_END_OF_MEDIA = (1100),
+    ERROR_FILEMARK_DETECTED = (1101),
+    ERROR_BEGINNING_OF_MEDIA = (1102),
+    ERROR_SETMARK_DETECTED = (1103),
+    ERROR_NO_DATA_DETECTED = (1104),
+    ERROR_PARTITION_FAILURE = (1105),
+    ERROR_INVALID_BLOCK_LENGTH = (1106),
+    ERROR_DEVICE_NOT_PARTITIONED = (1107),
+    ERROR_UNABLE_TO_LOCK_MEDIA = (1108),
+    ERROR_UNABLE_TO_UNLOAD_MEDIA = (1109),
+    ERROR_MEDIA_CHANGED = (1110),
+    ERROR_BUS_RESET = (1111),
+    ERROR_NO_MEDIA_IN_DRIVE = (1112),
+    ERROR_NO_UNICODE_TRANSLATION = (1113),
+    ERROR_DLL_INIT_FAILED = (1114),
+    ERROR_SHUTDOWN_IN_PROGRESS = (1115),
+    ERROR_NO_SHUTDOWN_IN_PROGRESS = (1116),
+    ERROR_IO_DEVICE = (1117),
+    ERROR_SERIAL_NO_DEVICE = (1118),
+    ERROR_IRQ_BUSY = (1119),
+    ERROR_MORE_WRITES = (1120),
+    ERROR_COUNTER_TIMEOUT = (1121),
+    ERROR_FLOPPY_ID_MARK_NOT_FOUND = (1122),
+    ERROR_FLOPPY_WRONG_CYLINDER = (1123),
+    ERROR_FLOPPY_UNKNOWN_ERROR = (1124),
+    ERROR_FLOPPY_BAD_REGISTERS = (1125),
+    ERROR_DISK_RECALIBRATE_FAILED = (1126),
+    ERROR_DISK_OPERATION_FAILED = (1127),
+    ERROR_DISK_RESET_FAILED = (1128),
+    ERROR_EOM_OVERFLOW = (1129),
+    ERROR_NOT_ENOUGH_SERVER_MEMORY = (1130),
+    ERROR_POSSIBLE_DEADLOCK = (1131),
+    ERROR_MAPPED_ALIGNMENT = (1132),
+    ERROR_SET_POWER_STATE_VETOED = (1140),
+    ERROR_SET_POWER_STATE_FAILED = (1141),
+    ERROR_OLD_WIN_VERSION = (1150),
+    ERROR_APP_WRONG_OS = (1151),
+    ERROR_SINGLE_INSTANCE_APP = (1152),
+    ERROR_RMODE_APP = (1153),
+    ERROR_INVALID_DLL = (1154),
+    ERROR_NO_ASSOCIATION = (1155),
+    ERROR_DDE_FAIL = (1156),
+    ERROR_DLL_NOT_FOUND = (1157),
+    ERROR_BAD_USERNAME = (2202),
+    ERROR_NOT_CONNECTED = (2250),
+    ERROR_OPEN_FILES = (2401),
+    ERROR_ACTIVE_CONNECTIONS = (2402),
+    ERROR_DEVICE_IN_USE = (2404),
+    ERROR_BAD_DEVICE = (1200),
+    ERROR_CONNECTION_UNAVAIL = (1201),
+    ERROR_DEVICE_ALREADY_REMEMBERED = (1202),
+    ERROR_NO_NET_OR_BAD_PATH = (1203),
+    ERROR_BAD_PROVIDER = (1204),
+    ERROR_CANNOT_OPEN_PROFILE = (1205),
+    ERROR_BAD_PROFILE = (1206),
+    ERROR_NOT_CONTAINER = (1207),
+    ERROR_EXTENDED_ERROR = (1208),
+    ERROR_INVALID_GROUPNAME = (1209),
+    ERROR_INVALID_COMPUTERNAME = (1210),
+    ERROR_INVALID_EVENTNAME = (1211),
+    ERROR_INVALID_DOMAINNAME = (1212),
+    ERROR_INVALID_SERVICENAME = (1213),
+    ERROR_INVALID_NETNAME = (1214),
+    ERROR_INVALID_SHARENAME = (1215),
+    ERROR_INVALID_PASSWORDNAME = (1216),
+    ERROR_INVALID_MESSAGENAME = (1217),
+    ERROR_INVALID_MESSAGEDEST = (1218),
+    ERROR_SESSION_CREDENTIAL_CONFLICT = (1219),
+    ERROR_REMOTE_SESSION_LIMIT_EXCEEDED = (1220),
+    ERROR_DUP_DOMAINNAME = (1221),
+    ERROR_NO_NETWORK = (1222),
+    ERROR_CANCELLED = (1223),
+    ERROR_USER_MAPPED_FILE = (1224),
+    ERROR_CONNECTION_REFUSED = (1225),
+    ERROR_GRACEFUL_DISCONNECT = (1226),
+    ERROR_ADDRESS_ALREADY_ASSOCIATED = (1227),
+    ERROR_ADDRESS_NOT_ASSOCIATED = (1228),
+    ERROR_CONNECTION_INVALID = (1229),
+    ERROR_CONNECTION_ACTIVE = (1230),
+    ERROR_NETWORK_UNREACHABLE = (1231),
+    ERROR_HOST_UNREACHABLE = (1232),
+    ERROR_PROTOCOL_UNREACHABLE = (1233),
+    ERROR_PORT_UNREACHABLE = (1234),
+    ERROR_REQUEST_ABORTED = (1235),
+    ERROR_CONNECTION_ABORTED = (1236),
+    ERROR_RETRY = (1237),
+    ERROR_CONNECTION_COUNT_LIMIT = (1238),
+    ERROR_LOGIN_TIME_RESTRICTION = (1239),
+    ERROR_LOGIN_WKSTA_RESTRICTION = (1240),
+    ERROR_INCORRECT_ADDRESS = (1241),
+    ERROR_ALREADY_REGISTERED = (1242),
+    ERROR_SERVICE_NOT_FOUND = (1243),
+    ERROR_NOT_AUTHENTICATED = (1244),
+    ERROR_NOT_LOGGED_ON = (1245),
+    ERROR_CONTINUE = (1246),
+    ERROR_ALREADY_INITIALIZED = (1247),
+    ERROR_NO_MORE_DEVICES = (1248),
+    ERROR_NOT_ALL_ASSIGNED = (1300),
+    ERROR_SOME_NOT_MAPPED = (1301),
+    ERROR_NO_QUOTAS_FOR_ACCOUNT = (1302),
+    ERROR_LOCAL_USER_SESSION_KEY = (1303),
+    ERROR_NULL_LM_PASSWORD = (1304),
+    ERROR_UNKNOWN_REVISION = (1305),
+    ERROR_REVISION_MISMATCH = (1306),
+    ERROR_INVALID_OWNER = (1307),
+    ERROR_INVALID_PRIMARY_GROUP = (1308),
+    ERROR_NO_IMPERSONATION_TOKEN = (1309),
+    ERROR_CANT_DISABLE_MANDATORY = (1310),
+    ERROR_NO_LOGON_SERVERS = (1311),
+    ERROR_NO_SUCH_LOGON_SESSION = (1312),
+    ERROR_NO_SUCH_PRIVILEGE = (1313),
+    ERROR_PRIVILEGE_NOT_HELD = (1314),
+    ERROR_INVALID_ACCOUNT_NAME = (1315),
+    ERROR_USER_EXISTS = (1316),
+    ERROR_NO_SUCH_USER = (1317),
+    ERROR_GROUP_EXISTS = (1318),
+    ERROR_NO_SUCH_GROUP = (1319),
+    ERROR_MEMBER_IN_GROUP = (1320),
+    ERROR_MEMBER_NOT_IN_GROUP = (1321),
+    ERROR_LAST_ADMIN = (1322),
+    ERROR_WRONG_PASSWORD = (1323),
+    ERROR_ILL_FORMED_PASSWORD = (1324),
+    ERROR_PASSWORD_RESTRICTION = (1325),
+    ERROR_LOGON_FAILURE = (1326),
+    ERROR_ACCOUNT_RESTRICTION = (1327),
+    ERROR_INVALID_LOGON_HOURS = (1328),
+    ERROR_INVALID_WORKSTATION = (1329),
+    ERROR_PASSWORD_EXPIRED = (1330),
+    ERROR_ACCOUNT_DISABLED = (1331),
+    ERROR_NONE_MAPPED = (1332),
+    ERROR_TOO_MANY_LUIDS_REQUESTED = (1333),
+    ERROR_LUIDS_EXHAUSTED = (1334),
+    ERROR_INVALID_SUB_AUTHORITY = (1335),
+    ERROR_INVALID_ACL = (1336),
+    ERROR_INVALID_SID = (1337),
+    ERROR_INVALID_SECURITY_DESCR = (1338),
+    ERROR_BAD_INHERITANCE_ACL = (1340),
+    ERROR_SERVER_DISABLED = (1341),
+    ERROR_SERVER_NOT_DISABLED = (1342),
+    ERROR_INVALID_ID_AUTHORITY = (1343),
+    ERROR_ALLOTTED_SPACE_EXCEEDED = (1344),
+    ERROR_INVALID_GROUP_ATTRIBUTES = (1345),
+    ERROR_BAD_IMPERSONATION_LEVEL = (1346),
+    ERROR_CANT_OPEN_ANONYMOUS = (1347),
+    ERROR_BAD_VALIDATION_CLASS = (1348),
+    ERROR_BAD_TOKEN_TYPE = (1349),
+    ERROR_NO_SECURITY_ON_OBJECT = (1350),
+    ERROR_CANT_ACCESS_DOMAIN_INFO = (1351),
+    ERROR_INVALID_SERVER_STATE = (1352),
+    ERROR_INVALID_DOMAIN_STATE = (1353),
+    ERROR_INVALID_DOMAIN_ROLE = (1354),
+    ERROR_NO_SUCH_DOMAIN = (1355),
+    ERROR_DOMAIN_EXISTS = (1356),
+    ERROR_DOMAIN_LIMIT_EXCEEDED = (1357),
+    ERROR_INTERNAL_DB_CORRUPTION = (1358),
+    ERROR_INTERNAL_ERROR = (1359),
+    ERROR_GENERIC_NOT_MAPPED = (1360),
+    ERROR_BAD_DESCRIPTOR_FORMAT = (1361),
+    ERROR_NOT_LOGON_PROCESS = (1362),
+    ERROR_LOGON_SESSION_EXISTS = (1363),
+    ERROR_NO_SUCH_PACKAGE = (1364),
+    ERROR_BAD_LOGON_SESSION_STATE = (1365),
+    ERROR_LOGON_SESSION_COLLISION = (1366),
+    ERROR_INVALID_LOGON_TYPE = (1367),
+    ERROR_CANNOT_IMPERSONATE = (1368),
+    ERROR_RXACT_INVALID_STATE = (1369),
+    ERROR_RXACT_COMMIT_FAILURE = (1370),
+    ERROR_SPECIAL_ACCOUNT = (1371),
+    ERROR_SPECIAL_GROUP = (1372),
+    ERROR_SPECIAL_USER = (1373),
+    ERROR_MEMBERS_PRIMARY_GROUP = (1374),
+    ERROR_TOKEN_ALREADY_IN_USE = (1375),
+    ERROR_NO_SUCH_ALIAS = (1376),
+    ERROR_MEMBER_NOT_IN_ALIAS = (1377),
+    ERROR_MEMBER_IN_ALIAS = (1378),
+    ERROR_ALIAS_EXISTS = (1379),
+    ERROR_LOGON_NOT_GRANTED = (1380),
+    ERROR_TOO_MANY_SECRETS = (1381),
+    ERROR_SECRET_TOO_LONG = (1382),
+    ERROR_INTERNAL_DB_ERROR = (1383),
+    ERROR_TOO_MANY___FILE___IDS = (1384),
+    ERROR_LOGON_TYPE_NOT_GRANTED = (1385),
+    ERROR_NT_CROSS_ENCRYPTION_REQUIRED = (1386),
+    ERROR_NO_SUCH_MEMBER = (1387),
+    ERROR_INVALID_MEMBER = (1388),
+    ERROR_TOO_MANY_SIDS = (1389),
+    ERROR_LM_CROSS_ENCRYPTION_REQUIRED = (1390),
+    ERROR_NO_INHERITANCE = (1391),
+    ERROR_FILE_CORRUPT = (1392),
+    ERROR_DISK_CORRUPT = (1393),
+    ERROR_NO_USER_SESSION_KEY = (1394),
+    ERROR_LICENSE_QUOTA_EXCEEDED = (1395),
+    ERROR_INVALID_WINDOW_HANDLE = (1400),
+    ERROR_INVALID_MENU_HANDLE = (1401),
+    ERROR_INVALID_CURSOR_HANDLE = (1402),
+    ERROR_INVALID_ACCEL_HANDLE = (1403),
+    ERROR_INVALID_HOOK_HANDLE = (1404),
+    ERROR_INVALID_DWP_HANDLE = (1405),
+    ERROR_TLW_WITH_WSCHILD = (1406),
+    ERROR_CANNOT_FIND_WND_CLASS = (1407),
+    ERROR_WINDOW_OF_OTHER_THREAD = (1408),
+    ERROR_HOTKEY_ALREADY_REGISTERED = (1409),
+    ERROR_CLASS_ALREADY_EXISTS = (1410),
+    ERROR_CLASS_DOES_NOT_EXIST = (1411),
+    ERROR_CLASS_HAS_WINDOWS = (1412),
+    ERROR_INVALID_INDEX = (1413),
+    ERROR_INVALID_ICON_HANDLE = (1414),
+    ERROR_PRIVATE_DIALOG_INDEX = (1415),
+    ERROR_LISTBOX_ID_NOT_FOUND = (1416),
+    ERROR_NO_WILDCARD_CHARACTERS = (1417),
+    ERROR_CLIPBOARD_NOT_OPEN = (1418),
+    ERROR_HOTKEY_NOT_REGISTERED = (1419),
+    ERROR_WINDOW_NOT_DIALOG = (1420),
+    ERROR_CONTROL_ID_NOT_FOUND = (1421),
+    ERROR_INVALID_COMBOBOX_MESSAGE = (1422),
+    ERROR_WINDOW_NOT_COMBOBOX = (1423),
+    ERROR_INVALID_EDIT_HEIGHT = (1424),
+    ERROR_DC_NOT_FOUND = (1425),
+    ERROR_INVALID_HOOK_FILTER = (1426),
+    ERROR_INVALID_FILTER_PROC = (1427),
+    ERROR_HOOK_NEEDS_HMOD = (1428),
+    ERROR_GLOBAL_ONLY_HOOK = (1429),
+    ERROR_JOURNAL_HOOK_SET = (1430),
+    ERROR_HOOK_NOT_INSTALLED = (1431),
+    ERROR_INVALID_LB_MESSAGE = (1432),
+    ERROR_SETCOUNT_ON_BAD_LB = (1433),
+    ERROR_LB_WITHOUT_TABSTOPS = (1434),
+    ERROR_DESTROY_OBJECT_OF_OTHER_THREAD = (1435),
+    ERROR_CHILD_WINDOW_MENU = (1436),
+    ERROR_NO_SYSTEM_MENU = (1437),
+    ERROR_INVALID_MSGBOX_STYLE = (1438),
+    ERROR_INVALID_SPI_VALUE = (1439),
+    ERROR_SCREEN_ALREADY_LOCKED = (1440),
+    ERROR_HWNDS_HAVE_DIFF_PARENT = (1441),
+    ERROR_NOT_CHILD_WINDOW = (1442),
+    ERROR_INVALID_GW_COMMAND = (1443),
+    ERROR_INVALID_THREAD_ID = (1444),
+    ERROR_NON_MDICHILD_WINDOW = (1445),
+    ERROR_POPUP_ALREADY_ACTIVE = (1446),
+    ERROR_NO_SCROLLBARS = (1447),
+    ERROR_INVALID_SCROLLBAR_RANGE = (1448),
+    ERROR_INVALID_SHOWWIN_COMMAND = (1449),
+    ERROR_NO_SYSTEM_RESOURCES = (1450),
+    ERROR_NONPAGED_SYSTEM_RESOURCES = (1451),
+    ERROR_PAGED_SYSTEM_RESOURCES = (1452),
+    ERROR_WORKING_SET_QUOTA = (1453),
+    ERROR_PAGEFILE_QUOTA = (1454),
+    ERROR_COMMITMENT_LIMIT = (1455),
+    ERROR_MENU_ITEM_NOT_FOUND = (1456),
+    ERROR_EVENTLOG_FILE_CORRUPT = (1500),
+    ERROR_EVENTLOG_CANT_START = (1501),
+    ERROR_LOG_FILE_FULL = (1502),
+    ERROR_EVENTLOG_FILE_CHANGED = (1503),
+    RPC_S_INVALID_STRING_BINDING = (1700),
+    RPC_S_WRONG_KIND_OF_BINDING = (1701),
+    RPC_S_INVALID_BINDING = (1702),
+    RPC_S_PROTSEQ_NOT_SUPPORTED = (1703),
+    RPC_S_INVALID_RPC_PROTSEQ = (1704),
+    RPC_S_INVALID_STRING_UUID = (1705),
+    RPC_S_INVALID_ENDPOINT_FORMAT = (1706),
+    RPC_S_INVALID_NET_ADDR = (1707),
+    RPC_S_NO_ENDPOINT_FOUND = (1708),
+    RPC_S_INVALID_TIMEOUT = (1709),
+    RPC_S_OBJECT_NOT_FOUND = (1710),
+    RPC_S_ALREADY_REGISTERED = (1711),
+    RPC_S_TYPE_ALREADY_REGISTERED = (1712),
+    RPC_S_ALREADY_LISTENING = (1713),
+    RPC_S_NO_PROTSEQS_REGISTERED = (1714),
+    RPC_S_NOT_LISTENING = (1715),
+    RPC_S_UNKNOWN_MGR_TYPE = (1716),
+    RPC_S_UNKNOWN_IF = (1717),
+    RPC_S_NO_BINDINGS = (1718),
+    RPC_S_NO_PROTSEQS = (1719),
+    RPC_S_CANT_CREATE_ENDPOINT = (1720),
+    RPC_S_OUT_OF_RESOURCES = (1721),
+    RPC_S_SERVER_UNAVAILABLE = (1722),
+    RPC_S_SERVER_TOO_BUSY = (1723),
+    RPC_S_INVALID_NETWORK_OPTIONS = (1724),
+    RPC_S_NO_CALL_ACTIVE = (1725),
+    RPC_S_CALL_FAILED = (1726),
+    RPC_S_CALL_FAILED_DNE = (1727),
+    RPC_S_PROTOCOL_ERROR = (1728),
+    RPC_S_UNSUPPORTED_TRANS_SYN = (1730),
+    RPC_S_UNSUPPORTED_TYPE = (1732),
+    RPC_S_INVALID_TAG = (1733),
+    RPC_S_INVALID_BOUND = (1734),
+    RPC_S_NO_ENTRY_NAME = (1735),
+    RPC_S_INVALID_NAME_SYNTAX = (1736),
+    RPC_S_UNSUPPORTED_NAME_SYNTAX = (1737),
+    RPC_S_UUID_NO_ADDRESS = (1739),
+    RPC_S_DUPLICATE_ENDPOINT = (1740),
+    RPC_S_UNKNOWN_AUTHN_TYPE = (1741),
+    RPC_S_MAX_CALLS_TOO_SMALL = (1742),
+    RPC_S_STRING_TOO_LONG = (1743),
+    RPC_S_PROTSEQ_NOT_FOUND = (1744),
+    RPC_S_PROCNUM_OUT_OF_RANGE = (1745),
+    RPC_S_BINDING_HAS_NO_AUTH = (1746),
+    RPC_S_UNKNOWN_AUTHN_SERVICE = (1747),
+    RPC_S_UNKNOWN_AUTHN_LEVEL = (1748),
+    RPC_S_INVALID_AUTH_IDENTITY = (1749),
+    RPC_S_UNKNOWN_AUTHZ_SERVICE = (1750),
+    EPT_S_INVALID_ENTRY = (1751),
+    EPT_S_CANT_PERFORM_OP = (1752),
+    EPT_S_NOT_REGISTERED = (1753),
+    RPC_S_NOTHING_TO_EXPORT = (1754),
+    RPC_S_INCOMPLETE_NAME = (1755),
+    RPC_S_INVALID_VERS_OPTION = (1756),
+    RPC_S_NO_MORE_MEMBERS = (1757),
+    RPC_S_NOT_ALL_OBJS_UNEXPORTED = (1758),
+    RPC_S_INTERFACE_NOT_FOUND = (1759),
+    RPC_S_ENTRY_ALREADY_EXISTS = (1760),
+    RPC_S_ENTRY_NOT_FOUND = (1761),
+    RPC_S_NAME_SERVICE_UNAVAILABLE = (1762),
+    RPC_S_INVALID_NAF_ID = (1763),
+    RPC_S_CANNOT_SUPPORT = (1764),
+    RPC_S_NO___FILE___AVAILABLE = (1765),
+    RPC_S_INTERNAL_ERROR = (1766),
+    RPC_S_ZERO_DIVIDE = (1767),
+    RPC_S_ADDRESS_ERROR = (1768),
+    RPC_S_FP_DIV_ZERO = (1769),
+    RPC_S_FP_UNDERFLOW = (1770),
+    RPC_S_FP_OVERFLOW = (1771),
+    RPC_X_NO_MORE_ENTRIES = (1772),
+    RPC_X_SS_CHAR_TRANS_OPEN_FAIL = (1773),
+    RPC_X_SS_CHAR_TRANS_SHORT_FILE = (1774),
+    RPC_X_SS_IN_NULL___FILE__ = (1775),
+    RPC_X_SS___FILE___DAMAGED = (1777),
+    RPC_X_SS_HANDLES_MISMATCH = (1778),
+    RPC_X_SS_CANNOT_GET_CALL_HANDLE = (1779),
+    RPC_X_NULL_REF_POINTER = (1780),
+    RPC_X_ENUM_VALUE_OUT_OF_RANGE = (1781),
+    RPC_X_BYTE_COUNT_TOO_SMALL = (1782),
+    RPC_X_BAD_STUB_DATA = (1783),
+    ERROR_INVALID_USER_BUFFER = (1784),
+    ERROR_UNRECOGNIZED_MEDIA = (1785),
+    ERROR_NO_TRUST_LSA_SECRET = (1786),
+    ERROR_NO_TRUST_SAM_ACCOUNT = (1787),
+    ERROR_TRUSTED_DOMAIN_FAILURE = (1788),
+    ERROR_TRUSTED_RELATIONSHIP_FAILURE = (1789),
+    ERROR_TRUST_FAILURE = (1790),
+    RPC_S_CALL_IN_PROGRESS = (1791),
+    ERROR_NETLOGON_NOT_STARTED = (1792),
+    ERROR_ACCOUNT_EXPIRED = (1793),
+    ERROR_REDIRECTOR_HAS_OPEN_HANDLES = (1794),
+    ERROR_PRINTER_DRIVER_ALREADY_INSTALLED = (1795),
+    ERROR_UNKNOWN_PORT = (1796),
+    ERROR_UNKNOWN_PRINTER_DRIVER = (1797),
+    ERROR_UNKNOWN_PRINTPROCESSOR = (1798),
+    ERROR_INVALID_SEPARATOR_FILE = (1799),
+    ERROR_INVALID_PRIORITY = (1800),
+    ERROR_INVALID_PRINTER_NAME = (1801),
+    ERROR_PRINTER_ALREADY_EXISTS = (1802),
+    ERROR_INVALID_PRINTER_COMMAND = (1803),
+    ERROR_INVALID_DATATYPE = (1804),
+    ERROR_INVALID_ENVIRONMENT = (1805),
+    RPC_S_NO_MORE_BINDINGS = (1806),
+    ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT = (1807),
+    ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT = (1808),
+    ERROR_NOLOGON_SERVER_TRUST_ACCOUNT = (1809),
+    ERROR_DOMAIN_TRUST_INCONSISTENT = (1810),
+    ERROR_SERVER_HAS_OPEN_HANDLES = (1811),
+    ERROR_RESOURCE_DATA_NOT_FOUND = (1812),
+    ERROR_RESOURCE_TYPE_NOT_FOUND = (1813),
+    ERROR_RESOURCE_NAME_NOT_FOUND = (1814),
+    ERROR_RESOURCE_LANG_NOT_FOUND = (1815),
+    ERROR_NOT_ENOUGH_QUOTA = (1816),
+    RPC_S_NO_INTERFACES = (1817),
+    RPC_S_CALL_CANCELLED = (1818),
+    RPC_S_BINDING_INCOMPLETE = (1819),
+    RPC_S_COMM_FAILURE = (1820),
+    RPC_S_UNSUPPORTED_AUTHN_LEVEL = (1821),
+    RPC_S_NO_PRINC_NAME = (1822),
+    RPC_S_NOT_RPC_ERROR = (1823),
+    RPC_S_UUID_LOCAL_ONLY = (1824),
+    RPC_S_SEC_PKG_ERROR = (1825),
+    RPC_S_NOT_CANCELLED = (1826),
+    RPC_X_INVALID_ES_ACTION = (1827),
+    RPC_X_WRONG_ES_VERSION = (1828),
+    RPC_X_WRONG_STUB_VERSION = (1829),
+    RPC_S_GROUP_MEMBER_NOT_FOUND = (1898),
+    EPT_S_CANT_CREATE = (1899),
+    RPC_S_INVALID_OBJECT = (1900),
+    ERROR_INVALID_TIME = (1901),
+    ERROR_INVALID_FORM_NAME = (1902),
+    ERROR_INVALID_FORM_SIZE = (1903),
+    ERROR_ALREADY_WAITING = (1904),
+    ERROR_PRINTER_DELETED = (1905),
+    ERROR_INVALID_PRINTER_STATE = (1906),
+    ERROR_PASSWORD_MUST_CHANGE = (1907),
+    ERROR_DOMAIN_CONTROLLER_NOT_FOUND = (1908),
+    ERROR_ACCOUNT_LOCKED_OUT = (1909),
+    ERROR_NO_BROWSER_SERVERS_FOUND = (6118),
+    ERROR_INVALID_PIXEL_FORMAT = (2000),
+    ERROR_BAD_DRIVER = (2001),
+    ERROR_INVALID_WINDOW_STYLE = (2002),
+    ERROR_METAFILE_NOT_SUPPORTED = (2003),
+    ERROR_TRANSFORM_NOT_SUPPORTED = (2004),
+    ERROR_CLIPPING_NOT_SUPPORTED = (2005),
+    ERROR_UNKNOWN_PRINT_MONITOR = (3000),
+    ERROR_PRINTER_DRIVER_IN_USE = (3001),
+    ERROR_SPOOL_FILE_NOT_FOUND = (3002),
+    ERROR_SPL_NO_STARTDOC = (3003),
+    ERROR_SPL_NO_ADDJOB = (3004),
+    ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED = (3005),
+    ERROR_PRINT_MONITOR_ALREADY_INSTALLED = (3006),
+    ERROR_WINS_INTERNAL = (4000),
+    ERROR_CAN_NOT_DEL_LOCAL_WINS = (4001),
+    ERROR_STATIC_INIT = (4002),
+    ERROR_INC_BACKUP = (4003),
+    ERROR_FULL_BACKUP = (4004),
+    ERROR_REC_NON_EXISTENT = (4005),
+    ERROR_RPL_NOT_ALLOWED = (4006),
+    MAX_PATH = (260),
+    LF_FACESIZE = (32),
+    LF_FULLFACESIZE = (64),
+    ELF_VENDOR_SIZE = (4),
+    SECURITY_STATIC_TRACKING = (0),
+    SECURITY_DYNAMIC_TRACKING = (1),
+    MAX_DEFAULTCHAR = (2),
+    MAX_LEADBYTES = (12),
+    EXCEPTION_MAXIMUM_PARAMETERS = (15),
+    CCHDEVICENAME = (32),
+    CCHFORMNAME = (32),
+    MENU_TEXT_LEN = (40),
+    MAX_LANA = (254),
+    NCBNAMSZ = (16),
+    NETBIOS_NAME_LEN = (16),
+    OFS_MAXPATHNAME = (128),
+    MAX_TAB_STOPS = (32),
+    ANYSIZE_ARRAY = (1),
+    RAS_MaxCallbackNumber = (128),
+    RAS_MaxDeviceName = (128),
+    RAS_MaxDeviceType = (16),
+    RAS_MaxEntryName = (256),
+    RAS_MaxIpAddress = (15),
+    RAS_MaxIpxAddress = (21),
+    RAS_MaxPhoneNumber = (128),
+    UNLEN = (256),
+    PWLEN = (256),
+    CNLEN = (15),
+    DNLEN = (15),
+    MAXDWORD = (0xFFFFFFFF),
+    MAXWORD = (0xFFFF),
+    MAXBYTE = (0xFF),
+    MINCHAR = (0x80),
+    MAXCHAR = (0x7F),
+    MINSHORT = (0x8000),
+    MAXSHORT = (0x7FFF),
+    MINLONG = (0x80000000),
+    MAXLONG = (0x7FFFFFFF),
+    FILE_BEGIN = (0),
+    FILE_CURRENT = (1),
+    FILE_END = (2),
+    OF_READ = (0),
+    OF_READWRITE = (2),
+    OF_WRITE = (1),
+    OF_SHARE_COMPAT = (0),
+    OF_SHARE_DENY_NONE = (64),
+    OF_SHARE_DENY_READ = (48),
+    OF_SHARE_DENY_WRITE = (32),
+    OF_SHARE_EXCLUSIVE = (16),
+    OF_CANCEL = (2048),
+    OF_CREATE = (4096),
+    OF_DELETE = (512),
+    OF_EXIST = (16384),
+    OF_PARSE = (256),
+    OF_PROMPT = (8192),
+    OF_REOPEN = (32768),
+    OF_VERIFY = (1024),
+    HKL_NEXT = (1),
+    HKL_PREV = (0),
+    KLF_REORDER = (8),
+    KLF_UNLOADPREVIOUS = (4),
+    KLF_ACTIVATE = (1),
+    KLF_NOTELLSHELL = (128),
+    KLF_REPLACELANG = (16),
+    KLF_SUBSTITUTE_OK = (2),
+    MF_BITMAP = (0x4),
+    MF_DISABLED = (0x2),
+    MF_ENABLED = (0),
+    MF_GRAYED = (0x1),
+    MF_HELP = (0x4000),
+    MF_MENUBARBREAK = (0x20),
+    MF_MENUBREAK = (0x40),
+    MF_MOUSESELECT = (0x8000),
+    MF_OWNERDRAW = (0x100),
+    MF_POPUP = (0x10),
+    MF_SEPARATOR = (0x800),
+    MF_STRING = (0),
+    MF_SYSMENU = (0x2000),
+    MF_USECHECKBITMAPS = (0x200),
+    BLACKNESS = (0x00000042),
+    NOTSRCERASE = (0x001100A6),
+    NOTSRCCOPY = (0x00330008),
+    SRCERASE = (0x00440328),
+    DSTINVERT = (0x00550009),
+    PATINVERT = (0x005A0049),
+    SRCINVERT = (0x00660046),
+    SRCAND = (0x008800C6),
+    MERGEPAINT = (0x00BB0226),
+    MERGECOPY = (0x00C000CA),
+    SRCCOPY = (0x00CC0020),
+    SRCPAINT = (0x00EE0086),
+    PATCOPY = (0x00F00021),
+    PATPAINT = (0x00FB0A09),
+    WHITENESS = (0x00FF0062),
+    R2_BLACK = (1),
+    R2_COPYPEN = (13),
+    R2_MASKNOTPEN = (3),
+    R2_MASKPEN = (9),
+    R2_MASKPENNOT = (5),
+    R2_MERGENOTPEN = (12),
+    R2_MERGEPEN = (15),
+    R2_MERGEPENNOT = (14),
+    R2_NOP = (11),
+    R2_NOT = (6),
+    R2_NOTCOPYPEN = (4),
+    R2_NOTMASKPEN = (8),
+    R2_NOTMERGEPEN = (2),
+    R2_NOTXORPEN = (10),
+    R2_WHITE = (16),
+    R2_XORPEN = (7),
+    BSF_FLUSHDISK = (4),
+    BSF_FORCEIFHUNG = (32),
+    BSF_IGNORECURRENTTASK = (2),
+    BSF_NOHANG = (8),
+    BSF_POSTMESSAGE = (16),
+    BSF_QUERY = (1),
+    BSM_ALLCOMPONENTS = (0),
+    BSM_APPLICATIONS = (8),
+    BSM_INSTALLABLEDRIVERS = (4),
+    BSM_NETDRIVER = (2),
+    BSM_VXDS = (1),
+    BROADCAST_QUERY_DENY = (1112363332),
+    NMPWAIT_NOWAIT = (1),
+    NMPWAIT_WAIT_FOREVER = -((1)),
+    NMPWAIT_USE_DEFAULT_WAIT = (0),
+    MDITILE_SKIPDISABLED = (2),
+    MDITILE_HORIZONTAL = (1),
+    MDITILE_VERTICAL = (0),
+    HCBT_ACTIVATE = (5),
+    HCBT_CLICKSKIPPED = (6),
+    HCBT_CREATEWND = (3),
+    HCBT_DESTROYWND = (4),
+    HCBT_KEYSKIPPED = (7),
+    HCBT_MINMAX = (1),
+    HCBT_MOVESIZE = (0),
+    HCBT_QS = (2),
+    HCBT_SETFOCUS = (9),
+    HCBT_SYSCOMMAND = (8),
+    DM_BITSPERPEL = (0x40000),
+    DM_PELSWIDTH = (0x80000),
+    DM_PELSHEIGHT = (0x100000),
+    DM_DISPLAYFLAGS = (0x200000),
+    DM_DISPLAYFREQUENCY = (0x400000),
+    CDS_UPDATEREGISTRY = (1),
+    CDS_TEST = (2),
+    DISP_CHANGE_SUCCESSFUL = (0),
+    DISP_CHANGE_RESTART = (1),
+    DISP_CHANGE_BADFLAGS = -((4)),
+    DISP_CHANGE_FAILED = -((1)),
+    DISP_CHANGE_BADMODE = -((2)),
+    DISP_CHANGE_NOTUPDATED = -((3)),
+    SERVICE_NO_CHANGE = -((1)),
+    SERVICE_WIN32_OWN_PROCESS = (16),
+    SERVICE_WIN32_SHARE_PROCESS = (32),
+    SERVICE_KERNEL_DRIVER = (1),
+    SERVICE_FILE_SYSTEM_DRIVER = (2),
+    SERVICE_INTERACTIVE_PROCESS = (256),
+    SERVICE_BOOT_START = (0),
+    SERVICE_SYSTEM_START = (1),
+    SERVICE_AUTO_START = (2),
+    SERVICE_DEMAND_START = (3),
+    SERVICE_DISABLED = (4),
+    SERVICE_STOPPED = (1),
+    SERVICE_START_PENDING = (2),
+    SERVICE_STOP_PENDING = (3),
+    SERVICE_RUNNING = (4),
+    SERVICE_CONTINUE_PENDING = (5),
+    SERVICE_PAUSE_PENDING = (6),
+    SERVICE_PAUSED = (7),
+    SERVICE_ACCEPT_STOP = (1),
+    SERVICE_ACCEPT_PAUSE_CONTINUE = (2),
+    SERVICE_ACCEPT_SHUTDOWN = (4),
+    BST_CHECKED = (1),
+    BST_INDETERMINATE = (2),
+    BST_UNCHECKED = (0),
+    BST_FOCUS = (8),
+    BST_PUSHED = (4),
+    MF_BYCOMMAND = (0),
+    MF_BYPOSITION = (0x400),
+    MF_CHECKED = (0x8),
+    MF_UNCHECKED = (0),
+    MF_HILITE = (0x80),
+    MF_UNHILITE = (0),
+    CWP_ALL = (0),
+    CWP_SKIPINVISIBLE = (1),
+    CWP_SKIPDISABLED = (2),
+    CWP_SKIPTRANSPARENT = (4),
+    CE_BREAK = (16),
+    CE_DNS = (2048),
+    CE_FRAME = (8),
+    CE_IOE = (1024),
+    CE_MODE = (32768),
+    CE_OOP = (4096),
+    CE_OVERRUN = (2),
+    CE_PTO = (512),
+    CE_RXOVER = (1),
+    CE_RXPARITY = (4),
+    CE_TXFULL = (256),
+    RGN_AND = (1),
+    RGN_COPY = (5),
+    RGN_DIFF = (4),
+    RGN_OR = (2),
+    RGN_XOR = (3),
+    NULLREGION = (1),
+    SIMPLEREGION = (2),
+    COMPLEXREGION = (3),
+    ERROR = (0),
+    CDERR_DIALOGFAILURE = (0xffff),
+    CDERR_FINDRESFAILURE = (6),
+    CDERR_INITIALIZATION = (2),
+    CDERR_LOADRESFAILURE = (7),
+    CDERR_LOADSTRFAILURE = (5),
+    CDERR_LOCKRESFAILURE = (8),
+    CDERR_MEMALLOCFAILURE = (9),
+    CDERR_MEMLOCKFAILURE = (10),
+    CDERR_NOHINSTANCE = (4),
+    CDERR_NOHOOK = (11),
+    CDERR_NOTEMPLATE = (3),
+    CDERR_REGISTERMSGFAIL = (12),
+    CDERR_STRUCTSIZE = (1),
+    PDERR_CREATEICFAILURE = (0x1000)+(10),
+    PDERR_DEFAULTDIFFERENT = (0x1000)+(12),
+    PDERR_DNDMMISMATCH = (0x1000)+(9),
+    PDERR_GETDEVMODEFAIL = (0x1000)+(5),
+    PDERR_INITFAILURE = (0x1000)+(6),
+    PDERR_LOADDRVFAILURE = (0x1000)+(4),
+    PDERR_NODEFAULTPRN = (0x1000)+(8),
+    PDERR_NODEVICES = (0x1000)+(7),
+    PDERR_PARSEFAILURE = (0x1000)+(2),
+    PDERR_PRINTERNOTFOUND = (0x1000)+(11),
+    PDERR_RETDEFFAILURE = (0x1000)+(3),
+    PDERR_SETUPFAILURE = (0x1000)+(1),
+    CFERR_MAXLESSTHANMIN = (0x2000)+(2),
+    CFERR_NOFONTS = (0x2000)+(1),
+    FNERR_BUFFERTOOSMALL = (0x3000)+(3),
+    FNERR_INVALIDFILENAME = (0x3000)+(2),
+    FNERR_SUBCLASSFAILURE = (0x3000)+(1),
+    FRERR_BUFFERLENGTHZERO = (0x4000)+(1),
+    LOCALE_SYSTEM_DEFAULT = (0x800),
+    LOCALE_USER_DEFAULT = (0x400),
+    NORM_IGNORECASE = (1),
+    NORM_IGNOREKANATYPE = (65536),
+    NORM_IGNORENONSPACE = (2),
+    NORM_IGNORESYMBOLS = (4),
+    NORM_IGNOREWIDTH = (131072),
+    SORT_STRINGSORT = (4096),
+    LCMAP_BYTEREV = (2048),
+    LCMAP_FULLWIDTH = (8388608),
+    LCMAP_HALFWIDTH = (4194304),
+    LCMAP_HIRAGANA = (1048576),
+    LCMAP_KATAKANA = (2097152),
+    LCMAP_LOWERCASE = (256),
+    LCMAP_SORTKEY = (1024),
+    LCMAP_UPPERCASE = (512),
+    DBG_CONTINUE = (0x10002),
+    DBG_CONTROL_BREAK = (0x40010008),
+    DBG_CONTROL_C = (0x40010005),
+    DBG_EXCEPTION_NOT_HANDLED = (0x80010001),
+    DBG_TERMINATE_THREAD = (0x40010003),
+    DBG_TERMINATE_PROCESS = (0x40010004),
+    SERVICE_CONTROL_STOP = (1),
+    SERVICE_CONTROL_PAUSE = (2),
+    SERVICE_CONTROL_CONTINUE = (3),
+    SERVICE_CONTROL_INTERROGATE = (4),
+    SERVICE_CONTROL_SHUTDOWN = (5),
+    IMAGE_BITMAP = (0),
+    IMAGE_CURSOR = (2),
+    IMAGE_ENHMETAFILE = (1),
+    IMAGE_ICON = (1),
+    LR_COPYDELETEORG = (8),
+    LR_COPYRETURNORG = (4),
+    LR_MONOCHROME = (1),
+    LR_CREATEDIBSECTION = (8192),
+    LR_DEFAULTSIZE = (64),
+    DF_ALLOWOTHERACCOUNTHOOK = (0x1),
+    DESKTOP_CREATEMENU = (0x4),
+    DESKTOP_CREATEWINDOW = (0x2),
+    DESKTOP_ENUMERATE = (0x40),
+    DESKTOP_HOOKCONTROL = (0x8),
+    DESKTOP_JOURNALPLAYBACK = (0x20),
+    DESKTOP_JOURNALRECORD = (0x10),
+    DESKTOP_READOBJECTS = (0x1),
+    DESKTOP_SWITCHDESKTOP = (0x100),
+    DESKTOP_WRITEOBJECTS = (0x80),
+    WSF_VISIBLE = (0x1),
+    CBM_INIT = (0x4),
+    DIB_PAL_COLORS = (1),
+    DIB_RGB_COLORS = (0),
+    GENERIC_READ = (0x80000000),
+    GENERIC_WRITE = (0x40000000),
+    GENERIC_EXECUTE = (0x20000000),
+    FILE_READ_DATA = (0x0001),
+    FILE_LIST_DIRECTORY = (0x0001),
+    FILE_WRITE_DATA = (0x0002),
+    FILE_ADD_FILE = (0x0002),
+    FILE_APPEND_DATA = (0x0004),
+    FILE_ADD_SUBDIRECTORY = (0x0004),
+    FILE_CREATE_PIPE_INSTANCE = (0x0004),
+    FILE_READ_EA = (0x0008),
+    FILE_READ_PROPERTIES = (FILE_READ_EA),
+    FILE_WRITE_EA = (0x0010),
+    FILE_WRITE_PROPERTIES = (FILE_WRITE_EA),
+    FILE_EXECUTE = (0x0020),
+    FILE_TRAVERSE = (0x0020),
+    FILE_DELETE_CHILD = (0x0040),
+    FILE_READ_ATTRIBUTES = (0x0080),
+    FILE_WRITE_ATTRIBUTES = (0x0100),
+    FILE_SHARE_DELETE = (4),
+    FILE_SHARE_READ = (1),
+    FILE_SHARE_WRITE = (2),
+    CONSOLE_TEXTMODE_BUFFER = (1),
+    CREATE_NEW = (1),
+    CREATE_ALWAYS = (2),
+    OPEN_EXISTING = (3),
+    OPEN_ALWAYS = (4),
+    TRUNCATE_EXISTING = (5),
+    INVALID_FILE_ATTRIBUTE = (-1),
+    FILE_ATTRIBUTE_ARCHIVE = (32),
+    FILE_ATTRIBUTE_COMPRESSED = (2048),
+    FILE_ATTRIBUTE_NORMAL = (128),
+    FILE_ATTRIBUTE_DIRECTORY = (16),
+    FILE_ATTRIBUTE_HIDDEN = (2),
+    FILE_ATTRIBUTE_READONLY = (1),
+    FILE_ATTRIBUTE_SYSTEM = (4),
+    FILE_ATTRIBUTE_TEMPORARY = (256),
+    FILE_FLAG_WRITE_THROUGH = (2147483648),
+    FILE_FLAG_OVERLAPPED = (1073741824),
+    FILE_FLAG_NO_BUFFERING = (536870912),
+    FILE_FLAG_RANDOM_ACCESS = (268435456),
+    FILE_FLAG_SEQUENTIAL_SCAN = (134217728),
+    FILE_FLAG_DELETE_ON_CLOSE = (67108864),
+    FILE_FLAG_BACKUP_SEMANTICS = (33554432),
+    FILE_FLAG_POSIX_SEMANTICS = (16777216),
+    SECURITY_ANONYMOUS = (0),
+    SECURITY_IDENTIFICATION = (65536),
+    SECURITY_IMPERSONATION = (131072),
+    SECURITY_DELEGATION = (196608),
+    SECURITY___FILE___TRACKING = (262144),
+    SECURITY_EFFECTIVE_ONLY = (524288),
+    SECURITY_SQOS_PRESENT = (1048576),
+    SEC_COMMIT = (134217728),
+    SEC_IMAGE = (16777216),
+    SEC_NOCACHE = (268435456),
+    SEC_RESERVE = (67108864),
+    PAGE_READONLY = (2),
+    PAGE_READWRITE = (4),
+    PAGE_WRITECOPY = (8),
+    PAGE_EXECUTE = (16),
+    PAGE_EXECUTE_READ = (32),
+    PAGE_EXECUTE_READWRITE = (64),
+    PAGE_EXECUTE_WRITECOPY = (128),
+    PAGE_GUARD = (256),
+    PAGE_NOACCESS = (1),
+    PAGE_NOCACHE = (512),
+    MEM_COMMIT = (4096),
+    MEM_FREE = (65536),
+    MEM_RESERVE = (8192),
+    MEM_IMAGE = (16777216),
+    MEM_MAPPED = (262144),
+    MEM_PRIVATE = (131072),
+    MEM_DECOMMIT = (16384),
+    MEM_RELEASE = (32768),
+    MEM_TOP_DOWN = (1048576),
+    EXCEPTION_GUARD_PAGE = (0x80000001),
+    SECTION_EXTEND_SIZE = (0x10),
+    SECTION_MAP_READ = (0x4),
+    SECTION_MAP_WRITE = (0x2),
+    SECTION_QUERY = (0x1),
+    SECTION_ALL_ACCESS = (0xf001f),
+    FW_DONTCARE = (0),
+    FW_THIN = (100),
+    FW_EXTRALIGHT = (200),
+    FW_LIGHT = (300),
+    FW_NORMAL = (400),
+    FW_REGULAR = (FW_NORMAL),
+    FW_MEDIUM = (500),
+    FW_SEMIBOLD = (600),
+    FW_BOLD = (700),
+    FW_EXTRABOLD = (800),
+    FW_HEAVY = (900),
+    ANSI_CHARSET = (0),
+    DEFAULT_CHARSET = (1),
+    SYMBOL_CHARSET = (2),
+    SHIFTJIS_CHARSET = (128),
+    HANGEUL_CHARSET = (129),
+    GB2312_CHARSET = (134),
+    CHINESEBIG5_CHARSET = (136),
+    GREEK_CHARSET = (161),
+    TURKISH_CHARSET = (162),
+    HEBREW_CHARSET = (177),
+    ARABIC_CHARSET = (178),
+    BALTIC_CHARSET = (186),
+    RUSSIAN_CHARSET = (204),
+    THAI_CHARSET = (222),
+    EASTEUROPE_CHARSET = (238),
+    OEM_CHARSET = (255),
+    OUT_DEFAULT_PRECIS = (0),
+    OUT_STRING_PRECIS = (1),
+    OUT_CHARACTER_PRECIS = (2),
+    OUT_STROKE_PRECIS = (3),
+    OUT_TT_PRECIS = (4),
+    OUT_DEVICE_PRECIS = (5),
+    OUT_RASTER_PRECIS = (6),
+    OUT_TT_ONLY_PRECIS = (7),
+    OUT_OUTLINE_PRECIS = (8),
+    CLIP_DEFAULT_PRECIS = (0),
+    CLIP_CHARACTER_PRECIS = (1),
+    CLIP_STROKE_PRECIS = (2),
+    CLIP_MASK = (15),
+    CLIP_LH_ANGLES = (16),
+    CLIP_TT_ALWAYS = (32),
+    CLIP_EMBEDDED = (128),
+    DEFAULT_QUALITY = (0),
+    DRAFT_QUALITY = (1),
+    PROOF_QUALITY = (2),
+    DEFAULT_PITCH = (0),
+    FIXED_PITCH = (1),
+    VARIABLE_PITCH = (2),
+    FF_DECORATIVE = (80),
+    FF_DONTCARE = (0),
+    FF_MODERN = (48),
+    FF_ROMAN = (16),
+    FF_SCRIPT = (64),
+    FF_SWISS = (32),
+    HS_BDIAGONAL = (3),
+    HS_CROSS = (4),
+    HS_DIAGCROSS = (5),
+    HS_FDIAGONAL = (2),
+    HS_HORIZONTAL = (0),
+    HS_VERTICAL = (1),
+    LR_DEFAULTCOLOR = (0),
+    LR_LOADREALSIZE = (128),
+    MAILSLOT_WAIT_FOREVER = (0xffffffff),
+    MAILSLOT_NO_MESSAGE = (0xffffffff),
+    CMB_MASKED = (2),
+    PIPE_ACCESS_DUPLEX = (3),
+    PIPE_ACCESS_INBOUND = (1),
+    PIPE_ACCESS_OUTBOUND = (2),
+    WRITE_DAC = (0x40000),
+    WRITE_OWNER = (0x80000),
+    ACCESS_SYSTEM_SECURITY = (0x1000000),
+    PIPE_TYPE_BYTE = (0),
+    PIPE_TYPE_MESSAGE = (4),
+    PIPE_READMODE_BYTE = (0),
+    PIPE_READMODE_MESSAGE = (2),
+    PIPE_WAIT = (0),
+    PIPE_NOWAIT = (1),
+    PS_GEOMETRIC = (65536),
+    PS_COSMETIC = (0),
+    PS_ALTERNATE = (8),
+    PS_SOLID = (0),
+    PS_DASH = (1),
+    PS_DOT = (2),
+    PS_DASHDOT = (3),
+    PS_DASHDOTDOT = (4),
+    PS_NULL = (5),
+    PS_USERSTYLE = (7),
+    PS_INSIDEFRAME = (6),
+    PS_ENDCAP_ROUND = (0),
+    PS_ENDCAP_SQUARE = (256),
+    PS_ENDCAP_FLAT = (512),
+    PS_JOIN_BEVEL = (4096),
+    PS_JOIN_MITER = (8192),
+    PS_JOIN_ROUND = (0),
+    PS_STYLE_MASK = (15),
+    PS_ENDCAP_MASK = (3840),
+    PS_TYPE_MASK = (983040),
+    ALTERNATE = (1),
+    WINDING = (2),
+    CREATE_DEFAULT_ERROR_MODE = (67108864),
+    CREATE_NEW_CONSOLE = (16),
+    CREATE_NEW_PROCESS_GROUP = (512),
+    CREATE_NO_WINDOW = (0x8000000),
+    CREATE_SEPARATE_WOW_VDM = (2048),
+    CREATE_SUSPENDED = (4),
+    CREATE_UNICODE_ENVIRONMENT = (1024),
+    DEBUG_PROCESS = (1),
+    DEBUG_ONLY_THIS_PROCESS = (2),
+    DETACHED_PROCESS = (8),
+    HIGH_PRIORITY_CLASS = (128),
+    IDLE_PRIORITY_CLASS = (64),
+    NORMAL_PRIORITY_CLASS = (32),
+    REALTIME_PRIORITY_CLASS = (256),
+    SERVICE_ALL_ACCESS = (0xf01ff),
+    SERVICE_CHANGE_CONFIG = (2),
+    SERVICE_ENUMERATE_DEPENDENTS = (8),
+    SERVICE_INTERROGATE = (128),
+    SERVICE_PAUSE_CONTINUE = (64),
+    SERVICE_QUERY_CONFIG = (1),
+    SERVICE_QUERY_STATUS = (4),
+    SERVICE_START = (16),
+    SERVICE_STOP = (32),
+    SERVICE_USER_DEFINED_CONTROL = (256),
+    SERVICE_DELETE = (0x10000),
+    SERVICE_READ_CONTROL = (0x20000),
+    SERVICE_GENERIC_EXECUTE = (0x20000000),
+    SERVICE_ERROR_IGNORE = (0),
+    SERVICE_ERROR_NORMAL = (1),
+    SERVICE_ERROR_SEVERE = (2),
+    SERVICE_ERROR_CRITICAL = (3),
+    TAPE_FIXED_PARTITIONS = (0),
+    TAPE_INITIATOR_PARTITIONS = (0x2),
+    TAPE_SELECT_PARTITIONS = (0x1),
+    TAPE_FILEMARKS = (0x1),
+    TAPE_LONG_FILEMARKS = (0x3),
+    TAPE_SETMARKS = (0),
+    TAPE_SHORT_FILEMARKS = (0x2),
+    CW_USEDEFAULT = (0x80000000),
+    WS_BORDER = (0x800000),
+    WS_CAPTION = (0xc00000),
+    WS_CHILD = (0x40000000),
+    WS_CHILDWINDOW = (0x40000000),
+    WS_CLIPCHILDREN = (0x2000000),
+    WS_CLIPSIBLINGS = (0x4000000),
+    WS_DISABLED = (0x8000000),
+    WS_DLGFRAME = (0x400000),
+    WS_GROUP = (0x20000),
+    WS_HSCROLL = (0x100000),
+    WS_ICONIC = (0x20000000),
+    WS_MAXIMIZE = (0x1000000),
+    WS_MAXIMIZEBOX = (0x10000),
+    WS_MINIMIZE = (0x20000000),
+    WS_MINIMIZEBOX = (0x20000),
+    WS_OVERLAPPED = (0),
+    WS_OVERLAPPEDWINDOW = (0xcf0000),
+    WS_POPUP = (0x80000000),
+    WS_POPUPWINDOW = (0x80880000),
+    WS_SIZEBOX = (0x40000),
+    WS_SYSMENU = (0x80000),
+    WS_TABSTOP = (0x10000),
+    WS_THICKFRAME = (0x40000),
+    WS_TILED = (0),
+    WS_TILEDWINDOW = (0xcf0000),
+    WS_VISIBLE = (0x10000000),
+    WS_VSCROLL = (0x200000),
+    MDIS_ALLCHILDSTYLES = (0x1),
+    BS_3STATE = (0x5),
+    BS_AUTO3STATE = (0x6),
+    BS_AUTOCHECKBOX = (0x3),
+    BS_AUTORADIOBUTTON = (0x9),
+    BS_BITMAP = (0x80),
+    BS_BOTTOM = (0x800),
+    BS_CENTER = (0x300),
+    BS_CHECKBOX = (0x2),
+    BS_DEFPUSHBUTTON = (0x1),
+    BS_GROUPBOX = (0x7),
+    BS_ICON = (0x40),
+    BS_LEFT = (0x100),
+    BS_LEFTTEXT = (0x20),
+    BS_MULTILINE = (0x2000),
+    BS_NOTIFY = (0x4000),
+    BS_OWNERDRAW = (0xb),
+    BS_PUSHBUTTON = (0),
+    BS_PUSHLIKE = (0x1000),
+    BS_RADIOBUTTON = (0x4),
+    BS_RIGHT = (0x200),
+    BS_RIGHTBUTTON = (0x20),
+    BS_TEXT = (0),
+    BS_TOP = (0x400),
+    BS_USERBUTTON = (0x8),
+    BS_VCENTER = (0xc00),
+    CBS_AUTOHSCROLL = (0x40),
+    CBS_DISABLENOSCROLL = (0x800),
+    CBS_DROPDOWN = (0x2),
+    CBS_DROPDOWNLIST = (0x3),
+    CBS_HASSTRINGS = (0x200),
+    CBS_LOWERCASE = (0x4000),
+    CBS_NOINTEGRALHEIGHT = (0x400),
+    CBS_OEMCONVERT = (0x80),
+    CBS_OWNERDRAWFIXED = (0x10),
+    CBS_OWNERDRAWVARIABLE = (0x20),
+    CBS_SIMPLE = (0x1),
+    CBS_SORT = (0x100),
+    CBS_UPPERCASE = (0x2000),
+    ES_AUTOHSCROLL = (0x80),
+    ES_AUTOVSCROLL = (0x40),
+    ES_CENTER = (0x1),
+    ES_LEFT = (0),
+    ES_LOWERCASE = (0x10),
+    ES_MULTILINE = (0x4),
+    ES_NOHIDESEL = (0x100),
+    ES_NUMBER = (0x2000),
+    ES_OEMCONVERT = (0x400),
+    ES_PASSWORD = (0x20),
+    ES_READONLY = (0x800),
+    ES_RIGHT = (0x2),
+    ES_UPPERCASE = (0x8),
+    ES_WANTRETURN = (0x1000),
+    LBS_DISABLENOSCROLL = (0x1000),
+    LBS_EXTENDEDSEL = (0x800),
+    LBS_HASSTRINGS = (0x40),
+    LBS_MULTICOLUMN = (0x200),
+    LBS_MULTIPLESEL = (0x8),
+    LBS_NODATA = (0x2000),
+    LBS_NOINTEGRALHEIGHT = (0x100),
+    LBS_NOREDRAW = (0x4),
+    LBS_NOSEL = (0x4000),
+    LBS_NOTIFY = (0x1),
+    LBS_OWNERDRAWFIXED = (0x10),
+    LBS_OWNERDRAWVARIABLE = (0x20),
+    LBS_SORT = (0x2),
+    LBS_STANDARD = (0xa00003),
+    LBS_USETABSTOPS = (0x80),
+    LBS_WANTKEYBOARDINPUT = (0x400),
+    SBS_BOTTOMALIGN = (0x4),
+    SBS_HORZ = (0),
+    SBS_LEFTALIGN = (0x2),
+    SBS_RIGHTALIGN = (0x4),
+    SBS_SIZEBOX = (0x8),
+    SBS_SIZEBOXBOTTOMRIGHTALIGN = (0x4),
+    SBS_SIZEBOXTOPLEFTALIGN = (0x2),
+    SBS_SIZEGRIP = (0x10),
+    SBS_TOPALIGN = (0x2),
+    SBS_VERT = (0x1),
+    SS_BITMAP = (0xe),
+    SS_BLACKFRAME = (0x7),
+    SS_BLACKRECT = (0x4),
+    SS_CENTER = (0x1),
+    SS_CENTERIMAGE = (0x200),
+    SS_ENHMETAFILE = (0xf),
+    SS_ETCHEDFRAME = (0x12),
+    SS_ETCHEDHORZ = (0x10),
+    SS_ETCHEDVERT = (0x11),
+    SS_GRAYFRAME = (0x8),
+    SS_GRAYRECT = (0x5),
+    SS_ICON = (0x3),
+    SS_LEFT = (0),
+    SS_LEFTNOWORDWRAP = (0xc),
+    SS_NOPREFIX = (0x80),
+    SS_NOTIFY = (0x100),
+    SS_OWNERDRAW = (0xd),
+    SS_REALSIZEIMAGE = (0x800),
+    SS_RIGHT = (0x2),
+    SS_RIGHTJUST = (0x400),
+    SS_SIMPLE = (0xb),
+    SS_SUNKEN = (0x1000),
+    SS_USERITEM = (0xa),
+    SS_WHITEFRAME = (0x9),
+    SS_WHITERECT = (0x6),
+    DS_3DLOOK = (0x4),
+    DS_ABSALIGN = (0x1),
+    DS_CENTER = (0x800),
+    DS_CENTERMOUSE = (0x1000),
+    DS___FILE__HELP = (0x2000),
+    DS_CONTROL = (0x400),
+    DS_FIXEDSYS = (0x8),
+    DS_LOCALEDIT = (0x20),
+    DS_MODALFRAME = (0x80),
+    DS_NOFAILCREATE = (0x10),
+    DS_NOIDLEMSG = (0x100),
+    DS_SETFONT = (0x40),
+    DS_SETFOREGROUND = (0x200),
+    DS_SYSMODAL = (0x2),
+    WS_EX_ACCEPTFILES = (0x10),
+    WS_EX_APPWINDOW = (0x40000),
+    WS_EX_CLIENTEDGE = (0x200),
+    WS_EX___FILE__HELP = (0x400),
+    WS_EX_CONTROLPARENT = (0x10000),
+    WS_EX_DLGMODALFRAME = (0x1),
+    WS_EX_LEFT = (0),
+    WS_EX_LEFTSCROLLBAR = (0x4000),
+    WS_EX_LTRREADING = (0),
+    WS_EX_MDICHILD = (0x40),
+    WS_EX_NOPARENTNOTIFY = (0x4),
+    WS_EX_OVERLAPPEDWINDOW = (0x300),
+    WS_EX_PALETTEWINDOW = (0x188),
+    WS_EX_RIGHT = (0x1000),
+    WS_EX_RIGHTSCROLLBAR = (0),
+    WS_EX_RTLREADING = (0x2000),
+    WS_EX_STATICEDGE = (0x20000),
+    WS_EX_TOOLWINDOW = (0x80),
+    WS_EX_TOPMOST = (0x8),
+    WS_EX_TRANSPARENT = (0x20),
+    WS_EX_WINDOWEDGE = (0x100),
+    WINSTA_ACCESSCLIPBOARD = (0x4),
+    WINSTA_ACCESSGLOBALATOMS = (0x20),
+    WINSTA_CREATEDESKTOP = (0x8),
+    WINSTA_ENUMDESKTOPS = (0x1),
+    WINSTA_ENUMERATE = (0x100),
+    WINSTA_EXITWINDOWS = (0x40),
+    WINSTA_READATTRIBUTES = (0x2),
+    WINSTA_READSCREEN = (0x200),
+    WINSTA_WRITEATTRIBUTES = (0x10),
+    WH_CALLWNDPROC = (4),
+    WH_CALLWNDPROCRET = (12),
+    WH_CBT = (5),
+    WH_DEBUG = (9),
+    WH_GETMESSAGE = (3),
+    WH_JOURNALPLAYBACK = (1),
+    WH_JOURNALRECORD = (0),
+    WH_KEYBOARD = (2),
+    WH_MOUSE = (7),
+    WH_MSGFILTER = -((1)),
+    WH_SHELL = (10),
+    WH_SYSMSGFILTER = (6),
+    WH_FOREGROUNDIDLE = (11),
+    DDD_RAW_TARGET_PATH = (1),
+    DDD_REMOVE_DEFINITION = (2),
+    DDD_EXACT_MATCH_ON_REMOVE = (4),
+    DC_BINNAMES = (12),
+    DC_BINS = (6),
+    DC_COPIES = (18),
+    DC_DRIVER = (11),
+    DC_DATATYPE_PRODUCED = (21),
+    DC_DUPLEX = (7),
+    DC_EMF_COMPLIANT = (20),
+    DC_ENUMRESOLUTIONS = (13),
+    DC_EXTRA = (9),
+    DC_FIELDS = (1),
+    DC_FILEDEPENDENCIES = (14),
+    DC_MAXEXTENT = (5),
+    DC_MINEXTENT = (4),
+    DC_ORIENTATION = (17),
+    DC_PAPERNAMES = (16),
+    DC_PAPERS = (2),
+    DC_PAPERSIZE = (3),
+    DC_SIZE = (8),
+    DC_TRUETYPE = (15),
+    DCTT_BITMAP = (0x1),
+    DCTT_DOWNLOAD = (0x2),
+    DCTT_SUBDEV = (0x4),
+    DC_VERSION = (10),
+    DC_BINADJUST = (19),
+    DDL_ARCHIVE = (32),
+    DDL_DIRECTORY = (16),
+    DDL_DRIVES = (16384),
+    DDL_EXCLUSIVE = (32768),
+    DDL_HIDDEN = (2),
+    DDL_READONLY = (1),
+    DDL_READWRITE = (0),
+    DDL_SYSTEM = (4),
+    DDL_POSTMSGS = (8192),
+    DLL_PROCESS_ATTACH = (1),
+    DLL_THREAD_ATTACH = (2),
+    DLL_PROCESS_DETACH = (0),
+    DLL_THREAD_DETACH = (3),
+    DM_IN_BUFFER = (8),
+    DM_MODIFY = (8),
+    DM_IN_PROMPT = (4),
+    DM_PROMPT = (4),
+    DM_OUT_BUFFER = (2),
+    DM_COPY = (2),
+    DM_UPDATE = (1),
+    IDANI_OPEN = (1),
+    IDANI_CLOSE = (2),
+    DC_ACTIVE = (1),
+    DC_SMALLCAP = (2),
+    BDR_RAISEDINNER = (4),
+    BDR_SUNKENINNER = (8),
+    BDR_RAISEDOUTER = (1),
+    BDR_SUNKENOUTER = (1),
+    EDGE_BUMP = (9),
+    EDGE_ETCHED = (6),
+    EDGE_RAISED = (5),
+    EDGE_SUNKEN = (10),
+    BF_ADJUST = (8192),
+    BF_BOTTOM = (8),
+    BF_BOTTOMLEFT = (9),
+    BF_BOTTOMRIGHT = (12),
+    BF_DIAGONAL = (16),
+    BF_DIAGONAL_ENDBOTTOMLEFT = (25),
+    BF_DIAGONAL_ENDBOTTOMRIGHT = (28),
+    BF_DIAGONAL_ENDTOPLEFT = (19),
+    BF_DIAGONAL_ENDTOPRIGHT = (22),
+    BF_FLAT = (16384),
+    BF_LEFT = (1),
+    BF_MIDDLE = (2048),
+    BF_MONO = (32768),
+    BF_RECT = (15),
+    BF_RIGHT = (4),
+    BF_SOFT = (4096),
+    BF_TOP = (2),
+    BF_TOPLEFT = (3),
+    BF_TOPRIGHT = (6),
+    DFC_BUTTON = (4),
+    DFC_CAPTION = (1),
+    DFC_MENU = (2),
+    DFC_SCROLL = (3),
+    DFCS_BUTTON3STATE = (8),
+    DFCS_BUTTONCHECK = (0),
+    DFCS_BUTTONPUSH = (16),
+    DFCS_BUTTONRADIO = (4),
+    DFCS_BUTTONRADIOIMAGE = (1),
+    DFCS_BUTTONRADIOMASK = (2),
+    DFCS_CAPTIONCLOSE = (0),
+    DFCS_CAPTIONHELP = (4),
+    DFCS_CAPTIONMAX = (2),
+    DFCS_CAPTIONMIN = (1),
+    DFCS_CAPTIONRESTORE = (3),
+    DFCS_MENUARROW = (0),
+    DFCS_MENUBULLET = (2),
+    DFCS_MENUCHECK = (1),
+    DFCS_SCROLLCOMBOBOX = (5),
+    DFCS_SCROLLDOWN = (1),
+    DFCS_SCROLLLEFT = (2),
+    DFCS_SCROLLRIGHT = (3),
+    DFCS_SCROLLSIZEGRIP = (8),
+    DFCS_SCROLLUP = (0),
+    DFCS_ADJUSTRECT = (8192),
+    DFCS_CHECKED = (1024),
+    DFCS_FLAT = (16384),
+    DFCS_INACTIVE = (256),
+    DFCS_MONO = (32768),
+    DFCS_PUSHED = (512),
+    DI_COMPAT = (4),
+    DI_DEFAULTSIZE = (8),
+    DI_IMAGE = (2),
+    DI_MASK = (1),
+    DI_NORMAL = (3),
+    DST_BITMAP = (4),
+    DST_COMPLEX = (0),
+    DST_ICON = (3),
+    DST_PREFIXTEXT = (2),
+    DST_TEXT = (1),
+    DSS_NORMAL = (0),
+    DSS_UNION = (16),
+    DSS_DISABLED = (32),
+    DSS_MONO = (128),
+    SBT_NOBORDERS = (256),
+    SBT_OWNERDRAW = (4096),
+    SBT_POPOUT = (512),
+    SBT_RTLREADING = (1024),
+    DT_BOTTOM = (8),
+    DT_CALCRECT = (1024),
+    DT_CENTER = (1),
+    DT_EDITCONTROL = (8192),
+    DT_END_ELLIPSIS = (32768),
+    DT_PATH_ELLIPSIS = (16384),
+    DT_EXPANDTABS = (64),
+    DT_EXTERNALLEADING = (512),
+    DT_LEFT = (0),
+    DT_MODIFYSTRING = (65536),
+    DT_NOCLIP = (256),
+    DT_NOPREFIX = (2048),
+    DT_RIGHT = (2),
+    DT_RTLREADING = (131072),
+    DT_SINGLELINE = (32),
+    DT_TABSTOP = (128),
+    DT_TOP = (0),
+    DT_VCENTER = (4),
+    DT_WORDBREAK = (16),
+    DT_INTERNAL = (4096),
+    DUPLICATE_CLOSE_SOURCE = (1),
+    DUPLICATE_SAME_ACCESS = (2),
+    FILE_MAP_ALL_ACCESS = (0xf001f),
+    FILE_MAP_READ = (4),
+    FILE_MAP_WRITE = (2),
+    FILE_MAP_COPY = (1),
+    FILE_MAP_EXECUTE = (0x20),
+    MUTEX_ALL_ACCESS = (0x1f0001),
+    MUTEX_MODIFY_STATE = (1),
+    SYNCHRONIZE = (0x100000),
+    SEMAPHORE_ALL_ACCESS = (0x1f0003),
+    SEMAPHORE_MODIFY_STATE = (2),
+    EVENT_ALL_ACCESS = (0x1f0003),
+    EVENT_MODIFY_STATE = (2),
+    KEY_ALL_ACCESS = (0xf003f),
+    KEY_CREATE_LINK = (32),
+    KEY_CREATE_SUB_KEY = (4),
+    KEY_ENUMERATE_SUB_KEYS = (8),
+    KEY_EXECUTE = (0x20019),
+    KEY_NOTIFY = (16),
+    KEY_QUERY_VALUE = (1),
+    KEY_READ = (0x20019),
+    KEY_SET_VALUE = (2),
+    KEY_WRITE = (0x20006),
+    PROCESS_ALL_ACCESS = (0x1f0fff),
+    PROCESS_CREATE_PROCESS = (128),
+    PROCESS_CREATE_THREAD = (2),
+    PROCESS_DUP_HANDLE = (64),
+    PROCESS_QUERY_INFORMATION = (1024),
+    PROCESS_SET_INFORMATION = (512),
+    PROCESS_TERMINATE = (1),
+    PROCESS_VM_OPERATION = (8),
+    PROCESS_VM_READ = (16),
+    PROCESS_VM_WRITE = (32),
+    THREAD_ALL_ACCESS = (0x1f03ff),
+    THREAD_DIRECT_IMPERSONATION = (512),
+    THREAD_GET___FILE__ = (8),
+    THREAD_IMPERSONATE = (256),
+    THREAD_QUERY_INFORMATION = (64),
+    THREAD_SET___FILE__ = (16),
+    THREAD_SET_INFORMATION = (32),
+    THREAD_SET_THREAD_TOKEN = (128),
+    THREAD_SUSPEND_RESUME = (2),
+    THREAD_TERMINATE = (1),
+    WB_ISDELIMITER = (2),
+    WB_LEFT = (0),
+    WB_RIGHT = (1),
+    SB_BOTH = (3),
+    SB_CTL = (2),
+    SB_HORZ = (0),
+    SB_VERT = (1),
+    ESB_DISABLE_BOTH = (3),
+    ESB_DISABLE_DOWN = (2),
+    ESB_DISABLE_LEFT = (1),
+    ESB_DISABLE_LTUP = (1),
+    ESB_DISABLE_RIGHT = (2),
+    ESB_DISABLE_RTDN = (2),
+    ESB_DISABLE_UP = (1),
+    ESB_ENABLE_BOTH = (0),
+    SB_LINEUP = (0),
+    SB_LINEDOWN = (1),
+    SB_LINELEFT = (0),
+    SB_LINERIGHT = (1),
+    SB_PAGEUP = (2),
+    SB_PAGEDOWN = (3),
+    SB_PAGELEFT = (2),
+    SB_PAGERIGHT = (3),
+    SB_THUMBPOSITION = (4),
+    SB_THUMBTRACK = (5),
+    SB_ENDSCROLL = (8),
+    SB_LEFT = (6),
+    SB_RIGHT = (7),
+    SB_BOTTOM = (7),
+    SB_TOP = (6),
+    ENUM_ALL_CALENDARS = -((1)),
+    DATE_SHORTDATE = (1),
+    DATE_LONGDATE = (2),
+    SERVICE_ACTIVE = (1),
+    SERVICE_INACTIVE = (2),
+    DEVICE_FONTTYPE = (2),
+    RASTER_FONTTYPE = (1),
+    TRUETYPE_FONTTYPE = (4),
+    OBJ_BRUSH = (2),
+    OBJ_PEN = (1),
+    OBJ_PAL = (5),
+    OBJ_FONT = (6),
+    OBJ_BITMAP = (7),
+    OBJ_EXTPEN = (11),
+    OBJ_REGION = (8),
+    OBJ_DC = (3),
+    OBJ_MEMDC = (10),
+    OBJ_METAFILE = (9),
+    OBJ_METADC = (4),
+    OBJ_ENHMETAFILE = (13),
+    OBJ_ENHMETADC = (12),
+    SERVICE_WIN32 = (48),
+    SERVICE_DRIVER = (11),
+    CP_INSTALLED = (1),
+    CP_SUPPORTED = (2),
+    LCID_INSTALLED = (1),
+    LCID_SUPPORTED = (2),
+    TAPE_ERASE_LONG = (0x1),
+    TAPE_ERASE_SHORT = (0),
+    SP_ERROR = -((1)),
+    SP_OUTOFDISK = -((4)),
+    SP_OUTOFMEMORY = -((5)),
+    SP_USERABORT = -((3)),
+    PHYSICALWIDTH = (110),
+    PHYSICALHEIGHT = (111),
+    PHYSICALOFFSETX = (112),
+    PHYSICALOFFSETY = (113),
+    SCALINGFACTORX = (114),
+    SCALINGFACTORY = (115),
+    QUERYESCSUPPORT = (8),
+    cABORTDOC = (2),
+    cENDDOC = (11),
+    GETPHYSPAGESIZE = (12),
+    GETPRINTINGOFFSET = (13),
+    GETSCALINGFACTOR = (14),
+    NEWFRAME = (1),
+    NEXTBAND = (3),
+    PASSTHROUGH = (19),
+    cSETABORTPROC = (9),
+    cSTARTDOC = (10),
+    CLRDTR = (6),
+    CLRRTS = (4),
+    SETDTR = (5),
+    SETRTS = (3),
+    SETXOFF = (1),
+    SETXON = (2),
+    SETBREAK = (8),
+    CLRBREAK = (9),
+    EWX_FORCE = (4),
+    EWX_LOGOFF = (0),
+    EWX_POWEROFF = (8),
+    EWX_REBOOT = (2),
+    EWX_SHUTDOWN = (1),
+    FLOODFILLBORDER = (0),
+    FLOODFILLSURFACE = (1),
+    ETO_CLIPPED = (4),
+    ETO_GLYPH_INDEX = (16),
+    ETO_OPAQUE = (2),
+    ETO_RTLREADING = (128),
+    FOREGROUND_BLUE = (1),
+    FOREGROUND_GREEN = (2),
+    FOREGROUND_RED = (4),
+    FOREGROUND_INTENSITY = (8),
+    BACKGROUND_BLUE = (16),
+    BACKGROUND_GREEN = (32),
+    BACKGROUND_RED = (64),
+    BACKGROUND_INTENSITY = (128),
+    FILE_NOTIFY_CHANGE_FILE_NAME = (1),
+    FILE_NOTIFY_CHANGE_DIR_NAME = (2),
+    FILE_NOTIFY_CHANGE_ATTRIBUTES = (4),
+    FILE_NOTIFY_CHANGE_SIZE = (8),
+    FILE_NOTIFY_CHANGE_LAST_WRITE = (16),
+    FILE_NOTIFY_CHANGE_SECURITY = (256),
+    MAP_FOLDCZONE = (16),
+    MAP_FOLDDIGITS = (128),
+    MAP_PRECOMPOSED = (32),
+    MAP_COMPOSITE = (64),
+    HC_ACTION = (0),
+    FORMAT_MESSAGE_ALLOCATE_BUFFER = (256),
+    FORMAT_MESSAGE_IGNORE_INSERTS = (512),
+    FORMAT_MESSAGE_FROM_STRING = (1024),
+    FORMAT_MESSAGE_FROM_HMODULE = (2048),
+    FORMAT_MESSAGE_FROM_SYSTEM = (4096),
+    FORMAT_MESSAGE_ARGUMENT_ARRAY = (8192),
+    FORMAT_MESSAGE_MAX_WIDTH_MASK = (255),
+    GDICOMMENT_WINDOWS_METAFILE = -((2147483647)),
+    GDICOMMENT_BEGINGROUP = (2),
+    GDICOMMENT_ENDGROUP = (3),
+    GDICOMMENT_MULTIFORMATS = (1073741828),
+    GDICOMMENT_IDENTIFIER = (1128875079),
+    CTRL_C_EVENT = (0),
+    CTRL_BREAK_EVENT = (1),
+    CTRL_CLOSE_EVENT = (2),
+    CTRL_LOGOFF_EVENT = (5),
+    CTRL_SHUTDOWN_EVENT = (6),
+    AD_COUNTERCLOCKWISE = (1),
+    AD_CLOCKWISE = (2),
+    SCS_32BIT_BINARY = (0),
+    SCS_DOS_BINARY = (1),
+    SCS_OS216_BINARY = (5),
+    SCS_PIF_BINARY = (3),
+    SCS_POSIX_BINARY = (4),
+    SCS_WOW_BINARY = (2),
+    DCB_DISABLE = (8),
+    DCB_ENABLE = (4),
+    DCB_RESET = (1),
+    DCB_SET = (3),
+    DCB_ACCUMULATE = (2),
+    GCP_DBCS = (1),
+    GCP_ERROR = (0x8000),
+    GCP_CLASSIN = (0x80000),
+    GCP_DIACRITIC = (256),
+    GCP_DISPLAYZWG = (0x400000),
+    GCP_GLYPHSHAPE = (16),
+    GCP_JUSTIFY = (0x10000),
+    GCP_JUSTIFYIN = (0x200000),
+    GCP_KASHIDA = (1024),
+    GCP_LIGATE = (32),
+    GCP_MAXEXTENT = (0x100000),
+    GCP_NEUTRALOVERRIDE = (0x2000000),
+    GCP_NUMERICOVERRIDE = (0x1000000),
+    GCP_NUMERICSLATIN = (0x4000000),
+    GCP_NUMERICSLOCAL = (0x8000000),
+    GCP_REORDER = (2),
+    GCP_SYMSWAPOFF = (0x800000),
+    GCP_USEKERNING = (8),
+    FLI_GLYPHS = (0x40000),
+    FLI_MASK = (0x103b),
+    GCW_ATOM = -((32)),
+    GCL_CBCLSEXTRA = -((20)),
+    GCL_CBWNDEXTRA = -((18)),
+    GCL_HBRBACKGROUND = -((10)),
+    GCL_HCURSOR = -((12)),
+    GCL_HICON = -((14)),
+    GCL_HICONSM = -((34)),
+    GCL_HMODULE = -((16)),
+    GCL_MENUNAME = -((8)),
+    GCL_STYLE = -((26)),
+    GCL_WNDPROC = -((24)),
+    CF_BITMAP = (2),
+    CF_DIB = (8),
+    CF_PALETTE = (9),
+    CF_ENHMETAFILE = (14),
+    CF_METAFILEPICT = (3),
+    CF_OEMTEXT = (7),
+    CF_TEXT = (1),
+    CF_UNICODETEXT = (13),
+    CF_DIF = (5),
+    CF_DSPBITMAP = (130),
+    CF_DSPENHMETAFILE = (142),
+    CF_DSPMETAFILEPICT = (131),
+    CF_DSPTEXT = (129),
+    CF_GDIOBJFIRST = (768),
+    CF_GDIOBJLAST = (1023),
+    CF_HDROP = (15),
+    CF_LOCALE = (16),
+    CF_OWNERDISPLAY = (128),
+    CF_PENDATA = (10),
+    CF_PRIVATEFIRST = (512),
+    CF_PRIVATELAST = (767),
+    CF_RIFF = (11),
+    CF_SYLK = (4),
+    CF_WAVE = (12),
+    CF_TIFF = (6),
+    EV_BREAK = (64),
+    EV_CTS = (8),
+    EV_DSR = (16),
+    EV_ERR = (128),
+    EV_EVENT1 = (2048),
+    EV_EVENT2 = (4096),
+    EV_PERR = (512),
+    EV_RING = (256),
+    EV_RLSD = (32),
+    EV_RX80FULL = (1024),
+    EV_RXCHAR = (1),
+    EV_RXFLAG = (2),
+    EV_TXEMPTY = (4),
+    MS_CTS_ON = (0x10),
+    MS_DSR_ON = (0x20),
+    MS_RING_ON = (0x40),
+    MS_RLSD_ON = (0x80),
+    MAX_COMPUTERNAME_LENGTH = (15),
+    ENABLE_LINE_INPUT = (2),
+    ENABLE_ECHO_INPUT = (4),
+    ENABLE_PROCESSED_INPUT = (1),
+    ENABLE_WINDOW_INPUT = (8),
+    ENABLE_MOUSE_INPUT = (16),
+    ENABLE_PROCESSED_OUTPUT = (1),
+    ENABLE_WRAP_AT_EOL_OUTPUT = (2),
+    CP_ACP = (0),
+    CP_MACCP = (2),
+    CP_OEMCP = (1),
+    CP_UTF8 = 65001,
+    DATE_USE_ALT_CALENDAR = (4),
+    DCX_WINDOW = (0x1),
+    DCX_CACHE = (0x2),
+    DCX_PARENTCLIP = (0x20),
+    DCX_CLIPSIBLINGS = (0x10),
+    DCX_CLIPCHILDREN = (0x8),
+    DCX_NORESETATTRS = (0x4),
+    DCX_LOCKWINDOWUPDATE = (0x400),
+    DCX_EXCLUDERGN = (0x40),
+    DCX_INTERSECTRGN = (0x80),
+    DCX_VALIDATE = (0x200000),
+    DRIVERVERSION = (0),
+    TECHNOLOGY = (2),
+    DT_PLOTTER = (0),
+    DT_RASDISPLAY = (1),
+    DT_RASPRINTER = (2),
+    DT_RASCAMERA = (3),
+    DT_CHARSTREAM = (4),
+    DT_METAFILE = (5),
+    DT_DISPFILE = (6),
+    HORZSIZE = (4),
+    VERTSIZE = (6),
+    HORZRES = (8),
+    VERTRES = (10),
+    LOGPIXELSX = (88),
+    LOGPIXELSY = (90),
+    BITSPIXEL = (12),
+    PLANES = (14),
+    NUMBRUSHES = (16),
+    NUMPENS = (18),
+    NUMFONTS = (22),
+    NUMCOLORS = (24),
+    ASPECTX = (40),
+    ASPECTY = (42),
+    ASPECTXY = (44),
+    PDEVICESIZE = (26),
+    CLIPCAPS = (36),
+    SIZEPALETTE = (104),
+    NUMRESERVED = (106),
+    COLORRES = (108),
+    VREFRESH = (116),
+    DESKTOPHORZRES = (118),
+    DESKTOPVERTRES = (117),
+    BLTALIGNMENT = (119),
+    RASTERCAPS = (38),
+    RC_BANDING = (2),
+    RC_BITBLT = (1),
+    RC_BITMAP64 = (8),
+    RC_DI_BITMAP = (128),
+    RC_DIBTODEV = (512),
+    RC_FLOODFILL = (4096),
+    RC_GDI20_OUTPUT = (16),
+    RC_PALETTE = (256),
+    RC_SCALING = (4),
+    RC_STRETCHBLT = (2048),
+    RC_STRETCHDIB = (8192),
+    CURVECAPS = (28),
+    CC_NONE = (0),
+    CC_CIRCLES = (1),
+    CC_PIE = (2),
+    CC_CHORD = (4),
+    CC_ELLIPSES = (8),
+    CC_WIDE = (16),
+    CC_STYLED = (32),
+    CC_WIDESTYLED = (64),
+    CC_INTERIORS = (128),
+    CC_ROUNDRECT = (256),
+    LINECAPS = (30),
+    LC_NONE = (0),
+    LC_POLYLINE = (2),
+    LC_MARKER = (4),
+    LC_POLYMARKER = (8),
+    LC_WIDE = (16),
+    LC_STYLED = (32),
+    LC_WIDESTYLED = (64),
+    LC_INTERIORS = (128),
+    POLYGONALCAPS = (32),
+    PC_NONE = (0),
+    PC_POLYGON = (1),
+    PC_RECTANGLE = (2),
+    PC_WINDPOLYGON = (4),
+    PC_SCANLINE = (8),
+    PC_WIDE = (16),
+    PC_STYLED = (32),
+    PC_WIDESTYLED = (64),
+    PC_INTERIORS = (128),
+    TEXTCAPS = (34),
+    TC_OP_CHARACTER = (1),
+    TC_OP_STROKE = (2),
+    TC_CP_STROKE = (4),
+    TC_CR_90 = (8),
+    TC_CR_ANY = (16),
+    TC_SF_X_YINDEP = (32),
+    TC_SA_DOUBLE = (64),
+    TC_SA_INTEGER = (128),
+    TC_SA_CONTIN = (256),
+    TC_EA_DOUBLE = (512),
+    TC_IA_ABLE = (1024),
+    TC_UA_ABLE = (2048),
+    TC_SO_ABLE = (4096),
+    TC_RA_ABLE = (8192),
+    TC_VA_ABLE = (16384),
+    TC_RESERVED = (32768),
+    TC_SCROLLBLT = (65536),
+    PC_PATHS = (512),
+    DRIVE_REMOVABLE = (2),
+    DRIVE_FIXED = (3),
+    DRIVE_REMOTE = (4),
+    DRIVE_CDROM = (5),
+    DRIVE_RAMDISK = (6),
+    DRIVE_UNKNOWN = (0),
+    DRIVE_NO_ROOT_DIR = (1),
+    EXCEPTION_ACCESS_VIOLATION = (0xc0000005),
+    EXCEPTION_BREAKPOINT = (0x80000003),
+    EXCEPTION_DATATYPE_MISALIGNMENT = (0x80000002),
+    EXCEPTION_SINGLE_STEP = (0x80000004),
+    EXCEPTION_ARRAY_BOUNDS_EXCEEDED = (0xc000008c),
+    EXCEPTION_FLT_DENORMAL_OPERAND = (0xc000008d),
+    EXCEPTION_FLT_DIVIDE_BY_ZERO = (0xc000008e),
+    EXCEPTION_FLT_INEXACT_RESULT = (0xc000008f),
+    EXCEPTION_FLT_INVALID_OPERATION = (0xc0000090),
+    EXCEPTION_FLT_OVERFLOW = (0xc0000091),
+    EXCEPTION_FLT_STACK_CHECK = (0xc0000092),
+    EXCEPTION_FLT_UNDERFLOW = (0xc0000093),
+    EXCEPTION_INT_DIVIDE_BY_ZERO = (0xc0000094),
+    EXCEPTION_INT_OVERFLOW = (0xc0000095),
+    EXCEPTION_INVALID_HANDLE = (0xc0000008),
+    EXCEPTION_PRIV_INSTRUCTION = (0xc0000096),
+    EXCEPTION_NONCONTINUABLE_EXCEPTION = (0xc0000025),
+    EXCEPTION_NONCONTINUABLE = (0x1),
+    EXCEPTION_STACK_OVERFLOW = (0xc00000fd),
+    EXCEPTION_INVALID_DISPOSITION = (0xc0000026),
+    FILE_TYPE_UNKNOWN = (0),
+    FILE_TYPE_DISK = (1),
+    FILE_TYPE_CHAR = (2),
+    FILE_TYPE_PIPE = (3),
+    GGO_BITMAP = (1),
+    GGO_NATIVE = (2),
+    GGO_METRICS = (0),
+    GGO_GRAY2_BITMAP = (4),
+    GGO_GRAY4_BITMAP = (5),
+    GGO_GRAY8_BITMAP = (6),
+    GDI_ERROR = (0xffffffff),
+    GM_COMPATIBLE = (1),
+    GM_ADVANCED = (2),
+    HANDLE_FLAG_INHERIT = (1),
+    HANDLE_FLAG_PROTECT_FROM_CLOSE = (2),
+}
+char* RT_ACCELERATOR = cast(char*) ((9));
+char* RT_BITMAP = cast(char*) ((2));
+char* RT_DIALOG = cast(char*) ((5));
+char* RT_FONT = cast(char*) ((8));
+char* RT_FONTDIR = cast(char*) ((7));
+char* RT_MENU = cast(char*) ((4));
+char* RT_RCDATA = cast(char*) ((10));
+char* RT_STRING = cast(char*) ((6));
+char* RT_MESSAGETABLE = cast(char*) ((11));
+char* RT_CURSOR = cast(char*) ((1));
+char* RT_GROUP_CURSOR = cast(char*) ((12));
+char* RT_ICON = cast(char*) ((3));
+char* RT_GROUP_ICON = cast(char*) ((13));
+char* RT_VERSION = cast(char*) ((16));
+char* IDC_ARROW = cast(char*) ((32512));
+char* IDC_IBEAM = cast(char*) ((32513));
+char* IDC_WAIT = cast(char*) ((32514));
+char* IDC_CROSS = cast(char*) ((32515));
+char* IDC_UPARROW = cast(char*) ((32516));
+char* IDC_SIZENWSE = cast(char*) ((32642));
+char* IDC_SIZENESW = cast(char*) ((32643));
+char* IDC_SIZEWE = cast(char*) ((32644));
+char* IDC_SIZENS = cast(char*) ((32645));
+char* IDC_SIZEALL = cast(char*) ((32646));
+char* IDC_NO = cast(char*) ((32648));
+char* IDC_APPSTARTING = cast(char*) ((32650));
+char* IDC_HELP = cast(char*) ((32651));
+char* IDI_APPLICATION = cast(char*) ((32512));
+char* IDI_HAND = cast(char*) ((32513));
+char* IDI_QUESTION = cast(char*) ((32514));
+char* IDI_EXCLAMATION = cast(char*) ((32515));
+char* IDI_ASTERISK = cast(char*) ((32516));
+char* IDI_WINLOGO = cast(char*) ((32517));
+char* IDC_SIZE = cast(char*) ((32640));
+char* IDC_ICON = cast(char*) ((32641));
+enum : DWORD {
+    MM_ANISOTROPIC = (8),
+    MM_HIENGLISH = (5),
+    MM_HIMETRIC = (3),
+    MM_ISOTROPIC = (7),
+    MM_LOENGLISH = (4),
+    MM_LOMETRIC = (2),
+    MM_TEXT = (1),
+    MM_TWIPS = (6),
+    GMDI_GOINTOPOPUPS = (0x2),
+    GMDI_USEDISABLED = (0x1),
+    PM_NOREMOVE = (0),
+    PM_REMOVE = (1),
+    PM_NOYIELD = (2),
+    PIPE_CLIENT_END = (0),
+    PIPE_SERVER_END = (1),
+    GW_HWNDNEXT = (2),
+    GW_HWNDPREV = (3),
+    GW_CHILD = (5),
+    GW_HWNDFIRST = (0),
+    GW_HWNDLAST = (1),
+    GW_OWNER = (4),
+    PT_MOVETO = (6),
+    PT_LINETO = (2),
+    PT_BEZIERTO = (4),
+    PT_CLOSEFIGURE = (1),
+    SHUTDOWN_NORETRY = (1),
+    QS_ALLEVENTS = (191),
+    QS_ALLINPUT = (255),
+    QS_HOTKEY = (128),
+    QS_INPUT = (7),
+    QS_KEY = (1),
+    QS_MOUSE = (6),
+    QS_MOUSEBUTTON = (4),
+    QS_MOUSEMOVE = (2),
+    QS_PAINT = (32),
+    QS_POSTMESSAGE = (8),
+    QS_SENDMESSAGE = (64),
+    QS_TIMER = (16),
+    SIF_ALL = (23),
+    SIF_PAGE = (2),
+    SIF_POS = (4),
+    SIF_RANGE = (1),
+    SIF_DISABLENOSCROLL = (8),
+    STD_INPUT_HANDLE = -(10),
+    STD_OUTPUT_HANDLE = -(11),
+    STD_ERROR_HANDLE = -(12),
+    BLACK_BRUSH = (4),
+    DKGRAY_BRUSH = (3),
+    GRAY_BRUSH = (2),
+    HOLLOW_BRUSH = (5),
+    LTGRAY_BRUSH = (1),
+    NULL_BRUSH = (5),
+    WHITE_BRUSH = (0),
+    BLACK_PEN = (7),
+    NULL_PEN = (8),
+    WHITE_PEN = (6),
+    ANSI_FIXED_FONT = (11),
+    ANSI_VAR_FONT = (12),
+    DEVICE_DEFAULT_FONT = (14),
+    DEFAULT_GUI_FONT = (17),
+    OEM_FIXED_FONT = (10),
+    SYSTEM_FONT = (13),
+    SYSTEM_FIXED_FONT = (16),
+    DEFAULT_PALETTE = (15),
+    CT_CTYPE1 = (1),
+    CT_CTYPE2 = (2),
+    CT_CTYPE3 = (4),
+    C1_UPPER = (1),
+    C1_LOWER = (2),
+    C1_DIGIT = (4),
+    C1_SPACE = (8),
+    C1_PUNCT = (16),
+    C1_CNTRL = (32),
+    C1_BLANK = (64),
+    C1_XDIGIT = (128),
+    C1_ALPHA = (256),
+    C2_LEFTTORIGHT = (1),
+    C2_RIGHTTOLEFT = (2),
+    C2_EUROPENUMBER = (3),
+    C2_EUROPESEPARATOR = (4),
+    C2_EUROPETERMINATOR = (5),
+    C2_ARABICNUMBER = (6),
+    C2_COMMONSEPARATOR = (7),
+    C2_BLOCKSEPARATOR = (8),
+    C2_SEGMENTSEPARATOR = (9),
+    C2_WHITESPACE = (10),
+    C2_OTHERNEUTRAL = (11),
+    C2_NOTAPPLICABLE = (0),
+    C3_NONSPACING = (1),
+    C3_DIACRITIC = (2),
+    C3_VOWELMARK = (4),
+    C3_SYMBOL = (8),
+    C3_KATAKANA = (16),
+    C3_HIRAGANA = (32),
+    C3_HALFWIDTH = (64),
+    C3_FULLWIDTH = (128),
+    C3_IDEOGRAPH = (256),
+    C3_KASHIDA = (512),
+    C3_ALPHA = (32768),
+    C3_NOTAPPLICABLE = (0),
+    COLOR_3DDKSHADOW = (21),
+    COLOR_3DFACE = (15),
+    COLOR_3DHILIGHT = (20),
+    COLOR_3DLIGHT = (22),
+    COLOR_BTNHILIGHT = (20),
+    COLOR_3DSHADOW = (16),
+    COLOR_ACTIVEBORDER = (10),
+    COLOR_ACTIVECAPTION = (2),
+    COLOR_APPWORKSPACE = (12),
+    COLOR_BACKGROUND = (1),
+    COLOR_DESKTOP = (1),
+    COLOR_BTNFACE = (15),
+    COLOR_BTNHIGHLIGHT = (20),
+    COLOR_BTNSHADOW = (16),
+    COLOR_BTNTEXT = (18),
+    COLOR_CAPTIONTEXT = (9),
+    COLOR_GRAYTEXT = (17),
+    COLOR_HIGHLIGHT = (13),
+    COLOR_HIGHLIGHTTEXT = (14),
+    COLOR_INACTIVEBORDER = (11),
+    COLOR_INACTIVECAPTION = (3),
+    COLOR_INACTIVECAPTIONTEXT = (19),
+    COLOR_INFOBK = (24),
+    COLOR_INFOTEXT = (23),
+    COLOR_MENU = (4),
+    COLOR_MENUTEXT = (7),
+    COLOR_SCROLLBAR = (0),
+    COLOR_WINDOW = (5),
+    COLOR_WINDOWFRAME = (6),
+    COLOR_WINDOWTEXT = (8),
+    SM_CYMIN = (29),
+    SM_CXMIN = (28),
+    SM_ARRANGE = (56),
+    SM_CLEANBOOT = (67),
+    SM_CMETRICS = (76),
+    SM_CMOUSEBUTTONS = (43),
+    SM_CXBORDER = (5),
+    SM_CYBORDER = (6),
+    SM_CXCURSOR = (13),
+    SM_CYCURSOR = (14),
+    SM_CXDLGFRAME = (7),
+    SM_CYDLGFRAME = (8),
+    SM_CXDOUBLECLK = (36),
+    SM_CYDOUBLECLK = (37),
+    SM_CXDRAG = (68),
+    SM_CYDRAG = (69),
+    SM_CXEDGE = (45),
+    SM_CYEDGE = (46),
+    SM_CXFIXEDFRAME = (7),
+    SM_CYFIXEDFRAME = (8),
+    SM_CXFRAME = (32),
+    SM_CYFRAME = (33),
+    SM_CXFULLSCREEN = (16),
+    SM_CYFULLSCREEN = (17),
+    SM_CXHSCROLL = (21),
+    SM_CYHSCROLL = (3),
+    SM_CXHTHUMB = (10),
+    SM_CXICON = (11),
+    SM_CYICON = (12),
+    SM_CXICONSPACING = (38),
+    SM_CYICONSPACING = (39),
+    SM_CXMAXIMIZED = (61),
+    SM_CYMAXIMIZED = (62),
+    SM_CXMAXTRACK = (59),
+    SM_CYMAXTRACK = (60),
+    SM_CXMENUCHECK = (71),
+    SM_CYMENUCHECK = (72),
+    SM_CXMENUSIZE = (54),
+    SM_CYMENUSIZE = (55),
+    SM_CXMINIMIZED = (57),
+    SM_CYMINIMIZED = (58),
+    SM_CXMINSPACING = (47),
+    SM_CYMINSPACING = (48),
+    SM_CXMINTRACK = (34),
+    SM_CYMINTRACK = (35),
+    SM_CXSCREEN = (0),
+    SM_CYSCREEN = (1),
+    SM_CXSIZE = (30),
+    SM_CYSIZE = (31),
+    SM_CXSIZEFRAME = (32),
+    SM_CYSIZEFRAME = (33),
+    SM_CXSMICON = (49),
+    SM_CYSMICON = (50),
+    SM_CXSMSIZE = (52),
+    SM_CYSMSIZE = (53),
+    SM_CXVSCROLL = (2),
+    SM_CYVSCROLL = (20),
+    SM_CYVTHUMB = (9),
+    SM_CYCAPTION = (4),
+    SM_CYKANJIWINDOW = (18),
+    SM_CYMENU = (15),
+    SM_CYSMCAPTION = (51),
+    SM_DBCSENABLED = (42),
+    SM_DEBUG = (22),
+    SM_MENUDROPALIGNMENT = (40),
+    SM_MIDEASTENABLED = (74),
+    SM_MOUSEPRESENT = (19),
+    SM_MOUSEWHEELPRESENT = (75),
+    SM_NETWORK = (63),
+    SM_PENWINDOWS = (41),
+    SM_SECURE = (44),
+    SM_SHOWSOUNDS = (70),
+    SM_SLOWMACHINE = (73),
+    SM_SWAPBUTTON = (23),
+    ARW_BOTTOMLEFT = (0),
+    ARW_BOTTOMRIGHT = (0x1),
+    ARW_HIDE = (0x8),
+    ARW_TOPLEFT = (0x2),
+    ARW_TOPRIGHT = (0x3),
+    ARW_DOWN = (0x4),
+    ARW_LEFT = (0),
+    ARW_RIGHT = (0),
+    ARW_UP = (0x4),
+    SYSPAL_NOSTATIC = (2),
+    SYSPAL_STATIC = (1),
+    SYSPAL_ERROR = (0),
+    GET_TAPE_MEDIA_INFORMATION = (0),
+    GET_TAPE_DRIVE_INFORMATION = (1),
+    SET_TAPE_MEDIA_INFORMATION = (0),
+    SET_TAPE_DRIVE_INFORMATION = (1),
+    TAPE_ABSOLUTE_POSITION = (0),
+    TAPE_LOGICAL_POSITION = (0x1),
+    TA_BASELINE = (24),
+    TA_BOTTOM = (8),
+    TA_TOP = (0),
+    TA_CENTER = (6),
+    TA_LEFT = (0),
+    TA_RIGHT = (2),
+    TA_RTLREADING = (256),
+    TA_NOUPDATECP = (0),
+    TA_UPDATECP = (1),
+    VTA_BASELINE = (24),
+    VTA_CENTER = (6),
+    THREAD_PRIORITY_ABOVE_NORMAL = (1),
+    THREAD_PRIORITY_BELOW_NORMAL = -((1)),
+    THREAD_PRIORITY_HIGHEST = (2),
+    THREAD_PRIORITY_IDLE = -((15)),
+    THREAD_PRIORITY_LOWEST = -((2)),
+    THREAD_PRIORITY_NORMAL = (0),
+    THREAD_PRIORITY_TIME_CRITICAL = (15),
+    THREAD_PRIORITY_ERROR_RETURN = (2147483647),
+    TLS_MINIMUM_AVAILABLE = (64),
+    TIME_NOMINUTESORSECONDS = (1),
+    TIME_NOSECONDS = (2),
+    TIME_NOTIMEMARKER = (4),
+    TIME_FORCE24HOURFORMAT = (8),
+    TIME_ZONE_ID_INVALID = -(1),
+    TIME_ZONE_ID_UNKNOWN = (0),
+    TIME_ZONE_ID_STANDARD = (1),
+    TIME_ZONE_ID_DAYLIGHT = (2),
+    UOI_FLAGS = (1),
+    UOI_NAME = (2),
+    UOI_TYPE = (3),
+    FS_CASE_IS_PRESERVED = (2),
+    FS_CASE_SENSITIVE = (1),
+    FS_UNICODE_STORED_ON_DISK = (4),
+    FS_PERSISTENT_ACLS = (8),
+    FS_FILE_COMPRESSION = (16),
+    FS_VOL_IS_COMPRESSED = (32768),
+    GWL_EXSTYLE = -((20)),
+    GWL_STYLE = -((16)),
+    GWL_WNDPROC = -((4)),
+    GWL_HINSTANCE = -((6)),
+    GWL_HWNDPARENT = -((8)),
+    GWL_ID = -((12)),
+    GWL_USERDATA = -((21)),
+    DWL_DLGPROC = (4),
+    DWL_MSGRESULT = (0),
+    DWL_USER = (8),
+    GMEM_FIXED = (0),
+    GMEM_MOVEABLE = (2),
+    GPTR = (64),
+    GHND = (66),
+    GMEM_DDESHARE = (8192),
+    GMEM_DISCARDABLE = (256),
+    GMEM_LOWER = (4096),
+    GMEM_NOCOMPACT = (16),
+    GMEM_NODISCARD = (32),
+    GMEM_NOT_BANKED = (4096),
+    GMEM_NOTIFY = (16384),
+    GMEM_SHARE = (8192),
+    GMEM_ZEROINIT = (64),
+    GMEM_DISCARDED = (16384),
+    GMEM_INVALID_HANDLE = (32768),
+    GMEM_LOCKCOUNT = (255),
+    HEAP_GENERATE_EXCEPTIONS = (4),
+    HEAP_NO_SERIALIZE = (1),
+    HEAP_ZERO_MEMORY = (8),
+    STATUS_NO_MEMORY = (0xc0000017),
+    STATUS_ACCESS_VIOLATION = (0xc0000005),
+    HEAP_REALLOC_IN_PLACE_ONLY = (16),
+    ILC_COLOR = (0),
+    ILC_COLOR4 = (4),
+    ILC_COLOR8 = (8),
+    ILC_COLOR16 = (16),
+    ILC_COLOR24 = (24),
+    ILC_COLOR32 = (32),
+    ILC_COLORDDB = (254),
+    ILC_MASK = (1),
+    ILC_PALETTE = (2048),
+    ILD_BLEND25 = (2),
+    ILD_BLEND50 = (4),
+    ILD_SELECTED = (4),
+    ILD_BLEND = (4),
+    ILD_FOCUS = (2),
+    ILD_MASK = (16),
+    ILD_NORMAL = (0),
+    ILD_TRANSPARENT = (1),
+    CLR_NONE = (0xffffffff),
+    CLR_DEFAULT = (0xff000000),
+    CLR_INVALID = (0xFFFFFFFF),
+    LR_LOADFROMFILE = (16),
+    LR_LOADMAP3DCOLORS = (4096),
+    LR_LOADTRANSPARENT = (32),
+    IME_CONFIG_GENERAL = (1),
+    IME_CONFIG_REGISTERWORD = (2),
+    IME_CONFIG_SELECTDICTIONARY = (3),
+    GCL_CONVERSION = (1),
+    GCL_REVERSECONVERSION = (2),
+    GCL_REVERSE_LENGTH = (3),
+    GGL_LEVEL = (1),
+    GGL_INDEX = (2),
+    GGL_STRING = (3),
+    GGL_PRIVATE = (4),
+    GL_LEVEL_ERROR = (2),
+    GL_LEVEL_FATAL = (1),
+    GL_LEVEL_INFORMATION = (4),
+    GL_LEVEL_NOGUIDELINE = (0),
+    GL_LEVEL_WARNING = (3),
+    GL_ID_CANNOTSAVE = (17),
+    GL_ID_NOCONVERT = (32),
+    GL_ID_NODICTIONARY = (16),
+    GL_ID_NOMODULE = (1),
+    GL_ID_READINGCONFLICT = (35),
+    GL_ID_TOOMANYSTROKE = (34),
+    GL_ID_TYPINGERROR = (33),
+    GL_ID_UNKNOWN = (0),
+    GL_ID_INPUTREADING = (36),
+    GL_ID_INPUTRADICAL = (37),
+    GL_ID_INPUTCODE = (38),
+    GL_ID_CHOOSECANDIDATE = (40),
+    GL_ID_REVERSECONVERSION = (41),
+    IGP_PROPERTY = (4),
+    IGP_CONVERSION = (8),
+    IGP_SENTENCE = (12),
+    IGP_UI = (16),
+    IGP_SETCOMPSTR = (20),
+    IGP_SELECT = (24),
+    IME_PROP_AT_CARET = (65536),
+    IME_PROP_SPECIAL_UI = (131072),
+    IME_PROP_CANDLIST_START_FROM_1 = (262144),
+    IME_PROP_UNICODE = (524288),
+    UI_CAP_2700 = (1),
+    UI_CAP_ROT90 = (2),
+    UI_CAP_ROTANY = (4),
+    SCS_CAP_COMPSTR = (1),
+    SCS_CAP_MAKEREAD = (2),
+    SELECT_CAP_CONVERSION = (1),
+    SELECT_CAP_SENTENCE = (2),
+    NI_CHANGECANDIDATELIST = (19),
+    NI_CLOSECANDIDATE = (17),
+    NI_COMPOSITIONSTR = (21),
+    NI_OPENCANDIDATE = (16),
+    NI_SELECTCANDIDATESTR = (18),
+    NI_SETCANDIDATE_PAGESIZE = (23),
+    NI_SETCANDIDATE_PAGESTART = (22),
+    CPS_CANCEL = (4),
+    CPS_COMPLETE = (1),
+    CPS_CONVERT = (2),
+    CPS_REVERT = (3),
+    SCS_SETSTR = (9),
+    SCS_CHANGEATTR = (18),
+    SCS_CHANGECLAUSE = (36),
+    IME_REGWORD_STYLE_EUDC = (1),
+    IME_REGWORD_STYLE_USER_FIRST = (0x80000000),
+    IME_REGWORD_STYLE_USER_LAST = -((1)),
+    SECURITY_DESCRIPTOR_REVISION = (1),
+    IS_TEXT_UNICODE_ASCII16 = (1),
+    IS_TEXT_UNICODE_REVERSE_ASCII16 = (16),
+    IS_TEXT_UNICODE_STATISTICS = (2),
+    IS_TEXT_UNICODE_REVERSE_STATISTICS = (32),
+    IS_TEXT_UNICODE_CONTROLS = (4),
+    IS_TEXT_UNICODE_REVERSE_CONTROLS = (64),
+    IS_TEXT_UNICODE_SIGNATURE = (8),
+    IS_TEXT_UNICODE_REVERSE_SIGNATURE = (128),
+    IS_TEXT_UNICODE_ILLEGAL_CHARS = (256),
+    IS_TEXT_UNICODE_ODD_LENGTH = (512),
+    IS_TEXT_UNICODE_NULL_BYTES = (4096),
+    IS_TEXT_UNICODE_UNICODE_MASK = (15),
+    IS_TEXT_UNICODE_REVERSE_MASK = (240),
+    IS_TEXT_UNICODE_NOT_UNICODE_MASK = (3840),
+    IS_TEXT_UNICODE_NOT_ASCII_MASK = (61440),
+    HC_GETNEXT = (1),
+    HC_SKIP = (2),
+    HC_SYSMODALOFF = (5),
+    HC_SYSMODALON = (4),
+    HC_NOREMOVE = (3),
+    KEYEVENTF_EXTENDEDKEY = (1),
+    KEYEVENTF_KEYUP = (2),
+    OBM_BTNCORNERS = (32758),
+    OBM_BTSIZE = (32761),
+    OBM_CHECK = (32760),
+    OBM_CHECKBOXES = (32759),
+    OBM_CLOSE = (32754),
+    OBM_COMBO = (32738),
+    OBM_DNARROW = (32752),
+    OBM_DNARROWD = (32742),
+    OBM_DNARROWI = (32736),
+    OBM_LFARROW = (32750),
+    OBM_LFARROWI = (32734),
+    OBM_LFARROWD = (32740),
+    OBM_MNARROW = (32739),
+    OBM_OLD_CLOSE = (32767),
+    OBM_OLD_DNARROW = (32764),
+    OBM_OLD_LFARROW = (32762),
+    OBM_OLD_REDUCE = (32757),
+    OBM_OLD_RESTORE = (32755),
+    OBM_OLD_RGARROW = (32763),
+    OBM_OLD_UPARROW = (32765),
+    OBM_OLD_ZOOM = (32756),
+    OBM_REDUCE = (32749),
+    OBM_REDUCED = (32746),
+    OBM_RESTORE = (32747),
+    OBM_RESTORED = (32744),
+    OBM_RGARROW = (32751),
+    OBM_RGARROWD = (32741),
+    OBM_RGARROWI = (32735),
+    OBM_SIZE = (32766),
+    OBM_UPARROW = (32753),
+    OBM_UPARROWD = (32743),
+    OBM_UPARROWI = (32737),
+    OBM_ZOOM = (32748),
+    OBM_ZOOMD = (32745),
+    DONT_RESOLVE_DLL_REFERENCES = (1),
+    LOAD_LIBRARY_AS_DATAFILE = (2),
+    LOAD_WITH_ALTERED_SEARCH_PATH = (8),
+    LPTR = (64),
+    LHND = (66),
+    NONZEROLHND = (2),
+    NONZEROLPTR = (0),
+    LMEM_NONZEROLHND = (2),
+    LMEM_NONZEROLPTR = (0),
+    LMEM_FIXED = (0),
+    LMEM_MOVEABLE = (2),
+    LMEM_NOCOMPACT = (16),
+    LMEM_NODISCARD = (32),
+    LMEM_ZEROINIT = (64),
+    LMEM_MODIFY = (128),
+    LMEM_LOCKCOUNT = (255),
+    LMEM_DISCARDABLE = (3840),
+    LMEM_DISCARDED = (16384),
+    LMEM_INVALID_HANDLE = (32768),
+    LOCKFILE_FAIL_IMMEDIATELY = (1),
+    LOCKFILE_EXCLUSIVE_LOCK = (2),
+    MB_USERICON = (0x80),
+    MB_ICONASTERISK = (0x40),
+    MB_ICONEXCLAMATION = (0x30),
+    MB_ICONWARNING = (0x30),
+    MB_ICONERROR = (0x10),
+    MB_ICONHAND = (0x10),
+    MB_ICONQUESTION = (0x20),
+    MB_OK = (0),
+    MB_ABORTRETRYIGNORE = (0x2),
+    MB_APPLMODAL = (0),
+    MB_DEFAULT_DESKTOP_ONLY = (0x20000),
+    MB_HELP = (0x4000),
+    MB_RIGHT = (0x80000),
+    MB_RTLREADING = (0x100000),
+    MB_TOPMOST = (0x40000),
+    MB_DEFBUTTON1 = (0),
+    MB_DEFBUTTON2 = (0x100),
+    MB_DEFBUTTON3 = (0x200),
+    MB_DEFBUTTON4 = (0x300),
+    MB_ICONINFORMATION = (0x40),
+    MB_ICONSTOP = (0x10),
+    MB_OKCANCEL = (0x1),
+    MB_RETRYCANCEL = (0x5),
+    MB_SERVICE_NOTIFICATION = (0x40000),
+    MB_SETFOREGROUND = (0x10000),
+    MB_SYSTEMMODAL = (0x1000),
+    MB_TASKMODAL = (0x2000),
+    MB_YESNO = (0x4),
+    MB_YESNOCANCEL = (0x3),
+    IDABORT = (3),
+    IDCANCEL = (2),
+    IDCLOSE = (8),
+    IDHELP = (9),
+    IDIGNORE = (5),
+    IDNO = (7),
+    IDOK = (1),
+    IDRETRY = (4),
+    IDYES = (6),
+    MSGF_DIALOGBOX = (0),
+    MSGF_MENU = (2),
+    MSGF_NEXTWINDOW = (6),
+    MSGF_SCROLLBAR = (5),
+    MSGF_MAINLOOP = (8),
+    MSGF_USER = (4096),
+    MWT_IDENTITY = (1),
+    MWT_LEFTMULTIPLY = (2),
+    MWT_RIGHTMULTIPLY = (3),
+    MOUSEEVENTF_ABSOLUTE = (32768),
+    MOUSEEVENTF_MOVE = (1),
+    MOUSEEVENTF_LEFTDOWN = (2),
+    MOUSEEVENTF_LEFTUP = (4),
+    MOUSEEVENTF_RIGHTDOWN = (8),
+    MOUSEEVENTF_RIGHTUP = (16),
+    MOUSEEVENTF_MIDDLEDOWN = (32),
+    MOUSEEVENTF_MIDDLEUP = (64),
+    MOVEFILE_REPLACE_EXISTING = (1),
+    MOVEFILE_COPY_ALLOWED = (2),
+    MOVEFILE_DELAY_UNTIL_REBOOT = (4),
+    MOVEFILE_WRITE_THROUGH = (8),
+    WAIT_OBJECT_0 = (0),
+    WAIT_ABANDONED_0 = (0x80),
+    WAIT_TIMEOUT = (0x102),
+    WAIT_IO_COMPLETION = (0xc0),
+    WAIT_ABANDONED = (0x80),
+    WAIT_FAILED = (0xffffffff),
+    MAXIMUM_WAIT_OBJECTS = (0x40),
+    MAXIMUM_SUSPEND_COUNT = (0x7f),
+    MB_PRECOMPOSED = (1),
+    MB_COMPOSITE = (2),
+    MB_ERR_INVALID_CHARS = (8),
+    MB_USEGLYPHCHARS = (4),
+    TOKEN_ADJUST_DEFAULT = (128),
+    TOKEN_ADJUST_GROUPS = (64),
+    TOKEN_ADJUST_PRIVILEGES = (32),
+    TOKEN_ALL_ACCESS = (0xf00ff),
+    TOKEN_ASSIGN_PRIMARY = (1),
+    TOKEN_DUPLICATE = (2),
+    TOKEN_EXECUTE = (0x20000),
+    TOKEN_IMPERSONATE = (4),
+    TOKEN_QUERY = (8),
+    TOKEN_QUERY_SOURCE = (16),
+    TOKEN_READ = (0x20008),
+    TOKEN_WRITE = (0x200e0),
+    SC_MANAGER_ALL_ACCESS = (0xf003f),
+    SC_MANAGER_CONNECT = (1),
+    SC_MANAGER_CREATE_SERVICE = (2),
+    SC_MANAGER_ENUMERATE_SERVICE = (4),
+    SC_MANAGER_LOCK = (8),
+    SC_MANAGER_QUERY_LOCK_STATUS = (16),
+    SC_MANAGER_MODIFY_BOOT_CONFIG = (32),
+    TAPE_FORMAT = (0x5),
+    TAPE_LOAD = (0),
+    TAPE_LOCK = (0x3),
+    TAPE_TENSION = (0x2),
+    TAPE_UNLOAD = (0x1),
+    TAPE_UNLOCK = (0x4),
+    IS_PSREBOOTSYSTEM = (3),
+    IS_PSRESTARTWINDOWS = (2),
+    PSPCB_CREATE = (2),
+    PSPCB_RELEASE = (1),
+    PURGE_TXABORT = (1),
+    PURGE_RXABORT = (2),
+    PURGE_TXCLEAR = (4),
+    PURGE_RXCLEAR = (8),
+    OWNER_SECURITY_INFORMATION = (0x1),
+    GROUP_SECURITY_INFORMATION = (0x2),
+    DACL_SECURITY_INFORMATION = (0x4),
+    SACL_SECURITY_INFORMATION = (0x8),
+    EVENTLOG_FORWARDS_READ = (4),
+    EVENTLOG_BACKWARDS_READ = (8),
+    EVENTLOG_SEEK_READ = (2),
+    EVENTLOG_SEQUENTIAL_READ = (1),
+    EVENTLOG_ERROR_TYPE = (1),
+    EVENTLOG_WARNING_TYPE = (2),
+    EVENTLOG_INFORMATION_TYPE = (4),
+    EVENTLOG_AUDIT_SUCCESS = (8),
+    EVENTLOG_AUDIT_FAILURE = (16),
+    RDW_ERASE = (4),
+    RDW_FRAME = (1024),
+    RDW_INTERNALPAINT = (2),
+    RDW_INVALIDATE = (1),
+    RDW_NOERASE = (32),
+    RDW_NOFRAME = (2048),
+    RDW_NOINTERNALPAINT = (16),
+    RDW_VALIDATE = (8),
+    RDW_ERASENOW = (512),
+    RDW_UPDATENOW = (256),
+    RDW_ALLCHILDREN = (128),
+    RDW_NOCHILDREN = (64),
+/*
+    //
+    HKEY_CLASSES_ROOT = (0x80000000),
+    HKEY_CURRENT_USER = (0x80000001),
+    HKEY_LOCAL_MACHINE = (0x80000002),
+    HKEY_USERS = (0x80000003),
+    HKEY_PERFORMANCE_DATA = (0x80000004),
+    HKEY_CURRENT_CONFIG = (0x80000005),
+    HKEY_DYN_DATA = (0x80000006),
+*/
+    REG_OPTION_VOLATILE = (0x1),
+    REG_OPTION_NON_VOLATILE = (0),
+    REG_CREATED_NEW_KEY = (0x1),
+    REG_OPENED_EXISTING_KEY = (0x2),
+    REG_BINARY = (3),
+    REG_DWORD = (4),
+    REG_DWORD_LITTLE_ENDIAN = (4),
+    REG_DWORD_BIG_ENDIAN = (5),
+    REG_EXPAND_SZ = (2),
+    REG_FULL_RESOURCE_DESCRIPTOR = (9),
+    REG_LINK = (6),
+    REG_MULTI_SZ = (7),
+    REG_NONE = (0),
+    REG_RESOURCE_LIST = (8),
+    REG_RESOURCE_REQUIREMENTS_LIST = (10),
+    REG_SZ = (1),
+    MOD_ALT = (1),
+    MOD_CONTROL = (2),
+    MOD_SHIFT = (4),
+    MOD_WIN = (8),
+    IDHOT_SNAPDESKTOP = -((2)),
+    IDHOT_SNAPWINDOW = -((1)),
+    REG_NOTIFY_CHANGE_NAME = (0x1),
+    REG_NOTIFY_CHANGE_ATTRIBUTES = (0x2),
+    REG_NOTIFY_CHANGE_LAST_SET = (0x4),
+    REG_NOTIFY_CHANGE_SECURITY = (0x8),
+    SW_ERASE = (4),
+    SW_INVALIDATE = (2),
+    SW_SCROLLCHILDREN = (1),
+    SMTO_ABORTIFHUNG = (2),
+    SMTO_BLOCK = (1),
+    SMTO_NORMAL = (0),
+    OPAQUE = (2),
+    TRANSPARENT = (1),
+    SLE_ERROR = (1),
+    SLE_MINORERROR = (2),
+    SLE_WARNING = (3),
+    SEM_FAILCRITICALERRORS = (1),
+    SEM_NOALIGNMENTFAULTEXCEPT = (4),
+    SEM_NOGPFAULTERRORBOX = (2),
+    SEM_NOOPENFILEERRORBOX = (32768),
+    ICM_ON = (2),
+    ICM_OFF = (1),
+    ICM_QUERY = (3),
+    LOCALE_ILANGUAGE = (1),
+    LOCALE_SLANGUAGE = (2),
+    LOCALE_SENGLANGUAGE = (4097),
+    LOCALE_SABBREVLANGNAME = (3),
+    LOCALE_SNATIVELANGNAME = (4),
+    LOCALE_ICOUNTRY = (5),
+    LOCALE_SCOUNTRY = (6),
+    LOCALE_SENGCOUNTRY = (4098),
+    LOCALE_SABBREVCTRYNAME = (7),
+    LOCALE_SNATIVECTRYNAME = (8),
+    LOCALE_IDEFAULTLANGUAGE = (9),
+    LOCALE_IDEFAULTCOUNTRY = (10),
+    LOCALE_IDEFAULTANSICODEPAGE = (4100),
+    LOCALE_IDEFAULTCODEPAGE = (11),
+    LOCALE_SLIST = (12),
+    LOCALE_IMEASURE = (13),
+    LOCALE_SDECIMAL = (14),
+    LOCALE_STHOUSAND = (15),
+    LOCALE_SGROUPING = (16),
+    LOCALE_IDIGITS = (17),
+    LOCALE_ILZERO = (18),
+    LOCALE_INEGNUMBER = (4112),
+    LOCALE_SCURRENCY = (20),
+    LOCALE_SMONDECIMALSEP = (22),
+    LOCALE_SMONTHOUSANDSEP = (23),
+    LOCALE_SMONGROUPING = (24),
+    LOCALE_ICURRDIGITS = (25),
+    LOCALE_ICURRENCY = (27),
+    LOCALE_INEGCURR = (28),
+    LOCALE_SDATE = (29),
+    LOCALE_STIME = (30),
+    LOCALE_STIMEFORMAT = (4099),
+    LOCALE_SSHORTDATE = (31),
+    LOCALE_SLONGDATE = (32),
+    LOCALE_IDATE = (33),
+    LOCALE_ILDATE = (34),
+    LOCALE_ITIME = (35),
+    LOCALE_ITLZERO = (37),
+    LOCALE_IDAYLZERO = (38),
+    LOCALE_IMONLZERO = (39),
+    LOCALE_S1159 = (40),
+    LOCALE_S2359 = (41),
+    LOCALE_ICALENDARTYPE = (4105),
+    LOCALE_IOPTIONALCALENDAR = (4107),
+    LOCALE_IFIRSTDAYOFWEEK = (4108),
+    LOCALE_IFIRSTWEEKOFYEAR = (4109),
+    LOCALE_SDAYNAME1 = (42),
+    LOCALE_SDAYNAME2 = (43),
+    LOCALE_SDAYNAME3 = (44),
+    LOCALE_SDAYNAME4 = (45),
+    LOCALE_SDAYNAME5 = (46),
+    LOCALE_SDAYNAME6 = (47),
+    LOCALE_SDAYNAME7 = (48),
+    LOCALE_SABBREVDAYNAME1 = (49),
+    LOCALE_SABBREVDAYNAME2 = (50),
+    LOCALE_SABBREVDAYNAME3 = (51),
+    LOCALE_SABBREVDAYNAME4 = (52),
+    LOCALE_SABBREVDAYNAME5 = (53),
+    LOCALE_SABBREVDAYNAME6 = (54),
+    LOCALE_SABBREVDAYNAME7 = (55),
+    LOCALE_SMONTHNAME1 = (56),
+    LOCALE_SMONTHNAME2 = (57),
+    LOCALE_SMONTHNAME3 = (58),
+    LOCALE_SMONTHNAME4 = (59),
+    LOCALE_SMONTHNAME5 = (60),
+    LOCALE_SMONTHNAME6 = (61),
+    LOCALE_SMONTHNAME7 = (62),
+    LOCALE_SMONTHNAME8 = (63),
+    LOCALE_SMONTHNAME9 = (64),
+    LOCALE_SMONTHNAME10 = (65),
+    LOCALE_SMONTHNAME11 = (66),
+    LOCALE_SMONTHNAME12 = (67),
+    LOCALE_SMONTHNAME13 = (4110),
+    LOCALE_SABBREVMONTHNAME1 = (68),
+    LOCALE_SABBREVMONTHNAME2 = (69),
+    LOCALE_SABBREVMONTHNAME3 = (70),
+    LOCALE_SABBREVMONTHNAME4 = (71),
+    LOCALE_SABBREVMONTHNAME5 = (72),
+    LOCALE_SABBREVMONTHNAME6 = (73),
+    LOCALE_SABBREVMONTHNAME7 = (74),
+    LOCALE_SABBREVMONTHNAME8 = (75),
+    LOCALE_SABBREVMONTHNAME9 = (76),
+    LOCALE_SABBREVMONTHNAME10 = (77),
+    LOCALE_SABBREVMONTHNAME11 = (78),
+    LOCALE_SABBREVMONTHNAME12 = (79),
+    LOCALE_SABBREVMONTHNAME13 = (4111),
+    LOCALE_SPOSITIVESIGN = (80),
+    LOCALE_SNEGATIVESIGN = (81),
+    LOCALE_IPOSSIGNPOSN = (82),
+    LOCALE_INEGSIGNPOSN = (83),
+    LOCALE_IPOSSYMPRECEDES = (84),
+    LOCALE_IPOSSEPBYSPACE = (85),
+    LOCALE_INEGSYMPRECEDES = (86),
+    LOCALE_INEGSEPBYSPACE = (87),
+    LOCALE_NOUSEROVERRIDE = (0x80000000),
+    CAL_ICALINTVALUE = (1),
+    CAL_IYEAROFFSETRANGE = (3),
+    CAL_SABBREVDAYNAME1 = (14),
+    CAL_SABBREVDAYNAME2 = (15),
+    CAL_SABBREVDAYNAME3 = (16),
+    CAL_SABBREVDAYNAME4 = (17),
+    CAL_SABBREVDAYNAME5 = (18),
+    CAL_SABBREVDAYNAME6 = (19),
+    CAL_SABBREVDAYNAME7 = (20),
+    CAL_SABBREVMONTHNAME1 = (34),
+    CAL_SABBREVMONTHNAME2 = (35),
+    CAL_SABBREVMONTHNAME3 = (36),
+    CAL_SABBREVMONTHNAME4 = (37),
+    CAL_SABBREVMONTHNAME5 = (38),
+    CAL_SABBREVMONTHNAME6 = (39),
+    CAL_SABBREVMONTHNAME7 = (40),
+    CAL_SABBREVMONTHNAME8 = (41),
+    CAL_SABBREVMONTHNAME9 = (42),
+    CAL_SABBREVMONTHNAME10 = (43),
+    CAL_SABBREVMONTHNAME11 = (44),
+    CAL_SABBREVMONTHNAME12 = (45),
+    CAL_SABBREVMONTHNAME13 = (46),
+    CAL_SCALNAME = (2),
+    CAL_SDAYNAME1 = (7),
+    CAL_SDAYNAME2 = (8),
+    CAL_SDAYNAME3 = (9),
+    CAL_SDAYNAME4 = (10),
+    CAL_SDAYNAME5 = (11),
+    CAL_SDAYNAME6 = (12),
+    CAL_SDAYNAME7 = (13),
+    CAL_SERASTRING = (4),
+    CAL_SLONGDATE = (6),
+    CAL_SMONTHNAME1 = (21),
+    CAL_SMONTHNAME2 = (22),
+    CAL_SMONTHNAME3 = (23),
+    CAL_SMONTHNAME4 = (24),
+    CAL_SMONTHNAME5 = (25),
+    CAL_SMONTHNAME6 = (26),
+    CAL_SMONTHNAME7 = (27),
+    CAL_SMONTHNAME8 = (28),
+    CAL_SMONTHNAME9 = (29),
+    CAL_SMONTHNAME10 = (30),
+    CAL_SMONTHNAME11 = (31),
+    CAL_SMONTHNAME12 = (32),
+    CAL_SMONTHNAME13 = (33),
+    CAL_SSHORTDATE = (5),
+    PROCESS_SET_QUOTA = (256),
+    BLACKONWHITE = (1),
+    COLORONCOLOR = (3),
+    HALFTONE = (4),
+    STRETCH_ANDSCANS = (1),
+    STRETCH_DELETESCANS = (3),
+    STRETCH_HALFTONE = (4),
+    STRETCH_ORSCANS = (2),
+    WHITEONBLACK = (2),
+    OCR_NORMAL = (32512),
+    OCR_IBEAM = (32513),
+    OCR_WAIT = (32514),
+    OCR_CROSS = (32515),
+    OCR_UP = (32516),
+    OCR_SIZE = (32640),
+    OCR_ICON = (32641),
+    OCR_SIZENWSE = (32642),
+    OCR_SIZENESW = (32643),
+    OCR_SIZEWE = (32644),
+    OCR_SIZENS = (32645),
+    OCR_SIZEALL = (32646),
+    OCR_NO = (32648),
+    OCR_APPSTARTING = (32650),
+    TAPE_ABSOLUTE_BLOCK = (0x1),
+    TAPE_LOGICAL_BLOCK = (0x2),
+    TAPE_REWIND = (0),
+    TAPE_SPACE_END_OF_DATA = (0x4),
+    TAPE_SPACE_FILEMARKS = (0x6),
+    TAPE_SPACE_RELATIVE_BLOCKS = (0x5),
+    TAPE_SPACE_SEQUENTIAL_FMKS = (0x7),
+    TAPE_SPACE_SEQUENTIAL_SMKS = (0x9),
+    TAPE_SPACE_SETMARKS = (0x8),
+    EXCEPTION_EXECUTE_HANDLER = (1),
+    EXCEPTION_CONTINUE_EXECUTION = -((1)),
+    EXCEPTION_CONTINUE_SEARCH = (0),
+    SWP_DRAWFRAME = (32),
+    SWP_FRAMECHANGED = (32),
+    SWP_HIDEWINDOW = (128),
+    SWP_NOACTIVATE = (16),
+    SWP_NOCOPYBITS = (256),
+    SWP_NOMOVE = (2),
+    SWP_NOSIZE = (1),
+    SWP_NOREDRAW = (8),
+    SWP_NOZORDER = (4),
+    SWP_SHOWWINDOW = (64),
+    SWP_NOOWNERZORDER = (512),
+    SWP_NOREPOSITION = (512),
+    SWP_NOSENDCHANGING = (1024),
+    HSHELL_ACTIVATESHELLWINDOW = (3),
+    HSHELL_GETMINRECT = (5),
+    HSHELL_LANGUAGE = (8),
+    HSHELL_REDRAW = (6),
+    HSHELL_TASKMAN = (7),
+    HSHELL_WINDOWACTIVATED = (4),
+    HSHELL_WINDOWCREATED = (1),
+    HSHELL_WINDOWDESTROYED = (2),
+    SW_HIDE = (0),
+    SW_MAXIMIZE = (3),
+    SW_MINIMIZE = (6),
+    SW_NORMAL = (1),
+    SW_RESTORE = (9),
+    SW_SHOW = (5),
+    SW_SHOWDEFAULT = (10),
+    SW_SHOWMAXIMIZED = (3),
+    SW_SHOWMINIMIZED = (2),
+    SW_SHOWMINNOACTIVE = (7),
+    SW_SHOWNA = (8),
+    SW_SHOWNOACTIVATE = (4),
+    SW_SHOWNORMAL = (1),
+    WPF_RESTORETOMAXIMIZED = (2),
+    WPF_SETMINPOSITION = (1),
+    INFINITE = (0xFFFFFFFF),
+    SPI_GETACCESSTIMEOUT = (60),
+    SPI_GETANIMATION = (72),
+    SPI_GETBEEP = (1),
+    SPI_GETBORDER = (5),
+    SPI_GETDEFAULTINPUTLANG = (89),
+    SPI_GETDRAGFULLWINDOWS = (38),
+    SPI_GETFASTTASKSWITCH = (35),
+    SPI_GETFILTERKEYS = (50),
+    SPI_GETFONTSMOOTHING = (74),
+    SPI_GETGRIDGRANULARITY = (18),
+    SPI_GETHIGHCONTRAST = (66),
+    SPI_GETICONMETRICS = (45),
+    SPI_GETICONTITLELOGFONT = (31),
+    SPI_GETICONTITLEWRAP = (25),
+    SPI_GETKEYBOARDDELAY = (22),
+    SPI_GETKEYBOARDPREF = (68),
+    SPI_GETKEYBOARDSPEED = (10),
+    SPI_GETLOWPOWERACTIVE = (83),
+    SPI_GETLOWPOWERTIMEOUT = (79),
+    SPI_GETMENUDROPALIGNMENT = (27),
+    SPI_GETMINIMIZEDMETRICS = (43),
+    SPI_GETMOUSE = (3),
+    SPI_GETMOUSEKEYS = (54),
+    SPI_GETMOUSETRAILS = (94),
+    SPI_GETNONCLIENTMETRICS = (41),
+    SPI_GETPOWEROFFACTIVE = (84),
+    SPI_GETPOWEROFFTIMEOUT = (80),
+    SPI_GETSCREENREADER = (70),
+    SPI_GETSCREENSAVEACTIVE = (16),
+    SPI_GETSCREENSAVETIMEOUT = (14),
+    SPI_GETSERIALKEYS = (62),
+    SPI_GETSHOWSOUNDS = (56),
+    SPI_GETSOUNDSENTRY = (64),
+    SPI_GETSTICKYKEYS = (58),
+    SPI_GETTOGGLEKEYS = (52),
+    SPI_GETWINDOWSEXTENSION = (92),
+    SPI_GETWORKAREA = (48),
+    SPI_ICONHORIZONTALSPACING = (13),
+    SPI_ICONVERTICALSPACING = (24),
+    SPI_LANGDRIVER = (12),
+    SPI_SCREENSAVERRUNNING = (97),
+    SPI_SETACCESSTIMEOUT = (61),
+    SPI_SETANIMATION = (73),
+    SPI_SETBEEP = (2),
+    SPI_SETBORDER = (6),
+    SPI_SETDEFAULTINPUTLANG = (90),
+    SPI_SETDESKPATTERN = (21),
+    SPI_SETDESKWALLPAPER = (20),
+    SPI_SETDOUBLECLICKTIME = (32),
+    SPI_SETDOUBLECLKHEIGHT = (30),
+    SPI_SETDOUBLECLKWIDTH = (29),
+    SPI_SETDRAGFULLWINDOWS = (37),
+    SPI_SETDRAGHEIGHT = (77),
+    SPI_SETDRAGWIDTH = (76),
+    SPI_SETFASTTASKSWITCH = (36),
+    SPI_SETFILTERKEYS = (51),
+    SPI_SETFONTSMOOTHING = (75),
+    SPI_SETGRIDGRANULARITY = (19),
+    SPI_SETHANDHELD = (78),
+    SPI_SETHIGHCONTRAST = (67),
+    SPI_SETICONMETRICS = (46),
+    SPI_SETICONTITLELOGFONT = (34),
+    SPI_SETICONTITLEWRAP = (26),
+    SPI_SETKEYBOARDDELAY = (23),
+    SPI_SETKEYBOARDPREF = (69),
+    SPI_SETKEYBOARDSPEED = (11),
+    SPI_SETLANGTOGGLE = (91),
+    SPI_SETLOWPOWERACTIVE = (85),
+    SPI_SETLOWPOWERTIMEOUT = (81),
+    SPI_SETMENUDROPALIGNMENT = (28),
+    SPI_SETMINIMIZEDMETRICS = (44),
+    SPI_SETMOUSE = (4),
+    SPI_SETMOUSEBUTTONSWAP = (33),
+    SPI_SETMOUSEKEYS = (55),
+    SPI_SETMOUSETRAILS = (93),
+    SPI_SETNONCLIENTMETRICS = (42),
+    SPI_SETPENWINDOWS = (49),
+    SPI_SETPOWEROFFACTIVE = (86),
+    SPI_SETPOWEROFFTIMEOUT = (82),
+    SPI_SETSCREENREADER = (71),
+    SPI_SETSCREENSAVEACTIVE = (17),
+    SPI_SETSCREENSAVETIMEOUT = (15),
+    SPI_SETSERIALKEYS = (63),
+    SPI_SETSHOWSOUNDS = (57),
+    SPI_SETSOUNDSENTRY = (65),
+    SPI_SETSTICKYKEYS = (59),
+    SPI_SETTOGGLEKEYS = (53),
+    SPI_SETWORKAREA = (47),
+    SPIF_UPDATEINIFILE = (1),
+    SPIF_SENDWININICHANGE = (2),
+    SPIF_SENDCHANGE = (2),
+    TPM_CENTERALIGN = (0x4),
+    TPM_LEFTALIGN = (0),
+    TPM_RIGHTALIGN = (0x8),
+    TPM_LEFTBUTTON = (0),
+    TPM_RIGHTBUTTON = (0x2),
+    TPM_HORIZONTAL = (0),
+    TPM_VERTICAL = (0x40),
+    TCI_SRCCHARSET = (1),
+    TCI_SRCCODEPAGE = (2),
+    TCI_SRCFONTSIG = (3),
+    VFFF_ISSHAREDFILE = (1),
+    VFF_CURNEDEST = (1),
+    VFF_FILEINUSE = (2),
+    VFF_BUFFTOOSMALL = (4),
+    VIFF_FORCEINSTALL = (1),
+    VIFF_DONTDELETEOLD = (2),
+    VIF_TEMPFILE = (0x1),
+    VIF_MISMATCH = (0x2),
+    VIF_SRCOLD = (0x4),
+    VIF_DIFFLANG = (0x8),
+    VIF_DIFFCODEPG = (0x10),
+    VIF_DIFFTYPE = (0x20),
+    VIF_WRITEPROT = (0x40),
+    VIF_FILEINUSE = (0x80),
+    VIF_OUTOFSPACE = (0x100),
+    VIF_ACCESSVIOLATION = (0x200),
+    VIF_SHARINGVIOLATION = (0x400),
+    VIF_CANNOTCREATE = (0x800),
+    VIF_CANNOTDELETE = (0x1000),
+    VIF_CANNOTDELETECUR = (0x4000),
+    VIF_CANNOTRENAME = (0x2000),
+    VIF_OUTOFMEMORY = (0x8000),
+    VIF_CANNOTREADSRC = (0x10000),
+    VIF_CANNOTREADDST = (0x20000),
+    VIF_BUFFTOOSMALL = (0x40000),
+    WC_COMPOSITECHECK = (512),
+    WC_DISCARDNS = (16),
+    WC_SEPCHARS = (32),
+    WC_DEFAULTCHAR = (64),
+    HELP_COMMAND = (0x102),
+    HELP_CONTENTS = (0x3),
+    HELP___FILE__ = (0x1),
+    HELP___FILE__POPUP = (0x8),
+    HELP_FORCEFILE = (0x9),
+    HELP_HELPONHELP = (0x4),
+    HELP_INDEX = (0x3),
+    HELP_KEY = (0x101),
+    HELP_MULTIKEY = (0x201),
+    HELP_PARTIALKEY = (0x105),
+    HELP_QUIT = (0x2),
+    HELP_SETCONTENTS = (0x5),
+    HELP_SETINDEX = (0x5),
+    HELP___FILE__MENU = (0xa),
+    HELP_FINDER = (0xb),
+    HELP_WM_HELP = (0xc),
+    HELP_TCARD = (0x8000),
+    HELP_TCARD_DATA = (0x10),
+    HELP_TCARD_OTHER_CALLER = (0x11),
+    CONNECT_UPDATE_PROFILE = (1),
+    RESOURCETYPE_DISK = (1),
+    RESOURCETYPE_PRINT = (2),
+    RESOURCETYPE_ANY = (0),
+    RESOURCE_CONNECTED = (1),
+    RESOURCE_GLOBALNET = (2),
+    RESOURCE_REMEMBERED = (3),
+    RESOURCEUSAGE_CONNECTABLE = (1),
+    RESOURCEUSAGE_CONTAINER = (2),
+    WN_BAD_NETNAME = (0x43),
+    WN_EXTENDED_ERROR = (0x4b8),
+    WN_MORE_DATA = (0xea),
+    WN_NO_NETWORK = (0x4c6),
+    WN_SUCCESS = (0),
+    WN_ACCESS_DENIED = (0x5),
+    WN_BAD_PROVIDER = (0x4b4),
+    WN_NOT_AUTHENTICATED = (0x4dc),
+    UNIVERSAL_NAME_INFO_LEVEL = (1),
+    REMOTE_NAME_INFO_LEVEL = (2),
+    STILL_ACTIVE = (0x103),
+    SP_SERIALCOMM = (0x1),
+    BAUD_075 = (0x1),
+    BAUD_110 = (0x2),
+    BAUD_134_5 = (0x4),
+    BAUD_150 = (0x8),
+    BAUD_300 = (0x10),
+    BAUD_600 = (0x20),
+    BAUD_1200 = (0x40),
+    BAUD_1800 = (0x80),
+    BAUD_2400 = (0x100),
+    BAUD_4800 = (0x200),
+    BAUD_7200 = (0x400),
+    BAUD_9600 = (0x800),
+    BAUD_14400 = (0x1000),
+    BAUD_19200 = (0x2000),
+    BAUD_38400 = (0x4000),
+    BAUD_56K = (0x8000),
+    BAUD_57600 = (0x40000),
+    BAUD_115200 = (0x20000),
+    BAUD_128K = (0x10000),
+    BAUD_USER = (0x10000000),
+    PST_FAX = (0x21),
+    PST_LAT = (0x101),
+    PST_MODEM = (0x6),
+    PST_NETWORK_BRIDGE = (0x100),
+    PST_PARALLELPORT = (0x2),
+    PST_RS232 = (0x1),
+    PST_RS422 = (0x3),
+    PST_RS423 = (0x4),
+    PST_RS449 = (0x5),
+    PST_SCANNER = (0x22),
+    PST_TCPIP_TELNET = (0x102),
+    PST_UNSPECIFIED = (0),
+    PST_X25 = (0x103),
+    PCF_16BITMODE = (0x200),
+    PCF_DTRDSR = (0x1),
+    PCF_INTTIMEOUTS = (0x80),
+    PCF_PARITY_CHECK = (0x8),
+    PCF_RLSD = (0x4),
+    PCF_RTSCTS = (0x2),
+    PCF_SETXCHAR = (0x20),
+    PCF_SPECIALCHARS = (0x100),
+    PCF_TOTALTIMEOUTS = (0x40),
+    PCF_XONXOFF = (0x10),
+    SP_BAUD = (0x2),
+    SP_DATABITS = (0x4),
+    SP_HANDSHAKING = (0x10),
+    SP_PARITY = (0x1),
+    SP_PARITY_CHECK = (0x20),
+    SP_RLSD = (0x40),
+    SP_STOPBITS = (0x8),
+    DATABITS_5 = (1),
+    DATABITS_6 = (2),
+    DATABITS_7 = (4),
+    DATABITS_8 = (8),
+    DATABITS_16 = (16),
+    DATABITS_16X = (32),
+    STOPBITS_10 = (1),
+    STOPBITS_15 = (2),
+    STOPBITS_20 = (4),
+    PARITY_NONE = (256),
+    PARITY_ODD = (512),
+    PARITY_EVEN = (1024),
+    PARITY_MARK = (2048),
+    PARITY_SPACE = (4096),
+    COMMPROP_INITIALIZED = (0xe73cf52e),
+    CBR_110 = (110),
+    CBR_300 = (300),
+    CBR_600 = (600),
+    CBR_1200 = (1200),
+    CBR_2400 = (2400),
+    CBR_4800 = (4800),
+    CBR_9600 = (9600),
+    CBR_14400 = (14400),
+    CBR_19200 = (19200),
+    CBR_38400 = (38400),
+    CBR_56000 = (56000),
+    CBR_57600 = (57600),
+    CBR_115200 = (115200),
+    CBR_128000 = (128000),
+    CBR_256000 = (256000),
+    DTR_CONTROL_DISABLE = (0),
+    DTR_CONTROL_ENABLE = (1),
+    DTR_CONTROL_HANDSHAKE = (2),
+    RTS_CONTROL_DISABLE = (0),
+    RTS_CONTROL_ENABLE = (1),
+    RTS_CONTROL_HANDSHAKE = (2),
+    RTS_CONTROL_TOGGLE = (3),
+    EVENPARITY = (2),
+    MARKPARITY = (3),
+    NOPARITY = (0),
+    ODDPARITY = (1),
+    SPACEPARITY = (4),
+    ONESTOPBIT = (0),
+    ONE5STOPBITS = (1),
+    TWOSTOPBITS = (2),
+    CREATE_PROCESS_DEBUG_EVENT = (3),
+    CREATE_THREAD_DEBUG_EVENT = (2),
+    EXCEPTION_DEBUG_EVENT = (1),
+    EXIT_PROCESS_DEBUG_EVENT = (5),
+    EXIT_THREAD_DEBUG_EVENT = (4),
+    LOAD_DLL_DEBUG_EVENT = (6),
+    OUTPUT_DEBUG_STRING_EVENT = (8),
+    UNLOAD_DLL_DEBUG_EVENT = (7),
+    RIP_EVENT = (9),
+    PROCESS_HEAP_REGION = (1),
+    PROCESS_HEAP_UNCOMMITTED_RANGE = (2),
+    PROCESS_HEAP_ENTRY_BUSY = (4),
+    PROCESS_HEAP_ENTRY_MOVEABLE = (16),
+    PROCESS_HEAP_ENTRY_DDESHARE = (32),
+    HINSTANCE_ERROR = (32),
+    BACKUP_DATA = (1),
+    BACKUP_EA_DATA = (2),
+    BACKUP_SECURITY_DATA = (3),
+    BACKUP_ALTERNATE_DATA = (4),
+    BACKUP_LINK = (5),
+    STREAM_MODIFIED_WHEN_READ = (1),
+    STREAM_CONTAINS_SECURITY = (2),
+    STARTF_USESHOWWINDOW = (1),
+    STARTF_USEPOSITION = (4),
+    STARTF_USESIZE = (2),
+    STARTF_USECOUNTCHARS = (8),
+    STARTF_USEFILLATTRIBUTE = (16),
+    STARTF_RUNFULLSCREEN = (32),
+    STARTF_FORCEONFEEDBACK = (64),
+    STARTF_FORCEOFFFEEDBACK = (128),
+    STARTF_USESTDHANDLES = (256),
+    STARTF_USEHOTKEY = (512),
+    VER_PLATFORM_WIN32s = (0),
+    VER_PLATFORM_WIN32_WINDOWS = (1),
+    VER_PLATFORM_WIN32_NT = (2),
+    MAXPROPPAGES = (100),
+    PSP_DEFAULT = (0),
+    PSP_DLGINDIRECT = (1),
+    PSP_HASHELP = (32),
+    PSP_USECALLBACK = (128),
+    PSP_USEHICON = (2),
+    PSP_USEICONID = (4),
+    PSP_USEREFPARENT = (64),
+    PSP_USETITLE = (8),
+    PSP_RTLREADING = (16),
+    PSH_DEFAULT = (0),
+    PSH_HASHELP = (512),
+    PSH_MODELESS = (1024),
+    PSH_NOAPPLYNOW = (128),
+    PSH_PROPSHEETPAGE = (8),
+    PSH_PROPTITLE = (1),
+    PSH_USECALLBACK = (256),
+    PSH_USEHICON = (2),
+    PSH_USEICONID = (4),
+    PSH_USEPSTARTPAGE = (64),
+    PSH_WIZARD = (32),
+    PSH_RTLREADING = (2048),
+    PSCB_INITIALIZED = (1),
+    PSCB_PRECREATE = (2),
+    PSNRET_NOERROR = (0),
+    PSNRET_INVALID_NOCHANGEPAGE = (2),
+    PSBTN_APPLYNOW = (4),
+    PSBTN_BACK = (0),
+    PSBTN_CANCEL = (5),
+    PSBTN_FINISH = (2),
+    PSBTN_HELP = (6),
+    PSBTN_NEXT = (1),
+    PSBTN_OK = (3),
+    PSWIZB_BACK = (1),
+    PSWIZB_NEXT = (2),
+    PSWIZB_FINISH = (4),
+    PSWIZB_DISABLEDFINISH = (8),
+    ID_PSREBOOTSYSTEM = (3),
+    ID_PSRESTARTWINDOWS = (2),
+    WIZ_BODYCX = (184),
+    WIZ_BODYX = (92),
+    WIZ_CXBMP = (80),
+    WIZ_CXDLG = (276),
+    WIZ_CYDLG = (140),
+}
+char* VS_FILE_INFO = cast(char*) ((16));
+enum : DWORD {
+    VS_VERSION_INFO = (1),
+    VS_FF_DEBUG = (0x1),
+    VS_FF_INFOINFERRED = (0x10),
+    VS_FF_PATCHED = (0x4),
+    VS_FF_PRERELEASE = (0x2),
+    VS_FF_PRIVATEBUILD = (0x8),
+    VS_FF_SPECIALBUILD = (0x20),
+    VOS_UNKNOWN = (0),
+    VOS_DOS = (0x10000),
+    VOS_OS216 = (0x20000),
+    VOS_OS232 = (0x30000),
+    VOS_NT = (0x40000),
+    VOS_DOS_WINDOWS16 = (0x10001),
+    VOS_DOS_WINDOWS32 = (0x10004),
+    VOS_OS216_PM16 = (0x20002),
+    VOS_OS232_PM32 = (0x30003),
+    VOS_NT_WINDOWS32 = (0x40004),
+    VFT_UNKNOWN = (0),
+    VFT_APP = (0x1),
+    VFT_DLL = (0x2),
+    VFT_DRV = (0x3),
+    VFT_FONT = (0x4),
+    VFT_VXD = (0x5),
+    VFT_STATIC_LIB = (0x7),
+    VFT2_UNKNOWN = (0),
+    VFT2_DRV_PRINTER = (0x1),
+    VFT2_DRV_KEYBOARD = (0x2),
+    VFT2_DRV_LANGUAGE = (0x3),
+    VFT2_DRV_DISPLAY = (0x4),
+    VFT2_DRV_MOUSE = (0x5),
+    VFT2_DRV_NETWORK = (0x6),
+    VFT2_DRV_SYSTEM = (0x7),
+    VFT2_DRV_INSTALLABLE = (0x8),
+    VFT2_DRV_SOUND = (0x9),
+    VFT2_FONT_RASTER = (0x1),
+    VFT2_FONT_VECTOR = (0x2),
+    VFT2_FONT_TRUETYPE = (0x3),
+    PAN_ANY = (0),
+    PAN_NO_FIT = (1),
+    PAN_FAMILY_TEXT_DISPLAY = (2),
+    PAN_FAMILY_SCRIPT = (3),
+    PAN_FAMILY_DECORATIVE = (4),
+    PAN_FAMILY_PICTORIAL = (5),
+    PAN_SERIF_COVE = (2),
+    PAN_SERIF_OBTUSE_COVE = (3),
+    PAN_SERIF_SQUARE_COVE = (4),
+    PAN_SERIF_OBTUSE_SQUARE_COVE = (5),
+    PAN_SERIF_SQUARE = (6),
+    PAN_SERIF_THIN = (7),
+    PAN_SERIF_BONE = (8),
+    PAN_SERIF_EXAGGERATED = (9),
+    PAN_SERIF_TRIANGLE = (10),
+    PAN_SERIF_NORMAL_SANS = (11),
+    PAN_SERIF_OBTUSE_SANS = (12),
+    PAN_SERIF_PERP_SANS = (13),
+    PAN_SERIF_FLARED = (14),
+    PAN_SERIF_ROUNDED = (15),
+    PAN_WEIGHT_VERY_LIGHT = (2),
+    PAN_WEIGHT_LIGHT = (3),
+    PAN_WEIGHT_THIN = (4),
+    PAN_WEIGHT_BOOK = (5),
+    PAN_WEIGHT_MEDIUM = (6),
+    PAN_WEIGHT_DEMI = (7),
+    PAN_WEIGHT_BOLD = (8),
+    PAN_WEIGHT_HEAVY = (9),
+    PAN_WEIGHT_BLACK = (10),
+    PAN_WEIGHT_NORD = (11),
+    PAN_PROP_OLD_STYLE = (2),
+    PAN_PROP_MODERN = (3),
+    PAN_PROP_EVEN_WIDTH = (4),
+    PAN_PROP_EXPANDED = (5),
+    PAN_PROP_CONDENSED = (6),
+    PAN_PROP_VERY_EXPANDED = (7),
+    PAN_PROP_VERY_CONDENSED = (8),
+    PAN_PROP_MONOSPACED = (9),
+    PAN_CONTRAST_NONE = (2),
+    PAN_CONTRAST_VERY_LOW = (3),
+    PAN_CONTRAST_LOW = (4),
+    PAN_CONTRAST_MEDIUM_LOW = (5),
+    PAN_CONTRAST_MEDIUM = (6),
+    PAN_CONTRAST_MEDIUM_HIGH = (7),
+    PAN_CONTRAST_HIGH = (8),
+    PAN_CONTRAST_VERY_HIGH = (9),
+    PAN_STROKE_GRADUAL_DIAG = (2),
+    PAN_STROKE_GRADUAL_TRAN = (3),
+    PAN_STROKE_GRADUAL_VERT = (4),
+    PAN_STROKE_GRADUAL_HORZ = (5),
+    PAN_STROKE_RAPID_VERT = (6),
+    PAN_STROKE_RAPID_HORZ = (7),
+    PAN_STROKE_INSTANT_VERT = (8),
+    PAN_STRAIGHT_ARMS_HORZ = (2),
+    PAN_STRAIGHT_ARMS_WEDGE = (3),
+    PAN_STRAIGHT_ARMS_VERT = (4),
+    PAN_STRAIGHT_ARMS_SINGLE_SERIF = (5),
+    PAN_STRAIGHT_ARMS_DOUBLE_SERIF = (6),
+    PAN_BENT_ARMS_HORZ = (7),
+    PAN_BENT_ARMS_VERT = (9),
+    PAN_BENT_ARMS_WEDGE = (8),
+    PAN_BENT_ARMS_SINGLE_SERIF = (10),
+    PAN_BENT_ARMS_DOUBLE_SERIF = (11),
+    PAN_LETT_NORMAL_CONTACT = (2),
+    PAN_LETT_NORMAL_WEIGHTED = (3),
+    PAN_LETT_NORMAL_BOXED = (4),
+    PAN_LETT_NORMAL_FLATTENED = (5),
+    PAN_LETT_NORMAL_ROUNDED = (6),
+    PAN_LETT_NORMAL_OFF_CENTER = (7),
+    PAN_LETT_NORMAL_SQUARE = (8),
+    PAN_LETT_OBLIQUE_CONTACT = (9),
+    PAN_LETT_OBLIQUE_WEIGHTED = (10),
+    PAN_LETT_OBLIQUE_BOXED = (11),
+    PAN_LETT_OBLIQUE_FLATTENED = (12),
+    PAN_LETT_OBLIQUE_ROUNDED = (13),
+    PAN_LETT_OBLIQUE_OFF_CENTER = (14),
+    PAN_LETT_OBLIQUE_SQUARE = (15),
+    PAN_MIDLINE_STANDARD_TRIMMED = (2),
+    PAN_MIDLINE_STANDARD_POINTED = (3),
+    PAN_MIDLINE_STANDARD_SERIFED = (4),
+    PAN_MIDLINE_HIGH_TRIMMED = (5),
+    PAN_MIDLINE_HIGH_POINTED = (6),
+    PAN_MIDLINE_HIGH_SERIFED = (7),
+    PAN_MIDLINE_CONSTANT_TRIMMED = (8),
+    PAN_MIDLINE_CONSTANT_POINTED = (9),
+    PAN_MIDLINE_CONSTANT_SERIFED = (10),
+    PAN_MIDLINE_LOW_TRIMMED = (11),
+    PAN_MIDLINE_LOW_POINTED = (12),
+    PAN_MIDLINE_LOW_SERIFED = (13),
+    PAN_XHEIGHT_CONSTANT_SMALL = (2),
+    PAN_XHEIGHT_CONSTANT_STD = (3),
+    PAN_XHEIGHT_CONSTANT_LARGE = (4),
+    PAN_XHEIGHT_DUCKING_SMALL = (5),
+    PAN_XHEIGHT_DUCKING_STD = (6),
+    PAN_XHEIGHT_DUCKING_LARGE = (7),
+    PC_EXPLICIT = (2),
+    PC_NOCOLLAPSE = (4),
+    PC_RESERVED = (1),
+    BS_DIBPATTERN = (5),
+    BS_DIBPATTERN8X8 = (8),
+    BS_DIBPATTERNPT = (6),
+    BS_HATCHED = (2),
+    BS_HOLLOW = (1),
+    BS_NULL = (1),
+    BS_PATTERN = (3),
+    BS_PATTERN8X8 = (7),
+    BS_SOLID = (0),
+    DM_ORIENTATION = (0x1),
+    DM_PAPERSIZE = (0x2),
+    DM_PAPERLENGTH = (0x4),
+    DM_PAPERWIDTH = (0x8),
+    DM_SCALE = (0x10),
+    DM_COPIES = (0x100),
+    DM_DEFAULTSOURCE = (0x200),
+    DM_PRINTQUALITY = (0x400),
+    DM_COLOR = (0x800),
+    DM_DUPLEX = (0x1000),
+    DM_YRESOLUTION = (0x2000),
+    DM_TTOPTION = (0x4000),
+    DM_COLLATE = (0x8000),
+    DM_FORMNAME = (0x10000),
+    DM_LOGPIXELS = (0x20000),
+    DM_ICMMETHOD = (0x800000),
+    DM_ICMINTENT = (0x1000000),
+    DM_MEDIATYPE = (0x2000000),
+    DM_DITHERTYPE = (0x4000000),
+    DMORIENT_LANDSCAPE = (2),
+    DMORIENT_PORTRAIT = (1),
+    DMPAPER_LETTER = (1),
+    DMPAPER_LEGAL = (5),
+    DMPAPER_A4 = (9),
+    DMPAPER_CSHEET = (24),
+    DMPAPER_DSHEET = (25),
+    DMPAPER_ESHEET = (26),
+    DMPAPER_LETTERSMALL = (2),
+    DMPAPER_TABLOID = (3),
+    DMPAPER_LEDGER = (4),
+    DMPAPER_STATEMENT = (6),
+    DMPAPER_EXECUTIVE = (7),
+    DMPAPER_A3 = (8),
+    DMPAPER_A4SMALL = (10),
+    DMPAPER_A5 = (11),
+    DMPAPER_B4 = (12),
+    DMPAPER_B5 = (13),
+    DMPAPER_FOLIO = (14),
+    DMPAPER_QUARTO = (15),
+    DMPAPER_10X14 = (16),
+    DMPAPER_11X17 = (17),
+    DMPAPER_NOTE = (18),
+    DMPAPER_ENV_9 = (19),
+    DMPAPER_ENV_10 = (20),
+    DMPAPER_ENV_11 = (21),
+    DMPAPER_ENV_12 = (22),
+    DMPAPER_ENV_14 = (23),
+    DMPAPER_ENV_DL = (27),
+    DMPAPER_ENV_C5 = (28),
+    DMPAPER_ENV_C3 = (29),
+    DMPAPER_ENV_C4 = (30),
+    DMPAPER_ENV_C6 = (31),
+    DMPAPER_ENV_C65 = (32),
+    DMPAPER_ENV_B4 = (33),
+    DMPAPER_ENV_B5 = (34),
+    DMPAPER_ENV_B6 = (35),
+    DMPAPER_ENV_ITALY = (36),
+    DMPAPER_ENV_MONARCH = (37),
+    DMPAPER_ENV_PERSONAL = (38),
+    DMPAPER_FANFOLD_US = (39),
+    DMPAPER_FANFOLD_STD_GERMAN = (40),
+    DMPAPER_FANFOLD_LGL_GERMAN = (41),
+    DMRES_HIGH = -((4)),
+    DMRES_MEDIUM = -((3)),
+    DMRES_LOW = -((2)),
+    DMRES_DRAFT = -((1)),
+    DMCOLOR_COLOR = (2),
+    DMCOLOR_MONOCHROME = (1),
+    DMDUP_SIMPLEX = (1),
+    DMDUP_HORIZONTAL = (3),
+    DMDUP_VERTICAL = (2),
+    DMTT_BITMAP = (1),
+    DMTT_DOWNLOAD = (2),
+    DMTT_SUBDEV = (3),
+    DMCOLLATE_TRUE = (1),
+    DMCOLLATE_FALSE = (0),
+    DM_GRAYSCALE = (1),
+    DM_INTERLACED = (2),
+    DMICMMETHOD_NONE = (1),
+    DMICMMETHOD_SYSTEM = (2),
+    DMICMMETHOD_DRIVER = (3),
+    DMICMMETHOD_DEVICE = (4),
+    DMICMMETHOD_USER = (256),
+    DMICM_SATURATE = (1),
+    DMICM_CONTRAST = (2),
+    DMICM_COLORMETRIC = (3),
+    DMICM_USER = (256),
+    DMMEDIA_STANDARD = (1),
+    DMMEDIA_GLOSSY = (3),
+    DMMEDIA_TRANSPARENCY = (2),
+    DMMEDIA_USER = (256),
+    DMDITHER_NONE = (1),
+    DMDITHER_COARSE = (2),
+    DMDITHER_FINE = (3),
+    DMDITHER_LINEART = (4),
+    DMDITHER_GRAYSCALE = (10),
+    DMDITHER_USER = (256),
+    RDH_RECTANGLES = (1),
+    TT_POLYGON_TYPE = (24),
+    TT_PRIM_LINE = (1),
+    TT_PRIM_QSPLINE = (2),
+    GCPCLASS_ARABIC = (2),
+    GCPCLASS_HEBREW = (2),
+    GCPCLASS_LATIN = (1),
+    GCPCLASS_LATINNUMBER = (5),
+    GCPCLASS_LOCALNUMBER = (4),
+    GCPCLASS_LATINNUMERICSEPARATOR = (7),
+    GCPCLASS_LATINNUMERICTERMINATOR = (6),
+    GCPCLASS_NEUTRAL = (3),
+    GCPCLASS_NUMERICSEPARATOR = (8),
+    GCPCLASS_PREBOUNDLTR = (128),
+    GCPCLASS_PREBOUNDRTL = (64),
+    GCPCLASS_POSTBOUNDLTR = (32),
+    GCPCLASS_POSTBOUNDRTL = (16),
+    GCPGLYPH_LINKBEFORE = (32768),
+    GCPGLYPH_LINKAFTER = (16384),
+    TT_AVAILABLE = (1),
+    TT_ENABLED = (2),
+    CA_NEGATIVE = (1),
+    CA_LOG_FILTER = (2),
+    ILLUMINANT_DEVICE_DEFAULT = (0),
+    ILLUMINANT_A = (1),
+    ILLUMINANT_B = (2),
+    ILLUMINANT_C = (3),
+    ILLUMINANT_D50 = (4),
+    ILLUMINANT_D55 = (5),
+    ILLUMINANT_D65 = (6),
+    ILLUMINANT_D75 = (7),
+    ILLUMINANT_F2 = (8),
+    ILLUMINANT_TUNGSTEN = (1),
+    ILLUMINANT_DAYLIGHT = (3),
+    ILLUMINANT_FLUORESCENT = (8),
+    ILLUMINANT_NTSC = (3),
+    DI_APPBANDING = (1),
+    EMR_HEADER = (1),
+    ENHMETA_SIGNATURE = (1179469088),
+    ENM_CHANGE = (1),
+    ENM_CORRECTTEXT = (4194304),
+    ENM_DROPFILES = (1048576),
+    ENM_KEYEVENTS = (65536),
+    ENM_MOUSEEVENTS = (131072),
+    ENM_PROTECTED = (2097152),
+    ENM_REQUESTRESIZE = (262144),
+    ENM_SCROLL = (4),
+    ENM_SELCHANGE = (524288),
+    ENM_UPDATE = (2),
+    ENM_NONE = (0),
+    ES_DISABLENOSCROLL = (8192),
+    ES_EX_NOCALLOLEINIT = (16777216),
+    ES_NOIME = (524288),
+    ES_SAVESEL = (32768),
+    ES_SELFIME = (262144),
+    ES_SUNKEN = (16384),
+    ES_VERTICAL = (4194304),
+    ES_SELECTIONBAR = (16777216),
+    ECOOP_SET = (1),
+    ECOOP_OR = (2),
+    ECOOP_AND = (3),
+    ECOOP_XOR = (4),
+    ECO_AUTOWORDSELECTION = (1),
+    ECO_AUTOVSCROLL = (64),
+    ECO_AUTOHSCROLL = (128),
+    ECO_NOHIDESEL = (256),
+    ECO_READONLY = (2048),
+    ECO_WANTRETURN = (4096),
+    ECO_SAVESEL = (32768),
+    ECO_SELECTIONBAR = (16777216),
+    ECO_VERTICAL = (4194304),
+    SCF_WORD = (2),
+    SCF_SELECTION = (1),
+    SF_TEXT = (1),
+    SF_RTF = (2),
+    SF_RTFNOOBJS = (3),
+    SF_TEXTIZED = (4),
+    SFF_SELECTION = (32768),
+    SFF_PLAINRTF = (16384),
+    WB_CLASSIFY = (3),
+    WB_LEFTBREAK = (6),
+    WB_PREVBREAK = (6),
+    WB_MOVEWORDLEFT = (4),
+    WB_MOVEWORDPREV = (4),
+    WB_MOVEWORDRIGHT = (5),
+    WB_MOVEWORDNEXT = (5),
+    WB_RIGHTBREAK = (7),
+    WB_NEXTBREAK = (7),
+    PC_LEADING = (2),
+    PC_FOLLOWING = (1),
+    PC_DELIMITER = (4),
+    PC_OVERFLOW = (3),
+    WBF_WORDWRAP = (16),
+    WBF_WORDBREAK = (32),
+    WBF_OVERFLOW = (64),
+    WBF_LEVEL1 = (128),
+    WBF_LEVEL2 = (256),
+    WBF_CUSTOM = (512),
+    WBF_BREAKAFTER = (64),
+    WBF_BREAKLINE = (32),
+    WBF_ISWHITE = (16),
+    CFM_BOLD = (1),
+    CFM_COLOR = (1073741824),
+    CFM_FACE = (536870912),
+    CFM_ITALIC = (2),
+    CFM_OFFSET = (268435456),
+    CFM_PROTECTED = (16),
+    CFM_SIZE = (0x80000000),
+    CFM_STRIKEOUT = (8),
+    CFM_UNDERLINE = (4),
+    CFE_AUTOCOLOR = (1073741824),
+    CFE_BOLD = (1),
+    CFE_ITALIC = (2),
+    CFE_STRIKEOUT = (8),
+    CFE_UNDERLINE = (4),
+    CFE_PROTECTED = (16),
+    PFM_ALIGNMENT = (8),
+    PFM_NUMBERING = (32),
+    PFM_OFFSET = (4),
+    PFM_OFFSETINDENT = (0x80000000),
+    PFM_RIGHTINDENT = (2),
+    PFM_STARTINDENT = (1),
+    PFM_TABSTOPS = (16),
+    PFN_BULLET = (1),
+    PFA_LEFT = (1),
+    PFA_RIGHT = (2),
+    PFA_CENTER = (3),
+    SEL_EMPTY = (0),
+    SEL_TEXT = (1),
+    SEL_OBJECT = (2),
+    SEL_MULTICHAR = (4),
+    SEL_MULTIOBJECT = (8),
+}
+const {
+char* CF_RTF = ("Rich Text Format");
+char* CF_RETEXTOBJ = ("RichEdit Text and Objects");
+}
+enum : DWORD {
+    ODT_BUTTON = (4),
+    ODT_COMBOBOX = (3),
+    ODT_LISTBOX = (2),
+    ODT_LISTVIEW = (102),
+    ODT_MENU = (1),
+    ODT_STATIC = (5),
+    ODT_TAB = (101),
+    ODT_HEADER = (100),
+    ODA_DRAWENTIRE = (1),
+    ODA_FOCUS = (4),
+    ODA_SELECT = (2),
+    ODS_CHECKED = (8),
+    ODS_COMBOBOXEDIT = (4096),
+    ODS_DEFAULT = (32),
+    ODS_DISABLED = (4),
+    ODS_FOCUS = (16),
+    ODS_GRAYED = (2),
+    ODS_SELECTED = (1),
+}
+const {
+char* ANIMATE_CLASSW = ("SysAnimate32");
+char* HOTKEY_CLASSW = ("msctls_hotkey32");
+char* PROGRESS_CLASSW = ("msctls_progress32");
+char* STATUSCLASSNAMEW = ("msctls_statusbar32");
+char* TOOLBARCLASSNAMEW = ("ToolbarWindow32");
+char* TOOLTIPS_CLASSW = ("tooltips_class32");
+char* TRACKBAR_CLASSW = ("msctls_trackbar32");
+char* UPDOWN_CLASSW = ("msctls_updown32");
+char* WC_HEADERW = ("SysHeader32");
+char* WC_LISTVIEWW = ("SysListView32");
+char* WC_TABCONTROLW = ("SysTabControl32");
+char* WC_TREEVIEWW = ("SysTreeView32");
+}
+enum : DWORD {
+    CCS_ADJUSTABLE = (0x20),
+    CCS_BOTTOM = (0x3),
+    CCS_NODIVIDER = (0x40),
+    CCS_NOMOVEY = (0x2),
+    CCS_NOPARENTALIGN = (0x8),
+    CCS_NORESIZE = (0x4),
+    CCS_TOP = (0x1),
+}
+const {
+char* ANIMATE_CLASSA = ("SysAnimate32");
+char* HOTKEY_CLASSA = ("msctls_hotkey32");
+char* PROGRESS_CLASSA = ("msctls_progress32");
+char* STATUSCLASSNAMEA = ("msctls_statusbar32");
+char* TOOLBARCLASSNAMEA = ("ToolbarWindow32");
+char* TOOLTIPS_CLASSA = ("tooltips_class32");
+char* TRACKBAR_CLASSA = ("msctls_trackbar32");
+char* UPDOWN_CLASSA = ("msctls_updown32");
+char* WC_HEADERA = ("SysHeader32");
+char* WC_LISTVIEWA = ("SysListView32");
+char* WC_TABCONTROLA = ("SysTabControl32");
+char* WC_TREEVIEWA = ("SysTreeView32");
+char* ANIMATE_CLASS = (ANIMATE_CLASSA);
+char* HOTKEY_CLASS = (HOTKEY_CLASSA);
+char* PROGRESS_CLASS = (PROGRESS_CLASSA);
+char* STATUSCLASSNAME = (STATUSCLASSNAMEA);
+char* TOOLBARCLASSNAME = (TOOLBARCLASSNAMEA);
+char* TOOLTIPS_CLASS = (TOOLTIPS_CLASSA);
+char* TRACKBAR_CLASS = (TRACKBAR_CLASSA);
+char* UPDOWN_CLASS = (UPDOWN_CLASSA);
+char* WC_HEADER = (WC_HEADERA);
+char* WC_LISTVIEW = (WC_LISTVIEWA);
+char* WC_TABCONTROL = (WC_TABCONTROLA);
+char* WC_TREEVIEW = (WC_TREEVIEWA);
+}
+enum : DWORD {
+    HDS_BUTTONS = (2),
+    HDS_HIDDEN = (8),
+    HDS_HORZ = (0),
+    HDI_BITMAP = (16),
+    HDI_FORMAT = (4),
+    HDI_HEIGHT = (1),
+    HDI_LPARAM = (8),
+    HDI_TEXT = (2),
+    HDI_WIDTH = (1),
+    HDF_CENTER = (2),
+    HDF_LEFT = (0),
+    HDF_RIGHT = (1),
+    HDF_RTLREADING = (4),
+    HDF_BITMAP = (8192),
+    HDF_OWNERDRAW = (32768),
+    HDF_STRING = (16384),
+    HDF_JUSTIFYMASK = (3),
+    HHT_NOWHERE = (1),
+    HHT_ONDIVIDER = (4),
+    HHT_ONDIVOPEN = (8),
+    HHT_ONHEADER = (2),
+    HHT_TOLEFT = (2048),
+    HHT_TORIGHT = (1024),
+    HINST_COMMCTRL = -(1),
+    IDB_STD_LARGE_COLOR = (1),
+    IDB_STD_SMALL_COLOR = (0),
+    IDB_VIEW_LARGE_COLOR = (5),
+    IDB_VIEW_SMALL_COLOR = (4),
+    STD_COPY = (1),
+    STD_CUT = (0),
+    STD_DELETE = (5),
+    STD_FILENEW = (6),
+    STD_FILEOPEN = (7),
+    STD_FILESAVE = (8),
+    STD_FIND = (12),
+    STD_HELP = (11),
+    STD_PASTE = (2),
+    STD_PRINT = (14),
+    STD_PRINTPRE = (9),
+    STD_PROPERTIES = (10),
+    STD_REDOW = (4),
+    STD_REPLACE = (13),
+    STD_UNDO = (3),
+    VIEW_LARGEICONS = (0),
+    VIEW_SMALLICONS = (1),
+    VIEW_LIST = (2),
+    VIEW_DETAILS = (3),
+    VIEW_SORTNAME = (4),
+    VIEW_SORTSIZE = (5),
+    VIEW_SORTDATE = (6),
+    VIEW_SORTTYPE = (7),
+    TBSTYLE_ALTDRAG = (1024),
+    TBSTYLE_TOOLTIPS = (256),
+    TBSTYLE_WRAPABLE = (512),
+    TBSTYLE_BUTTON = (0),
+    TBSTYLE_CHECK = (2),
+    TBSTYLE_CHECKGROUP = (6),
+    TBSTYLE_GROUP = (4),
+    TBSTYLE_SEP = (1),
+    TBSTATE_CHECKED = (1),
+    TBSTATE_ENABLED = (4),
+    TBSTATE_HIDDEN = (8),
+    TBSTATE_INDETERMINATE = (16),
+    TBSTATE_PRESSED = (2),
+    TBSTATE_WRAP = (32),
+    TTS_ALWAYSTIP = (1),
+    TTS_NOPREFIX = (2),
+    TTF_IDISHWND = (1),
+    TTF_CENTERTIP = (2),
+    TTF_RTLREADING = (4),
+    TTF_SUBCLASS = (16),
+    TTDT_AUTOMATIC = (0),
+    TTDT_AUTOPOP = (2),
+    TTDT_INITIAL = (3),
+    TTDT_RESHOW = (1),
+    SBARS_SIZEGRIP = (256),
+    DL_MOVECURSOR = (3),
+    DL_COPYCURSOR = (2),
+    DL_STOPCURSOR = (1),
+    UDS_ALIGNLEFT = (8),
+    UDS_ALIGNRIGHT = (4),
+    UDS_ARROWKEYS = (32),
+    UDS_AUTOBUDDY = (16),
+    UDS_HORZ = (64),
+    UDS_NOTHOUSANDS = (128),
+    UDS_SETBUDDYINT = (2),
+    UDS_WRAP = (1),
+    UD_MAXVAL = (32767),
+    UD_MINVAL = -((32767)),
+    HOTKEYF_ALT = (4),
+    HOTKEYF_CONTROL = (2),
+    HOTKEYF_EXT = (8),
+    HOTKEYF_SHIFT = (1),
+    HKCOMB_A = (8),
+    HKCOMB_C = (4),
+    HKCOMB_CA = (64),
+    HKCOMB_NONE = (1),
+    HKCOMB_S = (2),
+    HKCOMB_SA = (32),
+    HKCOMB_SC = (16),
+    HKCOMB_SCA = (128),
+    TBS_HORZ = (0),
+    TBS_VERT = (2),
+    TBS_AUTOTICKS = (1),
+    TBS_NOTICKS = (16),
+    TBS_TOP = (4),
+    TBS_BOTTOM = (0),
+    TBS_LEFT = (4),
+    TBS_RIGHT = (0),
+    TBS_BOTH = (8),
+    TBS_ENABLESELRANGE = (32),
+    TBS_FIXEDLENGTH = (64),
+    TBS_NOTHUMB = (128),
+    TB_BOTTOM = (7),
+    TB_ENDTRACK = (8),
+    TB_LINEDOWN = (1),
+    TB_LINEUP = (0),
+    TB_PAGEDOWN = (3),
+    TB_PAGEUP = (2),
+    TB_THUMBPOSITION = (4),
+    TB_THUMBTRACK = (5),
+    TB_TOP = (6),
+    LVS_ALIGNLEFT = (2048),
+    LVS_ALIGNTOP = (0),
+    LVS_AUTOARRANGE = (256),
+    LVS_EDITLABELS = (512),
+    LVS_ICON = (0),
+    LVS_LIST = (3),
+    LVS_NOCOLUMNHEADER = (16384),
+    LVS_NOLABELWRAP = (128),
+    LVS_NOSCROLL = (8192),
+    LVS_NOSORTHEADER = (32768),
+    LVS_OWNERDRAWFIXED = (1024),
+    LVS_REPORT = (1),
+    LVS_SHAREIMAGELISTS = (64),
+    LVS_SHOWSELALWAYS = (8),
+    LVS_SINGLESEL = (4),
+    LVS_SMALLICON = (2),
+    LVS_SORTASCENDING = (16),
+    LVS_SORTDESCENDING = (32),
+    LVS_TYPESTYLEMASK = (64512),
+    LVSIL_NORMAL = (0),
+    LVSIL_SMALL = (1),
+    LVSIL_STATE = (2),
+    LVIS_CUT = (4),
+    LVIS_DROPHILITED = (8),
+    LVIS_FOCUSED = (1),
+    LVIS_SELECTED = (2),
+    LVIS_OVERLAYMASK = (3840),
+    LVIS_STATEIMAGEMASK = (61440),
+}
+const {
+    LPWSTR LPSTR_TEXTCALLBACKW = cast(LPWSTR)(-(1));
+    LPSTR  LPSTR_TEXTCALLBACKA = cast(LPSTR)(-(1));
+    version(Win32SansUnicode){
+        alias LPSTR_TEXTCALLBACKA LPSTR_TEXTCALLBACK;
+    }
+    else{
+        alias LPSTR_TEXTCALLBACKW LPSTR_TEXTCALLBACK;
+    }
+}
+enum : DWORD {
+    LVIF_TEXT = (1),
+    LVIF_IMAGE = (2),
+    LVIF_PARAM = (4),
+    LVIF_STATE = (8),
+    LVIF_DI_SETITEM = (4096),
+    LVNI_ABOVE = (256),
+    LVNI_ALL = (0),
+    LVNI_BELOW = (512),
+    LVNI_TOLEFT = (1024),
+    LVNI_TORIGHT = (2048),
+    LVNI_CUT = (4),
+    LVNI_DROPHILITED = (8),
+    LVNI_FOCUSED = (1),
+    LVNI_SELECTED = (2),
+    LVFI_PARAM = (1),
+    LVFI_PARTIAL = (8),
+    LVFI_STRING = (2),
+    LVFI_WRAP = (32),
+    LVFI_NEARESTXY = (64),
+    LVHT_ABOVE = (8),
+    LVHT_BELOW = (16),
+    LVHT_NOWHERE = (1),
+    LVHT_ONITEMICON = (2),
+    LVHT_ONITEMLABEL = (4),
+    LVHT_ONITEMSTATEICON = (8),
+    LVHT_TOLEFT = (64),
+    LVHT_TORIGHT = (32),
+    LVCF_FMT = (1),
+    LVCF_SUBITEM = (8),
+    LVCF_TEXT = (4),
+    LVCF_WIDTH = (2),
+    LVCFMT_CENTER = (2),
+    LVCFMT_LEFT = (0),
+    LVCFMT_RIGHT = (1),
+    LVIR_BOUNDS = (0),
+    LVIR_ICON = (1),
+    LVIR_LABEL = (2),
+    LVIR_SELECTBOUNDS = (3),
+    LVA_ALIGNLEFT = (1),
+    LVA_ALIGNTOP = (2),
+    LVA_DEFAULT = (0),
+    LVA_SNAPTOGRID = (5),
+    LVSCW_AUTOSIZE = -((1)),
+    LVSCW_AUTOSIZE_USEHEADER = -((2)),
+    TVS_DISABLEDRAGDROP = (16),
+    TVS_EDITLABELS = (8),
+    TVS_HASBUTTONS = (1),
+    TVS_HASLINES = (2),
+    TVS_LINESATROOT = (4),
+    TVS_SHOWSELALWAYS = (32),
+    TVIS_BOLD = (16),
+    TVIS_CUT = (4),
+    TVIS_DROPHILITED = (8),
+    TVIS_EXPANDED = (32),
+    TVIS_EXPANDEDONCE = (64),
+    TVIS_FOCUSED = (1),
+    TVIS_OVERLAYMASK = (3840),
+    TVIS_SELECTED = (2),
+    TVIS_STATEIMAGEMASK = (61440),
+    TVIS_USERMASK = (61440),
+    TVIF_CHILDREN = (64),
+    TVIF_HANDLE = (16),
+    TVIF_IMAGE = (2),
+    TVIF_PARAM = (4),
+    TVIF_SELECTEDIMAGE = (32),
+    TVIF_STATE = (8),
+    TVIF_TEXT = (1),
+    I_CHILDRENCALLBACK = -((1)),
+    I_IMAGECALLBACK = -((1)),
+}
+
+struct TREEITEM
+{
+}
+
+alias TREEITEM* HTREEITEM;
+alias TREEITEM TTREEITEM;
+alias TREEITEM* PTREEITEM;
+enum : DWORD {
+    TVI_ROOT = (0xFFFF0000),
+    TVI_FIRST = (0xFFFF0001),
+    TVI_LAST = (0xFFFF0002),
+    TVI_SORT = (0xFFFF0003),
+    TVHT_ABOVE = (256),
+    TVHT_BELOW = (512),
+    TVHT_NOWHERE = (1),
+    TVHT_ONITEM = (70),
+    TVHT_ONITEMBUTTON = (16),
+    TVHT_ONITEMICON = (2),
+    TVHT_ONITEMINDENT = (8),
+    TVHT_ONITEMLABEL = (4),
+    TVHT_ONITEMRIGHT = (32),
+    TVHT_ONITEMSTATEICON = (64),
+    TVHT_TOLEFT = (2048),
+    TVHT_TORIGHT = (1024),
+    TVE_COLLAPSE = (1),
+    TVE_COLLAPSERESET = (32768),
+    TVE_EXPAND = (2),
+    TVE_TOGGLE = (3),
+    TVSIL_NORMAL = (0),
+    TVSIL_STATE = (2),
+    TVGN_CARET = (9),
+    TVGN_CHILD = (4),
+    TVGN_DROPHILITE = (8),
+    TVGN_FIRSTVISIBLE = (5),
+    TVGN_NEXT = (1),
+    TVGN_NEXTVISIBLE = (6),
+    TVGN_PARENT = (3),
+    TVGN_PREVIOUS = (2),
+    TVGN_PREVIOUSVISIBLE = (7),
+    TVGN_ROOT = (0),
+    TVC_BYKEYBOARD = (2),
+    TVC_BYMOUSE = (1),
+    TVC_UNKNOWN = (0),
+    TCS_BUTTONS = (256),
+    TCS_FIXEDWIDTH = (1024),
+    TCS_FOCUSNEVER = (32768),
+    TCS_FOCUSONBUTTONDOWN = (4096),
+    TCS_FORCEICONLEFT = (16),
+    TCS_FORCELABELLEFT = (32),
+    TCS_MULTILINE = (512),
+    TCS_OWNERDRAWFIXED = (8192),
+    TCS_RAGGEDRIGHT = (2048),
+    TCS_RIGHTJUSTIFY = (0),
+    TCS_SINGLELINE = (0),
+    TCS_TABS = (0),
+    TCS_TOOLTIPS = (16384),
+    TCIF_TEXT = (1),
+    TCIF_IMAGE = (2),
+    TCIF_PARAM = (8),
+    TCIF_RTLREADING = (4),
+    TCHT_NOWHERE = (1),
+    TCHT_ONITEM = (6),
+    TCHT_ONITEMICON = (2),
+    TCHT_ONITEMLABEL = (4),
+    ACS_AUTOPLAY = (4),
+    ACS_CENTER = (1),
+    ACS_TRANSPARENT = (2),
+    DIALOPTION_BILLING = (64),
+    DIALOPTION_QUIET = (128),
+    DIALOPTION_DIALTONE = (256),
+    MDMVOLFLAG_LOW = (1),
+    MDMVOLFLAG_MEDIUM = (2),
+    MDMVOLFLAG_HIGH = (4),
+    MDMVOL_LOW = (0),
+    MDMVOL_MEDIUM = (1),
+    MDMVOL_HIGH = (2),
+    MDMSPKRFLAG_OFF = (1),
+    MDMSPKRFLAG_DIAL = (2),
+    MDMSPKRFLAG_ON = (4),
+    MDMSPKRFLAG_CALLSETUP = (8),
+    MDMSPKR_OFF = (0),
+    MDMSPKR_DIAL = (1),
+    MDMSPKR_ON = (2),
+    MDMSPKR_CALLSETUP = (3),
+    MDM_BLIND_DIAL = (512),
+    MDM_CCITT_OVERRIDE = (64),
+    MDM_CELLULAR = (8),
+    MDM_COMPRESSION = (1),
+    MDM_ERROR_CONTROL = (2),
+    MDM_FLOWCONTROL_HARD = (16),
+    MDM_FLOWCONTROL_SOFT = (32),
+    MDM_FORCED_EC = (4),
+    MDM_SPEED_ADJUST = (128),
+    MDM_TONE_DIAL = (256),
+    MDM_V23_OVERRIDE = (1024),
+    LANG_BULGARIAN = (2),
+    LANG_CHINESE = (4),
+    LANG_CROATIAN = (26),
+    LANG_CZECH = (5),
+    LANG_DANISH = (6),
+    LANG_DUTCH = (19),
+    LANG_ENGLISH = (9),
+    LANG_FINNISH = (11),
+    LANG_FRENCH = (12),
+    LANG_GERMAN = (7),
+    LANG_GREEK = (8),
+    LANG_HUNGARIAN = (14),
+    LANG_ICELANDIC = (15),
+    LANG_ITALIAN = (16),
+    LANG_JAPANESE = (17),
+    LANG_KOREAN = (18),
+    LANG_NEUTRAL = (0),
+    LANG_NORWEGIAN = (20),
+    LANG_POLISH = (21),
+    LANG_PORTUGUESE = (22),
+    LANG_ROMANIAN = (24),
+    LANG_RUSSIAN = (25),
+    LANG_SLOVAK = (27),
+    LANG_SLOVENIAN = (36),
+    LANG_SPANISH = (10),
+    LANG_SWEDISH = (29),
+    LANG_TURKISH = (31),
+    SUBLANG_CHINESE_SIMPLIFIED = (2),
+    SUBLANG_CHINESE_TRADITIONAL = (1),
+    SUBLANG_CHINESE_HONGKONG = (3),
+    SUBLANG_CHINESE_SINGAPORE = (4),
+    SUBLANG_DEFAULT = (1),
+    SUBLANG_DUTCH = (1),
+    SUBLANG_DUTCH_BELGIAN = (2),
+    SUBLANG_ENGLISH_AUS = (3),
+    SUBLANG_ENGLISH_CAN = (4),
+    SUBLANG_ENGLISH_EIRE = (6),
+    SUBLANG_ENGLISH_NZ = (5),
+    SUBLANG_ENGLISH_UK = (2),
+    SUBLANG_ENGLISH_US = (1),
+    SUBLANG_FRENCH = (1),
+    SUBLANG_FRENCH_BELGIAN = (2),
+    SUBLANG_FRENCH_CANADIAN = (3),
+    SUBLANG_FRENCH_SWISS = (4),
+    SUBLANG_GERMAN = (1),
+    SUBLANG_GERMAN_AUSTRIAN = (3),
+    SUBLANG_GERMAN_SWISS = (2),
+    SUBLANG_ITALIAN = (1),
+    SUBLANG_ITALIAN_SWISS = (2),
+    SUBLANG_NEUTRAL = (0),
+    SUBLANG_NORWEGIAN_BOKMAL = (1),
+    SUBLANG_NORWEGIAN_NYNORSK = (2),
+    SUBLANG_PORTUGUESE = (2),
+    SUBLANG_PORTUGUESE_BRAZILIAN = (1),
+    SUBLANG_SPANISH = (1),
+    SUBLANG_SPANISH_MEXICAN = (2),
+    SUBLANG_SPANISH_MODERN = (3),
+    SUBLANG_SYS_DEFAULT = (2),
+    NLS_VALID_LOCALE_MASK = (1048575),
+    SORT_DEFAULT = (0),
+    SORT_JAPANESE_XJIS = (0),
+    SORT_JAPANESE_UNICODE = (1),
+    SORT_CHINESE_BIG5 = (0),
+    SORT_CHINESE_UNICODE = (1),
+    SORT_KOREAN_KSC = (0),
+    SORT_KOREAN_UNICODE = (1),
+    PROCESSOR_INTEL_386 = (386),
+    PROCESSOR_INTEL_486 = (486),
+    PROCESSOR_INTEL_PENTIUM = (586),
+    PROCESSOR_MIPS_R4000 = (4000),
+    PROCESSOR_ALPHA_21064 = (21064),
+    COMPRESSION_FORMAT_NONE = (0),
+    COMPRESSION_FORMAT_DEFAULT = (1),
+    COMPRESSION_FORMAT_LZNT1 = (2),
+    TAPE_DRIVE_COMPRESSION = (131072),
+    TAPE_DRIVE_ECC = (65536),
+    TAPE_DRIVE_ERASE_BOP_ONLY = (64),
+    TAPE_DRIVE_ERASE_LONG = (32),
+    TAPE_DRIVE_ERASE_IMMEDIATE = (128),
+    TAPE_DRIVE_ERASE_SHORT = (16),
+    TAPE_DRIVE_FIXED = (1),
+    TAPE_DRIVE_FIXED_BLOCK = (1024),
+    TAPE_DRIVE_INITIATOR = (4),
+    TAPE_DRIVE_PADDING = (262144),
+    TAPE_DRIVE_GET_ABSOLUTE_BLK = (1048576),
+    TAPE_DRIVE_GET_LOGICAL_BLK = (2097152),
+    TAPE_DRIVE_REPORT_SMKS = (524288),
+    TAPE_DRIVE_SELECT = (2),
+    TAPE_DRIVE_SET_EOT_WZ_SIZE = (4194304),
+    TAPE_DRIVE_TAPE_CAPACITY = (256),
+    TAPE_DRIVE_TAPE_REMAINING = (512),
+    TAPE_DRIVE_VARIABLE_BLOCK = (2048),
+    TAPE_DRIVE_WRITE_PROTECT = (4096),
+    TAPE_DRIVE_ABS_BLK_IMMED = -((2147475456)),
+    TAPE_DRIVE_ABSOLUTE_BLK = -((2147479552)),
+    TAPE_DRIVE_END_OF_DATA = -((2147418112)),
+    TAPE_DRIVE_FILEMARKS = -((2147221504)),
+    TAPE_DRIVE_LOAD_UNLOAD = -((2147483647)),
+    TAPE_DRIVE_LOAD_UNLD_IMMED = -((2147483616)),
+    TAPE_DRIVE_LOCK_UNLOCK = -((2147483644)),
+    TAPE_DRIVE_LOCK_UNLK_IMMED = -((2147483520)),
+    TAPE_DRIVE_LOG_BLK_IMMED = -((2147450880)),
+    TAPE_DRIVE_LOGICAL_BLK = -((2147467264)),
+    TAPE_DRIVE_RELATIVE_BLKS = -((2147352576)),
+    TAPE_DRIVE_REVERSE_POSITION = -((2143289344)),
+    TAPE_DRIVE_REWIND_IMMEDIATE = -((2147483640)),
+    TAPE_DRIVE_SEQUENTIAL_FMKS = -((2146959360)),
+    TAPE_DRIVE_SEQUENTIAL_SMKS = -((2145386496)),
+    TAPE_DRIVE_SET_BLOCK_SIZE = -((2147483632)),
+    TAPE_DRIVE_SET_COMPRESSION = -((2147483136)),
+    TAPE_DRIVE_SET_ECC = -((2147483392)),
+    TAPE_DRIVE_SET_PADDING = -((2147482624)),
+    TAPE_DRIVE_SET_REPORT_SMKS = -((2147481600)),
+    TAPE_DRIVE_SETMARKS = -((2146435072)),
+    TAPE_DRIVE_SPACE_IMMEDIATE = -((2139095040)),
+    TAPE_DRIVE_TENSION = -((2147483646)),
+    TAPE_DRIVE_TENSION_IMMED = -((2147483584)),
+    TAPE_DRIVE_WRITE_FILEMARKS = -((2113929216)),
+    TAPE_DRIVE_WRITE_LONG_FMKS = -((2013265920)),
+    TAPE_DRIVE_WRITE_MARK_IMMED = -((1879048192)),
+    TAPE_DRIVE_WRITE_SETMARKS = -((2130706432)),
+    TAPE_DRIVE_WRITE_SHORT_FMKS = -((2080374784)),
+    STANDARD_RIGHTS_REQUIRED = (0xf0000),
+    STANDARD_RIGHTS_WRITE = (0x20000),
+    STANDARD_RIGHTS_READ = (0x20000),
+    STANDARD_RIGHTS_EXECUTE = (0x20000),
+    STANDARD_RIGHTS_ALL = (0x1f0000),
+    SPECIFIC_RIGHTS_ALL = (0xffff),
+    MAXIMUM_ALLOWED = (0x2000000),
+    GENERIC_ALL = (0x10000000),
+    SECURITY_NULL_RID = (0),
+    SECURITY_WORLD_RID = (0),
+    SECURITY_LOCAL_RID = (0),
+    SECURITY_CREATOR_OWNER_RID = (0),
+    SECURITY_CREATOR_GROUP_RID = (0x1),
+    SECURITY_DIALUP_RID = (0x1),
+    SECURITY_NETWORK_RID = (0x2),
+    SECURITY_BATCH_RID = (0x3),
+    SECURITY_INTERACTIVE_RID = (0x4),
+    SECURITY_LOGON_IDS_RID = (0x5),
+    SECURITY_LOGON_IDS_RID_COUNT = (0x3),
+    SECURITY_SERVICE_RID = (0x6),
+    SECURITY_LOCAL_SYSTEM_RID = (0x12),
+    SECURITY_BUILTIN_DOMAIN_RID = (0x20),
+    DOMAIN_USER_RID_ADMIN = (0x1f4),
+    DOMAIN_USER_RID_GUEST = (0x1f5),
+    DOMAIN_GROUP_RID_ADMINS = (0x200),
+    DOMAIN_GROUP_RID_USERS = (0x201),
+    DOMAIN_ALIAS_RID_ADMINS = (0x220),
+    DOMAIN_ALIAS_RID_USERS = (0x221),
+    DOMAIN_ALIAS_RID_GUESTS = (0x222),
+    DOMAIN_ALIAS_RID_POWER_USERS = (0x223),
+    DOMAIN_ALIAS_RID_ACCOUNT_OPS = (0x224),
+    DOMAIN_ALIAS_RID_SYSTEM_OPS = (0x225),
+    DOMAIN_ALIAS_RID_PRINT_OPS = (0x226),
+    DOMAIN_ALIAS_RID_BACKUP_OPS = (0x227),
+    DOMAIN_ALIAS_RID_REPLICATOR = (0x228),
+    SE_GROUP_MANDATORY = (0x1),
+    SE_GROUP_ENABLED_BY_DEFAULT = (0x2),
+    SE_GROUP_ENABLED = (0x4),
+    SE_GROUP_OWNER = (0x8),
+    SE_GROUP_LOGON_ID = (0xc0000000),
+    ACL_REVISION = (2),
+    ACCESS_ALLOWED_ACE_TYPE = (0x0),
+    ACCESS_DENIED_ACE_TYPE = (0x1),
+    SYSTEM_AUDIT_ACE_TYPE = (0x2),
+    SYSTEM_ALARM_ACE_TYPE = (0x3),
+    OBJECT_INHERIT_ACE = (0x1),
+    CONTAINER_INHERIT_ACE = (0x2),
+    NO_PROPAGATE_INHERIT_ACE = (0x4),
+    INHERIT_ONLY_ACE = (0x8),
+    SUCCESSFUL_ACCESS_ACE_FLAG = (0x40),
+    FAILED_ACCESS_ACE_FLAG = (0x80),
+    SECURITY_DESCRIPTOR_MIN_LENGTH = (20),
+    SE_OWNER_DEFAULTED = (1),
+    SE_GROUP_DEFAULTED = (2),
+    SE_DACL_PRESENT = (4),
+    SE_DACL_DEFAULTED = (8),
+    SE_SACL_PRESENT = (16),
+    SE_SACL_DEFAULTED = (32),
+    SE_SELF_RELATIVE = (32768),
+    SE_PRIVILEGE_ENABLED_BY_DEFAULT = (0x1),
+    SE_PRIVILEGE_ENABLED = (0x2),
+    SE_PRIVILEGE_USED_FOR_ACCESS = (0x80000000),
+    PRIVILEGE_SET_ALL_NECESSARY = (0x1),
+    OFN_ALLOWMULTISELECT = (0x200),
+    OFN_CREATEPROMPT = (0x2000),
+    OFN_ENABLEHOOK = (0x20),
+    OFN_ENABLETEMPLATE = (0x40),
+    OFN_ENABLETEMPLATEHANDLE = (0x80),
+    OFN_EXPLORER = (0x80000),
+    OFN_EXTENSIONDIFFERENT = (0x400),
+    OFN_FILEMUSTEXIST = (0x1000),
+    OFN_HIDEREADONLY = (0x4),
+    OFN_LONGNAMES = (0x200000),
+    OFN_NOCHANGEDIR = (0x8),
+    OFN_NODEREFERENCELINKS = (0x100000),
+    OFN_NOLONGNAMES = (0x40000),
+    OFN_NONETWORKBUTTON = (0x20000),
+    OFN_NOREADONLYRETURN = (0x8000),
+    OFN_NOTESTFILECREATE = (0x10000),
+    OFN_NOVALIDATE = (0x100),
+    OFN_OVERWRITEPROMPT = (0x2),
+    OFN_PATHMUSTEXIST = (0x800),
+    OFN_READONLY = (0x1),
+    OFN_SHAREAWARE = (0x4000),
+    OFN_SHOWHELP = (0x10),
+    OFN_SHAREFALLTHROUGH = (0x2),
+    OFN_SHARENOWARN = (0x1),
+    OFN_SHAREWARN = (0),
+    CDN_INITDONE = (0xfffffda7),
+    CDN_SELCHANGE = (0xfffffda6),
+    CDN_FOLDERCHANGE = (0xfffffda5),
+    CDN_SHAREVIOLATION = (0xfffffda4),
+    CDN_HELP = (0xfffffda3),
+    CDN_FILEOK = (0xfffffda2),
+    CDN_TYPECHANGE = (0xfffffda1),
+    CDM_GETFILEPATH = (0x465),
+    CDM_GETFOLDERIDLIST = (0x467),
+    CDM_GETFOLDERPATH = (0x466),
+    CDM_GETSPEC = (0x464),
+    CDM_HIDECONTROL = (0x469),
+    CDM_SETCONTROLTEXT = (0x468),
+    CDM_SETDEFEXT = (0x46a),
+    CC_ENABLEHOOK = (0x10),
+    CC_ENABLETEMPLATE = (0x20),
+    CC_ENABLETEMPLATEHANDLE = (0x40),
+    CC_FULLOPEN = (0x2),
+    CC_PREVENTFULLOPEN = (0x4),
+    CC_RGBINIT = (0x1),
+    CC_SHOWHELP = (0x8),
+    CC_SOLIDCOLOR = (0x80),
+    FR_DIALOGTERM = (0x40),
+    FR_DOWN = (0x1),
+    FR_ENABLEHOOK = (0x100),
+    FR_ENABLETEMPLATE = (0x200),
+    FR_ENABLETEMPLATEHANDLE = (0x2000),
+    FR_FINDNEXT = (0x8),
+    FR_HIDEUPDOWN = (0x4000),
+    FR_HIDEMATCHCASE = (0x8000),
+    FR_HIDEWHOLEWORD = (0x10000),
+    FR_MATCHCASE = (0x4),
+    FR_NOMATCHCASE = (0x800),
+    FR_NOUPDOWN = (0x400),
+    FR_NOWHOLEWORD = (0x1000),
+    FR_REPLACE = (0x10),
+    FR_REPLACEALL = (0x20),
+    FR_SHOWHELP = (0x80),
+    FR_WHOLEWORD = (0x2),
+    CF_APPLY = (0x200),
+    CF_ANSIONLY = (0x400),
+    CF_BOTH = (0x3),
+    CF_TTONLY = (0x40000),
+    CF_EFFECTS = (0x100),
+    CF_ENABLEHOOK = (0x8),
+    CF_ENABLETEMPLATE = (0x10),
+    CF_ENABLETEMPLATEHANDLE = (0x20),
+    CF_FIXEDPITCHONLY = (0x4000),
+    CF_FORCEFONTEXIST = (0x10000),
+    CF_INITTOLOGFONTSTRUCT = (0x40),
+    CF_LIMITSIZE = (0x2000),
+    CF_NOOEMFONTS = (0x800),
+    CF_NOFACESEL = (0x80000),
+    CF_NOSCRIPTSEL = (0x800000),
+    CF_NOSTYLESEL = (0x100000),
+    CF_NOSIZESEL = (0x200000),
+    CF_NOSIMULATIONS = (0x1000),
+    CF_NOVECTORFONTS = (0x800),
+    CF_NOVERTFONTS = (0x1000000),
+    CF_PRINTERFONTS = (0x2),
+    CF_SCALABLEONLY = (0x20000),
+    CF_SCREENFONTS = (0x1),
+    CF_SCRIPTSONLY = (0x400),
+    CF_SELECTSCRIPT = (0x400000),
+    CF_SHOWHELP = (0x4),
+    CF_USESTYLE = (0x80),
+    CF_WYSIWYG = (0x8000),
+    BOLD_FONTTYPE = (0x100),
+    ITALIC_FONTTYPE = (0x200),
+    PRINTER_FONTTYPE = (0x4000),
+    REGULAR_FONTTYPE = (0x400),
+    SCREEN_FONTTYPE = (0x2000),
+    SIMULATED_FONTTYPE = (0x8000),
+}
+const {
+char* COLOROKSTRINGW = ("commdlg_ColorOK");
+char* FILEOKSTRINGW = ("commdlg_FileNameOK");
+char* FINDMSGSTRINGW = ("commdlg_FindReplace");
+char* HELPMSGSTRINGW = ("commdlg_help");
+char* LBSELCHSTRINGW = ("commdlg_LBSelChangedNotify");
+char* SETRGBSTRINGW = ("commdlg_SetRGBColor");
+char* SHAREVISTRINGW = ("commdlg_ShareViolation");
+char* COLOROKSTRINGA = ("commdlg_ColorOK");
+char* FILEOKSTRINGA = ("commdlg_FileNameOK");
+char* FINDMSGSTRINGA = ("commdlg_FindReplace");
+char* HELPMSGSTRINGA = ("commdlg_help");
+char* LBSELCHSTRINGA = ("commdlg_LBSelChangedNotify");
+char* SETRGBSTRINGA = ("commdlg_SetRGBColor");
+char* SHAREVISTRINGA = ("commdlg_ShareViolation");
+char* COLOROKSTRING = (COLOROKSTRINGA);
+char* FILEOKSTRING = (FILEOKSTRINGA);
+char* FINDMSGSTRING = (FINDMSGSTRINGA);
+char* HELPMSGSTRING = (HELPMSGSTRINGA);
+char* LBSELCHSTRING = (LBSELCHSTRINGA);
+char* SETRGBSTRING = (SETRGBSTRINGA);
+char* SHAREVISTRING = (SHAREVISTRINGA);
+}
+
+const {
+HWND HWND_DESKTOP = cast(HWND) 0;
+HWND HWND_BOTTOM = cast(HWND) 1;
+HWND HWND_NOTOPMOST = cast(HWND) -2;
+HWND HWND_TOP = cast(HWND) 0;
+HWND HWND_TOPMOST = cast(HWND) -1;
+HWND HWND_BROADCAST = cast(HWND) 0xFFFF;
+}
+
+enum : DWORD {
+    CD_LBSELCHANGE = (0),
+    CD_LBSELADD = (2),
+    CD_LBSELSUB = (1),
+    CD_LBSELNOITEMS = -((1)),
+    DN_DEFAULTPRN = (1),
+    PD_ALLPAGES = (0),
+    PD_COLLATE = (16),
+    PD_DISABLEPRINTTOFILE = (524288),
+    PD_ENABLEPRINTHOOK = (4096),
+    PD_ENABLEPRINTTEMPLATE = (16384),
+    PD_ENABLEPRINTTEMPLATEHANDLE = (65536),
+    PD_ENABLESETUPHOOK = (8192),
+    PD_ENABLESETUPTEMPLATE = (32768),
+    PD_ENABLESETUPTEMPLATEHANDLE = (131072),
+    PD_HIDEPRINTTOFILE = (1048576),
+    PD_NOPAGENUMS = (8),
+    PD_NOSELECTION = (4),
+    PD_NOWARNING = (128),
+    PD_PAGENUMS = (2),
+    PD_PRINTSETUP = (64),
+    PD_PRINTTOFILE = (32),
+    PD_RETURNDC = (256),
+    PD_RETURNDEFAULT = (1024),
+    PD_RETURNIC = (512),
+    PD_SELECTION = (1),
+    PD_SHOWHELP = (2048),
+    PD_USEDEVMODECOPIES = (262144),
+    PD_USEDEVMODECOPIESANDCOLLATE = (262144),
+    PSD_DEFAULTMINMARGINS = (0),
+    PSD_DISABLEMARGINS = (16),
+    PSD_DISABLEORIENTATION = (256),
+    PSD_DISABLEPAGEPAINTING = (524288),
+    PSD_DISABLEPAPER = (512),
+    PSD_DISABLEPRINTER = (32),
+    PSD_ENABLEPAGEPAINTHOOK = (262144),
+    PSD_ENABLEPAGESETUPHOOK = (8192),
+    PSD_ENABLEPAGESETUPTEMPLATE = (32768),
+    PSD_ENABLEPAGESETUPTEMPLATEHANDLE = (131072),
+    PSD_INHUNDREDTHSOFMILLIMETERS = (8),
+    PSD_INTHOUSANDTHSOFINCHES = (4),
+    PSD_INWININIINTLMEASURE = (0),
+    PSD_MARGINS = (2),
+    PSD_MINMARGINS = (1),
+    PSD_NOWARNING = (128),
+    PSD_RETURNDEFAULT = (1024),
+    PSD_SHOWHELP = (2048),
+    SW_OTHERUNZOOM = (4),
+    SW_OTHERZOOM = (2),
+    SW_PARENTCLOSING = (1),
+    SW_PARENTOPENING = (3),
+    VK_LBUTTON = (1),
+    VK_RBUTTON = (2),
+    VK_CANCEL = (3),
+    VK_MBUTTON = (4),
+    VK_BACK = (8),
+    VK_TAB = (9),
+    VK_CLEAR = (12),
+    VK_RETURN = (13),
+    VK_SHIFT = (16),
+    VK_CONTROL = (17),
+    VK_MENU = (18),
+    VK_PAUSE = (19),
+    VK_CAPITAL = (20),
+    VK_ESCAPE = (27),
+    VK_SPACE = (32),
+    VK_PRIOR = (33),
+    VK_NEXT = (34),
+    VK_END = (35),
+    VK_HOME = (36),
+    VK_LEFT = (37),
+    VK_UP = (38),
+    VK_RIGHT = (39),
+    VK_DOWN = (40),
+    VK_SELECT = (41),
+    VK_PRINT = (42),
+    VK_EXECUTE = (43),
+    VK_SNAPSHOT = (44),
+    VK_INSERT = (45),
+    VK_DELETE = (46),
+    VK_HELP = (47),
+    VK_0 = (48),
+    VK_1 = (49),
+    VK_2 = (50),
+    VK_3 = (51),
+    VK_4 = (52),
+    VK_5 = (53),
+    VK_6 = (54),
+    VK_7 = (55),
+    VK_8 = (56),
+    VK_9 = (57),
+    VK_A = (65),
+    VK_B = (66),
+    VK_C = (67),
+    VK_D = (68),
+    VK_E = (69),
+    VK_F = (70),
+    VK_G = (71),
+    VK_H = (72),
+    VK_I = (73),
+    VK_J = (74),
+    VK_K = (75),
+    VK_L = (76),
+    VK_M = (77),
+    VK_N = (78),
+    VK_O = (79),
+    VK_P = (80),
+    VK_Q = (81),
+    VK_R = (82),
+    VK_S = (83),
+    VK_T = (84),
+    VK_U = (85),
+    VK_V = (86),
+    VK_W = (87),
+    VK_X = (88),
+    VK_Y = (89),
+    VK_Z = (90),
+    VK_NUMPAD0 = (96),
+    VK_NUMPAD1 = (97),
+    VK_NUMPAD2 = (98),
+    VK_NUMPAD3 = (99),
+    VK_NUMPAD4 = (100),
+    VK_NUMPAD5 = (101),
+    VK_NUMPAD6 = (102),
+    VK_NUMPAD7 = (103),
+    VK_NUMPAD8 = (104),
+    VK_NUMPAD9 = (105),
+    VK_MULTIPLY = (106),
+    VK_ADD = (107),
+    VK_SEPARATOR = (108),
+    VK_SUBTRACT = (109),
+    VK_DECIMAL = (110),
+    VK_DIVIDE = (111),
+    VK_F1 = (112),
+    VK_F2 = (113),
+    VK_F3 = (114),
+    VK_F4 = (115),
+    VK_F5 = (116),
+    VK_F6 = (117),
+    VK_F7 = (118),
+    VK_F8 = (119),
+    VK_F9 = (120),
+    VK_F10 = (121),
+    VK_F11 = (122),
+    VK_F12 = (123),
+    VK_F13 = (124),
+    VK_F14 = (125),
+    VK_F15 = (126),
+    VK_F16 = (127),
+    VK_F17 = (128),
+    VK_F18 = (129),
+    VK_F19 = (130),
+    VK_F20 = (131),
+    VK_F21 = (132),
+    VK_F22 = (133),
+    VK_F23 = (134),
+    VK_F24 = (135),
+    VK_NUMLOCK = (144),
+    VK_SCROLL = (145),
+    VK_LSHIFT = (160),
+    VK_LCONTROL = (162),
+    VK_LMENU = (164),
+    VK_RSHIFT = (161),
+    VK_RCONTROL = (163),
+    VK_RMENU = (165),
+    VK_PROCESSKEY = (229),
+    KF_ALTDOWN = (8192),
+    KF_DLGMODE = (2048),
+    KF_EXTENDED = (256),
+    KF_MENUMODE = (4096),
+    KF_REPEAT = (16384),
+    KF_UP = (32768),
+    KL_NAMELENGTH = (9),
+    WA_ACTIVE = (1),
+    WA_CLICKACTIVE = (2),
+    WA_INACTIVE = (0),
+    PWR_CRITICALRESUME = (3),
+    PWR_SUSPENDREQUEST = (1),
+    PWR_SUSPENDRESUME = (2),
+    PWR_FAIL = -((1)),
+    PWR_OK = (1),
+    NF_QUERY = (3),
+    NF_REQUERY = (4),
+    NFR_ANSI = (1),
+    NFR_UNICODE = (2),
+    WMSZ_BOTTOM = (6),
+    WMSZ_BOTTOMLEFT = (7),
+    WMSZ_BOTTOMRIGHT = (8),
+    WMSZ_LEFT = (1),
+    WMSZ_RIGHT = (2),
+    WMSZ_TOP = (3),
+    WMSZ_TOPLEFT = (4),
+    WMSZ_TOPRIGHT = (5),
+    MA_ACTIVATE = (1),
+    MA_ACTIVATEANDEAT = (2),
+    MA_NOACTIVATE = (3),
+    MA_NOACTIVATEANDEAT = (4),
+    SIZE_MAXHIDE = (4),
+    SIZE_MAXIMIZED = (2),
+    SIZE_MAXSHOW = (3),
+    SIZE_MINIMIZED = (1),
+    SIZE_RESTORED = (0),
+    WVR_ALIGNTOP = (16),
+    WVR_ALIGNLEFT = (32),
+    WVR_ALIGNBOTTOM = (64),
+    WVR_ALIGNRIGHT = (128),
+    WVR_HREDRAW = (256),
+    WVR_VREDRAW = (512),
+    WVR_REDRAW = (768),
+    WVR_VALIDRECTS = (1024),
+    HTBOTTOM = (15),
+    HTBOTTOMLEFT = (16),
+    HTBOTTOMRIGHT = (17),
+    HTCAPTION = (2),
+    HTCLIENT = (1),
+    HTERROR = -((2)),
+    HTGROWBOX = (4),
+    HTHSCROLL = (6),
+    HTLEFT = (10),
+    HTMENU = (5),
+    HTNOWHERE = (0),
+    HTREDUCE = (8),
+    HTRIGHT = (11),
+    HTSIZE = (4),
+    HTSYSMENU = (3),
+    HTTOP = (12),
+    HTTOPLEFT = (13),
+    HTTOPRIGHT = (14),
+    HTTRANSPARENT = -((1)),
+    HTVSCROLL = (7),
+    HTZOOM = (9),
+    MK_CONTROL = (8),
+    MK_LBUTTON = (1),
+    MK_MBUTTON = (16),
+    MK_RBUTTON = (2),
+    MK_SHIFT = (4),
+    CS_BYTEALIGNCLIENT = (4096),
+    CS_BYTEALIGNWINDOW = (8192),
+    CS_CLASSDC = (64),
+    CS_DBLCLKS = (8),
+    CS_GLOBALCLASS = (16384),
+    CS_HREDRAW = (2),
+    CS_KEYCVTWINDOW = (4),
+    CS_NOCLOSE = (512),
+    CS_NOKEYCVT = (256),
+    CS_OWNDC = (32),
+    CS_PARENTDC = (128),
+    CS_SAVEBITS = (2048),
+    CS_VREDRAW = (1),
+    DLGWINDOWEXTRA = (30),
+    FALT = (16),
+    FCONTROL = (8),
+    FNOINVERT = (2),
+    FSHIFT = (4),
+    FVIRTKEY = (1),
+    MIIM_CHECKMARKS = (8),
+    MIIM_DATA = (32),
+    MIIM_ID = (2),
+    MIIM_STATE = (1),
+    MIIM_SUBMENU = (4),
+    MIIM_TYPE = (16),
+    MFT_BITMAP = (0x4),
+    MFT_MENUBARBREAK = (0x20),
+    MFT_MENUBREAK = (0x40),
+    MFT_OWNERDRAW = (0x100),
+    MFT_RADIOCHECK = (0x200),
+    MFT_RIGHTJUSTIFY = (0x4000),
+    MFT_SEPARATOR = (0x800),
+    MFT_STRING = (0),
+    MFS_CHECKED = (0x8),
+    MFS_DEFAULT = (0x1000),
+    MFS_DISABLED = (0x3),
+    MFS_ENABLED = (0),
+    MFS_GRAYED = (0x3),
+    MFS_HILITE = (0x80),
+    MFS_UNCHECKED = (0),
+    MFS_UNHILITE = (0),
+    SERKF_AVAILABLE = (2),
+    SERKF_INDICATOR = (4),
+    SERKF_SERIALKEYSON = (1),
+    FKF_AVAILABLE = (2),
+    FKF_CLICKON = (64),
+    FKF_FILTERKEYSON = (1),
+    FKF_HOTKEYACTIVE = (4),
+    FKF_HOTKEYSOUND = (16),
+    FKF_CONFIRMHOTKEY = (8),
+    FKF_INDICATOR = (32),
+    HELPINFO_MENUITEM = (2),
+    HELPINFO_WINDOW = (1),
+    PRF_CHECKVISIBLE = (0x1),
+    PRF_CHILDREN = (0x10),
+    PRF_CLIENT = (0x4),
+    PRF_ERASEBKGND = (0x8),
+    PRF_NONCLIENT = (0x2),
+    PRF_OWNED = (0x20),
+    SC_CLOSE = (61536),
+    SC___FILE__HELP = (61824),
+    SC_DEFAULT = (61792),
+    SC_HOTKEY = (61776),
+    SC_HSCROLL = (61568),
+    SC_KEYMENU = (61696),
+    SC_MAXIMIZE = (61488),
+    SC_ZOOM = (61488),
+    SC_MINIMIZE = (61472),
+    SC_ICON = (61472),
+    SC_MONITORPOWER = (61808),
+    SC_MOUSEMENU = (61584),
+    SC_MOVE = (61456),
+    SC_NEXTWINDOW = (61504),
+    SC_PREVWINDOW = (61520),
+    SC_RESTORE = (61728),
+    SC_SCREENSAVE = (61760),
+    SC_SIZE = (61440),
+    SC_TASKLIST = (61744),
+    SC_VSCROLL = (61552),
+    DC_HASDEFID = (21323),
+    DLGC_BUTTON = (8192),
+    DLGC_DEFPUSHBUTTON = (16),
+    DLGC_HASSETSEL = (8),
+    DLGC_RADIOBUTTON = (64),
+    DLGC_STATIC = (256),
+    DLGC_UNDEFPUSHBUTTON = (32),
+    DLGC_WANTALLKEYS = (4),
+    DLGC_WANTARROWS = (1),
+    DLGC_WANTCHARS = (128),
+    DLGC_WANTMESSAGE = (4),
+    DLGC_WANTTAB = (2),
+    EC_LEFTMARGIN = (1),
+    EC_RIGHTMARGIN = (2),
+    EC_USEFONTINFO = (65535),
+    LB_ERR = -((1)),
+    LB_ERRSPACE = -((2)),
+    LB_OKAY = (0),
+    CB_ERR = -((1)),
+    CB_ERRSPACE = -((2)),
+    IMC_GETCANDIDATEPOS = (7),
+    IMC_GETCOMPOSITIONFONT = (9),
+    IMC_GETCOMPOSITIONWINDOW = (11),
+    IMC_GETSTATUSWINDOWPOS = (15),
+    IMC_CLOSESTATUSWINDOW = (33),
+    IMC_OPENSTATUSWINDOW = (34),
+    IMC_SETCANDIDATEPOS = (8),
+    IMC_SETCOMPOSITIONFONT = (10),
+    IMC_SETCOMPOSITIONWINDOW = (12),
+    IMC_SETSTATUSWINDOWPOS = (16),
+    IMN_CHANGECANDIDATE = (3),
+    IMN_CLOSECANDIDATE = (4),
+    IMN_CLOSESTATUSWINDOW = (1),
+    IMN_GUIDELINE = (13),
+    IMN_OPENCANDIDATE = (5),
+    IMN_OPENSTATUSWINDOW = (2),
+    IMN_SETCANDIDATEPOS = (9),
+    IMN_SETCOMPOSITIONFONT = (10),
+    IMN_SETCOMPOSITIONWINDOW = (11),
+    IMN_SETCONVERSIONMODE = (6),
+    IMN_SETOPENSTATUS = (8),
+    IMN_SETSENTENCEMODE = (7),
+    IMN_SETSTATUSWINDOWPOS = (12),
+    IMN_PRIVATE = (14),
+    SKF_AUDIBLEFEEDBACK = (64),
+    SKF_AVAILABLE = (2),
+    SKF_CONFIRMHOTKEY = (8),
+    SKF_HOTKEYACTIVE = (4),
+    SKF_HOTKEYSOUND = (16),
+    SKF_INDICATOR = (32),
+    SKF_STICKYKEYSON = (1),
+    SKF_TRISTATE = (128),
+    SKF_TWOKEYSOFF = (256),
+    MKF_AVAILABLE = (2),
+    MKF_CONFIRMHOTKEY = (8),
+    MKF_HOTKEYACTIVE = (4),
+    MKF_HOTKEYSOUND = (16),
+    MKF_INDICATOR = (32),
+    MKF_MOUSEKEYSON = (1),
+    MKF_MODIFIERS = (64),
+    MKF_REPLACENUMBERS = (128),
+    SSF_AVAILABLE = (2),
+    SSF_SOUNDSENTRYON = (1),
+    SSTF_BORDER = (2),
+    SSTF_CHARS = (1),
+    SSTF_DISPLAY = (3),
+    SSTF_NONE = (0),
+    SSGF_DISPLAY = (3),
+    SSGF_NONE = (0),
+    SSWF_CUSTOM = (4),
+    SSWF_DISPLAY = (3),
+    SSWF_NONE = (0),
+    SSWF_TITLE = (1),
+    SSWF_WINDOW = (2),
+    ATF_ONOFFFEEDBACK = (2),
+    ATF_TIMEOUTON = (1),
+    HCF_AVAILABLE = (2),
+    HCF_CONFIRMHOTKEY = (8),
+    HCF_HIGHCONTRASTON = (1),
+    HCF_HOTKEYACTIVE = (4),
+    HCF_HOTKEYAVAILABLE = (64),
+    HCF_HOTKEYSOUND = (16),
+    HCF_INDICATOR = (32),
+    TKF_AVAILABLE = (2),
+    TKF_CONFIRMHOTKEY = (8),
+    TKF_HOTKEYACTIVE = (4),
+    TKF_HOTKEYSOUND = (16),
+    TKF_TOGGLEKEYSON = (1),
+    PP_DISPLAYERRORS = (1),
+    RESOURCEDISPLAYTYPE_DOMAIN = (1),
+    RESOURCEDISPLAYTYPE_FILE = (4),
+    RESOURCEDISPLAYTYPE_GENERIC = (0),
+    RESOURCEDISPLAYTYPE_GROUP = (5),
+    RESOURCEDISPLAYTYPE_SERVER = (2),
+    RESOURCEDISPLAYTYPE_SHARE = (3),
+    CAPSLOCK_ON = (128),
+    ENHANCED_KEY = (256),
+    LEFT_ALT_PRESSED = (2),
+    LEFT_CTRL_PRESSED = (8),
+    NUMLOCK_ON = (32),
+    RIGHT_ALT_PRESSED = (1),
+    RIGHT_CTRL_PRESSED = (4),
+    SCROLLLOCK_ON = (64),
+    SHIFT_PRESSED = (16),
+    FROM_LEFT_1ST_BUTTON_PRESSED = (1),
+    RIGHTMOST_BUTTON_PRESSED = (2),
+    FROM_LEFT_2ND_BUTTON_PRESSED = (4),
+    FROM_LEFT_3RD_BUTTON_PRESSED = (8),
+    FROM_LEFT_4TH_BUTTON_PRESSED = (16),
+    DOUBLE_CLICK = (2),
+    MOUSE_MOVED = (1),
+    KEY_EVENT = (1),
+    _MOUSE_EVENT = (2),
+    cMOUSE_EVENT = (2),
+    WINDOW_BUFFER_SIZE_EVENT = (4),
+    MENU_EVENT = (8),
+    FOCUS_EVENT = (16),
+    BI_RGB = (0),
+    BI_RLE8 = (1),
+    BI_RLE4 = (2),
+    BI_BITFIELDS = (3),
+    PFD_DRAW_TO_WINDOW = (0x4),
+    PFD_DRAW_TO_BITMAP = (0x8),
+    PFD_SUPPORT_GDI = (0x10),
+    PFD_SUPPORT_OPENGL = (0x20),
+    PFD_DOUBLEBUFFER = (0x1),
+    PFD_STEREO = (0x2),
+    PFD_DOUBLEBUFFER_DONTCARE = (0x40000000),
+    PFD_STEREO_DONTCARE = (0x80000000),
+    PFD_TYPE_RGBA = (0),
+    PFD_TYPE_COLORINDEX = (1),
+    PFD_MAIN_PLANE = (0),
+    PFD_OVERLAY_PLANE = (1),
+    PFD_UNDERLAY_PLANE = -((1)),
+    WGL_FONT_LINES = (0),
+    WGL_FONT_POLYGONS = (1),
+    PFD_GENERIC_FORMAT = (0x40),
+    PFD_NEED_PALETTE = (0x80),
+    PFD_NEED_SYSTEM_PALETTE = (0x100),
+    PFD_SWAP_COPY = (0x400),
+    PFD_SWAP_EXCHANGE = (0x200),
+    TMPF_FIXED_PITCH = (0x1),
+    TMPF_VECTOR = (0x2),
+    TMPF_TRUETYPE = (0x4),
+    TMPF_DEVICE = (0x8),
+    SE_ERR_SHARE = (26),
+    SE_ERR_ASSOCINCOMPLETE = (27),
+    SE_ERR_DDETIMEOUT = (28),
+    SE_ERR_DDEFAIL = (29),
+    SE_ERR_DDEBUSY = (30),
+    SE_ERR_NOASSOC = (31),
+    XCLASS_BOOL = (0x1000),
+    XCLASS_DATA = (0x2000),
+    XCLASS_FLAGS = (0x4000),
+    XCLASS_MASK = (0xfc00),
+    XCLASS_NOTIFICATION = (0x8000),
+    XTYPF_NOBLOCK = (0x0002),
+    XTYP_ADVDATA = (0x4010),
+    XTYP_ADVREQ = (0x2022),
+    XTYP_ADVSTART = (0x1030),
+    XTYP_ADVSTOP = (0x8040),
+    XTYP_CONNECT = (0x1062),
+    XTYP_CONNECT_CONFIRM = (0x8072),
+    XTYP_DISCONNECT = (0x80c2),
+    XTYP_EXECUTE = (0x4050),
+    XTYP_POKE = (0x4090),
+    XTYP_REQUEST = (0x20b0),
+    XTYP_WILDCONNECT = (0x20E2),
+    XTYP_REGISTER = (0x80A2),
+    XTYP_ERROR = (0x8002),
+    XTYP_XACT_COMPLETE = (0x8080),
+    XTYP_UNREGISTER = (0x80D2),
+    DMLERR_DLL_USAGE = (0x4004),
+    DMLERR_INVALIDPARAMETER = (0x4006),
+    DMLERR_NOTPROCESSED = (0x4009),
+    DMLERR_POSTMSG_FAILED = (0x400c),
+    DMLERR_SERVER_DIED = (0x400e),
+    DMLERR_SYS_ERROR = (0x400f),
+    DMLERR_BUSY = (0x4001),
+    DMLERR_DATAACKTIMEOUT = (0x4002),
+    DMLERR_ADVACKTIMEOUT = (0x4000),
+    DMLERR_DLL_NOT_INITIALIZED = (0x4003),
+    DMLERR_LOW_MEMORY = (0x4007),
+    DMLERR_MEMORY_ERROR = (0x4008),
+    DMLERR_POKEACKTIMEOUT = (0x400b),
+    DMLERR_NO_CONV_ESTABLISHED = (0x400a),
+    DMLERR_REENTRANCY = (0x400d),
+    DMLERR_UNFOUND_QUEUE_ID = (0x4011),
+    DMLERR_UNADVACKTIMEOUT = (0x4010),
+    DMLERR_EXECACKTIMEOUT = (0x4005),
+    DDE_FACK = (0x8000),
+    DDE_FNOTPROCESSED = (0x0000),
+    DNS_REGISTER = (0x0001),
+    DNS_UNREGISTER = (0x0002),
+    CP_WINANSI = (1004),
+    CP_WINUNICODE = (1200),
+    APPCLASS_STANDARD = (0x00000000),
+    BKMODE_LAST = (2),
+    CTLCOLOR_MSGBOX = (0),
+    CTLCOLOR_EDIT = (1),
+    CTLCOLOR_LISTBOX = (2),
+    CTLCOLOR_BTN = (3),
+    CTLCOLOR_DLG = (4),
+    CTLCOLOR_SCROLLBAR = (5),
+    CTLCOLOR_STATIC = (6),
+    CTLCOLOR_MAX = (7),
+    META_SETMAPMODE = (0x0103),
+    META_SETWINDOWORG = (0x020B),
+    META_SETWINDOWEXT = (0x020C),
+    POLYFILL_LAST = (2),
+    STATUS_WAIT_0 = (0x00000000),
+    STATUS_ABANDONED_WAIT_0 = (0x00000080),
+    STATUS_USER_APC = (0x000000C0),
+    STATUS_TIMEOUT = (0x00000102),
+    STATUS_PENDING = (0x00000103),
+    STATUS_GUARD_PAGE_VIOLATION = (0x80000001),
+    STATUS_DATATYPE_MISALIGNMENT = (0x80000002),
+    STATUS_BREAKPOINT = (0x80000003),
+    STATUS_SINGLE_STEP = (0x80000004),
+    STATUS_IN_PAGE_ERROR = (0xC0000006),
+    STATUS_INVALID_HANDLE = (0xC0000008),
+    STATUS_ILLEGAL_INSTRUCTION = (0xC000001D),
+    STATUS_NONCONTINUABLE_EXCEPTION = (0xC0000025),
+    STATUS_INVALID_DISPOSITION = (0xC0000026),
+    STATUS_ARRAY_BOUNDS_EXCEEDED = (0xC000008C),
+    STATUS_FLOAT_DENORMAL_OPERAND = (0xC000008D),
+    STATUS_FLOAT_DIVIDE_BY_ZERO = (0xC000008E),
+    STATUS_FLOAT_INEXACT_RESULT = (0xC000008F),
+    STATUS_FLOAT_INVALID_OPERATION = (0xC0000090),
+    STATUS_FLOAT_OVERFLOW = (0xC0000091),
+    STATUS_FLOAT_STACK_CHECK = (0xC0000092),
+    STATUS_FLOAT_UNDERFLOW = (0xC0000093),
+    STATUS_INTEGER_DIVIDE_BY_ZERO = (0xC0000094),
+    STATUS_INTEGER_OVERFLOW = (0xC0000095),
+    STATUS_PRIVILEGED_INSTRUCTION = (0xC0000096),
+    STATUS_STACK_OVERFLOW = (0xC00000FD),
+    STATUS_CONTROL_C_EXIT = (0xC000013A),
+    PROCESSOR_ARCHITECTURE_INTEL = (0),
+    PROCESSOR_ARCHITECTURE_MIPS = (1),
+    PROCESSOR_ARCHITECTURE_ALPHA = (2),
+    PROCESSOR_ARCHITECTURE_PPC = (3),
+    SIZEFULLSCREEN = (SIZE_MAXIMIZED),
+    SIZENORMAL = (SIZE_RESTORED),
+    SIZEICONIC = (SIZE_MINIMIZED),
+    SIZE_OF_80387_REGISTERS = (80),
+    __FILE___i386 = (0x10000),
+    __FILE___CONTROL = (__FILE___i386) | (1),
+    __FILE___INTEGER = (__FILE___i386) | (2),
+    __FILE___SEGMENTS = (__FILE___i386) | (4),
+    __FILE___FLOATING_POINT = (__FILE___i386) | (8),
+    __FILE___DEBUG_REGISTERS = (__FILE___i386) | (0x10),
+    __FILE___FULL = ((__FILE___CONTROL) | (__FILE___INTEGER)) | (__FILE___SEGMENTS),
+    FLAG_TRACE_BIT = (0x100),
+    __FILE___DEBUGGER = (__FILE___FULL) | (__FILE___FLOATING_POINT),
+    FILTER_TEMP_DUPLICATE_ACCOUNT = (0x0001),
+    FILTER_NORMAL_ACCOUNT = (0x0002),
+    FILTER_INTERDOMAIN_TRUST_ACCOUNT = (0x0008),
+    FILTER_WORKSTATION_TRUST_ACCOUNT = (0x0010),
+    FILTER_SERVER_TRUST_ACCOUNT = (0x0020),
+    LOGON32_LOGON_INTERACTIVE = (0x02),
+    LOGON32_LOGON_BATCH = (0x04),
+    LOGON32_LOGON_SERVICE = (0x05),
+    LOGON32_PROVIDER_DEFAULT = (0x00),
+    LOGON32_PROVIDER_WINNT35 = (0x01),
+    QID_SYNC = (0xFFFFFFFF),
+    IMAGE_DOS_SIGNATURE = (0x5a4d),
+    IMAGE_NT_SIGNATURE = (0x4550),
+    SEVERITY_SUCCESS = (0),
+    SEVERITY_ERROR = (1),
+    VT_EMPTY = (0),
+    VT_NULL = (1),
+    VT_I2 = (2),
+    VT_I4 = (3),
+    VT_R4 = (4),
+    VT_R8 = (5),
+    VT_BSTR = (8),
+    VT_ERROR = (10),
+    VT_BOOL = (11),
+    VT_UI1 = (17),
+    VT_BYREF = (0x4000),
+    VT_RESERVED = (0x8000),
+    FACILITY_WINDOWS = (8),
+    FACILITY_STORAGE = (3),
+    FACILITY_RPC = (1),
+    FACILITY_SSPI = (9),
+    FACILITY_WIN32 = (7),
+    FACILITY_CONTROL = (10),
+    FACILITY_NULL = (0),
+    FACILITY_INTERNET = (12),
+    FACILITY_ITF = (4),
+    FACILITY_DISPATCH = (2),
+    FACILITY_CERT = (11),
+    ACM_OPENW = (1127),
+    ACM_OPENA = (1124),
+    ACM_OPEN = (ACM_OPENA),
+    ACM_PLAY = (1125),
+    ACM_STOP = (1126),
+    ACN_START = (1),
+    ACN_STOP = (2),
+    BM_CLICK = (245),
+    BM_GETCHECK = (240),
+    BM_GETIMAGE = (246),
+    BM_GETSTATE = (242),
+    BM_SETCHECK = (241),
+    BM_SETIMAGE = (247),
+    BM_SETSTATE = (243),
+    BM_SETSTYLE = (244),
+    BN_CLICKED = (0),
+    BN_DBLCLK = (5),
+    BN_DISABLE = (4),
+    BN_DOUBLECLICKED = (5),
+    BN_HILITE = (2),
+    BN_KILLFOCUS = (7),
+    BN_PAINT = (1),
+    BN_PUSHED = (2),
+    BN_SETFOCUS = (6),
+    BN_UNHILITE = (3),
+    BN_UNPUSHED = (3),
+    CB_ADDSTRING = (323),
+    CB_DELETESTRING = (324),
+    CB_DIR = (325),
+    CB_FINDSTRING = (332),
+    CB_FINDSTRINGEXACT = (344),
+    CB_GETCOUNT = (326),
+    CB_GETCURSEL = (327),
+    CB_GETDROPPEDCONTROLRECT = (338),
+    CB_GETDROPPEDSTATE = (343),
+    CB_GETDROPPEDWIDTH = (351),
+    CB_GETEDITSEL = (320),
+    CB_GETEXTENDEDUI = (342),
+    CB_GETHORIZONTALEXTENT = (349),
+    CB_GETITEMDATA = (336),
+    CB_GETITEMHEIGHT = (340),
+    CB_GETLBTEXT = (328),
+    CB_GETLBTEXTLEN = (329),
+    CB_GETLOCALE = (346),
+    CB_GETTOPINDEX = (347),
+    CB_INITSTORAGE = (353),
+    CB_INSERTSTRING = (330),
+    CB_LIMITTEXT = (321),
+    CB_RESETCONTENT = (331),
+    CB_SELECTSTRING = (333),
+    CB_SETCURSEL = (334),
+    CB_SETDROPPEDWIDTH = (352),
+    CB_SETEDITSEL = (322),
+    CB_SETEXTENDEDUI = (341),
+    CB_SETHORIZONTALEXTENT = (350),
+    CB_SETITEMDATA = (337),
+    CB_SETITEMHEIGHT = (339),
+    CB_SETLOCALE = (345),
+    CB_SETTOPINDEX = (348),
+    CB_SHOWDROPDOWN = (335),
+    CBN_CLOSEUP = (8),
+    CBN_DBLCLK = (2),
+    CBN_DROPDOWN = (7),
+    CBN_EDITCHANGE = (5),
+    CBN_EDITUPDATE = (6),
+    CBN_ERRSPACE = -((1)),
+    CBN_KILLFOCUS = (4),
+    CBN_SELCHANGE = (1),
+    CBN_SELENDCANCEL = (10),
+    CBN_SELENDOK = (9),
+    CBN_SETFOCUS = (3),
+    DL_BEGINDRAG = (1157),
+    DL_CANCELDRAG = (1160),
+    DL_DRAGGING = (1158),
+    DL_DROPPED = (1159),
+    DM_GETDEFID = (1024),
+    DM_REPOSITION = (1026),
+    DM_SETDEFID = (1025),
+    EM_CANPASTE = (1074),
+    EM_CANUNDO = (198),
+    EM_CHARFROMPOS = (215),
+    EM_DISPLAYBAND = (1075),
+    EM_EMPTYUNDOBUFFER = (205),
+    EM_EXGETSEL = (1076),
+    EM_EXLIMITTEXT = (1077),
+    EM_EXLINEFROMCHAR = (1078),
+    EM_EXSETSEL = (1079),
+    EM_FINDTEXT = (1080),
+    EM_FINDTEXTEX = (1103),
+    EM_FINDWORDBREAK = (1100),
+    EM_FMTLINES = (200),
+    EM_FORMATRANGE = (1081),
+    EM_GETCHARFORMAT = (1082),
+    EM_GETEVENTMASK = (1083),
+    EM_GETFIRSTVISIBLELINE = (206),
+    EM_GETHANDLE = (189),
+    EM_GETLIMITTEXT = (213),
+    EM_GETLINE = (196),
+    EM_GETLINECOUNT = (186),
+    EM_GETMARGINS = (212),
+    EM_GETMODIFY = (184),
+    EM_GETIMECOLOR = (1129),
+    EM_GETIMEOPTIONS = (1131),
+    EM_GETOPTIONS = (1102),
+    EM_GETOLEINTERFACE = (1084),
+    EM_GETPARAFORMAT = (1085),
+    EM_GETPASSWORDCHAR = (210),
+    EM_GETPUNCTUATION = (1125),
+    EM_GETRECT = (178),
+    EM_GETSEL = (176),
+    EM_GETSELTEXT = (1086),
+    EM_GETTEXTRANGE = (1099),
+    EM_GETTHUMB = (190),
+    EM_GETWORDBREAKPROC = (209),
+    EM_GETWORDBREAKPROCEX = (1104),
+    EM_GETWORDWRAPMODE = (1127),
+    EM_HIDESELECTION = (1087),
+    EM_LIMITTEXT = (197),
+    EM_LINEFROMCHAR = (201),
+    EM_LINEINDEX = (187),
+    EM_LINELENGTH = (193),
+    EM_LINESCROLL = (182),
+    EM_PASTESPECIAL = (1088),
+    EM_POSFROMCHAR = (214),
+    EM_REPLACESEL = (194),
+    EM_REQUESTRESIZE = (1089),
+    EM_SCROLL = (181),
+    EM_SCROLLCARET = (183),
+    EM_SELECTIONTYPE = (1090),
+    EM_SETBKGNDCOLOR = (1091),
+    EM_SETCHARFORMAT = (1092),
+    EM_SETEVENTMASK = (1093),
+    EM_SETHANDLE = (188),
+    EM_SETIMECOLOR = (1128),
+    EM_SETIMEOPTIONS = (1130),
+    EM_SETLIMITTEXT = (197),
+    EM_SETMARGINS = (211),
+    EM_SETMODIFY = (185),
+    EM_SETOLECALLBACK = (1094),
+    EM_SETOPTIONS = (1101),
+    EM_SETPARAFORMAT = (1095),
+    EM_SETPASSWORDCHAR = (204),
+    EM_SETPUNCTUATION = (1124),
+    EM_SETREADONLY = (207),
+    EM_SETRECT = (179),
+    EM_SETRECTNP = (180),
+    EM_SETSEL = (177),
+    EM_SETTABSTOPS = (203),
+    EM_SETTARGETDEVICE = (1096),
+    EM_SETWORDBREAKPROC = (208),
+    EM_SETWORDBREAKPROCEX = (1105),
+    EM_SETWORDWRAPMODE = (1126),
+    EM_STREAMIN = (1097),
+    EM_STREAMOUT = (1098),
+    EM_UNDO = (199),
+    EN_CHANGE = (768),
+    EN_CORRECTTEXT = (1797),
+    EN_DROPFILES = (1795),
+    EN_ERRSPACE = (1280),
+    EN_HSCROLL = (1537),
+    EN_IMECHANGE = (1799),
+    EN_KILLFOCUS = (512),
+    EN_MAXTEXT = (1281),
+    EN_MSGFILTER = (1792),
+    EN_OLEOPFAILED = (1801),
+    EN_PROTECTED = (1796),
+    EN_REQUESTRESIZE = (1793),
+    EN_SAVECLIPBOARD = (1800),
+    EN_SELCHANGE = (1794),
+    EN_SETFOCUS = (256),
+    EN_STOPNOUNDO = (1798),
+    EN_UPDATE = (1024),
+    EN_VSCROLL = (1538),
+    HDM_DELETEITEM = (4610),
+    HDM_GETITEMW = (4619),
+    HDM_INSERTITEMW = (4618),
+    HDM_SETITEMW = (4620),
+    HDM_GETITEMA = (4611),
+    HDM_INSERTITEMA = (4609),
+    HDM_SETITEMA = (4612),
+    HDM_GETITEM = (HDM_GETITEMA),
+    HDM_INSERTITEM = (HDM_INSERTITEMA),
+    HDM_SETITEM = (HDM_SETITEMA),
+    HDM_GETITEMCOUNT = (4608),
+    HDM_HITTEST = (4614),
+    HDM_LAYOUT = (4613),
+    HDN_BEGINTRACKW = -((326)),
+    HDN_DIVIDERDBLCLICKW = -((325)),
+    HDN_ENDTRACKW = -((327)),
+    HDN_ITEMCHANGEDW = -((321)),
+    HDN_ITEMCHANGINGW = -((320)),
+    HDN_ITEMCLICKW = -((322)),
+    HDN_ITEMDBLCLICKW = -((323)),
+    HDN_TRACKW = -((328)),
+    HDN_BEGINTRACKA = -((306)),
+    HDN_DIVIDERDBLCLICKA = -((305)),
+    HDN_ENDTRACKA = -((307)),
+    HDN_ITEMCHANGEDA = -((301)),
+    HDN_ITEMCHANGINGA = -((300)),
+    HDN_ITEMCLICKA = -((302)),
+    HDN_ITEMDBLCLICKA = -((303)),
+    HDN_TRACKA = -((308)),
+    HDN_BEGINTRACK = (HDN_BEGINTRACKA),
+    HDN_DIVIDERDBLCLICK = (HDN_DIVIDERDBLCLICKA),
+    HDN_ENDTRACK = (HDN_ENDTRACKA),
+    HDN_ITEMCHANGED = (HDN_ITEMCHANGEDA),
+    HDN_ITEMCHANGING = (HDN_ITEMCHANGINGA),
+    HDN_ITEMCLICK = (HDN_ITEMCLICKA),
+    HDN_ITEMDBLCLICK = (HDN_ITEMDBLCLICKA),
+    HDN_TRACK = (HDN_TRACKA),
+    HKM_GETHOTKEY = (1026),
+    HKM_SETHOTKEY = (1025),
+    HKM_SETRULES = (1027),
+    LB_ADDFILE = (406),
+    LB_ADDSTRING = (384),
+    LB_DELETESTRING = (386),
+    LB_DIR = (397),
+    LB_FINDSTRING = (399),
+    LB_FINDSTRINGEXACT = (418),
+    LB_GETANCHORINDEX = (413),
+    LB_GETCARETINDEX = (415),
+    LB_GETCOUNT = (395),
+    LB_GETCURSEL = (392),
+    LB_GETHORIZONTALEXTENT = (403),
+    LB_GETITEMDATA = (409),
+    LB_GETITEMHEIGHT = (417),
+    LB_GETITEMRECT = (408),
+    LB_GETLOCALE = (422),
+    LB_GETSEL = (391),
+    LB_GETSELCOUNT = (400),
+    LB_GETSELITEMS = (401),
+    LB_GETTEXT = (393),
+    LB_GETTEXTLEN = (394),
+    LB_GETTOPINDEX = (398),
+    LB_INITSTORAGE = (424),
+    LB_INSERTSTRING = (385),
+    LB_ITEMFROMPOINT = (425),
+    LB_RESETCONTENT = (388),
+    LB_SELECTSTRING = (396),
+    LB_SELITEMRANGE = (411),
+    LB_SELITEMRANGEEX = (387),
+    LB_SETANCHORINDEX = (412),
+    LB_SETCARETINDEX = (414),
+    LB_SETCOLUMNWIDTH = (405),
+    LB_SETCOUNT = (423),
+    LB_SETCURSEL = (390),
+    LB_SETHORIZONTALEXTENT = (404),
+    LB_SETITEMDATA = (410),
+    LB_SETITEMHEIGHT = (416),
+    LB_SETLOCALE = (421),
+    LB_SETSEL = (389),
+    LB_SETTABSTOPS = (402),
+    LB_SETTOPINDEX = (407),
+    LBN_DBLCLK = (2),
+    LBN_ERRSPACE = -((2)),
+    LBN_KILLFOCUS = (5),
+    LBN_SELCANCEL = (3),
+    LBN_SELCHANGE = (1),
+    LBN_SETFOCUS = (4),
+    LVM_ARRANGE = (4118),
+    LVM_CREATEDRAGIMAGE = (4129),
+    LVM_DELETEALLITEMS = (4105),
+    LVM_DELETECOLUMN = (4124),
+    LVM_DELETEITEM = (4104),
+    LVM_ENSUREVISIBLE = (4115),
+    LVM_GETBKCOLOR = (4096),
+    LVM_GETCALLBACKMASK = (4106),
+    LVM_GETCOLUMNWIDTH = (4125),
+    LVM_GETCOUNTPERPAGE = (4136),
+    LVM_GETEDITCONTROL = (4120),
+    LVM_GETIMAGELIST = (4098),
+    LVM_EDITLABELW = (4214),
+    LVM_FINDITEMW = (4179),
+    LVM_GETCOLUMNW = (4191),
+    LVM_GETISEARCHSTRINGW = (4213),
+    LVM_GETITEMW = (4171),
+    LVM_GETITEMTEXTW = (4211),
+    LVM_GETSTRINGWIDTHW = (4183),
+    LVM_INSERTCOLUMNW = (4193),
+    LVM_INSERTITEMW = (4173),
+    LVM_SETCOLUMNW = (4192),
+    LVM_SETITEMW = (4172),
+    LVM_SETITEMTEXTW = (4212),
+    LVM_EDITLABELA = (4119),
+    LVM_FINDITEMA = (4109),
+    LVM_GETCOLUMNA = (4121),
+    LVM_GETISEARCHSTRINGA = (4148),
+    LVM_GETITEMA = (4101),
+    LVM_GETITEMTEXTA = (4141),
+    LVM_GETSTRINGWIDTHA = (4113),
+    LVM_INSERTCOLUMNA = (4123),
+    LVM_INSERTITEMA = (4103),
+    LVM_SETCOLUMNA = (4122),
+    LVM_SETITEMA = (4102),
+    LVM_SETITEMTEXTA = (4142),
+    LVM_EDITLABEL = (LVM_EDITLABELA),
+    LVM_FINDITEM = (LVM_FINDITEMA),
+    LVM_GETCOLUMN = (LVM_GETCOLUMNA),
+    LVM_GETISEARCHSTRING = (LVM_GETISEARCHSTRINGA),
+    LVM_GETITEM = (LVM_GETITEMA),
+    LVM_GETITEMTEXT = (LVM_GETITEMTEXTA),
+    LVM_GETSTRINGWIDTH = (LVM_GETSTRINGWIDTHA),
+    LVM_INSERTCOLUMN = (LVM_INSERTCOLUMNA),
+    LVM_INSERTITEM = (LVM_INSERTITEMA),
+    LVM_SETCOLUMN = (LVM_SETCOLUMNA),
+    LVM_SETITEM = (LVM_SETITEMA),
+    LVM_SETITEMTEXT = (LVM_SETITEMTEXTA),
+    LVM_GETITEMCOUNT = (4100),
+    LVM_GETITEMPOSITION = (4112),
+    LVM_GETITEMRECT = (4110),
+    LVM_GETITEMSPACING = (4147),
+    LVM_GETITEMSTATE = (4140),
+    LVM_GETNEXTITEM = (4108),
+    LVM_GETORIGIN = (4137),
+    LVM_GETSELECTEDCOUNT = (4146),
+    LVM_GETTEXTBKCOLOR = (4133),
+    LVM_GETTEXTCOLOR = (4131),
+    LVM_GETTOPINDEX = (4135),
+    LVM_GETVIEWRECT = (4130),
+    LVM_HITTEST = (4114),
+    LVM_REDRAWITEMS = (4117),
+    LVM_SCROLL = (4116),
+    LVM_SETBKCOLOR = (4097),
+    LVM_SETCALLBACKMASK = (4107),
+    LVM_SETCOLUMNWIDTH = (4126),
+    LVM_SETIMAGELIST = (4099),
+    LVM_SETITEMCOUNT = (4143),
+    LVM_SETITEMPOSITION = (4111),
+    LVM_SETITEMPOSITION32 = (4145),
+    LVM_SETITEMSTATE = (4139),
+    LVM_SETTEXTBKCOLOR = (4134),
+    LVM_SETTEXTCOLOR = (4132),
+    LVM_SORTITEMS = (4144),
+    LVM_UPDATE = (4138),
+    LVN_BEGINDRAG = -((109)),
+    LVN_BEGINRDRAG = -((111)),
+    LVN_COLUMNCLICK = -((108)),
+    LVN_DELETEALLITEMS = -((104)),
+    LVN_DELETEITEM = -((103)),
+    LVN_BEGINLABELEDITW = -((175)),
+    LVN_ENDLABELEDITW = -((176)),
+    LVN_GETDISPINFOW = -((177)),
+    LVN_SETDISPINFOW = -((178)),
+    LVN_BEGINLABELEDITA = -((105)),
+    LVN_ENDLABELEDITA = -((106)),
+    LVN_GETDISPINFOA = -((150)),
+    LVN_SETDISPINFOA = -((151)),
+    LVN_BEGINLABELEDIT = (LVN_BEGINLABELEDITA),
+    LVN_ENDLABELEDIT = (LVN_ENDLABELEDITA),
+    LVN_GETDISPINFO = (LVN_GETDISPINFOA),
+    LVN_SETDISPINFO = (LVN_SETDISPINFOA),
+    LVN_INSERTITEM = -((102)),
+    LVN_ITEMCHANGED = -((101)),
+    LVN_ITEMCHANGING = -((100)),
+    LVN_KEYDOWN = -((155)),
+    NM_CLICK = -((2)),
+    NM_DBLCLK = -((3)),
+    NM_KILLFOCUS = -((8)),
+    NM_OUTOFMEMORY = -((1)),
+    NM_RCLICK = -((5)),
+    NM_RDBLCLK = -((6)),
+    NM_RETURN = -((4)),
+    NM_SETFOCUS = -((7)),
+    PBM_DELTAPOS = (1027),
+    PBM_SETPOS = (1026),
+    PBM_SETRANGE = (1025),
+    PBM_SETSTEP = (1028),
+    PBM_STEPIT = (1029),
+    PSM_ADDPAGE = (1127),
+    PSM_APPLY = (1134),
+    PSM_CANCELTOCLOSE = (1131),
+    PSM_CHANGED = (1128),
+    PSM_GETTABCONTROL = (1140),
+    PSM_GETCURRENTPAGEHWND = (1142),
+    PSM_ISDIALOGMESSAGE = (1141),
+    PSM_PRESSBUTTON = (1137),
+    PSM_QUERYSIBLINGS = (1132),
+    PSM_REBOOTSYSTEM = (1130),
+    PSM_REMOVEPAGE = (1126),
+    PSM_RESTARTWINDOWS = (1129),
+    PSM_SETCURSEL = (1125),
+    PSM_SETCURSELID = (1138),
+    PSM_SETFINISHTEXTW = (1145),
+    PSM_SETTITLEW = (1144),
+    PSM_SETFINISHTEXTA = (1139),
+    PSM_SETTITLEA = (1135),
+    PSM_SETFINISHTEXT = (PSM_SETFINISHTEXTA),
+    PSM_SETTITLE = (PSM_SETTITLEA),
+    PSM_SETWIZBUTTONS = (1136),
+    PSM_UNCHANGED = (1133),
+    PSN_APPLY = -((202)),
+    PSN_HELP = -((205)),
+    PSN_KILLACTIVE = -((201)),
+    PSN_QUERYCANCEL = -((209)),
+    PSN_RESET = -((203)),
+    PSN_SETACTIVE = -((200)),
+    PSN_WIZBACK = -((206)),
+    PSN_WIZFINISH = -((208)),
+    PSN_WIZNEXT = -((207)),
+    SB_GETBORDERS = (1031),
+    SB_GETPARTS = (1030),
+    SB_GETRECT = (1034),
+    SB_GETTEXTW = (1037),
+    SB_GETTEXTLENGTHW = (1036),
+    SB_SETTEXTW = (1035),
+    SB_GETTEXTA = (1026),
+    SB_GETTEXTLENGTHA = (1027),
+    SB_SETTEXTA = (1025),
+    SB_GETTEXT = (SB_GETTEXTA),
+    SB_GETTEXTLENGTH = (SB_GETTEXTLENGTHA),
+    SB_SETTEXT = (SB_SETTEXTA),
+    SB_SETMINHEIGHT = (1032),
+    SB_SETPARTS = (1028),
+    SB_SIMPLE = (1033),
+    SBM_ENABLE_ARROWS = (228),
+    SBM_GETPOS = (225),
+    SBM_GETRANGE = (227),
+    SBM_GETSCROLLINFO = (234),
+    SBM_SETPOS = (224),
+    SBM_SETRANGE = (226),
+    SBM_SETRANGEREDRAW = (230),
+    SBM_SETSCROLLINFO = (233),
+    STM_GETICON = (369),
+    STM_GETIMAGE = (371),
+    STM_SETICON = (368),
+    STM_SETIMAGE = (370),
+    STN_CLICKED = (0),
+    STN_DBLCLK = (1),
+    STN_DISABLE = (3),
+    STN_ENABLE = (2),
+    TB_ADDBITMAP = (1043),
+    TB_ADDBUTTONS = (1044),
+    TB_AUTOSIZE = (1057),
+    TB_BUTTONCOUNT = (1048),
+    TB_BUTTONSTRUCTSIZE = (1054),
+    TB_CHANGEBITMAP = (1067),
+    TB_CHECKBUTTON = (1026),
+    TB_COMMANDTOINDEX = (1049),
+    TB_CUSTOMIZE = (1051),
+    TB_DELETEBUTTON = (1046),
+    TB_ENABLEBUTTON = (1025),
+    TB_GETBITMAP = (1068),
+    TB_GETBITMAPFLAGS = (1065),
+    TB_GETBUTTON = (1047),
+    TB_ADDSTRINGW = (1101),
+    TB_GETBUTTONTEXTW = (1099),
+    TB_SAVERESTOREW = (1100),
+    TB_ADDSTRINGA = (1052),
+    TB_GETBUTTONTEXTA = (1069),
+    TB_SAVERESTOREA = (1050),
+    TB_ADDSTRING = (TB_ADDSTRINGA),
+    TB_GETBUTTONTEXT = (TB_GETBUTTONTEXTA),
+    TB_SAVERESTORE = (TB_SAVERESTOREA),
+    TB_GETITEMRECT = (1053),
+    TB_GETROWS = (1064),
+    TB_GETSTATE = (1042),
+    TB_GETTOOLTIPS = (1059),
+    TB_HIDEBUTTON = (1028),
+    TB_INDETERMINATE = (1029),
+    TB_INSERTBUTTON = (1045),
+    TB_ISBUTTONCHECKED = (1034),
+    TB_ISBUTTONENABLED = (1033),
+    TB_ISBUTTONHIDDEN = (1036),
+    TB_ISBUTTONINDETERMINATE = (1037),
+    TB_ISBUTTONPRESSED = (1035),
+    TB_PRESSBUTTON = (1027),
+    TB_SETBITMAPSIZE = (1056),
+    TB_SETBUTTONSIZE = (1055),
+    TB_SETCMDID = (1066),
+    TB_SETPARENT = (1061),
+    TB_SETROWS = (1063),
+    TB_SETSTATE = (1041),
+    TB_SETTOOLTIPS = (1060),
+    TBM_CLEARSEL = (1043),
+    TBM_CLEARTICS = (1033),
+    TBM_GETCHANNELRECT = (1050),
+    TBM_GETLINESIZE = (1048),
+    TBM_GETNUMTICS = (1040),
+    TBM_GETPAGESIZE = (1046),
+    TBM_GETPOS = (1024),
+    TBM_GETPTICS = (1038),
+    TBM_GETRANGEMAX = (1026),
+    TBM_GETRANGEMIN = (1025),
+    TBM_GETSELEND = (1042),
+    TBM_GETSELSTART = (1041),
+    TBM_GETTHUMBLENGTH = (1052),
+    TBM_GETTHUMBRECT = (1049),
+    TBM_GETTIC = (1027),
+    TBM_GETTICPOS = (1039),
+    TBM_SETLINESIZE = (1047),
+    TBM_SETPAGESIZE = (1045),
+    TBM_SETPOS = (1029),
+    TBM_SETRANGE = (1030),
+    TBM_SETRANGEMAX = (1032),
+    TBM_SETRANGEMIN = (1031),
+    TBM_SETSEL = (1034),
+    TBM_SETSELEND = (1036),
+    TBM_SETSELSTART = (1035),
+    TBM_SETTHUMBLENGTH = (1051),
+    TBM_SETTIC = (1028),
+    TBM_SETTICFREQ = (1044),
+    TBN_BEGINADJUST = -((703)),
+    TBN_BEGINDRAG = -((701)),
+    TBN_CUSTHELP = -((709)),
+    TBN_ENDADJUST = -((704)),
+    TBN_ENDDRAG = -((702)),
+    TBN_GETBUTTONINFOW = -((720)),
+    TBN_GETBUTTONINFOA = -((700)),
+    TBN_GETBUTTONINFO = (TBN_GETBUTTONINFOA),
+    TBN_QUERYDELETE = -((707)),
+    TBN_QUERYINSERT = -((706)),
+    TBN_RESET = -((705)),
+    TBN_TOOLBARCHANGE = -((708)),
+    TCM_ADJUSTRECT = (4904),
+    TCM_DELETEALLITEMS = (4873),
+    TCM_DELETEITEM = (4872),
+    TCM_GETCURFOCUS = (4911),
+    TCM_GETCURSEL = (4875),
+    TCM_GETIMAGELIST = (4866),
+    TCM_GETITEMW = (4924),
+    TCM_INSERTITEMW = (4926),
+    TCM_SETITEMW = (4925),
+    TCM_GETITEMA = (4869),
+    TCM_INSERTITEMA = (4871),
+    TCM_SETITEMA = (4870),
+    TCM_GETITEM = (TCM_GETITEMA),
+    TCM_INSERTITEM = (TCM_INSERTITEMA),
+    TCM_SETITEM = (TCM_SETITEMA),
+    TCM_GETITEMCOUNT = (4868),
+    TCM_GETITEMRECT = (4874),
+    TCM_GETROWCOUNT = (4908),
+    TCM_GETTOOLTIPS = (4909),
+    TCM_HITTEST = (4877),
+    TCM_REMOVEIMAGE = (4906),
+    TCM_SETCURFOCUS = (4912),
+    TCM_SETCURSEL = (4876),
+    TCM_SETIMAGELIST = (4867),
+    TCM_SETITEMEXTRA = (4878),
+    TCM_SETITEMSIZE = (4905),
+    TCM_SETPADDING = (4907),
+    TCM_SETTOOLTIPS = (4910),
+    TCN_KEYDOWN = -((550)),
+    TCN_SELCHANGE = -((551)),
+    TCN_SELCHANGING = -((552)),
+    TTM_ACTIVATE = (1025),
+    TTM_ADDTOOLW = (1074),
+    TTM_DELTOOLW = (1075),
+    TTM_ENUMTOOLSW = (1082),
+    TTM_GETCURRENTTOOLW = (1083),
+    TTM_GETTEXTW = (1080),
+    TTM_GETTOOLINFOW = (1077),
+    TTM_HITTESTW = (1079),
+    TTM_NEWTOOLRECTW = (1076),
+    TTM_SETTOOLINFOW = (1078),
+    TTM_UPDATETIPTEXTW = (1081),
+    TTM_ADDTOOLA = (1028),
+    TTM_DELTOOLA = (1029),
+    TTM_ENUMTOOLSA = (1038),
+    TTM_GETCURRENTTOOLA = (1039),
+    TTM_GETTEXTA = (1035),
+    TTM_GETTOOLINFOA = (1032),
+    TTM_HITTESTA = (1034),
+    TTM_NEWTOOLRECTA = (1030),
+    TTM_SETTOOLINFOA = (1033),
+    TTM_UPDATETIPTEXTA = (1036),
+    TTM_ADDTOOL = (TTM_ADDTOOLA),
+    TTM_DELTOOL = (TTM_DELTOOLA),
+    TTM_ENUMTOOLS = (TTM_ENUMTOOLSA),
+    TTM_GETCURRENTTOOL = (TTM_GETCURRENTTOOLA),
+    TTM_GETTEXT = (TTM_GETTEXTA),
+    TTM_GETTOOLINFO = (TTM_GETTOOLINFOA),
+    TTM_HITTEST = (TTM_HITTESTA),
+    TTM_NEWTOOLRECT = (TTM_NEWTOOLRECTA),
+    TTM_SETTOOLINFO = (TTM_SETTOOLINFOA),
+    TTM_UPDATETIPTEXT = (TTM_UPDATETIPTEXTA),
+    TTM_GETTOOLCOUNT = (1037),
+    TTM_RELAYEVENT = (1031),
+    TTM_SETDELAYTIME = (1027),
+    TTM_WINDOWFROMPOINT = (1040),
+    TTN_NEEDTEXTW = -((530)),
+    TTN_NEEDTEXTA = -((520)),
+    TTN_NEEDTEXT = (TTN_NEEDTEXTA),
+    TTN_POP = -((522)),
+    TTN_SHOW = -((521)),
+    TVM_CREATEDRAGIMAGE = (4370),
+    TVM_DELETEITEM = (4353),
+    TVM_ENDEDITLABELNOW = (4374),
+    TVM_ENSUREVISIBLE = (4372),
+    TVM_EXPAND = (4354),
+    TVM_GETCOUNT = (4357),
+    TVM_GETEDITCONTROL = (4367),
+    TVM_GETIMAGELIST = (4360),
+    TVM_GETINDENT = (4358),
+    TVM_GETITEMRECT = (4356),
+    TVM_GETNEXTITEM = (4362),
+    TVM_GETVISIBLECOUNT = (4368),
+    TVM_HITTEST = (4369),
+    TVM_EDITLABELW = (4417),
+    TVM_GETISEARCHSTRINGW = (4416),
+    TVM_GETITEMW = (4414),
+    TVM_INSERTITEMW = (4402),
+    TVM_SETITEMW = (4415),
+    TVM_EDITLABELA = (4366),
+    TVM_GETISEARCHSTRINGA = (4375),
+    TVM_GETITEMA = (4364),
+    TVM_INSERTITEMA = (4352),
+    TVM_SETITEMA = (4365),
+    TVM_EDITLABEL = (TVM_EDITLABELA),
+    TVM_GETISEARCHSTRING = (TVM_GETISEARCHSTRINGA),
+    TVM_GETITEM = (TVM_GETITEMA),
+    TVM_INSERTITEM = (TVM_INSERTITEMA),
+    TVM_SETITEM = (TVM_SETITEMA),
+    TVM_SELECTITEM = (4363),
+    TVM_SETIMAGELIST = (4361),
+    TVM_SETINDENT = (4359),
+    TVM_SORTCHILDREN = (4371),
+    TVM_SORTCHILDRENCB = (4373),
+    TVN_KEYDOWN = -((412)),
+    TVN_BEGINDRAGW = -((456)),
+    TVN_BEGINLABELEDITW = -((459)),
+    TVN_BEGINRDRAGW = -((457)),
+    TVN_DELETEITEMW = -((458)),
+    TVN_ENDLABELEDITW = -((460)),
+    TVN_GETDISPINFOW = -((452)),
+    TVN_ITEMEXPANDEDW = -((455)),
+    TVN_ITEMEXPANDINGW = -((454)),
+    TVN_SELCHANGEDW = -((451)),
+    TVN_SELCHANGINGW = -((450)),
+    TVN_SETDISPINFOW = -((453)),
+    TVN_BEGINDRAGA = -((407)),
+    TVN_BEGINLABELEDITA = -((410)),
+    TVN_BEGINRDRAGA = -((408)),
+    TVN_DELETEITEMA = -((409)),
+    TVN_ENDLABELEDITA = -((411)),
+    TVN_GETDISPINFOA = -((403)),
+    TVN_ITEMEXPANDEDA = -((406)),
+    TVN_ITEMEXPANDINGA = -((405)),
+    TVN_SELCHANGEDA = -((402)),
+    TVN_SELCHANGINGA = -((401)),
+    TVN_SETDISPINFOA = -((404)),
+    TVN_BEGINDRAG = (TVN_BEGINDRAGA),
+    TVN_BEGINLABELEDIT = (TVN_BEGINLABELEDITA),
+    TVN_BEGINRDRAG = (TVN_BEGINRDRAGA),
+    TVN_DELETEITEM = (TVN_DELETEITEMA),
+    TVN_ENDLABELEDIT = (TVN_ENDLABELEDITA),
+    TVN_GETDISPINFO = (TVN_GETDISPINFOA),
+    TVN_ITEMEXPANDED = (TVN_ITEMEXPANDEDA),
+    TVN_ITEMEXPANDING = (TVN_ITEMEXPANDINGA),
+    TVN_SELCHANGED = (TVN_SELCHANGEDA),
+    TVN_SELCHANGING = (TVN_SELCHANGINGA),
+    TVN_SETDISPINFO = (TVN_SETDISPINFOA),
+    UDM_GETACCEL = (1132),
+    UDM_GETBASE = (1134),
+    UDM_GETBUDDY = (1130),
+    UDM_GETPOS = (1128),
+    UDM_GETRANGE = (1126),
+    UDM_SETACCEL = (1131),
+    UDM_SETBASE = (1133),
+    UDM_SETBUDDY = (1129),
+    UDM_SETPOS = (1127),
+    UDM_SETRANGE = (1125),
+    UDN_DELTAPOS = -((722)),
+    WM_ACTIVATE = (6),
+    WM_ACTIVATEAPP = (28),
+    WM_ASKCBFORMATNAME = (780),
+    WM_CANCELJOURNAL = (75),
+    WM_CANCELMODE = (31),
+    WM_CAPTURECHANGED = (533),
+    WM_CHANGECBCHAIN = (781),
+    WM_CHAR = (258),
+    WM_CHARTOITEM = (47),
+    WM_CHILDACTIVATE = (34),
+    WM_CHOOSEFONT_GETLOGFONT = (1025),
+    WM_CHOOSEFONT_SETLOGFONT = (1125),
+    WM_CHOOSEFONT_SETFLAGS = (1126),
+    WM_CLEAR = (771),
+    WM_CLOSE = (16),
+    WM_COMMAND = (273),
+    WM_COMPACTING = (65),
+    WM_COMPAREITEM = (57),
+    WM___FILE__MENU = (123),
+    WM_COPY = (769),
+    WM_COPYDATA = (74),
+    WM_CREATE = (1),
+    WM_CTLCOLORBTN = (309),
+    WM_CTLCOLORDLG = (310),
+    WM_CTLCOLOREDIT = (307),
+    WM_CTLCOLORLISTBOX = (308),
+    WM_CTLCOLORMSGBOX = (306),
+    WM_CTLCOLORSCROLLBAR = (311),
+    WM_CTLCOLORSTATIC = (312),
+    WM_CUT = (768),
+    WM_DEADCHAR = (259),
+    WM_DELETEITEM = (45),
+    WM_DESTROY = (2),
+    WM_DESTROYCLIPBOARD = (775),
+    WM_DEVICECHANGE = (537),
+    WM_DEVMODECHANGE = (27),
+    WM_DISPLAYCHANGE = (126),
+    WM_DRAWCLIPBOARD = (776),
+    WM_DRAWITEM = (43),
+    WM_DROPFILES = (563),
+    WM_ENABLE = (10),
+    WM_ENDSESSION = (22),
+    WM_ENTERIDLE = (289),
+    WM_ENTERMENULOOP = (529),
+    WM_ENTERSIZEMOVE = (561),
+    WM_ERASEBKGND = (20),
+    WM_EXITMENULOOP = (530),
+    WM_EXITSIZEMOVE = (562),
+    WM_FONTCHANGE = (29),
+    WM_GETDLGCODE = (135),
+    WM_GETFONT = (49),
+    WM_GETHOTKEY = (51),
+    WM_GETICON = (127),
+    WM_GETMINMAXINFO = (36),
+    WM_GETTEXT = (13),
+    WM_GETTEXTLENGTH = (14),
+    WM_HELP = (83),
+    WM_HOTKEY = (786),
+    WM_HSCROLL = (276),
+    WM_HSCROLLCLIPBOARD = (782),
+    WM_ICONERASEBKGND = (39),
+    WM_IME_CHAR = (646),
+    WM_IME_COMPOSITION = (271),
+    WM_IME_COMPOSITIONFULL = (644),
+    WM_IME_CONTROL = (643),
+    WM_IME_ENDCOMPOSITION = (270),
+    WM_IME_KEYDOWN = (656),
+    WM_IME_KEYUP = (657),
+    WM_IME_NOTIFY = (642),
+    WM_IME_SELECT = (645),
+    WM_IME_SET__FILE__ = (641),
+    WM_IME_STARTCOMPOSITION = (269),
+    WM_INITDIALOG = (272),
+    WM_INITMENU = (278),
+    WM_INITMENUPOPUP = (279),
+    WM_INPUTLANGCHANGE = (81),
+    WM_INPUTLANGCHANGEREQUEST = (80),
+    WM_KEYDOWN = (256),
+    WM_KEYUP = (257),
+    WM_KILLFOCUS = (8),
+    WM_LBUTTONDBLCLK = (515),
+    WM_LBUTTONDOWN = (513),
+    WM_LBUTTONUP = (514),
+    WM_MBUTTONDBLCLK = (521),
+    WM_MBUTTONDOWN = (519),
+    WM_MBUTTONUP = (520),
+    WM_MDIACTIVATE = (546),
+    WM_MDICASCADE = (551),
+    WM_MDICREATE = (544),
+    WM_MDIDESTROY = (545),
+    WM_MDIGETACTIVE = (553),
+    WM_MDIICONARRANGE = (552),
+    WM_MDIMAXIMIZE = (549),
+    WM_MDINEXT = (548),
+    WM_MDIREFRESHMENU = (564),
+    WM_MDIRESTORE = (547),
+    WM_MDISETMENU = (560),
+    WM_MDITILE = (550),
+    WM_MEASUREITEM = (44),
+    WM_MENUCHAR = (288),
+    WM_MENUSELECT = (287),
+    WM_MOUSEACTIVATE = (33),
+    WM_MOUSEMOVE = (512),
+    WM_MOUSEWHEEL = 0x020A,
+    WM_MOVE = (3),
+    WM_MOVING = (534),
+    WM_NCACTIVATE = (134),
+    WM_NCCALCSIZE = (131),
+    WM_NCCREATE = (129),
+    WM_NCDESTROY = (130),
+    WM_NCHITTEST = (132),
+    WM_NCLBUTTONDBLCLK = (163),
+    WM_NCLBUTTONDOWN = (161),
+    WM_NCLBUTTONUP = (162),
+    WM_NCMBUTTONDBLCLK = (169),
+    WM_NCMBUTTONDOWN = (167),
+    WM_NCMBUTTONUP = (168),
+    WM_NCMOUSEMOVE = (160),
+    WM_NCPAINT = (133),
+    WM_NCRBUTTONDBLCLK = (166),
+    WM_NCRBUTTONDOWN = (164),
+    WM_NCRBUTTONUP = (165),
+    WM_NEXTDLGCTL = (40),
+    WM_NOTIFY = (78),
+    WM_NOTIFYFORMAT = (85),
+    WM_NULL = (0),
+    WM_PAINT = (15),
+    WM_PAINTCLIPBOARD = (777),
+    WM_PAINTICON = (38),
+    WM_PALETTECHANGED = (785),
+    WM_PALETTEISCHANGING = (784),
+    WM_PARENTNOTIFY = (528),
+    WM_PASTE = (770),
+    WM_PENWINFIRST = (896),
+    WM_PENWINLAST = (911),
+    WM_POWER = (72),
+    WM_POWERBROADCAST = (536),
+    WM_PRINT = (791),
+    WM_PRINTCLIENT = (792),
+    WM_PSD_ENVSTAMPRECT = (1029),
+    WM_PSD_FULLPAGERECT = (1025),
+    WM_PSD_GREEKTEXTRECT = (1028),
+    WM_PSD_MARGINRECT = (1027),
+    WM_PSD_MINMARGINRECT = (1026),
+    WM_PSD_PAGESETUPDLG = (1024),
+    WM_PSD_YAFULLPAGERECT = (1030),
+    WM_QUERYDRAGICON = (55),
+    WM_QUERYENDSESSION = (17),
+    WM_QUERYNEWPALETTE = (783),
+    WM_QUERYOPEN = (19),
+    WM_QUEUESYNC = (35),
+    WM_QUIT = (18),
+    WM_RBUTTONDBLCLK = (518),
+    WM_RBUTTONDOWN = (516),
+    WM_RBUTTONUP = (517),
+    WM_RENDERALLFORMATS = (774),
+    WM_RENDERFORMAT = (773),
+    WM_SETCURSOR = (32),
+    WM_SETFOCUS = (7),
+    WM_SETFONT = (48),
+    WM_SETHOTKEY = (50),
+    WM_SETICON = (128),
+    WM_SETREDRAW = (11),
+    WM_SETTEXT = (12),
+    WM_SETTINGCHANGE = (26),
+    WM_SHOWWINDOW = (24),
+    WM_SIZE = (5),
+    WM_SIZECLIPBOARD = (779),
+    WM_SIZING = (532),
+    WM_SPOOLERSTATUS = (42),
+    WM_STYLECHANGED = (125),
+    WM_STYLECHANGING = (124),
+    WM_SYSCHAR = (262),
+    WM_SYSCOLORCHANGE = (21),
+    WM_SYSCOMMAND = (274),
+    WM_SYSDEADCHAR = (263),
+    WM_SYSKEYDOWN = (260),
+    WM_SYSKEYUP = (261),
+    WM_TCARD = (82),
+    WM_TIMECHANGE = (30),
+    WM_TIMER = (275),
+    WM_UNDO = (772),
+    WM_USER = (1024),
+    WM_USERCHANGED = (84),
+    WM_VKEYTOITEM = (46),
+    WM_VSCROLL = (277),
+    WM_VSCROLLCLIPBOARD = (778),
+    WM_WINDOWPOSCHANGED = (71),
+    WM_WINDOWPOSCHANGING = (70),
+    WM_WININICHANGE = (26),
+    WM_KEYFIRST = (256),
+    WM_KEYLAST = (264),
+    WM_MOUSEFIRST = (512),
+    WM_MOUSELAST = (521),
+}
+struct VA_LIST
+{
+}
+
+
+struct ABC
+{
+    int abcA;
+    UINT abcB;
+    int abcC;
+}
+
+alias ABC* LPABC;
+alias ABC _ABC;
+alias ABC TABC;
+alias ABC* PABC;
+
+struct ABCFLOAT
+{
+    FLOAT abcfA;
+    FLOAT abcfB;
+    FLOAT abcfC;
+}
+
+alias ABCFLOAT* LPABCFLOAT;
+alias ABCFLOAT _ABCFLOAT;
+alias ABCFLOAT TABCFLOAT;
+alias ABCFLOAT* PABCFLOAT;
+
+struct ACCEL
+{
+    ubyte fVirt;
+    ushort key;
+    ushort cmd;
+}
+
+alias ACCEL* LPACCEL;
+alias ACCEL _ACCEL;
+alias ACCEL TACCEL;
+alias ACCEL* PACCEL;
+
+struct ACE_HEADER
+{
+    ubyte AceType;
+    ubyte AceFlags;
+    ushort AceSize;
+}
+
+alias ACE_HEADER _ACE_HEADER;
+alias ACE_HEADER TACE_HEADER;
+alias ACE_HEADER* PACE_HEADER;
+alias DWORD ACCESS_MASK;
+alias ACCESS_MASK REGSAM;
+
+struct ACCESS_ALLOWED_ACE
+{
+    ACE_HEADER Header;
+    ACCESS_MASK Mask;
+    DWORD SidStart;
+}
+
+alias ACCESS_ALLOWED_ACE _ACCESS_ALLOWED_ACE;
+alias ACCESS_ALLOWED_ACE TACCESS_ALLOWED_ACE;
+alias ACCESS_ALLOWED_ACE* PACCESS_ALLOWED_ACE;
+
+struct ACCESS_DENIED_ACE
+{
+    ACE_HEADER Header;
+    ACCESS_MASK Mask;
+    DWORD SidStart;
+}
+
+alias ACCESS_DENIED_ACE _ACCESS_DENIED_ACE;
+alias ACCESS_DENIED_ACE TACCESS_DENIED_ACE;
+
+struct ACCESSTIMEOUT
+{
+    UINT cbSize;
+    DWORD dwFlags;
+    DWORD iTimeOutMSec;
+}
+
+alias ACCESSTIMEOUT _ACCESSTIMEOUT;
+alias ACCESSTIMEOUT TACCESSTIMEOUT;
+alias ACCESSTIMEOUT* PACCESSTIMEOUT;
+
+struct ACL
+{
+    ubyte AclRevision;
+    ubyte Sbz1;
+    ushort AclSize;
+    ushort AceCount;
+    ushort Sbz2;
+}
+
+alias ACL* PACL;
+alias ACL _ACL;
+alias ACL TACL;
+
+struct ACL_REVISION_INFORMATION
+{
+    DWORD AclRevision;
+}
+
+alias ACL_REVISION_INFORMATION _ACL_REVISION_INFORMATION;
+alias ACL_REVISION_INFORMATION TACLREVISIONINFORMATION;
+alias ACL_REVISION_INFORMATION* PACLREVISIONINFORMATION;
+
+struct ACL_SIZE_INFORMATION
+{
+    DWORD AceCount;
+    DWORD AclBytesInUse;
+    DWORD AclBytesFree;
+}
+
+alias ACL_SIZE_INFORMATION _ACL_SIZE_INFORMATION;
+alias ACL_SIZE_INFORMATION TACLSIZEINFORMATION;
+alias ACL_SIZE_INFORMATION* PACLSIZEINFORMATION;
+
+struct ACTION_HEADER
+{
+    ULONG transport_id;
+    USHORT action_code;
+    USHORT reserved;
+}
+
+alias ACTION_HEADER _ACTION_HEADER;
+alias ACTION_HEADER TACTIONHEADER;
+alias ACTION_HEADER* PACTIONHEADER;
+
+struct ADAPTER_STATUS
+{
+    UCHAR[1 + 5] adapter_address;
+    UCHAR rev_major;
+    UCHAR reserved0;
+    UCHAR adapter_type;
+    UCHAR rev_minor;
+    ushort duration;
+    ushort frmr_recv;
+    ushort frmr_xmit;
+    ushort iframe_recv_err;
+    ushort xmit_aborts;
+    DWORD xmit_success;
+    DWORD recv_success;
+    ushort iframe_xmit_err;
+    ushort recv_buff_unavail;
+    ushort t1_timeouts;
+    ushort ti_timeouts;
+    DWORD reserved1;
+    ushort free_ncbs;
+    ushort max_cfg_ncbs;
+    ushort max_ncbs;
+    ushort xmit_buf_unavail;
+    ushort max_dgram_size;
+    ushort pending_sess;
+    ushort max_cfg_sess;
+    ushort max_sess;
+    ushort max_sess_pkt_size;
+    ushort name_count;
+}
+
+alias ADAPTER_STATUS _ADAPTER_STATUS;
+alias ADAPTER_STATUS TADAPTERSTATUS;
+alias ADAPTER_STATUS* PADAPTERSTATUS;
+
+struct ADDJOB_INFO_1
+{
+    LPTSTR Path;
+    DWORD JobId;
+}
+
+alias ADDJOB_INFO_1 _ADDJOB_INFO_1;
+alias ADDJOB_INFO_1 TADDJOB_INFO_1;
+alias ADDJOB_INFO_1* PADDJOB_INFO_1;
+
+struct ANIMATIONINFO
+{
+    UINT cbSize;
+    int iMinAnimate;
+}
+
+alias ANIMATIONINFO* LPANIMATIONINFO;
+alias ANIMATIONINFO _ANIMATIONINFO;
+alias ANIMATIONINFO TANIMATIONINFO;
+alias ANIMATIONINFO* PANIMATIONINFO;
+
+struct RECT
+{
+    LONG left;
+    LONG top;
+    LONG right;
+    LONG bottom;
+}
+
+alias RECT* LPCRECT;
+alias RECT* LPRECT;
+alias RECT _RECT;
+alias RECT TRECT;
+alias RECT* PRECT;
+
+struct RECTL
+{
+    LONG left;
+    LONG top;
+    LONG right;
+    LONG bottom;
+}
+
+alias RECTL _RECTL;
+alias RECTL TRECTL;
+alias RECTL* PRECTL;
+alias RECTL* LPRECTL;
+alias RECTL* LPCRECTL;
+
+struct APPBARDATA
+{
+    DWORD cbSize;
+    HWND hWnd;
+    UINT uCallbackMessage;
+    UINT uEdge;
+    RECT rc;
+    LPARAM lParam;
+}
+
+alias APPBARDATA _APPBARDATA;
+alias APPBARDATA TAPPBARDATA;
+alias APPBARDATA* PAPPBARDATA;
+
+struct BITMAP
+{
+    LONG bmType;
+    LONG bmWidth;
+    LONG bmHeight;
+    LONG bmWidthBytes;
+    ushort bmPlanes;
+    ushort bmBitsPixel;
+    LPVOID bmBits;
+}
+
+alias BITMAP* PBITMAP;
+alias BITMAP* NPBITMAP;
+alias BITMAP* LPBITMAP;
+alias BITMAP TAGBITMAP;
+alias BITMAP TBITMAP;
+
+struct BITMAPCOREHEADER
+{
+    DWORD bcSize;
+    ushort bcWidth;
+    ushort bcHeight;
+    ushort bcPlanes;
+    ushort bcBitCount;
+}
+
+alias BITMAPCOREHEADER TAGBITMAPCOREHEADER;
+alias BITMAPCOREHEADER TBITMAPCOREHEADER;
+alias BITMAPCOREHEADER* PBITMAPCOREHEADER;
+
+struct RGBTRIPLE
+{
+    ubyte rgbtBlue;
+    ubyte rgbtGreen;
+    ubyte rgbtRed;
+}
+
+alias RGBTRIPLE TAGRGBTRIPLE;
+alias RGBTRIPLE TRGBTRIPLE;
+alias RGBTRIPLE* PRGBTRIPLE;
+
+struct BITMAPCOREINFO
+{
+    BITMAPCOREHEADER bmciHeader;
+    RGBTRIPLE[1 + 0] bmciColors;
+}
+
+alias BITMAPCOREINFO* PBITMAPCOREINFO;
+alias BITMAPCOREINFO* LPBITMAPCOREINFO;
+alias BITMAPCOREINFO _BITMAPCOREINFO;
+alias BITMAPCOREINFO TBITMAPCOREINFO;
+
+struct BITMAPINFOHEADER
+{
+    DWORD biSize;
+    LONG biWidth;
+    LONG biHeight;
+    ushort biPlanes;
+    ushort biBitCount;
+    DWORD biCompression;
+    DWORD biSizeImage;
+    LONG biXPelsPerMeter;
+    LONG biYPelsPerMeter;
+    DWORD biClrUsed;
+    DWORD biClrImportant;
+}
+
+alias BITMAPINFOHEADER* LPBITMAPINFOHEADER;
+alias BITMAPINFOHEADER TBITMAPINFOHEADER;
+alias BITMAPINFOHEADER* PBITMAPINFOHEADER;
+
+struct RGBQUAD
+{
+    ubyte rgbBlue;
+    ubyte rgbGreen;
+    ubyte rgbRed;
+    ubyte rgbReserved;
+}
+
+alias RGBQUAD TAGRGBQUAD;
+alias RGBQUAD TRGBQUAD;
+alias RGBQUAD* PRGBQUAD;
+
+struct BITMAPINFO
+{
+    BITMAPINFOHEADER bmiHeader;
+    RGBQUAD[1 + 0] bmiColors;
+}
+
+alias BITMAPINFO* LPBITMAPINFO;
+alias BITMAPINFO* PBITMAPINFO;
+alias BITMAPINFO TBITMAPINFO;
+alias int FXPT2DOT30;
+alias FXPT2DOT30* LPFXPT2DOT30;
+alias FXPT2DOT30 TPFXPT2DOT30;
+alias FXPT2DOT30* PPFXPT2DOT30;
+
+struct CIEXYZ
+{
+    FXPT2DOT30 ciexyzX;
+    FXPT2DOT30 ciexyzY;
+    FXPT2DOT30 ciexyzZ;
+}
+
+alias CIEXYZ TAGCIEXYZ;
+alias CIEXYZ* LPCIEXYZ;
+alias CIEXYZ TPCIEXYZ;
+alias CIEXYZ* PCIEXYZ;
+
+struct CIEXYZTRIPLE
+{
+    CIEXYZ ciexyzRed;
+    CIEXYZ ciexyzGreen;
+    CIEXYZ ciexyzBlue;
+}
+
+alias CIEXYZTRIPLE TAGCIEXYZTRIPLE;
+alias CIEXYZTRIPLE* LPCIEXYZTRIPLE;
+alias CIEXYZTRIPLE TCIEXYZTRIPLE;
+alias CIEXYZTRIPLE* PCIEXYZTRIPLE;
+
+struct BITMAPV4HEADER
+{
+    DWORD bV4Size;
+    LONG bV4Width;
+    LONG bV4Height;
+    ushort bV4Planes;
+    ushort bV4BitCount;
+    DWORD bV4V4Compression;
+    DWORD bV4SizeImage;
+    LONG bV4XPelsPerMeter;
+    LONG bV4YPelsPerMeter;
+    DWORD bV4ClrUsed;
+    DWORD bV4ClrImportant;
+    DWORD bV4RedMask;
+    DWORD bV4GreenMask;
+    DWORD bV4BlueMask;
+    DWORD bV4AlphaMask;
+    DWORD bV4CSType;
+    CIEXYZTRIPLE bV4Endpoints;
+    DWORD bV4GammaRed;
+    DWORD bV4GammaGreen;
+    DWORD bV4GammaBlue;
+}
+
+alias BITMAPV4HEADER* LPBITMAPV4HEADER;
+alias BITMAPV4HEADER TBITMAPV4HEADER;
+alias BITMAPV4HEADER* PBITMAPV4HEADER;
+
+align(1) struct BITMAPFILEHEADER
+{
+    ushort bfType;
+    DWORD bfSize;
+    ushort bfReserved1;
+    ushort bfReserved2;
+    DWORD bfOffBits;
+}
+
+
+struct BLOB
+{
+    ULONG cbSize;
+    ubyte* pBlobData;
+}
+
+alias BLOB _BLOB;
+alias BLOB TBLOB;
+alias BLOB* PBLOB;
+
+align(1) struct SHITEMID
+{
+    USHORT cb;
+    ubyte[1 + 0] abID;
+}
+
+alias SHITEMID* LPSHITEMID;
+alias SHITEMID* LPCSHITEMID;
+alias SHITEMID _SHITEMID;
+alias SHITEMID TSHITEMID;
+alias SHITEMID* PSHITEMID;
+
+struct ITEMIDLIST
+{
+    SHITEMID mkid;
+}
+
+alias ITEMIDLIST* LPITEMIDLIST;
+alias ITEMIDLIST* LPCITEMIDLIST;
+alias ITEMIDLIST _ITEMIDLIST;
+alias ITEMIDLIST TITEMIDLIST;
+alias ITEMIDLIST* PITEMIDLIST;
+
+struct BROWSEINFOA
+{
+    HWND hwndOwner;
+    LPCITEMIDLIST pidlRoot;
+    LPSTR pszDisplayName;
+    LPCSTR lpszTitle;
+    UINT ulFlags;
+    BFFCALLBACK lpfn;
+    LPARAM lParam;
+    int iImage;
+}
+struct BROWSEINFOW
+{
+    HWND hwndOwner;
+    LPCITEMIDLIST pidlRoot;
+    LPWSTR pszDisplayName;
+    LPCWSTR lpszTitle;
+    UINT ulFlags;
+    BFFCALLBACK lpfn;
+    LPARAM lParam;
+    int iImage;
+}
+version( Win32SansUnicode )
+{
+    alias BROWSEINFOA BROWSEINFO;
+}
+else
+{
+    alias BROWSEINFOW BROWSEINFO;
+}
+alias BROWSEINFO* PBROWSEINFO, LPBROWSEINFO;
+
+struct FILETIME
+{
+    DWORD dwLowDateTime;
+    DWORD dwHighDateTime;
+}
+
+alias FILETIME* LPFILETIME;
+alias FILETIME _FILETIME;
+alias FILETIME TFILETIME;
+alias FILETIME* PFILETIME;
+
+struct BY_HANDLE_FILE_INFORMATION
+{
+    DWORD dwFileAttributes;
+    FILETIME ftCreationTime;
+    FILETIME ftLastAccessTime;
+    FILETIME ftLastWriteTime;
+    DWORD dwVolumeSerialNumber;
+    DWORD nFileSizeHigh;
+    DWORD nFileSizeLow;
+    DWORD nNumberOfLinks;
+    DWORD nFileIndexHigh;
+    DWORD nFileIndexLow;
+}
+
+alias BY_HANDLE_FILE_INFORMATION* LPBY_HANDLE_FILE_INFORMATION;
+alias BY_HANDLE_FILE_INFORMATION _BY_HANDLE_FILE_INFORMATION;
+alias BY_HANDLE_FILE_INFORMATION TBYHANDLEFILEINFORMATION;
+alias BY_HANDLE_FILE_INFORMATION* PBYHANDLEFILEINFORMATION;
+
+struct FIXED
+{
+    ushort fract;
+    short value;
+}
+
+alias FIXED _FIXED;
+alias FIXED TFIXED;
+alias FIXED* PFIXED;
+
+struct POINT
+{
+    LONG x;
+    LONG y;
+}
+
+alias POINT* LPPOINT;
+alias POINT TAGPOINT;
+alias POINT TPOINT;
+alias POINT* PPOINT;
+
+struct POINTFX
+{
+    FIXED x;
+    FIXED y;
+}
+
+alias POINTFX TAGPOINTFX;
+alias POINTFX TPOINTFX;
+alias POINTFX* PPOINTFX;
+
+struct POINTL
+{
+    LONG x;
+    LONG y;
+}
+
+alias POINTL _POINTL;
+alias POINTL TPOINTL;
+alias POINTL* PPOINTL;
+
+struct TSMALLPOINT
+{
+    byte X, Y;
+}
+
+
+struct POINTS
+{
+    SHORT x;
+    SHORT y;
+}
+
+alias POINTS TAGPOINTS;
+alias POINTS TPOINTS;
+alias POINTS* PPOINTS;
+
+struct CANDIDATEFORM
+{
+    DWORD dwIndex;
+    DWORD dwStyle;
+    POINT ptCurrentPos;
+    RECT rcArea;
+}
+
+alias CANDIDATEFORM* LPCANDIDATEFORM;
+alias CANDIDATEFORM _TAGCANDIDATEFORM;
+alias CANDIDATEFORM TCANDIDATEFORM;
+alias CANDIDATEFORM* PCANDIDATEFORM;
+
+struct CANDIDATELIST
+{
+    DWORD dwSize;
+    DWORD dwStyle;
+    DWORD dwCount;
+    DWORD dwSelection;
+    DWORD dwPageStart;
+    DWORD dwPageSize;
+    DWORD[1 + 0] dwOffset;
+}
+
+alias CANDIDATELIST* LPCANDIDATELIST;
+alias CANDIDATELIST _TAGCANDIDATELIST;
+alias CANDIDATELIST TCANDIDATELIST;
+alias CANDIDATELIST* PCANDIDATELIST;
+
+struct CREATESTRUCT
+{
+    LPVOID lpCreateParams;
+    HINST hInstance;
+    HMENU hMenu;
+    HWND hwndParent;
+    int cy;
+    int cx;
+    int y;
+    int x;
+    LONG style;
+    LPCTSTR lpszName;
+    LPCTSTR lpszClass;
+    DWORD dwExStyle;
+}
+
+alias CREATESTRUCT* LPCREATESTRUCT;
+alias CREATESTRUCT TAGCREATESTRUCT;
+alias CREATESTRUCT TCREATESTRUCT;
+alias CREATESTRUCT* PCREATESTRUCT;
+
+struct CBT_CREATEWND
+{
+    LPCREATESTRUCT lpcs;
+    HWND hwndInsertAfter;
+}
+
+alias CBT_CREATEWND TAGCBT_CREATEWND;
+alias CBT_CREATEWND TCBT_CREATEWND;
+alias CBT_CREATEWND* PCBT_CREATEWND;
+
+struct CBTACTIVATESTRUCT
+{
+    WINBOOL fMouse;
+    HWND hWndActive;
+}
+
+alias CBTACTIVATESTRUCT TAGCBTACTIVATESTRUCT;
+alias CBTACTIVATESTRUCT TCBTACTIVATESTRUCT;
+alias CBTACTIVATESTRUCT* PCBTACTIVATESTRUCT;
+
+struct CHAR_INFO
+{
+
+    union
+    {
+        struct
+        {
+            WCHAR UnicodeChar;
+            ushort Attributes;
+        }
+        struct
+        {
+            char AsciiChar;
+        }
+    }
+}
+
+alias CHAR_INFO _CHAR_INFO;
+alias CHAR_INFO TCHAR_INFO;
+alias CHAR_INFO* PCHAR_INFO;
+
+struct CHARFORMAT
+{
+    UINT cbSize;
+    DWORD dwMask;
+    DWORD dwEffects;
+    LONG yHeight;
+    LONG yOffset;
+    COLORREF crTextColor;
+    ubyte bCharSet;
+    ubyte bPitchAndFamily;
+    TCHAR[1 + LF_FACESIZE-1] szFaceName;
+}
+
+alias CHARFORMAT _CHARFORMAT;
+alias CHARFORMAT TCHARFORMAT;
+alias CHARFORMAT* PCHARFORMAT;
+
+struct CHARRANGE
+{
+    LONG cpMin;
+    LONG cpMax;
+}
+
+alias CHARRANGE _CHARRANGE;
+alias CHARRANGE TCHARRANGE;
+alias CHARRANGE* PCHARRANGE;
+
+struct CHARSET
+{
+    DWORD[1 + 2] aflBlock;
+    DWORD flLang;
+}
+
+alias CHARSET TAGCHARSET;
+alias CHARSET TCHARSET;
+alias CHARSET* PCHARSET;
+
+struct FONTSIGNATURE
+{
+    DWORD[1 + 3] fsUsb;
+    DWORD[1 + 1] fsCsb;
+}
+
+alias FONTSIGNATURE* LPFONTSIGNATURE;
+alias FONTSIGNATURE TAGFONTSIGNATURE;
+alias FONTSIGNATURE TFONTSIGNATURE;
+alias FONTSIGNATURE* PFONTSIGNATURE;
+
+struct CHARSETINFO
+{
+    UINT ciCharset;
+    UINT ciACP;
+    FONTSIGNATURE fs;
+}
+
+alias CHARSETINFO* LPCHARSETINFO;
+alias CHARSETINFO TCHARSETINFO;
+alias CHARSETINFO* PCHARSETINFO;
+
+struct CHOOSECOLORA {
+    DWORD        lStructSize;
+    HWND         hwndOwner;
+    HWND         hInstance;
+    COLORREF     rgbResult;
+    COLORREF*    lpCustColors;
+    DWORD        Flags;
+    LPARAM       lCustData;
+    LPCCHOOKPROC lpfnHook;
+    LPCSTR      lpTemplateName;
+}
+alias CHOOSECOLORA* PCHOOSECOLORA, LPCHOOSECOLORA;
+struct CHOOSECOLORW {
+    DWORD        lStructSize;
+    HWND         hwndOwner;
+    HWND         hInstance;
+    COLORREF     rgbResult;
+    COLORREF*    lpCustColors;
+    DWORD        Flags;
+    LPARAM       lCustData;
+    LPCCHOOKPROC lpfnHook;
+    LPCWSTR      lpTemplateName;
+}
+alias CHOOSECOLORW* PCHOOSECOLORW, LPCHOOSECOLORW;
+version(Win32SansUnicode)
+{
+    alias CHOOSECOLORA CHOOSECOLOR;
+}
+else
+{
+    alias CHOOSECOLORW CHOOSECOLOR;
+}
+alias CHOOSECOLOR* PCHOOSECOLOR, LPCHOOSECOLOR;
+
+struct LOGFONTA
+{
+    LONG lfHeight;
+    LONG lfWidth;
+    LONG lfEscapement;
+    LONG lfOrientation;
+    LONG lfWeight;
+    ubyte lfItalic;
+    ubyte lfUnderline;
+    ubyte lfStrikeOut;
+    ubyte lfCharSet;
+    ubyte lfOutPrecision;
+    ubyte lfClipPrecision;
+    ubyte lfQuality;
+    ubyte lfPitchAndFamily;
+    ubyte[1 + LF_FACESIZE-1] lfFaceName;
+}
+
+alias LOGFONTA  TLOGFONTA;
+alias LOGFONTA* PLOGFONTA;
+alias LOGFONTA* LPLOGFONTA;
+
+struct LOGFONTW
+{
+    LONG lfHeight;
+    LONG lfWidth;
+    LONG lfEscapement;
+    LONG lfOrientation;
+    LONG lfWeight;
+    ubyte lfItalic;
+    ubyte lfUnderline;
+    ubyte lfStrikeOut;
+    ubyte lfCharSet;
+    ubyte lfOutPrecision;
+    ubyte lfClipPrecision;
+    ubyte lfQuality;
+    ubyte lfPitchAndFamily;
+    WCHAR lfFaceName[LF_FACESIZE] = 0;
+};
+
+alias LOGFONTW  TLOGFONTW;
+alias LOGFONTW* LPLOGFONTW;
+alias LOGFONTW* PLOGFONTW;
+
+version( Win32SansUnicode ){
+    alias LOGFONTA  LOGFONT;
+    alias LOGFONTA  TLOGFONT;
+    alias LOGFONTA* PLOGFONT;
+    alias LOGFONTA* LPLOGFONT;
+}
+else{
+    alias LOGFONTW  LOGFONT;
+    alias LOGFONTW  TLOGFONT;
+    alias LOGFONTW* PLOGFONT;
+    alias LOGFONTW* LPLOGFONT;
+}
+
+struct CHOOSEFONTA {
+    DWORD        lStructSize;
+    HWND         hwndOwner;
+    HDC          hDC;
+    LPLOGFONTA   lpLogFont;
+    INT          iPointSize;
+    DWORD        Flags;
+    DWORD        rgbColors;
+    LPARAM       lCustData;
+    LPCFHOOKPROC lpfnHook;
+    LPCSTR       lpTemplateName;
+    HINSTANCE    hInstance;
+    LPSTR        lpszStyle;
+    WORD         nFontType;
+    WORD         ___MISSING_ALIGNMENT__;
+    INT          nSizeMin;
+    INT          nSizeMax;
+}
+alias CHOOSEFONTA* PCHOOSEFONTA;
+alias CHOOSEFONTA* LPCHOOSEFONTA;
+
+struct CHOOSEFONTW {
+    DWORD        lStructSize;
+    HWND         hwndOwner;
+    HDC          hDC;
+    LOGFONTW*    lpLogFont;
+    INT          iPointSize;
+    DWORD        Flags;
+    DWORD        rgbColors;
+    LPARAM       lCustData;
+    LPCFHOOKPROC lpfnHook;
+    LPCWSTR      lpTemplateName;
+    HINSTANCE    hInstance;
+    LPWSTR       lpszStyle;
+    WORD         nFontType;
+    WORD         ___MISSING_ALIGNMENT__;
+    INT          nSizeMin;
+    INT          nSizeMax;
+}
+alias CHOOSEFONTW* PCHOOSEFONTW;
+alias CHOOSEFONTW* LPCHOOSEFONTW;
+
+version(Win32SansUnicode){
+    alias CHOOSEFONTA CHOOSEFONT;
+}else{
+    alias CHOOSEFONTW CHOOSEFONT;
+}
+
+alias CHOOSEFONT* LPCHOOSEFONT;
+alias CHOOSEFONT* PCHOOSEFONT;
+alias CHOOSEFONT TCHOOSEFONT;
+
+struct CIDA
+{
+    UINT cidl;
+    UINT[1 + 0] aoffset;
+}
+
+alias CIDA* LPIDA;
+alias CIDA _IDA;
+alias CIDA TIDA;
+alias CIDA* PIDA;
+
+struct CLIENTCREATESTRUCT
+{
+    HANDLE hWindowMenu;
+    UINT idFirstChild;
+}
+
+alias CLIENTCREATESTRUCT* LPCLIENTCREATESTRUCT;
+alias CLIENTCREATESTRUCT TAGCLIENTCREATESTRUCT;
+alias CLIENTCREATESTRUCT TCLIENTCREATESTRUCT;
+alias CLIENTCREATESTRUCT* PCLIENTCREATESTRUCT;
+
+struct CMINVOKECOMMANDINFO
+{
+    DWORD cbSize;
+    DWORD fMask;
+    HWND hwnd;
+    LPCSTR lpVerb;
+    LPCSTR lpParameters;
+    LPCSTR lpDirectory;
+    int nShow;
+    DWORD dwHotKey;
+    HANDLE hIcon;
+}
+
+alias CMINVOKECOMMANDINFO* LPCMINVOKECOMMANDINFO;
+alias CMINVOKECOMMANDINFO _CMINVOKECOMMANDINFO;
+alias CMINVOKECOMMANDINFO TCMINVOKECOMMANDINFO;
+alias CMINVOKECOMMANDINFO* PCMINVOKECOMMANDINFO;
+
+struct COLORADJUSTMENT
+{
+    ushort caSize;
+    ushort caFlags;
+    ushort caIlluminantIndex;
+    ushort caRedGamma;
+    ushort caGreenGamma;
+    ushort caBlueGamma;
+    ushort caReferenceBlack;
+    ushort caReferenceWhite;
+    SHORT caContrast;
+    SHORT caBrightness;
+    SHORT caColorfulness;
+    SHORT caRedGreenTint;
+}
+
+alias COLORADJUSTMENT* LPCOLORADJUSTMENT;
+alias COLORADJUSTMENT TAGCOLORADJUSTMENT;
+alias COLORADJUSTMENT TCOLORADJUSTMENT;
+alias COLORADJUSTMENT* PCOLORADJUSTMENT;
+
+struct COLORMAP
+{
+    COLORREF from;
+    COLORREF _to;
+}
+
+alias COLORMAP* LPCOLORMAP;
+alias COLORMAP _COLORMAP;
+alias COLORMAP TCOLORMAP;
+alias COLORMAP* PCOLORMAP;
+
+struct DCB
+{
+    DWORD DCBlength;
+    DWORD BaudRate;
+    int flag0;
+    ushort wReserved;
+    ushort XonLim;
+    ushort XoffLim;
+    ubyte ByteSize;
+    ubyte Parity;
+    ubyte StopBits;
+    char XonChar;
+    char XoffChar;
+    char ErrorChar;
+    char EofChar;
+    char EvtChar;
+    ushort wReserved1;
+}
+
+alias DCB* LPDCB;
+alias DCB _DCB;
+alias DCB TDCB;
+alias DCB* PDCB;
+enum : DWORD {
+    bm_DCB_fBinary = (0x1),
+    bp_DCB_fBinary = (0),
+    bm_DCB_fParity = (0x2),
+    bp_DCB_fParity = (1),
+    bm_DCB_fOutxCtsFlow = (0x4),
+    bp_DCB_fOutxCtsFlow = (2),
+    bm_DCB_fOutxDsrFlow = (0x8),
+    bp_DCB_fOutxDsrFlow = (3),
+    bm_DCB_fDtrControl = (0x30),
+    bp_DCB_fDtrControl = (4),
+    bm_DCB_fDsrSensitivity = (0x40),
+    bp_DCB_fDsrSensitivity = (6),
+    bm_DCB_fTXContinueOnXoff = (0x80),
+    bp_DCB_fTXContinueOnXoff = (7),
+    bm_DCB_fOutX = (0x100),
+    bp_DCB_fOutX = (8),
+    bm_DCB_fInX = (0x200),
+    bp_DCB_fInX = (9),
+    bm_DCB_fErrorChar = (0x400),
+    bp_DCB_fErrorChar = (10),
+    bm_DCB_fNull = (0x800),
+    bp_DCB_fNull = (11),
+    bm_DCB_fRtsControl = (0x3000),
+    bp_DCB_fRtsControl = (12),
+    bm_DCB_fAbortOnError = (0x4000),
+    bp_DCB_fAbortOnError = (14),
+    bm_DCB_fDummy2 = (0xFFFF8000),
+    bp_DCB_fDummy2 = (15),
+}
+
+struct COMMCONFIG
+{
+    DWORD dwSize;
+    ushort wVersion;
+    ushort wReserved;
+    DCB dcb;
+    DWORD dwProviderSubType;
+    DWORD dwProviderOffset;
+    DWORD dwProviderSize;
+    WCHAR[1 + 0] wcProviderData;
+}
+
+alias COMMCONFIG* LPCOMMCONFIG;
+alias COMMCONFIG _COMM_CONFIG;
+alias COMMCONFIG TCOMMCONFIG;
+alias COMMCONFIG* PCOMMCONFIG;
+
+struct COMMPROP
+{
+    ushort wPacketLength;
+    ushort wPacketVersion;
+    DWORD dwServiceMask;
+    DWORD dwReserved1;
+    DWORD dwMaxTxQueue;
+    DWORD dwMaxRxQueue;
+    DWORD dwMaxBaud;
+    DWORD dwProvSubType;
+    DWORD dwProvCapabilities;
+    DWORD dwSettableParams;
+    DWORD dwSettableBaud;
+    ushort wSettableData;
+    ushort wSettableStopParity;
+    DWORD dwCurrentTxQueue;
+    DWORD dwCurrentRxQueue;
+    DWORD dwProvSpec1;
+    DWORD dwProvSpec2;
+    WCHAR[1 + 0] wcProvChar;
+}
+
+alias COMMPROP* LPCOMMPROP;
+alias COMMPROP _COMMPROP;
+alias COMMPROP TCOMMPROP;
+alias COMMPROP* PCOMMPROP;
+
+struct COMMTIMEOUTS
+{
+    DWORD ReadIntervalTimeout;
+    DWORD ReadTotalTimeoutMultiplier;
+    DWORD ReadTotalTimeoutConstant;
+    DWORD WriteTotalTimeoutMultiplier;
+    DWORD WriteTotalTimeoutConstant;
+}
+
+alias COMMTIMEOUTS* LPCOMMTIMEOUTS;
+alias COMMTIMEOUTS _COMMTIMEOUTS;
+alias COMMTIMEOUTS TCOMMTIMEOUTS;
+alias COMMTIMEOUTS* PCOMMTIMEOUTS;
+
+struct COMPAREITEMSTRUCT
+{
+    UINT CtlType;
+    UINT CtlID;
+    HWND hwndItem;
+    UINT itemID1;
+    ULONG_PTR itemData1;
+    UINT itemID2;
+    ULONG_PTR itemData2;
+    DWORD dwLocaleId;
+}
+
+alias COMPAREITEMSTRUCT TAGCOMPAREITEMSTRUCT;
+alias COMPAREITEMSTRUCT TCOMPAREITEMSTRUCT;
+alias COMPAREITEMSTRUCT* PCOMPAREITEMSTRUCT;
+
+struct COMPCOLOR
+{
+    COLORREF crText;
+    COLORREF crBackground;
+    DWORD dwEffects;
+}
+
+alias COMPCOLOR TCOMPCOLOR;
+alias COMPCOLOR* PCOMPCOLOR;
+
+struct COMPOSITIONFORM
+{
+    DWORD dwStyle;
+    POINT ptCurrentPos;
+    RECT rcArea;
+}
+
+alias COMPOSITIONFORM* LPCOMPOSITIONFORM;
+alias COMPOSITIONFORM _TAGCOMPOSITIONFORM;
+alias COMPOSITIONFORM TCOMPOSITIONFORM;
+alias COMPOSITIONFORM* PCOMPOSITIONFORM;
+
+struct COMSTAT
+{
+    int flag0;
+    DWORD cbInQue;
+    DWORD cbOutQue;
+}
+
+alias COMSTAT* LPCOMSTAT;
+alias COMSTAT _COMSTAT;
+alias COMSTAT TCOMSTAT;
+alias COMSTAT* PCOMSTAT;
+enum : DWORD {
+    bm_COMSTAT_fCtsHold = (0x1),
+    bp_COMSTAT_fCtsHold = (0),
+    bm_COMSTAT_fDsrHold = (0x2),
+    bp_COMSTAT_fDsrHold = (1),
+    bm_COMSTAT_fRlsdHold = (0x4),
+    bp_COMSTAT_fRlsdHold = (2),
+    bm_COMSTAT_fXoffHold = (0x8),
+    bp_COMSTAT_fXoffHold = (3),
+    bm_COMSTAT_fXoffSent = (0x10),
+    bp_COMSTAT_fXoffSent = (4),
+    bm_COMSTAT_fEof = (0x20),
+    bp_COMSTAT_fEof = (5),
+    bm_COMSTAT_fTxim = (0x40),
+    bp_COMSTAT_fTxim = (6),
+    bm_COMSTAT_fReserved = (0xFFFFFF80),
+    bp_COMSTAT_fReserved = (7),
+}
+struct CONSOLE_CURSOR_INFO
+{
+    DWORD dwSize;
+    WINBOOL bVisible;
+}
+
+alias CONSOLE_CURSOR_INFO* PCONSOLE_CURSOR_INFO;
+alias CONSOLE_CURSOR_INFO _CONSOLE_CURSOR_INFO;
+alias CONSOLE_CURSOR_INFO TCONSOLECURSORINFO;
+alias CONSOLE_CURSOR_INFO* PCONSOLECURSORINFO;
+alias CONSOLE_CURSOR_INFO TCURSORINFO;
+
+struct COORD
+{
+    SHORT X;
+    SHORT Y;
+}
+
+alias COORD _COORD;
+alias COORD TCOORD;
+alias COORD* PCOORD;
+
+struct SMALL_RECT
+{
+    SHORT Left;
+    SHORT Top;
+    SHORT Right;
+    SHORT Bottom;
+}
+
+alias SMALL_RECT _SMALL_RECT;
+alias SMALL_RECT TSMALL_RECT;
+alias SMALL_RECT* PSMALL_RECT;
+
+align(1) struct CONSOLE_SCREEN_BUFFER_INFO
+{
+    COORD dwSize;
+    COORD dwCursorPosition;
+    ushort wAttributes;
+    SMALL_RECT srWindow;
+    COORD dwMaximumWindowSize;
+}
+
+alias CONSOLE_SCREEN_BUFFER_INFO* PCONSOLE_SCREEN_BUFFER_INFO;
+alias CONSOLE_SCREEN_BUFFER_INFO _CONSOLE_SCREEN_BUFFER_INFO;
+alias CONSOLE_SCREEN_BUFFER_INFO TCONSOLESCREENBUFFERINFO;
+alias CONSOLE_SCREEN_BUFFER_INFO* PCONSOLESCREENBUFFERINFO;
+
+struct FLOATING_SAVE_AREA
+{
+    DWORD ControlWord;
+    DWORD StatusWord;
+    DWORD TagWord;
+    DWORD ErrorOffset;
+    DWORD ErrorSelector;
+    DWORD DataOffset;
+    DWORD DataSelector;
+    ubyte[1 + 79] RegisterArea;
+    DWORD Cr0NpxState;
+}
+
+alias FLOATING_SAVE_AREA _FLOATING_SAVE_AREA;
+alias FLOATING_SAVE_AREA TFLOATINGSAVEAREA;
+alias FLOATING_SAVE_AREA* PFLOATINGSAVEAREA;
+
+enum : DWORD
+{
+//
+// The following flags control the contents of the CONTEXT structure.
+//
+    CONTEXT_i386 = 0x00010000,    // this assumes that i386 and
+    CONTEXT_i486 = 0x00010000,    // i486 have identical context records
+
+    CONTEXT_CONTROL =         (CONTEXT_i386 | 0x00000001), // SS:SP, CS:IP, FLAGS, BP
+    CONTEXT_INTEGER =         (CONTEXT_i386 | 0x00000002), // AX, BX, CX, DX, SI, DI
+    CONTEXT_SEGMENTS =        (CONTEXT_i386 | 0x00000004), // DS, ES, FS, GS
+    CONTEXT_FLOATING_POINT =  (CONTEXT_i386 | 0x00000008), // 387 state
+    CONTEXT_DEBUG_REGISTERS = (CONTEXT_i386 | 0x00000010), // DB 0-3,6,7
+
+    CONTEXT_FULL = (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS),
+}
+
+struct CONTEXT
+{
+    DWORD ContextFlags;
+    DWORD Dr0;
+    DWORD Dr1;
+    DWORD Dr2;
+    DWORD Dr3;
+    DWORD Dr6;
+    DWORD Dr7;
+    FLOATING_SAVE_AREA FloatSave;
+    DWORD SegGs;
+    DWORD SegFs;
+    DWORD SegEs;
+    DWORD SegDs;
+    DWORD Edi;
+    DWORD Esi;
+    DWORD Ebx;
+    DWORD Edx;
+    DWORD Ecx;
+    DWORD Eax;
+    DWORD Ebp;
+    DWORD Eip;
+    DWORD SegCs;
+    DWORD EFlags;
+    DWORD Esp;
+    DWORD SegSs;
+}
+
+alias CONTEXT* LPCONTEXT;
+alias CONTEXT _CONTEXT;
+alias CONTEXT TCONTEXT;
+alias CONTEXT* PCONTEXT;
+
+struct LIST_ENTRY
+{
+    _LIST_ENTRY* Flink;
+    _LIST_ENTRY* Blink;
+}
+
+alias LIST_ENTRY _LIST_ENTRY;
+alias LIST_ENTRY TLISTENTRY;
+alias LIST_ENTRY* PLISTENTRY;
+
+align(1) struct CRITICAL_SECTION_DEBUG
+{
+    WORD _Type;
+    WORD CreatorBackTraceIndex;
+    _CRITICAL_SECTION* CriticalSection;
+    LIST_ENTRY ProcessLocksList;
+    DWORD EntryCount;
+    DWORD ContentionCount;
+    DWORD Flags;
+    WORD   CreatorBackTraceIndexHigh;
+    WORD   SpareWORD  ;
+}
+
+alias CRITICAL_SECTION_DEBUG* LPCRITICAL_SECTION_DEBUG;
+alias CRITICAL_SECTION_DEBUG* PCRITICAL_SECTION_DEBUG;
+alias CRITICAL_SECTION_DEBUG _CRITICAL_SECTION_DEBUG;
+alias CRITICAL_SECTION_DEBUG TCRITICALSECTIONDEBUG;
+alias CRITICAL_SECTION_DEBUG* PCRITICALSECTIONDEBUG;
+
+align(1) struct CRITICAL_SECTION
+{
+    PCRITICAL_SECTION_DEBUG DebugInfo;
+    LONG LockCount;
+    LONG RecursionCount;
+    HANDLE OwningThread;
+    HANDLE LockSemaphore;
+    DWORD Reserved;
+}
+
+alias CRITICAL_SECTION* LPCRITICAL_SECTION;
+alias CRITICAL_SECTION* PCRITICAL_SECTION;
+alias CRITICAL_SECTION _CRITICAL_SECTION;
+alias CRITICAL_SECTION TCRITICALSECTION;
+alias CRITICAL_SECTION* PCRITICALSECTION;
+
+alias ubyte SECURITY_CONTEXT_TRACKING_MODE;
+struct SECURITY_QUALITY_OF_SERVICE
+{
+    DWORD Length;
+    SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
+    SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode;
+    BOOLEAN EffectiveOnly;
+}
+
+alias SECURITY_QUALITY_OF_SERVICE* PSECURITY_QUALITY_OF_SERVICE;
+alias SECURITY_QUALITY_OF_SERVICE _SECURITY_QUALITY_OF_SERVICE;
+alias SECURITY_QUALITY_OF_SERVICE TSECURITYQUALITYOFSERVICE;
+alias SECURITY_QUALITY_OF_SERVICE* PSECURITYQUALITYOFSERVICE;
+
+struct CONVCONTEXT
+{
+    UINT cb;
+    UINT wFlags;
+    UINT wCountryID;
+    int iCodePage;
+    DWORD dwLangID;
+    DWORD dwSecurity;
+    SECURITY_QUALITY_OF_SERVICE qos;
+}
+
+alias CONVCONTEXT TAGCONVCONTEXT;
+alias CONVCONTEXT TCONVCONTEXT;
+alias CONVCONTEXT* PCONVCONTEXT;
+
+struct CONVINFO
+{
+    DWORD cb;
+    DWORD hUser;
+    HCONV hConvPartner;
+    HSZ hszSvcPartner;
+    HSZ hszServiceReq;
+    HSZ hszTopic;
+    HSZ hszItem;
+    UINT wFmt;
+    UINT wType;
+    UINT wStatus;
+    UINT wConvst;
+    UINT wLastError;
+    HCONVLIST hConvList;
+    CONVCONTEXT ConvCtxt;
+    HWND _hwnd;
+    HWND hwndPartner;
+}
+
+alias CONVINFO TAGCONVINFO;
+alias CONVINFO TCONVINFO;
+alias CONVINFO* PCONVINFO;
+
+struct COPYDATASTRUCT
+{
+    DWORD dwData;
+    DWORD cbData;
+    PVOID lpData;
+}
+
+alias COPYDATASTRUCT TAGCOPYDATASTRUCT;
+alias COPYDATASTRUCT TCOPYDATASTRUCT;
+alias COPYDATASTRUCT* PCOPYDATASTRUCT;
+
+struct CPINFO
+{
+    UINT MaxCharSize;
+    ubyte[1 + MAX_DEFAULTCHAR-1] DefaultChar;
+    ubyte[1 + MAX_LEADBYTES-1] LeadByte;
+}
+
+alias CPINFO* LPCPINFO;
+alias CPINFO _CPINFO;
+alias CPINFO TCPINFO;
+alias CPINFO* PCPINFO;
+
+struct CPLINFO
+{
+    int idIcon;
+    int idName;
+    int idInfo;
+    LONG lData;
+}
+
+alias CPLINFO TAGCPLINFO;
+alias CPLINFO TCPLINFO;
+alias CPLINFO* PCPLINFO;
+
+struct CREATE_PROCESS_DEBUG_INFO
+{
+    HANDLE hFile;
+    HANDLE hProcess;
+    HANDLE hThread;
+    LPVOID lpBaseOfImage;
+    DWORD dwDebugInfoFileOffset;
+    DWORD nDebugInfoSize;
+    LPVOID lpThreadLocalBase;
+    LPTHREAD_START_ROUTINE lpStartAddress;
+    LPVOID lpImageName;
+    ushort fUnicode;
+}
+
+alias CREATE_PROCESS_DEBUG_INFO _CREATE_PROCESS_DEBUG_INFO;
+alias CREATE_PROCESS_DEBUG_INFO TCREATEPROCESSDEBUGINFO;
+alias CREATE_PROCESS_DEBUG_INFO* PCREATEPROCESSDEBUGINFO;
+
+struct CREATE_THREAD_DEBUG_INFO
+{
+    HANDLE hThread;
+    LPVOID lpThreadLocalBase;
+    LPTHREAD_START_ROUTINE lpStartAddress;
+}
+
+alias CREATE_THREAD_DEBUG_INFO _CREATE_THREAD_DEBUG_INFO;
+alias CREATE_THREAD_DEBUG_INFO TCREATETHREADDEBUGINFO;
+alias CREATE_THREAD_DEBUG_INFO* PCREATETHREADDEBUGINFO;
+
+struct CURRENCYFMT
+{
+    UINT NumDigits;
+    UINT LeadingZero;
+    UINT Grouping;
+    LPTSTR lpDecimalSep;
+    LPTSTR lpThousandSep;
+    UINT NegativeOrder;
+    UINT PositiveOrder;
+    LPTSTR lpCurrencySymbol;
+}
+
+alias CURRENCYFMT _CURRENCYFMT;
+alias CURRENCYFMT TCURRENCYFMT;
+alias CURRENCYFMT* PCURRENCYFMT;
+
+struct CURSORSHAPE
+{
+    int xHotSpot;
+    int yHotSpot;
+    int cx;
+    int cy;
+    int cbWidth;
+    ubyte Planes;
+    ubyte BitsPixel;
+}
+
+alias CURSORSHAPE* LPCURSORSHAPE;
+alias CURSORSHAPE TAGCURSORSHAPE;
+alias CURSORSHAPE TCURSORSHAPE;
+alias CURSORSHAPE* PCURSORSHAPE;
+
+struct CWPRETSTRUCT
+{
+    LRESULT lResult;
+    LPARAM lParam;
+    WPARAM wParam;
+    DWORD message;
+    HWND hwnd;
+}
+
+alias CWPRETSTRUCT TAGCWPRETSTRUCT;
+alias CWPRETSTRUCT TCWPRETSTRUCT;
+alias CWPRETSTRUCT* PCWPRETSTRUCT;
+
+struct CWPSTRUCT
+{
+    LPARAM lParam;
+    WPARAM wParam;
+    UINT message;
+    HWND hwnd;
+}
+
+alias CWPSTRUCT TAGCWPSTRUCT;
+alias CWPSTRUCT TCWPSTRUCT;
+alias CWPSTRUCT* PCWPSTRUCT;
+
+struct DATATYPES_INFO_1
+{
+    LPTSTR pName;
+}
+
+alias DATATYPES_INFO_1 _DATATYPES_INFO_1;
+alias DATATYPES_INFO_1 TDATATYPESINFO1;
+alias DATATYPES_INFO_1* PDATATYPESINFO1;
+
+struct DDEACK
+{
+    ushort flag0;
+}
+
+alias DDEACK TDDEACK;
+alias DDEACK* PDDEACK;
+enum : DWORD {
+    bm_DDEACK_bAppReturnCode = (0xFF),
+    bp_DDEACK_bAppReturnCode = (0),
+    bm_DDEACK_reserved = (0x3F00),
+    bp_DDEACK_reserved = (8),
+    bm_DDEACK_fBusy = (0x4000),
+    bp_DDEACK_fBusy = (14),
+    bm_DDEACK_fAck = (0x8000),
+    bp_DDEACK_fAck = (15),
+}
+
+struct DDEADVISE
+{
+    ushort flag0;
+    short cfFormat;
+}
+
+alias DDEADVISE TDDEADVISE;
+alias DDEADVISE* PDDEADVISE;
+enum : DWORD {
+    bm_DDEADVISE_reserved = (0x3FFF),
+    bp_DDEADVISE_reserved = (0),
+    bm_DDEADVISE_fDeferUpd = (0x4000),
+    bp_DDEADVISE_fDeferUpd = (14),
+    bm_DDEADVISE_fAckReq = (0x8000),
+    bp_DDEADVISE_fAckReq = (15),
+}
+
+struct DDEDATA
+{
+    ushort flag0;
+    short  cfFormat;
+    ubyte[1 + 0] Value;
+}
+
+alias DDEDATA* PDDEDATA;
+enum : DWORD {
+    bm_DDEDATA_unused = (0xFFF),
+    bp_DDEDATA_unused = (0),
+    bm_DDEDATA_fResponse = (0x1000),
+    bp_DDEDATA_fResponse = (12),
+    bm_DDEDATA_fRelease = (0x2000),
+    bp_DDEDATA_fRelease = (13),
+    bm_DDEDATA_reserved = (0x4000),
+    bp_DDEDATA_reserved = (14),
+    bm_DDEDATA_fAckReq = (0x8000),
+    bp_DDEDATA_fAckReq = (15),
+}
+
+struct DDELN
+{
+    ushort flag0;
+    short cfFormat;
+}
+
+alias DDELN TDDELN;
+alias DDELN* PDDELN;
+enum : DWORD {
+    bm_DDELN_unused = (0x1FFF),
+    bp_DDELN_unused = (0),
+    bm_DDELN_fRelease = (0x2000),
+    bp_DDELN_fRelease = (13),
+    bm_DDELN_fDeferUpd = (0x4000),
+    bp_DDELN_fDeferUpd = (14),
+    bm_DDELN_fAckReq = (0x8000),
+    bp_DDELN_fAckReq = (15),
+}
+
+struct DDEML_MSG_HOOK_DATA
+{
+    UINT uiLo;
+    UINT uiHi;
+    DWORD cbData;
+    DWORD[1 + 7] Data;
+}
+
+alias DDEML_MSG_HOOK_DATA TAGDDEML_MSG_HOOK_DATA;
+alias DDEML_MSG_HOOK_DATA TDDEMLMSGHOOKDATA;
+alias DDEML_MSG_HOOK_DATA* PDDEMLMSGHOOKDATA;
+
+struct DDEPOKE
+{
+    ushort flag0;
+    short cfFormat;
+    ubyte[1 + 0] Value;
+}
+
+alias DDEPOKE TDDEPOKE;
+alias DDEPOKE* PDDEPOKE;
+enum : DWORD {
+    bm_DDEPOKE_unused = (0x1FFF),
+    bp_DDEPOKE_unused = (0),
+    bm_DDEPOKE_fRelease = (0x2000),
+    bp_DDEPOKE_fRelease = (13),
+    bm_DDEPOKE_fReserved = (0xC000),
+    bp_DDEPOKE_fReserved = (14),
+}
+struct DDEUP
+{
+    ushort flag0;
+    short cfFormat;
+    ubyte[1 + 0] rgb;
+}
+
+alias DDEUP TDDEUP;
+alias DDEUP* PDDEUP;
+
+enum : DWORD {
+    bm_DDEUP_unused = (0xFFF),
+    bp_DDEUP_unused = (0),
+    bm_DDEUP_fAck = (0x1000),
+    bp_DDEUP_fAck = (12),
+    bm_DDEUP_fRelease = (0x2000),
+    bp_DDEUP_fRelease = (13),
+    bm_DDEUP_fReserved = (0x4000),
+    bp_DDEUP_fReserved = (14),
+    bm_DDEUP_fAckReq = (0x8000),
+    bp_DDEUP_fAckReq = (15),
+}
+
+struct EXCEPTION_RECORD
+{
+    DWORD ExceptionCode;
+    DWORD ExceptionFlags;
+    _EXCEPTION_RECORD* ExceptionRecord;
+    PVOID ExceptionAddress;
+    DWORD NumberParameters;
+    DWORD[1 + EXCEPTION_MAXIMUM_PARAMETERS-1] ExceptionInformation;
+}
+
+alias EXCEPTION_RECORD* PEXCEPTION_RECORD;
+alias EXCEPTION_RECORD _EXCEPTION_RECORD;
+alias EXCEPTION_RECORD TEXCEPTIONRECORD;
+alias EXCEPTION_RECORD* PEXCEPTIONRECORD;
+
+struct EXCEPTION_DEBUG_INFO
+{
+    EXCEPTION_RECORD ExceptionRecord;
+    DWORD dwFirstChance;
+}
+
+alias EXCEPTION_DEBUG_INFO* PEXCEPTION_DEBUG_INFO;
+alias EXCEPTION_DEBUG_INFO _EXCEPTION_DEBUG_INFO;
+alias EXCEPTION_DEBUG_INFO TEXCEPTIONDEBUGINFO;
+alias EXCEPTION_DEBUG_INFO* PEXCEPTIONDEBUGINFO;
+
+struct EXIT_PROCESS_DEBUG_INFO
+{
+    DWORD dwExitCode;
+}
+
+alias EXIT_PROCESS_DEBUG_INFO _EXIT_PROCESS_DEBUG_INFO;
+alias EXIT_PROCESS_DEBUG_INFO TEXITPROCESSDEBUGINFO;
+alias EXIT_PROCESS_DEBUG_INFO* PEXITPROCESSDEBUGINFO;
+
+struct EXIT_THREAD_DEBUG_INFO
+{
+    DWORD dwExitCode;
+}
+
+alias EXIT_THREAD_DEBUG_INFO _EXIT_THREAD_DEBUG_INFO;
+alias EXIT_THREAD_DEBUG_INFO TEXITTHREADDEBUGINFO;
+alias EXIT_THREAD_DEBUG_INFO* PEXITTHREADDEBUGINFO;
+
+struct LOAD_DLL_DEBUG_INFO
+{
+    HANDLE hFile;
+    LPVOID lpBaseOfDll;
+    DWORD dwDebugInfoFileOffset;
+    DWORD nDebugInfoSize;
+    LPVOID lpImageName;
+    ushort fUnicode;
+}
+
+alias LOAD_DLL_DEBUG_INFO _LOAD_DLL_DEBUG_INFO;
+alias LOAD_DLL_DEBUG_INFO TLOADDLLDEBUGINFO;
+alias LOAD_DLL_DEBUG_INFO* PLOADDLLDEBUGINFO;
+
+struct UNLOAD_DLL_DEBUG_INFO
+{
+    LPVOID lpBaseOfDll;
+}
+
+alias UNLOAD_DLL_DEBUG_INFO _UNLOAD_DLL_DEBUG_INFO;
+alias UNLOAD_DLL_DEBUG_INFO TUNLOADDLLDEBUGINFO;
+alias UNLOAD_DLL_DEBUG_INFO* PUNLOADDLLDEBUGINFO;
+
+struct OUTPUT_DEBUG_STRING_INFO
+{
+    LPSTR lpDebugStringData;
+    ushort fUnicode;
+    ushort nDebugStringLength;
+}
+
+alias OUTPUT_DEBUG_STRING_INFO _OUTPUT_DEBUG_STRING_INFO;
+alias OUTPUT_DEBUG_STRING_INFO TOUTPUTDEBUGSTRINGINFO;
+alias OUTPUT_DEBUG_STRING_INFO* POUTPUTDEBUGSTRINGINFO;
+
+struct RIP_INFO
+{
+    DWORD dwError;
+    DWORD dwType;
+}
+
+alias RIP_INFO _RIP_INFO;
+alias RIP_INFO TRIPINFO;
+alias RIP_INFO* PRIPINFO;
+
+struct DEBUG_EVENT
+{
+    DWORD dwDebugEventCode;
+    DWORD dwProcessId;
+    DWORD dwThreadId;
+
+    union
+    {
+        struct
+        {
+            EXCEPTION_DEBUG_INFO Exception;
+        }
+        struct
+        {
+            CREATE_THREAD_DEBUG_INFO CreateThread;
+        }
+        struct
+        {
+            CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
+        }
+        struct
+        {
+            EXIT_THREAD_DEBUG_INFO ExitThread;
+        }
+        struct
+        {
+            EXIT_PROCESS_DEBUG_INFO ExitProcess;
+        }
+        struct
+        {
+            LOAD_DLL_DEBUG_INFO LoadDll;
+        }
+        struct
+        {
+            UNLOAD_DLL_DEBUG_INFO UnloadDll;
+        }
+        struct
+        {
+            OUTPUT_DEBUG_STRING_INFO DebugString;
+        }
+        struct
+        {
+            RIP_INFO RipInfo;
+        }
+    }
+}
+
+alias DEBUG_EVENT* LPDEBUG_EVENT;
+alias DEBUG_EVENT _DEBUG_EVENT;
+alias DEBUG_EVENT TDEBUGEVENT;
+alias DEBUG_EVENT* PDEBUGEVENT;
+
+struct DEBUGHOOKINFO
+{
+    DWORD idThread;
+    DWORD idThreadInstaller;
+    LPARAM lParam;
+    WPARAM wParam;
+    int code;
+}
+
+alias DEBUGHOOKINFO TAGDEBUGHOOKINFO;
+alias DEBUGHOOKINFO TDEBUGHOOKINFO;
+alias DEBUGHOOKINFO* PDEBUGHOOKINFO;
+
+struct DELETEITEMSTRUCT
+{
+    UINT CtlType;
+    UINT CtlID;
+    UINT itemID;
+    HWND hwndItem;
+    UINT itemData;
+}
+
+alias DELETEITEMSTRUCT TAGDELETEITEMSTRUCT;
+alias DELETEITEMSTRUCT TDELETEITEMSTRUCT;
+alias DELETEITEMSTRUCT* PDELETEITEMSTRUCT;
+
+struct DEV_BROADCAST_HDR
+{
+    ULONG dbch_size;
+    ULONG dbch_devicetype;
+    ULONG dbch_reserved;
+}
+
+alias DEV_BROADCAST_HDR* PDEV_BROADCAST_HDR;
+alias DEV_BROADCAST_HDR _DEV_BROADCAST_HDR;
+alias DEV_BROADCAST_HDR TDEVBROADCASTHDR;
+alias DEV_BROADCAST_HDR* PDEVBROADCASTHDR;
+
+struct DEV_BROADCAST_OEM
+{
+    ULONG dbco_size;
+    ULONG dbco_devicetype;
+    ULONG dbco_reserved;
+    ULONG dbco_identifier;
+    ULONG dbco_suppfunc;
+}
+
+alias DEV_BROADCAST_OEM* PDEV_BROADCAST_OEM;
+alias DEV_BROADCAST_OEM _DEV_BROADCAST_OEM;
+alias DEV_BROADCAST_OEM TDEVBROADCASTOEM;
+alias DEV_BROADCAST_OEM* PDEVBROADCASTOEM;
+
+struct DEV_BROADCAST_PORT
+{
+    ULONG dbcp_size;
+    ULONG dbcp_devicetype;
+    ULONG dbcp_reserved;
+    char[1 + 0] dbcp_name;
+}
+
+alias DEV_BROADCAST_PORT* PDEV_BROADCAST_PORT;
+alias DEV_BROADCAST_PORT _DEV_BROADCAST_PORT;
+alias DEV_BROADCAST_PORT TDEVBROADCASTPORT;
+alias DEV_BROADCAST_PORT* PDEVBROADCASTPORT;
+
+struct _DEV_BROADCAST_USERDEFINED
+{
+    _DEV_BROADCAST_HDR dbud_dbh;
+    char[1 + 0] dbud_szName;
+    ubyte[1 + 0] dbud_rgbUserDefined;
+}
+
+alias _DEV_BROADCAST_USERDEFINED TDEVBROADCASTUSERDEFINED;
+alias _DEV_BROADCAST_USERDEFINED* PDEVBROADCASTUSERDEFINED;
+
+struct DEV_BROADCAST_VOLUME
+{
+    ULONG dbcv_size;
+    ULONG dbcv_devicetype;
+    ULONG dbcv_reserved;
+    ULONG dbcv_unitmask;
+    USHORT dbcv_flags;
+}
+
+alias DEV_BROADCAST_VOLUME* PDEV_BROADCAST_VOLUME;
+alias DEV_BROADCAST_VOLUME _DEV_BROADCAST_VOLUME;
+alias DEV_BROADCAST_VOLUME TDEVBROADCASTVOLUME;
+alias DEV_BROADCAST_VOLUME* PDEVBROADCASTVOLUME;
+
+struct DEVMODE
+{
+    BCHAR[1 + CCHDEVICENAME-1] dmDeviceName;
+    ushort dmSpecVersion;
+    ushort dmDriverVersion;
+    ushort dmSize;
+    ushort dmDriverExtra;
+    DWORD dmFields;
+    int dmOrientation;
+    int dmPaperSize;
+    int dmPaperLength;
+    int dmPaperWidth;
+    int dmScale;
+    int dmCopies;
+    int dmDefaultSource;
+    int dmPrintQuality;
+    int dmColor;
+    int dmDuplex;
+    int dmYResolution;
+    int dmTTOption;
+    int dmCollate;
+    BCHAR[1 + CCHFORMNAME-1] dmFormName;
+    ushort dmLogPixels;
+    DWORD dmBitsPerPel;
+    DWORD dmPelsWidth;
+    DWORD dmPelsHeight;
+    DWORD dmDisplayFlags;
+    DWORD dmDisplayFrequency;
+    DWORD dmICMMethod;
+    DWORD dmICMIntent;
+    DWORD dmMediaType;
+    DWORD dmDitherType;
+    DWORD dmICCManufacturer;
+    DWORD dmICCModel;
+}
+
+alias DEVMODE* LPDEVMODE;
+alias DEVMODE _DEVICEMODE;
+alias DEVMODE DEVICEMODE;
+alias DEVMODE TDEVICEMODE;
+alias DEVMODE TDEVICEMODEA;
+alias DEVMODE TDEVMODE;
+alias DEVMODE* PDEVMODE;
+
+struct DEVNAMES
+{
+    ushort wDriverOffset;
+    ushort wDeviceOffset;
+    ushort wOutputOffset;
+    ushort wDefault;
+}
+
+alias DEVNAMES* LPDEVNAMES;
+alias DEVNAMES TAGDEVNAMES;
+alias DEVNAMES TDEVNAMES;
+alias DEVNAMES* PDEVNAMES;
+
+struct DIBSECTION
+{
+    BITMAP dsBm;
+    BITMAPINFOHEADER dsBmih;
+    DWORD[1 + 2] dsBitfields;
+    HANDLE dshSection;
+    DWORD dsOffset;
+}
+
+alias DIBSECTION TAGDIBSECTION;
+alias DIBSECTION TDIBSECTION;
+alias DIBSECTION* PDIBSECTION;
+
+union LARGE_INTEGER
+{
+    struct
+    {
+        DWORD LowPart;
+        LONG HighPart;
+    };
+    struct u
+    {
+        DWORD LowPart;
+        LONG HighPart;
+    };
+    LONGLONG QuadPart;
+}
+
+alias LARGE_INTEGER* PLARGE_INTEGER;
+alias LARGE_INTEGER _LARGE_INTEGER;
+alias LARGE_INTEGER TLARGEINTEGER;
+alias LARGE_INTEGER* PLARGEINTEGER;
+
+struct DISK_GEOMETRY
+{
+    LARGE_INTEGER Cylinders;
+    MEDIA_TYPE MediaType;
+    DWORD TracksPerCylinder;
+    DWORD SectorsPerTrack;
+    DWORD BytesPerSector;
+}
+
+alias DISK_GEOMETRY _DISK_GEOMETRY;
+alias DISK_GEOMETRY TDISKGEOMETRY;
+alias DISK_GEOMETRY* PDISKGEOMETRY;
+
+struct DISK_PERFORMANCE
+{
+    LARGE_INTEGER BytesRead;
+    LARGE_INTEGER BytesWritten;
+    LARGE_INTEGER ReadTime;
+    LARGE_INTEGER WriteTime;
+    LARGE_INTEGER IdleTime;
+    DWORD ReadCount;
+    DWORD WriteCount;
+    DWORD QueueDepth;
+    DWORD SplitCount;
+    LARGE_INTEGER QueryTime;
+    DWORD StorageDeviceNumber;
+    WCHAR StorageManagerName[8];
+}
+
+alias DISK_PERFORMANCE _DISK_PERFORMANCE;
+alias DISK_PERFORMANCE TDISKPERFORMANCE;
+alias DISK_PERFORMANCE* PDISKPERFORMANCE;
+
+align(1) struct DLGITEMTEMPLATE
+{
+    DWORD style;
+    DWORD dwExtendedStyle;
+    short x;
+    short y;
+    short cx;
+    short cy;
+    WORD id;
+}
+
+alias DLGITEMTEMPLATE* LPDLGITEMTEMPLATE;
+alias DLGITEMTEMPLATE TDLGITEMTEMPLATE;
+alias DLGITEMTEMPLATE* PDLGITEMTEMPLATE;
+
+align(1) struct DLGTEMPLATE
+{
+    DWORD style;
+    DWORD dwExtendedStyle;
+    WORD cdit;
+    short x;
+    short y;
+    short cx;
+    short cy;
+}
+
+alias DLGTEMPLATE* LPDLGTEMPLATE;
+alias DLGTEMPLATE* LPCDLGTEMPLATE;
+alias DLGTEMPLATE TDLGTEMPLATE;
+alias DLGTEMPLATE* PDLGTEMPLATE;
+
+struct DOC_INFO_1
+{
+    LPTSTR pDocName;
+    LPTSTR pOutputFile;
+    LPTSTR pDatatype;
+}
+
+alias DOC_INFO_1 _DOC_INFO_1;
+alias DOC_INFO_1 TDOCINFO1;
+alias DOC_INFO_1* PDOCINFO1;
+
+struct DOC_INFO_2
+{
+    LPTSTR pDocName;
+    LPTSTR pOutputFile;
+    LPTSTR pDatatype;
+    DWORD dwMode;
+    DWORD JobId;
+}
+
+alias DOC_INFO_2 _DOC_INFO_2;
+alias DOC_INFO_2 TDOCINFO2;
+alias DOC_INFO_2* PDOCINFO2;
+
+struct DOCINFOA
+{
+    int     cbSize;
+    LPCSTR   lpszDocName;
+    LPCSTR   lpszOutput;
+    LPCSTR   lpszDatatype;
+    DWORD    fwType;
+}
+alias DOCINFOA TDOCINFOA;
+
+struct DOCINFOW
+{
+    int     cbSize;
+    LPCWSTR  lpszDocName;
+    LPCWSTR  lpszOutput;
+    LPCWSTR  lpszDatatype;
+    DWORD    fwType;
+}
+alias DOCINFOW TDOCINFOW;
+
+version(Win32SansUnicode)
+{
+    alias DOCINFOA DOCINFO;
+}
+else
+{
+    alias DOCINFOW DOCINFO;
+}
+alias DOCINFO TDOCINFO;
+alias DOCINFO* LPDOCINFO;
+alias DOCINFO* PDOCINFO;
+
+
+struct DRAGLISTINFO
+{
+    UINT uNotification;
+    HWND hWnd;
+    POINT ptCursor;
+}
+
+alias DRAGLISTINFO* LPDRAGLISTINFO;
+alias DRAGLISTINFO TDRAGLISTINFO;
+alias DRAGLISTINFO* PDRAGLISTINFO;
+
+struct DRAWITEMSTRUCT
+{
+    UINT CtlType;
+    UINT CtlID;
+    UINT itemID;
+    UINT itemAction;
+    UINT itemState;
+    HWND hwndItem;
+    HDC hDC;
+    RECT rcItem;
+    DWORD itemData;
+}
+
+alias DRAWITEMSTRUCT* LPDRAWITEMSTRUCT;
+alias DRAWITEMSTRUCT TAGDRAWITEMSTRUCT;
+alias DRAWITEMSTRUCT TDRAWITEMSTRUCT;
+alias DRAWITEMSTRUCT* PDRAWITEMSTRUCT;
+
+struct DRAWTEXTPARAMS
+{
+    UINT cbSize;
+    int iTabLength;
+    int iLeftMargin;
+    int iRightMargin;
+    UINT uiLengthDrawn;
+}
+
+alias DRAWTEXTPARAMS* LPDRAWTEXTPARAMS;
+alias DRAWTEXTPARAMS TDRAWTEXTPARAMS;
+alias DRAWTEXTPARAMS* PDRAWTEXTPARAMS;
+
+struct PARTITION_INFORMATION
+{
+    ubyte PartitionType;
+    ubyte BootIndicator;
+    ubyte RecognizedPartition;
+    ubyte RewritePartition;
+    LARGE_INTEGER StartingOffset;
+    LARGE_INTEGER PartitionLength;
+    LARGE_INTEGER HiddenSectors;
+}
+
+alias PARTITION_INFORMATION _PARTITION_INFORMATION;
+alias PARTITION_INFORMATION TPARTITIONINFORMATION;
+alias PARTITION_INFORMATION* PPARTITIONINFORMATION;
+
+struct DRIVE_LAYOUT_INFORMATION
+{
+    DWORD PartitionCount;
+    DWORD Signature;
+    PARTITION_INFORMATION[1 + 0] PartitionEntry;
+}
+
+alias DRIVE_LAYOUT_INFORMATION _DRIVE_LAYOUT_INFORMATION;
+alias DRIVE_LAYOUT_INFORMATION TDRIVELAYOUTINFORMATION;
+alias DRIVE_LAYOUT_INFORMATION* PDRIVELAYOUTINFORMATION;
+
+struct DRIVER_INFO_1
+{
+    LPTSTR pName;
+}
+
+alias DRIVER_INFO_1 _DRIVER_INFO_1;
+alias DRIVER_INFO_1 TDRIVERINFO1;
+alias DRIVER_INFO_1* PDRIVERINFO1;
+
+struct DRIVER_INFO_2
+{
+    DWORD cVersion;
+    LPTSTR pName;
+    LPTSTR pEnvironment;
+    LPTSTR pDriverPath;
+    LPTSTR pDataFile;
+    LPTSTR pConfigFile;
+}
+
+alias DRIVER_INFO_2 _DRIVER_INFO_2;
+alias DRIVER_INFO_2 TDRIVERINFO2;
+alias DRIVER_INFO_2* PDRIVERINFO2;
+
+struct DRIVER_INFO_3
+{
+    DWORD cVersion;
+    LPTSTR pName;
+    LPTSTR pEnvironment;
+    LPTSTR pDriverPath;
+    LPTSTR pDataFile;
+    LPTSTR pConfigFile;
+    LPTSTR pHelpFile;
+    LPTSTR pDependentFiles;
+    LPTSTR pMonitorName;
+    LPTSTR pDefaultDataType;
+}
+
+alias DRIVER_INFO_3 _DRIVER_INFO_3;
+alias DRIVER_INFO_3 TDRIVERINFO3;
+alias DRIVER_INFO_3* PDRIVERINFO3;
+
+struct EDITSTREAM
+{
+    DWORD dwCookie;
+    DWORD dwError;
+    EDITSTREAMCALLBACK pfnCallback;
+}
+
+alias EDITSTREAM _EDITSTREAM;
+alias EDITSTREAM TEDITSTREAM;
+alias EDITSTREAM* PEDITSTREAM;
+
+struct EMR
+{
+    DWORD iType;
+    DWORD nSize;
+}
+
+alias EMR TAGEMR;
+alias EMR TEMR;
+alias EMR* PEMR;
+
+struct EMRANGLEARC
+{
+    EMR emr;
+    POINTL ptlCenter;
+    DWORD nRadius;
+    FLOAT eStartAngle;
+    FLOAT eSweepAngle;
+}
+
+alias EMRANGLEARC TAGEMRANGLEARC;
+alias EMRANGLEARC TEMRANGLEARC;
+alias EMRANGLEARC* PEMRANGLEARC;
+
+struct EMRARC
+{
+    EMR emr;
+    RECTL rclBox;
+    POINTL ptlStart;
+    POINTL ptlEnd;
+}
+
+alias EMRARC TAGEMRARC;
+alias EMRARC TEMRARC;
+alias EMRARC* PEMRARC;
+alias EMRARC EMRARCTO;
+alias EMRARC TEMRARCTO;
+alias EMRARC* PEMRARCTO;
+alias EMRARC EMRCHORD;
+alias EMRARC TEMRCHORD;
+alias EMRARC* PEMRCHORD;
+alias EMRARC EMRPIE;
+alias EMRARC TEMRPIE;
+alias EMRARC* PEMRPIE;
+
+struct XFORM
+{
+    FLOAT eM11;
+    FLOAT eM12;
+    FLOAT eM21;
+    FLOAT eM22;
+    FLOAT eDx;
+    FLOAT eDy;
+}
+
+alias XFORM* LPXFORM;
+alias XFORM _XFORM;
+alias XFORM TXFORM;
+alias XFORM* PXFORM;
+
+struct EMRBITBLT
+{
+    EMR emr;
+    RECTL rclBounds;
+    LONG xDest;
+    LONG yDest;
+    LONG cxDest;
+    LONG cyDest;
+    DWORD dwRop;
+    LONG xSrc;
+    LONG ySrc;
+    XFORM xformSrc;
+    COLORREF crBkColorSrc;
+    DWORD iUsageSrc;
+    DWORD offBmiSrc;
+    DWORD cbBmiSrc;
+    DWORD offBitsSrc;
+    DWORD cbBitsSrc;
+}
+
+alias EMRBITBLT TAGEMRBITBLT;
+alias EMRBITBLT TEMRBITBLT;
+alias EMRBITBLT* PEMRBITBLT;
+
+struct LOGBRUSH
+{
+    UINT lbStyle;
+    COLORREF lbColor;
+    LONG lbHatch;
+}
+
+alias LOGBRUSH TAGLOGBRUSH;
+alias LOGBRUSH TLOGBRUSH;
+alias LOGBRUSH* PLOGBRUSH;
+
+struct EMRCREATEBRUSHINDIRECT
+{
+    EMR emr;
+    DWORD ihBrush;
+    LOGBRUSH lb;
+}
+
+alias EMRCREATEBRUSHINDIRECT TAGEMRCREATEBRUSHINDIRECT;
+alias EMRCREATEBRUSHINDIRECT TEMRCREATEBRUSHINDIRECT;
+alias EMRCREATEBRUSHINDIRECT* PEMRCREATEBRUSHINDIRECT;
+alias LONG LCSCSTYPE;
+alias LONG LCSGAMUTMATCH;
+
+struct LOGCOLORSPACEA
+{
+    DWORD lcsSignature;
+    DWORD lcsVersion;
+    DWORD lcsSize;
+    LCSCSTYPE lcsCSType;
+    LCSGAMUTMATCH lcsIntent;
+    CIEXYZTRIPLE lcsEndpoints;
+    DWORD lcsGammaRed;
+    DWORD lcsGammaGreen;
+    DWORD lcsGammaBlue;
+    CHAR[1 + MAX_PATH-1] lcsFilename;
+}
+struct LOGCOLORSPACEW
+{
+    DWORD lcsSignature;
+    DWORD lcsVersion;
+    DWORD lcsSize;
+    LCSCSTYPE lcsCSType;
+    LCSGAMUTMATCH lcsIntent;
+    CIEXYZTRIPLE lcsEndpoints;
+    DWORD lcsGammaRed;
+    DWORD lcsGammaGreen;
+    DWORD lcsGammaBlue;
+    WCHAR[1 + MAX_PATH-1] lcsFilename;
+}
+version(Win32SansUnicode) {
+    alias LOGCOLORSPACEA LOGCOLORSPACE;
+}
+else {
+    alias LOGCOLORSPACEW LOGCOLORSPACE;
+}
+
+alias LOGCOLORSPACE* LPLOGCOLORSPACE;
+alias LOGCOLORSPACE TAGLOGCOLORSPACE;
+alias LOGCOLORSPACE TLOGCOLORSPACE;
+alias LOGCOLORSPACE TLOGCOLORSPACEA;
+alias LOGCOLORSPACE* PLOGCOLORSPACE;
+
+struct EMRCREATECOLORSPACE {
+    EMR            emr;
+    DWORD          ihCS;
+    LOGCOLORSPACEA lcs;
+}
+
+alias EMRCREATECOLORSPACE TAGEMRCREATECOLORSPACE;
+alias EMRCREATECOLORSPACE TEMRCREATECOLORSPACE;
+alias EMRCREATECOLORSPACE* PEMRCREATECOLORSPACE;
+
+struct EMRCREATEDIBPATTERNBRUSHPT
+{
+    EMR emr;
+    DWORD ihBrush;
+    DWORD iUsage;
+    DWORD offBmi;
+    DWORD cbBmi;
+    DWORD offBits;
+    DWORD cbBits;
+}
+
+alias EMRCREATEDIBPATTERNBRUSHPT TAGEMRCREATEDIBPATTERNBRUSHPT;
+alias EMRCREATEDIBPATTERNBRUSHPT TEMRCREATEDIBPATTERNBRUSHPT;
+alias EMRCREATEDIBPATTERNBRUSHPT PEMRCREATEDIBPATTERNBRUSHPT;
+
+struct EMRCREATEMONOBRUSH
+{
+    EMR emr;
+    DWORD ihBrush;
+    DWORD iUsage;
+    DWORD offBmi;
+    DWORD cbBmi;
+    DWORD offBits;
+    DWORD cbBits;
+}
+
+alias EMRCREATEMONOBRUSH TAGEMRCREATEMONOBRUSH;
+alias EMRCREATEMONOBRUSH TEMRCREATEMONOBRUSH;
+alias EMRCREATEMONOBRUSH* PEMRCREATEMONOBRUSH;
+
+struct PALETTEENTRY
+{
+    ubyte peRed;
+    ubyte peGreen;
+    ubyte peBlue;
+    ubyte peFlags;
+}
+
+alias PALETTEENTRY* LPPALETTEENTRY;
+alias PALETTEENTRY TAGPALETTEENTRY;
+alias PALETTEENTRY TPALETTEENTRY;
+alias PALETTEENTRY* PPALETTEENTRY;
+
+struct LOGPALETTE
+{
+    ushort palVersion;
+    ushort palNumEntries;
+    PALETTEENTRY[1 + 0] palPalEntry;
+}
+
+alias LOGPALETTE* LPLOGPALETTE;
+alias LOGPALETTE TAGLOGPALETTE;
+alias LOGPALETTE TLOGPALETTE;
+alias LOGPALETTE* PLOGPALETTE;
+
+struct EMRCREATEPALETTE
+{
+    EMR emr;
+    DWORD ihPal;
+    LOGPALETTE lgpl;
+}
+
+alias EMRCREATEPALETTE TAGEMRCREATEPALETTE;
+alias EMRCREATEPALETTE TEMRCREATEPALETTE;
+alias EMRCREATEPALETTE* PEMRCREATEPALETTE;
+
+struct LOGPEN
+{
+    UINT lopnStyle;
+    POINT lopnWidth;
+    COLORREF lopnColor;
+}
+
+alias LOGPEN TAGLOGPEN;
+alias LOGPEN TLOGPEN;
+alias LOGPEN* PLOGPEN;
+
+struct EMRCREATEPEN
+{
+    EMR emr;
+    DWORD ihPen;
+    LOGPEN lopn;
+}
+
+alias EMRCREATEPEN TAGEMRCREATEPEN;
+alias EMRCREATEPEN TEMRCREATEPEN;
+alias EMRCREATEPEN* PEMRCREATEPEN;
+
+struct EMRELLIPSE
+{
+    EMR emr;
+    RECTL rclBox;
+}
+
+alias EMRELLIPSE TAGEMRELLIPSE;
+alias EMRELLIPSE TEMRELLIPSE;
+alias EMRELLIPSE* PEMRELLIPSE;
+alias EMRELLIPSE EMRRECTANGLE;
+alias EMRELLIPSE TEMRRECTANGLE;
+alias EMRELLIPSE* PEMRRECTANGLE;
+
+struct EMREOF
+{
+    EMR emr;
+    DWORD nPalEntries;
+    DWORD offPalEntries;
+    DWORD nSizeLast;
+}
+
+alias EMREOF TAGEMREOF;
+alias EMREOF TEMREOF;
+alias EMREOF* PEMREOF;
+
+struct EMREXCLUDECLIPRECT
+{
+    EMR emr;
+    RECTL rclClip;
+}
+
+alias EMREXCLUDECLIPRECT TAGEMREXCLUDECLIPRECT;
+alias EMREXCLUDECLIPRECT TEMREXCLUDECLIPRECT;
+alias EMREXCLUDECLIPRECT* PEMREXCLUDECLIPRECT;
+alias EMREXCLUDECLIPRECT EMRINTERSECTCLIPRECT;
+alias EMREXCLUDECLIPRECT TEMRINTERSECTCLIPRECT;
+alias EMREXCLUDECLIPRECT* PEMRINTERSECTCLIPRECT;
+
+struct PANOSE
+{
+    ubyte bFamilyType;
+    ubyte bSerifStyle;
+    ubyte bWeight;
+    ubyte bProportion;
+    ubyte bContrast;
+    ubyte bStrokeVariation;
+    ubyte bArmStyle;
+    ubyte bLetterform;
+    ubyte bMidline;
+    ubyte bXHeight;
+}
+
+alias PANOSE TAGPANOSE;
+alias PANOSE TPANOSE;
+alias PANOSE* PPANOSE;
+
+struct EXTLOGFONT
+{
+    LOGFONT elfLogFont;
+    TCHAR[1 + LF_FULLFACESIZE-1] elfFullName = 0;
+    TCHAR[1 + LF_FACESIZE-1] elfStyle = 0;
+    DWORD elfVersion;
+    DWORD elfStyleSize;
+    DWORD elfMatch;
+    DWORD elfReserved;
+    ubyte[1 + ELF_VENDOR_SIZE-1] elfVendorId;
+    DWORD elfCulture;
+    PANOSE elfPanose;
+}
+
+alias EXTLOGFONT TAGEXTLOGFONT;
+alias EXTLOGFONT TEXTLOGFONT;
+alias EXTLOGFONT* PEXTLOGFONT;
+
+struct EMREXTCREATEFONTINDIRECTW
+{
+    EMR emr;
+    DWORD ihFont;
+    EXTLOGFONT elfw;
+}
+
+alias EMREXTCREATEFONTINDIRECTW TAGEMREXTCREATEFONTINDIRECTW;
+alias EMREXTCREATEFONTINDIRECTW TEMREXTCREATEFONTINDIRECTW;
+alias EMREXTCREATEFONTINDIRECTW* PEMREXTCREATEFONTINDIRECTW;
+
+struct EXTLOGPEN
+{
+    UINT elpPenStyle;
+    UINT elpWidth;
+    UINT elpBrushStyle;
+    COLORREF elpColor;
+    LONG elpHatch;
+    DWORD elpNumEntries;
+    DWORD[1 + 0] elpStyleEntry;
+}
+
+alias EXTLOGPEN TAGEXTLOGPEN;
+alias EXTLOGPEN TEXTLOGPEN;
+alias EXTLOGPEN* PEXTLOGPEN;
+
+struct EMREXTCREATEPEN
+{
+    EMR emr;
+    DWORD ihPen;
+    DWORD offBmi;
+    DWORD cbBmi;
+    DWORD offBits;
+    DWORD cbBits;
+    EXTLOGPEN elp;
+}
+
+alias EMREXTCREATEPEN TAGEMREXTCREATEPEN;
+alias EMREXTCREATEPEN TEMREXTCREATEPEN;
+alias EMREXTCREATEPEN* PEMREXTCREATEPEN;
+
+struct EMREXTFLOODFILL
+{
+    EMR emr;
+    POINTL ptlStart;
+    COLORREF crColor;
+    DWORD iMode;
+}
+
+alias EMREXTFLOODFILL TAGEMREXTFLOODFILL;
+alias EMREXTFLOODFILL TEMREXTFLOODFILL;
+alias EMREXTFLOODFILL* PEMREXTFLOODFILL;
+
+struct EMREXTSELECTCLIPRGN
+{
+    EMR emr;
+    DWORD cbRgnData;
+    DWORD iMode;
+    ubyte[1 + 0] RgnData;
+}
+
+alias EMREXTSELECTCLIPRGN TAGEMREXTSELECTCLIPRGN;
+alias EMREXTSELECTCLIPRGN TEMREXTSELECTCLIPRGN;
+alias EMREXTSELECTCLIPRGN* PEMREXTSELECTCLIPRGN;
+
+struct EMRTEXT
+{
+    POINTL ptlReference;
+    DWORD nChars;
+    DWORD offString;
+    DWORD fOptions;
+    RECTL rcl;
+    DWORD offDx;
+}
+
+alias EMRTEXT TAGEMRTEXT;
+alias EMRTEXT TEMRTEXT;
+alias EMRTEXT* PEMRTEXT;
+
+struct EMREXTTEXTOUTA
+{
+    EMR emr;
+    RECTL rclBounds;
+    DWORD iGraphicsMode;
+    FLOAT exScale;
+    FLOAT eyScale;
+    EMRTEXT emrtext;
+}
+
+alias EMREXTTEXTOUTA TAGEMREXTTEXTOUTA;
+alias EMREXTTEXTOUTA TEMREXTTEXTOUTA;
+alias EMREXTTEXTOUTA* PEMREXTTEXTOUTA;
+alias EMREXTTEXTOUTA EMREXTTEXTOUTW;
+alias EMREXTTEXTOUTA TEMREXTTEXTOUTW;
+alias EMREXTTEXTOUTA* PEMREXTTEXTOUTW;
+
+struct EMRFILLPATH
+{
+    EMR emr;
+    RECTL rclBounds;
+}
+
+alias EMRFILLPATH TAGEMRFILLPATH;
+alias EMRFILLPATH TEMRFILLPATH;
+alias EMRFILLPATH* PEMRFILLPATH;
+alias EMRFILLPATH EMRSTROKEANDFILLPATH;
+alias EMRFILLPATH TEMRSTROKEANDFILLPATH;
+alias EMRFILLPATH* PEMRSTROKEANDFILLPATH;
+alias EMRFILLPATH EMRSTROKEPATH;
+alias EMRFILLPATH TEMRSTROKEPATH;
+alias EMRFILLPATH* PEMRSTROKEPATH;
+
+struct EMRFILLRGN
+{
+    EMR emr;
+    RECTL rclBounds;
+    DWORD cbRgnData;
+    DWORD ihBrush;
+    ubyte[1 + 0] RgnData;
+}
+
+alias EMRFILLRGN TAGEMRFILLRGN;
+alias EMRFILLRGN TEMRFILLRGN;
+alias EMRFILLRGN* PEMRFILLRGN;
+
+struct EMRFORMAT
+{
+    DWORD dSignature;
+    DWORD nVersion;
+    DWORD cbData;
+    DWORD offData;
+}
+
+alias EMRFORMAT TAGEMRFORMAT;
+alias EMRFORMAT TEMRFORMAT;
+alias EMRFORMAT* PEMRFORMAT;
+
+struct SIZE
+{
+    LONG cx;
+    LONG cy;
+}
+
+alias SIZE* LPSIZE;
+alias SIZE TAGSIZE;
+alias SIZE TSIZE;
+alias SIZE* PSIZE;
+alias SIZE SIZEL;
+alias SIZE TSIZEL;
+alias SIZE* PSIZEL;
+alias SIZE* LPSIZEL;
+
+struct EMRFRAMERGN
+{
+    EMR emr;
+    RECTL rclBounds;
+    DWORD cbRgnData;
+    DWORD ihBrush;
+    SIZEL szlStroke;
+    ubyte[1 + 0] RgnData;
+}
+
+alias EMRFRAMERGN TAGEMRFRAMERGN;
+alias EMRFRAMERGN TEMRFRAMERGN;
+alias EMRFRAMERGN* PEMRFRAMERGN;
+
+struct EMRGDICOMMENT
+{
+    EMR emr;
+    DWORD cbData;
+    ubyte[1 + 0] Data;
+}
+
+alias EMRGDICOMMENT TAGEMRGDICOMMENT;
+alias EMRGDICOMMENT TEMRGDICOMMENT;
+alias EMRGDICOMMENT* PEMRGDICOMMENT;
+
+struct EMRINVERTRGN
+{
+    EMR emr;
+    RECTL rclBounds;
+    DWORD cbRgnData;
+    ubyte[1 + 0] RgnData;
+}
+
+alias EMRINVERTRGN TAGEMRINVERTRGN;
+alias EMRINVERTRGN TEMRINVERTRGN;
+alias EMRINVERTRGN* PEMRINVERTRGN;
+alias EMRINVERTRGN EMRPAINTRGN;
+alias EMRINVERTRGN TEMRPAINTRGN;
+alias EMRINVERTRGN* PEMRPAINTRGN;
+
+struct EMRLINETO
+{
+    EMR emr;
+    POINTL ptl;
+}
+
+alias EMRLINETO TAGEMRLINETO;
+alias EMRLINETO TEMRLINETO;
+alias EMRLINETO* PEMRLINETO;
+alias EMRLINETO EMRMOVETOEX;
+alias EMRLINETO TEMRMOVETOEX;
+alias EMRLINETO* PEMRMOVETOEX;
+
+struct EMRMASKBLT
+{
+    EMR emr;
+    RECTL rclBounds;
+    LONG xDest;
+    LONG yDest;
+    LONG cxDest;
+    LONG cyDest;
+    DWORD dwRop;
+    LONG xSrc;
+    LONG ySrc;
+    XFORM xformSrc;
+    COLORREF crBkColorSrc;
+    DWORD iUsageSrc;
+    DWORD offBmiSrc;
+    DWORD cbBmiSrc;
+    DWORD offBitsSrc;
+    DWORD cbBitsSrc;
+    LONG xMask;
+    LONG yMask;
+    DWORD iUsageMask;
+    DWORD offBmiMask;
+    DWORD cbBmiMask;
+    DWORD offBitsMask;
+    DWORD cbBitsMask;
+}
+
+alias EMRMASKBLT TAGEMRMASKBLT;
+alias EMRMASKBLT TEMRMASKBLT;
+alias EMRMASKBLT* PEMRMASKBLT;
+
+struct EMRMODIFYWORLDTRANSFORM
+{
+    EMR emr;
+    XFORM xform;
+    DWORD iMode;
+}
+
+alias EMRMODIFYWORLDTRANSFORM TAGEMRMODIFYWORLDTRANSFORM;
+alias EMRMODIFYWORLDTRANSFORM TEMRMODIFYWORLDTRANSFORM;
+alias EMRMODIFYWORLDTRANSFORM PEMRMODIFYWORLDTRANSFORM;
+
+struct EMROFFSETCLIPRGN
+{
+    EMR emr;
+    POINTL ptlOffset;
+}
+
+alias EMROFFSETCLIPRGN TAGEMROFFSETCLIPRGN;
+alias EMROFFSETCLIPRGN TEMROFFSETCLIPRGN;
+alias EMROFFSETCLIPRGN* PEMROFFSETCLIPRGN;
+
+struct EMRPLGBLT
+{
+    EMR emr;
+    RECTL rclBounds;
+    POINTL[1 + 2] aptlDest;
+    LONG xSrc;
+    LONG ySrc;
+    LONG cxSrc;
+    LONG cySrc;
+    XFORM xformSrc;
+    COLORREF crBkColorSrc;
+    DWORD iUsageSrc;
+    DWORD offBmiSrc;
+    DWORD cbBmiSrc;
+    DWORD offBitsSrc;
+    DWORD cbBitsSrc;
+    LONG xMask;
+    LONG yMask;
+    DWORD iUsageMask;
+    DWORD offBmiMask;
+    DWORD cbBmiMask;
+    DWORD offBitsMask;
+    DWORD cbBitsMask;
+}
+
+alias EMRPLGBLT TAGEMRPLGBLT;
+alias EMRPLGBLT TEMRPLGBLT;
+alias EMRPLGBLT* PEMRPLGBLT;
+
+struct EMRPOLYDRAW
+{
+    EMR emr;
+    RECTL rclBounds;
+    DWORD cptl;
+    POINTL[1 + 0] aptl;
+    ubyte[1 + 0] abTypes;
+}
+
+alias EMRPOLYDRAW TAGEMRPOLYDRAW;
+alias EMRPOLYDRAW TEMRPOLYDRAW;
+alias EMRPOLYDRAW* PEMRPOLYDRAW;
+
+struct EMRPOLYDRAW16
+{
+    EMR emr;
+    RECTL rclBounds;
+    DWORD cpts;
+    POINTS[1 + 0] apts;
+    ubyte[1 + 0] abTypes;
+}
+
+alias EMRPOLYDRAW16 TAGEMRPOLYDRAW16;
+alias EMRPOLYDRAW16 TEMRPOLYDRAW16;
+alias EMRPOLYDRAW16* PEMRPOLYDRAW16;
+
+struct EMRPOLYLINE
+{
+    EMR emr;
+    RECTL rclBounds;
+    DWORD cptl;
+    POINTL[1 + 0] aptl;
+}
+
+alias EMRPOLYLINE TAGEMRPOLYLINE;
+alias EMRPOLYLINE TEMRPOLYLINE;
+alias EMRPOLYLINE* PEMRPOLYLINE;
+alias EMRPOLYLINE EMRPOLYBEZIER;
+alias EMRPOLYLINE TEMRPOLYBEZIER;
+alias EMRPOLYLINE* PEMRPOLYBEZIER;
+alias EMRPOLYLINE EMRPOLYGON;
+alias EMRPOLYLINE TEMRPOLYGON;
+alias EMRPOLYLINE* PEMRPOLYGON;
+alias EMRPOLYLINE EMRPOLYBEZIERTO;
+alias EMRPOLYLINE TEMRPOLYBEZIERTO;
+alias EMRPOLYLINE* PEMRPOLYBEZIERTO;
+alias EMRPOLYLINE EMRPOLYLINETO;
+alias EMRPOLYLINE TEMRPOLYLINETO;
+alias EMRPOLYLINE* PEMRPOLYLINETO;
+
+struct EMRPOLYLINE16
+{
+    EMR emr;
+    RECTL rclBounds;
+    DWORD cpts;
+    POINTS[1 + 0] apts;
+}
+
+alias EMRPOLYLINE16 TAGEMRPOLYLINE16;
+alias EMRPOLYLINE16 TEMRPOLYLINE16;
+alias EMRPOLYLINE16* PEMRPOLYLINE16;
+alias EMRPOLYLINE16 EMRPOLYBEZIER16;
+alias EMRPOLYLINE16 TEMRPOLYBEZIER16;
+alias EMRPOLYLINE16* PEMRPOLYBEZIER16;
+alias EMRPOLYLINE16 EMRPOLYGON16;
+alias EMRPOLYLINE16 TEMRPOLYGON16;
+alias EMRPOLYLINE16* PEMRPOLYGON16;
+alias EMRPOLYLINE16 EMRPOLYBEZIERTO16;
+alias EMRPOLYLINE16 TEMRPOLYBEZIERTO16;
+alias EMRPOLYLINE16* PEMRPOLYBEZIERTO16;
+alias EMRPOLYLINE16 EMRPOLYLINETO16;
+alias EMRPOLYLINE16 TEMRPOLYLINETO16;
+alias EMRPOLYLINE16* PEMRPOLYLINETO16;
+
+struct EMRPOLYPOLYLINE
+{
+    EMR emr;
+    RECTL rclBounds;
+    DWORD nPolys;
+    DWORD cptl;
+    DWORD[1 + 0] aPolyCounts;
+    POINTL[1 + 0] aptl;
+}
+
+alias EMRPOLYPOLYLINE TAGEMRPOLYPOLYLINE;
+alias EMRPOLYPOLYLINE TEMRPOLYPOLYLINE;
+alias EMRPOLYPOLYLINE* PEMRPOLYPOLYLINE;
+alias EMRPOLYPOLYLINE EMRPOLYPOLYGON;
+alias EMRPOLYPOLYLINE TEMRPOLYPOLYGON;
+alias EMRPOLYPOLYLINE* PEMRPOLYPOLYGON;
+
+struct EMRPOLYPOLYLINE16
+{
+    EMR emr;
+    RECTL rclBounds;
+    DWORD nPolys;
+    DWORD cpts;
+    DWORD[1 + 0] aPolyCounts;
+    POINTS[1 + 0] apts;
+}
+
+alias EMRPOLYPOLYLINE16 TAGEMRPOLYPOLYLINE16;
+alias EMRPOLYPOLYLINE16 TEMRPOLYPOLYLINE16;
+alias EMRPOLYPOLYLINE16* PEMRPOLYPOLYLINE16;
+alias EMRPOLYPOLYLINE16 EMRPOLYPOLYGON16;
+alias EMRPOLYPOLYLINE16 TEMRPOLYPOLYGON16;
+alias EMRPOLYPOLYLINE16* PEMRPOLYPOLYGON16;
+
+struct EMRPOLYTEXTOUTA
+{
+    EMR emr;
+    RECTL rclBounds;
+    DWORD iGraphicsMode;
+    FLOAT exScale;
+    FLOAT eyScale;
+    LONG cStrings;
+    EMRTEXT[1 + 0] aemrtext;
+}
+
+alias EMRPOLYTEXTOUTA TAGEMRPOLYTEXTOUTA;
+alias EMRPOLYTEXTOUTA TEMRPOLYTEXTOUTA;
+alias EMRPOLYTEXTOUTA* PEMRPOLYTEXTOUTA;
+alias EMRPOLYTEXTOUTA EMRPOLYTEXTOUTW;
+alias EMRPOLYTEXTOUTA TEMRPOLYTEXTOUTW;
+alias EMRPOLYTEXTOUTA* PEMRPOLYTEXTOUTW;
+
+struct EMRRESIZEPALETTE
+{
+    EMR emr;
+    DWORD ihPal;
+    DWORD cEntries;
+}
+
+alias EMRRESIZEPALETTE TAGEMRRESIZEPALETTE;
+alias EMRRESIZEPALETTE TEMRRESIZEPALETTE;
+alias EMRRESIZEPALETTE* PEMRRESIZEPALETTE;
+
+struct EMRRESTOREDC
+{
+    EMR emr;
+    LONG iRelative;
+}
+
+alias EMRRESTOREDC TAGEMRRESTOREDC;
+alias EMRRESTOREDC TEMRRESTOREDC;
+alias EMRRESTOREDC* PEMRRESTOREDC;
+
+struct EMRROUNDRECT
+{
+    EMR emr;
+    RECTL rclBox;
+    SIZEL szlCorner;
+}
+
+alias EMRROUNDRECT TAGEMRROUNDRECT;
+alias EMRROUNDRECT TEMRROUNDRECT;
+alias EMRROUNDRECT* PEMRROUNDRECT;
+
+struct EMRSCALEVIEWPORTEXTEX
+{
+    EMR emr;
+    LONG xNum;
+    LONG xDenom;
+    LONG yNum;
+    LONG yDenom;
+}
+
+alias EMRSCALEVIEWPORTEXTEX TAGEMRSCALEVIEWPORTEXTEX;
+alias EMRSCALEVIEWPORTEXTEX TEMRSCALEVIEWPORTEXTEX;
+alias EMRSCALEVIEWPORTEXTEX* PEMRSCALEVIEWPORTEXTEX;
+alias EMRSCALEVIEWPORTEXTEX EMRSCALEWINDOWEXTEX;
+alias EMRSCALEVIEWPORTEXTEX TEMRSCALEWINDOWEXTEX;
+alias EMRSCALEVIEWPORTEXTEX* PEMRSCALEWINDOWEXTEX;
+
+struct EMRSELECTCOLORSPACE
+{
+    EMR emr;
+    DWORD ihCS;
+}
+
+alias EMRSELECTCOLORSPACE TAGEMRSELECTCOLORSPACE;
+alias EMRSELECTCOLORSPACE TEMRSELECTCOLORSPACE;
+alias EMRSELECTCOLORSPACE* PEMRSELECTCOLORSPACE;
+alias EMRSELECTCOLORSPACE EMRDELETECOLORSPACE;
+alias EMRSELECTCOLORSPACE TEMRDELETECOLORSPACE;
+alias EMRSELECTCOLORSPACE* PEMRDELETECOLORSPACE;
+
+struct EMRSELECTOBJECT
+{
+    EMR emr;
+    DWORD ihObject;
+}
+
+alias EMRSELECTOBJECT TAGEMRSELECTOBJECT;
+alias EMRSELECTOBJECT TEMRSELECTOBJECT;
+alias EMRSELECTOBJECT* PEMRSELECTOBJECT;
+alias EMRSELECTOBJECT EMRDELETEOBJECT;
+alias EMRSELECTOBJECT TEMRDELETEOBJECT;
+alias EMRSELECTOBJECT* PEMRDELETEOBJECT;
+
+struct EMRSELECTPALETTE
+{
+    EMR emr;
+    DWORD ihPal;
+}
+
+alias EMRSELECTPALETTE TAGEMRSELECTPALETTE;
+alias EMRSELECTPALETTE TEMRSELECTPALETTE;
+alias EMRSELECTPALETTE* PEMRSELECTPALETTE;
+
+struct EMRSETARCDIRECTION
+{
+    EMR emr;
+    DWORD iArcDirection;
+}
+
+alias EMRSETARCDIRECTION TAGEMRSETARCDIRECTION;
+alias EMRSETARCDIRECTION TEMRSETARCDIRECTION;
+alias EMRSETARCDIRECTION* PEMRSETARCDIRECTION;
+
+struct EMRSETBKCOLOR
+{
+    EMR emr;
+    COLORREF crColor;
+}
+
+alias EMRSETBKCOLOR TAGEMRSETTEXTCOLOR;
+alias EMRSETBKCOLOR TEMRSETBKCOLOR;
+alias EMRSETBKCOLOR* PEMRSETBKCOLOR;
+alias EMRSETBKCOLOR EMRSETTEXTCOLOR;
+alias EMRSETBKCOLOR TEMRSETTEXTCOLOR;
+alias EMRSETBKCOLOR* PEMRSETTEXTCOLOR;
+
+struct EMRSETCOLORADJUSTMENT
+{
+    EMR emr;
+    COLORADJUSTMENT ColorAdjustment;
+}
+
+alias EMRSETCOLORADJUSTMENT TAGEMRSETCOLORADJUSTMENT;
+alias EMRSETCOLORADJUSTMENT TEMRSETCOLORADJUSTMENT;
+alias EMRSETCOLORADJUSTMENT* PEMRSETCOLORADJUSTMENT;
+
+struct EMRSETDIBITSTODEVICE
+{
+    EMR emr;
+    RECTL rclBounds;
+    LONG xDest;
+    LONG yDest;
+    LONG xSrc;
+    LONG ySrc;
+    LONG cxSrc;
+    LONG cySrc;
+    DWORD offBmiSrc;
+    DWORD cbBmiSrc;
+    DWORD offBitsSrc;
+    DWORD cbBitsSrc;
+    DWORD iUsageSrc;
+    DWORD iStartScan;
+    DWORD cScans;
+}
+
+alias EMRSETDIBITSTODEVICE TAGEMRSETDIBITSTODEVICE;
+alias EMRSETDIBITSTODEVICE TEMRSETDIBITSTODEVICE;
+alias EMRSETDIBITSTODEVICE* PEMRSETDIBITSTODEVICE;
+
+struct EMRSETMAPPERFLAGS
+{
+    EMR emr;
+    DWORD dwFlags;
+}
+
+alias EMRSETMAPPERFLAGS TAGEMRSETMAPPERFLAGS;
+alias EMRSETMAPPERFLAGS TEMRSETMAPPERFLAGS;
+alias EMRSETMAPPERFLAGS* PEMRSETMAPPERFLAGS;
+
+struct EMRSETMITERLIMIT
+{
+    EMR emr;
+    FLOAT eMiterLimit;
+}
+
+alias EMRSETMITERLIMIT TAGEMRSETMITERLIMIT;
+alias EMRSETMITERLIMIT TEMRSETMITERLIMIT;
+alias EMRSETMITERLIMIT* PEMRSETMITERLIMIT;
+
+struct EMRSETPALETTEENTRIES
+{
+    EMR emr;
+    DWORD ihPal;
+    DWORD iStart;
+    DWORD cEntries;
+    PALETTEENTRY[1 + 0] aPalEntries;
+}
+
+alias EMRSETPALETTEENTRIES TAGEMRSETPALETTEENTRIES;
+alias EMRSETPALETTEENTRIES TEMRSETPALETTEENTRIES;
+alias EMRSETPALETTEENTRIES* PEMRSETPALETTEENTRIES;
+
+struct EMRSETPIXELV
+{
+    EMR emr;
+    POINTL ptlPixel;
+    COLORREF crColor;
+}
+
+alias EMRSETPIXELV TAGEMRSETPIXELV;
+alias EMRSETPIXELV TEMRSETPIXELV;
+alias EMRSETPIXELV* PEMRSETPIXELV;
+
+struct EMRSETVIEWPORTEXTEX
+{
+    EMR emr;
+    SIZEL szlExtent;
+}
+
+alias EMRSETVIEWPORTEXTEX TAGEMRSETVIEWPORTEXTEX;
+alias EMRSETVIEWPORTEXTEX TEMRSETVIEWPORTEXTEX;
+alias EMRSETVIEWPORTEXTEX* PEMRSETVIEWPORTEXTEX;
+alias EMRSETVIEWPORTEXTEX EMRSETWINDOWEXTEX;
+alias EMRSETVIEWPORTEXTEX TEMRSETWINDOWEXTEX;
+alias EMRSETVIEWPORTEXTEX* PEMRSETWINDOWEXTEX;
+
+struct EMRSETVIEWPORTORGEX
+{
+    EMR emr;
+    POINTL ptlOrigin;
+}
+
+alias EMRSETVIEWPORTORGEX TAGEMRSETVIEWPORTORGEX;
+alias EMRSETVIEWPORTORGEX TEMRSETVIEWPORTORGEX;
+alias EMRSETVIEWPORTORGEX* PEMRSETVIEWPORTORGEX;
+alias EMRSETVIEWPORTORGEX EMRSETWINDOWORGEX;
+alias EMRSETVIEWPORTORGEX TEMRSETWINDOWORGEX;
+alias EMRSETVIEWPORTORGEX* PEMRSETWINDOWORGEX;
+alias EMRSETVIEWPORTORGEX EMRSETBRUSHORGEX;
+alias EMRSETVIEWPORTORGEX TEMRSETBRUSHORGEX;
+alias EMRSETVIEWPORTORGEX* PEMRSETBRUSHORGEX;
+
+struct EMRSETWORLDTRANSFORM
+{
+    EMR emr;
+    XFORM xform;
+}
+
+alias EMRSETWORLDTRANSFORM TAGEMRSETWORLDTRANSFORM;
+alias EMRSETWORLDTRANSFORM TEMRSETWORLDTRANSFORM;
+alias EMRSETWORLDTRANSFORM* PEMRSETWORLDTRANSFORM;
+
+struct EMRSTRETCHBLT
+{
+    EMR emr;
+    RECTL rclBounds;
+    LONG xDest;
+    LONG yDest;
+    LONG cxDest;
+    LONG cyDest;
+    DWORD dwRop;
+    LONG xSrc;
+    LONG ySrc;
+    XFORM xformSrc;
+    COLORREF crBkColorSrc;
+    DWORD iUsageSrc;
+    DWORD offBmiSrc;
+    DWORD cbBmiSrc;
+    DWORD offBitsSrc;
+    DWORD cbBitsSrc;
+    LONG cxSrc;
+    LONG cySrc;
+}
+
+alias EMRSTRETCHBLT TAGEMRSTRETCHBLT;
+alias EMRSTRETCHBLT TEMRSTRETCHBLT;
+alias EMRSTRETCHBLT* PEMRSTRETCHBLT;
+
+struct EMRSTRETCHDIBITS
+{
+    EMR emr;
+    RECTL rclBounds;
+    LONG xDest;
+    LONG yDest;
+    LONG xSrc;
+    LONG ySrc;
+    LONG cxSrc;
+    LONG cySrc;
+    DWORD offBmiSrc;
+    DWORD cbBmiSrc;
+    DWORD offBitsSrc;
+    DWORD cbBitsSrc;
+    DWORD iUsageSrc;
+    DWORD dwRop;
+    LONG cxDest;
+    LONG cyDest;
+}
+
+alias EMRSTRETCHDIBITS TAGEMRSTRETCHDIBITS;
+alias EMRSTRETCHDIBITS TEMRSTRETCHDIBITS;
+alias EMRSTRETCHDIBITS* PEMRSTRETCHDIBITS;
+
+struct EMRABORTPATH
+{
+    EMR emr;
+}
+
+alias EMRABORTPATH TEMRABORTPATH;
+alias EMRABORTPATH* PEMRABORTPATH;
+alias EMRABORTPATH TAGABORTPATH;
+alias EMRABORTPATH TABORTPATH;
+alias EMRABORTPATH EMRBEGINPATH;
+alias EMRABORTPATH TEMRBEGINPATH;
+alias EMRABORTPATH* PEMRBEGINPATH;
+alias EMRABORTPATH EMRENDPATH;
+alias EMRABORTPATH TEMRENDPATH;
+alias EMRABORTPATH* PEMRENDPATH;
+alias EMRABORTPATH EMRCLOSEFIGURE;
+alias EMRABORTPATH TEMRCLOSEFIGURE;
+alias EMRABORTPATH* PEMRCLOSEFIGURE;
+alias EMRABORTPATH EMRFLATTENPATH;
+alias EMRABORTPATH TEMRFLATTENPATH;
+alias EMRABORTPATH* PEMRFLATTENPATH;
+alias EMRABORTPATH EMRWIDENPATH;
+alias EMRABORTPATH TEMRWIDENPATH;
+alias EMRABORTPATH* PEMRWIDENPATH;
+alias EMRABORTPATH EMRSETMETARGN;
+alias EMRABORTPATH TEMRSETMETARGN;
+alias EMRABORTPATH* PEMRSETMETARGN;
+alias EMRABORTPATH EMRSAVEDC;
+alias EMRABORTPATH TEMRSAVEDC;
+alias EMRABORTPATH* PEMRSAVEDC;
+alias EMRABORTPATH EMRREALIZEPALETTE;
+alias EMRABORTPATH TEMRREALIZEPALETTE;
+alias EMRABORTPATH* PEMRREALIZEPALETTE;
+
+struct EMRSELECTCLIPPATH
+{
+    EMR emr;
+    DWORD iMode;
+}
+
+alias EMRSELECTCLIPPATH TAGEMRSELECTCLIPPATH;
+alias EMRSELECTCLIPPATH TEMRSELECTCLIPPATH;
+alias EMRSELECTCLIPPATH* PEMRSELECTCLIPPATH;
+alias EMRSELECTCLIPPATH EMRSETBKMODE;
+alias EMRSELECTCLIPPATH TEMRSETBKMODE;
+alias EMRSELECTCLIPPATH* PEMRSETBKMODE;
+alias EMRSELECTCLIPPATH EMRSETMAPMODE;
+alias EMRSELECTCLIPPATH TEMRSETMAPMODE;
+alias EMRSELECTCLIPPATH* PEMRSETMAPMODE;
+alias EMRSELECTCLIPPATH EMRSETPOLYFILLMODE;
+alias EMRSELECTCLIPPATH TEMRSETPOLYFILLMODE;
+alias EMRSELECTCLIPPATH* PEMRSETPOLYFILLMODE;
+alias EMRSELECTCLIPPATH EMRSETROP2;
+alias EMRSELECTCLIPPATH TEMRSETROP2;
+alias EMRSELECTCLIPPATH* PEMRSETROP2;
+alias EMRSELECTCLIPPATH EMRSETSTRETCHBLTMODE;
+alias EMRSELECTCLIPPATH TEMRSETSTRETCHBLTMODE;
+alias EMRSELECTCLIPPATH* PEMRSETSTRETCHBLTMODE;
+alias EMRSELECTCLIPPATH EMRSETTEXTALIGN;
+alias EMRSELECTCLIPPATH TEMRSETTEXTALIGN;
+alias EMRSELECTCLIPPATH* PEMRSETTEXTALIGN;
+alias EMRSELECTCLIPPATH EMRENABLEICM;
+alias EMRSELECTCLIPPATH TEMRENABLEICM;
+alias EMRSELECTCLIPPATH* PEMRENABLEICM;
+
+struct NMHDR
+{
+    HWND hwndFrom;
+    UINT idFrom;
+    UINT code;
+}
+
+alias NMHDR TAGNMHDR;
+alias NMHDR TNMHDR;
+alias NMHDR* PNMHDR;
+
+struct ENCORRECTTEXT
+{
+    NMHDR nmhdr;
+    CHARRANGE chrg;
+    ushort seltyp;
+}
+
+alias ENCORRECTTEXT _ENCORRECTTEXT;
+alias ENCORRECTTEXT TENCORRECTTEXT;
+alias ENCORRECTTEXT* PENCORRECTTEXT;
+
+struct ENDROPFILES
+{
+    NMHDR nmhdr;
+    HANDLE hDrop;
+    LONG cp;
+    WINBOOL fProtected;
+}
+
+alias ENDROPFILES _ENDROPFILES;
+alias ENDROPFILES TENDROPFILES;
+alias ENDROPFILES* PENDROPFILES;
+
+struct ENSAVECLIPBOARD
+{
+    NMHDR nmhdr;
+    LONG cObjectCount;
+    LONG cch;
+}
+
+alias ENSAVECLIPBOARD TENSAVECLIPBOARD;
+alias ENSAVECLIPBOARD* PENSAVECLIPBOARD;
+
+struct ENOLEOPFAILED
+{
+    NMHDR nmhdr;
+    LONG iob;
+    LONG lOper;
+    HRESULT hr;
+}
+
+alias ENOLEOPFAILED TENOLEOPFAILED;
+alias ENOLEOPFAILED* PENOLEOPFAILED;
+
+align(2) struct ENHMETAHEADER
+{
+    DWORD iType;
+    DWORD nSize;
+    RECTL rclBounds;
+    RECTL rclFrame;
+    DWORD dSignature;
+    DWORD nVersion;
+    DWORD nBytes;
+    DWORD nRecords;
+    ushort nHandles;
+    ushort sReserved;
+    DWORD nDescription;
+    DWORD offDescription;
+    DWORD nPalEntries;
+    SIZEL szlDevice;
+    SIZEL szlMillimeters;
+//#if (WINVER >= 0x0400)
+    DWORD cbPixelFormat;
+    DWORD offPixelFormat;
+    DWORD bOpenGL;
+//#endif /* WINVER >= 0x0400 */
+//#if (WINVER >= 0x0500)
+    SIZEL szlMicrometers;
+//#endif /* WINVER >= 0x0500 */
+}
+
+alias ENHMETAHEADER* LPENHMETAHEADER;
+alias ENHMETAHEADER TAGENHMETAHEADER;
+alias ENHMETAHEADER TENHMETAHEADER;
+alias ENHMETAHEADER* PENHMETAHEADER;
+
+struct ENHMETARECORD
+{
+    DWORD iType;
+    DWORD nSize;
+    DWORD[1 + 0] dParm;
+}
+
+alias ENHMETARECORD* LPENHMETARECORD;
+alias ENHMETARECORD TAGENHMETARECORD;
+alias ENHMETARECORD TENHMETARECORD;
+alias ENHMETARECORD* PENHMETARECORD;
+
+struct ENPROTECTED
+{
+    NMHDR nmhdr;
+    UINT msg;
+    WPARAM wParam;
+    LPARAM lParam;
+    CHARRANGE chrg;
+}
+
+alias ENPROTECTED _ENPROTECTED;
+alias ENPROTECTED TENPROTECTED;
+alias ENPROTECTED* PENPROTECTED;
+
+struct SERVICE_STATUS
+{
+    DWORD dwServiceType;
+    DWORD dwCurrentState;
+    DWORD dwControlsAccepted;
+    DWORD dwWin32ExitCode;
+    DWORD dwServiceSpecificExitCode;
+    DWORD dwCheckPoint;
+    DWORD dwWaitHint;
+}
+
+alias SERVICE_STATUS* LPSERVICE_STATUS;
+alias SERVICE_STATUS _SERVICE_STATUS;
+alias SERVICE_STATUS TSERVICESTATUS;
+alias SERVICE_STATUS* PSERVICESTATUS;
+
+struct ENUM_SERVICE_STATUS
+{
+    LPTSTR lpServiceName;
+    LPTSTR lpDisplayName;
+    SERVICE_STATUS ServiceStatus;
+}
+
+alias ENUM_SERVICE_STATUS* LPENUM_SERVICE_STATUS;
+alias ENUM_SERVICE_STATUS _ENUM_SERVICE_STATUS;
+alias ENUM_SERVICE_STATUS TENUMSERVICESTATUS;
+alias ENUM_SERVICE_STATUS* PENUMSERVICESTATUS;
+
+struct ENUMLOGFONTA {
+  LOGFONTA elfLogFont;
+  BYTE     elfFullName[LF_FULLFACESIZE];
+  BYTE     elfStyle[LF_FACESIZE];
+}
+struct ENUMLOGFONTW {
+  LOGFONTW elfLogFont;
+  WCHAR    elfFullName[LF_FULLFACESIZE];
+  WCHAR    elfStyle[LF_FACESIZE];
+}
+struct ENUMLOGFONTEXA {
+    LOGFONTA  elfLogFont;
+    BYTE      elfFullName[LF_FULLFACESIZE];
+    BYTE      elfStyle[LF_FACESIZE];
+    BYTE      elfScript[LF_FACESIZE];
+}
+struct ENUMLOGFONTEXW {
+    LOGFONTW  elfLogFont;
+    WCHAR     elfFullName[LF_FULLFACESIZE];
+    WCHAR     elfStyle[LF_FACESIZE];
+    WCHAR     elfScript[LF_FACESIZE];
+}
+version(Win32SansUnicode){
+    alias ENUMLOGFONTA ENUMLOGFONT;
+    alias ENUMLOGFONTEXA ENUMLOGFONTEX;
+}else {
+    alias ENUMLOGFONTW ENUMLOGFONT;
+    alias ENUMLOGFONTEXW ENUMLOGFONTEX;
+}
+alias ENUMLOGFONT TAGENUMLOGFONT;
+alias ENUMLOGFONT TENUMLOGFONT;
+alias ENUMLOGFONT* PENUMLOGFONT;
+alias ENUMLOGFONTEX TAGENUMLOGFONTEX;
+alias ENUMLOGFONTEX TENUMLOGFONTEX;
+alias ENUMLOGFONTEX* PENUMLOGFONTEX;
+
+struct EVENTLOGRECORD
+{
+    DWORD Length;
+    DWORD Reserved;
+    DWORD RecordNumber;
+    DWORD TimeGenerated;
+    DWORD TimeWritten;
+    DWORD EventID;
+    ushort EventType;
+    ushort NumStrings;
+    ushort EventCategory;
+    ushort ReservedFlags;
+    DWORD ClosingRecordNumber;
+    DWORD StringOffset;
+    DWORD UserSidLength;
+    DWORD UserSidOffset;
+    DWORD DataLength;
+    DWORD DataOffset;
+}
+
+alias EVENTLOGRECORD _EVENTLOGRECORD;
+alias EVENTLOGRECORD TEVENTLOGRECORD;
+alias EVENTLOGRECORD* PEVENTLOGRECORD;
+
+struct EVENTMSG
+{
+    UINT message;
+    UINT paramL;
+    UINT paramH;
+    DWORD time;
+    HWND hwnd;
+}
+
+alias EVENTMSG TAGEVENTMSG;
+alias EVENTMSG TEVENTMSG;
+alias EVENTMSG* PEVENTMSG;
+
+struct EXCEPTION_POINTERS
+{
+    PEXCEPTION_RECORD ExceptionRecord;
+    PCONTEXT ContextRecord;
+}
+
+alias EXCEPTION_POINTERS* LPEXCEPTION_POINTERS;
+alias EXCEPTION_POINTERS* PEXCEPTION_POINTERS;
+alias EXCEPTION_POINTERS _EXCEPTION_POINTERS;
+alias EXCEPTION_POINTERS TEXCEPTIONPOINTERS;
+alias EXCEPTION_POINTERS* PEXCEPTIONPOINTERS;
+
+struct EXT_BUTTON
+{
+    ushort idCommand;
+    ushort idsHelp;
+    ushort fsStyle;
+}
+
+alias EXT_BUTTON* LPEXT_BUTTON;
+alias EXT_BUTTON _EXT_BUTTON;
+alias EXT_BUTTON TEXTBUTTON;
+alias EXT_BUTTON* PEXTBUTTON;
+
+struct FILTERKEYS
+{
+    UINT cbSize;
+    DWORD dwFlags;
+    DWORD iWaitMSec;
+    DWORD iDelayMSec;
+    DWORD iRepeatMSec;
+    DWORD iBounceMSec;
+}
+
+alias FILTERKEYS TAGFILTERKEYS;
+alias FILTERKEYS TFILTERKEYS;
+alias FILTERKEYS* PFILTERKEYS;
+
+struct FIND_NAME_BUFFER
+{
+    UCHAR length;
+    UCHAR access_control;
+    UCHAR frame_control;
+    UCHAR[1 + 5] destination_addr;
+    UCHAR[1 + 5] source_addr;
+    UCHAR[1 + 17] routing_info;
+}
+
+alias FIND_NAME_BUFFER _FIND_NAME_BUFFER;
+alias FIND_NAME_BUFFER TFINDNAMEBUFFER;
+alias FIND_NAME_BUFFER* PFINDNAMEBUFFER;
+
+struct FIND_NAME_HEADER
+{
+    ushort node_count;
+    UCHAR reserved;
+    UCHAR unique_group;
+}
+
+alias FIND_NAME_HEADER _FIND_NAME_HEADER;
+alias FIND_NAME_HEADER TFINDNAMEHEADER;
+alias FIND_NAME_HEADER* PFINDNAMEHEADER;
+
+struct FINDREPLACE
+{
+    DWORD lStructSize;
+    HWND hwndOwner;
+    HINST hInstance;
+    DWORD Flags;
+    LPTSTR lpstrFindWhat;
+    LPTSTR lpstrReplaceWith;
+    ushort wFindWhatLen;
+    ushort wReplaceWithLen;
+    LPARAM lCustData;
+    LPFRHOOKPROC lpfnHook;
+    LPCTSTR lpTemplateName;
+}
+
+alias FINDREPLACE* LPFINDREPLACE;
+alias FINDREPLACE TFINDREPLACE;
+alias FINDREPLACE* PFINDREPLACE;
+
+struct TFINDTEXT
+{
+    CHARRANGE chrg;
+    LPSTR lpstrText;
+}
+
+alias TFINDTEXT _FINDTEXT;
+alias TFINDTEXT FINDTEXT;
+alias TFINDTEXT* PFINDTEXT;
+
+struct FINDTEXTEX
+{
+    CHARRANGE chrg;
+    LPSTR lpstrText;
+    CHARRANGE chrgText;
+}
+
+alias FINDTEXTEX _FINDTEXTEX;
+alias FINDTEXTEX TFINDTEXTEX;
+alias FINDTEXTEX* PFINDTEXTEX;
+
+struct FMS_GETDRIVEINFO
+{
+    DWORD dwTotalSpace;
+    DWORD dwFreeSpace;
+    TCHAR[1 + 259] szPath;
+    TCHAR[1 + 13] szVolume;
+    TCHAR[1 + 127] szShare;
+}
+
+alias FMS_GETDRIVEINFO _FMS_GETDRIVEINFO;
+alias FMS_GETDRIVEINFO TFMSGETDRIVEINFO;
+alias FMS_GETDRIVEINFO* PFMSGETDRIVEINFO;
+
+struct FMS_GETFILESEL
+{
+    FILETIME ftTime;
+    DWORD dwSize;
+    ubyte bAttr;
+    TCHAR[1 + 259] szName;
+}
+
+alias FMS_GETFILESEL _FMS_GETFILESEL;
+alias FMS_GETFILESEL TFMSGETFILESEL;
+alias FMS_GETFILESEL* PFMSGETFILESEL;
+
+struct FMS_LOAD
+{
+    DWORD dwSize;
+    TCHAR[1 + MENU_TEXT_LEN-1] szMenuName;
+    HMENU hMenu;
+    UINT wMenuDelta;
+}
+
+alias FMS_LOAD _FMS_LOAD;
+alias FMS_LOAD TFMSLOAD;
+alias FMS_LOAD* PFMSLOAD;
+
+struct FMS_TOOLBARLOAD
+{
+    DWORD dwSize;
+    LPEXT_BUTTON lpButtons;
+    ushort cButtons;
+    ushort cBitmaps;
+    ushort idBitmap;
+    HBITMAP hBitmap;
+}
+
+alias FMS_TOOLBARLOAD _FMS_TOOLBARLOAD;
+alias FMS_TOOLBARLOAD TFMSTOOLBARLOAD;
+alias FMS_TOOLBARLOAD* PFMSTOOLBARLOAD;
+
+struct FOCUS_EVENT_RECORD
+{
+    WINBOOL bSetFocus;
+}
+
+alias FOCUS_EVENT_RECORD _FOCUS_EVENT_RECORD;
+alias FOCUS_EVENT_RECORD TFOCUSEVENTRECORD;
+alias FOCUS_EVENT_RECORD* PFOCUSEVENTRECORD;
+
+struct FORM_INFO_1
+{
+    DWORD Flags;
+    LPTSTR pName;
+    SIZEL Size;
+    RECTL ImageableArea;
+}
+
+alias FORM_INFO_1 _FORM_INFO_1;
+alias FORM_INFO_1 TFORMINFO1;
+alias FORM_INFO_1* PFORMINFO1;
+
+struct FORMAT_PARAMETERS
+{
+    MEDIA_TYPE MediaType;
+    DWORD StartCylinderNumber;
+    DWORD EndCylinderNumber;
+    DWORD StartHeadNumber;
+    DWORD EndHeadNumber;
+}
+
+alias FORMAT_PARAMETERS _FORMAT_PARAMETERS;
+alias FORMAT_PARAMETERS TFORMATPARAMETERS;
+alias FORMAT_PARAMETERS* PFORMATPARAMETERS;
+
+struct FORMATRANGE
+{
+    HDC _hdc;
+    HDC hdcTarget;
+    RECT rc;
+    RECT rcPage;
+    CHARRANGE chrg;
+}
+
+alias FORMATRANGE _FORMATRANGE;
+alias FORMATRANGE TFORMATRANGE;
+alias FORMATRANGE* PFORMATRANGE;
+
+struct GCP_RESULTSA
+{
+    DWORD   lStructSize;
+    LPSTR   lpOutString;
+    UINT  * lpOrder;
+    int   * lpDx;
+    int   * lpCaretPos;
+    LPSTR   lpClass;
+    LPWSTR  lpGlyphs;
+    UINT    nGlyphs;
+    int     nMaxFit;
+}
+
+struct GCP_RESULTSW
+{
+    DWORD   lStructSize;
+    LPWSTR  lpOutString;
+    UINT  * lpOrder;
+    int   * lpDx;
+    int   * lpCaretPos;
+    LPSTR   lpClass;
+    LPWSTR  lpGlyphs;
+    UINT    nGlyphs;
+    int     nMaxFit;
+}
+version(Win32SansUnicode)
+{
+    alias GCP_RESULTSA GCP_RESULTS;
+}
+else
+{
+    alias GCP_RESULTSW GCP_RESULTS;
+}
+alias GCP_RESULTS* LPGCP_RESULTS;
+alias GCP_RESULTS TAGGCP_RESULTS;
+alias GCP_RESULTS TGCPRESULTS;
+alias GCP_RESULTS* PGCPRESULTS;
+
+struct GENERIC_MAPPING
+{
+    ACCESS_MASK GenericRead;
+    ACCESS_MASK GenericWrite;
+    ACCESS_MASK GenericExecute;
+    ACCESS_MASK GenericAll;
+}
+
+alias GENERIC_MAPPING* PGENERIC_MAPPING;
+alias GENERIC_MAPPING _GENERIC_MAPPING;
+alias GENERIC_MAPPING TGENERICMAPPING;
+alias GENERIC_MAPPING* PGENERICMAPPING;
+
+struct GLYPHMETRICS
+{
+    UINT gmBlackBoxX;
+    UINT gmBlackBoxY;
+    POINT gmptGlyphOrigin;
+    short gmCellIncX;
+    short gmCellIncY;
+}
+
+alias GLYPHMETRICS* LPGLYPHMETRICS;
+alias GLYPHMETRICS _GLYPHMETRICS;
+alias GLYPHMETRICS TGLYPHMETRICS;
+alias GLYPHMETRICS* PGLYPHMETRICS;
+
+struct HANDLETABLE
+{
+    HGDIOBJ[1 + 0] objectHandle;
+}
+
+alias HANDLETABLE TAGHANDLETABLE;
+alias HANDLETABLE THANDLETABLE;
+alias HANDLETABLE* LPHANDLETABLE;
+
+struct HD_HITTESTINFO
+{
+    POINT pt;
+    UINT flags;
+    int iItem;
+}
+
+alias HD_HITTESTINFO _HD_HITTESTINFO;
+alias HD_HITTESTINFO THDHITTESTINFO;
+alias HD_HITTESTINFO  HDHITTESTINFO;
+alias HD_HITTESTINFO* PHDHITTESTINFO;
+
+struct HD_ITEM
+{
+    UINT mask;
+    int cxy;
+    LPTSTR pszText;
+    HBITMAP hbm;
+    int cchTextMax;
+    int fmt;
+    LPARAM lParam;
+    // _WIN32_IE >= 0x300
+    int iImage;
+    int iOrder;
+    // _WIN32_IE >= 0x500
+    UINT type;
+    void* pvFilter;
+    // _WIN32_WINNT >= 0x600
+    //UINT state;
+}
+
+alias HD_ITEM _HD_ITEM;
+alias HD_ITEM THDITEM;
+alias HD_ITEM* PHDITEM;
+
+struct WINDOWPOS
+{
+    HWND _hwnd;
+    HWND hwndInsertAfter;
+    int x;
+    int y;
+    int cx;
+    int cy;
+    UINT flags;
+}
+
+alias WINDOWPOS* LPWINDOWPOS;
+alias WINDOWPOS _WINDOWPOS;
+alias WINDOWPOS TWINDOWPOS;
+alias WINDOWPOS* PWINDOWPOS;
+
+struct HD_LAYOUT
+{
+    RECT* prc;
+    WINDOWPOS* pwpos;
+}
+
+alias HD_LAYOUT _HD_LAYOUT;
+alias HD_LAYOUT THDLAYOUT;
+alias HD_LAYOUT  HDLAYOUT;
+alias HD_LAYOUT* PHDLAYOUT;
+
+struct HD_NOTIFY
+{
+    NMHDR hdr;
+    int iItem;
+    int iButton;
+    HD_ITEM* pitem;
+}
+
+alias HD_NOTIFY _HD_NOTIFY;
+alias HD_NOTIFY THDNOTIFY;
+alias HD_NOTIFY* PHDNOTIFY;
+
+struct HELPINFO
+{
+    UINT cbSize;
+    int iContextType;
+    int iCtrlId;
+    HANDLE hItemHandle;
+    DWORD dwContextId;
+    POINT MousePos;
+}
+
+alias HELPINFO* LPHELPINFO;
+alias HELPINFO TAGHELPINFO;
+alias HELPINFO THELPINFO;
+alias HELPINFO* PHELPINFO;
+
+struct HELPWININFO
+{
+    int wStructSize;
+    int x;
+    int y;
+    int dx;
+    int dy;
+    int wMax;
+    TCHAR[1 + 1] rgchMember;
+}
+
+alias HELPWININFO THELPWININFO;
+alias HELPWININFO* PHELPWININFO;
+
+struct HIGHCONTRASTA
+{
+    UINT             cbSize;
+    DWORD            dwFlags;
+    LPSTR            lpszDefaultScheme;
+}
+struct HIGHCONTRASTW
+{
+    UINT             cbSize;
+    DWORD            dwFlags;
+    LPWSTR           lpszDefaultScheme;
+}
+version(Win32SansUnicode)
+{
+    alias HIGHCONTRASTA HIGHCONTRAST;
+}
+else
+{
+    alias HIGHCONTRASTW HIGHCONTRAST;
+}
+alias HIGHCONTRAST* LPHIGHCONTRAST;
+alias HIGHCONTRAST TAGHIGHCONTRAST;
+alias HIGHCONTRAST THIGHCONTRAST;
+alias HIGHCONTRAST* PHIGHCONTRAST;
+
+struct HSZPAIR
+{
+    HSZ hszSvc;
+    HSZ hszTopic;
+}
+
+alias HSZPAIR TAGHSZPAIR;
+alias HSZPAIR THSZPAIR;
+alias HSZPAIR* PHSZPAIR;
+
+struct ICONINFO
+{
+    WINBOOL fIcon;
+    DWORD xHotspot;
+    DWORD yHotspot;
+    HBITMAP hbmMask;
+    HBITMAP hbmColor;
+}
+
+alias ICONINFO _ICONINFO;
+alias ICONINFO TICONINFO;
+alias ICONINFO* PICONINFO;
+
+struct ICONMETRICS
+{
+    UINT cbSize;
+    int iHorzSpacing;
+    int iVertSpacing;
+    int iTitleWrap;
+    LOGFONT lfFont;
+}
+
+alias ICONMETRICS* LPICONMETRICS;
+alias ICONMETRICS TAGICONMETRICS;
+alias ICONMETRICS TICONMETRICS;
+alias ICONMETRICS* PICONMETRICS;
+
+struct IMAGEINFO
+{
+    HBITMAP hbmImage;
+    HBITMAP hbmMask;
+    int Unused1;
+    int Unused2;
+    RECT rcImage;
+}
+
+alias IMAGEINFO _IMAGEINFO;
+alias IMAGEINFO TIMAGEINFO;
+alias IMAGEINFO* PIMAGEINFO;
+
+align(1) struct KEY_EVENT_RECORD
+{
+    WINBOOL bKeyDown;
+    ushort wRepeatCount;
+    ushort wVirtualKeyCode;
+    ushort wVirtualScanCode;
+
+    union
+    {
+        struct
+        {
+            WCHAR UnicodeChar;
+            DWORD dwControlKeyState;
+        }
+        struct
+        {
+            char AsciiChar;
+        }
+    }
+}
+
+alias KEY_EVENT_RECORD _KEY_EVENT_RECORD;
+alias KEY_EVENT_RECORD TKEYEVENTRECORD;
+alias KEY_EVENT_RECORD* PKEYEVENTRECORD;
+
+struct MOUSE_EVENT_RECORD
+{
+    COORD dwMousePosition;
+    DWORD dwButtonState;
+    DWORD dwControlKeyState;
+    DWORD dwEventFlags;
+}
+
+alias MOUSE_EVENT_RECORD _MOUSE_EVENT_RECORD;
+alias MOUSE_EVENT_RECORD TMOUSEEVENTRECORD;
+alias MOUSE_EVENT_RECORD* PMOUSEEVENTRECORD;
+
+struct WINDOW_BUFFER_SIZE_RECORD
+{
+    COORD dwSize;
+}
+
+alias WINDOW_BUFFER_SIZE_RECORD _WINDOW_BUFFER_SIZE_RECORD;
+alias WINDOW_BUFFER_SIZE_RECORD TWINDOWBUFFERSIZERECORD;
+alias WINDOW_BUFFER_SIZE_RECORD* PWINDOWBUFFERSIZERECORD;
+
+struct MENU_EVENT_RECORD
+{
+    UINT dwCommandId;
+}
+
+alias MENU_EVENT_RECORD* PMENU_EVENT_RECORD;
+alias MENU_EVENT_RECORD _MENU_EVENT_RECORD;
+alias MENU_EVENT_RECORD TMENUEVENTRECORD;
+alias MENU_EVENT_RECORD* PMENUEVENTRECORD;
+
+struct INPUT_RECORD
+{
+    ushort EventType;
+
+    union
+    {
+        struct
+        {
+            KEY_EVENT_RECORD KeyEvent;
+        }
+        struct
+        {
+            MOUSE_EVENT_RECORD MouseEvent;
+        }
+        struct
+        {
+            WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
+        }
+        struct
+        {
+            MENU_EVENT_RECORD MenuEvent;
+        }
+        struct
+        {
+            FOCUS_EVENT_RECORD FocusEvent;
+        }
+    }
+}
+
+alias INPUT_RECORD* PINPUT_RECORD;
+alias INPUT_RECORD _INPUT_RECORD;
+alias INPUT_RECORD TINPUTRECORD;
+alias INPUT_RECORD* PINPUTRECORD;
+
+struct SYSTEMTIME
+{
+    ushort wYear;
+    ushort wMonth;
+    ushort wDayOfWeek;
+    ushort wDay;
+    ushort wHour;
+    ushort wMinute;
+    ushort wSecond;
+    ushort wMilliseconds;
+}
+
+alias SYSTEMTIME* LPSYSTEMTIME;
+alias SYSTEMTIME _SYSTEMTIME;
+alias SYSTEMTIME TSYSTEMTIME;
+alias SYSTEMTIME* PSYSTEMTIME;
+
+struct JOB_INFO_1
+{
+    DWORD JobId;
+    LPTSTR pPrinterName;
+    LPTSTR pMachineName;
+    LPTSTR pUserName;
+    LPTSTR pDocument;
+    LPTSTR pDatatype;
+    LPTSTR pStatus;
+    DWORD Status;
+    DWORD Priority;
+    DWORD Position;
+    DWORD TotalPages;
+    DWORD PagesPrinted;
+    SYSTEMTIME Submitted;
+}
+
+alias JOB_INFO_1 _JOB_INFO_1;
+alias JOB_INFO_1 TJOBINFO1;
+alias JOB_INFO_1* PJOBINFO1;
+
+struct SID_IDENTIFIER_AUTHORITY
+{
+    ubyte[1 + 5] Value;
+}
+
+alias SID_IDENTIFIER_AUTHORITY* LPSID_IDENTIFIER_AUTHORITY;
+alias SID_IDENTIFIER_AUTHORITY* PSID_IDENTIFIER_AUTHORITY;
+alias SID_IDENTIFIER_AUTHORITY _SID_IDENTIFIER_AUTHORITY;
+alias SID_IDENTIFIER_AUTHORITY TSIDIDENTIFIERAUTHORITY;
+alias SID_IDENTIFIER_AUTHORITY* PSIDIDENTIFIERAUTHORITY;
+
+struct SID
+{
+    ubyte Revision;
+    ubyte SubAuthorityCount;
+    SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
+    DWORD[1 + ANYSIZE_ARRAY-1] SubAuthority;
+}
+
+alias SID _SID;
+alias SID TSID;
+alias SID* PSID;
+alias ushort SECURITY_DESCRIPTOR_CONTROL;
+alias SECURITY_DESCRIPTOR_CONTROL* PSECURITY_DESCRIPTOR_CONTROL;
+alias SECURITY_DESCRIPTOR_CONTROL TSECURITYDESCRIPTORCONTROL;
+alias SECURITY_DESCRIPTOR_CONTROL* PSECURITYDESCRIPTORCONTROL;
+
+struct SECURITY_DESCRIPTOR
+{
+    ubyte Revision;
+    ubyte Sbz1;
+    SECURITY_DESCRIPTOR_CONTROL Control;
+    PSID Owner;
+    PSID Group;
+    PACL Sacl;
+    PACL Dacl;
+}
+
+alias SECURITY_DESCRIPTOR* PSECURITY_DESCRIPTOR;
+alias SECURITY_DESCRIPTOR _SECURITY_DESCRIPTOR;
+alias SECURITY_DESCRIPTOR TSECURITYDESCRIPTOR;
+alias SECURITY_DESCRIPTOR* PSECURITYDESCRIPTOR;
+
+struct JOB_INFO_2
+{
+    DWORD JobId;
+    LPTSTR pPrinterName;
+    LPTSTR pMachineName;
+    LPTSTR pUserName;
+    LPTSTR pDocument;
+    LPTSTR pNotifyName;
+    LPTSTR pDatatype;
+    LPTSTR pPrintProcessor;
+    LPTSTR pParameters;
+    LPTSTR pDriverName;
+    LPDEVMODE pDevMode;
+    LPTSTR pStatus;
+    PSECURITY_DESCRIPTOR pSecurityDescriptor;
+    DWORD Status;
+    DWORD Priority;
+    DWORD Position;
+    DWORD StartTime;
+    DWORD UntilTime;
+    DWORD TotalPages;
+    DWORD Size;
+    SYSTEMTIME Submitted;
+    DWORD Time;
+    DWORD PagesPrinted;
+}
+
+alias JOB_INFO_2 _JOB_INFO_2;
+alias JOB_INFO_2 TJOBINFO2;
+alias JOB_INFO_2* PJOBINFO2;
+
+struct KERNINGPAIR
+{
+    ushort wFirst;
+    ushort wSecond;
+    int iKernAmount;
+}
+
+alias KERNINGPAIR* LPKERNINGPAIR;
+alias KERNINGPAIR TAGKERNINGPAIR;
+alias KERNINGPAIR TKERNINGPAIR;
+alias KERNINGPAIR* PKERNINGPAIR;
+
+struct LANA_ENUM
+{
+    UCHAR length;
+    UCHAR[1 + MAX_LANA] lana;
+}
+
+alias LANA_ENUM _LANA_ENUM;
+alias LANA_ENUM TLANAENUM;
+alias LANA_ENUM* PLANAENUM;
+
+struct LDT_ENTRY
+{
+    ushort LimitLow;
+    ushort BaseLow;
+
+    union
+    {
+        struct
+        {
+            ubyte BaseMid;
+            ubyte Flags1;
+            ubyte Flags2;
+            ubyte BaseHi;
+        }
+        struct
+        {
+            int flag0;
+        }
+    }
+}
+
+alias LDT_ENTRY* LPLDT_ENTRY;
+alias LDT_ENTRY* PLDT_ENTRY;
+alias LDT_ENTRY _LDT_ENTRY;
+alias LDT_ENTRY TLDTENTRY;
+alias LDT_ENTRY* PLDTENTRY;
+enum : DWORD {
+    bm_LDT_ENTRY_BaseMid = (0xFF),
+    bp_LDT_ENTRY_BaseMid = (0),
+    bm_LDT_ENTRY_Type = (0x1F00),
+    bp_LDT_ENTRY_Type = (8),
+    bm_LDT_ENTRY_Dpl = (0x6000),
+    bp_LDT_ENTRY_Dpl = (13),
+    bm_LDT_ENTRY_Pres = (0x8000),
+    bp_LDT_ENTRY_Pres = (15),
+    bm_LDT_ENTRY_LimitHi = (0xF0000),
+    bp_LDT_ENTRY_LimitHi = (16),
+    bm_LDT_ENTRY_Sys = (0x100000),
+    bp_LDT_ENTRY_Sys = (20),
+    bm_LDT_ENTRY_Reserved_0 = (0x200000),
+    bp_LDT_ENTRY_Reserved_0 = (21),
+    bm_LDT_ENTRY_Default_Big = (0x400000),
+    bp_LDT_ENTRY_Default_Big = (22),
+    bm_LDT_ENTRY_Granularity = (0x800000),
+    bp_LDT_ENTRY_Granularity = (23),
+    bm_LDT_ENTRY_BaseHi = (0xFF000000),
+    bp_LDT_ENTRY_BaseHi = (24),
+}
+
+struct LOCALESIGNATURE
+{
+    DWORD[1 + 3] lsUsb;
+    DWORD[1 + 1] lsCsbDefault;
+    DWORD[1 + 1] lsCsbSupported;
+}
+
+alias LOCALESIGNATURE TAGLOCALESIGNATURE;
+alias LOCALESIGNATURE TLOCALESIGNATURE;
+alias LOCALESIGNATURE* PLOCALESIGNATURE;
+
+struct LOCALGROUP_MEMBERS_INFO_0
+{
+    PSID lgrmi0_sid;
+}
+
+alias LOCALGROUP_MEMBERS_INFO_0 _LOCALGROUP_MEMBERS_INFO_0;
+alias LOCALGROUP_MEMBERS_INFO_0 TLOCALGROUPMEMBERSINFO0;
+alias LOCALGROUP_MEMBERS_INFO_0* PLOCALGROUPMEMBERSINFO0;
+
+struct LOCALGROUP_MEMBERS_INFO_3
+{
+    LPWSTR lgrmi3_domainandname;
+}
+
+alias LOCALGROUP_MEMBERS_INFO_3 _LOCALGROUP_MEMBERS_INFO_3;
+alias LOCALGROUP_MEMBERS_INFO_3 TLOCALGROUPMEMBERSINFO3;
+alias LOCALGROUP_MEMBERS_INFO_3* PLOCALGROUPMEMBERSINFO3;
+alias int FXPT16DOT16;
+alias FXPT16DOT16* LPFXPT16DOT16;
+alias FXPT16DOT16 TFXPT16DOT16;
+alias FXPT16DOT16* PFXPT16DOT16;
+struct LUID {
+    DWORD LowPart;
+    LONG  HighPart;
+}
+alias LUID TLUID;
+alias LUID* PLUID;
+
+struct LUID_AND_ATTRIBUTES
+{
+    LUID Luid;
+    DWORD Attributes;
+}
+
+alias LUID_AND_ATTRIBUTES _LUID_AND_ATTRIBUTES;
+alias LUID_AND_ATTRIBUTES TLUIDANDATTRIBUTES;
+alias LUID_AND_ATTRIBUTES* PLUIDANDATTRIBUTES;
+alias LUID_AND_ATTRIBUTES[1 + ANYSIZE_ARRAY-1] LUID_AND_ATTRIBUTES_ARRAY;
+alias LUID_AND_ATTRIBUTES_ARRAY* PLUID_AND_ATTRIBUTES_ARRAY;
+alias LUID_AND_ATTRIBUTES_ARRAY TLUIDANDATTRIBUTESARRAY;
+alias LUID_AND_ATTRIBUTES_ARRAY* PLUIDANDATTRIBUTESARRAY;
+
+struct LVCOLUMNA {
+    UINT mask;
+    int fmt;
+    int cx;
+    LPSTR pszText;
+    int cchTextMax;
+    int iSubItem;
+    int iImage;
+    //if (_WIN32_IE >= 0x0300)
+    int iOrder;
+    //endif
+    //if (_WIN32_WINNT >= 0x0600)
+    //int cxMin;
+    //int cxDefault;
+    //int cxIdeal;
+    //endif
+}
+struct LVCOLUMNW {
+    UINT mask;
+    int fmt;
+    int cx;
+    LPWSTR pszText;
+    int cchTextMax;
+    int iSubItem;
+    int iImage;
+    //if (_WIN32_IE >= 0x0300)
+    int iOrder;
+    //endif
+    //if (_WIN32_WINNT >= 0x0600)
+    //int cxMin;
+    //int cxDefault;
+    //int cxIdeal;
+    //endif
+}
+version(Win32SansUnicode){
+    alias LVCOLUMNA LVCOLUMN;
+}else{
+    alias LVCOLUMNW LVCOLUMN;
+}
+alias LVCOLUMN* LPLVCOLUMN;
+alias LVCOLUMN LV_COLUMN;
+alias LV_COLUMN _LV_COLUMN;
+alias LV_COLUMN TLVCOLUMN;
+alias LV_COLUMN* PLVCOLUMN;
+
+struct LVITEMA {
+    UINT   mask;
+    int    iItem;
+    int    iSubItem;
+    UINT   state;
+    UINT   stateMask;
+    LPSTR  pszText;
+    int    cchTextMax;
+    int    iImage;
+    LPARAM lParam;
+//if (_WIN32_IE >= 0x0300)
+    int iIndent;
+//endif
+//if (_WIN32_WINNT >= 0x560)
+    int iGroupId;
+    UINT cColumns; // tile view columns
+    PUINT puColumns;
+//endif
+//if (_WIN32_WINNT >= 0x0600)
+//    int* piColFmt;
+//    int iGroup;
+//endif
+}
+struct LVITEMW {
+    UINT   mask;
+    int    iItem;
+    int    iSubItem;
+    UINT   state;
+    UINT   stateMask;
+    LPWSTR  pszText;
+    int    cchTextMax;
+    int    iImage;
+    LPARAM lParam;
+//if (_WIN32_IE >= 0x0300)
+    int iIndent;
+//endif
+//if (_WIN32_WINNT >= 0x560)
+    int iGroupId;
+    UINT cColumns; // tile view columns
+    PUINT puColumns;
+//endif
+//if (_WIN32_WINNT >= 0x0600)
+//    int* piColFmt;
+//    int iGroup;
+//endif
+}
+version(Win32SansUnicode){
+    alias LVITEMA LVITEM;
+}else{
+    alias LVITEMW LVITEM;
+}
+alias LVITEM* LPLVITEM;
+alias LVITEM LV_ITEM;
+
+alias LV_ITEM _LV_ITEM;
+alias LV_ITEM TLVITEM;
+alias LV_ITEM* PLVITEM;
+
+struct LV_DISPINFO
+{
+    NMHDR hdr;
+    LV_ITEM item;
+}
+
+alias LV_DISPINFO TAGLV_DISPINFO;
+alias LV_DISPINFO TLVDISPINFO;
+alias LV_DISPINFO* PLVDISPINFO;
+
+struct LV_FINDINFO
+{
+    UINT flags;
+    LPCTSTR psz;
+    LPARAM lParam;
+    POINT pt;
+    UINT vkDirection;
+}
+
+alias LV_FINDINFO _LV_FINDINFO;
+alias LV_FINDINFO TLVFINDINFO;
+alias LV_FINDINFO* PLVFINDINFO;
+
+struct LVHITTESTINFO
+{
+    POINT pt;
+    UINT flags;
+    int iItem;
+    int iSubItem;
+//#if _WIN32_WINNT >= 0x0600
+//    int iGroup;
+//#endif
+}
+
+alias LVHITTESTINFO LV_HITTESTINFO;
+
+alias LV_HITTESTINFO _LV_HITTESTINFO;
+alias LV_HITTESTINFO TLVHITTESTINFO;
+alias LV_HITTESTINFO* PLVHITTESTINFO;
+
+align(2) struct LV_KEYDOWN
+{
+    NMHDR hdr;
+    ushort wVKey;
+    UINT flags;
+}
+
+alias LV_KEYDOWN TAGLV_KEYDOWN;
+alias LV_KEYDOWN TLVKEYDOWN;
+alias LV_KEYDOWN* PLVKEYDOWN;
+
+struct MAT2
+{
+    FIXED eM11;
+    FIXED eM12;
+    FIXED eM21;
+    FIXED eM22;
+}
+
+alias MAT2 _MAT2;
+alias MAT2 TMAT2;
+alias MAT2* PMAT2;
+
+struct MDICREATESTRUCT
+{
+    LPCTSTR szClass;
+    LPCTSTR szTitle;
+    HANDLE hOwner;
+    int x;
+    int y;
+    int cx;
+    int cy;
+    DWORD style;
+    LPARAM lParam;
+}
+
+alias MDICREATESTRUCT* LPMDICREATESTRUCT;
+alias MDICREATESTRUCT TAGMDICREATESTRUCT;
+alias MDICREATESTRUCT TMDICREATESTRUCT;
+alias MDICREATESTRUCT* PMDICREATESTRUCT;
+
+struct MEASUREITEMSTRUCT
+{
+    UINT CtlType;
+    UINT CtlID;
+    UINT itemID;
+    UINT itemWidth;
+    UINT itemHeight;
+    DWORD itemData;
+}
+
+alias MEASUREITEMSTRUCT* LPMEASUREITEMSTRUCT;
+alias MEASUREITEMSTRUCT TAGMEASUREITEMSTRUCT;
+alias MEASUREITEMSTRUCT TMEASUREITEMSTRUCT;
+alias MEASUREITEMSTRUCT* PMEASUREITEMSTRUCT;
+
+struct MEMORY_BASIC_INFORMATION
+{
+    PVOID BaseAddress;
+    PVOID AllocationBase;
+    DWORD AllocationProtect;
+    DWORD RegionSize;
+    DWORD State;
+    DWORD Protect;
+    DWORD _Type;
+}
+
+alias MEMORY_BASIC_INFORMATION* PMEMORY_BASIC_INFORMATION;
+alias MEMORY_BASIC_INFORMATION _MEMORY_BASIC_INFORMATION;
+alias MEMORY_BASIC_INFORMATION TMEMORYBASICINFORMATION;
+alias MEMORY_BASIC_INFORMATION* PMEMORYBASICINFORMATION;
+
+struct MEMORYSTATUS
+{
+    DWORD dwLength;
+    DWORD dwMemoryLoad;
+    DWORD dwTotalPhys;
+    DWORD dwAvailPhys;
+    DWORD dwTotalPageFile;
+    DWORD dwAvailPageFile;
+    DWORD dwTotalVirtual;
+    DWORD dwAvailVirtual;
+}
+
+alias MEMORYSTATUS* LPMEMORYSTATUS;
+alias MEMORYSTATUS _MEMORYSTATUS;
+alias MEMORYSTATUS TMEMORYSTATUS;
+alias MEMORYSTATUS* PMEMORYSTATUS;
+
+struct MENUEX_TEMPLATE_HEADER
+{
+    ushort wVersion;
+    ushort wOffset;
+    DWORD dwHelpId;
+}
+
+alias MENUEX_TEMPLATE_HEADER TMENUXTEMPLATEHEADER;
+alias MENUEX_TEMPLATE_HEADER* PMENUXTEMPLATEHEADER;
+
+struct MENUEX_TEMPLATE_ITEM
+{
+    DWORD dwType;
+    DWORD dwState;
+    UINT uId;
+    ubyte bResInfo;
+    WCHAR[1 + 0] szText;
+    DWORD dwHelpId;
+}
+
+alias MENUEX_TEMPLATE_ITEM TMENUEXTEMPLATEITEM;
+alias MENUEX_TEMPLATE_ITEM* PMENUEXTEMPLATEITEM;
+
+/*
+* Feature in Windows.  The hbmpItem field requires Windows 4.10
+* or greater.  On Windows NT 4.0, passing in a larger struct size
+* in the cbSize field does nothing.  On Windows 95, the MENUITEMINFO
+* calls fail when the struct size is too large.  The fix is to ensure
+* that the correct struct size is used for the Windows platform.
+*/
+struct MENUITEMINFOA
+{
+    UINT    cbSize;
+    UINT    fMask;
+    UINT    fType;          // used if MIIM_TYPE
+    UINT    fState;         // used if MIIM_STATE
+    UINT    wID;            // used if MIIM_ID
+    HMENU   hSubMenu;       // used if MIIM_SUBMENU
+    HBITMAP hbmpChecked;    // used if MIIM_CHECKMARKS
+    HBITMAP hbmpUnchecked;  // used if MIIM_CHECKMARKS
+    DWORD   dwItemData;     // used if MIIM_DATA
+    LPSTR   dwTypeData;     // used if MIIM_TYPE
+    UINT    cch;            // used if MIIM_TYPE
+    HBITMAP hbmpItem;
+}
+alias MENUITEMINFOA* PMENUITEMINFOA, LPMENUITEMINFOA;
+struct MENUITEMINFOW
+{
+    UINT    cbSize;
+    UINT    fMask;
+    UINT    fType;          // used if MIIM_TYPE
+    UINT    fState;         // used if MIIM_STATE
+    UINT    wID;            // used if MIIM_ID
+    HMENU   hSubMenu;       // used if MIIM_SUBMENU
+    HBITMAP hbmpChecked;    // used if MIIM_CHECKMARKS
+    HBITMAP hbmpUnchecked;  // used if MIIM_CHECKMARKS
+    DWORD   dwItemData;     // used if MIIM_DATA
+    LPWSTR  dwTypeData;     // used if MIIM_TYPE
+    UINT    cch;            // used if MIIM_TYPE
+    HBITMAP hbmpItem;
+}   alias MENUITEMINFOW* PMENUITEMINFOW, LPMENUITEMINFOW;
+version(Win32SansUnicode)
+{
+    alias MENUITEMINFOA MENUITEMINFO;
+}
+else
+{
+    alias MENUITEMINFOW MENUITEMINFO;
+}
+alias MENUITEMINFO * LPMENUITEMINFO;
+alias MENUITEMINFO * LPCMENUITEMINFO;
+alias MENUITEMINFO TAGMENUITEMINFO;
+alias MENUITEMINFO TMENUITEMINFO;
+alias MENUITEMINFO TMENUITEMINFOA;
+alias MENUITEMINFO* PMENUITEMINFO;
+
+struct MENUITEMTEMPLATE
+{
+    ushort mtOption;
+    ushort mtID;
+    WCHAR[1 + 0] mtString;
+}
+
+alias MENUITEMTEMPLATE TMENUITEMTEMPLATE;
+alias MENUITEMTEMPLATE* PMENUITEMTEMPLATE;
+
+struct MENUITEMTEMPLATEHEADER
+{
+    ushort versionNumber;
+    ushort offset;
+}
+
+alias MENUITEMTEMPLATEHEADER TMENUITEMTEMPLATEHEADER;
+alias MENUITEMTEMPLATEHEADER* PMENUITEMTEMPLATEHEADER;
+
+struct MENUTEMPLATE
+{
+}
+
+alias MENUTEMPLATE* LPMENUTEMPLATE;
+alias MENUTEMPLATE TMENUTEMPLATE;
+alias MENUTEMPLATE* PMENUTEMPLATE;
+
+struct METAFILEPICT
+{
+    LONG mm;
+    LONG xExt;
+    LONG yExt;
+    HMETAFILE hMF;
+}
+
+alias METAFILEPICT* LPMETAFILEPICT;
+alias METAFILEPICT TAGMETAFILEPICT;
+alias METAFILEPICT TMETAFILEPICT;
+alias METAFILEPICT* PMETAFILEPICT;
+
+align(1) struct METAHEADER
+{
+    ushort mtType;
+    ushort mtHeaderSize;
+    ushort mtVersion;
+    DWORD mtSize;
+    ushort mtNoObjects;
+    DWORD mtMaxRecord;
+    ushort mtNoParameters;
+}
+
+alias METAHEADER TAGMETAHEADER;
+alias METAHEADER TMETAHEADER;
+alias METAHEADER* PMETAHEADER;
+
+struct METARECORD
+{
+    DWORD rdSize;
+    ushort rdFunction;
+    ushort[1 + 0] rdParm;
+}
+
+alias METARECORD* LPMETARECORD;
+alias METARECORD TAGMETARECORD;
+alias METARECORD TMETARECORD;
+alias METARECORD* PMETARECORD;
+
+struct MINIMIZEDMETRICS
+{
+    UINT cbSize;
+    int iWidth;
+    int iHorzGap;
+    int iVertGap;
+    int iArrange;
+}
+
+alias MINIMIZEDMETRICS* LPMINIMIZEDMETRICS;
+alias MINIMIZEDMETRICS TAGMINIMIZEDMETRICS;
+alias MINIMIZEDMETRICS TMINIMIZEDMETRICS;
+alias MINIMIZEDMETRICS* PMINIMIZEDMETRICS;
+
+struct MINMAXINFO
+{
+    POINT ptReserved;
+    POINT ptMaxSize;
+    POINT ptMaxPosition;
+    POINT ptMinTrackSize;
+    POINT ptMaxTrackSize;
+}
+
+alias MINMAXINFO TAGMINMAXINFO;
+alias MINMAXINFO TMINMAXINFO;
+alias MINMAXINFO* PMINMAXINFO;
+
+struct MODEMDEVCAPS
+{
+    DWORD dwActualSize;
+    DWORD dwRequiredSize;
+    DWORD dwDevSpecificOffset;
+    DWORD dwDevSpecificSize;
+    DWORD dwModemProviderVersion;
+    DWORD dwModemManufacturerOffset;
+    DWORD dwModemManufacturerSize;
+    DWORD dwModemModelOffset;
+    DWORD dwModemModelSize;
+    DWORD dwModemVersionOffset;
+    DWORD dwModemVersionSize;
+    DWORD dwDialOptions;
+    DWORD dwCallSetupFailTimer;
+    DWORD dwInactivityTimeout;
+    DWORD dwSpeakerVolume;
+    DWORD dwSpeakerMode;
+    DWORD dwModemOptions;
+    DWORD dwMaxDTERate;
+    DWORD dwMaxDCERate;
+    ubyte[1 + 0] abVariablePortion;
+}
+
+alias MODEMDEVCAPS* LPMODEMDEVCAPS;
+alias MODEMDEVCAPS TMODEMDEVCAPS;
+alias MODEMDEVCAPS* PMODEMDEVCAPS;
+alias MODEMDEVCAPS MODEMDEVCAPS_TAG;
+
+struct MODEMSETTINGS
+{
+    DWORD dwActualSize;
+    DWORD dwRequiredSize;
+    DWORD dwDevSpecificOffset;
+    DWORD dwDevSpecificSize;
+    DWORD dwCallSetupFailTimer;
+    DWORD dwInactivityTimeout;
+    DWORD dwSpeakerVolume;
+    DWORD dwSpeakerMode;
+    DWORD dwPreferredModemOptions;
+    DWORD dwNegotiatedModemOptions;
+    DWORD dwNegotiatedDCERate;
+    ubyte[1 + 0] abVariablePortion;
+}
+
+alias MODEMSETTINGS* LPMODEMSETTINGS;
+alias MODEMSETTINGS TMODEMSETTINGS;
+alias MODEMSETTINGS* PMODEMSETTINGS;
+alias MODEMSETTINGS MODEMSETTINGS_TAG;
+
+struct MONCBSTRUCT
+{
+    UINT cb;
+    DWORD dwTime;
+    HANDLE hTask;
+    DWORD dwRet;
+    UINT wType;
+    UINT wFmt;
+    HCONV hConv;
+    HSZ hsz1;
+    HSZ hsz2;
+    HDDEDATA hData;
+    DWORD dwData1;
+    DWORD dwData2;
+    CONVCONTEXT cc;
+    DWORD cbData;
+    DWORD[1 + 7] Data;
+}
+
+alias MONCBSTRUCT TAGMONCBSTRUCT;
+alias MONCBSTRUCT TMONCBSTRUCT;
+alias MONCBSTRUCT* PMONCBSTRUCT;
+
+struct MONCONVSTRUCT
+{
+    UINT cb;
+    WINBOOL fConnect;
+    DWORD dwTime;
+    HANDLE hTask;
+    HSZ hszSvc;
+    HSZ hszTopic;
+    HCONV hConvClient;
+    HCONV hConvServer;
+}
+
+alias MONCONVSTRUCT TAGMONCONVSTRUCT;
+alias MONCONVSTRUCT TMONCONVSTRUCT;
+alias MONCONVSTRUCT* PMONCONVSTRUCT;
+
+struct MONERRSTRUCT
+{
+    UINT cb;
+    UINT wLastError;
+    DWORD dwTime;
+    HANDLE hTask;
+}
+
+alias MONERRSTRUCT TAGMONERRSTRUCT;
+alias MONERRSTRUCT TMONERRSTRUCT;
+alias MONERRSTRUCT* PMONERRSTRUCT;
+
+struct MONHSZSTRUCT
+{
+    UINT cb;
+    WINBOOL fsAction;
+    DWORD dwTime;
+    HSZ hsz;
+    HANDLE hTask;
+    TCHAR[1 + 0] str;
+}
+
+alias MONHSZSTRUCT TAGMONHSZSTRUCT;
+alias MONHSZSTRUCT TMONHSZSTRUCT;
+alias MONHSZSTRUCT* PMONHSZSTRUCT;
+
+struct MONITOR_INFO_1
+{
+    LPTSTR pName;
+}
+
+alias MONITOR_INFO_1 _MONITOR_INFO_1;
+alias MONITOR_INFO_1 TMONITORINFO1;
+alias MONITOR_INFO_1* PMONITORINFO1;
+
+struct MONITOR_INFO_2
+{
+    LPTSTR pName;
+    LPTSTR pEnvironment;
+    LPTSTR pDLLName;
+}
+
+alias MONITOR_INFO_2 _MONITOR_INFO_2;
+alias MONITOR_INFO_2 TMONITORINFO2;
+alias MONITOR_INFO_2* PMONITORINFO2;
+
+struct MONLINKSTRUCT
+{
+    UINT cb;
+    DWORD dwTime;
+    HANDLE hTask;
+    WINBOOL fEstablished;
+    WINBOOL fNoData;
+    HSZ hszSvc;
+    HSZ hszTopic;
+    HSZ hszItem;
+    UINT wFmt;
+    WINBOOL fServer;
+    HCONV hConvServer;
+    HCONV hConvClient;
+}
+
+alias MONLINKSTRUCT TAGMONLINKSTRUCT;
+alias MONLINKSTRUCT TMONLINKSTRUCT;
+alias MONLINKSTRUCT* PMONLINKSTRUCT;
+
+struct MONMSGSTRUCT
+{
+    UINT cb;
+    HWND hwndTo;
+    DWORD dwTime;
+    HANDLE hTask;
+    UINT wMsg;
+    WPARAM wParam;
+    LPARAM lParam;
+    DDEML_MSG_HOOK_DATA dmhd;
+}
+
+alias MONMSGSTRUCT TAGMONMSGSTRUCT;
+alias MONMSGSTRUCT TMONMSGSTRUCT;
+alias MONMSGSTRUCT* PMONMSGSTRUCT;
+
+struct MOUSEHOOKSTRUCT
+{
+    POINT pt;
+    HWND hwnd;
+    UINT wHitTestCode;
+    DWORD dwExtraInfo;
+}
+
+alias MOUSEHOOKSTRUCT* LPMOUSEHOOKSTRUCT;
+alias MOUSEHOOKSTRUCT TAGMOUSEHOOKSTRUCT;
+alias MOUSEHOOKSTRUCT TMOUSEHOOKSTRUCT;
+alias MOUSEHOOKSTRUCT* PMOUSEHOOKSTRUCT;
+
+struct MOUSEKEYS
+{
+    DWORD cbSize;
+    DWORD dwFlags;
+    DWORD iMaxSpeed;
+    DWORD iTimeToMaxSpeed;
+    DWORD iCtrlSpeed;
+    DWORD dwReserved1;
+    DWORD dwReserved2;
+}
+
+alias MOUSEKEYS TMOUSEKEYS;
+alias MOUSEKEYS* PMOUSEKEYS;
+
+struct MSG
+{
+    HWND hwnd;
+    UINT message;
+    WPARAM wParam;
+    LPARAM lParam;
+    DWORD time;
+    POINT pt;
+}
+
+alias MSG* LPMSG;
+alias MSG TAGMSG;
+alias MSG TMSG;
+alias MSG* PMSG;
+extern(Windows){
+alias void (*MSGBOXCALLBACK)(LPHELPINFO);
+}
+alias MSGBOXCALLBACK TMSGBOXCALLBACK;
+
+struct MSGBOXPARAMS
+{
+    UINT cbSize;
+    HWND hwndOwner;
+    HINST hInstance;
+    LPCSTR lpszText;
+    LPCSTR lpszCaption;
+    DWORD dwStyle;
+    LPCSTR lpszIcon;
+    DWORD dwContextHelpId;
+    MSGBOXCALLBACK lpfnMsgBoxCallback;
+    DWORD dwLanguageId;
+}
+
+alias MSGBOXPARAMS* LPMSGBOXPARAMS;
+alias MSGBOXPARAMS TMSGBOXPARAMS;
+alias MSGBOXPARAMS TMSGBOXPARAMSA;
+alias MSGBOXPARAMS* PMSGBOXPARAMS;
+
+struct MSGFILTER
+{
+    NMHDR nmhdr;
+    UINT msg;
+    WPARAM wParam;
+    LPARAM lParam;
+}
+
+alias MSGFILTER _MSGFILTER;
+alias MSGFILTER TMSGFILTER;
+alias MSGFILTER* PMSGFILTER;
+
+struct MULTIKEYHELP
+{
+    DWORD mkSize;
+    TCHAR mkKeylist;
+    TCHAR[1 + 0] szKeyphrase;
+}
+
+alias MULTIKEYHELP TAGMULTIKEYHELP;
+alias MULTIKEYHELP TMULTIKEYHELP;
+alias MULTIKEYHELP* PMULTIKEYHELP;
+
+struct NAME_BUFFER
+{
+    UCHAR[1 + NCBNAMSZ-1] name;
+    UCHAR name_num;
+    UCHAR name_flags;
+}
+
+alias NAME_BUFFER _NAME_BUFFER;
+alias NAME_BUFFER TNAMEBUFFER;
+alias NAME_BUFFER* PNAMEBUFFER;
+alias _NCB* P_NCB;
+
+struct NCB
+{
+    UCHAR ncb_command;
+    UCHAR ncb_retcode;
+    UCHAR ncb_lsn;
+    UCHAR ncb_num;
+    PUCHAR ncb_buffer;
+    ushort ncb_length;
+    UCHAR[1 + NCBNAMSZ-1] ncb_callname;
+    UCHAR[1 + NCBNAMSZ-1] ncb_name;
+    UCHAR ncb_rto;
+    UCHAR ncb_sto;
+    POINTER ncb_post;
+    UCHAR ncb_lana_num;
+    UCHAR ncb_cmd_cplt;
+    UCHAR[1 + 9] ncb_reserve;
+    HANDLE ncb_event;
+}
+
+alias NCB _NCB;
+alias NCB TNCB;
+alias NCB* PNCB;
+
+struct NCCALCSIZE_PARAMS
+{
+    RECT[1 + 2] rgrc;
+    PWINDOWPOS lppos;
+}
+
+alias NCCALCSIZE_PARAMS _NCCALCSIZE_PARAMS;
+alias NCCALCSIZE_PARAMS TNCCALCSIZEPARAMS;
+alias NCCALCSIZE_PARAMS* PNCCALCSIZEPARAMS;
+
+struct NDDESHAREINFO
+{
+    LONG lRevision;
+    LPTSTR lpszShareName;
+    LONG lShareType;
+    LPTSTR lpszAppTopicList;
+    LONG fSharedFlag;
+    LONG fService;
+    LONG fStartAppFlag;
+    LONG nCmdShow;
+    LONG[1 + 1] qModifyId;
+    LONG cNumItems;
+    LPTSTR lpszItemList;
+}
+
+alias NDDESHAREINFO _NDDESHAREINFO;
+alias NDDESHAREINFO TNDDESHAREINFO;
+alias NDDESHAREINFO* PNDDESHAREINFO;
+
+struct NETRESOURCE
+{
+    DWORD dwScope;
+    DWORD dwType;
+    DWORD dwDisplayType;
+    DWORD dwUsage;
+    LPTSTR lpLocalName;
+    LPTSTR lpRemoteName;
+    LPTSTR lpComment;
+    LPTSTR lpProvider;
+}
+
+alias NETRESOURCE* LPNETRESOURCE;
+alias NETRESOURCE _NETRESOURCE;
+alias NETRESOURCE TNETRESOURCE;
+alias NETRESOURCE TNETRESOURCEA;
+alias NETRESOURCE* PNETRESOURCE;
+alias NETRESOURCE* PNETRESOURCEA;
+
+struct NEWCPLINFO
+{
+    DWORD dwSize;
+    DWORD dwFlags;
+    DWORD dwHelpContext;
+    LONG lData;
+    HICON hIcon;
+    TCHAR[1 + 31] szName;
+    TCHAR[1 + 63] szInfo;
+    TCHAR[1 + 127] szHelpFile;
+}
+
+alias NEWCPLINFO TAGNEWCPLINFO;
+alias NEWCPLINFO TNEWCPLINFO;
+alias NEWCPLINFO* PNEWCPLINFO;
+
+struct NEWTEXTMETRICA {
+    LONG   tmHeight;
+    LONG   tmAscent;
+    LONG   tmDescent;
+    LONG   tmInternalLeading;
+    LONG   tmExternalLeading;
+    LONG   tmAveCharWidth;
+    LONG   tmMaxCharWidth;
+    LONG   tmWeight;
+    LONG   tmOverhang;
+    LONG   tmDigitizedAspectX;
+    LONG   tmDigitizedAspectY;
+    BYTE  tmFirstChar;
+    BYTE  tmLastChar;
+    BYTE  tmDefaultChar;
+    BYTE  tmBreakChar;
+    BYTE   tmItalic;
+    BYTE   tmUnderlined;
+    BYTE   tmStruckOut;
+    BYTE   tmPitchAndFamily;
+    BYTE   tmCharSet;
+    DWORD  ntmFlags;
+    UINT   ntmSizeEM;
+    UINT   ntmCellHeight;
+    UINT   ntmAvgWidth;
+}
+struct NEWTEXTMETRICW {
+    LONG   tmHeight;
+    LONG   tmAscent;
+    LONG   tmDescent;
+    LONG   tmInternalLeading;
+    LONG   tmExternalLeading;
+    LONG   tmAveCharWidth;
+    LONG   tmMaxCharWidth;
+    LONG   tmWeight;
+    LONG   tmOverhang;
+    LONG   tmDigitizedAspectX;
+    LONG   tmDigitizedAspectY;
+    WCHAR  tmFirstChar;
+    WCHAR  tmLastChar;
+    WCHAR  tmDefaultChar;
+    WCHAR  tmBreakChar;
+    BYTE   tmItalic;
+    BYTE   tmUnderlined;
+    BYTE   tmStruckOut;
+    BYTE   tmPitchAndFamily;
+    BYTE   tmCharSet;
+    DWORD  ntmFlags;
+    UINT   ntmSizeEM;
+    UINT   ntmCellHeight;
+    UINT   ntmAvgWidth;
+}
+
+struct NEWTEXTMETRICEXA
+{
+    NEWTEXTMETRICA  ntmentm;
+    FONTSIGNATURE  ntmeFontSignature;
+}
+struct NEWTEXTMETRICEXW
+{
+    NEWTEXTMETRICW  ntmentm;
+    FONTSIGNATURE  ntmeFontSignature;
+}
+
+
+version(Win32SansUnicode)
+{
+    alias NEWTEXTMETRICA NEWTEXTMETRIC;
+    alias NEWTEXTMETRICEXA NEWTEXTMETRICEX;
+}
+else
+{
+    alias NEWTEXTMETRICW NEWTEXTMETRIC;
+    alias NEWTEXTMETRICEXW NEWTEXTMETRICEX;
+}
+
+alias NEWTEXTMETRIC TNEWTEXTMETRIC;
+alias NEWTEXTMETRIC* PNEWTEXTMETRIC;
+alias NEWTEXTMETRIC* LPNEWTEXTMETRIC;
+alias NEWTEXTMETRIC TAGNEWTEXTMETRIC;
+alias NEWTEXTMETRICEX TAGNEWTEXTMETRICEX;
+alias NEWTEXTMETRICEX TNEWTEXTMETRICEX;
+alias NEWTEXTMETRICEX* PNEWTEXTMETRICEX;
+
+struct NM_LISTVIEW
+{
+    NMHDR hdr;
+    int iItem;
+    int iSubItem;
+    UINT uNewState;
+    UINT uOldState;
+    UINT uChanged;
+    POINT ptAction;
+    LPARAM lParam;
+}
+
+alias NM_LISTVIEW TAGNM_LISTVIEW;
+alias NM_LISTVIEW TNMLISTVIEW;
+alias NM_LISTVIEW* PNMLISTVIEW;
+
+struct TVITEMA
+{
+    UINT      mask;
+    HTREEITEM hItem;
+    UINT      state;
+    UINT      stateMask;
+    LPSTR     pszText;
+    int       cchTextMax;
+    int       iImage;
+    int       iSelectedImage;
+    int       cChildren;
+    LPARAM    lParam;
+}
+struct TVITEMW
+{
+    UINT      mask;
+    HTREEITEM hItem;
+    UINT      state;
+    UINT      stateMask;
+    LPWSTR    pszText;
+    int       cchTextMax;
+    int       iImage;
+    int       iSelectedImage;
+    int       cChildren;
+    LPARAM    lParam;
+}
+version(Win32SansUnicode)
+{
+    alias TVITEMA TVITEM;
+}
+else
+{
+    alias TVITEMW TVITEM;
+}
+alias TVITEM* LPTVITEM;
+alias TVITEM* LPTV_ITEM;
+alias TVITEM _TV_ITEM;
+alias TVITEM TTVITEM;
+alias TVITEM TV_ITEM;
+alias TVITEM* PTVITEM;
+
+struct TVITEMEXA {
+    UINT      mask;
+    HTREEITEM hItem;
+    UINT      state;
+    UINT      stateMask;
+    LPSTR     pszText;
+    int       cchTextMax;
+    int       iImage;
+    int       iSelectedImage;
+    int       cChildren;
+    LPARAM    lParam;
+    int       iIntegral;
+//#if (_WIN32_IE >= 0x0600)
+//    UINT      uStateEx;
+//    HWND      hwnd;
+//    int       iExpandedImage;
+//#endif
+}
+struct TVITEMEXW {
+    UINT      mask;
+    HTREEITEM hItem;
+    UINT      state;
+    UINT      stateMask;
+    LPWSTR    pszText;
+    int       cchTextMax;
+    int       iImage;
+    int       iSelectedImage;
+    int       cChildren;
+    LPARAM    lParam;
+    int       iIntegral;
+//#if (_WIN32_IE >= 0x0600)
+//    UINT      uStateEx;
+//    HWND      hwnd;
+//    int       iExpandedImage;
+//#endif
+}
+version(Win32SansUnicode)
+{
+    alias TVITEMEXA TVITEMEX;
+}
+else
+{
+    alias TVITEMEXW TVITEMEX;
+}
+alias TVITEMEX * LPTVITEMEX;
+
+struct NMTREEVIEW
+{
+    NMHDR hdr;
+    UINT action;
+    TVITEM itemOld;
+    TVITEM itemNew;
+    POINT ptDrag;
+}
+alias NMTREEVIEW* PNMTREEVIEW;
+alias NMTREEVIEW* LPNMTREEVIEW;
+alias NMTREEVIEW  NM_TREEVIEW;
+alias NM_TREEVIEW* LPNM_TREEVIEW;
+alias NM_TREEVIEW _NM_TREEVIEW;
+alias NM_TREEVIEW TNMTREEVIEW;
+
+struct NM_UPDOWNW
+{
+    NMHDR hdr;
+    int iPos;
+    int iDelta;
+}
+
+alias NM_UPDOWNW _NM_UPDOWN;
+alias NM_UPDOWNW TNMUPDOWN;
+alias NM_UPDOWNW* PNMUPDOWN;
+alias NM_UPDOWNW NMUPDOWN;
+
+struct NONCLIENTMETRICSA {
+    int cbSize;
+    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;
+//if (WINVER >= 0x0600)
+//  int iPaddedBorderWidth;
+//endif 
+
+}
+struct NONCLIENTMETRICSW {
+    int cbSize;
+    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;
+//if (WINVER >= 0x0600)
+//  int iPaddedBorderWidth;
+//endif 
+}
+version(Win32SansUnicode)
+{
+    alias NONCLIENTMETRICSA NONCLIENTMETRICS;
+}
+else
+{
+    alias NONCLIENTMETRICSW NONCLIENTMETRICS;
+}
+alias NONCLIENTMETRICS* LPNONCLIENTMETRICS;
+alias NONCLIENTMETRICS TAGNONCLIENTMETRICS;
+alias NONCLIENTMETRICS TNONCLIENTMETRICS;
+alias NONCLIENTMETRICS* PNONCLIENTMETRICS;
+
+struct SERVICE_ADDRESS
+{
+    DWORD dwAddressType;
+    DWORD dwAddressFlags;
+    DWORD dwAddressLength;
+    DWORD dwPrincipalLength;
+    ubyte* lpAddress;
+    ubyte* lpPrincipal;
+}
+
+alias SERVICE_ADDRESS _SERVICE_ADDRESS;
+alias SERVICE_ADDRESS TSERVICEADDRESS;
+alias SERVICE_ADDRESS* PSERVICEADDRESS;
+
+struct SERVICE_ADDRESSES
+{
+    DWORD dwAddressCount;
+    SERVICE_ADDRESS[1 + 0] Addresses;
+}
+
+alias SERVICE_ADDRESSES* LPSERVICE_ADDRESSES;
+alias SERVICE_ADDRESSES _SERVICE_ADDRESSES;
+alias SERVICE_ADDRESSES TSERVICEADDRESSES;
+alias SERVICE_ADDRESSES* PSERVICEADDRESSES;
+
+align(1) struct __GUID
+{
+
+    union
+    {
+        struct
+        {
+            uint Data1;
+            ushort Data2;
+            ushort Data3;
+            ubyte[1 + 7] Data4;
+        }
+        struct
+        {
+            uint D1;
+            ushort D2;
+            ushort D3;
+            ubyte[1 + 7] D4;
+        }
+    }
+}
+
+alias __GUID* LPGUID;
+alias __GUID _GUID;
+alias __GUID GUID;
+alias __GUID TGUID;
+alias __GUID* PGUID;
+alias __GUID __CLSID;
+alias __CLSID* LPCLSID;
+alias __CLSID TCLSID;
+alias __CLSID* PCLSID;
+
+struct SERVICE_INFO
+{
+    LPGUID lpServiceType;
+    LPTSTR lpServiceName;
+    LPTSTR lpComment;
+    LPTSTR lpLocale;
+    DWORD dwDisplayHint;
+    DWORD dwVersion;
+    DWORD dwTime;
+    LPTSTR lpMachineName;
+    LPSERVICE_ADDRESSES lpServiceAddress;
+    BLOB ServiceSpecificInfo;
+}
+
+alias SERVICE_INFO _SERVICE_INFO;
+alias SERVICE_INFO TSERVICEINFO;
+alias SERVICE_INFO* PSERVICEINFO;
+
+struct NS_SERVICE_INFO
+{
+    DWORD dwNameSpace;
+    SERVICE_INFO ServiceInfo;
+}
+
+alias NS_SERVICE_INFO _NS_SERVICE_INFO;
+alias NS_SERVICE_INFO TNSSERVICEINFO;
+alias NS_SERVICE_INFO* PNSSERVICEINFO;
+
+struct NUMBERFMT
+{
+    UINT NumDigits;
+    UINT LeadingZero;
+    UINT Grouping;
+    LPTSTR lpDecimalSep;
+    LPTSTR lpThousandSep;
+    UINT NegativeOrder;
+}
+
+alias NUMBERFMT _NUMBERFMT;
+alias NUMBERFMT TNUMBERFMT;
+alias NUMBERFMT* PNUMBERFMT;
+
+struct OFSTRUCT
+{
+    ubyte cBytes;
+    ubyte fFixedDisk;
+    ushort nErrCode;
+    ushort Reserved1;
+    ushort Reserved2;
+    char[1 + OFS_MAXPATHNAME-1] szPathName;
+}
+
+alias OFSTRUCT* LPOFSTRUCT;
+alias OFSTRUCT _OFSTRUCT;
+alias OFSTRUCT TOFSTRUCT;
+alias OFSTRUCT* POFSTRUCT;
+
+struct OPENFILENAME
+{
+    DWORD lStructSize;
+    HWND hwndOwner;
+    HINST hInstance;
+    LPCTSTR lpstrFilter;
+    LPTSTR lpstrCustomFilter;
+    DWORD nMaxCustFilter;
+    DWORD nFilterIndex;
+    LPTSTR lpstrFile;
+    DWORD nMaxFile;
+    LPTSTR lpstrFileTitle;
+    DWORD nMaxFileTitle;
+    LPCTSTR lpstrInitialDir;
+    LPCTSTR lpstrTitle;
+    DWORD Flags;
+    ushort nFileOffset;
+    ushort nFileExtension;
+    LPCTSTR lpstrDefExt;
+    DWORD lCustData;
+    LPOFNHOOKPROC lpfnHook;
+    LPCTSTR lpTemplateName;
+//if (_WIN32_WINNT >= 0x0500)
+  void *        pvReserved;
+  DWORD         dwReserved;
+  DWORD         FlagsEx;
+//endif // (_WIN32_WINNT >= 0x0500)
+}
+
+alias OPENFILENAME* LPOPENFILENAME;
+alias OPENFILENAME TOPENFILENAME;
+alias OPENFILENAME* POPENFILENAME;
+alias OPENFILENAME TAGOFN;
+alias OPENFILENAME TOFN;
+alias OPENFILENAME* POFN;
+
+struct OFNOTIFY
+{
+    NMHDR hdr;
+    LPOPENFILENAME lpOFN;
+    LPTSTR pszFile;
+}
+
+alias OFNOTIFY* LPOFNOTIFY;
+alias OFNOTIFY _OFNOTIFY;
+alias OFNOTIFY TOFNOTIFY;
+alias OFNOTIFY* POFNOTIFY;
+
+struct OSVERSIONINFOA
+{
+    DWORD dwOSVersionInfoSize;
+    DWORD dwMajorVersion;
+    DWORD dwMinorVersion;
+    DWORD dwBuildNumber;
+    DWORD dwPlatformId;
+    CHAR szCSDVersion[ 128 ];
+}
+alias OSVERSIONINFOA* POSVERSIONINFOA, LPOSVERSIONINFOA;
+
+struct OSVERSIONINFOW
+{
+    DWORD dwOSVersionInfoSize;
+    DWORD dwMajorVersion;
+    DWORD dwMinorVersion;
+    DWORD dwBuildNumber;
+    DWORD dwPlatformId;
+    WCHAR szCSDVersion[ 128 ];
+}
+alias OSVERSIONINFOW* POSVERSIONINFOW, LPOSVERSIONINFOW;
+version(Win32SansUnicode)
+{
+    alias OSVERSIONINFOA OSVERSIONINFO;
+}
+else
+{
+    alias OSVERSIONINFOW OSVERSIONINFO;
+}
+alias OSVERSIONINFO* LPOSVERSIONINFO;
+alias OSVERSIONINFO _OSVERSIONINFO;
+alias OSVERSIONINFO TOSVERSIONINFO;
+alias OSVERSIONINFO* POSVERSIONINFO;
+
+struct TEXTMETRICA {
+    LONG tmHeight;
+    LONG tmAscent;
+    LONG tmDescent;
+    LONG tmInternalLeading;
+    LONG tmExternalLeading;
+    LONG tmAveCharWidth;
+    LONG tmMaxCharWidth;
+    LONG tmWeight;
+    LONG tmOverhang;
+    LONG tmDigitizedAspectX;
+    LONG tmDigitizedAspectY;
+
+    BYTE tmFirstChar;
+    BYTE tmLastChar;
+    BYTE tmDefaultChar;
+    BYTE tmBreakChar;
+
+    BYTE tmItalic;
+    BYTE tmUnderlined;
+    BYTE tmStruckOut;
+    BYTE tmPitchAndFamily;
+    BYTE tmCharSet;
+}
+struct TEXTMETRICW {
+    LONG tmHeight;
+    LONG tmAscent;
+    LONG tmDescent;
+    LONG tmInternalLeading;
+    LONG tmExternalLeading;
+    LONG tmAveCharWidth;
+    LONG tmMaxCharWidth;
+    LONG tmWeight;
+    LONG tmOverhang;
+    LONG tmDigitizedAspectX;
+    LONG tmDigitizedAspectY;
+
+    WCHAR tmFirstChar;
+    WCHAR tmLastChar;
+    WCHAR tmDefaultChar;
+    WCHAR tmBreakChar;
+
+    BYTE tmItalic;
+    BYTE tmUnderlined;
+    BYTE tmStruckOut;
+    BYTE tmPitchAndFamily;
+    BYTE tmCharSet;
+}
+version(Win32SansUnicode)
+{
+    alias TEXTMETRICA TEXTMETRIC;
+}
+else
+{
+    alias TEXTMETRICW TEXTMETRIC;
+}
+alias TEXTMETRIC* LPTEXTMETRIC;
+alias TEXTMETRIC TAGTEXTMETRIC;
+alias TEXTMETRIC TTEXTMETRIC;
+alias TEXTMETRIC* PTEXTMETRIC;
+
+struct OUTLINETEXTMETRICA
+{
+    UINT       otmSize;
+    TEXTMETRICA otmTextMetrics;
+    BYTE       otmFiller;
+    PANOSE     otmPanoseNumber;
+    UINT       otmfsSelection;
+    UINT       otmfsType;
+    int        otmsCharSlopeRise;
+    int        otmsCharSlopeRun;
+    int        otmItalicAngle;
+    UINT       otmEMSquare;
+    int        otmAscent;
+    int        otmDescent;
+    UINT       otmLineGap;
+    UINT       otmsCapEmHeight;
+    UINT       otmsXHeight;
+    RECT       otmrcFontBox;
+    int        otmMacAscent;
+    int        otmMacDescent;
+    UINT       otmMacLineGap;
+    UINT       otmusMinimumPPEM;
+    POINT      otmptSubscriptSize;
+    POINT      otmptSubscriptOffset;
+    POINT      otmptSuperscriptSize;
+    POINT      otmptSuperscriptOffset;
+    UINT       otmsStrikeoutSize;
+    int        otmsStrikeoutPosition;
+    int        otmsUnderscoreSize;
+    int        otmsUnderscorePosition;
+    PSTR       otmpFamilyName;
+    PSTR       otmpFaceName;
+    PSTR       otmpStyleName;
+    PSTR       otmpFullName;
+}
+struct OUTLINETEXTMETRICW
+{
+    UINT       otmSize;
+    TEXTMETRICW otmTextMetrics;
+    BYTE       otmFiller;
+    PANOSE     otmPanoseNumber;
+    UINT       otmfsSelection;
+    UINT       otmfsType;
+    int        otmsCharSlopeRise;
+    int        otmsCharSlopeRun;
+    int        otmItalicAngle;
+    UINT       otmEMSquare;
+    int        otmAscent;
+    int        otmDescent;
+    UINT       otmLineGap;
+    UINT       otmsCapEmHeight;
+    UINT       otmsXHeight;
+    RECT       otmrcFontBox;
+    int        otmMacAscent;
+    int        otmMacDescent;
+    UINT       otmMacLineGap;
+    UINT       otmusMinimumPPEM;
+    POINT      otmptSubscriptSize;
+    POINT      otmptSubscriptOffset;
+    POINT      otmptSuperscriptSize;
+    POINT      otmptSuperscriptOffset;
+    UINT       otmsStrikeoutSize;
+    int        otmsStrikeoutPosition;
+    int        otmsUnderscoreSize;
+    int        otmsUnderscorePosition;
+    PSTR       otmpFamilyName;
+    PSTR       otmpFaceName;
+    PSTR       otmpStyleName;
+    PSTR       otmpFullName;
+}
+
+alias OUTLINETEXTMETRIC* LPOUTLINETEXTMETRIC;
+alias OUTLINETEXTMETRIC _OUTLINETEXTMETRIC;
+alias OUTLINETEXTMETRIC TOUTLINETEXTMETRIC;
+alias OUTLINETEXTMETRIC* POUTLINETEXTMETRIC;
+version(Win32SansUnicode)
+{
+    alias OUTLINETEXTMETRICA OUTLINETEXTMETRIC;
+    alias OUTLINETEXTMETRICA* LPOUTLINETEXTMETRICA;
+}
+else
+{
+    alias OUTLINETEXTMETRICW OUTLINETEXTMETRIC;
+    alias OUTLINETEXTMETRICW* LPOUTLINETEXTMETRICW;
+}
+
+struct OVERLAPPED
+{
+    DWORD Internal;
+    DWORD InternalHigh;
+    DWORD Offset;
+    DWORD OffsetHigh;
+    HANDLE hEvent;
+}
+
+alias OVERLAPPED* LPOVERLAPPED;
+alias OVERLAPPED _OVERLAPPED;
+alias OVERLAPPED TOVERLAPPED;
+alias OVERLAPPED* POVERLAPPED;
+
+struct TPAGESETUPDLG
+{
+    DWORD lStructSize;
+    HWND hwndOwner;
+    HGLOBAL hDevMode;
+    HGLOBAL hDevNames;
+    DWORD Flags;
+    POINT ptPaperSize;
+    RECT rtMinMargin;
+    RECT rtMargin;
+    HINST hInstance;
+    LPARAM lCustData;
+    LPPAGESETUPHOOK lpfnPageSetupHook;
+    LPPAGEPAINTHOOK lpfnPagePaintHook;
+    LPCTSTR lpPageSetupTemplateName;
+    HGLOBAL hPageSetupTemplate;
+}
+
+alias TPAGESETUPDLG PAGESETUPDLG;
+alias TPAGESETUPDLG* LPPAGESETUPDLG;
+alias TPAGESETUPDLG* PPAGESETUPDLG;
+alias TPAGESETUPDLG TAGPSD;
+alias TPAGESETUPDLG TPSD;
+alias TPAGESETUPDLG* PPSD;
+
+struct PAINTSTRUCT
+{
+    HDC hdc;
+    WINBOOL fErase;
+    RECT rcPaint;
+    WINBOOL fRestore;
+    WINBOOL fIncUpdate;
+    ubyte[1 + 31] rgbReserved;
+}
+
+alias PAINTSTRUCT* LPPAINTSTRUCT;
+alias PAINTSTRUCT TAGPAINTSTRUCT;
+alias PAINTSTRUCT TPAINTSTRUCT;
+alias PAINTSTRUCT* PPAINTSTRUCT;
+
+struct PARAFORMAT
+{
+    UINT cbSize;
+    DWORD dwMask;
+    ushort wNumbering;
+    ushort wReserved;
+    LONG dxStartIndent;
+    LONG dxRightIndent;
+    LONG dxOffset;
+    ushort wAlignment;
+    SHORT cTabCount;
+    LONG[1 + MAX_TAB_STOPS-1] rgxTabs;
+}
+
+alias PARAFORMAT _PARAFORMAT;
+alias PARAFORMAT TPARAFORMAT;
+alias PARAFORMAT* PPARAFORMAT;
+
+struct PERF_COUNTER_BLOCK
+{
+    DWORD ByteLength;
+}
+
+alias PERF_COUNTER_BLOCK _PERF_COUNTER_BLOCK;
+alias PERF_COUNTER_BLOCK TPERFCOUNTERBLOCK;
+alias PERF_COUNTER_BLOCK* PPERFCOUNTERBLOCK;
+
+struct PERF_COUNTER_DEFINITION
+{
+    DWORD ByteLength;
+    DWORD CounterNameTitleIndex;
+    LPWSTR CounterNameTitle;
+    DWORD CounterHelpTitleIndex;
+    LPWSTR CounterHelpTitle;
+    DWORD DefaultScale;
+    DWORD DetailLevel;
+    DWORD CounterType;
+    DWORD CounterSize;
+    DWORD CounterOffset;
+}
+
+alias PERF_COUNTER_DEFINITION _PERF_COUNTER_DEFINITION;
+alias PERF_COUNTER_DEFINITION TPERFCOUNTERDEFINITION;
+alias PERF_COUNTER_DEFINITION* PPERFCOUNTERDEFINITION;
+
+struct PERF_DATA_BLOCK
+{
+    WCHAR[1 + 3] Signature;
+    DWORD LittleEndian;
+    DWORD Version;
+    DWORD Revision;
+    DWORD TotalByteLength;
+    DWORD HeaderLength;
+    DWORD NumObjectTypes;
+    DWORD DefaultObject;
+    SYSTEMTIME SystemTime;
+    LARGE_INTEGER PerfTime;
+    LARGE_INTEGER PerfFreq;
+    LARGE_INTEGER PerfTime100nSec;
+    DWORD SystemNameLength;
+    DWORD SystemNameOffset;
+}
+
+alias PERF_DATA_BLOCK _PERF_DATA_BLOCK;
+alias PERF_DATA_BLOCK TPERFDATABLOCK;
+alias PERF_DATA_BLOCK* PPERFDATABLOCK;
+
+struct PERF_INSTANCE_DEFINITION
+{
+    DWORD ByteLength;
+    DWORD ParentObjectTitleIndex;
+    DWORD ParentObjectInstance;
+    DWORD UniqueID;
+    DWORD NameOffset;
+    DWORD NameLength;
+}
+
+alias PERF_INSTANCE_DEFINITION _PERF_INSTANCE_DEFINITION;
+alias PERF_INSTANCE_DEFINITION TPERFINSTANCEDEFINITION;
+alias PERF_INSTANCE_DEFINITION PPERFINSTANCEDEFINITION;
+
+struct PERF_OBJECT_TYPE
+{
+    DWORD TotalByteLength;
+    DWORD DefinitionLength;
+    DWORD HeaderLength;
+    DWORD ObjectNameTitleIndex;
+    LPWSTR ObjectNameTitle;
+    DWORD ObjectHelpTitleIndex;
+    LPWSTR ObjectHelpTitle;
+    DWORD DetailLevel;
+    DWORD NumCounters;
+    DWORD DefaultCounter;
+    DWORD NumInstances;
+    DWORD CodePage;
+    LARGE_INTEGER PerfTime;
+    LARGE_INTEGER PerfFreq;
+}
+
+alias PERF_OBJECT_TYPE _PERF_OBJECT_TYPE;
+alias PERF_OBJECT_TYPE TPERFOBJECTTYPE;
+alias PERF_OBJECT_TYPE* PPERFOBJECTTYPE;
+
+struct POLYTEXT
+{
+    int x;
+    int y;
+    UINT n;
+    LPCTSTR lpstr;
+    UINT uiFlags;
+    RECT rcl;
+    int* pdx;
+}
+
+alias POLYTEXT _POLYTEXT;
+alias POLYTEXT TPOLYTEXT;
+alias POLYTEXT* PPOLYTEXT;
+
+struct PORT_INFO_1
+{
+    LPTSTR pName;
+}
+
+alias PORT_INFO_1 _PORT_INFO_1;
+alias PORT_INFO_1 TPORTINFO1;
+alias PORT_INFO_1* PPORTINFO1;
+
+struct PORT_INFO_2
+{
+    LPSTR pPortName;
+    LPSTR pMonitorName;
+    LPSTR pDescription;
+    DWORD fPortType;
+    DWORD Reserved;
+}
+
+alias PORT_INFO_2 _PORT_INFO_2;
+alias PORT_INFO_2 TPORTINFO2;
+alias PORT_INFO_2* PPORTINFO2;
+
+struct PREVENT_MEDIA_REMOVAL
+{
+    ubyte PreventMediaRemoval;
+}
+
+alias PREVENT_MEDIA_REMOVAL _PREVENT_MEDIA_REMOVAL;
+alias PREVENT_MEDIA_REMOVAL TPREVENTMEDIAREMOVAL;
+alias PREVENT_MEDIA_REMOVAL* PPREVENTMEDIAREMOVAL;
+
+align(2) struct PRINTDLGA {  // pd
+    DWORD     lStructSize;
+    HWND      hwndOwner;
+    HANDLE    hDevMode;
+    HANDLE    hDevNames;
+    HDC       hDC;
+    DWORD     Flags;
+    WORD      nFromPage;
+    WORD      nToPage;
+    WORD      nMinPage;
+    WORD      nMaxPage;
+    WORD      nCopies;
+    HINSTANCE hInstance;
+    DWORD     lCustData;
+    LPPRINTHOOKPROC lpfnPrintHook;
+    LPSETUPHOOKPROC lpfnSetupHook;
+    LPCSTR    lpPrintTemplateName;
+    LPCSTR    lpSetupTemplateName;
+    HANDLE    hPrintTemplate;
+    HANDLE    hSetupTemplate;
+}
+alias PRINTDLGA* PPRINTDLGA;
+alias PRINTDLGA* LPPRINTDLGA;
+align(2) struct PRINTDLGW {  // pd
+    DWORD     lStructSize;
+    HWND      hwndOwner;
+    HANDLE    hDevMode;
+    HANDLE    hDevNames;
+    HDC       hDC;
+    DWORD     Flags;
+    WORD      nFromPage;
+    WORD      nToPage;
+    WORD      nMinPage;
+    WORD      nMaxPage;
+    WORD      nCopies;
+    HINSTANCE hInstance;
+    DWORD     lCustData;
+    LPPRINTHOOKPROC lpfnPrintHook;
+    LPSETUPHOOKPROC lpfnSetupHook;
+    LPCWSTR    lpPrintTemplateName;
+    LPCWSTR    lpSetupTemplateName;
+    HANDLE    hPrintTemplate;
+    HANDLE    hSetupTemplate;
+}
+alias PRINTDLGW* PPRINTDLGW;
+alias PRINTDLGW* LPPRINTDLGW;
+
+version(Win32SansUnicode){
+    alias PRINTDLGA PRINTDLG;
+}else{
+    alias PRINTDLGW PRINTDLG;
+}
+
+
+alias PRINTDLG* LPPRINTDLG;
+alias PRINTDLG* PPRINTDLG;
+alias PRINTDLG TAGPD;
+alias PRINTDLG TPD;
+alias PRINTDLG* PPD;
+
+struct PRINTER_DEFAULTS
+{
+    LPTSTR pDatatype;
+    LPDEVMODE pDevMode;
+    ACCESS_MASK DesiredAccess;
+}
+
+alias PRINTER_DEFAULTS _PRINTER_DEFAULTS;
+alias PRINTER_DEFAULTS TPRINTERDEFAULTS;
+alias PRINTER_DEFAULTS* PPRINTERDEFAULTS;
+
+struct PRINTER_INFO_1
+{
+    DWORD Flags;
+    LPTSTR pDescription;
+    LPTSTR pName;
+    LPTSTR pComment;
+}
+
+alias PRINTER_INFO_1* LPPRINTER_INFO_1;
+alias PRINTER_INFO_1* PPRINTER_INFO_1;
+alias PRINTER_INFO_1 _PRINTER_INFO_1;
+alias PRINTER_INFO_1 TPRINTERINFO1;
+alias PRINTER_INFO_1* PPRINTERINFO1;
+
+struct PRINTER_INFO_2
+{
+    LPTSTR pServerName;
+    LPTSTR pPrinterName;
+    LPTSTR pShareName;
+    LPTSTR pPortName;
+    LPTSTR pDriverName;
+    LPTSTR pComment;
+    LPTSTR pLocation;
+    LPDEVMODE pDevMode;
+    LPTSTR pSepFile;
+    LPTSTR pPrintProcessor;
+    LPTSTR pDatatype;
+    LPTSTR pParameters;
+    PSECURITY_DESCRIPTOR pSecurityDescriptor;
+    DWORD Attributes;
+    DWORD Priority;
+    DWORD DefaultPriority;
+    DWORD StartTime;
+    DWORD UntilTime;
+    DWORD Status;
+    DWORD cJobs;
+    DWORD AveragePPM;
+}
+
+alias PRINTER_INFO_2 _PRINTER_INFO_2;
+alias PRINTER_INFO_2 TPRINTERINFO2;
+alias PRINTER_INFO_2* PPRINTERINFO2;
+
+struct PRINTER_INFO_3
+{
+    PSECURITY_DESCRIPTOR pSecurityDescriptor;
+}
+
+alias PRINTER_INFO_3 _PRINTER_INFO_3;
+alias PRINTER_INFO_3 TPRINTERINFO3;
+alias PRINTER_INFO_3* PPRINTERINFO3;
+
+struct PRINTER_INFO_4
+{
+    LPTSTR pPrinterName;
+    LPTSTR pServerName;
+    DWORD Attributes;
+}
+
+alias PRINTER_INFO_4 _PRINTER_INFO_4;
+alias PRINTER_INFO_4 TPRINTERINFO4;
+alias PRINTER_INFO_4* PPRINTERINFO4;
+
+struct PRINTER_INFO_5
+{
+    LPTSTR pPrinterName;
+    LPTSTR pPortName;
+    DWORD Attributes;
+    DWORD DeviceNotSelectedTimeout;
+    DWORD TransmissionRetryTimeout;
+}
+
+alias PRINTER_INFO_5 _PRINTER_INFO_5;
+alias PRINTER_INFO_5 TPRINTERINFO5;
+alias PRINTER_INFO_5* PPRINTERINFO5;
+
+struct PRINTER_NOTIFY_INFO_DATA
+{
+    ushort _Type;
+    ushort Field;
+    DWORD Reserved;
+    DWORD Id;
+
+    union
+    {
+        struct
+        {
+            DWORD[1 + 1] adwData;
+        }
+        struct
+        {
+            DWORD cbBuf;
+            LPVOID pBuf;
+        }
+    }
+}
+
+alias PRINTER_NOTIFY_INFO_DATA _PRINTER_NOTIFY_INFO_DATA;
+alias PRINTER_NOTIFY_INFO_DATA TPRINTERNOTIFYINFODATA;
+alias PRINTER_NOTIFY_INFO_DATA* PPRINTERNOTIFYINFODATA;
+
+struct PRINTER_NOTIFY_INFO
+{
+    DWORD Version;
+    DWORD Flags;
+    DWORD Count;
+    PRINTER_NOTIFY_INFO_DATA[1 + 0] aData;
+}
+
+alias PRINTER_NOTIFY_INFO _PRINTER_NOTIFY_INFO;
+alias PRINTER_NOTIFY_INFO TPRINTERNOTIFYINFO;
+alias PRINTER_NOTIFY_INFO* PPRINTERNOTIFYINFO;
+
+struct PRINTER_NOTIFY_OPTIONS_TYPE
+{
+    ushort _Type;
+    ushort Reserved0;
+    DWORD Reserved1;
+    DWORD Reserved2;
+    DWORD Count;
+    PWORD pFields;
+}
+
+alias PRINTER_NOTIFY_OPTIONS_TYPE* PPRINTER_NOTIFY_OPTIONS_TYPE;
+alias PRINTER_NOTIFY_OPTIONS_TYPE _PRINTER_NOTIFY_OPTIONS_TYPE;
+alias PRINTER_NOTIFY_OPTIONS_TYPE TPRINTERNOTIFYOPTIONSTYPE;
+alias PRINTER_NOTIFY_OPTIONS_TYPE* PPRINTERNOTIFYOPTIONSTYPE;
+
+struct PRINTER_NOTIFY_OPTIONS
+{
+    DWORD Version;
+    DWORD Flags;
+    DWORD Count;
+    PPRINTER_NOTIFY_OPTIONS_TYPE pTypes;
+}
+
+alias PRINTER_NOTIFY_OPTIONS _PRINTER_NOTIFY_OPTIONS;
+alias PRINTER_NOTIFY_OPTIONS TPRINTERNOTIFYOPTIONS;
+alias PRINTER_NOTIFY_OPTIONS* PPRINTERNOTIFYOPTIONS;
+
+struct PRINTPROCESSOR_INFO_1
+{
+    LPTSTR pName;
+}
+
+alias PRINTPROCESSOR_INFO_1 _PRINTPROCESSOR_INFO_1;
+alias PRINTPROCESSOR_INFO_1 TPRINTPROCESSORINFO1;
+alias PRINTPROCESSOR_INFO_1* PPRINTPROCESSORINFO1;
+
+struct PRIVILEGE_SET
+{
+    DWORD PrivilegeCount;
+    DWORD Control;
+    LUID_AND_ATTRIBUTES[1 + ANYSIZE_ARRAY-1] Privilege;
+}
+
+alias PRIVILEGE_SET* LPPRIVILEGE_SET;
+alias PRIVILEGE_SET* PPRIVILEGE_SET;
+alias PRIVILEGE_SET _PRIVILEGE_SET;
+alias PRIVILEGE_SET TPRIVILEGESET;
+alias PRIVILEGE_SET* PPRIVILEGESET;
+
+struct PROCESS_HEAPENTRY
+{
+    PVOID lpData;
+    DWORD cbData;
+    ubyte cbOverhead;
+    ubyte iRegionIndex;
+    ushort wFlags;
+    DWORD dwCommittedSize;
+    DWORD dwUnCommittedSize;
+    LPVOID lpFirstBlock;
+    LPVOID lpLastBlock;
+    HANDLE hMem;
+}
+
+alias PROCESS_HEAPENTRY* LPPROCESS_HEAP_ENTRY;
+alias PROCESS_HEAPENTRY _PROCESS_HEAP_ENTRY;
+alias PROCESS_HEAPENTRY TPROCESSHEAPENTRY;
+alias PROCESS_HEAPENTRY* PPROCESSHEAPENTRY;
+
+struct PROCESS_INFORMATION
+{
+    HANDLE hProcess;
+    HANDLE hThread;
+    DWORD dwProcessId;
+    DWORD dwThreadId;
+}
+
+alias PROCESS_INFORMATION* LPPROCESS_INFORMATION;
+alias PROCESS_INFORMATION _PROCESS_INFORMATION;
+alias PROCESS_INFORMATION TPROCESSINFORMATION;
+alias PROCESS_INFORMATION* PPROCESSINFORMATION;
+extern(Windows){alias UINT (*LPFNPSPCALLBACK)(HWND, UINT, LPVOID);}
+alias LPFNPSPCALLBACK TFNPSPCALLBACK;
+
+
+struct PROPSHEETPAGE
+{
+    DWORD dwSize;
+    DWORD dwFlags;
+    HINST hInstance;
+    union {
+        LPCTSTR pszTemplate;
+        LPCDLGTEMPLATE pResource;
+    }
+    union {
+        HICON hIcon;
+        LPCTSTR pszIcon;
+    }
+    LPCTSTR pszTitle;
+    DLGPROC pfnDlgProc;
+    LPARAM lParam;
+    LPFNPSPCALLBACK pfnCallback;
+    UINT* pcRefParent;
+//if (_WIN32_IE >= 0x0500)
+    LPCTSTR pszHeaderTitle;
+    LPCTSTR pszHeaderSubTitle;
+//endif
+//if (_WIN32_WINNT >= 0x0501)
+    HANDLE hActCtx;
+//endif
+}
+
+alias PROPSHEETPAGE* LPPROPSHEETPAGE;
+alias PROPSHEETPAGE* LPCPROPSHEETPAGE;
+alias PROPSHEETPAGE _PROPSHEETPAGE;
+alias PROPSHEETPAGE TPROPSHEETPAGE;
+alias PROPSHEETPAGE* PPROPSHEETPAGE;
+
+struct EMPTYRECORD
+{
+}
+
+alias EMPTYRECORD* HPROPSHEETPAGE;
+
+struct PROPSHEETHEADER_U1
+{
+
+    union
+    {
+        struct
+        {
+            HICON hIcon;
+        }
+        struct
+        {
+            LPCTSTR pszIcon;
+        }
+    }
+}
+
+
+struct PROPSHEETHEADER_U2
+{
+
+    union
+    {
+        struct
+        {
+            UINT nStartPage;
+        }
+        struct
+        {
+            LPCTSTR pStartPage;
+        }
+    }
+}
+
+
+struct PROPSHEETHEADER_U3
+{
+
+    union
+    {
+        struct
+        {
+            LPCPROPSHEETPAGE ppsp;
+        }
+        struct
+        {
+            HPROPSHEETPAGE* phpage;
+        }
+    }
+}
+
+
+struct PROPSHEETHEADER
+{
+    DWORD dwSize;
+    DWORD dwFlags;
+    HWND hwndParent;
+    HINST hInstance;
+    PROPSHEETHEADER_U1 u1;
+    LPCTSTR pszCaption;
+    UINT nPages;
+    PROPSHEETHEADER_U2 u2;
+    PROPSHEETHEADER_U3 u3;
+    PFNPROPSHEETCALLBACK pfnCallback;
+//if (_WIN32_IE >= 0x0400)
+    union {
+        HBITMAP hbmWatermark;
+        LPCTSTR pszbmWatermark;
+    }
+    HPALETTE hplWatermark;
+    union {
+        HBITMAP hbmHeader; 
+        LPCSTR pszbmHeader;
+    }
+//endif
+}
+
+alias PROPSHEETHEADER* LPPROPSHEETHEADER;
+alias PROPSHEETHEADER* LPCPROPSHEETHEADER;
+alias PROPSHEETHEADER _PROPSHEETHEADER;
+alias PROPSHEETHEADER TPROPSHEETHEADER;
+alias PROPSHEETHEADER* PPROPSHEETHEADER;
+extern(Windows){
+alias WINBOOL (*LPFNADDPROPSHEETPAGE)(HPROPSHEETPAGE, LPARAM);
+alias WINBOOL (*LPFNADDPROPSHEETPAGES)(LPVOID, LPFNADDPROPSHEETPAGE, LPARAM);
+}
+alias LPFNADDPROPSHEETPAGE TFNADDPROPSHEETPAGE;
+alias LPFNADDPROPSHEETPAGES TFNADDPROPSHEETPAGES;
+
+struct PROTOCOL_INFO
+{
+    DWORD dwServiceFlags;
+    INT iAddressFamily;
+    INT iMaxSockAddr;
+    INT iMinSockAddr;
+    INT iSocketType;
+    INT iProtocol;
+    DWORD dwMessageSize;
+    LPTSTR lpProtocol;
+}
+
+alias PROTOCOL_INFO _PROTOCOL_INFO;
+alias PROTOCOL_INFO TPROTOCOLINFO;
+alias PROTOCOL_INFO* PPROTOCOLINFO;
+
+struct PROVIDOR_INFO_1
+{
+    LPTSTR pName;
+    LPTSTR pEnvironment;
+    LPTSTR pDLLName;
+}
+
+alias PROVIDOR_INFO_1 _PROVIDOR_INFO_1;
+alias PROVIDOR_INFO_1 TPROVIDORINFO1;
+alias PROVIDOR_INFO_1* PPROVIDORINFO1;
+
+struct PSHNOTIFY
+{
+    NMHDR hdr;
+    LPARAM lParam;
+}
+
+alias PSHNOTIFY* LPPSHNOTIFY;
+alias PSHNOTIFY _PSHNOTIFY;
+alias PSHNOTIFY TPSHNOTIFY;
+alias PSHNOTIFY* PPSHNOTIFY;
+
+struct PUNCTUATION
+{
+    UINT iSize;
+    LPSTR szPunctuation;
+}
+
+alias PUNCTUATION _PUNCTUATION;
+alias PUNCTUATION TPUNCTUATION;
+alias PUNCTUATION* PPUNCTUATION;
+
+struct QUERY_SERVICE_CONFIG
+{
+    DWORD dwServiceType;
+    DWORD dwStartType;
+    DWORD dwErrorControl;
+    LPTSTR lpBinaryPathName;
+    LPTSTR lpLoadOrderGroup;
+    DWORD dwTagId;
+    LPTSTR lpDependencies;
+    LPTSTR lpServiceStartName;
+    LPTSTR lpDisplayName;
+}
+
+alias QUERY_SERVICE_CONFIG* LPQUERY_SERVICE_CONFIG;
+alias QUERY_SERVICE_CONFIG _QUERY_SERVICE_CONFIG;
+alias QUERY_SERVICE_CONFIG TQUERYSERVICECONFIG;
+alias QUERY_SERVICE_CONFIG* PQUERYSERVICECONFIG;
+
+struct QUERY_SERVICE_LOCK_STATUS
+{
+    DWORD fIsLocked;
+    LPTSTR lpLockOwner;
+    DWORD dwLockDuration;
+}
+
+alias QUERY_SERVICE_LOCK_STATUS* LPQUERY_SERVICE_LOCK_STATUS;
+alias QUERY_SERVICE_LOCK_STATUS _QUERY_SERVICE_LOCK_STATUS;
+alias QUERY_SERVICE_LOCK_STATUS TQUERYSERVICELOCKSTATUS;
+alias QUERY_SERVICE_LOCK_STATUS* PQUERYSERVICELOCKSTATUS;
+
+struct RASAMB
+{
+    DWORD dwSize;
+    DWORD dwError;
+    TCHAR[1 + NETBIOS_NAME_LEN+1-1] szNetBiosError;
+    ubyte bLana;
+}
+
+alias RASAMB _RASAMB;
+alias RASAMB TRASAMB;
+alias RASAMB* PRASAMB;
+
+struct RASCONN
+{
+    DWORD dwSize;
+    HRASCONN hrasconn;
+    TCHAR[1 + RAS_MaxEntryName+1-1] szEntryName;
+    char[1 + RAS_MaxDeviceType+1-1] szDeviceType;
+    char[1 + RAS_MaxDeviceName+1-1] szDeviceName;
+}
+
+alias RASCONN _RASCONN;
+alias RASCONN TRASCONN;
+alias RASCONN* PRASCONN;
+
+struct RASCONNSTATUS
+{
+    DWORD dwSize;
+    RASCONNSTATE rasconnstate;
+    DWORD dwError;
+    TCHAR[1 + RAS_MaxDeviceType+1-1] szDeviceType;
+    TCHAR[1 + RAS_MaxDeviceName+1-1] szDeviceName;
+}
+
+alias RASCONNSTATUS _RASCONNSTATUS;
+alias RASCONNSTATUS TRASCONNSTATUS;
+alias RASCONNSTATUS* PRASCONNSTATUS;
+
+struct RASDIALEXTENSIONS
+{
+    DWORD dwSize;
+    DWORD dwfOptions;
+    HWND hwndParent;
+    DWORD reserved;
+}
+
+alias RASDIALEXTENSIONS _RASDIALEXTENSIONS;
+alias RASDIALEXTENSIONS TRASDIALEXTENSIONS;
+alias RASDIALEXTENSIONS* PRASDIALEXTENSIONS;
+
+struct RASDIALPARAMS
+{
+    DWORD dwSize;
+    TCHAR[1 + RAS_MaxEntryName+1-1] szEntryName;
+    TCHAR[1 + RAS_MaxPhoneNumber+1-1] szPhoneNumber;
+    TCHAR[1 + (RAS_MaxCallbackNumber+1)-1] szCallbackNumber;
+    TCHAR[1 + (UNLEN+1)-1] szUserName;
+    TCHAR[1 + (PWLEN+1)-1] szPassword;
+    TCHAR[1 + (DNLEN+1)-1] szDomain;
+}
+
+alias RASDIALPARAMS _RASDIALPARAMS;
+alias RASDIALPARAMS TRASDIALPARAMS;
+alias RASDIALPARAMS* PRASDIALPARAMS;
+
+struct RASENTRYNAME
+{
+    DWORD dwSize;
+    TCHAR[1 + (RAS_MaxEntryName+1)-1] szEntryName;
+}
+
+alias RASENTRYNAME _RASENTRYNAME;
+alias RASENTRYNAME TRASENTRYNAME;
+alias RASENTRYNAME* PRASENTRYNAME;
+
+struct RASPPPIP
+{
+    DWORD dwSize;
+    DWORD dwError;
+    TCHAR[RAS_MaxIpAddress+1] szIpAddress;
+}
+
+alias RASPPPIP _RASPPPIP;
+alias RASPPPIP TRASPPPIP;
+alias RASPPPIP* PRASPPPIP;
+
+struct RASPPPIPX
+{
+    DWORD dwSize;
+    DWORD dwError;
+    TCHAR[1 + (RAS_MaxIpxAddress+1)-1] szIpxAddress;
+}
+
+alias RASPPPIPX _RASPPPIPX;
+alias RASPPPIPX TRASPPPIPX;
+alias RASPPPIPX* PRASPPPIPX;
+
+struct RASPPPNBF
+{
+    DWORD dwSize;
+    DWORD dwError;
+    DWORD dwNetBiosError;
+    TCHAR[1 + (NETBIOS_NAME_LEN+1)-1] szNetBiosError;
+    TCHAR[1 + (NETBIOS_NAME_LEN+1)-1] szWorkstationName;
+    ubyte bLana;
+}
+
+alias RASPPPNBF _RASPPPNBF;
+alias RASPPPNBF TRASPPPNBF;
+alias RASPPPNBF* PRASPPPNBF;
+
+struct RASTERIZER_STATUS
+{
+    short nSize;
+    short wFlags;
+    short nLanguageID;
+}
+
+alias RASTERIZER_STATUS* LPRASTERIZER_STATUS;
+alias RASTERIZER_STATUS _RASTERIZER_STATUS;
+alias RASTERIZER_STATUS TRASTERIZERSTATUS;
+alias RASTERIZER_STATUS* PRASTERIZERSTATUS;
+
+struct REASSIGN_BLOCKS
+{
+    ushort Reserved;
+    ushort Count;
+    DWORD[1 + 0] BlockNumber;
+}
+
+alias REASSIGN_BLOCKS _REASSIGN_BLOCKS;
+alias REASSIGN_BLOCKS TREASSIGNBLOCKS;
+alias REASSIGN_BLOCKS* PREASSIGNBLOCKS;
+
+struct REMOTE_NAME_INFO
+{
+    LPTSTR lpUniversalName;
+    LPTSTR lpConnectionName;
+    LPTSTR lpRemainingPath;
+}
+
+alias REMOTE_NAME_INFO _REMOTE_NAME_INFO;
+alias REMOTE_NAME_INFO TREMOTENAMEINFO;
+alias REMOTE_NAME_INFO* PREMOTENAMEINFO;
+
+struct REPASTESPECIAL
+{
+    DWORD dwAspect;
+    DWORD dwParam;
+}
+
+alias REPASTESPECIAL _REPASTESPECIAL;
+alias REPASTESPECIAL TREPASTESPECIAL;
+alias REPASTESPECIAL* PREPASTESPECIAL;
+
+struct REQRESIZE
+{
+    NMHDR nmhdr;
+    RECT rc;
+}
+
+alias REQRESIZE _REQRESIZE;
+alias REQRESIZE TREQRESIZE;
+alias REQRESIZE* PREQRESIZE;
+
+struct RGNDATAHEADER
+{
+    DWORD dwSize;
+    DWORD iType;
+    DWORD nCount;
+    DWORD nRgnSize;
+    RECT rcBound;
+}
+
+alias RGNDATAHEADER _RGNDATAHEADER;
+alias RGNDATAHEADER TRGNDATAHEADER;
+alias RGNDATAHEADER* PRGNDATAHEADER;
+alias RGNDATAHEADER* LPRGNDATAHEADER;
+
+struct RGNDATA
+{
+    RGNDATAHEADER rdh;
+    char[1 + 0] Buffer;
+}
+
+alias RGNDATA* LPRGNDATA;
+alias RGNDATA _RGNDATA;
+alias RGNDATA TRGNDATA;
+alias RGNDATA* PRGNDATA;
+
+struct SCROLLINFO
+{
+    UINT cbSize;
+    UINT fMask;
+    int nMin;
+    int nMax;
+    UINT nPage;
+    int nPos;
+    int nTrackPos;
+}
+
+alias SCROLLINFO* LPSCROLLINFO;
+alias SCROLLINFO* LPCSCROLLINFO;
+alias SCROLLINFO TAGSCROLLINFO;
+alias SCROLLINFO TSCROLLINFO;
+alias SCROLLINFO* PSCROLLINFO;
+
+struct SECURITY_ATTRIBUTES
+{
+    DWORD nLength;
+    LPVOID lpSecurityDescriptor;
+    WINBOOL bInheritHandle;
+}
+
+alias SECURITY_ATTRIBUTES* LPSECURITY_ATTRIBUTES;
+alias SECURITY_ATTRIBUTES _SECURITY_ATTRIBUTES;
+alias SECURITY_ATTRIBUTES TSECURITYATTRIBUTES;
+alias SECURITY_ATTRIBUTES* PSECURITYATTRIBUTES;
+alias DWORD SECURITY_INFORMATION;
+alias SECURITY_INFORMATION* PSECURITY_INFORMATION;
+alias SECURITY_INFORMATION TSECURITYINFORMATION;
+alias SECURITY_INFORMATION* PSECURITYINFORMATION;
+
+struct SELCHANGE
+{
+    NMHDR nmhdr;
+    CHARRANGE chrg;
+    ushort seltyp;
+}
+
+alias SELCHANGE _SELCHANGE;
+alias SELCHANGE TSELCHANGE;
+alias SELCHANGE* PSELCHANGE;
+
+struct SERIALKEYS
+{
+    DWORD cbSize;
+    DWORD dwFlags;
+    LPSTR lpszActivePort;
+    LPSTR lpszPort;
+    DWORD iBaudRate;
+    DWORD iPortState;
+    UINT  iActive;
+}
+
+alias SERIALKEYS* LPSERIALKEYS;
+alias SERIALKEYS TAGSERIALKEYS;
+alias SERIALKEYS TSERIALKEYS;
+alias SERIALKEYS* PSERIALKEYS;
+
+struct SERVICE_TABLE_ENTRY
+{
+    LPTSTR lpServiceName;
+    LPSERVICE_MAIN_FUNCTION lpServiceProc;
+}
+
+alias SERVICE_TABLE_ENTRY* LPSERVICE_TABLE_ENTRY;
+alias SERVICE_TABLE_ENTRY _SERVICE_TABLE_ENTRY;
+alias SERVICE_TABLE_ENTRY TSERVICETABLEENTRY;
+alias SERVICE_TABLE_ENTRY* PSERVICETABLEENTRY;
+
+struct SERVICE_TYPE_VALUE_ABS
+{
+    DWORD dwNameSpace;
+    DWORD dwValueType;
+    DWORD dwValueSize;
+    LPTSTR lpValueName;
+    PVOID lpValue;
+}
+
+alias SERVICE_TYPE_VALUE_ABS _SERVICE_TYPE_VALUE_ABS;
+alias SERVICE_TYPE_VALUE_ABS TSERVICETYPEVALUEABS;
+alias SERVICE_TYPE_VALUE_ABS* PSERVICETYPEVALUEABS;
+
+struct SERVICE_TYPE_INFO_ABS
+{
+    LPTSTR lpTypeName;
+    DWORD dwValueCount;
+    SERVICE_TYPE_VALUE_ABS[1 + 0] Values;
+}
+
+alias SERVICE_TYPE_INFO_ABS _SERVICE_TYPE_INFO_ABS;
+alias SERVICE_TYPE_INFO_ABS TSERVICETYPEINFOABS;
+alias SERVICE_TYPE_INFO_ABS* PSERVICETYPEINFOABS;
+
+struct SESSION_BUFFER
+{
+    UCHAR lsn;
+    UCHAR state;
+    UCHAR[1 + NCBNAMSZ-1] local_name;
+    UCHAR[1 + NCBNAMSZ-1] remote_name;
+    UCHAR rcvs_outstanding;
+    UCHAR sends_outstanding;
+}
+
+alias SESSION_BUFFER _SESSION_BUFFER;
+alias SESSION_BUFFER TSESSIONBUFFER;
+alias SESSION_BUFFER* PSESSIONBUFFER;
+
+struct SESSION_HEADER
+{
+    UCHAR sess_name;
+    UCHAR num_sess;
+    UCHAR rcv_dg_outstanding;
+    UCHAR rcv_any_outstanding;
+}
+
+alias SESSION_HEADER _SESSION_HEADER;
+alias SESSION_HEADER TSESSIONHEADER;
+alias SESSION_HEADER* PSESSIONHEADER;
+
+struct SET_PARTITION_INFORMATION
+{
+    ubyte PartitionType;
+}
+
+alias SET_PARTITION_INFORMATION _SET_PARTITION_INFORMATION;
+alias SET_PARTITION_INFORMATION TSETPARTITIONINFORMATION;
+alias SET_PARTITION_INFORMATION* PSETPARTITIONINFORMATION;
+alias int SHCONTF;
+enum { SHCONTF_FOLDERS = 32, SHCONTF_NONFOLDERS = 64, SHCONTF_INCLUDEHIDDEN = 128,  };
+alias SHCONTF TAGSHCONTF;
+alias SHCONTF TSHCONTF;
+
+struct SHFILEINFOA
+{
+    HICON hIcon;
+    int iIcon;
+    DWORD dwAttributes;
+    CHAR[MAX_PATH] szDisplayName;
+    CHAR[80] szTypeName;
+}
+struct SHFILEINFOW
+{
+    HICON hIcon;
+    int iIcon;
+    DWORD dwAttributes;
+    WCHAR[MAX_PATH] szDisplayName;
+    WCHAR[80] szTypeName;
+}
+version(Win32SansUnicode)
+{
+    alias SHFILEINFOA SHFILEINFO;
+}
+else
+{
+    alias SHFILEINFOW SHFILEINFO;
+}
+
+alias SHFILEINFO _SHFILEINFO;
+alias SHFILEINFO TSHFILEINFO;
+alias SHFILEINFO* PSHFILEINFO;
+
+alias ushort FILEOP_FLAGS;
+alias FILEOP_FLAGS TFILEOPFLAGS;
+alias FILEOP_FLAGS* PFILEOPFLAGS;
+
+align(2) struct SHFILEOPSTRUCT
+{
+    HWND hwnd;
+    UINT wFunc;
+    LPCSTR pFrom;
+    LPCSTR pTo;
+    FILEOP_FLAGS fFlags;
+    WINBOOL fAnyOperationsAborted;
+    LPVOID hNameMappings;
+    LPCSTR lpszProgressTitle;
+}
+
+alias SHFILEOPSTRUCT* LPSHFILEOPSTRUCT;
+alias SHFILEOPSTRUCT _SHFILEOPSTRUCT;
+alias SHFILEOPSTRUCT TSHFILEOPSTRUCT;
+alias SHFILEOPSTRUCT* PSHFILEOPSTRUCT;
+alias int SHGNO;
+enum { SHGDN_NORMAL = 0, SHGDN_INFOLDER = 1, SHGDN_FORPARSING = 0x8000,  };
+alias SHGNO TAGSHGDN;
+alias SHGNO TSHGDN;
+
+struct SHNAMEMAPPING
+{
+    LPSTR pszOldPath;
+    LPSTR pszNewPath;
+    int cchOldPath;
+    int cchNewPath;
+}
+
+alias SHNAMEMAPPING* LPSHNAMEMAPPING;
+alias SHNAMEMAPPING _SHNAMEMAPPING;
+alias SHNAMEMAPPING TSHNAMEMAPPING;
+alias SHNAMEMAPPING* PSHNAMEMAPPING;
+
+struct SID_AND_ATTRIBUTES
+{
+    PSID Sid;
+    DWORD Attributes;
+}
+
+alias SID_AND_ATTRIBUTES _SID_AND_ATTRIBUTES;
+alias SID_AND_ATTRIBUTES TSIDANDATTRIBUTES;
+alias SID_AND_ATTRIBUTES* PSIDANDATTRIBUTES;
+alias SID_AND_ATTRIBUTES[1 + ANYSIZE_ARRAY-1] SID_AND_ATTRIBUTES_ARRAY;
+alias SID_AND_ATTRIBUTES_ARRAY* PSID_AND_ATTRIBUTES_ARRAY;
+alias SID_AND_ATTRIBUTES_ARRAY TSIDANDATTRIBUTESARRAY;
+alias SID_AND_ATTRIBUTES_ARRAY* PSIDANDATTRIBUTESARRAY;
+
+struct SINGLE_LIST_ENTRY
+{
+    _SINGLE_LIST_ENTRY* Next;
+}
+
+alias SINGLE_LIST_ENTRY _SINGLE_LIST_ENTRY;
+alias SINGLE_LIST_ENTRY TSINGLELISTENTRY;
+alias SINGLE_LIST_ENTRY* PSINGLELISTENTRY;
+
+struct SOUNDSENTRY
+{
+    UINT cbSize;
+    DWORD dwFlags;
+    DWORD iFSTextEffect;
+    DWORD iFSTextEffectMSec;
+    DWORD iFSTextEffectColorBits;
+    DWORD iFSGrafEffect;
+    DWORD iFSGrafEffectMSec;
+    DWORD iFSGrafEffectColor;
+    DWORD iWindowsEffect;
+    DWORD iWindowsEffectMSec;
+    LPTSTR lpszWindowsEffectDLL;
+    DWORD iWindowsEffectOrdinal;
+}
+
+alias SOUNDSENTRY* LPSOUNDSENTRY;
+alias SOUNDSENTRY TAGSOUNDSENTRY;
+alias SOUNDSENTRY TSOUNDSENTRY;
+alias SOUNDSENTRY* PSOUNDSENTRY;
+
+struct STARTUPINFO
+{
+    DWORD cb;
+    LPTSTR lpReserved;
+    LPTSTR lpDesktop;
+    LPTSTR lpTitle;
+    DWORD dwX;
+    DWORD dwY;
+    DWORD dwXSize;
+    DWORD dwYSize;
+    DWORD dwXCountChars;
+    DWORD dwYCountChars;
+    DWORD dwFillAttribute;
+    DWORD dwFlags;
+    ushort wShowWindow;
+    ushort cbReserved2;
+    LPBYTE lpReserved2;
+    HANDLE hStdInput;
+    HANDLE hStdOutput;
+    HANDLE hStdError;
+}
+
+alias STARTUPINFO* LPSTARTUPINFO;
+alias STARTUPINFO _STARTUPINFO;
+alias STARTUPINFO TSTARTUPINFO;
+alias STARTUPINFO* PSTARTUPINFO;
+
+struct STICKYKEYS
+{
+    DWORD cbSize;
+    DWORD dwFlags;
+}
+
+alias STICKYKEYS* LPSTICKYKEYS;
+alias STICKYKEYS TAGSTICKYKEYS;
+alias STICKYKEYS TSTICKYKEYS;
+alias STICKYKEYS* PSTICKYKEYS;
+
+struct STRRET
+{
+    UINT uType;
+
+    union
+    {
+        struct
+        {
+            LPWSTR pOleStr;
+        }
+        struct
+        {
+            UINT uOffset;
+        }
+        struct
+        {
+            char[1 + MAX_PATH-1] cStr;
+        }
+    }
+}
+
+alias STRRET* LPSTRRET;
+alias STRRET _STRRET;
+alias STRRET TSTRRET;
+alias STRRET* PSTRRET;
+
+struct STYLEBUF
+{
+    DWORD dwStyle;
+    TCHAR[1 + 31] szDescription;
+}
+
+alias STYLEBUF* LPSTYLEBUF;
+alias STYLEBUF _TAGSTYLEBUF;
+alias STYLEBUF TSTYLEBUF;
+alias STYLEBUF* PSTYLEBUF;
+
+struct STYLESTRUCT
+{
+    DWORD styleOld;
+    DWORD styleNew;
+}
+
+alias STYLESTRUCT* LPSTYLESTRUCT;
+alias STYLESTRUCT TAGSTYLESTRUCT;
+alias STYLESTRUCT TSTYLESTRUCT;
+alias STYLESTRUCT* PSTYLESTRUCT;
+
+struct SYSTEM_AUDIT_ACE
+{
+    ACE_HEADER Header;
+    ACCESS_MASK Mask;
+    DWORD SidStart;
+}
+
+alias SYSTEM_AUDIT_ACE _SYSTEM_AUDIT_ACE;
+alias SYSTEM_AUDIT_ACE TSYSTEMAUDITACE;
+alias SYSTEM_AUDIT_ACE* PSYSTEMAUDITACE;
+
+struct SYSTEM_INFO {
+    union {
+        DWORD dwOemId;
+        struct {
+            WORD wProcessorArchitecture;
+            WORD wReserved;
+        }
+    }
+    DWORD dwPageSize;
+    LPVOID lpMinimumApplicationAddress;
+    LPVOID lpMaximumApplicationAddress;
+    DWORD_PTR dwActiveProcessorMask;
+    DWORD dwNumberOfProcessors;
+    DWORD dwProcessorType;
+    DWORD dwAllocationGranularity;
+    WORD wProcessorLevel;
+    WORD wProcessorRevision;
+}
+
+alias SYSTEM_INFO* LPSYSTEM_INFO;
+alias SYSTEM_INFO _SYSTEM_INFO;
+alias SYSTEM_INFO TSYSTEMINFO;
+alias SYSTEM_INFO* PSYSTEMINFO;
+
+struct SYSTEM_POWER_STATUS
+{
+    ubyte ACLineStatus;
+    ubyte BatteryFlag;
+    ubyte BatteryLifePercent;
+    ubyte Reserved1;
+    DWORD BatteryLifeTime;
+    DWORD BatteryFullLifeTime;
+}
+
+alias SYSTEM_POWER_STATUS _SYSTEM_POWER_STATUS;
+alias SYSTEM_POWER_STATUS TSYSTEMPOWERSTATUS;
+alias SYSTEM_POWER_STATUS* PSYSTEMPOWERSTATUS;
+alias EMPTYRECORD* LPSYSTEM_POWER_STATUS;
+
+struct TAPE_ERASE
+{
+    DWORD Type;
+    BOOLEAN Immediate;
+}
+
+alias TAPE_ERASE _TAPE_ERASE;
+alias TAPE_ERASE TTAPEERASE;
+alias TAPE_ERASE* PTAPEERASE;
+
+struct TAPE_GET_DRIVE_PARAMETERS
+{
+    ubyte ECC;
+    ubyte Compression;
+    ubyte DataPadding;
+    ubyte ReportSetmarks;
+    ULONG DefaultBlockSize;
+    ULONG MaximumBlockSize;
+    ULONG MinimumBlockSize;
+    ULONG MaximumPartitionCount;
+    ULONG FeaturesLow;
+    ULONG FeaturesHigh;
+    ULONG EOTWarningZoneSize;
+}
+
+alias TAPE_GET_DRIVE_PARAMETERS _TAPE_GET_DRIVE_PARAMETERS;
+alias TAPE_GET_DRIVE_PARAMETERS TTAPEGETDRIVEPARAMETERS;
+alias TAPE_GET_DRIVE_PARAMETERS* PTAPEGETDRIVEPARAMETERS;
+
+struct TAPE_GET_MEDIA_PARAMETERS
+{
+    LARGE_INTEGER Capacity;
+    LARGE_INTEGER Remaining;
+    DWORD BlockSize;
+    DWORD PartitionCount;
+    ubyte WriteProtected;
+}
+
+alias TAPE_GET_MEDIA_PARAMETERS _TAPE_GET_MEDIA_PARAMETERS;
+alias TAPE_GET_MEDIA_PARAMETERS TTAPEGETMEDIAPARAMETERS;
+alias TAPE_GET_MEDIA_PARAMETERS* PTAPEGETMEDIAPARAMETERS;
+
+struct TAPE_GET_POSITION
+{
+    ULONG _Type;
+    ULONG Partition;
+    ULONG OffsetLow;
+    ULONG OffsetHigh;
+}
+
+alias TAPE_GET_POSITION _TAPE_GET_POSITION;
+alias TAPE_GET_POSITION TTAPEGETPOSITION;
+alias TAPE_GET_POSITION* PTAPEGETPOSITION;
+
+struct TAPE_PREPARE
+{
+    DWORD    Operation;
+    BOOLEAN  Immediate;
+}
+
+alias TAPE_PREPARE _TAPE_PREPARE;
+alias TAPE_PREPARE TTAPEPREPARE;
+alias TAPE_PREPARE* PTAPEPREPARE;
+
+struct TAPE_SET_DRIVE_PARAMETERS
+{
+    ubyte ECC;
+    ubyte Compression;
+    ubyte DataPadding;
+    ubyte ReportSetmarks;
+    ULONG EOTWarningZoneSize;
+}
+
+alias TAPE_SET_DRIVE_PARAMETERS _TAPE_SET_DRIVE_PARAMETERS;
+alias TAPE_SET_DRIVE_PARAMETERS TTAPESETDRIVEPARAMETERS;
+alias TAPE_SET_DRIVE_PARAMETERS* PTAPESETDRIVEPARAMETERS;
+
+struct TAPE_SET_MEDIA_PARAMETERS
+{
+    ULONG BlockSize;
+}
+
+alias TAPE_SET_MEDIA_PARAMETERS _TAPE_SET_MEDIA_PARAMETERS;
+alias TAPE_SET_MEDIA_PARAMETERS TTAPESETMEDIAPARAMETERS;
+alias TAPE_SET_MEDIA_PARAMETERS* PTAPESETMEDIAPARAMETERS;
+
+struct TAPE_SET_POSITION
+{
+    ULONG Method;
+    ULONG Partition;
+    LARGE_INTEGER Offset;
+    BOOLEAN Immediate;
+}
+
+alias TAPE_SET_POSITION _TAPE_SET_POSITION;
+alias TAPE_SET_POSITION TTAPESETPOSITION;
+alias TAPE_SET_POSITION* PTAPESETPOSITION;
+
+struct TAPE_WRITE_MARKS
+{
+    ULONG _Type;
+    ULONG Count;
+    BOOLEAN Immediate;
+}
+
+alias TAPE_WRITE_MARKS _TAPE_WRITE_MARKS;
+alias TAPE_WRITE_MARKS TTAPEWRITEMARKS;
+alias TAPE_WRITE_MARKS* PTAPEWRITEMARKS;
+
+struct TBADDBITMAP
+{
+    HINST hInst;
+    UINT nID;
+}
+
+alias TBADDBITMAP* LPTBADDBITMAP;
+alias TBADDBITMAP TTBADDBITMAP;
+alias TBADDBITMAP* PTBADDBITMAP;
+
+struct TBBUTTON {
+    align(2):
+    int     iBitmap;
+    int     idCommand;
+    BYTE    fsState;
+    BYTE    fsStyle;
+//#ifdef _WIN64
+//    BYTE     bReserved[6];     // padding for alignment
+//#elif defined(_WIN32)
+    BYTE     bReserved[2];     // padding for alignment
+//#endif
+    DWORD_PTR   dwData;
+    INT_PTR     iString;
+}
+
+alias TBBUTTON* LPTBBUTTON;
+alias TBBUTTON* LPCTBBUTTON;
+alias TBBUTTON _TBBUTTON;
+alias TBBUTTON TTBBUTTON;
+alias TBBUTTON* PTBBUTTON;
+
+struct NMTOOLBARA {
+    align(2):
+    NMHDR    hdr;
+    int      iItem;
+    TBBUTTON tbButton;
+    int      cchText;
+    LPSTR   pszText;
+    RECT     rcButton;
+}
+struct NMTOOLBARW {
+    align(2):
+    NMHDR    hdr;
+    int      iItem;
+    TBBUTTON tbButton;
+    int      cchText;
+    LPWSTR   pszText;
+    RECT     rcButton;
+}
+version(Win32SansUnicode){
+    alias NMTOOLBARA NMTOOLBAR;
+}else{
+    alias NMTOOLBARW NMTOOLBAR;
+}
+alias NMTOOLBAR* LPNMTOOLBAR;
+
+alias NMTOOLBAR TBNOTIFY;
+
+alias TBNOTIFY* LPTBNOTIFY;
+alias TBNOTIFY TTBNOTIFY;
+alias TBNOTIFY* PTBNOTIFY;
+
+struct TBSAVEPARAMS
+{
+    HKEY hkr;
+    LPCTSTR pszSubKey;
+    LPCTSTR pszValueName;
+}
+
+alias TBSAVEPARAMS TTBSAVEPARAMS;
+alias TBSAVEPARAMS* PTBSAVEPARAMS;
+
+struct TC_HITTESTINFO
+{
+    POINT pt;
+    UINT flags;
+}
+
+alias TC_HITTESTINFO TCHITTESTINFO;
+alias TC_HITTESTINFO _TC_HITTESTINFO;
+alias TC_HITTESTINFO TTCHITTESTINFO;
+alias TC_HITTESTINFO* PTCHITTESTINFO;
+
+struct TC_ITEM
+{
+    UINT mask;
+    UINT lpReserved1;
+    UINT lpReserved2;
+    LPTSTR pszText;
+    int cchTextMax;
+    int iImage;
+    LPARAM lParam;
+}
+
+alias TC_ITEM _TC_ITEM;
+alias TC_ITEM TTCITEM;
+alias TC_ITEM* PTCITEM;
+
+struct TC_ITEMHEADER
+{
+    UINT mask;
+    UINT lpReserved1;
+    UINT lpReserved2;
+    LPTSTR pszText;
+    int cchTextMax;
+    int iImage;
+}
+
+alias TC_ITEMHEADER _TC_ITEMHEADER;
+alias TC_ITEMHEADER TTCITEMHEADER;
+alias TC_ITEMHEADER* PTCITEMHEADER;
+
+align(1) struct NMTCKEYDOWN
+{
+    NMHDR hdr;
+    WORD wVKey;
+    UINT flags;
+}
+
+alias NMTCKEYDOWN TC_KEYDOWN;
+alias TC_KEYDOWN _TC_KEYDOWN;
+alias TC_KEYDOWN TTCKEYDOWN;
+alias TC_KEYDOWN* PTCKEYDOWN;
+
+struct TEXTRANGE
+{
+    CHARRANGE chrg;
+    LPSTR lpstrText;
+}
+
+alias TEXTRANGE _TEXTRANGE;
+alias TEXTRANGE TTEXTRANGE;
+alias TEXTRANGE* PTEXTRANGE;
+
+struct TIME_ZONE_INFORMATION
+{
+    LONG Bias;
+    WCHAR[1 + 31] StandardName;
+    SYSTEMTIME StandardDate;
+    LONG StandardBias;
+    WCHAR[1 + 31] DaylightName;
+    SYSTEMTIME DaylightDate;
+    LONG DaylightBias;
+}
+
+alias TIME_ZONE_INFORMATION* LPTIME_ZONE_INFORMATION;
+alias TIME_ZONE_INFORMATION _TIME_ZONE_INFORMATION;
+alias TIME_ZONE_INFORMATION TTIMEZONEINFORMATION;
+alias TIME_ZONE_INFORMATION* PTIMEZONEINFORMATION;
+
+struct TOGGLEKEYS
+{
+    DWORD cbSize;
+    DWORD dwFlags;
+}
+
+alias TOGGLEKEYS TAGTOGGLEKEYS;
+alias TOGGLEKEYS TTOGGLEKEYS;
+alias TOGGLEKEYS* PTOGGLEKEYS;
+
+struct TOKEN_SOURCE
+{
+    char[1 + 7] SourceName;
+    LUID SourceIdentifier;
+}
+
+alias TOKEN_SOURCE _TOKEN_SOURCE;
+alias TOKEN_SOURCE TTOKENSOURCE;
+alias TOKEN_SOURCE* PTOKENSOURCE;
+
+struct TOKEN_CONTROL
+{
+    LUID TokenId;
+    LUID AuthenticationId;
+    LUID ModifiedId;
+    TOKEN_SOURCE TokenSource;
+}
+
+alias TOKEN_CONTROL _TOKEN_CONTROL;
+alias TOKEN_CONTROL TTOKENCONTROL;
+alias TOKEN_CONTROL* PTOKENCONTROL;
+
+struct TOKEN_DEFAULT_DACL
+{
+    PACL DefaultDacl;
+}
+
+alias TOKEN_DEFAULT_DACL _TOKEN_DEFAULT_DACL;
+alias TOKEN_DEFAULT_DACL TTOKENDEFAULTDACL;
+alias TOKEN_DEFAULT_DACL* PTOKENDEFAULTDACL;
+
+struct TOKEN_GROUPS
+{
+    DWORD GroupCount;
+    SID_AND_ATTRIBUTES[1 + ANYSIZE_ARRAY-1] Groups;
+}
+
+alias TOKEN_GROUPS* PTOKEN_GROUPS;
+alias TOKEN_GROUPS* LPTOKEN_GROUPS;
+alias TOKEN_GROUPS _TOKEN_GROUPS;
+alias TOKEN_GROUPS TTOKENGROUPS;
+alias TOKEN_GROUPS* PTOKENGROUPS;
+
+struct TOKEN_OWNER
+{
+    PSID Owner;
+}
+
+alias TOKEN_OWNER _TOKEN_OWNER;
+alias TOKEN_OWNER TTOKENOWNER;
+alias TOKEN_OWNER* PTOKENOWNER;
+
+struct TOKEN_PRIMARY_GROUP
+{
+    PSID PrimaryGroup;
+}
+
+alias TOKEN_PRIMARY_GROUP _TOKEN_PRIMARY_GROUP;
+alias TOKEN_PRIMARY_GROUP TTOKENPRIMARYGROUP;
+alias TOKEN_PRIMARY_GROUP* PTOKENPRIMARYGROUP;
+
+struct TOKEN_PRIVILEGES
+{
+    DWORD PrivilegeCount;
+    LUID_AND_ATTRIBUTES[ANYSIZE_ARRAY] Privileges;
+}
+
+alias TOKEN_PRIVILEGES* PTOKEN_PRIVILEGES;
+alias TOKEN_PRIVILEGES* LPTOKEN_PRIVILEGES;
+alias TOKEN_PRIVILEGES _TOKEN_PRIVILEGES;
+alias TOKEN_PRIVILEGES TTOKENPRIVILEGES;
+alias TOKEN_PRIVILEGES* PTOKENPRIVILEGES;
+
+struct TOKEN_STATISTICS
+{
+    LUID TokenId;
+    LUID AuthenticationId;
+    LARGE_INTEGER ExpirationTime;
+    TOKEN_TYPE TokenType;
+    SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
+    DWORD DynamicCharged;
+    DWORD DynamicAvailable;
+    DWORD GroupCount;
+    DWORD PrivilegeCount;
+    LUID ModifiedId;
+}
+
+alias TOKEN_STATISTICS _TOKEN_STATISTICS;
+alias TOKEN_STATISTICS TTOKENSTATISTICS;
+alias TOKEN_STATISTICS* PTOKENSTATISTICS;
+
+struct TOKEN_USER
+{
+    SID_AND_ATTRIBUTES User;
+}
+
+alias TOKEN_USER _TOKEN_USER;
+alias TOKEN_USER TTOKENUSER;
+alias TOKEN_USER* PTOKENUSER;
+
+struct TOOLINFOA
+{
+    UINT cbSize;
+    UINT uFlags;
+    HWND hwnd;
+    UINT uId;
+    RECT rect;
+    HINST hinst;
+    LPSTR lpszText;
+//if (_WIN32_IE >= 0x0300)
+    LPARAM lParam;
+//endif
+//if (_WIN32_WINNT >= 0x0501)
+    void *lpReserved;
+//endif
+}
+struct TOOLINFOW
+{
+    UINT cbSize;
+    UINT uFlags;
+    HWND hwnd;
+    UINT uId;
+    RECT rect;
+    HINST hinst;
+    LPWSTR lpszText;
+//if (_WIN32_IE >= 0x0300)
+    LPARAM lParam;
+//endif
+//if (_WIN32_WINNT >= 0x0501)
+    void *lpReserved;
+//endif
+
+}
+version(Win32SansUnicode)
+{
+    alias TOOLINFOA TOOLINFO;
+}
+else
+{
+    alias TOOLINFOW TOOLINFO;
+}
+alias TOOLINFO* LPTOOLINFO;
+alias TOOLINFO TTOOLINFO;
+alias TOOLINFO* PTOOLINFO;
+
+struct NMTTDISPINFOA {
+    NMHDR hdr;
+    LPSTR lpszText;
+    char szText[80];
+    HINSTANCE hinst;
+    UINT uFlags;
+    LPARAM lParam;
+}
+
+struct NMTTDISPINFOW {
+    NMHDR hdr;
+    LPWSTR lpszText;
+    WCHAR szText[80];
+    HINSTANCE hinst;
+    UINT uFlags;
+    LPARAM lParam;
+}
+version(Win32SansUnicode){
+    alias NMTTDISPINFOA NMTTDISPINFO;
+} else {
+    alias NMTTDISPINFOW NMTTDISPINFO;
+}
+
+
+alias NMTTDISPINFOA TOOLTIPTEXTA;
+alias NMTTDISPINFOW TOOLTIPTEXTW;
+version(Win32SansUnicode)
+{
+    alias TOOLTIPTEXTA TOOLTIPTEXT;
+}
+else
+{
+    alias TOOLTIPTEXTW TOOLTIPTEXT;
+}
+alias TOOLTIPTEXT* LPTOOLTIPTEXT;
+alias TOOLTIPTEXT TTOOLTIPTEXT;
+alias TOOLTIPTEXT* PTOOLTIPTEXT;
+
+struct TPMPARAMS
+{
+    UINT cbSize;
+    RECT rcExclude;
+}
+
+alias TPMPARAMS* LPTPMPARAMS;
+alias TPMPARAMS TAGTPMPARAMS;
+alias TPMPARAMS TTPMPARAMS;
+alias TPMPARAMS* PTPMPARAMS;
+
+struct TRANSMIT_FILE_BUFFERS
+{
+    PVOID Head;
+    DWORD HeadLength;
+    PVOID Tail;
+    DWORD TailLength;
+}
+
+alias TRANSMIT_FILE_BUFFERS _TRANSMIT_FILE_BUFFERS;
+alias TRANSMIT_FILE_BUFFERS TTRANSMITFILEBUFFERS;
+alias TRANSMIT_FILE_BUFFERS* PTRANSMITFILEBUFFERS;
+
+struct TTHITTESTINFO
+{
+    HWND hwnd;
+    POINT pt;
+    TOOLINFO ti;
+}
+
+alias TTHITTESTINFO* LPHITTESTINFO;
+alias TTHITTESTINFO _TT_HITTESTINFO;
+alias TTHITTESTINFO TTTHITTESTINFO;
+alias TTHITTESTINFO* PTTHITTESTINFO;
+
+struct TTPOLYCURVE
+{
+    ushort wType;
+    ushort cpfx;
+    POINTFX[1 + 0] apfx;
+}
+
+alias TTPOLYCURVE* LPTTPOLYCURVE;
+alias TTPOLYCURVE TAGTTPOLYCURVE;
+alias TTPOLYCURVE TTTPOLYCURVE;
+alias TTPOLYCURVE* PTTPOLYCURVE;
+
+struct TTPOLYGONHEADER
+{
+    DWORD cb;
+    DWORD dwType;
+    POINTFX pfxStart;
+}
+
+alias TTPOLYGONHEADER* LPTTPOLYGONHEADER;
+alias TTPOLYGONHEADER _TTPOLYGONHEADER;
+alias TTPOLYGONHEADER TTTPOLYGONHEADER;
+alias TTPOLYGONHEADER* PTTPOLYGONHEADER;
+
+struct TV_DISPINFO
+{
+    NMHDR hdr;
+    TV_ITEM item;
+}
+
+alias TV_DISPINFO _TV_DISPINFO;
+alias TV_DISPINFO TTVDISPINFO;
+alias TV_DISPINFO* PTVDISPINFO;
+
+struct TV_HITTESTINFO
+{
+    POINT pt;
+    UINT flags;
+    HTREEITEM hItem;
+}
+
+alias TV_HITTESTINFO* LPTV_HITTESTINFO;
+alias TV_HITTESTINFO _TVHITTESTINFO;
+alias TV_HITTESTINFO TTVHITTESTINFO;
+alias TV_HITTESTINFO* PTVHITTESTINFO;
+
+struct TVINSERTSTRUCTA
+{
+    HTREEITEM hParent;
+    HTREEITEM hInsertAfter;
+    union {
+        TVITEMEXA itemex;
+        TVITEMA item;
+    }
+}
+struct TVINSERTSTRUCTW
+{
+    HTREEITEM hParent;
+    HTREEITEM hInsertAfter;
+    union {
+        TVITEMEXW itemex;
+        TVITEMW item;
+    }
+}
+version(Win32SansUnicode)
+{
+    alias TVINSERTSTRUCTA TVINSERTSTRUCT;
+}
+else
+{
+    alias TVINSERTSTRUCTW TVINSERTSTRUCT;
+}
+
+alias TVINSERTSTRUCT  TV_INSERTSTRUCT;
+alias TVINSERTSTRUCT* LPTV_INSERTSTRUCT;
+alias TVINSERTSTRUCT _TV_INSERTSTRUCT;
+alias TVINSERTSTRUCT TTVINSERTSTRUCT;
+alias TVINSERTSTRUCT* PTVINSERTSTRUCT;
+
+align(2) struct TV_KEYDOWN
+{
+    NMHDR hdr;
+    ushort wVKey;
+    UINT flags;
+}
+
+alias TV_KEYDOWN _TV_KEYDOWN;
+alias TV_KEYDOWN TTVKEYDOWN;
+alias TV_KEYDOWN* PTVKEYDOWN;
+
+struct TV_SORTCB
+{
+    HTREEITEM hParent;
+    PFNTVCOMPARE lpfnCompare;
+    LPARAM lParam;
+}
+
+alias TV_SORTCB* LPTV_SORTCB;
+alias TV_SORTCB _TV_SORTCB;
+alias TV_SORTCB TTVSORTCB;
+alias TV_SORTCB* PTVSORTCB;
+
+struct UDACCEL
+{
+    UINT nSec;
+    UINT nInc;
+}
+
+alias UDACCEL TUDACCEL;
+alias UDACCEL* PUDACCEL;
+
+union ULARGE_INTEGER
+{
+    struct
+    {
+        DWORD LowPart;
+        DWORD HighPart;
+    };
+    struct u
+    {
+        DWORD LowPart;
+        DWORD HighPart;
+    };
+    DWORDLONG QuadPart;
+}
+alias ULARGE_INTEGER* PULARGE_INTEGER;
+alias ULARGE_INTEGER _ULARGE_INTEGER;
+alias ULARGE_INTEGER TULARGEINTEGER;
+alias ULARGE_INTEGER* PULARGEINTEGER;
+
+struct UNIVERSAL_NAME_INFO
+{
+    LPTSTR lpUniversalName;
+}
+
+alias UNIVERSAL_NAME_INFO _UNIVERSAL_NAME_INFO;
+alias UNIVERSAL_NAME_INFO TUNIVERSALNAMEINFO;
+alias UNIVERSAL_NAME_INFO* PUNIVERSALNAMEINFO;
+
+struct USEROBJECTFLAGS
+{
+    WINBOOL fInherit;
+    WINBOOL fReserved;
+    DWORD dwFlags;
+}
+
+alias USEROBJECTFLAGS TAGUSEROBJECTFLAGS;
+alias USEROBJECTFLAGS TUSEROBJECTFLAGS;
+alias USEROBJECTFLAGS* PUSEROBJECTFLAGS;
+
+struct VALENT
+{
+    LPTSTR ve_valuename;
+    DWORD ve_valuelen;
+    DWORD ve_valueptr;
+    DWORD ve_type;
+}
+
+alias VALENT TVALENT;
+alias VALENT* PVALENT;
+alias VALENT VALUE_ENT;
+alias VALENT TVALUE_ENT;
+alias VALENT* PVALUE_ENT;
+
+struct VERIFY_INFORMATION
+{
+    LARGE_INTEGER StartingOffset;
+    DWORD Length;
+}
+
+alias VERIFY_INFORMATION _VERIFY_INFORMATION;
+alias VERIFY_INFORMATION TVERIFYINFORMATION;
+alias VERIFY_INFORMATION* PVERIFYINFORMATION;
+
+struct VS_FIXEDFILEINFO
+{
+    DWORD dwSignature;
+    DWORD dwStrucVersion;
+    DWORD dwFileVersionMS;
+    DWORD dwFileVersionLS;
+    DWORD dwProductVersionMS;
+    DWORD dwProductVersionLS;
+    DWORD dwFileFlagsMask;
+    DWORD dwFileFlags;
+    DWORD dwFileOS;
+    DWORD dwFileType;
+    DWORD dwFileSubtype;
+    DWORD dwFileDateMS;
+    DWORD dwFileDateLS;
+}
+
+alias VS_FIXEDFILEINFO _VS_FIXEDFILEINFO;
+alias VS_FIXEDFILEINFO TVSFIXEDFILEINFO;
+alias VS_FIXEDFILEINFO* PVSFIXEDFILEINFO;
+
+struct WIN32_FIND_DATA
+{
+    DWORD dwFileAttributes;
+    FILETIME ftCreationTime;
+    FILETIME ftLastAccessTime;
+    FILETIME ftLastWriteTime;
+    DWORD nFileSizeHigh;
+    DWORD nFileSizeLow;
+    DWORD dwReserved0;
+    DWORD dwReserved1;
+    TCHAR[1 + MAX_PATH-1] cFileName;
+    TCHAR[1 + 13] cAlternateFileName;
+}
+
+alias WIN32_FIND_DATA* LPWIN32_FIND_DATA;
+alias WIN32_FIND_DATA* PWIN32_FIND_DATA;
+alias WIN32_FIND_DATA _WIN32_FIND_DATA;
+alias WIN32_FIND_DATA TWIN32FINDDATA;
+alias WIN32_FIND_DATA TWIN32FINDDATAA;
+alias WIN32_FIND_DATA* PWIN32FINDDATA;
+
+struct WIN32_FIND_DATAW {
+    DWORD dwFileAttributes;
+    FILETIME ftCreationTime;
+    FILETIME ftLastAccessTime;
+    FILETIME ftLastWriteTime;
+    DWORD nFileSizeHigh;
+    DWORD nFileSizeLow;
+    DWORD dwReserved0;
+    DWORD dwReserved1;
+    WCHAR  cFileName[MAX_PATH];
+    WCHAR  cAlternateFileName[14];
+}
+
+alias WIN32_FIND_DATAW* LPWIN32_FIND_DATAW;
+alias WIN32_FIND_DATAW* PWIN32_FIND_DATAW;
+
+struct WIN32_FILE_ATTRIBUTE_DATA {
+  DWORD dwFileAttributes;
+  FILETIME ftCreationTime;
+  FILETIME ftLastAccessTime;
+  FILETIME ftLastWriteTime;
+  DWORD nFileSizeHigh;
+  DWORD nFileSizeLow;
+}
+
+enum {
+    GetFileInfoLevelStandard,
+    GetFileInfoLevelMax
+}
+
+struct WIN32_STREAM_ID
+{
+    DWORD dwStreamId;
+    DWORD dwStreamAttributes;
+    LARGE_INTEGER Size;
+    DWORD dwStreamNameSize;
+    WCHAR* cStreamName;
+}
+
+alias WIN32_STREAM_ID _WIN32_STREAM_ID;
+alias WIN32_STREAM_ID TWIN32STREAMID;
+alias WIN32_STREAM_ID* PWIN32STREAMID;
+
+struct WINDOWPLACEMENT
+{
+    UINT length;
+    UINT flags;
+    UINT showCmd;
+    POINT ptMinPosition;
+    POINT ptMaxPosition;
+    RECT rcNormalPosition;
+}
+
+alias WINDOWPLACEMENT _WINDOWPLACEMENT;
+alias WINDOWPLACEMENT TWINDOWPLACEMENT;
+alias WINDOWPLACEMENT* PWINDOWPLACEMENT;
+
+struct WNDCLASSA
+{
+    UINT style;
+    WNDPROC lpfnWndProc;
+    int cbClsExtra;
+    int cbWndExtra;
+    HANDLE hInstance;
+    HICON hIcon;
+    HCURSOR hCursor;
+    HBRUSH hbrBackground;
+    LPCSTR lpszMenuName;
+    LPCSTR lpszClassName;
+}
+
+alias WNDCLASSA* PWNDCLASSA, LPWNDCLASSA;
+
+struct WNDCLASSW
+{
+    UINT        style;
+    WNDPROC     lpfnWndProc;
+    int         cbClsExtra;
+    int         cbWndExtra;
+    HINSTANCE   hInstance;
+    HICON       hIcon;
+    HCURSOR     hCursor;
+    HBRUSH      hbrBackground;
+    LPCWSTR     lpszMenuName;
+    LPCWSTR     lpszClassName;
+}
+
+alias WNDCLASSW* PWNDCLASSW, LPWNDCLASSW;
+
+version(Win32SansUnicode)
+{
+    alias WNDCLASSA WNDCLASS;
+}
+else
+{
+    alias WNDCLASSW WNDCLASS;
+}
+alias WNDCLASS* LPWNDCLASS;
+alias WNDCLASS _WNDCLASS;
+alias WNDCLASS TWNDCLASS;
+alias WNDCLASS WNDCLASS_T;
+alias WNDCLASS* PWNDCLASS;
+
+struct WNDCLASSEX
+{
+    UINT cbSize;
+    UINT style;
+    WNDPROC lpfnWndProc;
+    int cbClsExtra;
+    int cbWndExtra;
+    HANDLE hInstance;
+    HICON hIcon;
+    HCURSOR hCursor;
+    HBRUSH hbrBackground;
+    LPCTSTR lpszMenuName;
+    LPCTSTR lpszClassName;
+    HANDLE hIconSm;
+}
+
+alias WNDCLASSEX* LPWNDCLASSEX;
+alias WNDCLASSEX _WNDCLASSEX;
+alias WNDCLASSEX TWNDCLASSEX;
+alias WNDCLASSEX TWNDCLASSEXA;
+alias WNDCLASSEX* PWNDCLASSEX;
+
+struct CONNECTDLGSTRUCT
+{
+    DWORD cbStructure;
+    HWND hwndOwner;
+    LPNETRESOURCE lpConnRes;
+    DWORD dwFlags;
+    DWORD dwDevNum;
+}
+
+alias CONNECTDLGSTRUCT* LPCONNECTDLGSTRUCT;
+alias CONNECTDLGSTRUCT _CONNECTDLGSTRUCT;
+alias CONNECTDLGSTRUCT TCONNECTDLGSTRUCT;
+alias CONNECTDLGSTRUCT* PCONNECTDLGSTRUCT;
+
+struct DISCDLGSTRUCT
+{
+    DWORD cbStructure;
+    HWND hwndOwner;
+    LPTSTR lpLocalName;
+    LPTSTR lpRemoteName;
+    DWORD dwFlags;
+}
+
+alias DISCDLGSTRUCT* LPDISCDLGSTRUCT;
+alias DISCDLGSTRUCT _DISCDLGSTRUCT;
+alias DISCDLGSTRUCT TDISCDLGSTRUCT;
+alias DISCDLGSTRUCT TDISCDLGSTRUCTA;
+alias DISCDLGSTRUCT* PDISCDLGSTRUCT;
+
+struct NETINFOSTRUCT
+{
+    DWORD cbStructure;
+    DWORD dwProviderVersion;
+    DWORD dwStatus;
+    DWORD dwCharacteristics;
+    DWORD dwHandle;
+    ushort wNetType;
+    DWORD dwPrinters;
+    DWORD dwDrives;
+}
+
+alias NETINFOSTRUCT* LPNETINFOSTRUCT;
+alias NETINFOSTRUCT _NETINFOSTRUCT;
+alias NETINFOSTRUCT TNETINFOSTRUCT;
+alias NETINFOSTRUCT* PNETINFOSTRUCT;
+
+struct NETCONNECTINFOSTRUCT
+{
+    DWORD cbStructure;
+    DWORD dwFlags;
+    DWORD dwSpeed;
+    DWORD dwDelay;
+    DWORD dwOptDataSize;
+}
+
+alias NETCONNECTINFOSTRUCT* LPNETCONNECTINFOSTRUCT;
+alias NETCONNECTINFOSTRUCT _NETCONNECTINFOSTRUCT;
+alias NETCONNECTINFOSTRUCT TNETCONNECTINFOSTRUCT;
+alias NETCONNECTINFOSTRUCT* PNETCONNECTINFOSTRUCT;
+extern(Windows){
+alias int (*ENUMMETAFILEPROC)(HDC, HANDLETABLE*, METARECORD*, int, LPARAM);
+alias int (*ENHMETAFILEPROC)(HDC, HANDLETABLE*, ENHMETARECORD*, int, LPARAM);
+alias int (*ENUMFONTSPROC)(LPLOGFONT, LPTEXTMETRIC, DWORD, LPARAM);
+alias int (*FONTENUMPROC)(ENUMLOGFONT*, NEWTEXTMETRIC*, int, LPARAM);
+alias int (*FONTENUMEXPROC)(ENUMLOGFONTEX*, NEWTEXTMETRICEX*, int, LPARAM);
+alias void (*LPOVERLAPPED_COMPLETION_ROUTINE)(DWORD, DWORD);
+}
+
+struct POINTFLOAT
+{
+    FLOAT x;
+    FLOAT y;
+}
+
+alias POINTFLOAT _POINTFLOAT;
+alias POINTFLOAT TPOINTFLOAT;
+alias POINTFLOAT* PPOINTFLOAT;
+
+struct GLYPHMETRICSFLOAT
+{
+    FLOAT gmfBlackBoxX;
+    FLOAT gmfBlackBoxY;
+    POINTFLOAT gmfptGlyphOrigin;
+    FLOAT gmfCellIncX;
+    FLOAT gmfCellIncY;
+}
+
+alias GLYPHMETRICSFLOAT* LPGLYPHMETRICSFLOAT;
+alias GLYPHMETRICSFLOAT _GLYPHMETRICSFLOAT;
+alias GLYPHMETRICSFLOAT TGLYPHMETRICSFLOAT;
+alias GLYPHMETRICSFLOAT* PGLYPHMETRICSFLOAT;
+
+struct LAYERPLANEDESCRIPTOR
+{
+    ushort nSize;
+    ushort nVersion;
+    DWORD dwFlags;
+    ubyte iPixelType;
+    ubyte cColorBits;
+    ubyte cRedBits;
+    ubyte cRedShift;
+    ubyte cGreenBits;
+    ubyte cGreenShift;
+    ubyte cBlueBits;
+    ubyte cBlueShift;
+    ubyte cAlphaBits;
+    ubyte cAlphaShift;
+    ubyte cAccumBits;
+    ubyte cAccumRedBits;
+    ubyte cAccumGreenBits;
+    ubyte cAccumBlueBits;
+    ubyte cAccumAlphaBits;
+    ubyte cDepthBits;
+    ubyte cStencilBits;
+    ubyte cAuxBuffers;
+    ubyte iLayerPlane;
+    ubyte bReserved;
+    COLORREF crTransparent;
+}
+
+alias LAYERPLANEDESCRIPTOR* LPLAYERPLANEDESCRIPTOR;
+alias LAYERPLANEDESCRIPTOR TAGLAYERPLANEDESCRIPTOR;
+alias LAYERPLANEDESCRIPTOR TLAYERPLANEDESCRIPTOR;
+alias LAYERPLANEDESCRIPTOR* PLAYERPLANEDESCRIPTOR;
+
+struct PIXELFORMATDESCRIPTOR
+{
+    ushort nSize;
+    ushort nVersion;
+    DWORD dwFlags;
+    ubyte iPixelType;
+    ubyte cColorBits;
+    ubyte cRedBits;
+    ubyte cRedShift;
+    ubyte cGreenBits;
+    ubyte cGreenShift;
+    ubyte cBlueBits;
+    ubyte cBlueShift;
+    ubyte cAlphaBits;
+    ubyte cAlphaShift;
+    ubyte cAccumBits;
+    ubyte cAccumRedBits;
+    ubyte cAccumGreenBits;
+    ubyte cAccumBlueBits;
+    ubyte cAccumAlphaBits;
+    ubyte cDepthBits;
+    ubyte cStencilBits;
+    ubyte cAuxBuffers;
+    ubyte iLayerType;
+    ubyte bReserved;
+    DWORD dwLayerMask;
+    DWORD dwVisibleMask;
+    DWORD dwDamageMask;
+}
+
+alias PIXELFORMATDESCRIPTOR* LPPIXELFORMATDESCRIPTOR;
+alias PIXELFORMATDESCRIPTOR TAGPIXELFORMATDESCRIPTOR;
+alias PIXELFORMATDESCRIPTOR TPIXELFORMATDESCRIPTOR;
+alias PIXELFORMATDESCRIPTOR* PPIXELFORMATDESCRIPTOR;
+
+struct USER_INFO_2
+{
+    LPWSTR usri2_name;
+    LPWSTR usri2_password;
+    DWORD usri2_password_age;
+    DWORD usri2_priv;
+    LPWSTR usri2_home_dir;
+    LPWSTR usri2_comment;
+    DWORD usri2_flags;
+    LPWSTR usri2_script_path;
+    DWORD usri2_auth_flags;
+    LPWSTR usri2_full_name;
+    LPWSTR usri2_usr_comment;
+    LPWSTR usri2_parms;
+    LPWSTR usri2_workstations;
+    DWORD usri2_last_logon;
+    DWORD usri2_last_logoff;
+    DWORD usri2_acct_expires;
+    DWORD usri2_max_storage;
+    DWORD usri2_units_per_week;
+    PBYTE usri2_logon_hours;
+    DWORD usri2_bad_pw_count;
+    DWORD usri2_num_logons;
+    LPWSTR usri2_logon_server;
+    DWORD usri2_country_code;
+    DWORD usri2_code_page;
+}
+
+alias USER_INFO_2* PUSER_INFO_2;
+alias USER_INFO_2* LPUSER_INFO_2;
+alias USER_INFO_2 TUSERINFO2;
+alias USER_INFO_2* PUSERINFO2;
+
+struct USER_INFO_0
+{
+    LPWSTR usri0_name;
+}
+
+alias USER_INFO_0* PUSER_INFO_0;
+alias USER_INFO_0* LPUSER_INFO_0;
+alias USER_INFO_0 TUSERINFO0;
+alias USER_INFO_0* PUSERINFO0;
+
+struct USER_INFO_3
+{
+    LPWSTR usri3_name;
+    LPWSTR usri3_password;
+    DWORD usri3_password_age;
+    DWORD usri3_priv;
+    LPWSTR usri3_home_dir;
+    LPWSTR usri3_comment;
+    DWORD usri3_flags;
+    LPWSTR usri3_script_path;
+    DWORD usri3_auth_flags;
+    LPWSTR usri3_full_name;
+    LPWSTR usri3_usr_comment;
+    LPWSTR usri3_parms;
+    LPWSTR usri3_workstations;
+    DWORD usri3_last_logon;
+    DWORD usri3_last_logoff;
+    DWORD usri3_acct_expires;
+    DWORD usri3_max_storage;
+    DWORD usri3_units_per_week;
+    PBYTE usri3_logon_hours;
+    DWORD usri3_bad_pw_count;
+    DWORD usri3_num_logons;
+    LPWSTR usri3_logon_server;
+    DWORD usri3_country_code;
+    DWORD usri3_code_page;
+    DWORD usri3_user_id;
+    DWORD usri3_primary_group_id;
+    LPWSTR usri3_profile;
+    LPWSTR usri3_home_dir_drive;
+    DWORD usri3_password_expired;
+}
+
+alias USER_INFO_3* PUSER_INFO_3;
+alias USER_INFO_3* LPUSER_INFO_3;
+alias USER_INFO_3 TUSERINFO3;
+alias USER_INFO_3* PUSERINFO3;
+
+struct GROUP_INFO_2
+{
+    LPWSTR grpi2_name;
+    LPWSTR grpi2_comment;
+    DWORD grpi2_group_id;
+    DWORD grpi2_attributes;
+}
+
+alias GROUP_INFO_2* PGROUP_INFO_2;
+alias GROUP_INFO_2 TGROUPINFO2;
+alias GROUP_INFO_2* PGROUPINFO2;
+
+struct LOCALGROUP_INFO_0
+{
+    LPWSTR lgrpi0_name;
+}
+
+alias LOCALGROUP_INFO_0* PLOCALGROUP_INFO_0;
+alias LOCALGROUP_INFO_0* LPLOCALGROUP_INFO_0;
+alias LOCALGROUP_INFO_0 TLOCALGROUPINFO0;
+alias LOCALGROUP_INFO_0* PLOCALGROUPINFO0;
+
+struct IMAGE_DOS_HEADER
+{
+    ushort e_magic;
+    ushort e_cblp;
+    ushort e_cp;
+    ushort e_crlc;
+    ushort e_cparhdr;
+    ushort e_minalloc;
+    ushort e_maxalloc;
+    ushort e_ss;
+    ushort e_sp;
+    ushort e_csum;
+    ushort e_ip;
+    ushort e_cs;
+    ushort e_lfarlc;
+    ushort e_ovno;
+    ushort[1 + 3] e_res;
+    ushort e_oemid;
+    ushort e_oeminfo;
+    ushort[1 + 9] e_res2;
+    LONG e_lfanew;
+}
+
+alias IMAGE_DOS_HEADER* PIMAGE_DOS_HEADER;
+alias IMAGE_DOS_HEADER TIMAGEDOSHEADER;
+alias IMAGE_DOS_HEADER* PIMAGEDOSHEADER;
+alias ushort TVARTYPE;
+alias TVARIANT* PVARIANT;
+
+struct TVARIANT
+{
+    TVARTYPE vt;
+    ushort wReserved1;
+    ushort wReserved2;
+    ushort wReserved3;
+
+    union
+    {
+        struct
+        {
+            ubyte bVal;
+        }
+        struct
+        {
+            byte iVal;
+        }
+        struct
+        {
+            int lVal;
+        }
+        struct
+        {
+            float fltVal;
+        }
+        struct
+        {
+            double dblVal;
+        }
+        struct
+        {
+            ushort vbool;
+        }
+        struct
+        {
+            HRESULT scode;
+        }
+        struct
+        {
+            ubyte* pbVal;
+        }
+        struct
+        {
+            byte* piVal;
+        }
+        struct
+        {
+            int* plVal;
+        }
+        struct
+        {
+            float* pfltVal;
+        }
+        struct
+        {
+            double* pdblVal;
+        }
+        struct
+        {
+            ushort* pbool;
+        }
+        struct
+        {
+            HRESULT* pscode;
+        }
+        struct
+        {
+            POINTER byRef;
+        }
+    }
+}
+
+alias TVARIANT VARIANT;
+alias int MMRESULT;
+alias TWAVEFORMATEX* PWAVEFORMATEX;
+alias TWAVEFORMATEX WAVEFORMATEX;
+
+align(1) struct TWAVEFORMATEX
+{
+    ushort wFormatTag;
+    ushort nChannels;
+    DWORD nSamplesPerSec;
+    DWORD nAvgBytesPerSec;
+    ushort nBlockAlign;
+    ushort wBitsPerSample;
+    ushort cbSize;
+}
+
+alias CRITICAL_SECTION TRTLCRITICALSECTION;
+alias PCRITICAL_SECTION PRTLCRITICALSECTION;
+alias PGUID PIID;
+alias TGUID TIID;
+alias HANDLE THANDLE;
+alias TSMALLRECT* PSMALLRECT;
+alias SMALL_RECT TSMALLRECT;
+alias TCHARINFO* PCHARINFO;
+alias _CHAR_INFO TCHARINFO;
+alias POINTER TFARPROC;
+alias POINTER TFNDLGPROC;
+alias POINTER TFNTHREADSTARTROUTINE;
+
+struct _OBJECT_TYPE_LIST
+{
+    ushort Level;
+    ushort Sbz;
+    PGUID ObjectType;
+}
+
+alias _OBJECT_TYPE_LIST TOBJECTTYPELIST;
+alias TOBJECTTYPELIST* POBJECTTYPELIST;
+alias _OBJECT_TYPE_LIST OBJECT_TYPE_LIST;
+alias DWORD AUDIT_EVENT_TYPE;
+
+align(1) struct _BLENDFUNCTION
+{
+    ubyte BlendOp;
+    ubyte BlendFlags;
+    ubyte SourceConstantAlpha;
+    ubyte AlphaFormat;
+}
+
+alias _BLENDFUNCTION TBLENDFUNCTION;
+alias TBLENDFUNCTION* PBLENDFUNCTION;
+alias _BLENDFUNCTION BLENDFUNCTION;
+
+alias HANDLE HMONITOR;
+
+struct MONITORINFOEX
+{
+    DWORD  cbSize;
+    RECT   rcMonitor;
+    RECT   rcWork;
+    DWORD  dwFlags;
+    TCHAR  szDevice[CCHDEVICENAME];
+}
+alias MONITORINFOEX* LPMONITORINFOEX;
+
+struct MONITORINFO
+{
+    DWORD  cbSize;
+    RECT   rcMonitor;
+    RECT   rcWork;
+    DWORD  dwFlags;
+}
+alias MONITORINFO* LPMONITORINFO;
+
+struct WINDOWINFO
+{
+    DWORD cbSize;
+    RECT rcWindow;
+    RECT rcClient;
+    DWORD dwStyle;
+    DWORD dwExStyle;
+    DWORD dwWindowStatus;
+    UINT cxWindowBorders;
+    UINT cyWindowBorders;
+    ATOM atomWindowType;
+    short wCreatorVersion;
+};
+alias WINDOWINFO* PWINDOWINFO;
+alias WINDOWINFO* LPWINDOWINFO;
+
+enum : HRESULT
+{
+    S_OK            = 0x00000000,
+    S_FALSE         = 0x00000001,
+    E_UNEXPECTED    = 0x8000FFFF,
+    E_NOTIMPL       = 0x80004001,
+    E_OUTOFMEMORY   = 0x8007000E,
+    E_INVALIDARG    = 0x80070057,
+    E_NOINTERFACE   = 0x80004002,
+    E_POINTER       = 0x80004003,
+    E_HANDLE        = 0x80070006,
+    E_ABORT         = 0x80004004,
+    E_FAIL          = 0x80004005,
+    E_ACCESSDENIED  = 0x80070005,
+    E_PENDING       = 0x8000000A,
+}
+
+/*
+int CO_E_INIT_TLS = (DWORD)((0x80004006));
+int CO_E_INIT_MEMORY_ALLOCATOR = (DWORD)((0x80004008));
+int CO_E_INIT_CLASS_CACHE = (DWORD)((0x80004009));
+int CO_E_INIT_RPC_CHANNEL = (DWORD)((0x8000400A));
+int CO_E_INIT_TLS_SET_CHANNEL_CONTROL = (DWORD)((0x8000400B));
+int CO_E_INIT_TLS_CHANNEL_CONTROL = (DWORD)((0x8000400C));
+int CO_E_INIT_UNACCEPTED_USER_ALLOCATOR = (DWORD)((0x8000400D));
+int CO_E_INIT_SCM_MUTEX_EXISTS = (DWORD)((0x8000400E));
+int CO_E_INIT_SCM_FILE_MAPPING_EXISTS = (DWORD)((0x8000400F));
+int CO_E_INIT_SCM_MAP_VIEW_OF_FILE = (DWORD)((0x80004010));
+int CO_E_INIT_SCM_EXEC_FAILURE = (DWORD)((0x80004011));
+int CO_E_INIT_ONLY_SINGLE_THREADED = (DWORD)((0x80004012));
+int CO_E_CANT_REMOTE = (DWORD)((0x80004013));
+int CO_E_BAD_SERVER_NAME = (DWORD)((0x80004014));
+int CO_E_WRONG_SERVER_IDENTITY = (DWORD)((0x80004015));
+int CO_E_OLE1DDE_DISABLED = (DWORD)((0x80004016));
+int CO_E_RUNAS_SYNTAX = (DWORD)((0x80004017));
+int CO_E_CREATEPROCESS_FAILURE = (DWORD)((0x80004018));
+int CO_E_RUNAS_CREATEPROCESS_FAILURE = (DWORD)((0x80004019));
+int CO_E_RUNAS_LOGON_FAILURE = (DWORD)((0x8000401A));
+int CO_E_LAUNCH_PERMSSION_DENIED = (DWORD)((0x8000401B));
+int CO_E_START_SERVICE_FAILURE = (DWORD)((0x8000401C));
+int CO_E_REMOTE_COMMUNICATION_FAILURE = (DWORD)((0x8000401D));
+int CO_E_SERVER_START_TIMEOUT = (DWORD)((0x8000401E));
+int CO_E_CLSREG_INCONSISTENT = (DWORD)((0x8000401F));
+int CO_E_IIDREG_INCONSISTENT = (DWORD)((0x80004020));
+int CO_E_NOT_SUPPORTED = (DWORD)((0x80004021));
+int CO_E_FIRST = (DWORD)((0x800401F0));
+int CO_E_LAST = (DWORD)((0x800401FF));
+int CO_S_FIRST = (0x401F0);
+int CO_E_NOTINITIALIZED = (DWORD)((0x800401F0));
+int CO_E_ALREADYINITIALIZED = (DWORD)((0x800401F1));
+int CO_E_CANTDETERMINECLASS = (DWORD)((0x800401F2));
+int CO_E_CLASSSTRING = (DWORD)((0x800401F3));
+int CO_E_IIDSTRING = (DWORD)((0x800401F4));
+int CO_E_APPNOTFOUND = (DWORD)((0x800401F5));
+int CO_E_APPSINGLEUSE = (DWORD)((0x800401F6));
+int CO_E_ERRORINAPP = (DWORD)((0x800401F7));
+int CO_E_DLLNOTFOUND = (DWORD)((0x800401F8));
+int CO_E_ERRORINDLL = (DWORD)((0x800401F9));
+int CO_E_WRONGOSFORAPP = (DWORD)((0x800401FA));
+int CO_E_OBJNOTREG = (DWORD)((0x800401FB));
+int CO_E_OBJISREG = (DWORD)((0x800401FC));
+int CO_E_OBJNOTCONNECTED = (DWORD)((0x800401FD));
+int CO_E_APPDIDNTREG = (DWORD)((0x800401FE));
+int CO_E_RELEASED = (DWORD)((0x800401FF));
+*/
+
+} // !TANGOSVN
+
+///////////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// missing in tango
+//alias TLOGFONTA* LPLOGFONTA;
+//alias TLOGFONTA LOGFONTA;
+//alias char CHAR;
+alias OPENFILENAME OPENFILENAMEW;
+alias OPENFILENAME OPENFILENAMEA;
+//alias WNDCLASS_T   WNDCLASS;
+
+//alias TCLSID *REFCLSID;
+
+//interface IUnknown{}
+//alias IUnknown LPUNKNOWN;
+
+
+struct SCRIPT_DIGITSUBSTITUTE {
+  ushort NationalDigitLanguage;
+  ushort TraditionalDigitLanguage;
+  DWORD DigitSubstitute;
+  DWORD dwReserved;
+}
+
+struct BUTTON_IMAGELIST {
+    HIMAGELIST himl;
+    RECT margin;
+    UINT uAlign;
+}
+
+alias HANDLE HTHEME;
+
+struct NMREBARCHILDSIZE {
+    NMHDR hdr;
+    UINT uBand;
+    UINT wID;
+    RECT rcChild;
+    RECT rcBand;
+}
+const int MAX_LINKID_TEXT = 48;
+const int L_MAX_URL_LENGTH = 2084;
+struct LITEM {
+    UINT mask;
+    int iLink;
+    UINT state;
+    UINT stateMask;
+    WCHAR szID[MAX_LINKID_TEXT];
+    WCHAR szUrl[L_MAX_URL_LENGTH];
+}
+struct NMLINK {
+    NMHDR hdr;
+    LITEM item;
+}
+struct NMLVODSTATECHANGE {
+  NMHDR hdr;
+  int iFrom;
+  int iTo;
+  UINT uNewState;
+  UINT uOldState;
+}
+struct NMTBHOTITEM {
+    NMHDR hdr;
+    int idOld;
+    int idNew;
+    DWORD dwFlags;
+}
+struct NMTVDISPINFO {
+    NMHDR hdr;
+    TVITEM item;
+}
+
+// only on Vista
+struct NMTVITEMCHANGE {
+    NMHDR hdr;
+    UINT uChanged;
+    HTREEITEM hItem;
+    UINT uStateNew;
+    UINT uStateOld;
+    LPARAM lParam;
+}
+
+struct ACTCTXA {
+  ULONG cbSize;
+  DWORD dwFlags;
+  LPCSTR lpSource;
+  USHORT wProcessorArchitecture;
+  LANGID wLangId;
+  LPCTSTR lpAssemblyDirectory;
+  LPCTSTR lpResourceName;
+  LPCTSTR lpApplicationName;
+  HMODULE hModule;
+}
+struct ACTCTXW {
+  ULONG cbSize;
+  DWORD dwFlags;
+  LPCWSTR lpSource;
+  USHORT wProcessorArchitecture;
+  LANGID wLangId;
+  LPCTSTR lpAssemblyDirectory;
+  LPCTSTR lpResourceName;
+  LPCTSTR lpApplicationName;
+  HMODULE hModule;
+}
+version(Win32SansUnicode) alias ACTCTXA ACTCTX;
+else          alias ACTCTXW ACTCTX;
+alias HANDLE HACTCTX;
+
+struct OSVERSIONINFOEX
+{
+  DWORD dwOSVersionInfoSize;
+  DWORD dwMajorVersion;
+  DWORD dwMinorVersion;
+  DWORD dwBuildNumber;
+  DWORD dwPlatformId;
+  TCHAR szCSDVersion[128];
+  WORD wServicePackMajor;
+  WORD wServicePackMinor;
+  WORD wSuiteMask;
+  BYTE wProductType;
+  BYTE wReserved;
+}
+
+
+
+// ....
+//--------------------------------------------------------------------------------
+
+// const int LF_FACESIZE = 32;
+// const int LF_FULLFACESIZE = 64;
+
+alias HANDLE HIMC;
+// alias HANDLE HTREEITEM;
+//alias HANDLE HDWP;
+//alias HANDLE HIMAGELIST;
+//alias HANDLE HMONITOR;
+//alias HANDLE HHOOK;
+//alias HANDLE HDROP;
+//alias HANDLE *LPHANDLE;
+
+alias HRESULT WINOLEAPI;
+// alias LPRECT LPCRECT;
+// alias LPRECT LPCRECTL;
+alias DWORD LGRPID;
+//alias LONG LONG_PTR;
+//alias ULONG ULONG_PTR;
+//alias DWORD DWORD_PTR;
+//alias int INT_PTR;
+//alias uint UINT_PTR;
+// alias DWORD LCID;
+// alias DWORD LCTYPE;
+alias USHORT COLOR16;
+
+//alias POINT POINTL;
+
+//alias long LONGLONG;
+//alias ulong DWORDLONG;
+
+//alias LONGLONG  *PLONGLONG;
+//alias DWORDLONG *PDWORDLONG;
+alias size_t    SIZE_T;
+//alias int       WPARAM_I;
+
+extern(Windows){
+
+/**
+ * Since Eclipse/SWT uses int as (msg, wparam, lparam) and some times check the value against (-1),
+ * but WNDPROC_I declared in windows header the (msg, wparam) is UINT which will never be -1 but 0xFFFF or
+ * something else. This made some SWT API failed. to fix the problem, it better to declare (msg, wparam)
+ * as int like Eclispe/SWT does. and we alias int to WPARAM_I.
+ */
+// alias LRESULT function(HWND, uint, uint, int) WNDPROC_I;
+// alias LRESULT function(int code, int wParam, LPARAM lParam) HOOKPROC_I;
+//
+// // Windows CALLBACK declaration here
+// alias WNDPROC_I BFFCALLBACK;        // browse for fold
+// alias WNDPROC_I LPCCHOOKPROC_I;     // choose color
+// alias WNDPROC_I LPCFHOOKPROC_I;     // choose font
+// alias WNDPROC_I LPPRINTHOOKPROC_I;  // print hook
+// alias WNDPROC_I LPSETUPHOOKPROC_I;  // print setup
+// alias WNDPROC_I TIMERPROC_I;        // timer
+
+alias LRESULT function (
+    int code,       // hook code
+    int wParam,  // undefined
+    int lParam   // address of structure with message data
+) MESSAGEPROC;
+
+
+//alias BOOL function (
+//  HMONITOR hMonitor,  // handle to display monitor
+//  HDC hdcMonitor,     // handle to monitor-appropriate device context
+//  LPRECT lprcMonitor, // pointer to monitor intersection rectangle
+//  LPARAM dwData       // data passed from EnumDisplayMonitors
+//) MONITORENUMPROC;
+
+//alias int function(
+//  ENUMLOGFONT *lpelf,    // logical-font data
+//  NEWTEXTMETRIC *lpntm,  // physical-font data
+//  DWORD FontType,        // type of font
+//  LPARAM lParam          // application-defined data
+//)FONTENUMPROC;
+
+//alias int function(
+//  ENUMLOGFONTEX *lpelfe,    // logical-font data
+//  NEWTEXTMETRICEX *lpntme,  // physical-font data
+//  DWORD FontType,           // type of font
+//  LPARAM lParam             // application-defined data
+//)FONTENUMEXPROC;
+
+alias BOOL function (
+  LGRPID LanguageGroup,             // language-group identifier
+  TCHAR* lpLanguageGroupString,     // language-group identifier string
+  TCHAR* lpLanguageGroupNameString, // language-group name string
+  DWORD dwFlags,                    // options
+  LONG_PTR  lParam                  // callback parameter
+)LANGUAGEGROUP_ENUMPROC;
+
+//alias BOOL function (
+//  TCHAR* lpLocaleString   // locale identifier string
+//)LOCALE_ENUMPROC;
+
+
+// end of Windows CALLBACK declaration
+
+
+
+//struct ABC {
+//    int     abcA;
+//    UINT    abcB;
+//    int     abcC;
+//}
+//alias ABC* PABC, LPABC;
+
+// declared in tango
+//struct ACCEL {
+//    align(1):
+//    BYTE   fVirt;
+//    WORD   key;
+//    WORD   cmd;
+//}
+//alias ACCEL* PACCEL, LPACCEL;
+
+// declared in phobos
+//struct BITMAP {
+//  int bmType;
+//  int bmWidth;
+//  int bmHeight;
+//  int bmWidthBytes;
+//  short bmPlanes;
+//  short bmBitsPixel;
+//  void* bmBits;
+//}
+
+//struct RGBQUAD { // rgbq
+//    byte    rgbBlue;
+//    byte    rgbGreen;
+//    byte    rgbRed;
+//    byte    rgbReserved;
+//}
+
+// declared in phobos
+//struct BITMAPINFO { // bmi
+//    BITMAPINFOHEADER bmiHeader;
+//    RGBQUAD          bmiColors[1];
+//}
+
+//struct BITMAPINFOHEADER {
+//  int biSize;
+//  int biWidth;
+//  int biHeight;
+//  short biPlanes;
+//  short biBitCount;
+//  int biCompression;
+//  int biSizeImage;
+//  int biXPelsPerMeter;
+//  int biYPelsPerMeter;
+//  int biClrUsed;
+//  int biClrImportant;
+//}
+
+
+
+//struct CHARSETINFO {
+//    UINT ciCharset;
+//    UINT ciACP;
+//    FONTSIGNATURE fs;
+//}alias CHARSETINFO* PCHARSETINFO, LPCHARSETINFO;
+
+
+
+
+struct COMBOBOXINFO {
+    DWORD cbSize;
+    RECT rcItem;
+    RECT rcButton;
+    DWORD stateButton;
+    HWND hwndCombo;
+    HWND hwndItem;
+    HWND hwndList;
+} alias COMBOBOXINFO* PCOMBOBOXINFO, LPCOMBOBOXINFO;
+
+//struct COMPOSITIONFORM {
+//    DWORD dwStyle;
+//    POINT ptCurrentPos;
+//    RECT rcArea;
+//}
+//alias COMPOSITIONFORM* LPCOMPOSITIONFORM;
+
+// const uint CCHDEVICENAME = 32;
+// const uint CCHFORMNAME = 32;
+
+struct DEVMODEA {    // dvmd
+    BYTE   dmDeviceName[CCHDEVICENAME];
+    WORD   dmSpecVersion;
+    WORD   dmDriverVersion;
+    WORD   dmSize;
+    WORD   dmDriverExtra;
+    DWORD  dmFields;
+//    union {
+//      struct {
+//        short dmOrientation;
+//        short dmPaperSize;
+//        short dmPaperLength;
+//        short dmPaperWidth;
+//      };
+//      POINTL dmPosition;
+//    };
+    POINT  dmPosition;
+    short  dmScale;
+    short  dmCopies;
+    short  dmDefaultSource;
+    short  dmPrintQuality;
+    short  dmColor;
+    short  dmDuplex;
+    short  dmYResolution;
+    short  dmTTOption;
+    short  dmCollate;
+    BYTE  dmFormName[CCHFORMNAME];
+    WORD  dmLogPixels;
+    DWORD  dmBitsPerPel;
+    DWORD  dmPelsWidth;
+    DWORD  dmPelsHeight;
+    DWORD  dmDisplayFlags;
+    DWORD  dmDisplayFrequency;
+//#if(WINVER >= 0x0400)
+    DWORD  dmICMMethod;
+    DWORD  dmICMIntent;
+    DWORD  dmMediaType;
+    DWORD  dmDitherType;
+    DWORD  dmReserved1;
+    DWORD  dmReserved2;
+//#if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)
+    DWORD  dmPanningWidth;
+    DWORD  dmPanningHeight;
+//#endif
+//#endif /* WINVER >= 0x0400 */
+}
+
+struct DEVMODEW {    // dvmd
+    WCHAR  dmDeviceName[CCHDEVICENAME];
+    WORD   dmSpecVersion;
+    WORD   dmDriverVersion;
+    WORD   dmSize;
+    WORD   dmDriverExtra;
+    DWORD  dmFields;
+//    union {
+//      struct {
+//        short dmOrientation;
+//        short dmPaperSize;
+//        short dmPaperLength;
+//        short dmPaperWidth;
+//      };
+      POINTL dmPosition;
+//    };
+    short  dmScale;
+    short  dmCopies;
+    short  dmDefaultSource;
+    short  dmPrintQuality;
+    short  dmColor;
+    short  dmDuplex;
+    short  dmYResolution;
+    short  dmTTOption;
+    short  dmCollate;
+    WCHAR dmFormName[CCHFORMNAME];
+    WORD  dmLogPixels;
+    DWORD  dmBitsPerPel;
+    DWORD  dmPelsWidth;
+    DWORD  dmPelsHeight;
+    DWORD  dmDisplayFlags;
+    DWORD  dmDisplayFrequency;
+//#if(WINVER >= 0x0400)
+    DWORD  dmICMMethod;
+    DWORD  dmICMIntent;
+    DWORD  dmMediaType;
+    DWORD  dmDitherType;
+    DWORD  dmReserved1;
+    DWORD  dmReserved2;
+//#if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)
+    DWORD  dmPanningWidth;
+    DWORD  dmPanningHeight;
+//#endif
+//#endif /* WINVER >= 0x0400 */
+}
+
+//PORTING_TODO: defined in tango
+//version(Win32SansUnicode){
+//    alias DEVMODEA DEVMODE;
+//}else{
+//    alias DEVMODEW DEVMODE;
+//}
+
+//struct DIBSECTION {
+//    // BITMAP
+//    int bmType;
+//    int bmWidth;
+//    int bmHeight;
+//    int bmWidthBytes;
+//    short bmPlanes;
+//    short bmBitsPixel;
+//    void* bmBits;
+//    // end BITMAP
+//    int biSize;
+//    int biWidth;
+//    int biHeight;
+//    short biPlanes;
+//    short biBitCount;
+//    int biCompression;
+//    int biSizeImage;
+//    int biXPelsPerMeter;
+//    int biYPelsPerMeter;
+//    int biClrUsed;
+//    int biClrImportant;
+//    int dsBitfields0;
+//    int dsBitfields1;
+//    int dsBitfields2;
+//    int dshSection;
+//    int dsOffset;
+//}
+
+struct DLLVERSIONINFO {
+    DWORD cbSize;
+    DWORD dwMajorVersion;
+    DWORD dwMinorVersion;
+    DWORD dwBuildNumber;
+    DWORD dwPlatformID;
+}
+
+
+
+struct DROPFILES {
+    DWORD  pFiles; // Offset of the file list from the beginning of this structure, in bytes.
+    POINT pt; // Drop point. The coordinates depend on fNC.
+    BOOL fNC;   // Nonclient area flag. If this member is TRUE, pt specifies the screen
+                      // coordinates of a point in a window's nonclient area. If it is FALSE,
+                      // pt specifies the client coordinates of a point in the client area.
+    BOOL fWide; // Value that indicates whether the file contains ANSI or Unicode
+                      // characters. If it is zero, it contains ANSI characters. Otherwise, it
+                      // contains Unicode characters.
+
+}
+
+
+// struct ENUMLOGFONTA {
+//   LOGFONTA elfLogFont;
+//   CHAR   elfFullName[LF_FULLFACESIZE];
+//   CHAR   elfStyle[LF_FACESIZE];
+// }
+// struct ENUMLOGFONTW {
+//   LOGFONTW elfLogFont;
+//   WCHAR   elfFullName[LF_FULLFACESIZE];
+//   WCHAR   elfStyle[LF_FACESIZE];
+// }
+// struct ENUMLOGFONTEXA {
+//     LOGFONTA  elfLogFont;
+//     BYTE  elfFullName[LF_FULLFACESIZE];
+//     BYTE  elfStyle[LF_FACESIZE];
+//     BYTE  elfScript[LF_FACESIZE];
+// }
+// struct ENUMLOGFONTEXW {
+//     LOGFONTW  elfLogFont;
+//     WCHAR  elfFullName[LF_FULLFACESIZE];
+//     WCHAR  elfStyle[LF_FACESIZE];
+//     WCHAR  elfScript[LF_FACESIZE];
+// }
+// version(Win32SansUnicode){
+//     alias ENUMLOGFONTA ENUMLOGFONT;
+//     alias ENUMLOGFONTEXA ENUMLOGFONTEX;
+// }else {
+//     alias ENUMLOGFONTW ENUMLOGFONT;
+//     alias ENUMLOGFONTEXW ENUMLOGFONTEX;
+// }
+
+// in phobos aready
+//struct FILETIME {
+//    DWORD dwLowDateTime;
+//    DWORD dwHighDateTime;
+//}
+
+
+
+struct GOFFSET {
+  LONG  du;
+  LONG  dv;
+}
+
+struct GRADIENT_RECT {
+  ULONG    UpperLeft;
+  ULONG    LowerRight;
+}
+
+struct GUITHREADINFO {
+    DWORD cbSize;
+    DWORD flags;
+    HWND hwndActive;
+    HWND hwndFocus;
+    HWND hwndCapture;
+    HWND hwndMenuOwner;
+    HWND hwndMoveSize;
+    HWND hwndCaret;
+    RECT rcCaret;
+}alias GUITHREADINFO* PGUITHREADINFO, LPGUITHREADINFO;
+
+struct HDITEMA {
+    UINT    mask;
+    int     cxy;
+    LPSTR  pszText;
+    HBITMAP hbm;
+    int     cchTextMax;
+    int     fmt;
+    LPARAM  lParam;
+//#if (_WIN32_IE >= 0x0300)
+    int     iImage;
+    int     iOrder;
+//#endif
+//#if (_WIN32_IE >= 0x0500)
+    UINT    type;
+    void    *pvFilter;
+//#endif
+//#if _WIN32_WINNT >= 0x0600
+//    UINT   state;
+//#endif
+}
+struct HDITEMW {
+    UINT    mask;
+    int     cxy;
+    LPWSTR  pszText;
+    HBITMAP hbm;
+    int     cchTextMax;
+    int     fmt;
+    LPARAM  lParam;
+//#if (_WIN32_IE >= 0x0300)
+    int     iImage;
+    int     iOrder;
+//#endif
+//#if (_WIN32_IE >= 0x0500)
+    UINT    type;
+    void    *pvFilter;
+//#endif
+//#if _WIN32_WINNT >= 0x0600
+//    UINT   state;
+//#endif
+}
+version(Win32SansUnicode){
+    alias HDITEMA HDITEM;
+}else{
+    alias HDITEMW HDITEM;
+}
+alias HDITEM* LPHDITEM;
+
+
+//struct ICONINFO {
+//   BOOL    fIcon;
+//   DWORD   xHotspot;
+//   DWORD   yHotspot;
+//   HBITMAP hbmMask;
+//   HBITMAP hbmColor;
+//}
+//alias ICONINFO*  PICONINFO, LPICONINFO;
+
+struct INITCOMMONCONTROLSEX {
+    DWORD dwSize;
+    DWORD dwICC;
+}alias INITCOMMONCONTROLSEX* PINITCOMMONCONTROLSEX, LPINITCOMMONCONTROLSEX;
+
+struct INPUT {
+    // Note: <Shawn> sizeof = 28
+    int type;
+  union {
+        MOUSEINPUT mi;
+        KEYBDINPUT ki;
+//        HARDWAREINPUT hi;
+    }
+}alias INPUT* PINPUT, LPINPUT;
+
+//struct ITEMIDLIST {
+//    SHITEMID mkid;
+//}
+//alias ITEMIDLIST* PITEMIDLIST, LPITEMIDLIST, LPCITEMIDLIST;
+
+struct KEYBDINPUT {
+    WORD wVk;
+    WORD wScan;
+    DWORD dwFlags;
+    DWORD time;
+    ULONG_PTR dwExtraInfo;
+}
+
+
+// struct LOGBRUSH {
+//   UINT     lbStyle;
+//   COLORREF lbColor;
+//   LONG     lbHatch;
+// }
+
+
+
+struct LVFINDINFOA {
+    UINT flags;
+    LPCSTR psz;
+    LPARAM lParam;
+    POINT pt;
+    UINT vkDirection;
+}
+alias LVFINDINFOA* LPFINDINFOA;
+struct LVFINDINFOW {
+    UINT flags;
+    LPCWSTR psz;
+    LPARAM lParam;
+    POINT pt;
+    UINT vkDirection;
+}
+alias LVFINDINFOW* LPFINDINFOW;
+
+version(Win32SansUnicode){
+    alias LVFINDINFOA LVFINDINFO;
+}else{
+    alias LVFINDINFOW LVFINDINFO;
+}
+
+
+struct MARGINS {
+    int cxLeftWidth;
+    int cxRightWidth;
+    int cyTopHeight;
+    int cyBottomHeight;
+}
+
+struct MENUBARINFO {
+  DWORD cbSize;
+  RECT  rcBar;
+  HMENU hMenu;
+  HWND  hwndMenu;
+  BOOL  flags;
+    //fBarFocused : 1;
+    //fFocused    : 1;
+}
+alias MENUBARINFO* PMENUBARINFO;
+alias MENUBARINFO* LPMENUBARINFO;
+
+struct MENUINFO {
+  DWORD   cbSize;
+  DWORD   fMask;
+  DWORD   dwStyle;
+  UINT    cyMax;
+  HBRUSH  hbrBack;
+  DWORD   dwContextHelpID;
+  ULONG_PTR  dwMenuData;
+}
+alias MENUINFO* PCMENUINFO, LPCMENUINFO, LPCCMENUINFO;
+
+/*
+* Feature in Windows.  The hbmpItem field requires Windows 4.10
+* or greater.  On Windows NT 4.0, passing in a larger struct size
+* in the cbSize field does nothing.  On Windows 95, the MENUITEMINFO
+* calls fail when the struct size is too large.  The fix is to ensure
+* that the correct struct size is used for the Windows platform.
+*/
+// struct MENUITEMINFOA
+// {
+//     UINT    cbSize;
+//     UINT    fMask;
+//     UINT    fType;          // used if MIIM_TYPE
+//     UINT    fState;         // used if MIIM_STATE
+//     UINT    wID;            // used if MIIM_ID
+//     HMENU   hSubMenu;       // used if MIIM_SUBMENU
+//     HBITMAP hbmpChecked;    // used if MIIM_CHECKMARKS
+//     HBITMAP hbmpUnchecked;  // used if MIIM_CHECKMARKS
+//     DWORD   dwItemData;     // used if MIIM_DATA
+//     LPSTR   dwTypeData;     // used if MIIM_TYPE
+//     UINT    cch;            // used if MIIM_TYPE
+//     HBITMAP hbmpItem;
+// }
+// alias MENUITEMINFOA* PMENUITEMINFOA, LPMENUITEMINFOA;
+// struct MENUITEMINFOW
+// {
+//     UINT    cbSize;
+//     UINT    fMask;
+//     UINT    fType;          // used if MIIM_TYPE
+//     UINT    fState;         // used if MIIM_STATE
+//     UINT    wID;            // used if MIIM_ID
+//     HMENU   hSubMenu;       // used if MIIM_SUBMENU
+//     HBITMAP hbmpChecked;    // used if MIIM_CHECKMARKS
+//     HBITMAP hbmpUnchecked;  // used if MIIM_CHECKMARKS
+//     DWORD   dwItemData;     // used if MIIM_DATA
+//     LPWSTR  dwTypeData;     // used if MIIM_TYPE
+//     UINT    cch;            // used if MIIM_TYPE
+//     HBITMAP hbmpItem;
+// }   alias MENUITEMINFOW* PMENUITEMINFOW, LPMENUITEMINFOW;
+//version(Win32SansUnicode){
+//    alias MENUITEMINFOA MENUITEMINFO;
+//}else{
+//    alias MENUITEMINFOW MENUITEMINFO;
+//}
+//alias MENUITEMINFO * LPMENUITEMINFO;
+
+
+//struct MONITORINFO {
+//    DWORD  cbSize;
+//    RECT   rcMonitor;
+//    RECT   rcWork;
+//    DWORD  dwFlags;
+//}
+//alias MONITORINFO* PMONITORINFO, LPMONITORINFO;
+
+struct MOUSEINPUT {
+    LONG      dx;
+    LONG      dy;
+    DWORD     mouseData;
+    DWORD     dwFlags;
+    DWORD     time;
+    ULONG_PTR dwExtraInfo;
+}
+
+//struct MSG {
+//  int hwnd;
+//  int message;
+//  int wParam;
+//  int lParam;
+//  int time;
+////    POINT pt;
+//  int x, y;
+//}
+/+
+struct NEWTEXTMETRICA { // ntm
+    LONG   tmHeight;
+    LONG   tmAscent;
+    LONG   tmDescent;
+    LONG   tmInternalLeading;
+    LONG   tmExternalLeading;
+    LONG   tmAveCharWidth;
+    LONG   tmMaxCharWidth;
+    LONG   tmWeight;
+    LONG   tmOverhang;
+    LONG   tmDigitizedAspectX;
+    LONG   tmDigitizedAspectY;
+    BYTE  tmFirstChar;
+    BYTE  tmLastChar;
+    BYTE  tmDefaultChar;
+    BYTE  tmBreakChar;
+    BYTE   tmItalic;
+    BYTE   tmUnderlined;
+    BYTE   tmStruckOut;
+    BYTE   tmPitchAndFamily;
+    BYTE   tmCharSet;
+    DWORD  ntmFlags;
+    UINT   ntmSizeEM;
+    UINT   ntmCellHeight;
+    UINT   ntmAvgWidth;
+}
+struct NEWTEXTMETRICW { // ntm
+    LONG   tmHeight;
+    LONG   tmAscent;
+    LONG   tmDescent;
+    LONG   tmInternalLeading;
+    LONG   tmExternalLeading;
+    LONG   tmAveCharWidth;
+    LONG   tmMaxCharWidth;
+    LONG   tmWeight;
+    LONG   tmOverhang;
+    LONG   tmDigitizedAspectX;
+    LONG   tmDigitizedAspectY;
+    WCHAR  tmFirstChar;
+    WCHAR  tmLastChar;
+    WCHAR  tmDefaultChar;
+    WCHAR  tmBreakChar;
+    BYTE   tmItalic;
+    BYTE   tmUnderlined;
+    BYTE   tmStruckOut;
+    BYTE   tmPitchAndFamily;
+    BYTE   tmCharSet;
+    DWORD  ntmFlags;
+    UINT   ntmSizeEM;
+    UINT   ntmCellHeight;
+    UINT   ntmAvgWidth;
+}
+struct NEWTEXTMETRICEXA {
+    NEWTEXTMETRICA  ntmentm;
+    FONTSIGNATURE  ntmeFontSignature;
+}
+struct NEWTEXTMETRICEXW {
+    NEWTEXTMETRICW  ntmentm;
+    FONTSIGNATURE  ntmeFontSignature;
+}
+version(Win32SansUnicode){
+    alias NEWTEXTMETRICA NEWTEXTMETRIC;
+    alias NEWTEXTMETRICEXA NEWTEXTMETRICEX;
+}else{
+    alias NEWTEXTMETRICW NEWTEXTMETRIC;
+    alias NEWTEXTMETRICEXW NEWTEXTMETRICEX;
+}
++/
+
+struct NMCUSTOMDRAW {
+    NMHDR  hdr;
+    DWORD  dwDrawStage;
+    HDC    hdc;
+    RECT   rc;
+    DWORD_PTR dwItemSpec;
+    UINT   uItemState;
+    LPARAM lItemlParam;
+}
+
+struct NMHEADER {
+    NMHDR    hdr;
+    int      iItem;
+    int      iButton;
+    HDITEM  *pitem;
+}
+
+struct NMLISTVIEW {
+    NMHDR   hdr;
+    int     iItem;
+    int     iSubItem;
+    UINT    uNewState;
+    UINT    uOldState;
+    UINT    uChanged;
+    POINT   ptAction;
+    LPARAM  lParam;
+}
+
+struct NMLVCUSTOMDRAW {
+    NMCUSTOMDRAW nmcd;
+    COLORREF clrText;
+    COLORREF clrTextBk;
+//#if (_WIN32_IE >= 0x0400)
+    int iSubItem;
+//#endif
+//if (_WIN32_IE >= 0x560)
+    DWORD dwItemType;
+    // Item Custom Draw	
+    COLORREF clrFace;
+    int iIconEffect;
+    int iIconPhase;
+    int iPartId;
+    int iStateId;
+    // Group Custom Draw
+    RECT rcText;
+    UINT uAlign;
+//endif
+}
+
+struct NMLVDISPINFOA {
+    NMHDR hdr;
+    LVITEMA item;
+}
+struct NMLVDISPINFOW {
+    NMHDR hdr;
+    LVITEMW item;
+}
+version(Win32SansUnicode){
+    alias NMLVDISPINFOA NMLVDISPINFO;
+}else{
+    alias NMLVDISPINFOW NMLVDISPINFO;
+}
+
+struct NMLVFINDITEMA {
+    NMHDR hdr;
+    int iStart;
+    LVFINDINFOA lvfi;
+}
+
+struct NMLVFINDITEMW {
+    NMHDR hdr;
+    int iStart;
+    LVFINDINFOW lvfi;
+}
+version(Win32SansUnicode){
+    alias NMLVFINDITEMA NMLVFINDITEM;
+}else{
+    alias NMLVFINDITEMW NMLVFINDITEM;
+}
+
+struct NMREBARCHEVRON {
+    NMHDR hdr;
+    UINT uBand;
+    UINT wID;
+    LPARAM lParam;
+    RECT rc;
+    LPARAM lParamNM;
+}
+
+struct NMRGINFO {
+    // NMHDR
+    HWND hwndFrom;
+    int idFrom;
+    int code;
+    // -end- NMHDR
+//  POINT ptAction;
+    int x;
+    int y;
+    int dwItemSpec;
+}
+
+
+struct NMTVCUSTOMDRAW {
+    NMCUSTOMDRAW nmcd;
+    COLORREF clrText;
+    COLORREF clrTextBk;
+//#if (_WIN32_IE &gt;= 0x0400)
+    int iLevel; // the iLevel field does not appear on WinCE
+//#endif
+}
+
+
+struct NOTIFYICONDATAA {
+    DWORD cbSize;
+    HWND hWnd;
+    UINT uID;
+    UINT uFlags;
+    UINT uCallbackMessage;
+    HICON hIcon;
+    char szTip[128] = '\0';
+    DWORD dwState;
+    DWORD dwStateMask;
+    char szInfo[256] = '\0';
+    union {
+        UINT uTimeout;
+        UINT uVersion;
+    };
+    char szInfoTitle[64] = '\0';
+    DWORD dwInfoFlags;
+    GUID guidItem;
+    HICON hBalloonIcon;
+} alias NOTIFYICONDATAA* PNOTIFYICONDATAA, LPNOTIFYICONDATAA;
+
+struct NOTIFYICONDATAW {
+    DWORD cbSize;
+    HWND hWnd;
+    UINT uID;
+    UINT uFlags;
+    UINT uCallbackMessage;
+    HICON hIcon;
+    WCHAR szTip[128] = '\0';
+    DWORD dwState;
+    DWORD dwStateMask;
+    WCHAR szInfo[256] = '\0';
+    union {
+        UINT uTimeout;
+        UINT uVersion;
+    }
+    WCHAR szInfoTitle[64] = '\0';
+    DWORD dwInfoFlags;
+    GUID guidItem;
+    HICON hBalloonIcon;
+}
+
+alias NOTIFYICONDATAW* PNOTIFYICONDATAW, LPNOTIFYICONDATAW;
+version(Win32SansUnicode){
+    alias NOTIFYICONDATAA NOTIFYICONDATA;
+}else{
+    alias NOTIFYICONDATAW NOTIFYICONDATA;
+}
+
+/* already in phobos now
+
+struct OPENFILENAMEA {
+   DWORD        lStructSize;
+   HWND         hwndOwner;
+   HINSTANCE    hInstance;
+   LPCSTR       lpstrFilter;
+   LPSTR        lpstrCustomFilter;
+   DWORD        nMaxCustFilter;
+   DWORD        nFilterIndex;
+   LPSTR        lpstrFile;
+   DWORD        nMaxFile;
+   LPSTR        lpstrFileTitle;
+   DWORD        nMaxFileTitle;
+   LPCSTR       lpstrInitialDir;
+   LPCSTR       lpstrTitle;
+   DWORD        Flags;
+   WORD         nFileOffset;
+   WORD         nFileExtension;
+   LPCSTR       lpstrDefExt;
+   LPARAM       lCustData;
+   LPOFNHOOKPROC lpfnHook;
+   LPCSTR       lpTemplateName;
+}
+
+struct OPENFILENAMEW {
+   DWORD        lStructSize;
+   HWND         hwndOwner;
+   HINSTANCE    hInstance;
+   LPCWSTR      lpstrFilter;
+   LPWSTR       lpstrCustomFilter;
+   DWORD        nMaxCustFilter;
+   DWORD        nFilterIndex;
+   LPWSTR       lpstrFile;
+   DWORD        nMaxFile;
+   LPWSTR       lpstrFileTitle;
+   DWORD        nMaxFileTitle;
+   LPCWSTR      lpstrInitialDir;
+   LPCWSTR      lpstrTitle;
+   DWORD        Flags;
+   WORD         nFileOffset;
+   WORD         nFileExtension;
+   LPCWSTR      lpstrDefExt;
+   LPARAM       lCustData;
+   LPOFNHOOKPROC lpfnHook;
+   LPCWSTR      lpTemplateName;
+}
+*/
+
+//PORTING_TODO: is needed?
+//version(Win32SansUnicode){
+//    alias OPENFILENAMEA OPENFILENAME;
+//}else{
+//    alias OPENFILENAMEW OPENFILENAME;
+//}
+
+
+//struct PAINTSTRUCT {
+//  int hdc;
+//  int fErase;
+////    RECT rcPaint;
+//  public int left, top, right, bottom;
+//  int fRestore;
+//  int fIncUpdate;
+//  byte rgbReserved[32];
+//}
+//alias windows.PAINTSTRUCT PAINTSTRUCT;
+
+//struct POINT {
+//  LONG x, y;
+//}
+
+
+struct REBARBANDINFOA {
+    UINT        cbSize;
+    UINT        fMask;
+    UINT        fStyle;
+    COLORREF    clrFore;
+    COLORREF    clrBack;
+    LPSTR      lpText;
+    UINT        cch;
+    int         iImage;
+    HWND        hwndChild;
+    UINT        cxMinChild;
+    UINT        cyMinChild;
+    UINT        cx;
+    HBITMAP     hbmBack;
+    UINT        wID;
+//if (_WIN32_IE >= 0x0400)
+    UINT        cyChild;
+    UINT        cyMaxChild;
+    UINT        cyIntegral;
+    UINT        cxIdeal;
+    LPARAM      lParam;
+    UINT        cxHeader;
+    /* Note in WinCE.  The field cxHeader is not defined. */
+//endif
+//if (_WIN32_WINNT >= 0x0600)
+//    RECT        rcChevronLocation;  
+//    UINT        uChevronState; 
+//endif
+}
+struct REBARBANDINFOW {
+    UINT        cbSize;
+    UINT        fMask;
+    UINT        fStyle;
+    COLORREF    clrFore;
+    COLORREF    clrBack;
+    LPWSTR      lpText;
+    UINT        cch;
+    int         iImage;
+    HWND        hwndChild;
+    UINT        cxMinChild;
+    UINT        cyMinChild;
+    UINT        cx;
+    HBITMAP     hbmBack;
+    UINT        wID;
+//if (_WIN32_IE >= 0x0400)
+    UINT        cyChild;
+    UINT        cyMaxChild;
+    UINT        cyIntegral;
+    UINT        cxIdeal;
+    LPARAM      lParam;
+    UINT        cxHeader;
+    /* Note in WinCE.  The field cxHeader is not defined. */
+//endif
+//if (_WIN32_WINNT >= 0x0600)
+//    RECT        rcChevronLocation;  
+//    UINT        uChevronState; 
+//endif
+}
+version(Win32SansUnicode){
+    alias REBARBANDINFOA REBARBANDINFO;
+}else{
+    alias REBARBANDINFOW REBARBANDINFO;
+}
+
+//struct RECT {
+//  int left;
+//  int top;
+//  int right;
+//  int bottom;
+//}
+
+//struct RGNDATA {
+//    RGNDATAHEADER rdh;
+//    char          Buffer[1];
+//} alias RGNDATA* PRGNDATA, LPRGNDATA;
+
+
+
+template BITWISE(T)
+{
+    // bit value set
+    void btvs(T* pData, uint bitnum, uint val){
+        *pData &=  ~(0x01 << bitnum);
+        if(val) *pData |= (0x01 << bitnum);
+    }
+    // bit value get
+    T btvg(T* pData, uint bitnum){
+        return cast(T)((*pData >> bitnum) & 0x01);
+    }
+}
+alias BITWISE!(BYTE).btvs btvs;
+alias BITWISE!(WORD).btvs btvs;
+alias BITWISE!(DWORD).btvs btvs;
+alias BITWISE!(BYTE).btvg btvg;
+alias BITWISE!(WORD).btvg btvg;
+alias BITWISE!(DWORD).btvg btvg;
+
+
+struct SCRIPT_ANALYSIS {
+    WORD BITS;
+    SCRIPT_STATE s;
+
+    // getter
+    uint eScript()      { return BITS & 0x03FFU; }
+    uint fRTL()         { return btvg(&BITS, 10); }
+    uint fLayoutRTL()   { return btvg(&BITS, 11); }
+    uint fLinkBefore()  { return btvg(&BITS, 12); }
+    uint fLinkAfter()   { return btvg(&BITS, 13); }
+    uint fLogicalOrder(){ return btvg(&BITS, 14); }
+    uint fNoGlyphIndex(){ return btvg(&BITS, 15); }
+    // setter
+    void eScript(uint val)      { BITS &= 0xFC00; BITS |= (val & 0x03FF); }
+    void fRTL(uint val)         { btvs(&BITS, 10, val); }
+    void fLayoutRTL(uint val)   { btvs(&BITS, 11, val); }
+    void fLinkBefore(uint val)  { btvs(&BITS, 12, val); }
+    void fLinkAfter(uint val)   { btvs(&BITS, 13, val); }
+    void fLogicalOrder(uint val){ btvs(&BITS, 14, val); }
+    void fNoGlyphIndex(uint val){ btvs(&BITS, 15, val); }
+}
+
+alias void *SCRIPT_CACHE;
+
+struct SCRIPT_CONTROL {
+    align(1):
+    WORD uDefaultLanguage;
+    BYTE BITS;
+    BYTE fReserved;
+
+    // getter
+    uint fContextDigits()       { return btvg(&BITS, 0); }
+    uint fInvertPreBoundDir()   { return btvg(&BITS, 1); }
+    uint fInvertPostBoundDir()  { return btvg(&BITS, 2); }
+    uint fLinkStringBefore()    { return btvg(&BITS, 3); }
+    uint fLinkStringAfter()     { return btvg(&BITS, 4); }
+    uint fNeutralOverride()     { return btvg(&BITS, 5); }
+    uint fNumericOverride()     { return btvg(&BITS, 6); }
+    uint fLegacyBidiClass()     { return btvg(&BITS, 7); }
+
+    void fContextDigits(uint val)       { btvs(&BITS, 0, val); }
+    void fInvertPreBoundDir(uint val)   { btvs(&BITS, 1, val); }
+    void fInvertPostBoundDir(uint val)  { btvs(&BITS, 2, val); }
+    void fLinkStringBefore(uint val)    { btvs(&BITS, 3, val); }
+    void fLinkStringAfter(uint val)     { btvs(&BITS, 4, val); }
+    void fNeutralOverride(uint val)     { btvs(&BITS, 5, val); }
+    void fNumericOverride(uint val)     { btvs(&BITS, 6, val); }
+    void fLegacyBidiClass(uint val)     { btvs(&BITS, 7, val); }
+}
+
+struct SCRIPT_FONTPROPERTIES {
+  int   cBytes;
+  WORD  wgBlank;
+  WORD  wgDefault;
+  WORD  wgInvalid;
+  WORD  wgKashida;
+  int   iKashidaWidth;
+}
+
+struct SCRIPT_ITEM {
+    int iCharPos;
+    SCRIPT_ANALYSIS a;
+}
+
+struct SCRIPT_LOGATTR {
+    align(1):
+    BYTE BITS;
+
+    // gettter
+    uint fSoftBreak()   { return btvg(&BITS, 0); }
+    uint fWhiteSpace()  { return btvg(&BITS, 1); }
+    uint fCharStop()    { return btvg(&BITS, 2); }
+    uint fWordStop()    { return btvg(&BITS, 3); }
+    uint fInvalid()     { return btvg(&BITS, 4); }
+    uint fReserved()    { return cast(BYTE)(BITS>>5); }
+
+    void fSoftBreak(uint val)   { btvs(&BITS, 0, val); }
+    void fWhiteSpace(uint val)  { btvs(&BITS, 1, val); }
+    void fCharStop(uint val)    { btvs(&BITS, 2, val); }
+    void fWordStop(uint val)    { btvs(&BITS, 3, val); }
+    void fInvalid(uint val)     { btvs(&BITS, 4, val); }
+    void fReserved(uint val)    { BITS &= 0x1F; BITS |= (val & 0x07)<<5; }
+}
+
+
+struct SCRIPT_PROPERTIES {
+    DWORD   BITS1;
+    DWORD   BITS2;
+
+    uint langid()   { return BITS1 >> 16; }
+    uint fNumeric() { return btvg(&BITS1, 16); }
+    uint fComplex() { return btvg(&BITS1, 17); }
+    uint fNeedsWordBreaking()   { return btvg(&BITS1, 18); }
+    uint fNeedsCaretInfo()      { return btvg(&BITS1, 19); }
+    uint bCharSet()             { return (BITS1 >> 20) & 0xFF; }
+    uint fControl()             { return btvg(&BITS1, 28); }
+    uint fPrivateUseArea()      { return btvg(&BITS1, 29); }
+    uint fNeedsCharacterJustify(){ return btvg(&BITS1, 30); }
+    uint fInvalidGlyph()        { return btvg(&BITS1, 31); }
+    uint fInvalidLogAttr()      { return btvg(&BITS2, 0); }
+    uint fCDM()                 { return btvg(&BITS2, 1); }
+    uint fAmbiguousCharSet()    { return btvg(&BITS2, 2); }
+    uint fClusterSizeVaries()   { return btvg(&BITS2, 3); }
+    uint fRejectInvalid()       { return btvg(&BITS2, 4); }
+
+    void langid(uint val)       { BITS1 &= 0xFFFF0000; BITS1 |= (val & 0xFFFF); }
+    void fNumeric(uint val)             { btvs(&BITS1, 16, val); }
+    void fComplex(uint val)             { btvs(&BITS1, 17, val); }
+    void fNeedsWordBreaking(uint val)   { btvs(&BITS1, 18, val); }
+    void fNeedsCaretInfo(uint val)      { btvs(&BITS1, 19, val); }
+    void bCharSet(uint val)             { BITS1 &= 0xF00FFFFF; BITS1 |= (val & 0xFF)<<20; }
+    void fControl(uint val)             { btvs(&BITS1, 28, val); }
+    void fPrivateUseArea(uint val)      { btvs(&BITS1, 29, val); }
+    void fNeedsCharacterJustify(uint val){ btvs(&BITS1, 30, val); }
+    void fInvalidGlyph(uint val)        { btvs(&BITS1, 31, val); }
+    void fInvalidLogAttr(uint val)      { btvs(&BITS2, 0, val); }
+    void fCDM(uint val)                 { btvs(&BITS2, 1, val); }
+    void fAmbiguousCharSet(uint val)    { btvs(&BITS2, 2, val); }
+    void fClusterSizeVaries(uint val)   { btvs(&BITS2, 3, val); }
+    void fRejectInvalid(uint val)       { btvs(&BITS2, 4, val); }
+}
+
+
+struct SCRIPT_STATE {
+    WORD BITS;
+    // getter
+    uint uBidiLevel()           { return (BITS & 0x1F);}
+    uint fOverrideDirection()   { return btvg(&BITS, 5); }
+    uint fInhibitSymSwap()      { return btvg(&BITS, 6); }
+    uint fCharShape()           { return btvg(&BITS, 7); }
+    uint fDigitSubstitute()     { return btvg(&BITS, 8); }
+    uint fInhibitLigate()       { return btvg(&BITS, 9); }
+    uint fDisplayZWG()          { return btvg(&BITS, 10); }
+    uint fArabicNumContext()    { return btvg(&BITS, 11); }
+    uint fGcpClusters()         { return btvg(&BITS, 12); }
+    uint fReserved()            { return btvg(&BITS, 13); }
+    uint fEngineReserved()      { return (BITS >> 14) & 0x03;}
+    // setter
+    void uBidiLevel(uint val)           { BITS &= 0xFFE0; BITS |= (val & 0x1F); }
+    void fOverrideDirection(uint val)   { btvs(&BITS, 5, val); }
+    void fInhibitSymSwap(uint val)      { btvs(&BITS, 6, val); }
+    void fCharShape(uint val)           { btvs(&BITS, 7, val); }
+    void fDigitSubstitute(uint val)     { btvs(&BITS, 8, val); }
+    void fInhibitLigate(uint val)       { btvs(&BITS, 9, val); }
+    void fDisplayZWG(uint val)          { btvs(&BITS, 10, val); }
+    void fArabicNumContext(uint val)    { btvs(&BITS, 11, val); }
+    void fGcpClusters(uint val)         { btvs(&BITS, 12, val); }
+    void fReserved(uint val)            { btvs(&BITS, 13, val); }
+    void fEngineReserved(uint val)      { BITS &= 0x3FFF; BITS |= ((val & 0x03) << 14); }
+}
+
+
+struct SCRIPT_VISATTR {
+    align(1):
+    BYTE BITS;
+    BYTE fShapeReserved;
+
+    // getter
+    uint uJustification()   { return BITS & 0x0F; }
+    uint fClusterStart()    { return btvg(&BITS, 4); }
+    uint fDiacritic()       { return btvg(&BITS, 5); }
+    uint fZeroWidth()       { return btvg(&BITS, 6); }
+    uint fReserved()        { return btvg(&BITS, 7); }
+
+    // setter
+    void uJustification(uint val)   { BITS &= 0xF0; BITS |= (val & 0x0F); }
+    void fClusterStart(uint val)    { btvs(&BITS, 4, val); }
+    void fDiacritic(uint val)       { btvs(&BITS, 5, val); }
+    void fZeroWidth(uint val)       { btvs(&BITS, 6, val); }
+    void fReserved(uint val)        { btvs(&BITS, 7, val); }
+}
+
+//struct SCROLLINFO {
+//    UINT cbSize;
+//    UINT fMask;
+//    int  nMin;
+//    int  nMax;
+//    UINT nPage;
+//    int  nPos;
+//    int  nTrackPos;
+//}
+//alias SCROLLINFO* PSCROLLINFO, LPSCROLLINFO, LPCSCROLLINFO;
+
+version(WinCE)
+{
+struct SHACTIVATEINFO {
+    int cbSize;
+    HWND hwndLastFocus;
+    int fSipUp;
+    int fSipOnDeactivation;
+    int fActive;
+    int fReserved;
+}
+}
+
+struct SHELLEXECUTEINFOA {
+    DWORD cbSize;
+    ULONG fMask;
+    HWND hwnd;
+    LPCSTR lpVerb;
+    LPCSTR lpFile;
+    LPCSTR lpParameters;
+    LPCSTR lpDirectory;
+    int nShow;
+    HINSTANCE hInstApp;
+
+    // Optional members
+    LPVOID lpIDList;
+    LPCSTR lpClass;
+    HKEY hkeyClass;
+    DWORD dwHotKey;
+    HANDLE hIcon;
+    HANDLE hProcess;
+} alias SHELLEXECUTEINFOA* PSHELLEXECUTEINFOA, LPSHELLEXECUTEINFOA;
+struct SHELLEXECUTEINFOW {
+    DWORD cbSize;
+    ULONG fMask;
+    HWND hwnd;
+    LPCWSTR lpVerb;
+    LPCWSTR lpFile;
+    LPCWSTR lpParameters;
+    LPCWSTR lpDirectory;
+    int nShow;
+    HINSTANCE hInstApp;
+
+    // Optional members
+    LPVOID lpIDList;
+    LPCWSTR lpClass;
+    HKEY hkeyClass;
+    DWORD dwHotKey;
+    HANDLE hIcon;
+    HANDLE hProcess;
+} alias SHELLEXECUTEINFOW* PSHELLEXECUTEINFOW, LPSHELLEXECUTEINFOW;
+version(Win32SansUnicode){
+    alias SHELLEXECUTEINFOA SHELLEXECUTEINFO;
+}else{
+    alias SHELLEXECUTEINFOW SHELLEXECUTEINFO;
+}
+alias SHELLEXECUTEINFO* LPSHELLEXECUTEINFO;
+
+
+//version(WinCE)
+//{
+    struct SHMENUBARINFO {
+        int cbSize;
+        HWND hwndParent;
+        int dwFlags;
+        int nToolBarId;
+        HINSTANCE hInstRes;
+        int nBmpId;
+        int cBmpImages;
+        HWND hwndMB;
+    }
+
+    struct SHRGINFO {
+        DWORD cbSize;
+        HWND hwndClient;
+        POINT ptDown;
+        DWORD dwFlags;
+    }
+
+    struct SIPINFO {
+        DWORD cbSize;
+        DWORD fdwFlags;
+        RECT rcVisibleDesktop;
+        RECT rcSipRect;
+        DWORD dwImDataSize;
+        VOID *pvImData;
+    }
+//} // end of version WinCE
+
+//struct SIZE {
+//  LONG cx;
+//  LONG cy;
+//}
+//alias SIZE* LPSIZE, LPSIZEL;
+//alias SIZE SIZEL;
+
+
+struct TBBUTTONINFOA{
+    align(2):
+    UINT cbSize;
+    DWORD dwMask;
+    int idCommand;
+    int iImage;
+    BYTE fsState;
+    BYTE fsStyle;
+    WORD cx;
+    DWORD_PTR lParam;
+    LPSTR pszText;
+    int cchText;
+}
+struct TBBUTTONINFOW{
+    align(2):
+    UINT cbSize;
+    DWORD dwMask;
+    int idCommand;
+    int iImage;
+    BYTE fsState;
+    BYTE fsStyle;
+    WORD cx;
+    DWORD_PTR lParam;
+    LPWSTR pszText;
+    int cchText;
+}
+version(Win32SansUnicode){
+    alias TBBUTTONINFOA TBBUTTONINFO;
+}else{
+    alias TBBUTTONINFOW TBBUTTONINFO;
+}
+alias TBBUTTONINFO* LPTBBUTTONINFO;
+
+
+struct TCITEMA {
+    UINT mask;
+    DWORD dwState;
+    DWORD dwStateMask;
+    LPSTR pszText;
+    int cchTextMax;
+    int iImage;
+    LPARAM lParam;
+}
+struct TCITEMW {
+    UINT mask;
+    DWORD dwState;
+    DWORD dwStateMask;
+    LPWSTR pszText;
+    int cchTextMax;
+    int iImage;
+    LPARAM lParam;
+}
+version(Win32SansUnicode){
+    alias TCITEMA TCITEM;
+}else{
+    alias TCITEMW TCITEM;
+}
+
+
+// struct TOOLINFOA {
+//     UINT cbSize;
+//     UINT uFlags;
+//     HWND hwnd;
+//     UINT uId;
+//     RECT rect;
+//     HINSTANCE hinst;
+//     LPSTR lpszText;
+//     LPARAM lParam;
+// }
+// struct TOOLINFOW {
+//     UINT cbSize;
+//     UINT uFlags;
+//     HWND hwnd;
+//     UINT uId;
+//     RECT rect;
+//     HINSTANCE hinst;
+//     LPWSTR lpszText;
+//     LPARAM lParam;
+// }
+// version(Win32SansUnicode){
+//     alias TOOLINFOA TOOLINFO;
+// }else{
+//     alias TOOLINFOW TOOLINFO;
+// }
+
+struct TRACKMOUSEEVENT {
+    DWORD cbSize;
+    DWORD dwFlags;
+    HWND hwndTrack;
+    DWORD dwHoverTime;
+}
+alias TRACKMOUSEEVENT* PTRACKMOUSEEVENT, LPTRACKMOUSEEVENT;
+
+struct TRIVERTEX {
+  LONG        x;
+  LONG        y;
+  COLOR16     Red;
+  COLOR16     Green;
+  COLOR16     Blue;
+  COLOR16     Alpha;
+}
+alias TRIVERTEX* PTRIVERTEX, LPTRIVERTEX;
+
+
+struct TVHITTESTINFO {
+    POINT pt;
+    UINT flags;
+    HTREEITEM hItem;
+}
+
+
+
+
+
+
+//alias extern(Windows) int (*PFNTVCOMPARE)(LPARAM, LPARAM, LPARAM);
+struct TVSORTCB {
+    HTREEITEM hParent;
+    PFNTVCOMPARE lpfnCompare;
+    LPARAM lParam;
+}
+
+
+
+
+//struct WINDOWPLACEMENT {
+//    UINT length;
+//    UINT flags;
+//    UINT showCmd;
+//    POINT ptMinPosition;
+//    POINT ptMaxPosition;
+//    RECT rcNormalPosition;
+//}
+//
+// struct WINDOWPOS {
+//     HWND hwnd;
+//     HWND hwndInsertAfter;
+//     int x;
+//     int y;
+//     int cx;
+//     int cy;
+//     UINT flags;
+// }
+
+// WNDCLASSA is declared in phobos
+// struct WNDCLASSW {
+//     UINT        style;
+//     WNDPROC_I     lpfnWndProc;
+//     int         cbClsExtra;
+//     int         cbWndExtra;
+//     HINSTANCE   hInstance;
+//     HICON       hIcon;
+//     HCURSOR     hCursor;
+//     HBRUSH      hbrBackground;
+//     LPCWSTR     lpszMenuName;
+//     LPCWSTR     lpszClassName;
+// }alias WNDCLASSW* PWNDCLASSW, LPWNDCLASSW;
+//
+// // since phobos has alias WNDCLASSA to WNDCLASS, we have to alias it another name
+// version(Win32SansUnicode){
+//     alias WNDCLASSA WNDCLASS_T;
+// }else{
+//     alias WNDCLASSW WNDCLASS_T;
+// }
+
+enum TF_DA_COLORTYPE {
+  TF_CT_NONE = 0,
+  TF_CT_SYSCOLOR = 1,
+  TF_CT_COLORREF = 2
+}
+
+enum TF_DA_LINESTYLE {
+  TF_LS_NONE = 0,
+  TF_LS_SOLID = 1,
+  TF_LS_DOT = 2,
+  TF_LS_DASH = 3,
+  TF_LS_SQUIGGLE = 4
+}
+
+enum TF_DA_ATTR_INFO {
+  TF_ATTR_INPUT = 0,
+  TF_ATTR_TARGET_CONVERTED = 1,
+  TF_ATTR_CONVERTED = 2,
+  TF_ATTR_TARGET_NOTCONVERTED = 3,
+  TF_ATTR_INPUT_ERROR = 4,
+  TF_ATTR_FIXEDCONVERTED = 5,
+  TF_ATTR_OTHER = -1
+}
+
+struct TF_DA_COLOR {
+  TF_DA_COLORTYPE type;
+  union {
+    int nIndex;
+    COLORREF cr;
+  };
+}
+
+struct TF_DISPLAYATTRIBUTE{
+  TF_DA_COLOR crText;
+  TF_DA_COLOR crBk;
+  TF_DA_LINESTYLE lsStyle;
+  BOOL fBoldLine;
+  TF_DA_COLOR crLine;
+  TF_DA_ATTR_INFO bAttr;
+}
+
+struct NMTTCUSTOMDRAW {
+    NMCUSTOMDRAW nmcd;
+    UINT uDrawFlags;
+}
+alias NMTTCUSTOMDRAW* LPNMTTCUSTOMDRAW;
+
+struct SHDRAGIMAGE {
+    SIZE sizeDragImage;
+    POINT ptOffset;
+    HBITMAP hbmpDragImage;
+    COLORREF crColorKey;
+}
+
+const CCHILDREN_SCROLLBAR = 5;
+struct SCROLLBARINFO {
+    DWORD cbSize;
+    RECT rcScrollBar;
+    int dxyLineButton;
+    int xyThumbTop;
+    int xyThumbBottom;
+    int reserved;
+    DWORD rgstate[CCHILDREN_SCROLLBAR+1];
+}
+alias SCROLLBARINFO* PSCROLLBARINFO;
+
+}   // end of extern(Windows)
+
+
+
+
+
+// shlwapi.h
+enum {ASSOCF_INIT_BYEXENAME,
+    ASSOCF_OPEN_BYEXENAME,
+    ASSOCF_INIT_DEFAULTTOSTAR,
+    ASSOCF_INIT_DEFAULTTOFOLDER,
+    ASSOCF_NOUSERSETTINGS,
+    ASSOCF_NOTRUNCATE,
+    ASSOCF_VERIFY,
+    ASSOCF_REMAPRUNDLL,
+    ASSOCF_NOFIXUPS,
+    ASSOCF_IGNOREBASECLASS
+};
+
+alias DWORD ASSOCF;
+
+// usp10
+alias void* SCRIPT_STRING_ANALYSIS;
+struct SCRIPT_TABDEF {
+  int cTabStops;
+  int iScale;
+  int* pTabStops;
+  int iTabOrigin;
+}
+
+//struct SCRIPT_ANALYSIS {
+//    mixin(bitfields!(
+//        ushort, "eScript", 10,
+//        bool, "fRTL", 1,
+//        bool, "fLayoutRTL", 1,
+//        bool, "fLinkBefore", 1,
+//        bool, "fLinkAfter", 1,
+//        bool, "fLogicalOrder", 1,
+//        bool, "fNoGlyphIndex", 1));
+//    SCRIPT_STATE s ;
+//}
+//struct SCRIPT_STATE {
+//    mixin(bitfields!(
+//        ubyte, "uBidiLevel",  5,
+//        bool, "fOverrideDirection", 1,
+//        bool, "fInhibitSymSwap", 1,
+//        bool, "fCharShape", 1,
+//        bool, "fDigitSubstitute", 1,
+//        bool, "fInhibitLigate", 1,
+//        bool, "fDisplayZWG", 1,
+//        bool, "fArabicNumContext", 1,
+//        bool, "fGcpClusters", 1,
+//        bool, "fReserved", 1,
+//        ubyte, "fEngineReserved", 2));
+//}
+//
+//struct SCRIPT_CONTROL {
+//    mixin(bitfields!(
+//        ushort, "uDefaultLanguage", 16,
+//        bool, "fContextDigits", 1,
+//        bool, "fInvertPreBoundDir", 1,
+//        bool, "fInvertPostBoundDir", 1,
+//        bool, "fLinkStringBefore", 1,
+//        bool, "fLinkStringAfter", 1,
+//        bool, "fNeutralOverride", 1,
+//        bool, "fNumericOverride", 1,
+//        bool, "fLegacyBidiClass", 1,
+//        ubyte, "fReserved", 8));
+//}
+//