1/*** Autogenerated by WIDL 1.5.29 from /tmp/build-mingw64-toolchain-digit/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
26extern "C" {
27#endif
28
29/*****************************************************************************
30 * IWinTypes interface (v0.1)
31 */
32#ifndef __IWinTypes_INTERFACE_DEFINED__
33#define __IWinTypes_INTERFACE_DEFINED__
34
35extern RPC_IF_HANDLE IWinTypes_v0_1_c_ifspec;
36extern RPC_IF_HANDLE IWinTypes_v0_1_s_ifspec;
37typedef struct tagRemHGLOBAL {
38    LONG fNullHGlobal;
39    ULONG cbData;
40    byte data[1];
41} RemHGLOBAL;
42typedef struct tagRemHMETAFILEPICT {
43    LONG mm;
44    LONG xExt;
45    LONG yExt;
46    ULONG cbData;
47    byte data[1];
48} RemHMETAFILEPICT;
49typedef struct tagRemHENHMETAFILE {
50    ULONG cbData;
51    byte data[1];
52} RemHENHMETAFILE;
53typedef struct tagRemHBITMAP {
54    ULONG cbData;
55    byte data[1];
56} RemHBITMAP;
57typedef struct tagRemHPALETTE {
58    ULONG cbData;
59    byte data[1];
60} RemHPALETTE;
61typedef struct tagRemBRUSH {
62    ULONG cbData;
63    byte data[1];
64} RemHBRUSH;
65#if 0
66typedef byte BYTE;
67typedef unsigned short WORD;
68typedef unsigned int UINT;
69typedef int INT;
70typedef LONG BOOL;
71typedef LONG WINBOOL;
72typedef LONG LONG;
73typedef UINT_PTR WPARAM;
74typedef ULONG DWORD;
75typedef LONG_PTR LPARAM;
76typedef LONG_PTR LRESULT;
77typedef void *HANDLE;
78typedef void *HMODULE;
79typedef void *HINSTANCE;
80typedef void *HTASK;
81typedef void *HKEY;
82typedef void *HDESK;
83typedef void *HMF;
84typedef void *HEMF;
85typedef void *HPEN;
86typedef void *HRSRC;
87typedef void *HSTR;
88typedef void *HWINSTA;
89typedef void *HKL;
90typedef void *HGDIOBJ;
91typedef HANDLE HDWP;
92typedef INT HFILE;
93typedef WORD *LPWORD;
94typedef DWORD *LPDWORD;
95typedef char CHAR;
96typedef CHAR *LPSTR;
97typedef const CHAR *LPCSTR;
98typedef wchar_t WCHAR;
99typedef WCHAR *LPWSTR;
100typedef const WCHAR *LPCWSTR;
101typedef WCHAR TCHAR;
102typedef TCHAR *LPTSTR;
103typedef const TCHAR *LPCTSTR;
104typedef DWORD COLORREF;
105typedef DWORD *LPCOLORREF;
106typedef HANDLE *LPHANDLE;
107typedef struct _RECTL {
108    LONG left;
109    LONG top;
110    LONG right;
111    LONG bottom;
112} RECTL;
113typedef struct _RECTL *PRECTL;
114typedef struct _RECTL *LPRECTL;
115typedef struct tagPOINT {
116    LONG x;
117    LONG y;
118} POINT;
119typedef struct tagPOINT *PPOINT;
120typedef struct tagPOINT *LPPOINT;
121typedef struct tagPOINTL {
122    LONG x;
123    LONG y;
124} POINTL;
125typedef struct tagPOINTL *PPOINTL;
126typedef struct tagSIZE {
127    LONG cx;
128    LONG cy;
129} SIZE;
130typedef struct tagSIZE *PSIZE;
131typedef struct tagSIZE *LPSIZE;
132typedef struct tagSIZEL {
133    LONG cx;
134    LONG cy;
135} SIZEL;
136typedef struct tagSIZEL *PSIZEL;
137typedef struct tagSIZEL *LPSIZEL;
138#endif
139#ifndef _PALETTEENTRY_DEFINED
140#define _PALETTEENTRY_DEFINED
141typedef struct tagPALETTEENTRY {
142    BYTE peRed;
143    BYTE peGreen;
144    BYTE peBlue;
145    BYTE peFlags;
146} PALETTEENTRY;
147typedef struct tagPALETTEENTRY *PPALETTEENTRY;
148typedef struct tagPALETTEENTRY *LPPALETTEENTRY;
149#endif
150#ifndef _LOGPALETTE_DEFINED
151#define _LOGPALETTE_DEFINED
152typedef struct tagLOGPALETTE {
153    WORD palVersion;
154    WORD palNumEntries;
155    PALETTEENTRY palPalEntry[1];
156} LOGPALETTE;
157typedef struct tagLOGPALETTE *PLOGPALETTE;
158typedef struct tagLOGPALETTE *LPLOGPALETTE;
159#endif
160#ifndef OLE2ANSI
161typedef WCHAR OLECHAR;
162typedef OLECHAR *LPOLESTR;
163typedef 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_
172typedef const RECTL *LPCRECTL;
173typedef void *PVOID;
174typedef void *LPVOID;
175typedef float FLOAT;
176typedef struct tagRECT {
177    LONG left;
178    LONG top;
179    LONG right;
180    LONG bottom;
181} RECT;
182typedef struct tagRECT *PRECT;
183typedef struct tagRECT *LPRECT;
184typedef const RECT *LPCRECT;
185#endif
186#ifndef BASETYPES
187#define BASETYPES
188typedef unsigned char UCHAR;
189typedef short SHORT;
190typedef unsigned short USHORT;
191typedef DWORD ULONG;
192  typedef ULONG *PULONG;
193  typedef USHORT *PUSHORT;
194  typedef UCHAR *PUCHAR;
195  typedef char *PSZ;
196#endif
197typedef double DOUBLE;
198#ifndef _DWORDLONG_
199#define _DWORDLONG_
200  __MINGW_EXTENSION
201typedef UINT64 DWORDLONG;
202typedef DWORDLONG *PDWORDLONG;
203#endif
204#ifndef _ULONGLONG_
205  __MINGW_EXTENSION
206typedef INT64 LONGLONG;
207  __MINGW_EXTENSION
208typedef UINT64 ULONGLONG;
209typedef LONGLONG *PLONGLONG;
210typedef ULONGLONG *PULONGLONG;
211#endif
212#if 0
213typedef struct _LARGE_INTEGER {
214    LONGLONG QuadPart;
215} LARGE_INTEGER;
216typedef struct _LARGE_INTEGER *PLARGE_INTEGER;
217typedef struct _ULARGE_INTEGER {
218    ULONGLONG QuadPart;
219} ULARGE_INTEGER;
220#endif
221#ifndef _WINBASE_
222#ifndef _FILETIME_
223#define _FILETIME_
224typedef struct _FILETIME {
225    DWORD dwLowDateTime;
226    DWORD dwHighDateTime;
227} FILETIME;
228typedef struct _FILETIME *PFILETIME;
229typedef struct _FILETIME *LPFILETIME;
230#endif
231#ifndef _SYSTEMTIME_
232#define _SYSTEMTIME_
233typedef 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;
243typedef struct _SYSTEMTIME *PSYSTEMTIME;
244typedef struct _SYSTEMTIME *LPSYSTEMTIME;
245#endif
246#ifndef _SECURITY_ATTRIBUTES_
247#define _SECURITY_ATTRIBUTES_
248typedef struct _SECURITY_ATTRIBUTES {
249    DWORD nLength;
250    LPVOID lpSecurityDescriptor;
251    WINBOOL bInheritHandle;
252} SECURITY_ATTRIBUTES;
253typedef struct _SECURITY_ATTRIBUTES *PSECURITY_ATTRIBUTES;
254typedef struct _SECURITY_ATTRIBUTES *LPSECURITY_ATTRIBUTES;
255#endif
256#ifndef SECURITY_DESCRIPTOR_REVISION
257typedef USHORT SECURITY_DESCRIPTOR_CONTROL;
258typedef USHORT *PSECURITY_DESCRIPTOR_CONTROL;
259typedef PVOID PSID;
260typedef struct _ACL {
261    UCHAR AclRevision;
262    UCHAR Sbz1;
263    USHORT AclSize;
264    USHORT AceCount;
265    USHORT Sbz2;
266} ACL;
267typedef struct _ACL *PACL;
268typedef 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;
277typedef struct _SECURITY_DESCRIPTOR *PISECURITY_DESCRIPTOR;
278#endif
279#endif
280typedef 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;
289typedef 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;
298typedef LONG SCODE;
299typedef SCODE *PSCODE;
300#ifndef _HRESULT_DEFINED
301#define _HRESULT_DEFINED
302typedef LONG HRESULT;
303#endif
304#ifndef __OBJECTID_DEFINED
305#define __OBJECTID_DEFINED
306#define _OBJECTID_DEFINED
307typedef struct _OBJECTID {
308    GUID Lineage;
309    ULONG Uniquifier;
310} OBJECTID;
311#endif
312#if 0
313typedef GUID *REFGUID;
314typedef IID *REFIID;
315typedef CLSID *REFCLSID;
316typedef FMTID *REFFMTID;
317#endif
318typedef 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
334typedef 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;
356typedef 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;
366typedef enum tagMSHCTX {
367    MSHCTX_LOCAL = 0,
368    MSHCTX_NOSHAREDMEM = 1,
369    MSHCTX_DIFFERENTMACHINE = 2,
370    MSHCTX_INPROC = 3,
371    MSHCTX_CROSSCTX = 4
372} MSHCTX;
373typedef enum tagDVASPECT {
374    DVASPECT_CONTENT = 1,
375    DVASPECT_THUMBNAIL = 2,
376    DVASPECT_ICON = 4,
377    DVASPECT_DOCPRINT = 8
378} DVASPECT;
379typedef enum tagSTGC {
380    STGC_DEFAULT = 0,
381    STGC_OVERWRITE = 1,
382    STGC_ONLYIFCURRENT = 2,
383    STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4,
384    STGC_CONSOLIDATE = 8
385} STGC;
386typedef enum tagSTGMOVE {
387    STGMOVE_MOVE = 0,
388    STGMOVE_COPY = 1,
389    STGMOVE_SHALLOWCOPY = 2
390} STGMOVE;
391typedef enum tagSTATFLAG {
392    STATFLAG_DEFAULT = 0,
393    STATFLAG_NONAME = 1,
394    STATFLAG_NOOPEN = 2
395} STATFLAG;
396typedef void *HCONTEXT;
397#ifndef _LCID_DEFINED
398#define _LCID_DEFINED
399typedef DWORD LCID;
400#endif
401#ifndef _LANGID_DEFINED
402#define _LANGID_DEFINED
403typedef USHORT LANGID;
404#endif
405typedef struct _BYTE_BLOB {
406    ULONG clSize;
407    byte abData[1];
408} BYTE_BLOB;
409typedef BYTE_BLOB *UP_BYTE_BLOB;
410typedef struct _WORD_BLOB {
411    ULONG clSize;
412    unsigned short asData[1];
413} WORD_BLOB;
414typedef WORD_BLOB *UP_WORD_BLOB;
415typedef struct _DWORD_BLOB {
416    ULONG clSize;
417    ULONG alData[1];
418} DWORD_BLOB;
419typedef DWORD_BLOB *UP_DWORD_BLOB;
420typedef struct _FLAGGED_BYTE_BLOB {
421    ULONG fFlags;
422    ULONG clSize;
423    byte abData[1];
424} FLAGGED_BYTE_BLOB;
425typedef FLAGGED_BYTE_BLOB *UP_FLAGGED_BYTE_BLOB;
426typedef struct _FLAGGED_WORD_BLOB {
427    ULONG fFlags;
428    ULONG clSize;
429    unsigned short asData[1];
430} FLAGGED_WORD_BLOB;
431typedef FLAGGED_WORD_BLOB *UP_FLAGGED_WORD_BLOB;
432typedef struct _BYTE_SIZEDARR {
433    ULONG clSize;
434    byte *pData;
435} BYTE_SIZEDARR;
436typedef struct _SHORT_SIZEDARR {
437    ULONG clSize;
438    unsigned short *pData;
439} WORD_SIZEDARR;
440typedef struct _LONG_SIZEDARR {
441    ULONG clSize;
442    ULONG *pData;
443} DWORD_SIZEDARR;
444typedef 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
454typedef struct _userCLIPFORMAT {
455    LONG fContext;
456    union {
457        DWORD dwValue;
458        wchar_t *pwszName;
459    } u;
460} userCLIPFORMAT;
461typedef userCLIPFORMAT *wireCLIPFORMAT;
462typedef WORD CLIPFORMAT;
463typedef struct _GDI_NONREMOTE {
464    LONG fContext;
465    union {
466        LONG hInproc;
467        DWORD_BLOB *hRemote;
468    } u;
469} GDI_NONREMOTE;
470typedef struct _userHGLOBAL {
471    LONG fContext;
472    union {
473        LONG hInproc;
474        FLAGGED_BYTE_BLOB *hRemote;
475        INT64 hInproc64;
476    } tagged_union;
477} userHGLOBAL;
478typedef userHGLOBAL *wireHGLOBAL;
479typedef struct _userHMETAFILE {
480    LONG fContext;
481    union {
482        LONG hInproc;
483        BYTE_BLOB *hRemote;
484        INT64 hInproc64;
485    } tagged_union;
486} userHMETAFILE;
487typedef struct _remoteMETAFILEPICT {
488    LONG mm;
489    LONG xExt;
490    LONG yExt;
491    userHMETAFILE *hMF;
492} remoteMETAFILEPICT;
493typedef struct _userHMETAFILEPICT {
494    LONG fContext;
495    union {
496        LONG hInproc;
497        remoteMETAFILEPICT *hRemote;
498        INT64 hInproc64;
499    } tagged_union;
500} userHMETAFILEPICT;
501typedef struct _userHENHMETAFILE {
502    LONG fContext;
503    union {
504        LONG hInproc;
505        BYTE_BLOB *hRemote;
506        INT64 hInproc64;
507    } tagged_union;
508} userHENHMETAFILE;
509typedef 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;
519typedef struct _userHBITMAP {
520    LONG fContext;
521    union {
522        LONG hInproc;
523        userBITMAP *hRemote;
524        INT64 hInproc64;
525    } u;
526} userHBITMAP;
527typedef struct _userHPALETTE {
528    LONG fContext;
529    union {
530        LONG hInproc;
531        LOGPALETTE *hRemote;
532        INT64 hInproc64;
533    } u;
534} userHPALETTE;
535typedef struct _RemotableHandle {
536    LONG fContext;
537    union {
538        LONG hInproc;
539        LONG hRemote;
540    } tagged_union;
541} RemotableHandle;
542typedef RemotableHandle *wireHWND;
543typedef RemotableHandle *wireHMENU;
544typedef RemotableHandle *wireHACCEL;
545typedef RemotableHandle *wireHBRUSH;
546typedef RemotableHandle *wireHFONT;
547typedef RemotableHandle *wireHDC;
548typedef RemotableHandle *wireHICON;
549typedef RemotableHandle *wireHRGN;
550#if 0
551typedef void *HWND;
552typedef void *HMENU;
553typedef void *HACCEL;
554typedef void *HBRUSH;
555typedef void *HFONT;
556typedef void *HDC;
557typedef void *HICON;
558typedef void *HRGN;
559typedef HICON HCURSOR;
560#endif
561#ifndef _TEXTMETRIC_DEFINED
562#define _TEXTMETRIC_DEFINED
563typedef 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;
585typedef struct tagTEXTMETRICW *PTEXTMETRICW;
586typedef struct tagTEXTMETRICW *LPTEXTMETRICW;
587#endif
588#if 0
589typedef struct tagMSG {
590    HWND hwnd;
591    UINT message;
592    WPARAM wParam;
593    LPARAM lParaml;
594    DWORD time;
595    POINT pt;
596} MSG;
597typedef struct tagMSG *PMSG;
598typedef struct tagMSG *NPMSG;
599typedef struct tagMSG *LPMSG;
600#endif
601typedef userHBITMAP *wireHBITMAP;
602typedef userHPALETTE *wireHPALETTE;
603typedef userHENHMETAFILE *wireHENHMETAFILE;
604typedef userHMETAFILE *wireHMETAFILE;
605typedef userHMETAFILEPICT *wireHMETAFILEPICT;
606#if 0
607typedef void *HGLOBAL;
608typedef HGLOBAL HLOCAL;
609typedef void *HBITMAP;
610typedef void *HPALETTE;
611typedef void *HENHMETAFILE;
612typedef void *HMETAFILE;
613#endif
614typedef void *HMETAFILEPICT;
615
616#endif  /* __IWinTypes_INTERFACE_DEFINED__ */
617
618typedef double DATE;
619#ifndef _tagCY_DEFINED
620#define _tagCY_DEFINED
621#define _CY_DEFINED
622#if 0
623typedef 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
636typedef CY *LPCY;
637#if 0
638typedef 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
667typedef DECIMAL *LPDECIMAL;
668typedef FLAGGED_WORD_BLOB *wireBSTR;
669typedef OLECHAR *BSTR;
670typedef BSTR *LPBSTR;
671typedef short VARIANT_BOOL;
672typedef VARIANT_BOOL _VARIANT_BOOL;
673#ifndef _BOOLEAN_
674#define _BOOLEAN_
675typedef boolean BOOLEAN;
676#endif
677#ifndef _tagBSTRBLOB_DEFINED
678#define _tagBSTRBLOB_DEFINED
679typedef struct tagBSTRBLOB {
680    ULONG cbSize;
681    BYTE *pData;
682} BSTRBLOB;
683typedef 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
691typedef struct tagBLOB {
692    ULONG cbSize;
693    BYTE *pBlobData;
694} BLOB;
695typedef struct tagBLOB *LPBLOB;
696#endif
697typedef struct tagCLIPDATA {
698    ULONG cbSize;
699    LONG ulClipFmt;
700    BYTE *pClipData;
701} CLIPDATA;
702#define CBPCLIPDATA(clipdata) ((clipdata).cbSize - sizeof((clipdata).ulClipFmt))
703typedef unsigned short VARTYPE;
704enum 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
759typedef ULONG PROPID;
760#ifndef PROPERTYKEY_DEFINED
761#define PROPERTYKEY_DEFINED
762typedef struct _tagpropertykey {
763    GUID fmtid;
764    DWORD pid;
765} PROPERTYKEY;
766#endif
767#ifndef SID_IDENTIFIER_AUTHORITY_DEFINED
768#define SID_IDENTIFIER_AUTHORITY_DEFINED
769typedef struct _SID_IDENTIFIER_AUTHORITY {
770    UCHAR Value[6];
771} SID_IDENTIFIER_AUTHORITY;
772typedef struct _SID_IDENTIFIER_AUTHORITY *PSID_IDENTIFIER_AUTHORITY;
773#endif
774#ifndef SID_DEFINED
775#define SID_DEFINED
776typedef struct _SID {
777    BYTE Revision;
778    BYTE SubAuthorityCount;
779    SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
780    ULONG SubAuthority[1];
781} SID;
782typedef struct _SID *PISID;
783typedef struct _SID_AND_ATTRIBUTES {
784    SID *Sid;
785    DWORD Attributes;
786} SID_AND_ATTRIBUTES;
787typedef struct _SID_AND_ATTRIBUTES *PSID_AND_ATTRIBUTES;
788#endif
789typedef struct tagCSPLATFORM {
790    DWORD dwPlatformId;
791    DWORD dwVersionHi;
792    DWORD dwVersionLo;
793    DWORD dwProcessorArch;
794} CSPLATFORM;
795typedef struct tagQUERYCONTEXT {
796    DWORD dwContext;
797    CSPLATFORM Platform;
798    LCID Locale;
799    DWORD dwVersionHi;
800    DWORD dwVersionLo;
801} QUERYCONTEXT;
802typedef 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;
811typedef 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