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;