Return error from low level driver when necessary.
[wine.git] / include / wtypes.h
blobf125d4033498f6381b08ebf376fb721507f1b0b1
1 /*** Autogenerated by WIDL 0.1 from wtypes.idl - Do not edit ***/
2 #include <rpc.h>
3 #include <rpcndr.h>
5 #ifndef __WIDL_WTYPES_H
6 #define __WIDL_WTYPES_H
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 #include <basetsd.h>
11 #include <guiddef.h>
12 #if 0 /* winnt.h */
13 typedef unsigned char BYTE;
15 typedef unsigned short WORD;
17 typedef unsigned long DWORD;
19 typedef long BOOL;
21 typedef unsigned char UCHAR;
23 typedef int INT;
25 typedef unsigned int UINT;
27 typedef short SHORT;
29 typedef unsigned short USHORT;
31 typedef long LONG;
33 typedef unsigned long ULONG;
35 typedef float FLOAT;
37 typedef void *PVOID, *LPVOID;
39 typedef char CHAR;
41 typedef CHAR *LPSTR;
43 typedef const CHAR *LPCSTR;
45 typedef wchar_t WCHAR;
47 typedef WCHAR *LPWSTR;
49 typedef const WCHAR *LPCWSTR;
51 typedef boolean BOOLEAN;
53 typedef DWORD COLORREF;
55 typedef void *HANDLE;
57 typedef void *HACCEL;
59 typedef void *HDC;
61 typedef void *HFONT;
63 typedef void *HWND;
65 typedef void *HMENU;
67 typedef void *HMODULE;
69 typedef void *HINSTANCE;
71 typedef void *HRGN;
73 typedef void *HTASK;
75 typedef void *HKEY;
77 typedef void *HICON;
79 typedef LONG_PTR LRESULT;
81 typedef LONG HRESULT;
83 typedef DWORD LCID;
85 typedef unsigned __int64 DWORDLONG;
87 typedef __int64 LONGLONG;
89 typedef unsigned __int64 ULONGLONG;
91 typedef struct _LARGE_INTEGER {
92 LONGLONG QuadPart;
93 } LARGE_INTEGER;
95 typedef struct _ULARGE_INTEGER {
96 ULONGLONG QuadPart;
97 } ULARGE_INTEGER;
99 typedef struct _SID_IDENTIFIER_AUTHORITY {
100 UCHAR Value[6];
101 } SID_IDENTIFIER_AUTHORITY, *PSID_IDENTIFIER_AUTHORITY;
103 typedef struct _SID {
104 UCHAR Revision;
105 UCHAR SubAuthorityCount;
106 SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
107 ULONG SubAuthority[1];
108 } SID, *PSID;
110 typedef USHORT SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;
112 typedef struct _ACL {
113 UCHAR AclRevision;
114 UCHAR Sbz1;
115 USHORT AclSize;
116 USHORT AceCount;
117 USHORT Sbz2;
118 } ACL;
120 typedef ACL *PACL;
122 typedef struct _SECURITY_DESCRIPTOR {
123 UCHAR Revision;
124 UCHAR Sbz1;
125 SECURITY_DESCRIPTOR_CONTROL Control;
126 PSID Owner;
127 PSID Group;
128 PACL Sacl;
129 PACL Dacl;
130 } SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR;
132 typedef struct _SECURITY_ATTRIBUTES {
133 DWORD nLength;
134 LPVOID lpSecurityDescriptor;
135 BOOL bInheritHandle;
136 } SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
138 typedef struct tagSIZE {
139 LONG cx;
140 LONG cy;
141 } SIZE, *PSIZE, *LPSIZE;
143 typedef SIZE SIZEL, *PSIZEL, *LPSIZEL;
145 typedef struct tagPOINT {
146 LONG x;
147 LONG y;
148 } POINT, *PPOINT, *LPPOINT;
150 typedef struct _POINTL {
151 LONG x;
152 LONG y;
153 } POINTL, *PPOINTL;
155 typedef struct tagRECT {
156 LONG left;
157 LONG top;
158 LONG right;
159 LONG bottom;
160 } RECT, *PRECT, *LPRECT;
162 typedef const RECT *LPCRECT;
164 typedef struct _RECTL {
165 LONG left;
166 LONG top;
167 LONG right;
168 LONG bottom;
169 } RECTL, *PRECTL, *LPRECTL;
171 typedef const RECTL *LPCRECTL;
173 typedef UINT_PTR WPARAM;
175 typedef LONG_PTR LPARAM;
177 typedef struct tagMSG {
178 HWND hwnd;
179 UINT message;
180 WPARAM wParam;
181 LPARAM lParam;
182 DWORD time;
183 POINT pt;
184 } MSG, *PMSG, *NPMSG, *LPMSG;
186 #endif /* winnt.h */
187 #if 0
188 typedef double DOUBLE;
190 #else
191 typedef double DECLSPEC_ALIGN(8) DOUBLE;
192 #endif
193 #ifndef _PALETTEENTRY_DEFINED
194 #define _PALETTEENTRY_DEFINED
195 typedef struct tagPALETTEENTRY {
196 BYTE peRed;
197 BYTE peGreen;
198 BYTE peBlue;
199 BYTE peFlags;
200 } PALETTEENTRY, *PPALETTEENTRY, *LPPALETTEENTRY;
202 #endif
203 #ifndef _LOGPALETTE_DEFINED
204 #define _LOGPALETTE_DEFINED
205 typedef struct tagLOGPALETTE {
206 WORD palVersion;
207 WORD palNumEntries;
208 PALETTEENTRY palPalEntry[1];
209 } LOGPALETTE, *PLOGPALETTE, *LPLOGPALETTE;
211 #endif
212 #ifndef _FILETIME_
213 #define _FILETIME_
214 typedef struct _FILETIME {
215 DWORD dwLowDateTime;
216 DWORD dwHighDateTime;
217 } FILETIME, *PFILETIME, *LPFILETIME;
219 #endif
220 #ifndef _TEXTMETRIC_DEFINED
221 #define _TEXTMETRIC_DEFINED
222 typedef struct {
223 LONG tmHeight;
224 LONG tmAscent;
225 LONG tmDescent;
226 LONG tmInternalLeading;
227 LONG tmExternalLeading;
228 LONG tmAveCharWidth;
229 LONG tmMaxCharWidth;
230 LONG tmWeight;
231 LONG tmOverhang;
232 LONG tmDigitizedAspectX;
233 LONG tmDigitizedAspectY;
234 BYTE tmFirstChar;
235 BYTE tmLastChar;
236 BYTE tmDefaultChar;
237 BYTE tmBreakChar;
238 BYTE tmItalic;
239 BYTE tmUnderlined;
240 BYTE tmStruckOut;
241 BYTE tmPitchAndFamily;
242 BYTE tmCharSet;
243 } TEXTMETRICA, *LPTEXTMETRICA, *PTEXTMETRICA;
245 typedef struct {
246 LONG tmHeight;
247 LONG tmAscent;
248 LONG tmDescent;
249 LONG tmInternalLeading;
250 LONG tmExternalLeading;
251 LONG tmAveCharWidth;
252 LONG tmMaxCharWidth;
253 LONG tmWeight;
254 LONG tmOverhang;
255 LONG tmDigitizedAspectX;
256 LONG tmDigitizedAspectY;
257 WCHAR tmFirstChar;
258 WCHAR tmLastChar;
259 WCHAR tmDefaultChar;
260 WCHAR tmBreakChar;
261 BYTE tmItalic;
262 BYTE tmUnderlined;
263 BYTE tmStruckOut;
264 BYTE tmPitchAndFamily;
265 BYTE tmCharSet;
266 } TEXTMETRICW, *LPTEXTMETRICW, *PTEXTMETRICW;
268 #endif
269 typedef WCHAR OLECHAR;
271 typedef OLECHAR *LPOLESTR;
273 typedef const OLECHAR *LPCOLESTR;
275 #ifndef __WINESRC__
276 #define OLESTR(str) L##str
277 #endif
278 typedef LONG SCODE;
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;
290 typedef struct _COAUTHINFO {
291 DWORD dwAuthnSvc;
292 DWORD dwAuthzSvc;
293 LPWSTR pwszServerPrincName;
294 DWORD dwAuthnLevel;
295 DWORD dwImpersonationLevel;
296 COAUTHIDENTITY *pAuthIdentityData;
297 DWORD dwCapabilities;
298 } COAUTHINFO;
300 typedef struct _COSERVERINFO {
301 DWORD dwReserved1;
302 LPWSTR pwszName;
303 COAUTHINFO *pAuthInfo;
304 DWORD dwReserved2;
305 } COSERVERINFO;
307 typedef enum tagMEMCTX {
308 MEMCTX_TASK = 1,
309 MEMCTX_SHARED = 2,
310 MEMCTX_MACSYSTEM = 3,
311 MEMCTX_UNKNOWN = -1,
312 MEMCTX_SAME = -2
313 } MEMCTX;
315 #ifndef _ROTFLAGS_DEFINED
316 #define _ROTFLAGS_DEFINED
317 #define ROTFLAGS_REGISTRATIONKEEPSALIVE 0x1
318 #define ROTFLAGS_ALLOWANYCLIENT 0x2
319 #endif
320 typedef enum tagCLSCTX {
321 CLSCTX_INPROC_SERVER = 0x1,
322 CLSCTX_INPROC_HANDLER = 0x2,
323 CLSCTX_LOCAL_SERVER = 0x4,
324 CLSCTX_INPROC_SERVER16 = 0x8,
325 CLSCTX_REMOTE_SERVER = 0x10,
326 CLSCTX_INPROC_HANDLER16 = 0x20,
327 CLSCTX_INPROC_SERVERX86 = 0x40,
328 CLSCTX_INPROC_HANDLERX86 = 0x80,
329 CLSCTX_ESERVER_HANDLER = 0x100,
330 CLSCTX_NO_CODE_DOWNLOAD = 0x400,
331 CLSCTX_NO_CUSTOM_MARSHAL = 0x1000,
332 CLSCTX_ENABLE_CODE_DOWNLOAD = 0x2000,
333 CLSCTX_NO_FAILURE_LOG = 0x4000,
334 CLSCTX_DISABLE_AAA = 0x8000,
335 CLSCTX_ENABLE_AAA = 0x10000,
336 CLSCTX_FROM_DEFAULT_CONTEXT = 0x20000
337 } CLSCTX;
339 #define CLSCTX_INPROC (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER)
340 #define CLSCTX_ALL (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
341 #define CLSCTX_SERVER (CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
342 typedef enum tagMSHLFLAGS {
343 MSHLFLAGS_NORMAL = 0,
344 MSHLFLAGS_TABLESTRONG = 1,
345 MSHLFLAGS_TABLEWEAK = 2,
346 MSHLFLAGS_NOPING = 4
347 } MSHLFLAGS;
349 typedef enum tagMSHCTX {
350 MSHCTX_LOCAL = 0,
351 MSHCTX_NOSHAREDMEM = 1,
352 MSHCTX_DIFFERENTMACHINE = 2,
353 MSHCTX_INPROC = 3,
354 MSHCTX_CROSSCTX = 4
355 } MSHCTX;
357 typedef struct _BYTE_BLOB {
358 unsigned long clSize;
359 byte abData[1];
360 } BYTE_BLOB;
362 typedef BYTE_BLOB *UP_BYTE_BLOB;
364 typedef struct _FLAGGED_BYTE_BLOB {
365 unsigned long fFlags;
366 unsigned long clSize;
367 byte abData[1];
368 } FLAGGED_BYTE_BLOB;
370 typedef FLAGGED_BYTE_BLOB *UP_FLAGGED_BYTE_BLOB;
372 typedef struct _FLAGGED_WORD_BLOB {
373 unsigned long fFlags;
374 unsigned long clSize;
375 unsigned short asData[1];
376 } FLAGGED_WORD_BLOB;
378 typedef FLAGGED_WORD_BLOB *UP_FLAGGED_WORD_BLOB;
380 typedef struct _BYTE_SIZEDARR {
381 unsigned long clSize;
382 byte *pData;
383 } BYTE_SIZEDARR;
385 typedef struct _SHORT_SIZEDARR {
386 unsigned long clSize;
387 unsigned short *pData;
388 } WORD_SIZEDARR;
390 typedef struct _LONG_SIZEDARR {
391 unsigned long clSize;
392 unsigned long *pData;
393 } DWORD_SIZEDARR;
395 typedef struct _HYPER_SIZEDARR {
396 unsigned long clSize;
397 hyper *pData;
398 } HYPER_SIZEDARR;
400 #define WDT_INPROC_CALL (0x48746457)
402 #define WDT_REMOTE_CALL (0x52746457)
404 typedef struct _userCLIPFORMAT {
405 long fContext;
406 union {
407 DWORD dwValue;
408 LPWSTR pwszName;
409 } u;
410 } userCLIPFORMAT;
412 typedef userCLIPFORMAT *wireCLIPFORMAT;
414 typedef WORD CLIPFORMAT;
415 unsigned long __RPC_USER CLIPFORMAT_UserSize (unsigned long *, unsigned long, CLIPFORMAT *);
416 unsigned char * __RPC_USER CLIPFORMAT_UserMarshal (unsigned long *, unsigned char *, CLIPFORMAT *);
417 unsigned char * __RPC_USER CLIPFORMAT_UserUnmarshal(unsigned long *, unsigned char *, CLIPFORMAT *);
418 void __RPC_USER CLIPFORMAT_UserFree (unsigned long *, CLIPFORMAT *);
420 typedef struct tagRemHGLOBAL {
421 long fNullHGlobal;
422 unsigned long cbData;
423 byte data[1];
424 } RemHGLOBAL;
426 typedef struct _userHGLOBAL {
427 long fContext;
428 union {
429 long hInproc;
430 FLAGGED_BYTE_BLOB *hRemote;
431 long hGlobal;
432 } u;
433 } userHGLOBAL;
435 typedef userHGLOBAL *wireHGLOBAL;
437 typedef struct tagRemHMETAFILEPICT {
438 long mm;
439 long xExt;
440 long yExt;
441 unsigned long cbData;
442 byte data[1];
443 } RemHMETAFILEPICT;
445 typedef struct _userHMETAFILE {
446 long fContext;
447 union {
448 long hInproc;
449 BYTE_BLOB *hRemote;
450 long hGlobal;
451 } u;
452 } userHMETAFILE;
454 typedef userHMETAFILE *wireHMETAFILE;
456 typedef struct _remoteMETAFILEPICT {
457 long mm;
458 long xExt;
459 long yExt;
460 userHMETAFILE *hMF;
461 } remoteMETAFILEPICT;
463 typedef struct _userHMETAFILEPICT {
464 long fContext;
465 union {
466 long hInproc;
467 remoteMETAFILEPICT *hRemote;
468 long hGlobal;
469 } u;
470 } userHMETAFILEPICT;
472 typedef userHMETAFILEPICT *wireHMETAFILEPICT;
474 typedef struct tagRemHENHMETAFILE {
475 unsigned long cbData;
476 byte data[1];
477 } RemHENHMETAFILE;
479 typedef struct _userHENHMETAFILE {
480 long fContext;
481 union {
482 long hInproc;
483 BYTE_BLOB *hRemote;
484 long hGlobal;
485 } u;
486 } userHENHMETAFILE;
488 typedef userHENHMETAFILE *wireHENHMETAFILE;
490 typedef struct tagRemHBITMAP {
491 unsigned long cbData;
492 byte data[1];
493 } RemHBITMAP;
495 typedef struct _userBITMAP {
496 LONG bmType;
497 LONG bmWidth;
498 LONG bmHeight;
499 LONG bmWidthBytes;
500 WORD bmPlanes;
501 WORD bmBitsPixel;
502 ULONG cbSize;
503 byte pBuffer[1];
504 } userBITMAP;
506 typedef struct _userHBITMAP {
507 long fContext;
508 union {
509 long hInproc;
510 userBITMAP *hRemote;
511 long hGlobal;
512 } u;
513 } userHBITMAP;
515 typedef userHBITMAP *wireHBITMAP;
517 typedef struct tagRemHPALETTE {
518 unsigned long cbData;
519 byte data[1];
520 } RemHPALETTE;
522 typedef struct tagrpcLOGPALETTE {
523 WORD palVersion;
524 WORD palNumEntries;
525 PALETTEENTRY palPalEntry[1];
526 } rpcLOGPALETTE;
528 typedef struct _userHPALETTE {
529 long fContext;
530 union {
531 long hInproc;
532 rpcLOGPALETTE *hRemote;
533 long hGlobal;
534 } u;
535 } userHPALETTE;
537 typedef userHPALETTE *wireHPALETTE;
539 #if 0
540 typedef void *HGLOBAL;
541 unsigned long __RPC_USER HGLOBAL_UserSize (unsigned long *, unsigned long, HGLOBAL *);
542 unsigned char * __RPC_USER HGLOBAL_UserMarshal (unsigned long *, unsigned char *, HGLOBAL *);
543 unsigned char * __RPC_USER HGLOBAL_UserUnmarshal(unsigned long *, unsigned char *, HGLOBAL *);
544 void __RPC_USER HGLOBAL_UserFree (unsigned long *, HGLOBAL *);
546 typedef HGLOBAL HLOCAL;
548 typedef void *HBITMAP;
549 unsigned long __RPC_USER HBITMAP_UserSize (unsigned long *, unsigned long, HBITMAP *);
550 unsigned char * __RPC_USER HBITMAP_UserMarshal (unsigned long *, unsigned char *, HBITMAP *);
551 unsigned char * __RPC_USER HBITMAP_UserUnmarshal(unsigned long *, unsigned char *, HBITMAP *);
552 void __RPC_USER HBITMAP_UserFree (unsigned long *, HBITMAP *);
554 typedef void *HPALETTE;
555 unsigned long __RPC_USER HPALETTE_UserSize (unsigned long *, unsigned long, HPALETTE *);
556 unsigned char * __RPC_USER HPALETTE_UserMarshal (unsigned long *, unsigned char *, HPALETTE *);
557 unsigned char * __RPC_USER HPALETTE_UserUnmarshal(unsigned long *, unsigned char *, HPALETTE *);
558 void __RPC_USER HPALETTE_UserFree (unsigned long *, HPALETTE *);
560 typedef void *HENHMETAFILE;
561 unsigned long __RPC_USER HENHMETAFILE_UserSize (unsigned long *, unsigned long, HENHMETAFILE *);
562 unsigned char * __RPC_USER HENHMETAFILE_UserMarshal (unsigned long *, unsigned char *, HENHMETAFILE *);
563 unsigned char * __RPC_USER HENHMETAFILE_UserUnmarshal(unsigned long *, unsigned char *, HENHMETAFILE *);
564 void __RPC_USER HENHMETAFILE_UserFree (unsigned long *, HENHMETAFILE *);
566 typedef void *HMETAFILE;
567 unsigned long __RPC_USER HMETAFILE_UserSize (unsigned long *, unsigned long, HMETAFILE *);
568 unsigned char * __RPC_USER HMETAFILE_UserMarshal (unsigned long *, unsigned char *, HMETAFILE *);
569 unsigned char * __RPC_USER HMETAFILE_UserUnmarshal(unsigned long *, unsigned char *, HMETAFILE *);
570 void __RPC_USER HMETAFILE_UserFree (unsigned long *, HMETAFILE *);
572 #endif
573 typedef void *HMETAFILEPICT;
574 unsigned long __RPC_USER HMETAFILEPICT_UserSize (unsigned long *, unsigned long, HMETAFILEPICT *);
575 unsigned char * __RPC_USER HMETAFILEPICT_UserMarshal (unsigned long *, unsigned char *, HMETAFILEPICT *);
576 unsigned char * __RPC_USER HMETAFILEPICT_UserUnmarshal(unsigned long *, unsigned char *, HMETAFILEPICT *);
577 void __RPC_USER HMETAFILEPICT_UserFree (unsigned long *, HMETAFILEPICT *);
579 #if 0
580 typedef GUID *REFGUID;
582 typedef IID *REFIID;
584 typedef CLSID *REFCLSID;
586 typedef FMTID *REFFMTID;
588 #endif
589 typedef enum tagDVASPECT {
590 DVASPECT_CONTENT = 1,
591 DVASPECT_THUMBNAIL = 2,
592 DVASPECT_ICON = 4,
593 DVASPECT_DOCPRINT = 8
594 } DVASPECT;
596 typedef enum tagSTGC {
597 STGC_DEFAULT = 0,
598 STGC_OVERWRITE = 1,
599 STGC_ONLYIFCURRENT = 2,
600 STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4,
601 STGC_CONSOLIDATE = 8
602 } STGC;
604 typedef enum tagSTGMOVE {
605 STGMOVE_MOVE = 0,
606 STGMOVE_COPY = 1,
607 STGMOVE_SHALLOWCOPY = 2
608 } STGMOVE;
610 typedef enum tagSTATFLAG {
611 STATFLAG_DEFAULT = 0,
612 STATFLAG_NONAME = 1,
613 STATFLAG_NOOPEN = 2
614 } STATFLAG;
616 #if 0
617 typedef double DATE;
619 #else
620 typedef double DECLSPEC_ALIGN(8) DATE;
621 #endif
622 #if 0
623 typedef struct tagCY {
624 LONGLONG int64;
625 } CY;
627 #else
628 #ifndef _tagCY_DEFINED
629 #define _tagCY_DEFINED
630 typedef union tagCY {
631 struct {
632 #ifdef WORDS_BIGENDIAN
633 LONG Hi;
634 ULONG Lo;
635 #else
636 ULONG Lo;
637 LONG Hi;
638 #endif
639 } DUMMYSTRUCTNAME;
640 LONGLONG int64;
641 } CY;
642 #endif
643 #endif
644 typedef CY *LPCY;
646 #if 0
647 typedef struct tagDEC {
648 USHORT wReserved;
649 BYTE scale;
650 BYTE sign;
651 ULONG Hi32;
652 ULONGLONG Lo64;
653 } DECIMAL;
655 #else
656 typedef struct tagDEC {
657 USHORT wReserved;
658 union {
659 struct {
660 BYTE scale;
661 BYTE sign;
662 } DUMMYSTRUCTNAME;
663 USHORT signscale;
664 } DUMMYUNIONNAME;
665 ULONG Hi32;
666 union {
667 struct {
668 #ifdef WORDS_BIGENDIAN
669 ULONG Mid32;
670 ULONG Lo32;
671 #else
672 ULONG Lo32;
673 ULONG Mid32;
674 #endif
675 } DUMMYSTRUCTNAME1;
676 ULONGLONG Lo64;
677 } DUMMYUNIONNAME1;
678 } DECIMAL;
679 #endif
680 #define DECIMAL_NEG ((BYTE)0x80)
681 #define DECIMAL_SETZERO(d) do{ memset(((char*)(d)) + sizeof(USHORT), 0, sizeof(ULONG) * 3u + sizeof(USHORT)); }while (0)
682 typedef DECIMAL *LPDECIMAL;
684 typedef FLAGGED_WORD_BLOB *wireBSTR;
686 typedef OLECHAR *BSTR;
687 unsigned long __RPC_USER BSTR_UserSize (unsigned long *, unsigned long, BSTR *);
688 unsigned char * __RPC_USER BSTR_UserMarshal (unsigned long *, unsigned char *, BSTR *);
689 unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR *);
690 void __RPC_USER BSTR_UserFree (unsigned long *, BSTR *);
692 typedef BSTR *LPBSTR;
694 typedef short VARIANT_BOOL;
696 typedef VARIANT_BOOL _VARIANT_BOOL;
698 #define VARIANT_TRUE ((VARIANT_BOOL)0xFFFF)
699 #define VARIANT_FALSE ((VARIANT_BOOL)0x0000)
700 typedef struct tagBSTRBLOB {
701 ULONG cbSize;
702 BYTE *pData;
703 } BSTRBLOB, *LPBSTRBLOB;
705 #ifndef _tagBLOB_DEFINED
706 #define _tagBLOB_DEFINED
707 #define _BLOB_DEFINED
708 #define _LPBLOB_DEFINED
709 typedef struct tagBLOB {
710 ULONG cbSize;
711 BYTE *pBlobData;
712 } BLOB, *LPBLOB;
714 #endif
715 typedef struct tagCLIPDATA {
716 ULONG cbSize;
717 long ulClipFmt;
718 BYTE *pClipData;
719 } CLIPDATA;
721 #define CBPCLIPDATA(cb) ((cb).cbSize - sizeof((cb).ulClipFmt))
722 typedef ULONG PROPID;
724 typedef unsigned short VARTYPE;
726 enum VARENUM {
727 VT_EMPTY = 0,
728 VT_NULL = 1,
729 VT_I2 = 2,
730 VT_I4 = 3,
731 VT_R4 = 4,
732 VT_R8 = 5,
733 VT_CY = 6,
734 VT_DATE = 7,
735 VT_BSTR = 8,
736 VT_DISPATCH = 9,
737 VT_ERROR = 10,
738 VT_BOOL = 11,
739 VT_VARIANT = 12,
740 VT_UNKNOWN = 13,
741 VT_DECIMAL = 14,
742 VT_I1 = 16,
743 VT_UI1 = 17,
744 VT_UI2 = 18,
745 VT_UI4 = 19,
746 VT_I8 = 20,
747 VT_UI8 = 21,
748 VT_INT = 22,
749 VT_UINT = 23,
750 VT_VOID = 24,
751 VT_HRESULT = 25,
752 VT_PTR = 26,
753 VT_SAFEARRAY = 27,
754 VT_CARRAY = 28,
755 VT_USERDEFINED = 29,
756 VT_LPSTR = 30,
757 VT_LPWSTR = 31,
758 VT_RECORD = 36,
759 VT_INT_PTR = 37,
760 VT_UINT_PTR = 38,
761 VT_FILETIME = 64,
762 VT_BLOB = 65,
763 VT_STREAM = 66,
764 VT_STORAGE = 67,
765 VT_STREAMED_OBJECT = 68,
766 VT_STORED_OBJECT = 69,
767 VT_BLOB_OBJECT = 70,
768 VT_CF = 71,
769 VT_CLSID = 72,
770 VT_BSTR_BLOB = 0xfff,
771 VT_VECTOR = 0x1000,
772 VT_ARRAY = 0x2000,
773 VT_BYREF = 0x4000,
774 VT_RESERVED = 0x8000,
775 VT_ILLEGAL = 0xffff,
776 VT_ILLEGALMASKED = 0xfff,
777 VT_TYPEMASK = 0xfff
780 #ifdef __cplusplus
782 #endif
783 #endif /* __WIDL_WTYPES_H */