summaryrefslogtreecommitdiffstats
path: root/src/VBox/Devices/Graphics/shaderlib/wine/include/wtypes.idl
diff options
context:
space:
mode:
Diffstat (limited to 'src/VBox/Devices/Graphics/shaderlib/wine/include/wtypes.idl')
-rw-r--r--src/VBox/Devices/Graphics/shaderlib/wine/include/wtypes.idl848
1 files changed, 848 insertions, 0 deletions
diff --git a/src/VBox/Devices/Graphics/shaderlib/wine/include/wtypes.idl b/src/VBox/Devices/Graphics/shaderlib/wine/include/wtypes.idl
new file mode 100644
index 00000000..bb76dc36
--- /dev/null
+++ b/src/VBox/Devices/Graphics/shaderlib/wine/include/wtypes.idl
@@ -0,0 +1,848 @@
+/*
+ * Basic types used by COM interfaces
+ *
+ * Copyright 2002 Ove Kaaven
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+/*
+ * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
+ * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
+ * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
+ * a choice of LGPL license versions is made available with the language indicating
+ * that LGPLv2 or any later version may be used, or where a choice of which version
+ * of the LGPL is applied is otherwise unspecified.
+ */
+
+import "basetsd.h";
+import "guiddef.h";
+
+[
+ uuid(D3980A60-910C-1068-9341-00DD010F2F1C),
+ version(0.1),
+ pointer_default(unique)
+]
+
+interface IWinTypes
+{
+
+/******************** BASIC WIN32 TYPES ********************/
+cpp_quote("#if 0 /* winnt.h */") /* don't redefine these */
+
+typedef unsigned char BYTE;
+typedef unsigned short WORD;
+typedef unsigned long DWORD;
+typedef long BOOL;
+typedef unsigned char UCHAR;
+typedef int INT;
+typedef unsigned int UINT;
+typedef short SHORT;
+typedef unsigned short USHORT;
+typedef long LONG;
+typedef unsigned long ULONG;
+typedef float FLOAT;
+
+typedef void *PVOID, *LPVOID;
+
+typedef DWORD *LPDWORD;
+
+typedef char CHAR;
+typedef [string] CHAR *LPSTR;
+typedef [string] const CHAR *LPCSTR;
+
+typedef wchar_t WCHAR;
+typedef [string] WCHAR *LPWSTR;
+typedef [string] const WCHAR *LPCWSTR;
+
+typedef boolean BOOLEAN;
+
+typedef DWORD COLORREF;
+
+typedef void *HANDLE;
+#define DECLARE_HANDLE(name) typedef void *name
+#define DECLARE_WIREM_HANDLE(name) typedef [wire_marshal(wire##name)] void*name
+
+DECLARE_HANDLE(HMODULE);
+DECLARE_HANDLE(HINSTANCE);
+DECLARE_HANDLE(HRGN);
+DECLARE_HANDLE(HTASK);
+DECLARE_HANDLE(HKEY);
+DECLARE_HANDLE(HDESK);
+DECLARE_HANDLE(HMF);
+DECLARE_HANDLE(HEMF);
+DECLARE_HANDLE(HPEN);
+DECLARE_HANDLE(HRSRC);
+DECLARE_HANDLE(HSTR);
+DECLARE_HANDLE(HWINSTA);
+DECLARE_HANDLE(HKL);
+DECLARE_HANDLE(HGDIOBJ);
+
+typedef HANDLE HDWP;
+
+typedef LONG_PTR LRESULT;
+
+typedef LONG HRESULT;
+typedef DWORD LCID;
+typedef USHORT LANGID;
+
+typedef unsigned __int64 DWORDLONG;
+typedef __int64 LONGLONG;
+typedef unsigned __int64 ULONGLONG;
+
+typedef struct _LARGE_INTEGER {
+ LONGLONG QuadPart;
+} LARGE_INTEGER;
+
+typedef struct _ULARGE_INTEGER {
+ ULONGLONG QuadPart;
+} ULARGE_INTEGER;
+
+typedef struct _SID_IDENTIFIER_AUTHORITY {
+ UCHAR Value[6];
+} SID_IDENTIFIER_AUTHORITY, *PSID_IDENTIFIER_AUTHORITY;
+
+typedef struct _SID {
+ UCHAR Revision;
+ UCHAR SubAuthorityCount;
+ SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
+ [size_is(SubAuthorityCount)] ULONG SubAuthority[*];
+} SID, *PSID;
+
+typedef USHORT SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;
+
+typedef struct _ACL {
+ UCHAR AclRevision;
+ UCHAR Sbz1;
+ USHORT AclSize;
+ USHORT AceCount;
+ USHORT Sbz2;
+} ACL;
+typedef ACL *PACL;
+
+typedef struct _SECURITY_DESCRIPTOR {
+ UCHAR Revision;
+ UCHAR Sbz1;
+ SECURITY_DESCRIPTOR_CONTROL Control;
+ PSID Owner;
+ PSID Group;
+ PACL Sacl;
+ PACL Dacl;
+} SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR;
+
+typedef struct _SECURITY_ATTRIBUTES
+{
+ DWORD nLength;
+ [size_is(nLength)] LPVOID lpSecurityDescriptor;
+ BOOL bInheritHandle;
+} SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
+
+typedef struct tagSIZE
+{
+ LONG cx;
+ LONG cy;
+} SIZE, *PSIZE, *LPSIZE;
+typedef SIZE SIZEL, *PSIZEL, *LPSIZEL;
+
+typedef struct tagPOINT
+{
+ LONG x;
+ LONG y;
+} POINT, *PPOINT, *LPPOINT;
+
+typedef struct _POINTL
+{
+ LONG x;
+ LONG y;
+} POINTL, *PPOINTL;
+
+typedef struct tagRECT
+{
+ LONG left;
+ LONG top;
+ LONG right;
+ LONG bottom;
+} RECT, *PRECT, *LPRECT;
+typedef const RECT *LPCRECT;
+
+typedef struct _RECTL
+{
+ LONG left;
+ LONG top;
+ LONG right;
+ LONG bottom;
+} RECTL, *PRECTL, *LPRECTL;
+typedef const RECTL *LPCRECTL;
+
+typedef UINT_PTR WPARAM;
+typedef LONG_PTR LPARAM;
+
+cpp_quote("#endif /* winnt.h */")
+
+cpp_quote("#ifdef _MSC_VER") /* for IDL and MSVC only */
+typedef double DOUBLE;
+cpp_quote("#else")
+cpp_quote("typedef double DECLSPEC_ALIGN(8) DOUBLE;")
+cpp_quote("#endif")
+
+cpp_quote("#ifndef _PALETTEENTRY_DEFINED")
+cpp_quote("#define _PALETTEENTRY_DEFINED")
+typedef struct tagPALETTEENTRY {
+ BYTE peRed;
+ BYTE peGreen;
+ BYTE peBlue;
+ BYTE peFlags;
+} PALETTEENTRY, *PPALETTEENTRY, *LPPALETTEENTRY;
+cpp_quote("#endif")
+
+cpp_quote("#ifndef _LOGPALETTE_DEFINED")
+cpp_quote("#define _LOGPALETTE_DEFINED")
+typedef struct tagLOGPALETTE
+{
+ WORD palVersion;
+ WORD palNumEntries;
+ [size_is(palNumEntries)] PALETTEENTRY palPalEntry[*];
+} LOGPALETTE, *PLOGPALETTE, *LPLOGPALETTE;
+cpp_quote("#endif")
+
+cpp_quote("#ifndef _SYSTEMTIME_")
+cpp_quote("#define _SYSTEMTIME_")
+typedef struct _SYSTEMTIME{
+ WORD wYear;
+ WORD wMonth;
+ WORD wDayOfWeek;
+ WORD wDay;
+ WORD wHour;
+ WORD wMinute;
+ WORD wSecond;
+ WORD wMilliseconds;
+} SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;
+cpp_quote("#endif")
+
+cpp_quote("#ifndef _FILETIME_")
+cpp_quote("#define _FILETIME_")
+typedef struct _FILETIME {
+ DWORD dwLowDateTime;
+ DWORD dwHighDateTime;
+} FILETIME, *PFILETIME, *LPFILETIME;
+cpp_quote("#endif")
+
+cpp_quote("#ifndef _TEXTMETRIC_DEFINED")
+cpp_quote("#define _TEXTMETRIC_DEFINED")
+typedef struct tagTEXTMETRICA
+{
+ LONG tmHeight;
+ LONG tmAscent;
+ LONG tmDescent;
+ LONG tmInternalLeading;
+ LONG tmExternalLeading;
+ LONG tmAveCharWidth;
+ LONG tmMaxCharWidth;
+ LONG tmWeight;
+ LONG tmOverhang;
+ LONG tmDigitizedAspectX;
+ LONG tmDigitizedAspectY;
+ BYTE tmFirstChar;
+ BYTE tmLastChar;
+ BYTE tmDefaultChar;
+ BYTE tmBreakChar;
+ BYTE tmItalic;
+ BYTE tmUnderlined;
+ BYTE tmStruckOut;
+ BYTE tmPitchAndFamily;
+ BYTE tmCharSet;
+} TEXTMETRICA, *LPTEXTMETRICA, *PTEXTMETRICA;
+
+typedef struct tagTEXTMETRICW
+{
+ LONG tmHeight;
+ LONG tmAscent;
+ LONG tmDescent;
+ LONG tmInternalLeading;
+ LONG tmExternalLeading;
+ LONG tmAveCharWidth;
+ LONG tmMaxCharWidth;
+ LONG tmWeight;
+ LONG tmOverhang;
+ LONG tmDigitizedAspectX;
+ LONG tmDigitizedAspectY;
+ WCHAR tmFirstChar;
+ WCHAR tmLastChar;
+ WCHAR tmDefaultChar;
+ WCHAR tmBreakChar;
+ BYTE tmItalic;
+ BYTE tmUnderlined;
+ BYTE tmStruckOut;
+ BYTE tmPitchAndFamily;
+ BYTE tmCharSet;
+} TEXTMETRICW, *LPTEXTMETRICW, *PTEXTMETRICW;
+cpp_quote("#endif")
+
+/******************** BASIC COM/OLE TYPES ********************/
+
+typedef WCHAR OLECHAR;
+typedef [string] OLECHAR *LPOLESTR;
+typedef [string] const OLECHAR *LPCOLESTR;
+cpp_quote("#ifndef __WINESRC__")
+cpp_quote("#define OLESTR(str) L##str")
+cpp_quote("#endif")
+
+typedef LONG SCODE;
+
+typedef struct _COAUTHIDENTITY {
+ [size_is(UserLength+1)] USHORT *User;
+ ULONG UserLength;
+ [size_is(DomainLength+1)] USHORT *Domain;
+ ULONG DomainLength;
+ [size_is(PasswordLength+1)] USHORT *Password;
+ ULONG PasswordLength;
+ ULONG Flags;
+} COAUTHIDENTITY;
+
+typedef struct _COAUTHINFO {
+ DWORD dwAuthnSvc;
+ DWORD dwAuthzSvc;
+ LPWSTR pwszServerPrincName;
+ DWORD dwAuthnLevel;
+ DWORD dwImpersonationLevel;
+ COAUTHIDENTITY *pAuthIdentityData;
+ DWORD dwCapabilities;
+} COAUTHINFO;
+
+typedef enum tagMEMCTX {
+ MEMCTX_TASK = 1,
+ MEMCTX_SHARED = 2,
+ MEMCTX_MACSYSTEM = 3,
+ MEMCTX_UNKNOWN = -1,
+ MEMCTX_SAME = -2
+} MEMCTX;
+
+cpp_quote("#ifndef _ROT_COMPARE_MAX_DEFINED")
+cpp_quote("#define _ROT_COMPARE_MAX_DEFINED")
+cpp_quote("#define ROT_COMPARE_MAX 2048")
+cpp_quote("#endif")
+
+cpp_quote("#ifndef _ROTFLAGS_DEFINED")
+cpp_quote("#define _ROTFLAGS_DEFINED")
+cpp_quote("#define ROTFLAGS_REGISTRATIONKEEPSALIVE 0x1")
+cpp_quote("#define ROTFLAGS_ALLOWANYCLIENT 0x2")
+cpp_quote("#endif")
+
+typedef enum tagCLSCTX {
+ CLSCTX_INPROC_SERVER = 0x1,
+ CLSCTX_INPROC_HANDLER = 0x2,
+ CLSCTX_LOCAL_SERVER = 0x4,
+ CLSCTX_INPROC_SERVER16 = 0x8,
+ CLSCTX_REMOTE_SERVER = 0x10,
+ CLSCTX_INPROC_HANDLER16 = 0x20,
+ CLSCTX_INPROC_SERVERX86 = 0x40,
+ CLSCTX_INPROC_HANDLERX86 = 0x80,
+ CLSCTX_ESERVER_HANDLER = 0x100,
+ CLSCTX_NO_CODE_DOWNLOAD = 0x400,
+ CLSCTX_NO_CUSTOM_MARSHAL = 0x1000,
+ CLSCTX_ENABLE_CODE_DOWNLOAD = 0x2000,
+ CLSCTX_NO_FAILURE_LOG = 0x4000,
+ CLSCTX_DISABLE_AAA = 0x8000,
+ CLSCTX_ENABLE_AAA = 0x10000,
+ CLSCTX_FROM_DEFAULT_CONTEXT = 0x20000
+} CLSCTX;
+
+cpp_quote("#define CLSCTX_INPROC (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER)")
+cpp_quote("#define CLSCTX_ALL (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)")
+cpp_quote("#define CLSCTX_SERVER (CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)")
+
+typedef enum tagMSHLFLAGS {
+ MSHLFLAGS_NORMAL = 0,
+ MSHLFLAGS_TABLESTRONG = 1,
+ MSHLFLAGS_TABLEWEAK = 2,
+ MSHLFLAGS_NOPING = 4
+} MSHLFLAGS;
+
+typedef enum tagMSHCTX {
+ MSHCTX_LOCAL = 0,
+ MSHCTX_NOSHAREDMEM = 1,
+ MSHCTX_DIFFERENTMACHINE = 2,
+ MSHCTX_INPROC = 3,
+ MSHCTX_CROSSCTX = 4
+} MSHCTX;
+
+/******************** BLOB TYPES ********************/
+
+typedef struct _BYTE_BLOB {
+ unsigned long clSize;
+ [size_is(clSize)] byte abData[];
+} BYTE_BLOB;
+typedef [unique] BYTE_BLOB *UP_BYTE_BLOB;
+
+typedef struct _FLAGGED_BYTE_BLOB {
+ unsigned long fFlags;
+ unsigned long clSize;
+ [size_is(clSize)] byte abData[];
+} FLAGGED_BYTE_BLOB;
+typedef [unique] FLAGGED_BYTE_BLOB *UP_FLAGGED_BYTE_BLOB;
+
+typedef struct _FLAGGED_WORD_BLOB {
+ unsigned long fFlags;
+ unsigned long clSize;
+ [size_is(clSize)] unsigned short asData[];
+} FLAGGED_WORD_BLOB;
+typedef [unique] FLAGGED_WORD_BLOB *UP_FLAGGED_WORD_BLOB;
+
+typedef struct _BYTE_SIZEDARR {
+ unsigned long clSize;
+ [size_is(clSize)] byte *pData;
+} BYTE_SIZEDARR;
+
+typedef struct _SHORT_SIZEDARR {
+ unsigned long clSize;
+ [size_is(clSize)] unsigned short *pData;
+} WORD_SIZEDARR;
+
+typedef struct _LONG_SIZEDARR {
+ unsigned long clSize;
+ [size_is(clSize)] unsigned long *pData;
+} DWORD_SIZEDARR;
+
+typedef struct _HYPER_SIZEDARR {
+ unsigned long clSize;
+ [size_is(clSize)] hyper *pData;
+} HYPER_SIZEDARR;
+
+/******************** GDI TYPES ********************/
+
+const unsigned long WDT_INPROC_CALL = 0x48746457;
+const unsigned long WDT_REMOTE_CALL = 0x52746457;
+const unsigned long WDT_INPROC64_CALL = 0x50746457;
+
+typedef union _userCLIPFORMAT switch(long fContext) u {
+ case WDT_INPROC_CALL: DWORD dwValue;
+ case WDT_REMOTE_CALL: LPWSTR pwszName;
+} userCLIPFORMAT;
+
+typedef [unique] userCLIPFORMAT *wireCLIPFORMAT;
+typedef [wire_marshal(wireCLIPFORMAT)] WORD CLIPFORMAT;
+
+typedef struct tagRemHGLOBAL {
+ long fNullHGlobal;
+ unsigned long cbData;
+ [size_is(cbData)] byte data[];
+} RemHGLOBAL;
+
+typedef union _userHGLOBAL switch(long fContext) u {
+ case WDT_INPROC_CALL: long hInproc;
+ case WDT_REMOTE_CALL: FLAGGED_BYTE_BLOB *hRemote;
+ case WDT_INPROC64_CALL: __int64 hInproc64;
+} userHGLOBAL;
+
+typedef [unique] userHGLOBAL *wireHGLOBAL;
+
+typedef struct tagRemHMETAFILEPICT {
+ long mm;
+ long xExt;
+ long yExt;
+ unsigned long cbData;
+ [size_is(cbData)] byte data[];
+} RemHMETAFILEPICT;
+
+typedef union _userHMETAFILE switch(long fContext) u {
+ case WDT_INPROC_CALL: long hInproc;
+ case WDT_REMOTE_CALL: BYTE_BLOB *hRemote;
+ case WDT_INPROC64_CALL: __int64 hInproc64;
+} userHMETAFILE;
+
+typedef [unique] userHMETAFILE *wireHMETAFILE;
+
+typedef struct _remoteMETAFILEPICT {
+ long mm;
+ long xExt;
+ long yExt;
+ userHMETAFILE *hMF;
+} remoteMETAFILEPICT;
+
+typedef union _userHMETAFILEPICT switch(long fContext) u {
+ case WDT_INPROC_CALL: long hInproc;
+ case WDT_REMOTE_CALL: remoteMETAFILEPICT *hRemote;
+ case WDT_INPROC64_CALL: __int64 hInproc64;
+} userHMETAFILEPICT;
+
+typedef [unique] userHMETAFILEPICT *wireHMETAFILEPICT;
+
+typedef struct tagRemHENHMETAFILE {
+ unsigned long cbData;
+ [size_is(cbData)] byte data[];
+} RemHENHMETAFILE;
+
+typedef union _userHENHMETAFILE switch(long fContext) u {
+ case WDT_INPROC_CALL: long hInproc;
+ case WDT_REMOTE_CALL: BYTE_BLOB *hRemote;
+ case WDT_INPROC64_CALL: __int64 hInproc64;
+} userHENHMETAFILE;
+
+typedef [unique] userHENHMETAFILE *wireHENHMETAFILE;
+
+typedef struct tagRemHBITMAP
+{
+ unsigned long cbData;
+ [size_is(cbData)] byte data[];
+} RemHBITMAP;
+
+typedef struct _userBITMAP {
+ LONG bmType;
+ LONG bmWidth;
+ LONG bmHeight;
+ LONG bmWidthBytes;
+ WORD bmPlanes;
+ WORD bmBitsPixel;
+ ULONG cbSize;
+ [size_is(cbSize)] byte pBuffer[];
+} userBITMAP;
+
+typedef union _userHBITMAP switch(long fContext) u {
+ case WDT_INPROC_CALL: long hInproc;
+ case WDT_REMOTE_CALL: userBITMAP *hRemote;
+ case WDT_INPROC64_CALL: __int64 hInproc64;
+} userHBITMAP;
+
+typedef [unique] userHBITMAP *wireHBITMAP;
+
+typedef struct tagRemHPALETTE {
+ unsigned long cbData;
+ [size_is(cbData)] byte data[];
+} RemHPALETTE;
+
+typedef struct tagrpcLOGPALETTE {
+ WORD palVersion;
+ WORD palNumEntries;
+ [size_is(palNumEntries)] PALETTEENTRY palPalEntry[];
+} rpcLOGPALETTE;
+
+typedef union _userHPALETTE switch(long fContext) u {
+ case WDT_INPROC_CALL: long hInproc;
+ case WDT_REMOTE_CALL: rpcLOGPALETTE *hRemote;
+ case WDT_INPROC64_CALL: __int64 hInproc64;
+} userHPALETTE;
+
+typedef [unique] userHPALETTE *wireHPALETTE;
+
+cpp_quote("#if 0")
+DECLARE_WIREM_HANDLE(HGLOBAL);
+typedef HGLOBAL HLOCAL;
+DECLARE_WIREM_HANDLE(HBITMAP);
+DECLARE_WIREM_HANDLE(HPALETTE);
+DECLARE_WIREM_HANDLE(HENHMETAFILE);
+DECLARE_WIREM_HANDLE(HMETAFILE);
+cpp_quote("#endif")
+DECLARE_WIREM_HANDLE(HMETAFILEPICT);
+
+typedef union _RemotableHandle switch (long fContext) u
+{
+ case WDT_INPROC_CALL: long hInproc;
+ case WDT_REMOTE_CALL: long hRemote;
+} RemotableHandle;
+
+typedef [unique] RemotableHandle *wireHACCEL;
+typedef [unique] RemotableHandle *wireHBRUSH;
+typedef [unique] RemotableHandle *wireHDC;
+typedef [unique] RemotableHandle *wireHFONT;
+typedef [unique] RemotableHandle *wireHICON;
+typedef [unique] RemotableHandle *wireHMENU;
+typedef [unique] RemotableHandle *wireHWND;
+
+cpp_quote("#if 0") /* for IDL only (C/C++ defs are in windef.h) */
+DECLARE_WIREM_HANDLE(HACCEL);
+DECLARE_WIREM_HANDLE(HBRUSH);
+DECLARE_WIREM_HANDLE(HDC);
+DECLARE_WIREM_HANDLE(HFONT);
+DECLARE_WIREM_HANDLE(HICON);
+DECLARE_WIREM_HANDLE(HMENU);
+DECLARE_WIREM_HANDLE(HWND);
+
+typedef HICON HCURSOR;
+
+typedef struct tagMSG
+{
+ HWND hwnd;
+ UINT message;
+ WPARAM wParam;
+ LPARAM lParam;
+ DWORD time;
+ POINT pt;
+} MSG, *PMSG, *NPMSG, *LPMSG;
+
+cpp_quote("#endif")
+
+/******************** GUID TYPES ********************/
+
+cpp_quote("#if 0") /* for IDL only (C/C++ defs are in guiddef.h) */
+typedef GUID *REFGUID;
+typedef IID *REFIID;
+typedef CLSID *REFCLSID;
+typedef FMTID *REFFMTID;
+cpp_quote("#endif")
+
+/******************** MISC TYPES ********************/
+
+typedef enum tagDVASPECT {
+ DVASPECT_CONTENT = 1,
+ DVASPECT_THUMBNAIL = 2,
+ DVASPECT_ICON = 4,
+ DVASPECT_DOCPRINT = 8
+} DVASPECT;
+
+typedef enum tagSTGC {
+ STGC_DEFAULT = 0,
+ STGC_OVERWRITE = 1,
+ STGC_ONLYIFCURRENT = 2,
+ STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4,
+ STGC_CONSOLIDATE = 8
+} STGC;
+
+typedef enum tagSTGMOVE {
+ STGMOVE_MOVE = 0,
+ STGMOVE_COPY = 1,
+ STGMOVE_SHALLOWCOPY = 2
+} STGMOVE;
+
+typedef enum tagSTATFLAG {
+ STATFLAG_DEFAULT = 0,
+ STATFLAG_NONAME = 1,
+ STATFLAG_NOOPEN = 2
+} STATFLAG;
+
+/******************** OLE Automation ********************/
+
+cpp_quote("#ifdef _MSC_VER") /* for IDL and MSVC only */
+typedef double DATE;
+cpp_quote("#else")
+cpp_quote("typedef double DECLSPEC_ALIGN(8) DATE;")
+cpp_quote("#endif")
+
+cpp_quote("#if 0") /* for IDL only */
+typedef struct tagCY {
+ LONGLONG int64;
+} CY;
+cpp_quote("#else") /* C/C++ defs */
+cpp_quote("#ifndef _tagCY_DEFINED")
+cpp_quote("#define _tagCY_DEFINED")
+cpp_quote("typedef union tagCY {")
+cpp_quote(" struct {")
+cpp_quote("#ifdef WORDS_BIGENDIAN")
+cpp_quote(" LONG Hi;")
+cpp_quote(" ULONG Lo;")
+cpp_quote("#else")
+cpp_quote(" ULONG Lo;")
+cpp_quote(" LONG Hi;")
+cpp_quote("#endif")
+cpp_quote(" } DUMMYSTRUCTNAME;")
+cpp_quote(" LONGLONG int64;")
+cpp_quote("} CY;")
+cpp_quote("#endif")
+cpp_quote("#endif")
+
+typedef CY *LPCY;
+
+cpp_quote("#if 0") /* for IDL only */
+typedef struct tagDEC {
+ USHORT wReserved;
+ BYTE scale;
+ BYTE sign;
+ ULONG Hi32;
+ ULONGLONG Lo64;
+} DECIMAL;
+cpp_quote("#else") /* C/C++ defs */
+cpp_quote("typedef struct tagDEC {")
+cpp_quote(" USHORT wReserved;")
+cpp_quote(" union {")
+cpp_quote(" struct {")
+cpp_quote(" BYTE scale;")
+cpp_quote(" BYTE sign;")
+cpp_quote(" } DUMMYSTRUCTNAME;")
+cpp_quote(" USHORT signscale;")
+cpp_quote(" } DUMMYUNIONNAME;")
+cpp_quote(" ULONG Hi32;")
+cpp_quote(" union {")
+cpp_quote(" struct {")
+cpp_quote("#ifdef WORDS_BIGENDIAN")
+cpp_quote(" ULONG Mid32;")
+cpp_quote(" ULONG Lo32;")
+cpp_quote("#else")
+cpp_quote(" ULONG Lo32;")
+cpp_quote(" ULONG Mid32;")
+cpp_quote("#endif")
+cpp_quote(" } DUMMYSTRUCTNAME1;")
+cpp_quote(" ULONGLONG Lo64;")
+cpp_quote(" } DUMMYUNIONNAME1;")
+cpp_quote("} DECIMAL;")
+cpp_quote("#endif")
+cpp_quote("#define DECIMAL_NEG ((BYTE)0x80)")
+cpp_quote("#define DECIMAL_SETZERO(d) do{ memset(((char*)&(d)) + sizeof(USHORT), 0, sizeof(ULONG) * 3u + sizeof(USHORT)); }while (0)")
+
+typedef DECIMAL *LPDECIMAL;
+
+typedef [unique] FLAGGED_WORD_BLOB *wireBSTR;
+typedef [wire_marshal(wireBSTR)] OLECHAR *BSTR;
+typedef BSTR *LPBSTR;
+
+typedef short VARIANT_BOOL;
+typedef VARIANT_BOOL _VARIANT_BOOL;
+cpp_quote("#define VARIANT_TRUE ((VARIANT_BOOL)0xFFFF)")
+cpp_quote("#define VARIANT_FALSE ((VARIANT_BOOL)0x0000)")
+
+typedef struct tagBSTRBLOB {
+ ULONG cbSize;
+ [size_is(cbSize)] BYTE *pData;
+} BSTRBLOB, *LPBSTRBLOB;
+
+cpp_quote("#ifndef _tagBLOB_DEFINED")
+cpp_quote("#define _tagBLOB_DEFINED")
+cpp_quote("#define _BLOB_DEFINED")
+cpp_quote("#define _LPBLOB_DEFINED")
+typedef struct tagBLOB {
+ ULONG cbSize;
+ [size_is(cbSize)] BYTE *pBlobData;
+} BLOB, *LPBLOB;
+cpp_quote("#endif")
+
+typedef struct tagCLIPDATA {
+ ULONG cbSize;
+ long ulClipFmt;
+ [size_is(cbSize-sizeof(long))] BYTE *pClipData;
+} CLIPDATA;
+cpp_quote("#define CBPCLIPDATA(cb) ((cb).cbSize - sizeof((cb).ulClipFmt))")
+
+typedef ULONG PROPID;
+
+/******************** VARTYPE ********************/
+
+typedef unsigned short VARTYPE;
+enum VARENUM {
+ VT_EMPTY = 0,
+ VT_NULL = 1,
+ VT_I2 = 2,
+ VT_I4 = 3,
+ VT_R4 = 4,
+ VT_R8 = 5,
+ VT_CY = 6,
+ VT_DATE = 7,
+ VT_BSTR = 8,
+ VT_DISPATCH = 9,
+ VT_ERROR = 10,
+ VT_BOOL = 11,
+ VT_VARIANT = 12,
+ VT_UNKNOWN = 13,
+ VT_DECIMAL = 14,
+ VT_I1 = 16,
+ VT_UI1 = 17,
+ VT_UI2 = 18,
+ VT_UI4 = 19,
+ VT_I8 = 20,
+ VT_UI8 = 21,
+ VT_INT = 22,
+ VT_UINT = 23,
+ VT_VOID = 24,
+ VT_HRESULT = 25,
+ VT_PTR = 26,
+ VT_SAFEARRAY = 27,
+ VT_CARRAY = 28,
+ VT_USERDEFINED = 29,
+ VT_LPSTR = 30,
+ VT_LPWSTR = 31,
+ VT_RECORD = 36,
+ VT_INT_PTR = 37,
+ VT_UINT_PTR = 38,
+ VT_FILETIME = 64,
+ VT_BLOB = 65,
+ VT_STREAM = 66,
+ VT_STORAGE = 67,
+ VT_STREAMED_OBJECT = 68,
+ VT_STORED_OBJECT = 69,
+ VT_BLOB_OBJECT = 70,
+ VT_CF = 71,
+ VT_CLSID = 72,
+ VT_VERSIONED_STREAM= 73,
+ VT_BSTR_BLOB = 0x0fff,
+ VT_VECTOR = 0x1000,
+ VT_ARRAY = 0x2000,
+ VT_BYREF = 0x4000,
+ VT_RESERVED = 0x8000,
+ VT_ILLEGAL = 0xffff,
+ VT_ILLEGALMASKED = 0x0fff,
+ VT_TYPEMASK = 0x0fff
+};
+
+typedef struct tagCSPLATFORM
+{
+ DWORD dwPlatformId;
+ DWORD dwVersionHi;
+ DWORD dwVersionLo;
+ DWORD dwProcessorArch;
+} CSPLATFORM;
+
+typedef struct tagQUERYCONTEXT
+{
+ DWORD dwContext;
+ CSPLATFORM Platform;
+ LCID Locale;
+ DWORD dwVersionHi;
+ DWORD dwVersionLo;
+} QUERYCONTEXT;
+
+typedef [v1_enum] enum tagTYSPEC
+{
+ TYSPEC_CLSID,
+ TYSPEC_FILEEXT,
+ TYSPEC_MIMETYPE,
+ TYSPEC_PROGID,
+ TYSPEC_FILENAME,
+ TYSPEC_PACKAGENAME,
+ TYSPEC_OBJECTID
+} TYSPEC;
+
+typedef union switch(DWORD tyspec)
+{
+ case TYSPEC_CLSID:
+ CLSID clsid;
+ case TYSPEC_FILEEXT:
+ LPOLESTR pFileExt;
+ case TYSPEC_MIMETYPE:
+ LPOLESTR pMimeType;
+ case TYSPEC_PROGID:
+ LPOLESTR pProgId;
+ case TYSPEC_FILENAME:
+ LPOLESTR pFileName;
+ case TYSPEC_PACKAGENAME:
+ struct
+ {
+ LPOLESTR pPackageName;
+ GUID PolicyId;
+ } ByName;
+ case TYSPEC_OBJECTID:
+ struct
+ {
+ GUID ObjectId;
+ GUID PolicyId;
+ } ByObjectId;
+} uCLSSPEC;
+
+cpp_quote("#ifndef PROPERTYKEY_DEFINED")
+cpp_quote("#define PROPERTYKEY_DEFINED")
+typedef struct _tagpropertykey
+{
+ GUID fmtid;
+ DWORD pid;
+} PROPERTYKEY;
+cpp_quote("#endif /*PROPERTYKEY_DEFINED*/")
+
+} /* interface IWinTypes */