blob: f45b2be20d3d126c93bf5616418811394a602684 [file] [log] [blame]
cpp_quote("/**")
cpp_quote(" * This file is part of the mingw-w64 runtime package.")
cpp_quote(" * No warranty is given; refer to the file DISCLAIMER within this package.")
cpp_quote(" */")
cpp_quote("")
import "wtypesbase.idl";
cpp_quote("")
[uuid (D3980A60-910c-1068-9341-00dd010f2f1c), version (0.1), pointer_default (unique)]
interface IWinTypes {
typedef struct tagRemHGLOBAL {
long fNullHGlobal;
unsigned long cbData;
[size_is (cbData)] byte data[];
} RemHGLOBAL;
cpp_quote("")
typedef struct tagRemHMETAFILEPICT {
long mm;
long xExt;
long yExt;
unsigned long cbData;
[size_is (cbData)] byte data[];
} RemHMETAFILEPICT;
cpp_quote("")
typedef struct tagRemHENHMETAFILE {
unsigned long cbData;
[size_is (cbData)] byte data[];
} RemHENHMETAFILE;
typedef struct tagRemHBITMAP {
unsigned long cbData;
[size_is (cbData)] byte data[];
} RemHBITMAP;
cpp_quote("")
typedef struct tagRemHPALETTE {
unsigned long cbData;
[size_is (cbData)] byte data[];
} RemHPALETTE;
cpp_quote("")
typedef struct tagRemBRUSH {
unsigned long cbData;
[size_is (cbData)] byte data[];
} RemHBRUSH;
cpp_quote("#if 0")
typedef UINT_PTR WPARAM;
typedef LONG_PTR LPARAM;
typedef LONG_PTR LRESULT;
#define DECLARE_WIREM_HANDLE(name) typedef [wire_marshal (wire ## name)] void *name
#define DECLARE_HANDLE(name) typedef void *name
DECLARE_HANDLE (HMODULE);
DECLARE_HANDLE (HINSTANCE);
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 INT HFILE;
typedef DWORD COLORREF;
typedef DWORD *LPCOLORREF;
typedef struct _RECTL {
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECTL,*PRECTL,*LPRECTL;
typedef struct tagPOINT {
LONG x;
LONG y;
} POINT,*PPOINT,*LPPOINT;
typedef struct _POINTL {
LONG x;
LONG y;
} POINTL,*PPOINTL;
typedef struct tagSIZE {
LONG cx;
LONG cy;
} SIZE,*PSIZE,*LPSIZE;
typedef struct tagSIZEL {
LONG cx;
LONG cy;
} SIZEL,*PSIZEL,*LPSIZEL;
cpp_quote("#endif")
cpp_quote("")
cpp_quote("#ifndef _PALETTEENTRY_DEFINED")
cpp_quote("#define _PALETTEENTRY_DEFINED")
cpp_quote("")
typedef struct tagPALETTEENTRY {
BYTE peRed;
BYTE peGreen;
BYTE peBlue;
BYTE peFlags;
} PALETTEENTRY,*PPALETTEENTRY,*LPPALETTEENTRY;
cpp_quote("#endif")
cpp_quote("")
cpp_quote("#ifndef _LOGPALETTE_DEFINED")
cpp_quote("#define _LOGPALETTE_DEFINED")
cpp_quote("")
typedef struct tagLOGPALETTE {
WORD palVersion;
WORD palNumEntries;
[size_is (palNumEntries)] PALETTEENTRY palPalEntry[];
} LOGPALETTE,*PLOGPALETTE,*LPLOGPALETTE;
cpp_quote("#endif")
cpp_quote("")
cpp_quote("#ifndef _WINDEF_")
typedef const RECTL *LPCRECTL;
typedef struct tagRECT {
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT,*PRECT,*LPRECT;
typedef const RECT *LPCRECT;
cpp_quote("#endif")
cpp_quote("")
cpp_quote("#if 0")
typedef FMTID *REFFMTID;
cpp_quote("#endif")
cpp_quote("")
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")
cpp_quote("")
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("")
typedef enum tagDVASPECT {
DVASPECT_CONTENT = 1,
DVASPECT_THUMBNAIL = 2,
DVASPECT_ICON = 4,
DVASPECT_DOCPRINT = 8
} DVASPECT;
cpp_quote("")
typedef enum tagSTGC {
STGC_DEFAULT = 0,
STGC_OVERWRITE = 1,
STGC_ONLYIFCURRENT = 2,
STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4,
STGC_CONSOLIDATE = 8
} STGC;
cpp_quote("")
typedef enum tagSTGMOVE {
STGMOVE_MOVE = 0,
STGMOVE_COPY = 1,
STGMOVE_SHALLOWCOPY = 2
} STGMOVE;
cpp_quote("")
typedef enum tagSTATFLAG {
STATFLAG_DEFAULT = 0,
STATFLAG_NONAME = 1,
STATFLAG_NOOPEN = 2
} STATFLAG;
typedef [context_handle] void *HCONTEXT;
cpp_quote("")
cpp_quote("#ifndef _LCID_DEFINED")
cpp_quote("#define _LCID_DEFINED")
typedef DWORD LCID;
cpp_quote("#endif")
cpp_quote("")
cpp_quote("#ifndef _LANGID_DEFINED")
cpp_quote("#define _LANGID_DEFINED")
typedef USHORT LANGID;
cpp_quote("#endif")
cpp_quote("")
const unsigned long WDT_INPROC_CALL = 0x48746457;
const unsigned long WDT_REMOTE_CALL = 0x52746457;
const unsigned long WDT_INPROC64_CALL = 0x50746457;
cpp_quote("")
typedef union _userCLIPFORMAT switch (long fContext) u {
case WDT_INPROC_CALL: DWORD dwValue;
case WDT_REMOTE_CALL: [string] wchar_t *pwszName;
} userCLIPFORMAT;
cpp_quote("")
typedef [unique] userCLIPFORMAT *wireCLIPFORMAT;
typedef [wire_marshal (wireCLIPFORMAT)] WORD CLIPFORMAT;
cpp_quote("")
typedef union _GDI_NONREMOTE switch (long fContext) u {
case WDT_INPROC_CALL: long hInproc;
case WDT_REMOTE_CALL: DWORD_BLOB *hRemote;
} GDI_NONREMOTE;
cpp_quote("")
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;
cpp_quote("")
typedef [unique] userHGLOBAL *wireHGLOBAL;
cpp_quote("")
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;
cpp_quote("")
typedef struct _remoteMETAFILEPICT {
long mm;
long xExt;
long yExt;
userHMETAFILE *hMF;
} remoteMETAFILEPICT;
cpp_quote("")
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;
cpp_quote("")
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;
cpp_quote("")
typedef struct _userBITMAP {
LONG bmType;
LONG bmWidth;
LONG bmHeight;
LONG bmWidthBytes;
WORD bmPlanes;
WORD bmBitsPixel;
ULONG cbSize;
[size_is (cbSize)] byte pBuffer[];
} userBITMAP;
cpp_quote("")
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;
cpp_quote("")
typedef union _userHPALETTE switch (long fContext) u {
case WDT_INPROC_CALL: long hInproc;
case WDT_REMOTE_CALL: LOGPALETTE *hRemote;
case WDT_INPROC64_CALL: __int64 hInproc64;
} userHPALETTE;
cpp_quote("")
typedef union _RemotableHandle switch (long fContext) u {
case WDT_INPROC_CALL: long hInproc;
case WDT_REMOTE_CALL: long hRemote;
} RemotableHandle;
cpp_quote("")
typedef [unique] RemotableHandle *wireHWND;
typedef [unique] RemotableHandle *wireHMENU;
typedef [unique] RemotableHandle *wireHACCEL;
typedef [unique] RemotableHandle *wireHBRUSH;
typedef [unique] RemotableHandle *wireHFONT;
typedef [unique] RemotableHandle *wireHDC;
typedef [unique] RemotableHandle *wireHICON;
typedef [unique] RemotableHandle *wireHRGN;
typedef [unique] RemotableHandle *wireHMONITOR;
cpp_quote("")
cpp_quote("#if 0")
#ifndef _MIDL_DECLARE_WIREM_HANDLE
DECLARE_WIREM_HANDLE (HWND);
DECLARE_WIREM_HANDLE (HMENU);
DECLARE_WIREM_HANDLE (HACCEL);
DECLARE_WIREM_HANDLE (HBRUSH);
DECLARE_WIREM_HANDLE (HFONT);
DECLARE_WIREM_HANDLE (HDC);
DECLARE_WIREM_HANDLE (HICON);
DECLARE_WIREM_HANDLE (HRGN);
DECLARE_WIREM_HANDLE (HMONITOR);
#endif
cpp_quote("")
cpp_quote("#ifndef _HCURSOR_DEFINED")
cpp_quote("#define _HCURSOR_DEFINED")
typedef HICON HCURSOR;
cpp_quote("#endif")
cpp_quote("")
cpp_quote("#endif")
cpp_quote("")
cpp_quote("#ifndef _TEXTMETRIC_DEFINED")
cpp_quote("#define _TEXTMETRIC_DEFINED")
cpp_quote("")
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,*PTEXTMETRICW,*LPTEXTMETRICW;
cpp_quote("#endif")
cpp_quote("")
cpp_quote("#ifndef _WIN32")
cpp_quote("#ifndef WINAPI")
typedef struct tagMSG {
HWND hwnd;
UINT message;
WPARAM wParam;
LPARAM lParam;
DWORD time;
POINT pt;
} MSG,*PMSG,*NPMSG,*LPMSG;
cpp_quote("#endif")
cpp_quote("#endif")
cpp_quote("")
typedef [unique] userHBITMAP *wireHBITMAP;
typedef [unique] userHPALETTE *wireHPALETTE;
typedef [unique] userHENHMETAFILE *wireHENHMETAFILE;
typedef [unique] userHMETAFILE *wireHMETAFILE;
typedef [unique] userHMETAFILEPICT *wireHMETAFILEPICT;
cpp_quote("")
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")
cpp_quote("")
DECLARE_WIREM_HANDLE (HMETAFILEPICT);
}
cpp_quote("")
typedef double DATE;
cpp_quote("")
cpp_quote("#ifndef _tagCY_DEFINED")
cpp_quote("#define _tagCY_DEFINED")
cpp_quote("#define _CY_DEFINED")
cpp_quote("")
cpp_quote("#if 0")
typedef struct tagCY {
LONGLONG int64;
} CY;
cpp_quote("#else")
cpp_quote("typedef union tagCY {")
cpp_quote(" __C89_NAMELESS struct {")
cpp_quote(" unsigned __LONG32 Lo;")
cpp_quote(" __LONG32 Hi;")
cpp_quote(" } DUMMYSTRUCTNAME;")
cpp_quote(" LONGLONG int64;")
cpp_quote("} CY;")
cpp_quote("#endif")
cpp_quote("#endif")
cpp_quote("")
typedef CY *LPCY;
cpp_quote("")
cpp_quote("#if 0")
typedef struct tagDEC {
USHORT wReserved;
BYTE scale;
BYTE sign;
ULONG Hi32;
ULONGLONG Lo64;
} DECIMAL;
cpp_quote("#else")
cpp_quote("typedef struct tagDEC {")
cpp_quote(" USHORT wReserved;")
cpp_quote(" __C89_NAMELESS union {")
cpp_quote(" __C89_NAMELESS 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(" __C89_NAMELESS union {")
cpp_quote(" __C89_NAMELESS struct {")
cpp_quote(" ULONG Lo32;")
cpp_quote(" ULONG Mid32;")
cpp_quote(" } DUMMYSTRUCTNAME2;")
cpp_quote(" ULONGLONG Lo64;")
cpp_quote(" } DUMMYUNIONNAME2;")
cpp_quote("} DECIMAL;")
cpp_quote("")
cpp_quote("#define DECIMAL_NEG ((BYTE)0x80)")
cpp_quote("#define DECIMAL_SETZERO(dec) { (dec).Lo64 = 0; (dec).Hi32 = 0; (dec).signscale = 0; }")
cpp_quote("#endif")
cpp_quote("")
typedef DECIMAL *LPDECIMAL;
cpp_quote("")
typedef [unique] FLAGGED_WORD_BLOB *wireBSTR;
typedef [wire_marshal (wireBSTR)] OLECHAR *BSTR;
cpp_quote("")
typedef BSTR *LPBSTR;
cpp_quote("")
typedef short VARIANT_BOOL;
cpp_quote("#if 0")
typedef VARIANT_BOOL _VARIANT_BOOL;
cpp_quote("#else")
cpp_quote("#define _VARIANT_BOOL /##/")
cpp_quote("#endif")
cpp_quote("")
cpp_quote("#ifndef _tagBSTRBLOB_DEFINED")
cpp_quote("#define _tagBSTRBLOB_DEFINED")
cpp_quote("")
typedef struct tagBSTRBLOB {
ULONG cbSize;
[size_is (cbSize)] BYTE *pData;
} BSTRBLOB,*LPBSTRBLOB;
cpp_quote("#endif")
cpp_quote("")
cpp_quote("#define VARIANT_TRUE ((VARIANT_BOOL)-1)")
cpp_quote("#define VARIANT_FALSE ((VARIANT_BOOL)0)")
cpp_quote("")
typedef struct tagCLIPDATA {
ULONG cbSize;
long ulClipFmt;
[size_is (cbSize-4)] BYTE *pClipData;
} CLIPDATA;
cpp_quote("")
cpp_quote("#define CBPCLIPDATA(clipdata) ((clipdata).cbSize - sizeof((clipdata).ulClipFmt))")
cpp_quote("")
typedef unsigned short VARTYPE;
cpp_quote("")
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
};
cpp_quote("")
typedef ULONG PROPID;
cpp_quote("")
cpp_quote("#ifndef PROPERTYKEY_DEFINED")
cpp_quote("#define PROPERTYKEY_DEFINED")
cpp_quote("")
typedef struct _tagpropertykey {
GUID fmtid;
DWORD pid;
} PROPERTYKEY;
cpp_quote("#endif")
cpp_quote("")
typedef struct tagCSPLATFORM {
DWORD dwPlatformId;
DWORD dwVersionHi;
DWORD dwVersionLo;
DWORD dwProcessorArch;
} CSPLATFORM;
cpp_quote("")
typedef struct tagQUERYCONTEXT {
DWORD dwContext;
CSPLATFORM Platform;
LCID Locale;
DWORD dwVersionHi;
DWORD dwVersionLo;
} QUERYCONTEXT;
cpp_quote("")
typedef [v1_enum] enum tagTYSPEC {
TYSPEC_CLSID,
TYSPEC_FILEEXT,
TYSPEC_MIMETYPE,
TYSPEC_FILENAME,
TYSPEC_PROGID,
TYSPEC_PACKAGENAME,
TYSPEC_OBJECTID
} TYSPEC;
cpp_quote("")
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;