+++ /dev/null
-/*
- * 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
- */
-
-import "basetsd.h";
-import "guiddef.h";
-
-cpp_quote("#ifndef __wtypes_h__")
-cpp_quote("#define __wtypes_h__")
-cpp_quote("#endif")
-
-cpp_quote("#ifdef _MSC_VER")
-cpp_quote("#pragma warning(push)")
-cpp_quote("#pragma warning(disable:4201)")
-cpp_quote("#pragma warning(disable:4820)")
-cpp_quote("#endif")
-
-[
- 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 */
-
-cpp_quote("#ifdef _MSC_VER")
-cpp_quote("#pragma warning(pop)")
-cpp_quote("#endif")