view tango/tango/sys/win32/Types.di @ 132:1700239cab2e trunk

[svn r136] MAJOR UNSTABLE UPDATE!!! Initial commit after moving to Tango instead of Phobos. Lots of bugfixes... This build is not suitable for most things.
author lindquist
date Fri, 11 Jan 2008 17:57:40 +0100
parents
children
line wrap: on
line source

module tango.sys.win32.Types;

/*
 	Module:		Windows Types
 	Author: 	Trevor Parscal
*/

/+ Aliases, Types, and Constants +/
const int NULL = 0;
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 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 uint PROPID;
const BOOL FALSE = 0;
const BOOL TRUE = -1;
alias char* PANSICHAR;
alias wchar* PWIDECHAR;
alias int* PINTEGER;
alias double LONGLONG;
alias LONGLONG* PLONGLONG;
alias double DWORDLONG;
alias DWORDLONG* PDWORDLONG;
alias double 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 PCHAR 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 PCHAR 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* PBOOLEAN;
alias ubyte* PBYTE;
alias PCHAR PCCH;
alias PCHAR PCH;
alias PCHAR PCSTR;
alias wchar* PCWCH;
alias wchar* PCWSTR;
alias DWORD* PDWORD;
alias double* 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;
alias char 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;

struct GUID { // size is 16
align(1):
	DWORD   Data1;
	WORD    Data2;
	WORD    Data3;
	BYTE[8] Data4;
}

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);
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);
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 {
 char* SE_CREATE_TOKEN_NAME = ("SeCreateTokenPrivilege");
 char* SE_ASSIGNPRIMARYTOKEN_NAME = ("SeAssignPrimaryTokenPrivilege");
 char* SE_LOCK_MEMORY_NAME = ("SeLockMemoryPrivilege");
 char* SE_INCREASE_QUOTA_NAME = ("SeIncreaseQuotaPrivilege");
 char* SE_UNSOLICITED_INPUT_NAME = ("SeUnsolicitedInputPrivilege");
 char* SE_MACHINE_ACCOUNT_NAME = ("SeMachineAccountPrivilege");
 char* SE_TCB_NAME = ("SeTcbPrivilege");
 char* SE_SECURITY_NAME = ("SeSecurityPrivilege");
 char* SE_TAKE_OWNERSHIP_NAME = ("SeTakeOwnershipPrivilege");
 char* SE_LOAD_DRIVER_NAME = ("SeLoadDriverPrivilege");
 char* SE_SYSTEM_PROFILE_NAME = ("SeSystemProfilePrivilege");
 char* SE_SYSTEMTIME_NAME = ("SeSystemtimePrivilege");
 char* SE_PROF_SINGLE_PROCESS_NAME = ("SeProfileSingleProcessPrivilege");
 char* SE_INC_BASE_PRIORITY_NAME = ("SeIncreaseBasePriorityPrivilege");
 char* SE_CREATE_PAGEFILE_NAME = ("SeCreatePagefilePrivilege");
 char* SE_CREATE_PERMANENT_NAME = ("SeCreatePermanentPrivilege");
 char* SE_BACKUP_NAME = ("SeBackupPrivilege");
 char* SE_RESTORE_NAME = ("SeRestorePrivilege");
 char* SE_SHUTDOWN_NAME = ("SeShutdownPrivilege");
 char* SE_DEBUG_NAME = ("SeDebugPrivilege");
 char* SE_AUDIT_NAME = ("SeAuditPrivilege");
 char* SE_SYSTEM_ENVIRONMENT_NAME = ("SeSystemEnvironmentPrivilege");
 char* SE_CHANGE_NOTIFY_NAME = ("SeChangeNotifyPrivilege");
 char* SE_REMOTE_SHUTDOWN_NAME = ("SeRemoteShutdownPrivilege");
 char* SERVICES_ACTIVE_DATABASEA = ("ServicesActive");
 char* SERVICES_FAILED_DATABASEA = ("ServicesFailed");
 char* SC_GROUP_IDENTIFIERA = ("+");
 char* SERVICES_ACTIVE_DATABASE = (SERVICES_ACTIVE_DATABASEA);
 char* SERVICES_FAILED_DATABASE = (SERVICES_FAILED_DATABASEA);
 char* SC_GROUP_IDENTIFIER = (SC_GROUP_IDENTIFIERA);
}

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),
    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_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),
    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),
    HWND_BROADCAST = (0xFFFF),
    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),
    HWND_BOTTOM = (1),
    HWND_NOTOPMOST = -(2),
    HWND_TOP = (0),
    HWND_TOPMOST = -(1),
    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 {
wchar* LPSTR_TEXTCALLBACKW = cast(LPWSTR)(-(1));
char* LPSTR_TEXTCALLBACKA = cast(LPSTR)(-(1));
char* LPSTR_TEXTCALLBACK = (LPSTR_TEXTCALLBACKA);
}
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);
}
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),
    HWND_DESKTOP = (0),
    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* 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;

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;

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 BROWSEINFO
{
	HWND hwndOwner;
	LPCITEMIDLIST pidlRoot;
	LPSTR pszDisplayName;
	LPCSTR lpszTitle;
	UINT ulFlags;
	BFFCALLBACK lpfn;
	LPARAM lParam;
	int iImage;
}

