Implemented GetCPInfoExA/W.
[wine/hacks.git] / include / wtypes.h
blobbd500ddcc5456615c0583392587ff0a4c0436224
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;
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 typedef double DOUBLE;
189 #ifndef _PALETTEENTRY_DEFINED
190 #define _PALETTEENTRY_DEFINED
191 typedef struct tagPALETTEENTRY {
192 BYTE peRed;
193 BYTE peGreen;
194 BYTE peBlue;
195 BYTE peFlags;
196 } PALETTEENTRY, *PPALETTEENTRY, *LPPALETTEENTRY;
198 #endif
199 #ifndef _LOGPALETTE_DEFINED
200 #define _LOGPALETTE_DEFINED
201 typedef struct tagLOGPALETTE {
202 WORD palVersion;
203 WORD palNumEntries;
204 PALETTEENTRY palPalEntry[1];
205 } LOGPALETTE, *PLOGPALETTE, *LPLOGPALETTE;
207 #endif
208 #ifndef _FILETIME_
209 #define _FILETIME_
210 typedef struct _FILETIME {
211 DWORD dwLowDateTime;
212 DWORD dwHighDateTime;
213 } FILETIME, *PFILETIME, *LPFILETIME;
215 #endif
216 #ifndef _TEXTMETRIC_DEFINED
217 #define _TEXTMETRIC_DEFINED
218 typedef struct {
219 LONG tmHeight;
220 LONG tmAscent;
221 LONG tmDescent;
222 LONG tmInternalLeading;
223 LONG tmExternalLeading;
224 LONG tmAveCharWidth;
225 LONG tmMaxCharWidth;
226 LONG tmWeight;
227 LONG tmOverhang;
228 LONG tmDigitizedAspectX;
229 LONG tmDigitizedAspectY;
230 BYTE tmFirstChar;
231 BYTE tmLastChar;
232 BYTE tmDefaultChar;
233 BYTE tmBreakChar;
234 BYTE tmItalic;
235 BYTE tmUnderlined;
236 BYTE tmStruckOut;
237 BYTE tmPitchAndFamily;
238 BYTE tmCharSet;
239 } TEXTMETRICA, *LPTEXTMETRICA, *PTEXTMETRICA;
241 typedef struct {
242 LONG tmHeight;
243 LONG tmAscent;
244 LONG tmDescent;
245 LONG tmInternalLeading;
246 LONG tmExternalLeading;
247 LONG tmAveCharWidth;
248 LONG tmMaxCharWidth;
249 LONG tmWeight;
250 LONG tmOverhang;
251 LONG tmDigitizedAspectX;
252 LONG tmDigitizedAspectY;
253 WCHAR tmFirstChar;
254 WCHAR tmLastChar;
255 WCHAR tmDefaultChar;
256 WCHAR tmBreakChar;
257 BYTE tmItalic;
258 BYTE tmUnderlined;
259 BYTE tmStruckOut;
260 BYTE tmPitchAndFamily;
261 BYTE tmCharSet;
262 } TEXTMETRICW, *LPTEXTMETRICW, *PTEXTMETRICW;
264 #endif
265 typedef WCHAR OLECHAR;
267 typedef OLECHAR *LPOLESTR;
269 typedef const OLECHAR *LPCOLESTR;
271 #ifndef __WINESRC__
272 #define OLESTR(str) L##str
273 #endif
274 typedef CHAR OLECHAR16;
276 typedef LPSTR LPOLESTR16;
278 typedef LPCSTR LPCOLESTR16;
280 typedef OLECHAR16 *BSTR16;
281 typedef BSTR16 *LPBSTR16;
282 #define OLESTR16(x) x
283 typedef LONG SCODE;
285 typedef struct _COAUTHIDENTITY {
286 USHORT *User;
287 ULONG UserLength;
288 USHORT *Domain;
289 ULONG DomainLength;
290 USHORT *Password;
291 ULONG PasswordLength;
292 ULONG Flags;
293 } COAUTHIDENTITY;
295 typedef struct _COAUTHINFO {
296 DWORD dwAuthnSvc;
297 DWORD dwAuthzSvc;
298 LPWSTR pwszServerPrincName;
299 DWORD dwAuthnLevel;
300 DWORD dwImpersonationLevel;
301 COAUTHIDENTITY *pAuthIdentityData;
302 DWORD dwCapabilities;
303 } COAUTHINFO;
305 typedef struct _COSERVERINFO {
306 DWORD dwReserved1;
307 LPWSTR pwszName;
308 COAUTHINFO *pAuthInfo;
309 DWORD dwReserved2;
310 } COSERVERINFO;
312 typedef enum tagMEMCTX {
313 MEMCTX_TASK = 1,
314 MEMCTX_SHARED = 2,
315 MEMCTX_MACSYSTEM = 3,
316 MEMCTX_UNKNOWN = -1,
317 MEMCTX_SAME = -2
318 } MEMCTX;
320 #ifndef _ROTFLAGS_DEFINED
321 #define _ROTFLAGS_DEFINED
322 #define ROTFLAGS_REGISTRATIONKEEPSALIVE 0x1
323 #define ROTFLAGS_ALLOWANYCLIENT 0x2
324 #endif
325 typedef enum tagCLSCTX {
326 CLSCTX_INPROC_SERVER = 0x1,
327 CLSCTX_INPROC_HANDLER = 0x2,
328 CLSCTX_LOCAL_SERVER = 0x4,
329 CLSCTX_INPROC_SERVER16 = 0x8,
330 CLSCTX_REMOTE_SERVER = 0x10,
331 CLSCTX_INPROC_HANDLER16 = 0x20,
332 CLSCTX_INPROC_SERVERX86 = 0x40,
333 CLSCTX_INPROC_HANDLERX86 = 0x80,
334 CLSCTX_ESERVER_HANDLER = 0x100,
335 CLSCTX_NO_CODE_DOWNLOAD = 0x400,
336 CLSCTX_NO_CUSTOM_MARSHAL = 0x1000,
337 CLSCTX_ENABLE_CODE_DOWNLOAD = 0x2000,
338 CLSCTX_NO_FAILURE_LOG = 0x4000,
339 CLSCTX_DISABLE_AAA = 0x8000,
340 CLSCTX_ENABLE_AAA = 0x10000,
341 CLSCTX_FROM_DEFAULT_CONTEXT = 0x20000
342 } CLSCTX;
344 #define CLSCTX_INPROC (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER)
345 #define CLSCTX_ALL (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
346 #define CLSCTX_SERVER (CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
347 typedef enum tagMSHLFLAGS {
348 MSHLFLAGS_NORMAL = 0,
349 MSHLFLAGS_TABLESTRONG = 1,
350 MSHLFLAGS_TABLEWEAK = 2,
351 MSHLFLAGS_NOPING = 4
352 } MSHLFLAGS;
354 typedef enum tagMSHCTX {
355 MSHCTX_LOCAL = 0,
356 MSHCTX_NOSHAREDMEM = 1,
357 MSHCTX_DIFFERENTMACHINE = 2,
358 MSHCTX_INPROC = 3,
359 MSHCTX_CROSSCTX = 4
360 } MSHCTX;
362 typedef struct _BYTE_BLOB {
363 unsigned long clSize;
364 byte abData[1];
365 } BYTE_BLOB;
367 typedef BYTE_BLOB *UP_BYTE_BLOB;
369 typedef struct _FLAGGED_BYTE_BLOB {
370 unsigned long fFlags;
371 unsigned long clSize;
372 byte abData[1];
373 } FLAGGED_BYTE_BLOB;
375 typedef FLAGGED_BYTE_BLOB *UP_FLAGGED_BYTE_BLOB;
377 typedef struct _FLAGGED_WORD_BLOB {
378 unsigned long fFlags;
379 unsigned long clSize;
380 unsigned short asData[1];
381 } FLAGGED_WORD_BLOB;
383 typedef FLAGGED_WORD_BLOB *UP_FLAGGED_WORD_BLOB;
385 typedef struct _BYTE_SIZEDARR {
386 unsigned long clSize;
387 byte *pData;
388 } BYTE_SIZEDARR;
390 typedef struct _SHORT_SIZEDARR {
391 unsigned long clSize;
392 unsigned short *pData;
393 } WORD_SIZEDARR;
395 typedef struct _LONG_SIZEDARR {
396 unsigned long clSize;
397 unsigned long *pData;
398 } DWORD_SIZEDARR;
400 typedef struct _HYPER_SIZEDARR {
401 unsigned long clSize;
402 hyper *pData;
403 } HYPER_SIZEDARR;
405 #define WDT_INPROC_CALL (0x48746457)
407 #define WDT_REMOTE_CALL (0x52746457)
409 typedef struct _userCLIPFORMAT {
410 long fContext;
411 union {
412 DWORD dwValue;
413 LPWSTR pwszName;
414 } u;
415 } userCLIPFORMAT;
417 typedef userCLIPFORMAT *wireCLIPFORMAT;
419 typedef WORD CLIPFORMAT;
420 unsigned long __RPC_USER CLIPFORMAT_UserSize (unsigned long *, unsigned long, CLIPFORMAT *);
421 unsigned char * __RPC_USER CLIPFORMAT_UserMarshal (unsigned long *, unsigned char *, CLIPFORMAT *);
422 unsigned char * __RPC_USER CLIPFORMAT_UserUnmarshal(unsigned long *, unsigned char *, CLIPFORMAT *);
423 void __RPC_USER CLIPFORMAT_UserFree (unsigned long *, CLIPFORMAT *);
425 typedef struct tagRemHGLOBAL {
426 long fNullHGlobal;
427 unsigned long cbData;
428 byte data[1];
429 } RemHGLOBAL;
431 typedef struct _userHGLOBAL {
432 long fContext;
433 union {
434 long hInproc;
435 FLAGGED_BYTE_BLOB *hRemote;
436 long hGlobal;
437 } u;
438 } userHGLOBAL;
440 typedef userHGLOBAL *wireHGLOBAL;
442 typedef struct tagRemHMETAFILEPICT {
443 long mm;
444 long xExt;
445 long yExt;
446 unsigned long cbData;
447 byte data[1];
448 } RemHMETAFILEPICT;
450 typedef struct _userHMETAFILE {
451 long fContext;
452 union {
453 long hInproc;
454 BYTE_BLOB *hRemote;
455 long hGlobal;
456 } u;
457 } userHMETAFILE;
459 typedef userHMETAFILE *wireHMETAFILE;
461 typedef struct _remoteMETAFILEPICT {
462 long mm;
463 long xExt;
464 long yExt;
465 userHMETAFILE *hMF;
466 } remoteMETAFILEPICT;
468 typedef struct _userHMETAFILEPICT {
469 long fContext;
470 union {
471 long hInproc;
472 remoteMETAFILEPICT *hRemote;
473 long hGlobal;
474 } u;
475 } userHMETAFILEPICT;
477 typedef userHMETAFILEPICT *wireHMETAFILEPICT;
479 typedef struct tagRemHENHMETAFILE {
480 unsigned long cbData;
481 byte data[1];
482 } RemHENHMETAFILE;
484 typedef struct _userHENHMETAFILE {
485 long fContext;
486 union {
487 long hInproc;
488 BYTE_BLOB *hRemote;
489 long hGlobal;
490 } u;
491 } userHENHMETAFILE;
493 typedef userHENHMETAFILE *wireHENHMETAFILE;
495 typedef struct tagRemHBITMAP {
496 unsigned long cbData;
497 byte data[1];
498 } RemHBITMAP;
500 typedef struct _userBITMAP {
501 LONG bmType;
502 LONG bmWidth;
503 LONG bmHeight;
504 LONG bmWidthBytes;
505 WORD bmPlanes;
506 WORD bmBitsPixel;
507 ULONG cbSize;
508 byte pBuffer[1];
509 } userBITMAP;
511 typedef struct _userHBITMAP {
512 long fContext;
513 union {
514 long hInproc;
515 userBITMAP *hRemote;
516 long hGlobal;
517 } u;
518 } userHBITMAP;
520 typedef userHBITMAP *wireHBITMAP;
522 typedef struct tagRemHPALETTE {
523 unsigned long cbData;
524 byte data[1];
525 } RemHPALETTE;
527 typedef struct tagrpcLOGPALETTE {
528 WORD palVersion;
529 WORD palNumEntries;
530 PALETTEENTRY palPalEntry[1];
531 } rpcLOGPALETTE;
533 typedef struct _userHPALETTE {
534 long fContext;
535 union {
536 long hInproc;
537 rpcLOGPALETTE *hRemote;
538 long hGlobal;
539 } u;
540 } userHPALETTE;
542 typedef userHPALETTE *wireHPALETTE;
544 #if 0
545 typedef void *HGLOBAL;
546 unsigned long __RPC_USER HGLOBAL_UserSize (unsigned long *, unsigned long, HGLOBAL *);
547 unsigned char * __RPC_USER HGLOBAL_UserMarshal (unsigned long *, unsigned char *, HGLOBAL *);
548 unsigned char * __RPC_USER HGLOBAL_UserUnmarshal(unsigned long *, unsigned char *, HGLOBAL *);
549 void __RPC_USER HGLOBAL_UserFree (unsigned long *, HGLOBAL *);
551 typedef HGLOBAL HLOCAL;
553 typedef void *HBITMAP;
554 unsigned long __RPC_USER HBITMAP_UserSize (unsigned long *, unsigned long, HBITMAP *);
555 unsigned char * __RPC_USER HBITMAP_UserMarshal (unsigned long *, unsigned char *, HBITMAP *);
556 unsigned char * __RPC_USER HBITMAP_UserUnmarshal(unsigned long *, unsigned char *, HBITMAP *);
557 void __RPC_USER HBITMAP_UserFree (unsigned long *, HBITMAP *);
559 typedef void *HPALETTE;
560 unsigned long __RPC_USER HPALETTE_UserSize (unsigned long *, unsigned long, HPALETTE *);
561 unsigned char * __RPC_USER HPALETTE_UserMarshal (unsigned long *, unsigned char *, HPALETTE *);
562 unsigned char * __RPC_USER HPALETTE_UserUnmarshal(unsigned long *, unsigned char *, HPALETTE *);
563 void __RPC_USER HPALETTE_UserFree (unsigned long *, HPALETTE *);
565 typedef void *HENHMETAFILE;
566 unsigned long __RPC_USER HENHMETAFILE_UserSize (unsigned long *, unsigned long, HENHMETAFILE *);
567 unsigned char * __RPC_USER HENHMETAFILE_UserMarshal (unsigned long *, unsigned char *, HENHMETAFILE *);
568 unsigned char * __RPC_USER HENHMETAFILE_UserUnmarshal(unsigned long *, unsigned char *, HENHMETAFILE *);
569 void __RPC_USER HENHMETAFILE_UserFree (unsigned long *, HENHMETAFILE *);
571 typedef void *HMETAFILE;
572 unsigned long __RPC_USER HMETAFILE_UserSize (unsigned long *, unsigned long, HMETAFILE *);
573 unsigned char * __RPC_USER HMETAFILE_UserMarshal (unsigned long *, unsigned char *, HMETAFILE *);
574 unsigned char * __RPC_USER HMETAFILE_UserUnmarshal(unsigned long *, unsigned char *, HMETAFILE *);
575 void __RPC_USER HMETAFILE_UserFree (unsigned long *, HMETAFILE *);
577 #endif
578 typedef void *HMETAFILEPICT;
579 unsigned long __RPC_USER HMETAFILEPICT_UserSize (unsigned long *, unsigned long, HMETAFILEPICT *);
580 unsigned char * __RPC_USER HMETAFILEPICT_UserMarshal (unsigned long *, unsigned char *, HMETAFILEPICT *);
581 unsigned char * __RPC_USER HMETAFILEPICT_UserUnmarshal(unsigned long *, unsigned char *, HMETAFILEPICT *);
582 void __RPC_USER HMETAFILEPICT_UserFree (unsigned long *, HMETAFILEPICT *);
584 #if 0
585 typedef GUID *REFGUID;
587 typedef IID *REFIID;
589 typedef CLSID *REFCLSID;
591 typedef FMTID *REFFMTID;
593 #endif
594 typedef enum tagDVASPECT {
595 DVASPECT_CONTENT = 1,
596 DVASPECT_THUMBNAIL = 2,
597 DVASPECT_ICON = 4,
598 DVASPECT_DOCPRINT = 8
599 } DVASPECT;
601 typedef enum tagSTGC {
602 STGC_DEFAULT = 0,
603 STGC_OVERWRITE = 1,
604 STGC_ONLYIFCURRENT = 2,
605 STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4,
606 STGC_CONSOLIDATE = 8
607 } STGC;
609 typedef enum tagSTGMOVE {
610 STGMOVE_MOVE = 0,
611 STGMOVE_COPY = 1,
612 STGMOVE_SHALLOWCOPY = 2
613 } STGMOVE;
615 typedef enum tagSTATFLAG {
616 STATFLAG_DEFAULT = 0,
617 STATFLAG_NONAME = 1,
618 STATFLAG_NOOPEN = 2
619 } STATFLAG;
621 typedef double DATE;
623 #if 0
624 typedef struct tagCY {
625 LONGLONG int64;
626 } CY;
628 #else
629 typedef union tagCY {
630 struct {
631 #ifdef WORDS_BIGENDIAN
632 LONG Hi;
633 ULONG Lo;
634 #else
635 ULONG Lo;
636 LONG Hi;
637 #endif
638 } DUMMYSTRUCTNAME;
639 LONGLONG int64;
640 } CY;
641 #endif
642 typedef CY *LPCY;
644 #if 0
645 typedef struct tagDEC {
646 USHORT wReserved;
647 BYTE scale;
648 BYTE sign;
649 ULONG Hi32;
650 ULONGLONG Lo64;
651 } DECIMAL;
653 #else
654 typedef struct tagDEC {
655 USHORT wReserved;
656 union {
657 struct {
658 BYTE scale;
659 BYTE sign;
660 } DUMMYSTRUCTNAME;
661 USHORT signscale;
662 } DUMMYUNIONNAME;
663 ULONG Hi32;
664 union {
665 struct {
666 #ifdef WORDS_BIGENDIAN
667 ULONG Mid32;
668 ULONG Lo32;
669 #else
670 ULONG Lo32;
671 ULONG Mid32;
672 #endif
673 } DUMMYSTRUCTNAME1;
674 ULONGLONG Lo64;
675 } DUMMYUNIONNAME1;
676 } DECIMAL;
677 #endif
678 #define DECIMAL_NEG ((BYTE)0x80)
679 #define DECIMAL_SETZERO(d) do{ memset(((char*)(d)) + sizeof(USHORT), 0, sizeof(ULONG) * 3u + sizeof(USHORT)); }while (0)
680 typedef DECIMAL *LPDECIMAL;
682 typedef FLAGGED_WORD_BLOB *wireBSTR;
684 typedef OLECHAR *BSTR;
685 unsigned long __RPC_USER BSTR_UserSize (unsigned long *, unsigned long, BSTR *);
686 unsigned char * __RPC_USER BSTR_UserMarshal (unsigned long *, unsigned char *, BSTR *);
687 unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR *);
688 void __RPC_USER BSTR_UserFree (unsigned long *, BSTR *);
690 typedef BSTR *LPBSTR;
692 typedef short VARIANT_BOOL;
694 typedef VARIANT_BOOL _VARIANT_BOOL;
696 #define VARIANT_TRUE ((VARIANT_BOOL)0xFFFF)
697 #define VARIANT_FALSE ((VARIANT_BOOL)0x0000)
698 typedef struct tagBSTRBLOB {
699 ULONG cbSize;
700 BYTE *pData;
701 } BSTRBLOB, *LPBSTRBLOB;
703 typedef struct tagBLOB {
704 ULONG cbSize;
705 BYTE *pBlobData;
706 } BLOB, *LPBLOB;
708 typedef struct tagCLIPDATA {
709 ULONG cbSize;
710 long ulClipFmt;
711 BYTE *pClipData;
712 } CLIPDATA;
714 #define CBPCLIPDATA(cb) ((cb).cbSize - sizeof((cb).ulClipFmt))
715 typedef ULONG PROPID;
717 typedef unsigned short VARTYPE;
719 enum VARENUM {
720 VT_EMPTY = 0,
721 VT_NULL = 1,
722 VT_I2 = 2,
723 VT_I4 = 3,
724 VT_R4 = 4,
725 VT_R8 = 5,
726 VT_CY = 6,
727 VT_DATE = 7,
728 VT_BSTR = 8,
729 VT_DISPATCH = 9,
730 VT_ERROR = 10,
731 VT_BOOL = 11,
732 VT_VARIANT = 12,
733 VT_UNKNOWN = 13,
734 VT_DECIMAL = 14,
735 VT_I1 = 16,
736 VT_UI1 = 17,
737 VT_UI2 = 18,
738 VT_UI4 = 19,
739 VT_I8 = 20,
740 VT_UI8 = 21,
741 VT_INT = 22,
742 VT_UINT = 23,
743 VT_VOID = 24,
744 VT_HRESULT = 25,
745 VT_PTR = 26,
746 VT_SAFEARRAY = 27,
747 VT_CARRAY = 28,
748 VT_USERDEFINED = 29,
749 VT_LPSTR = 30,
750 VT_LPWSTR = 31,
751 VT_RECORD = 36,
752 VT_INT_PTR = 37,
753 VT_UINT_PTR = 38,
754 VT_FILETIME = 64,
755 VT_BLOB = 65,
756 VT_STREAM = 66,
757 VT_STORAGE = 67,
758 VT_STREAMED_OBJECT = 68,
759 VT_STORED_OBJECT = 69,
760 VT_BLOB_OBJECT = 70,
761 VT_CF = 71,
762 VT_CLSID = 72,
763 VT_BSTR_BLOB = 0xfff,
764 VT_VECTOR = 0x1000,
765 VT_ARRAY = 0x2000,
766 VT_BYREF = 0x4000,
767 VT_RESERVED = 0x8000,
768 VT_ILLEGAL = 0xffff,
769 VT_ILLEGALMASKED = 0xfff,
770 VT_TYPEMASK = 0xfff
773 #ifdef __cplusplus
775 #endif
776 #endif /* __WIDL_WTYPES_H */