4e2933c620 2015-04-21 kinaba: /***********************************************************************\ 4e2933c620 2015-04-21 kinaba: * wtypes.d * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Windows API header module * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Translated from MinGW Windows headers * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Placed into public domain * 4e2933c620 2015-04-21 kinaba: \***********************************************************************/ 4e2933c620 2015-04-21 kinaba: module win32.wtypes; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: import win32.rpc, win32.rpcndr; 4e2933c620 2015-04-21 kinaba: private import win32.windef; 4e2933c620 2015-04-21 kinaba: private import win32.uuid; // for GUID_NULL 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: alias GUID_NULL IID_NULL, CLSID_NULL; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const ROTFLAGS_REGISTRATIONKEEPSALIVE = 0x01; 4e2933c620 2015-04-21 kinaba: const ROTFLAGS_ALLOWANYCLIENT = 0x02; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: // also in winsock2.h 4e2933c620 2015-04-21 kinaba: struct BLOB { 4e2933c620 2015-04-21 kinaba: ULONG cbSize; 4e2933c620 2015-04-21 kinaba: BYTE* pBlobData; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias BLOB* PBLOB, LPBLOB; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum DVASPECT { 4e2933c620 2015-04-21 kinaba: DVASPECT_CONTENT = 1, 4e2933c620 2015-04-21 kinaba: DVASPECT_THUMBNAIL = 2, 4e2933c620 2015-04-21 kinaba: DVASPECT_ICON = 4, 4e2933c620 2015-04-21 kinaba: DVASPECT_DOCPRINT = 8 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum DVASPECT2 { 4e2933c620 2015-04-21 kinaba: DVASPECT_OPAQUE = 16, 4e2933c620 2015-04-21 kinaba: DVASPECT_TRANSPARENT = 32 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum STATFLAG { 4e2933c620 2015-04-21 kinaba: STATFLAG_DEFAULT = 0, 4e2933c620 2015-04-21 kinaba: STATFLAG_NONAME = 1 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum MEMCTX { 4e2933c620 2015-04-21 kinaba: MEMCTX_LOCAL = 0, 4e2933c620 2015-04-21 kinaba: MEMCTX_TASK, 4e2933c620 2015-04-21 kinaba: MEMCTX_SHARED, 4e2933c620 2015-04-21 kinaba: MEMCTX_MACSYSTEM, 4e2933c620 2015-04-21 kinaba: MEMCTX_UNKNOWN = -1, 4e2933c620 2015-04-21 kinaba: MEMCTX_SAME = -2 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum MSHCTX { 4e2933c620 2015-04-21 kinaba: MSHCTX_LOCAL = 0, 4e2933c620 2015-04-21 kinaba: MSHCTX_NOSHAREDMEM, 4e2933c620 2015-04-21 kinaba: MSHCTX_DIFFERENTMACHINE, 4e2933c620 2015-04-21 kinaba: MSHCTX_INPROC, 4e2933c620 2015-04-21 kinaba: MSHCTX_CROSSCTX 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum CLSCTX { 4e2933c620 2015-04-21 kinaba: CLSCTX_INPROC_SERVER = 1, 4e2933c620 2015-04-21 kinaba: CLSCTX_INPROC_HANDLER = 2, 4e2933c620 2015-04-21 kinaba: CLSCTX_LOCAL_SERVER = 4, 4e2933c620 2015-04-21 kinaba: CLSCTX_INPROC_SERVER16 = 8, 4e2933c620 2015-04-21 kinaba: CLSCTX_REMOTE_SERVER = 16 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum MSHLFLAGS { 4e2933c620 2015-04-21 kinaba: MSHLFLAGS_NORMAL, 4e2933c620 2015-04-21 kinaba: MSHLFLAGS_TABLESTRONG, 4e2933c620 2015-04-21 kinaba: MSHLFLAGS_TABLEWEAK 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct FLAGGED_WORD_BLOB { 4e2933c620 2015-04-21 kinaba: uint fFlags; 4e2933c620 2015-04-21 kinaba: uint clSize; 4e2933c620 2015-04-21 kinaba: ushort asData[1]; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: alias WCHAR OLECHAR; 4e2933c620 2015-04-21 kinaba: alias LPWSTR LPOLESTR; 4e2933c620 2015-04-21 kinaba: alias LPCWSTR LPCOLESTR; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: alias ushort VARTYPE; 4e2933c620 2015-04-21 kinaba: alias short VARIANT_BOOL; 4e2933c620 2015-04-21 kinaba: alias VARIANT_BOOL _VARIANT_BOOL; 4e2933c620 2015-04-21 kinaba: const VARIANT_BOOL VARIANT_TRUE = -1; // 0xffff; 4e2933c620 2015-04-21 kinaba: const VARIANT_BOOL VARIANT_FALSE = 0; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: alias OLECHAR* BSTR; 4e2933c620 2015-04-21 kinaba: alias FLAGGED_WORD_BLOB* wireBSTR; 4e2933c620 2015-04-21 kinaba: alias BSTR* LPBSTR; 4e2933c620 2015-04-21 kinaba: //alias LONG SCODE; // also in winerror 4e2933c620 2015-04-21 kinaba: alias HANDLE HCONTEXT, HMETAFILEPICT; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: union CY { 4e2933c620 2015-04-21 kinaba: struct { 4e2933c620 2015-04-21 kinaba: uint Lo; 4e2933c620 2015-04-21 kinaba: int Hi; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: LONGLONG int64; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: alias double DATE; 4e2933c620 2015-04-21 kinaba: struct BSTRBLOB { 4e2933c620 2015-04-21 kinaba: ULONG cbSize; 4e2933c620 2015-04-21 kinaba: PBYTE pData; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias BSTRBLOB* LPBSTRBLOB; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: // Used only in the PROPVARIANT structure 4e2933c620 2015-04-21 kinaba: // According to the 2003 SDK, this should be in propidl.h, not here. 4e2933c620 2015-04-21 kinaba: struct CLIPDATA { 4e2933c620 2015-04-21 kinaba: ULONG cbSize; 4e2933c620 2015-04-21 kinaba: int ulClipFmt; 4e2933c620 2015-04-21 kinaba: PBYTE pClipData; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum STGC { 4e2933c620 2015-04-21 kinaba: STGC_DEFAULT, 4e2933c620 2015-04-21 kinaba: STGC_OVERWRITE, 4e2933c620 2015-04-21 kinaba: STGC_ONLYIFCURRENT, 4e2933c620 2015-04-21 kinaba: STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum STGMOVE { 4e2933c620 2015-04-21 kinaba: STGMOVE_MOVE, 4e2933c620 2015-04-21 kinaba: STGMOVE_COPY, 4e2933c620 2015-04-21 kinaba: STGMOVE_SHALLOWCOPY 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum VARENUM { 4e2933c620 2015-04-21 kinaba: VT_EMPTY, 4e2933c620 2015-04-21 kinaba: VT_NULL, 4e2933c620 2015-04-21 kinaba: VT_I2, 4e2933c620 2015-04-21 kinaba: VT_I4, 4e2933c620 2015-04-21 kinaba: VT_R4, 4e2933c620 2015-04-21 kinaba: VT_R8, 4e2933c620 2015-04-21 kinaba: VT_CY, 4e2933c620 2015-04-21 kinaba: VT_DATE, 4e2933c620 2015-04-21 kinaba: VT_BSTR, 4e2933c620 2015-04-21 kinaba: VT_DISPATCH, 4e2933c620 2015-04-21 kinaba: VT_ERROR, 4e2933c620 2015-04-21 kinaba: VT_BOOL, 4e2933c620 2015-04-21 kinaba: VT_VARIANT, 4e2933c620 2015-04-21 kinaba: VT_UNKNOWN, 4e2933c620 2015-04-21 kinaba: VT_DECIMAL, 4e2933c620 2015-04-21 kinaba: VT_I1 = 16, 4e2933c620 2015-04-21 kinaba: VT_UI1, 4e2933c620 2015-04-21 kinaba: VT_UI2, 4e2933c620 2015-04-21 kinaba: VT_UI4, 4e2933c620 2015-04-21 kinaba: VT_I8, 4e2933c620 2015-04-21 kinaba: VT_UI8, 4e2933c620 2015-04-21 kinaba: VT_INT, 4e2933c620 2015-04-21 kinaba: VT_UINT, 4e2933c620 2015-04-21 kinaba: VT_VOID, 4e2933c620 2015-04-21 kinaba: VT_HRESULT, 4e2933c620 2015-04-21 kinaba: VT_PTR, 4e2933c620 2015-04-21 kinaba: VT_SAFEARRAY, 4e2933c620 2015-04-21 kinaba: VT_CARRAY, 4e2933c620 2015-04-21 kinaba: VT_USERDEFINED, 4e2933c620 2015-04-21 kinaba: VT_LPSTR, 4e2933c620 2015-04-21 kinaba: VT_LPWSTR, 4e2933c620 2015-04-21 kinaba: VT_RECORD = 36, 4e2933c620 2015-04-21 kinaba: VT_INT_PTR = 37, 4e2933c620 2015-04-21 kinaba: VT_UINT_PTR = 38, 4e2933c620 2015-04-21 kinaba: VT_FILETIME = 64, 4e2933c620 2015-04-21 kinaba: VT_BLOB, 4e2933c620 2015-04-21 kinaba: VT_STREAM, 4e2933c620 2015-04-21 kinaba: VT_STORAGE, 4e2933c620 2015-04-21 kinaba: VT_STREAMED_OBJECT, 4e2933c620 2015-04-21 kinaba: VT_STORED_OBJECT, 4e2933c620 2015-04-21 kinaba: VT_BLOB_OBJECT, 4e2933c620 2015-04-21 kinaba: VT_CF, 4e2933c620 2015-04-21 kinaba: VT_CLSID, 4e2933c620 2015-04-21 kinaba: VT_BSTR_BLOB = 0xfff, 4e2933c620 2015-04-21 kinaba: VT_VECTOR = 0x1000, 4e2933c620 2015-04-21 kinaba: VT_ARRAY = 0x2000, 4e2933c620 2015-04-21 kinaba: VT_BYREF = 0x4000, 4e2933c620 2015-04-21 kinaba: VT_RESERVED = 0x8000, 4e2933c620 2015-04-21 kinaba: VT_ILLEGAL = 0xffff, 4e2933c620 2015-04-21 kinaba: VT_ILLEGALMASKED = 0xfff, 4e2933c620 2015-04-21 kinaba: VT_TYPEMASK = 0xfff 4e2933c620 2015-04-21 kinaba: }; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct BYTE_SIZEDARR { 4e2933c620 2015-04-21 kinaba: uint clSize; 4e2933c620 2015-04-21 kinaba: byte* pData; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct WORD_SIZEDARR { 4e2933c620 2015-04-21 kinaba: uint clSize; 4e2933c620 2015-04-21 kinaba: ushort* pData; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct DWORD_SIZEDARR { 4e2933c620 2015-04-21 kinaba: uint clSize; 4e2933c620 2015-04-21 kinaba: uint* pData; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct HYPER_SIZEDARR { 4e2933c620 2015-04-21 kinaba: uint clSize; 4e2933c620 2015-04-21 kinaba: hyper* pData; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: alias double DOUBLE; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct DECIMAL { 4e2933c620 2015-04-21 kinaba: USHORT wReserved; 4e2933c620 2015-04-21 kinaba: union { 4e2933c620 2015-04-21 kinaba: struct { 4e2933c620 2015-04-21 kinaba: ubyte scale; // valid values are 0 to 28 4e2933c620 2015-04-21 kinaba: ubyte sign; // 0 for positive, DECIMAL_NEG for negatives. 4e2933c620 2015-04-21 kinaba: ubyte DECIMAL_NEG = 0x80; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: USHORT signscale; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: ULONG Hi32; 4e2933c620 2015-04-21 kinaba: union { 4e2933c620 2015-04-21 kinaba: struct { 4e2933c620 2015-04-21 kinaba: ULONG Lo32; 4e2933c620 2015-04-21 kinaba: ULONG Mid32; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: ULONGLONG Lo64; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: // #define DECIMAL_SETZERO(d) {(d).Lo64=(d).Hi32=(d).signscale=0;} 4e2933c620 2015-04-21 kinaba: void setZero() { Lo64 = 0; Hi32 = 0; signscale = 0; } 4e2933c620 2015-04-21 kinaba: }