alias BROWSEINFO* LPBROWSEINFO;
alias BROWSEINFO _BROWSEINFO;
alias BROWSEINFO TBROWSEINFO;
alias BROWSEINFO* PBROWSEINFO;

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;
	int 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 TCHOOSECOLOR
{
	DWORD lStructSize;
	HWND hwndOwner;
	HWND hInstance;
	COLORREF rgbResult;
	COLORREF* lpCustColors;
	DWORD Flags;
	LPARAM lCustData;
	LPCCHOOKPROC lpfnHook;
	LPCTSTR lpTemplateName;
}

alias TCHOOSECOLOR* LPCHOOSECOLOR;
alias TCHOOSECOLOR* PCHOOSECOLOR;

struct LOGFONT
{
	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;
	TCHAR[1 + LF_FACESIZE-1] lfFaceName;
}

alias LOGFONT* LPLOGFONT;
alias LOGFONT TLOGFONT;
alias LOGFONT TLOGFONTA;
alias LOGFONT* PLOGFONT;

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];
};

alias LOGFONTW* LPLOGFONTW;
alias LOGFONTW TLOGFONTW;
alias LOGFONTW TLOGFONTWA;
alias LOGFONTW* PLOGFONTW;

struct TCHOOSEFONT
{
	DWORD lStructSize;
	HWND hwndOwner;
	HDC hDC;
	LPLOGFONT lpLogFont;
	INT iPointSize;
	DWORD Flags;
	DWORD rgbColors;
	LPARAM lCustData;
	LPCFHOOKPROC lpfnHook;
	LPCTSTR lpTemplateName;
	HINST hInstance;
	LPTSTR lpszStyle;
	ushort nFontType;
	ushort ___MISSING_ALIGNMENT__;
	INT nSizeMin;
	INT nSizeMax;
}

alias TCHOOSEFONT* LPCHOOSEFONT;
alias TCHOOSEFONT* PCHOOSEFONT;

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;
	DWORD itemData1;
	UINT itemID2;
	DWORD itemData2;
}

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;

struct CRITICAL_SECTION_DEBUG
{
	ushort _Type;
	ushort CreatorBackTraceIndex;
	_CRITICAL_SECTION* CriticalSection;
	LIST_ENTRY ProcessLocksList;
	DWORD EntryCount;
	DWORD ContentionCount;
	DWORD Depth;
	PVOID[1 + 4] OwnerBackTrace;
}

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;

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;

struct SECURITY_QUALITY_OF_SERVICE
{
	DWORD Length;
	SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
	WINBOOL ContextTrackingMode;
	ubyte 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;
	int 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;
	int 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;
	int 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;
	int 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;
	int 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;
	DWORD ReadCount;
	DWORD WriteCount;
	DWORD QueueDepth;
}

alias DISK_PERFORMANCE _DISK_PERFORMANCE;
alias DISK_PERFORMANCE TDISKPERFORMANCE;
alias DISK_PERFORMANCE* PDISKPERFORMANCE;

