Home | History | Annotate | Download | only in include
      1 /*** Autogenerated by WIDL 1.5.29 from /tmp/build-mingw64-toolchain-joshualang/src/mingw-w64-svn-r5861/mingw-w64-headers/include/wtypes.idl - Do not edit ***/
      2 
      3 #ifndef __REQUIRED_RPCNDR_H_VERSION__
      4 #define __REQUIRED_RPCNDR_H_VERSION__ 475
      5 #endif
      6 
      7 #include <rpc.h>
      8 #include <rpcndr.h>
      9 
     10 #ifndef COM_NO_WINDOWS_H
     11 #include <windows.h>
     12 #include <ole2.h>
     13 #endif
     14 
     15 #ifndef __wtypes_h__
     16 #define __wtypes_h__
     17 
     18 /* Forward declarations */
     19 
     20 /* Headers for imported files */
     21 
     22 #include <basetsd.h>
     23 #include <guiddef.h>
     24 
     25 #ifdef __cplusplus
     26 extern "C" {
     27 #endif
     28 
     29 /*****************************************************************************
     30  * IWinTypes interface (v0.1)
     31  */
     32 #ifndef __IWinTypes_INTERFACE_DEFINED__
     33 #define __IWinTypes_INTERFACE_DEFINED__
     34 
     35 extern RPC_IF_HANDLE IWinTypes_v0_1_c_ifspec;
     36 extern RPC_IF_HANDLE IWinTypes_v0_1_s_ifspec;
     37 typedef struct tagRemHGLOBAL {
     38     LONG fNullHGlobal;
     39     ULONG cbData;
     40     byte data[1];
     41 } RemHGLOBAL;
     42 typedef struct tagRemHMETAFILEPICT {
     43     LONG mm;
     44     LONG xExt;
     45     LONG yExt;
     46     ULONG cbData;
     47     byte data[1];
     48 } RemHMETAFILEPICT;
     49 typedef struct tagRemHENHMETAFILE {
     50     ULONG cbData;
     51     byte data[1];
     52 } RemHENHMETAFILE;
     53 typedef struct tagRemHBITMAP {
     54     ULONG cbData;
     55     byte data[1];
     56 } RemHBITMAP;
     57 typedef struct tagRemHPALETTE {
     58     ULONG cbData;
     59     byte data[1];
     60 } RemHPALETTE;
     61 typedef struct tagRemBRUSH {
     62     ULONG cbData;
     63     byte data[1];
     64 } RemHBRUSH;
     65 #if 0
     66 typedef byte BYTE;
     67 typedef unsigned short WORD;
     68 typedef unsigned int UINT;
     69 typedef int INT;
     70 typedef LONG BOOL;
     71 typedef LONG WINBOOL;
     72 typedef LONG LONG;
     73 typedef UINT_PTR WPARAM;
     74 typedef ULONG DWORD;
     75 typedef LONG_PTR LPARAM;
     76 typedef LONG_PTR LRESULT;
     77 typedef void *HANDLE;
     78 typedef void *HMODULE;
     79 typedef void *HINSTANCE;
     80 typedef void *HTASK;
     81 typedef void *HKEY;
     82 typedef void *HDESK;
     83 typedef void *HMF;
     84 typedef void *HEMF;
     85 typedef void *HPEN;
     86 typedef void *HRSRC;
     87 typedef void *HSTR;
     88 typedef void *HWINSTA;
     89 typedef void *HKL;
     90 typedef void *HGDIOBJ;
     91 typedef HANDLE HDWP;
     92 typedef INT HFILE;
     93 typedef WORD *LPWORD;
     94 typedef DWORD *LPDWORD;
     95 typedef char CHAR;
     96 typedef CHAR *LPSTR;
     97 typedef const CHAR *LPCSTR;
     98 typedef wchar_t WCHAR;
     99 typedef WCHAR *LPWSTR;
    100 typedef const WCHAR *LPCWSTR;
    101 typedef WCHAR TCHAR;
    102 typedef TCHAR *LPTSTR;
    103 typedef const TCHAR *LPCTSTR;
    104 typedef DWORD COLORREF;
    105 typedef DWORD *LPCOLORREF;
    106 typedef HANDLE *LPHANDLE;
    107 typedef struct _RECTL {
    108     LONG left;
    109     LONG top;
    110     LONG right;
    111     LONG bottom;
    112 } RECTL;
    113 typedef struct _RECTL *PRECTL;
    114 typedef struct _RECTL *LPRECTL;
    115 typedef struct tagPOINT {
    116     LONG x;
    117     LONG y;
    118 } POINT;
    119 typedef struct tagPOINT *PPOINT;
    120 typedef struct tagPOINT *LPPOINT;
    121 typedef struct tagPOINTL {
    122     LONG x;
    123     LONG y;
    124 } POINTL;
    125 typedef struct tagPOINTL *PPOINTL;
    126 typedef struct tagSIZE {
    127     LONG cx;
    128     LONG cy;
    129 } SIZE;
    130 typedef struct tagSIZE *PSIZE;
    131 typedef struct tagSIZE *LPSIZE;
    132 typedef struct tagSIZEL {
    133     LONG cx;
    134     LONG cy;
    135 } SIZEL;
    136 typedef struct tagSIZEL *PSIZEL;
    137 typedef struct tagSIZEL *LPSIZEL;
    138 #endif
    139 #ifndef _PALETTEENTRY_DEFINED
    140 #define _PALETTEENTRY_DEFINED
    141 typedef struct tagPALETTEENTRY {
    142     BYTE peRed;
    143     BYTE peGreen;
    144     BYTE peBlue;
    145     BYTE peFlags;
    146 } PALETTEENTRY;
    147 typedef struct tagPALETTEENTRY *PPALETTEENTRY;
    148 typedef struct tagPALETTEENTRY *LPPALETTEENTRY;
    149 #endif
    150 #ifndef _LOGPALETTE_DEFINED
    151 #define _LOGPALETTE_DEFINED
    152 typedef struct tagLOGPALETTE {
    153     WORD palVersion;
    154     WORD palNumEntries;
    155     PALETTEENTRY palPalEntry[1];
    156 } LOGPALETTE;
    157 typedef struct tagLOGPALETTE *PLOGPALETTE;
    158 typedef struct tagLOGPALETTE *LPLOGPALETTE;
    159 #endif
    160 #ifndef OLE2ANSI
    161 typedef WCHAR OLECHAR;
    162 typedef OLECHAR *LPOLESTR;
    163 typedef const OLECHAR *LPCOLESTR;
    164 #define OLESTR(str) L##str
    165 #else
    166   typedef char OLECHAR;
    167   typedef LPSTR LPOLESTR;
    168   typedef LPCSTR LPCOLESTR;
    169 #define OLESTR(str) str
    170 #endif
    171 #ifndef _WINDEF_
    172 typedef const RECTL *LPCRECTL;
    173 typedef void *PVOID;
    174 typedef void *LPVOID;
    175 typedef float FLOAT;
    176 typedef struct tagRECT {
    177     LONG left;
    178     LONG top;
    179     LONG right;
    180     LONG bottom;
    181 } RECT;
    182 typedef struct tagRECT *PRECT;
    183 typedef struct tagRECT *LPRECT;
    184 typedef const RECT *LPCRECT;
    185 #endif
    186 #ifndef BASETYPES
    187 #define BASETYPES
    188 typedef unsigned char UCHAR;
    189 typedef short SHORT;
    190 typedef unsigned short USHORT;
    191 typedef DWORD ULONG;
    192   typedef ULONG *PULONG;
    193   typedef USHORT *PUSHORT;
    194   typedef UCHAR *PUCHAR;
    195   typedef char *PSZ;
    196 #endif
    197 typedef double DOUBLE;
    198 #ifndef _DWORDLONG_
    199 #define _DWORDLONG_
    200   __MINGW_EXTENSION
    201 typedef UINT64 DWORDLONG;
    202 typedef DWORDLONG *PDWORDLONG;
    203 #endif
    204 #ifndef _ULONGLONG_
    205   __MINGW_EXTENSION
    206 typedef INT64 LONGLONG;
    207   __MINGW_EXTENSION
    208 typedef UINT64 ULONGLONG;
    209 typedef LONGLONG *PLONGLONG;
    210 typedef ULONGLONG *PULONGLONG;
    211 #endif
    212 #if 0
    213 typedef struct _LARGE_INTEGER {
    214     LONGLONG QuadPart;
    215 } LARGE_INTEGER;
    216 typedef struct _LARGE_INTEGER *PLARGE_INTEGER;
    217 typedef struct _ULARGE_INTEGER {
    218     ULONGLONG QuadPart;
    219 } ULARGE_INTEGER;
    220 #endif
    221 #ifndef _WINBASE_
    222 #ifndef _FILETIME_
    223 #define _FILETIME_
    224 typedef struct _FILETIME {
    225     DWORD dwLowDateTime;
    226     DWORD dwHighDateTime;
    227 } FILETIME;
    228 typedef struct _FILETIME *PFILETIME;
    229 typedef struct _FILETIME *LPFILETIME;
    230 #endif
    231 #ifndef _SYSTEMTIME_
    232 #define _SYSTEMTIME_
    233 typedef struct _SYSTEMTIME {
    234     WORD wYear;
    235     WORD wMonth;
    236     WORD wDayOfWeek;
    237     WORD wDay;
    238     WORD wHour;
    239     WORD wMinute;
    240     WORD wSecond;
    241     WORD wMilliseconds;
    242 } SYSTEMTIME;
    243 typedef struct _SYSTEMTIME *PSYSTEMTIME;
    244 typedef struct _SYSTEMTIME *LPSYSTEMTIME;
    245 #endif
    246 #ifndef _SECURITY_ATTRIBUTES_
    247 #define _SECURITY_ATTRIBUTES_
    248 typedef struct _SECURITY_ATTRIBUTES {
    249     DWORD nLength;
    250     LPVOID lpSecurityDescriptor;
    251     WINBOOL bInheritHandle;
    252 } SECURITY_ATTRIBUTES;
    253 typedef struct _SECURITY_ATTRIBUTES *PSECURITY_ATTRIBUTES;
    254 typedef struct _SECURITY_ATTRIBUTES *LPSECURITY_ATTRIBUTES;
    255 #endif
    256 #ifndef SECURITY_DESCRIPTOR_REVISION
    257 typedef USHORT SECURITY_DESCRIPTOR_CONTROL;
    258 typedef USHORT *PSECURITY_DESCRIPTOR_CONTROL;
    259 typedef PVOID PSID;
    260 typedef struct _ACL {
    261     UCHAR AclRevision;
    262     UCHAR Sbz1;
    263     USHORT AclSize;
    264     USHORT AceCount;
    265     USHORT Sbz2;
    266 } ACL;
    267 typedef struct _ACL *PACL;
    268 typedef struct _SECURITY_DESCRIPTOR {
    269     UCHAR Revision;
    270     UCHAR Sbz1;
    271     SECURITY_DESCRIPTOR_CONTROL Control;
    272     PSID Owner;
    273     PSID Group;
    274     PACL Sacl;
    275     PACL Dacl;
    276 } SECURITY_DESCRIPTOR;
    277 typedef struct _SECURITY_DESCRIPTOR *PISECURITY_DESCRIPTOR;
    278 #endif
    279 #endif
    280 typedef struct _COAUTHIDENTITY {
    281     USHORT *User;
    282     ULONG UserLength;
    283     USHORT *Domain;
    284     ULONG DomainLength;
    285     USHORT *Password;
    286     ULONG PasswordLength;
    287     ULONG Flags;
    288 } COAUTHIDENTITY;
    289 typedef struct _COAUTHINFO {
    290     DWORD dwAuthnSvc;
    291     DWORD dwAuthzSvc;
    292     LPWSTR pwszServerPrincName;
    293     DWORD dwAuthnLevel;
    294     DWORD dwImpersonationLevel;
    295     COAUTHIDENTITY *pAuthIdentityData;
    296     DWORD dwCapabilities;
    297 } COAUTHINFO;
    298 typedef LONG SCODE;
    299 typedef SCODE *PSCODE;
    300 #ifndef _HRESULT_DEFINED
    301 #define _HRESULT_DEFINED
    302 typedef LONG HRESULT;
    303 #endif
    304 #ifndef __OBJECTID_DEFINED
    305 #define __OBJECTID_DEFINED
    306 #define _OBJECTID_DEFINED
    307 typedef struct _OBJECTID {
    308     GUID Lineage;
    309     ULONG Uniquifier;
    310 } OBJECTID;
    311 #endif
    312 #if 0
    313 typedef GUID *REFGUID;
    314 typedef IID *REFIID;
    315 typedef CLSID *REFCLSID;
    316 typedef FMTID *REFFMTID;
    317 #endif
    318 typedef enum tagMEMCTX {
    319     MEMCTX_TASK = 1,
    320     MEMCTX_SHARED = 2,
    321     MEMCTX_MACSYSTEM = 3,
    322     MEMCTX_UNKNOWN = -1,
    323     MEMCTX_SAME = -2
    324 } MEMCTX;
    325 #ifndef _ROTFLAGS_DEFINED
    326 #define _ROTFLAGS_DEFINED
    327 #define ROTFLAGS_REGISTRATIONKEEPSALIVE 0x1
    328 #define ROTFLAGS_ALLOWANYCLIENT 0x2
    329 #endif
    330 #ifndef _ROT_COMPARE_MAX_DEFINED
    331 #define _ROT_COMPARE_MAX_DEFINED
    332 #define ROT_COMPARE_MAX 2048
    333 #endif
    334 typedef enum tagCLSCTX {
    335     CLSCTX_INPROC_SERVER = 0x1,
    336     CLSCTX_INPROC_HANDLER = 0x2,
    337     CLSCTX_LOCAL_SERVER = 0x4,
    338     CLSCTX_INPROC_SERVER16 = 0x8,
    339     CLSCTX_REMOTE_SERVER = 0x10,
    340     CLSCTX_INPROC_HANDLER16 = 0x20,
    341     CLSCTX_RESERVED1 = 0x40,
    342     CLSCTX_RESERVED2 = 0x80,
    343     CLSCTX_RESERVED3 = 0x100,
    344     CLSCTX_RESERVED4 = 0x200,
    345     CLSCTX_NO_CODE_DOWNLOAD = 0x400,
    346     CLSCTX_RESERVED5 = 0x800,
    347     CLSCTX_NO_CUSTOM_MARSHAL = 0x1000,
    348     CLSCTX_ENABLE_CODE_DOWNLOAD = 0x2000,
    349     CLSCTX_NO_FAILURE_LOG = 0x4000,
    350     CLSCTX_DISABLE_AAA = 0x8000,
    351     CLSCTX_ENABLE_AAA = 0x10000,
    352     CLSCTX_FROM_DEFAULT_CONTEXT = 0x20000,
    353     CLSCTX_ACTIVATE_32_BIT_SERVER = 0x40000,
    354     CLSCTX_ACTIVATE_64_BIT_SERVER = 0x80000
    355 } CLSCTX;
    356 typedef enum tagMSHLFLAGS {
    357     MSHLFLAGS_NORMAL = 0,
    358     MSHLFLAGS_TABLESTRONG = 1,
    359     MSHLFLAGS_TABLEWEAK = 2,
    360     MSHLFLAGS_NOPING = 4,
    361     MSHLFLAGS_RESERVED1 = 8,
    362     MSHLFLAGS_RESERVED2 = 16,
    363     MSHLFLAGS_RESERVED3 = 32,
    364     MSHLFLAGS_RESERVED4 = 64
    365 } MSHLFLAGS;
    366 typedef enum tagMSHCTX {
    367     MSHCTX_LOCAL = 0,
    368     MSHCTX_NOSHAREDMEM = 1,
    369     MSHCTX_DIFFERENTMACHINE = 2,
    370     MSHCTX_INPROC = 3,
    371     MSHCTX_CROSSCTX = 4
    372 } MSHCTX;
    373 typedef enum tagDVASPECT {
    374     DVASPECT_CONTENT = 1,
    375     DVASPECT_THUMBNAIL = 2,
    376     DVASPECT_ICON = 4,
    377     DVASPECT_DOCPRINT = 8
    378 } DVASPECT;
    379 typedef enum tagSTGC {
    380     STGC_DEFAULT = 0,
    381     STGC_OVERWRITE = 1,
    382     STGC_ONLYIFCURRENT = 2,
    383     STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4,
    384     STGC_CONSOLIDATE = 8
    385 } STGC;
    386 typedef enum tagSTGMOVE {
    387     STGMOVE_MOVE = 0,
    388     STGMOVE_COPY = 1,
    389     STGMOVE_SHALLOWCOPY = 2
    390 } STGMOVE;
    391 typedef enum tagSTATFLAG {
    392     STATFLAG_DEFAULT = 0,
    393     STATFLAG_NONAME = 1,
    394     STATFLAG_NOOPEN = 2
    395 } STATFLAG;
    396 typedef void *HCONTEXT;
    397 #ifndef _LCID_DEFINED
    398 #define _LCID_DEFINED
    399 typedef DWORD LCID;
    400 #endif
    401 #ifndef _LANGID_DEFINED
    402 #define _LANGID_DEFINED
    403 typedef USHORT LANGID;
    404 #endif
    405 typedef struct _BYTE_BLOB {
    406     ULONG clSize;
    407     byte abData[1];
    408 } BYTE_BLOB;
    409 typedef BYTE_BLOB *UP_BYTE_BLOB;
    410 typedef struct _WORD_BLOB {
    411     ULONG clSize;
    412     unsigned short asData[1];
    413 } WORD_BLOB;
    414 typedef WORD_BLOB *UP_WORD_BLOB;
    415 typedef struct _DWORD_BLOB {
    416     ULONG clSize;
    417     ULONG alData[1];
    418 } DWORD_BLOB;
    419 typedef DWORD_BLOB *UP_DWORD_BLOB;
    420 typedef struct _FLAGGED_BYTE_BLOB {
    421     ULONG fFlags;
    422     ULONG clSize;
    423     byte abData[1];
    424 } FLAGGED_BYTE_BLOB;
    425 typedef FLAGGED_BYTE_BLOB *UP_FLAGGED_BYTE_BLOB;
    426 typedef struct _FLAGGED_WORD_BLOB {
    427     ULONG fFlags;
    428     ULONG clSize;
    429     unsigned short asData[1];
    430 } FLAGGED_WORD_BLOB;
    431 typedef FLAGGED_WORD_BLOB *UP_FLAGGED_WORD_BLOB;
    432 typedef struct _BYTE_SIZEDARR {
    433     ULONG clSize;
    434     byte *pData;
    435 } BYTE_SIZEDARR;
    436 typedef struct _SHORT_SIZEDARR {
    437     ULONG clSize;
    438     unsigned short *pData;
    439 } WORD_SIZEDARR;
    440 typedef struct _LONG_SIZEDARR {
    441     ULONG clSize;
    442     ULONG *pData;
    443 } DWORD_SIZEDARR;
    444 typedef struct _HYPER_SIZEDARR {
    445     ULONG clSize;
    446     hyper *pData;
    447 } HYPER_SIZEDARR;
    448 #define WDT_INPROC_CALL (0x48746457)
    449 
    450 #define WDT_REMOTE_CALL (0x52746457)
    451 
    452 #define WDT_INPROC64_CALL (0x50746457)
    453 
    454 typedef struct _userCLIPFORMAT {
    455     LONG fContext;
    456     union {
    457         DWORD dwValue;
    458         wchar_t *pwszName;
    459     } u;
    460 } userCLIPFORMAT;
    461 typedef userCLIPFORMAT *wireCLIPFORMAT;
    462 typedef WORD CLIPFORMAT;
    463 typedef struct _GDI_NONREMOTE {
    464     LONG fContext;
    465     union {
    466         LONG hInproc;
    467         DWORD_BLOB *hRemote;
    468     } u;
    469 } GDI_NONREMOTE;
    470 typedef struct _userHGLOBAL {
    471     LONG fContext;
    472     union {
    473         LONG hInproc;
    474         FLAGGED_BYTE_BLOB *hRemote;
    475         INT64 hInproc64;
    476     } tagged_union;
    477 } userHGLOBAL;
    478 typedef userHGLOBAL *wireHGLOBAL;
    479 typedef struct _userHMETAFILE {
    480     LONG fContext;
    481     union {
    482         LONG hInproc;
    483         BYTE_BLOB *hRemote;
    484         INT64 hInproc64;
    485     } tagged_union;
    486 } userHMETAFILE;
    487 typedef struct _remoteMETAFILEPICT {
    488     LONG mm;
    489     LONG xExt;
    490     LONG yExt;
    491     userHMETAFILE *hMF;
    492 } remoteMETAFILEPICT;
    493 typedef struct _userHMETAFILEPICT {
    494     LONG fContext;
    495     union {
    496         LONG hInproc;
    497         remoteMETAFILEPICT *hRemote;
    498         INT64 hInproc64;
    499     } tagged_union;
    500 } userHMETAFILEPICT;
    501 typedef struct _userHENHMETAFILE {
    502     LONG fContext;
    503     union {
    504         LONG hInproc;
    505         BYTE_BLOB *hRemote;
    506         INT64 hInproc64;
    507     } tagged_union;
    508 } userHENHMETAFILE;
    509 typedef struct _userBITMAP {
    510     LONG bmType;
    511     LONG bmWidth;
    512     LONG bmHeight;
    513     LONG bmWidthBytes;
    514     WORD bmPlanes;
    515     WORD bmBitsPixel;
    516     ULONG cbSize;
    517     byte pBuffer[1];
    518 } userBITMAP;
    519 typedef struct _userHBITMAP {
    520     LONG fContext;
    521     union {
    522         LONG hInproc;
    523         userBITMAP *hRemote;
    524         INT64 hInproc64;
    525     } u;
    526 } userHBITMAP;
    527 typedef struct _userHPALETTE {
    528     LONG fContext;
    529     union {
    530         LONG hInproc;
    531         LOGPALETTE *hRemote;
    532         INT64 hInproc64;
    533     } u;
    534 } userHPALETTE;
    535 typedef struct _RemotableHandle {
    536     LONG fContext;
    537     union {
    538         LONG hInproc;
    539         LONG hRemote;
    540     } tagged_union;
    541 } RemotableHandle;
    542 typedef RemotableHandle *wireHWND;
    543 typedef RemotableHandle *wireHMENU;
    544 typedef RemotableHandle *wireHACCEL;
    545 typedef RemotableHandle *wireHBRUSH;
    546 typedef RemotableHandle *wireHFONT;
    547 typedef RemotableHandle *wireHDC;
    548 typedef RemotableHandle *wireHICON;
    549 typedef RemotableHandle *wireHRGN;
    550 #if 0
    551 typedef void *HWND;
    552 typedef void *HMENU;
    553 typedef void *HACCEL;
    554 typedef void *HBRUSH;
    555 typedef void *HFONT;
    556 typedef void *HDC;
    557 typedef void *HICON;
    558 typedef void *HRGN;
    559 typedef HICON HCURSOR;
    560 #endif
    561 #ifndef _TEXTMETRIC_DEFINED
    562 #define _TEXTMETRIC_DEFINED
    563 typedef struct tagTEXTMETRICW {
    564     LONG tmHeight;
    565     LONG tmAscent;
    566     LONG tmDescent;
    567     LONG tmInternalLeading;
    568     LONG tmExternalLeading;
    569     LONG tmAveCharWidth;
    570     LONG tmMaxCharWidth;
    571     LONG tmWeight;
    572     LONG tmOverhang;
    573     LONG tmDigitizedAspectX;
    574     LONG tmDigitizedAspectY;
    575     WCHAR tmFirstChar;
    576     WCHAR tmLastChar;
    577     WCHAR tmDefaultChar;
    578     WCHAR tmBreakChar;
    579     BYTE tmItalic;
    580     BYTE tmUnderlined;
    581     BYTE tmStruckOut;
    582     BYTE tmPitchAndFamily;
    583     BYTE tmCharSet;
    584 } TEXTMETRICW;
    585 typedef struct tagTEXTMETRICW *PTEXTMETRICW;
    586 typedef struct tagTEXTMETRICW *LPTEXTMETRICW;
    587 #endif
    588 #if 0
    589 typedef struct tagMSG {
    590     HWND hwnd;
    591     UINT message;
    592     WPARAM wParam;
    593     LPARAM lParaml;
    594     DWORD time;
    595     POINT pt;
    596 } MSG;
    597 typedef struct tagMSG *PMSG;
    598 typedef struct tagMSG *NPMSG;
    599 typedef struct tagMSG *LPMSG;
    600 #endif
    601 typedef userHBITMAP *wireHBITMAP;
    602 typedef userHPALETTE *wireHPALETTE;
    603 typedef userHENHMETAFILE *wireHENHMETAFILE;
    604 typedef userHMETAFILE *wireHMETAFILE;
    605 typedef userHMETAFILEPICT *wireHMETAFILEPICT;
    606 #if 0
    607 typedef void *HGLOBAL;
    608 typedef HGLOBAL HLOCAL;
    609 typedef void *HBITMAP;
    610 typedef void *HPALETTE;
    611 typedef void *HENHMETAFILE;
    612 typedef void *HMETAFILE;
    613 #endif
    614 typedef void *HMETAFILEPICT;
    615 
    616 #endif  /* __IWinTypes_INTERFACE_DEFINED__ */
    617 
    618 typedef double DATE;
    619 #ifndef _tagCY_DEFINED
    620 #define _tagCY_DEFINED
    621 #define _CY_DEFINED
    622 #if 0
    623 typedef struct tagCY {
    624     LONGLONG int64;
    625 } CY;
    626 #else
    627   typedef union tagCY {
    628     __C89_NAMELESS struct {
    629       ULONG Lo;
    630       LONG Hi;
    631     } DUMMYSTRUCTNAME;
    632     LONGLONG int64;
    633   } CY;
    634 #endif
    635 #endif
    636 typedef CY *LPCY;
    637 #if 0
    638 typedef struct tagDEC {
    639     USHORT wReserved;
    640     BYTE scale;
    641     BYTE sign;
    642     ULONG Hi32;
    643     ULONGLONG Lo64;
    644 } DECIMAL;
    645 #else
    646   typedef struct tagDEC {
    647     USHORT wReserved;
    648     __C89_NAMELESS union {
    649       __C89_NAMELESS struct {
    650 	BYTE scale;
    651 	BYTE sign;
    652       } DUMMYSTRUCTNAME;
    653       USHORT signscale;
    654     } DUMMYUNIONNAME;
    655     ULONG Hi32;
    656     __C89_NAMELESS union {
    657       __C89_NAMELESS struct {
    658 	ULONG Lo32;
    659 	ULONG Mid32;
    660       } DUMMYSTRUCTNAME2;
    661       ULONGLONG Lo64;
    662     } DUMMYUNIONNAME2;
    663   } DECIMAL;
    664 #define DECIMAL_NEG ((BYTE)0x80)
    665 #define DECIMAL_SETZERO(dec) {(dec).Lo64 = 0; (dec).Hi32 = 0; (dec).signscale = 0;}
    666 #endif
    667 typedef DECIMAL *LPDECIMAL;
    668 typedef FLAGGED_WORD_BLOB *wireBSTR;
    669 typedef OLECHAR *BSTR;
    670 typedef BSTR *LPBSTR;
    671 typedef short VARIANT_BOOL;
    672 typedef VARIANT_BOOL _VARIANT_BOOL;
    673 #ifndef _BOOLEAN_
    674 #define _BOOLEAN_
    675 typedef boolean BOOLEAN;
    676 #endif
    677 #ifndef _tagBSTRBLOB_DEFINED
    678 #define _tagBSTRBLOB_DEFINED
    679 typedef struct tagBSTRBLOB {
    680     ULONG cbSize;
    681     BYTE *pData;
    682 } BSTRBLOB;
    683 typedef struct tagBSTRBLOB *LPBSTRBLOB;
    684 #endif
    685 #define VARIANT_TRUE ((VARIANT_BOOL)-1)
    686 #define VARIANT_FALSE ((VARIANT_BOOL)0)
    687 #ifndef _tagBLOB_DEFINED
    688 #define _tagBLOB_DEFINED
    689 #define _BLOB_DEFINED
    690 #define _LPBLOB_DEFINED
    691 typedef struct tagBLOB {
    692     ULONG cbSize;
    693     BYTE *pBlobData;
    694 } BLOB;
    695 typedef struct tagBLOB *LPBLOB;
    696 #endif
    697 typedef struct tagCLIPDATA {
    698     ULONG cbSize;
    699     LONG ulClipFmt;
    700     BYTE *pClipData;
    701 } CLIPDATA;
    702 #define CBPCLIPDATA(clipdata) ((clipdata).cbSize - sizeof((clipdata).ulClipFmt))
    703 typedef unsigned short VARTYPE;
    704 enum VARENUM {
    705     VT_EMPTY = 0,
    706     VT_NULL = 1,
    707     VT_I2 = 2,
    708     VT_I4 = 3,
    709     VT_R4 = 4,
    710     VT_R8 = 5,
    711     VT_CY = 6,
    712     VT_DATE = 7,
    713     VT_BSTR = 8,
    714     VT_DISPATCH = 9,
    715     VT_ERROR = 10,
    716     VT_BOOL = 11,
    717     VT_VARIANT = 12,
    718     VT_UNKNOWN = 13,
    719     VT_DECIMAL = 14,
    720     VT_I1 = 16,
    721     VT_UI1 = 17,
    722     VT_UI2 = 18,
    723     VT_UI4 = 19,
    724     VT_I8 = 20,
    725     VT_UI8 = 21,
    726     VT_INT = 22,
    727     VT_UINT = 23,
    728     VT_VOID = 24,
    729     VT_HRESULT = 25,
    730     VT_PTR = 26,
    731     VT_SAFEARRAY = 27,
    732     VT_CARRAY = 28,
    733     VT_USERDEFINED = 29,
    734     VT_LPSTR = 30,
    735     VT_LPWSTR = 31,
    736     VT_RECORD = 36,
    737     VT_INT_PTR = 37,
    738     VT_UINT_PTR = 38,
    739     VT_FILETIME = 64,
    740     VT_BLOB = 65,
    741     VT_STREAM = 66,
    742     VT_STORAGE = 67,
    743     VT_STREAMED_OBJECT = 68,
    744     VT_STORED_OBJECT = 69,
    745     VT_BLOB_OBJECT = 70,
    746     VT_CF = 71,
    747     VT_CLSID = 72,
    748     VT_VERSIONED_STREAM = 73,
    749     VT_BSTR_BLOB = 0xfff,
    750     VT_VECTOR = 0x1000,
    751     VT_ARRAY = 0x2000,
    752     VT_BYREF = 0x4000,
    753     VT_RESERVED = 0x8000,
    754     VT_ILLEGAL = 0xffff,
    755     VT_ILLEGALMASKED = 0xfff,
    756     VT_TYPEMASK = 0xfff
    757 };
    758 
    759 typedef ULONG PROPID;
    760 #ifndef PROPERTYKEY_DEFINED
    761 #define PROPERTYKEY_DEFINED
    762 typedef struct _tagpropertykey {
    763     GUID fmtid;
    764     DWORD pid;
    765 } PROPERTYKEY;
    766 #endif
    767 #ifndef SID_IDENTIFIER_AUTHORITY_DEFINED
    768 #define SID_IDENTIFIER_AUTHORITY_DEFINED
    769 typedef struct _SID_IDENTIFIER_AUTHORITY {
    770     UCHAR Value[6];
    771 } SID_IDENTIFIER_AUTHORITY;
    772 typedef struct _SID_IDENTIFIER_AUTHORITY *PSID_IDENTIFIER_AUTHORITY;
    773 #endif
    774 #ifndef SID_DEFINED
    775 #define SID_DEFINED
    776 typedef struct _SID {
    777     BYTE Revision;
    778     BYTE SubAuthorityCount;
    779     SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
    780     ULONG SubAuthority[1];
    781 } SID;
    782 typedef struct _SID *PISID;
    783 typedef struct _SID_AND_ATTRIBUTES {
    784     SID *Sid;
    785     DWORD Attributes;
    786 } SID_AND_ATTRIBUTES;
    787 typedef struct _SID_AND_ATTRIBUTES *PSID_AND_ATTRIBUTES;
    788 #endif
    789 typedef struct tagCSPLATFORM {
    790     DWORD dwPlatformId;
    791     DWORD dwVersionHi;
    792     DWORD dwVersionLo;
    793     DWORD dwProcessorArch;
    794 } CSPLATFORM;
    795 typedef struct tagQUERYCONTEXT {
    796     DWORD dwContext;
    797     CSPLATFORM Platform;
    798     LCID Locale;
    799     DWORD dwVersionHi;
    800     DWORD dwVersionLo;
    801 } QUERYCONTEXT;
    802 typedef enum tagTYSPEC {
    803     TYSPEC_CLSID = 0,
    804     TYSPEC_FILEEXT = 1,
    805     TYSPEC_MIMETYPE = 2,
    806     TYSPEC_FILENAME = 3,
    807     TYSPEC_PROGID = 4,
    808     TYSPEC_PACKAGENAME = 5,
    809     TYSPEC_OBJECTID = 6
    810 } TYSPEC;
    811 typedef struct __WIDL_wtypes_generated_name_00000000 {
    812     DWORD tyspec;
    813     union {
    814         CLSID clsid;
    815         LPOLESTR pFileExt;
    816         LPOLESTR pMimeType;
    817         LPOLESTR pProgId;
    818         LPOLESTR pFileName;
    819         struct {
    820             LPOLESTR pPackageName;
    821             GUID PolicyId;
    822         } ByName;
    823         struct {
    824             GUID ObjectId;
    825             GUID PolicyId;
    826         } ByObjectId;
    827     } tagged_union;
    828 } uCLSSPEC;
    829 /* Begin additional prototypes for all interfaces */
    830 
    831 
    832 /* End additional prototypes */
    833 
    834 #ifdef __cplusplus
    835 }
    836 #endif
    837 
    838 #endif /* __wtypes_h__ */
    839