123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729 |
- /*
- * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
- 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 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(HACCEL);
- DECLARE_HANDLE(HDC);
- DECLARE_HANDLE(HFONT);
- DECLARE_HANDLE(HWND);
- DECLARE_HANDLE(HMENU);
- DECLARE_HANDLE(HMODULE);
- DECLARE_HANDLE(HINSTANCE);
- DECLARE_HANDLE(HRGN);
- DECLARE_HANDLE(HTASK);
- DECLARE_HANDLE(HKEY);
- DECLARE_HANDLE(HICON);
- typedef LONG_PTR LRESULT;
- typedef LONG HRESULT;
- typedef DWORD LCID;
- 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;
- 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;
- typedef struct tagMSG
- {
- HWND hwnd;
- UINT message;
- WPARAM wParam;
- LPARAM lParam;
- DWORD time;
- POINT pt;
- } MSG, *PMSG, *NPMSG, *LPMSG;
- cpp_quote("#endif /* winnt.h */")
- cpp_quote("#if 0") /* for IDL 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 _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;
- /* FIXME: COSERVERINFO was in Wine's pre-WIDL wtypes.h, but should be in objidl.idl */
- typedef struct _COSERVERINFO {
- DWORD dwReserved1;
- LPWSTR pwszName;
- COAUTHINFO *pAuthInfo;
- DWORD dwReserved2;
- } COSERVERINFO;
- typedef enum tagMEMCTX {
- MEMCTX_TASK = 1,
- MEMCTX_SHARED = 2,
- MEMCTX_MACSYSTEM = 3,
- MEMCTX_UNKNOWN = -1,
- MEMCTX_SAME = -2
- } MEMCTX;
- 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;
- 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;
- default: long hGlobal;
- } 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;
- default: long hGlobal;
- } 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;
- default: long hGlobal;
- } 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;
- default: long hGlobal;
- } 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;
- default: long hGlobal;
- } 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;
- default: long hGlobal;
- } 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);
- /******************** 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("#if 0") /* for IDL 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_BSTR_BLOB = 0x0fff,
- VT_VECTOR = 0x1000,
- VT_ARRAY = 0x2000,
- VT_BYREF = 0x4000,
- VT_RESERVED = 0x8000,
- VT_ILLEGAL = 0xffff,
- VT_ILLEGALMASKED = 0x0fff,
- VT_TYPEMASK = 0x0fff
- };
- } /* interface IWinTypes */
|