align(1) struct DLGITEMTEMPLATE
{
	DWORD style;
	DWORD dwExtendedStyle;
	int x;
	int y;
	int cx;
	int cy;
	ushort id;
}

alias DLGITEMTEMPLATE* LPDLGITEMTEMPLATE;
alias DLGITEMTEMPLATE TDLGITEMTEMPLATE;
alias DLGITEMTEMPLATE* PDLGITEMTEMPLATE;

align(1) struct DLGTEMPLATE
{
	DWORD style;
	DWORD dwExtendedStyle;
	ushort cdit;
	int x;
	int y;
	int cx;
	int 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 DOCINFO
{
	int cbSize;
	LPCTSTR lpszDocName;
	LPCTSTR lpszOutput;
	LPCTSTR lpszDatatype;
	DWORD fwType;
}

alias DOCINFO TDOCINFO;
alias DOCINFO TDOCINFOA;
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 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 LOGCOLORSPACE
{
	DWORD lcsSignature;
	DWORD lcsVersion;
	DWORD lcsSize;
	LCSCSTYPE lcsCSType;
	LCSGAMUTMATCH lcsIntent;
	CIEXYZTRIPLE lcsEndpoints;
	DWORD lcsGammaRed;
	DWORD lcsGammaGreen;
	DWORD lcsGammaBlue;
	TCHAR[1 + MAX_PATH-1] lcsFilename;
}

alias LOGCOLORSPACE* LPLOGCOLORSPACE;
alias LOGCOLORSPACE TAGLOGCOLORSPACE;
alias LOGCOLORSPACE TLOGCOLORSPACE;
alias LOGCOLORSPACE TLOGCOLORSPACEA;
alias LOGCOLORSPACE* PLOGCOLORSPACE;

struct EMRCREATECOLORSPACE
{
	EMR emr;
	DWORD ihCS;
	LOGCOLORSPACE 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;
	BCHAR[1 + LF_FULLFACESIZE-1] elfFullName;
	BCHAR[1 + LF_FACESIZE-1] elfStyle;
	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;
	POINTL[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;

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;
}

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 ENUMLOGFONT
{
	LOGFONT elfLogFont;
	BCHAR[1 + LF_FULLFACESIZE-1] elfFullName;
	BCHAR[1 + LF_FACESIZE-1] elfStyle;
}

alias ENUMLOGFONT TAGENUMLOGFONT;
alias ENUMLOGFONT TENUMLOGFONT;
alias ENUMLOGFONT* PENUMLOGFONT;

struct ENUMLOGFONTEX
{
	LOGFONT elfLogFont;
	BCHAR[1 + LF_FULLFACESIZE-1] elfFullName;
	BCHAR[1 + LF_FACESIZE-1] elfStyle;
	BCHAR[1 + LF_FACESIZE-1] elfScript;
}

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* 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_RESULTS
{
	DWORD lStructSize;
	LPTSTR lpOutString;
	UINT* lpOrder;
	INT* lpDx;
	INT* lpCaretPos;
	LPTSTR lpClass;
	UINT* lpGlyphs;
	UINT nGlyphs;
	UINT nMaxFit;
}

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;
	int gmCellIncX;
	int 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* PHDHITTESTINFO;

struct HD_ITEM
{
	UINT mask;
	int cxy;
	LPTSTR pszText;
	HBITMAP hbm;
	int cchTextMax;
	int fmt;
	LPARAM lParam;
}

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* 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 HIGHCONTRAST
{
	UINT cbSize;
	DWORD dwFlags;
	LPTSTR lpszDefaultScheme;
}

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-1] 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;
alias LARGE_INTEGER LUID;
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 LV_COLUMN
{
	UINT mask;
	int fmt;
	int cx;
	LPTSTR pszText;
	int cchTextMax;
	int iSubItem;
}

alias LV_COLUMN _LV_COLUMN;
alias LV_COLUMN TLVCOLUMN;
alias LV_COLUMN* PLVCOLUMN;

struct LV_ITEM
{
	UINT mask;
	int iItem;
	int iSubItem;
	UINT state;
	UINT stateMask;
	LPTSTR pszText;
	int cchTextMax;
	int iImage;
	LPARAM lParam;
}

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 LV_HITTESTINFO
{
	POINT pt;
	UINT flags;
	int iItem;
}

alias LV_HITTESTINFO _LV_HITTESTINFO;
alias LV_HITTESTINFO TLVHITTESTINFO;
alias LV_HITTESTINFO* PLVHITTESTINFO;

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;

struct MENUITEMINFO
{
	UINT cbSize;
	UINT fMask;
	UINT fType;
	UINT fState;
	UINT wID;
	HMENU hSubMenu;
	HBITMAP hbmpChecked;
	HBITMAP hbmpUnchecked;
	DWORD dwItemData;
	LPTSTR dwTypeData;
	UINT cch;
}

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 NEWTEXTMETRIC
{
	LONG tmHeight;
	LONG tmAscent;
	LONG tmDescent;
	LONG tmInternalLeading;
	LONG tmExternalLeading;
	LONG tmAveCharWidth;
	LONG tmMaxCharWidth;
	LONG tmWeight;
	LONG tmOverhang;
	LONG tmDigitizedAspectX;
	LONG tmDigitizedAspectY;
	BCHAR tmFirstChar;
	BCHAR tmLastChar;
	BCHAR tmDefaultChar;
	BCHAR tmBreakChar;
	ubyte tmItalic;
	ubyte tmUnderlined;
	ubyte tmStruckOut;
	ubyte tmPitchAndFamily;
	ubyte tmCharSet;
	DWORD ntmFlags;
	UINT ntmSizeEM;
	UINT ntmCellHeight;
	UINT ntmAvgWidth;
}

alias NEWTEXTMETRIC TAGNEWTEXTMETRIC;
alias NEWTEXTMETRIC TNEWTEXTMETRIC;
alias NEWTEXTMETRIC* PNEWTEXTMETRIC;

struct NEWTEXTMETRICEX
{
	NEWTEXTMETRIC ntmentm;
	FONTSIGNATURE ntmeFontSignature;
}

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 TV_ITEM
{
	UINT mask;
	HTREEITEM hItem;
	UINT state;
	UINT stateMask;
	LPTSTR pszText;
	int cchTextMax;
	int iImage;
	int iSelectedImage;
	int cChildren;
	LPARAM lParam;
}

alias TV_ITEM* LPTV_ITEM;
alias TV_ITEM _TV_ITEM;
alias TV_ITEM TTVITEM;
alias TV_ITEM* PTVITEM;

struct NM_TREEVIEW
{
	NMHDR hdr;
	UINT action;
	TV_ITEM itemOld;
	TV_ITEM itemNew;
	POINT ptDrag;
}

alias NM_TREEVIEW* LPNM_TREEVIEW;
alias NM_TREEVIEW _NM_TREEVIEW;
alias NM_TREEVIEW TNMTREEVIEW;
alias NM_TREEVIEW* PNMTREEVIEW;

struct NM_UPDOWNW
{
	NMHDR hdr;
	int iPos;
	int iDelta;
}

alias NM_UPDOWNW _NM_UPDOWN;
alias NM_UPDOWNW TNMUPDOWN;
alias NM_UPDOWNW* PNMUPDOWN;

struct NONCLIENTMETRICS
{
	UINT cbSize;
	int iBorderWidth;
	int iScrollWidth;
	int iScrollHeight;
	int iCaptionWidth;
	int iCaptionHeight;
	LOGFONT lfCaptionFont;
	int iSmCaptionWidth;
	int iSmCaptionHeight;
	LOGFONT lfSmCaptionFont;
	int iMenuWidth;
	int iMenuHeight;
	LOGFONT lfMenuFont;
	LOGFONT lfStatusFont;
	LOGFONT lfMessageFont;
}

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 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;
}

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 OSVERSIONINFO
{
	DWORD dwOSVersionInfoSize;
	DWORD dwMajorVersion;
	DWORD dwMinorVersion;
	DWORD dwBuildNumber;
	DWORD dwPlatformId;
	TCHAR[1 + 127] szCSDVersion;
}

alias OSVERSIONINFO* LPOSVERSIONINFO;
alias OSVERSIONINFO _OSVERSIONINFO;
alias OSVERSIONINFO TOSVERSIONINFO;
alias OSVERSIONINFO* POSVERSIONINFO;

struct TEXTMETRIC
{
	LONG tmHeight;
	LONG tmAscent;
	LONG tmDescent;
	LONG tmInternalLeading;
	LONG tmExternalLeading;
	LONG tmAveCharWidth;
	LONG tmMaxCharWidth;
	LONG tmWeight;
	LONG tmOverhang;
	LONG tmDigitizedAspectX;
	LONG tmDigitizedAspectY;
	BCHAR tmFirstChar;
	BCHAR tmLastChar;
	BCHAR tmDefaultChar;
	BCHAR tmBreakChar;
	ubyte tmItalic;
	ubyte tmUnderlined;
	ubyte tmStruckOut;
	ubyte tmPitchAndFamily;
	ubyte tmCharSet;
}

alias TEXTMETRIC* LPTEXTMETRIC;
alias TEXTMETRIC TAGTEXTMETRIC;
alias TEXTMETRIC TTEXTMETRIC;
alias TEXTMETRIC* PTEXTMETRIC;

struct OUTLINETEXTMETRIC
{
	UINT otmSize;
	TEXTMETRIC otmTextMetrics;
	ubyte 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;

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* 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(1) struct TPRINTDLG
{
	DWORD lStructSize;
	HWND hwndOwner;
	HANDLE hDevMode;
	HANDLE hDevNames;
	HDC hDC;
	DWORD Flags;
	ushort nFromPage;
	ushort nToPage;
	ushort nMinPage;
	ushort nMaxPage;
	ushort nCopies;
	HINST hInstance;
	DWORD lCustData;
	LPPRINTHOOKPROC lpfnPrintHook;
	LPSETUPHOOKPROC lpfnSetupHook;
	LPCTSTR lpPrintTemplateName;
	LPCTSTR lpSetupTemplateName;
	HANDLE hPrintTemplate;
	HANDLE hSetupTemplate;
}

alias TPRINTDLG* LPPRINTDLG;
alias TPRINTDLG* PPRINTDLG;
alias TPRINTDLG TAGPD;
alias TPRINTDLG TPD;
alias TPRINTDLG* 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_U1
{

	union
	{
		struct
		{
			LPCTSTR pszTemplate;
		}
		struct
		{
			LPCDLGTEMPLATE pResource;
		}
	}
}


struct PROPSHEETPAGE_U2
{

	union
	{
		struct
		{
			HICON hIcon;
		}
		struct
		{
			LPCTSTR pszIcon;
		}
	}
}


struct PROPSHEETPAGE
{
	DWORD dwSize;
	DWORD dwFlags;
	HINST hInstance;
	PROPSHEETPAGE_U1 u1;
	PROPSHEETPAGE_U2 u2;
	LPCTSTR pszTitle;
	DLGPROC pfnDlgProc;
	LPARAM lParam;
	LPFNPSPCALLBACK pfnCallback;
	UINT* pcRefParent;
}

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;
}

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[1 + (RAS_MaxIpAddress+1)-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
{
	int nSize;
	int wFlags;
	int 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;

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;
}

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 SHFILEINFO
{
	HICON hIcon;
	int iIcon;
	DWORD dwAttributes;
	char[1 + MAX_PATH-1] szDisplayName;
	char[1 + 79] szTypeName;
}

alias SHFILEINFO _SHFILEINFO;
alias SHFILEINFO TSHFILEINFO;
alias SHFILEINFO* PSHFILEINFO;
alias ushort FILEOP_FLAGS;
alias FILEOP_FLAGS TFILEOPFLAGS;
alias FILEOP_FLAGS* PFILEOPFLAGS;

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;
	char[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_U
{

	union
	{
		struct
		{
			DWORD dwOemId;
		}
		struct
		{
			ushort wProcessorArchitecture;
			ushort wReserved;
		}
	}
}


struct SYSTEM_INFO
{
	SYSTEM_INFO_U u;
	DWORD dwPageSize;
	LPVOID lpMinimumApplicationAddress;
	LPVOID lpMaximumApplicationAddress;
	DWORD dwActiveProcessorMask;
	DWORD dwNumberOfProcessors;
	DWORD dwProcessorType;
	DWORD dwAllocationGranularity;
	ushort wProcessorLevel;
	ushort 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
{
	ULONG _Type;
}

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
{
	ULONG Operation;
}

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;
	ULONG OffsetLow;
	ULONG OffsetHigh;
}

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;
}

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
{
	int iBitmap;
	int idCommand;
	ubyte fsState;
	ubyte fsStyle;
	DWORD dwData;
	int iString;
}

alias TBBUTTON* LPTBBUTTON;
alias TBBUTTON* LPCTBBUTTON;
alias TBBUTTON _TBBUTTON;
alias TBBUTTON TTBBUTTON;
alias TBBUTTON* PTBBUTTON;

struct TBNOTIFY
{
	NMHDR hdr;
	int iItem;
	TBBUTTON tbButton;
	int cchText;
	LPTSTR pszText;
}

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 _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;

struct TC_KEYDOWN
{
	NMHDR hdr;
	ushort wVKey;
	UINT flags;
}

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[1 + ANYSIZE_ARRAY-1] 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 TOOLINFO
{
	UINT cbSize;
	UINT uFlags;
	HWND hwnd;
	UINT uId;
	RECT rect;
	HINST hinst;
	LPTSTR lpszText;
}

alias TOOLINFO* LPTOOLINFO;
alias TOOLINFO TTOOLINFO;
alias TOOLINFO* PTOOLINFO;

struct TOOLTIPTEXT
{
	NMHDR hdr;
	LPTSTR lpszText;
	char[1 + 79] szText;
	HINST hinst;
	UINT uFlags;
}

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 TV_INSERTSTRUCT
{
	HTREEITEM hParent;
	HTREEITEM hInsertAfter;
	TV_ITEM item;
}

alias TV_INSERTSTRUCT* LPTV_INSERTSTRUCT;
alias TV_INSERTSTRUCT _TV_INSERTSTRUCT;
alias TV_INSERTSTRUCT TTVINSERTSTRUCT;
alias TV_INSERTSTRUCT* PTVINSERTSTRUCT;

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;

struct ULARGE_INTEGER
{
	DWORD LowPart;
	DWORD HighPart;
}

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 WNDCLASS
{
	UINT style;
	WNDPROC lpfnWndProc;
	int cbClsExtra;
	int cbWndExtra;
	HANDLE hInstance;
	HICON hIcon;
	HCURSOR hCursor;
	HBRUSH hbrBackground;
	LPCTSTR lpszMenuName;
	LPCTSTR lpszClassName;
}

alias WNDCLASS* LPWNDCLASS;
alias WNDCLASS _WNDCLASS;
alias WNDCLASS TWNDCLASS;
alias WNDCLASS TWNDCLASSA;
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;

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 tagMONITORINFOEX
{
	DWORD  cbSize;
	RECT   rcMonitor;
	RECT   rcWork;
	DWORD  dwFlags;
	TCHAR  szDevice[CCHDEVICENAME];
}
alias tagMONITORINFOEX MONITORINFOEX;
alias MONITORINFOEX* LPMONITORINFOEX;

struct tagMONITORINFO
{
	DWORD  cbSize;
	RECT   rcMonitor;
	RECT   rcWork;
	DWORD  dwFlags;
}
alias tagMONITORINFO MONITORINFO;
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;

/*
int S_OK = (0x00000000);
int S_FALSE = (0x00000001);
int NOERROR = (0);
int E_UNEXPECTED = (DWORD)((0x8000FFFF));
int E_NOTIMPL = (DWORD)((0x80004001));
int E_OUTOFMEMORY = (DWORD)((0x8007000E));
int E_INVALIDARG = (DWORD)((0x80070057));
int E_NOINTERFACE = (DWORD)((0x80004002));
int E_POINTER = (DWORD)((0x80004003));
int E_HANDLE = (DWORD)((0x80070006));
int E_ABORT = (DWORD)((0x80004004));
int E_FAIL = (DWORD)((0x80004005));
int E_ACCESSDENIED = (DWORD)((0x80070005));
int E_PENDING = (DWORD)((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));
*/