Don't free ALSA device string when the device is closed since it might
[wine.git] / include / wtypes.h
blobac439a58955faf0ebdfbb32c60c6d2d5add4c73e
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 LONG SCODE;
276 typedef struct _COAUTHIDENTITY {
277 USHORT *User;
278 ULONG UserLength;
279 USHORT *Domain;
280 ULONG DomainLength;
281 USHORT *Password;
282 ULONG PasswordLength;
283 ULONG Flags;
284 } COAUTHIDENTITY;
286 typedef struct _COAUTHINFO {
287 DWORD dwAuthnSvc;
288 DWORD dwAuthzSvc;
289 LPWSTR pwszServerPrincName;
290 DWORD dwAuthnLevel;
291 DWORD dwImpersonationLevel;
292 COAUTHIDENTITY *pAuthIdentityData;
293 DWORD dwCapabilities;
294 } COAUTHINFO;
296 typedef struct _COSERVERINFO {
297 DWORD dwReserved1;
298 LPWSTR pwszName;
299 COAUTHINFO *pAuthInfo;
300 DWORD dwReserved2;
301 } COSERVERINFO;
303 typedef enum tagMEMCTX {
304 MEMCTX_TASK = 1,
305 MEMCTX_SHARED = 2,
306 MEMCTX_MACSYSTEM = 3,
307 MEMCTX_UNKNOWN = -1,
308 MEMCTX_SAME = -2
309 } MEMCTX;
311 #ifndef _ROTFLAGS_DEFINED
312 #define _ROTFLAGS_DEFINED
313 #define ROTFLAGS_REGISTRATIONKEEPSALIVE 0x1
314 #define ROTFLAGS_ALLOWANYCLIENT 0x2
315 #endif
316 typedef enum tagCLSCTX {
317 CLSCTX_INPROC_SERVER = 0x1,
318 CLSCTX_INPROC_HANDLER = 0x2,
319 CLSCTX_LOCAL_SERVER = 0x4,
320 CLSCTX_INPROC_SERVER16 = 0x8,
321 CLSCTX_REMOTE_SERVER = 0x10,
322 CLSCTX_INPROC_HANDLER16 = 0x20,
323 CLSCTX_INPROC_SERVERX86 = 0x40,
324 CLSCTX_INPROC_HANDLERX86 = 0x80,
325 CLSCTX_ESERVER_HANDLER = 0x100,
326 CLSCTX_NO_CODE_DOWNLOAD = 0x400,
327 CLSCTX_NO_CUSTOM_MARSHAL = 0x1000,
328 CLSCTX_ENABLE_CODE_DOWNLOAD = 0x2000,
329 CLSCTX_NO_FAILURE_LOG = 0x4000,
330 CLSCTX_DISABLE_AAA = 0x8000,
331 CLSCTX_ENABLE_AAA = 0x10000,
332 CLSCTX_FROM_DEFAULT_CONTEXT = 0x20000
333 } CLSCTX;
335 #define CLSCTX_INPROC (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER)
336 #define CLSCTX_ALL (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
337 #define CLSCTX_SERVER (CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
338 typedef enum tagMSHLFLAGS {
339 MSHLFLAGS_NORMAL = 0,
340 MSHLFLAGS_TABLESTRONG = 1,
341 MSHLFLAGS_TABLEWEAK = 2,
342 MSHLFLAGS_NOPING = 4
343 } MSHLFLAGS;
345 typedef enum tagMSHCTX {
346 MSHCTX_LOCAL = 0,
347 MSHCTX_NOSHAREDMEM = 1,
348 MSHCTX_DIFFERENTMACHINE = 2,
349 MSHCTX_INPROC = 3,
350 MSHCTX_CROSSCTX = 4
351 } MSHCTX;
353 typedef struct _BYTE_BLOB {
354 unsigned long clSize;
355 byte abData[1];
356 } BYTE_BLOB;
358 typedef BYTE_BLOB *UP_BYTE_BLOB;
360 typedef struct _FLAGGED_BYTE_BLOB {
361 unsigned long fFlags;
362 unsigned long clSize;
363 byte abData[1];
364 } FLAGGED_BYTE_BLOB;
366 typedef FLAGGED_BYTE_BLOB *UP_FLAGGED_BYTE_BLOB;
368 typedef struct _FLAGGED_WORD_BLOB {
369 unsigned long fFlags;
370 unsigned long clSize;
371 unsigned short asData[1];
372 } FLAGGED_WORD_BLOB;
374 typedef FLAGGED_WORD_BLOB *UP_FLAGGED_WORD_BLOB;
376 typedef struct _BYTE_SIZEDARR {
377 unsigned long clSize;
378 byte *pData;
379 } BYTE_SIZEDARR;
381 typedef struct _SHORT_SIZEDARR {
382 unsigned long clSize;
383 unsigned short *pData;
384 } WORD_SIZEDARR;
386 typedef struct _LONG_SIZEDARR {
387 unsigned long clSize;
388 unsigned long *pData;
389 } DWORD_SIZEDARR;
391 typedef struct _HYPER_SIZEDARR {
392 unsigned long clSize;
393 hyper *pData;
394 } HYPER_SIZEDARR;
396 #define WDT_INPROC_CALL (0x48746457)
398 #define WDT_REMOTE_CALL (0x52746457)
400 typedef struct _userCLIPFORMAT {
401 long fContext;
402 union {
403 DWORD dwValue;
404 LPWSTR pwszName;
405 } u;
406 } userCLIPFORMAT;
408 typedef userCLIPFORMAT *wireCLIPFORMAT;
410 typedef WORD CLIPFORMAT;
411 unsigned long __RPC_USER CLIPFORMAT_UserSize (unsigned long *, unsigned long, CLIPFORMAT *);
412 unsigned char * __RPC_USER CLIPFORMAT_UserMarshal (unsigned long *, unsigned char *, CLIPFORMAT *);
413 unsigned char * __RPC_USER CLIPFORMAT_UserUnmarshal(unsigned long *, unsigned char *, CLIPFORMAT *);
414 void __RPC_USER CLIPFORMAT_UserFree (unsigned long *, CLIPFORMAT *);
416 typedef struct tagRemHGLOBAL {
417 long fNullHGlobal;
418 unsigned long cbData;
419 byte data[1];
420 } RemHGLOBAL;
422 typedef struct _userHGLOBAL {
423 long fContext;
424 union {
425 long hInproc;
426 FLAGGED_BYTE_BLOB *hRemote;
427 long hGlobal;
428 } u;
429 } userHGLOBAL;
431 typedef userHGLOBAL *wireHGLOBAL;
433 typedef struct tagRemHMETAFILEPICT {
434 long mm;
435 long xExt;
436 long yExt;
437 unsigned long cbData;
438 byte data[1];
439 } RemHMETAFILEPICT;
441 typedef struct _userHMETAFILE {
442 long fContext;
443 union {
444 long hInproc;
445 BYTE_BLOB *hRemote;
446 long hGlobal;
447 } u;
448 } userHMETAFILE;
450 typedef userHMETAFILE *wireHMETAFILE;
452 typedef struct _remoteMETAFILEPICT {
453 long mm;
454 long xExt;
455 long yExt;
456 userHMETAFILE *hMF;
457 } remoteMETAFILEPICT;
459 typedef struct _userHMETAFILEPICT {
460 long fContext;
461 union {
462 long hInproc;
463 remoteMETAFILEPICT *hRemote;
464 long hGlobal;
465 } u;
466 } userHMETAFILEPICT;
468 typedef userHMETAFILEPICT *wireHMETAFILEPICT;
470 typedef struct tagRemHENHMETAFILE {
471 unsigned long cbData;
472 byte data[1];
473 } RemHENHMETAFILE;
475 typedef struct _userHENHMETAFILE {
476 long fContext;
477 union {
478 long hInproc;
479 BYTE_BLOB *hRemote;
480 long hGlobal;
481 } u;
482 } userHENHMETAFILE;
484 typedef userHENHMETAFILE *wireHENHMETAFILE;
486 typedef struct tagRemHBITMAP {
487 unsigned long cbData;
488 byte data[1];
489 } RemHBITMAP;
491 typedef struct _userBITMAP {
492 LONG bmType;
493 LONG bmWidth;
494 LONG bmHeight;
495 LONG bmWidthBytes;
496 WORD bmPlanes;
497 WORD bmBitsPixel;
498 ULONG cbSize;
499 byte pBuffer[1];
500 } userBITMAP;
502 typedef struct _userHBITMAP {
503 long fContext;
504 union {
505 long hInproc;
506 userBITMAP *hRemote;
507 long hGlobal;
508 } u;
509 } userHBITMAP;
511 typedef userHBITMAP *wireHBITMAP;
513 typedef struct tagRemHPALETTE {
514 unsigned long cbData;
515 byte data[1];
516 } RemHPALETTE;
518 typedef struct tagrpcLOGPALETTE {
519 WORD palVersion;
520 WORD palNumEntries;
521 PALETTEENTRY palPalEntry[1];
522 } rpcLOGPALETTE;
524 typedef struct _userHPALETTE {
525 long fContext;
526 union {
527 long hInproc;
528 rpcLOGPALETTE *hRemote;
529 long hGlobal;
530 } u;
531 } userHPALETTE;
533 typedef userHPALETTE *wireHPALETTE;
535 #if 0
536 typedef void *HGLOBAL;
537 unsigned long __RPC_USER HGLOBAL_UserSize (unsigned long *, unsigned long, HGLOBAL *);
538 unsigned char * __RPC_USER HGLOBAL_UserMarshal (unsigned long *, unsigned char *, HGLOBAL *);
539 unsigned char * __RPC_USER HGLOBAL_UserUnmarshal(unsigned long *, unsigned char *, HGLOBAL *);
540 void __RPC_USER HGLOBAL_UserFree (unsigned long *, HGLOBAL *);
542 typedef HGLOBAL HLOCAL;
544 typedef void *HBITMAP;
545 unsigned long __RPC_USER HBITMAP_UserSize (unsigned long *, unsigned long, HBITMAP *);
546 unsigned char * __RPC_USER HBITMAP_UserMarshal (unsigned long *, unsigned char *, HBITMAP *);
547 unsigned char * __RPC_USER HBITMAP_UserUnmarshal(unsigned long *, unsigned char *, HBITMAP *);
548 void __RPC_USER HBITMAP_UserFree (unsigned long *, HBITMAP *);
550 typedef void *HPALETTE;
551 unsigned long __RPC_USER HPALETTE_UserSize (unsigned long *, unsigned long, HPALETTE *);
552 unsigned char * __RPC_USER HPALETTE_UserMarshal (unsigned long *, unsigned char *, HPALETTE *);
553 unsigned char * __RPC_USER HPALETTE_UserUnmarshal(unsigned long *, unsigned char *, HPALETTE *);
554 void __RPC_USER HPALETTE_UserFree (unsigned long *, HPALETTE *);
556 typedef void *HENHMETAFILE;
557 unsigned long __RPC_USER HENHMETAFILE_UserSize (unsigned long *, unsigned long, HENHMETAFILE *);
558 unsigned char * __RPC_USER HENHMETAFILE_UserMarshal (unsigned long *, unsigned char *, HENHMETAFILE *);
559 unsigned char * __RPC_USER HENHMETAFILE_UserUnmarshal(unsigned long *, unsigned char *, HENHMETAFILE *);
560 void __RPC_USER HENHMETAFILE_UserFree (unsigned long *, HENHMETAFILE *);
562 typedef void *HMETAFILE;
563 unsigned long __RPC_USER HMETAFILE_UserSize (unsigned long *, unsigned long, HMETAFILE *);
564 unsigned char * __RPC_USER HMETAFILE_UserMarshal (unsigned long *, unsigned char *, HMETAFILE *);
565 unsigned char * __RPC_USER HMETAFILE_UserUnmarshal(unsigned long *, unsigned char *, HMETAFILE *);
566 void __RPC_USER HMETAFILE_UserFree (unsigned long *, HMETAFILE *);
568 #endif
569 typedef void *HMETAFILEPICT;
570 unsigned long __RPC_USER HMETAFILEPICT_UserSize (unsigned long *, unsigned long, HMETAFILEPICT *);
571 unsigned char * __RPC_USER HMETAFILEPICT_UserMarshal (unsigned long *, unsigned char *, HMETAFILEPICT *);
572 unsigned char * __RPC_USER HMETAFILEPICT_UserUnmarshal(unsigned long *, unsigned char *, HMETAFILEPICT *);
573 void __RPC_USER HMETAFILEPICT_UserFree (unsigned long *, HMETAFILEPICT *);
575 #if 0
576 typedef GUID *REFGUID;
578 typedef IID *REFIID;
580 typedef CLSID *REFCLSID;
582 typedef FMTID *REFFMTID;
584 #endif
585 typedef enum tagDVASPECT {
586 DVASPECT_CONTENT = 1,
587 DVASPECT_THUMBNAIL = 2,
588 DVASPECT_ICON = 4,
589 DVASPECT_DOCPRINT = 8
590 } DVASPECT;
592 typedef enum tagSTGC {
593 STGC_DEFAULT = 0,
594 STGC_OVERWRITE = 1,
595 STGC_ONLYIFCURRENT = 2,
596 STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4,
597 STGC_CONSOLIDATE = 8
598 } STGC;
600 typedef enum tagSTGMOVE {
601 STGMOVE_MOVE = 0,
602 STGMOVE_COPY = 1,
603 STGMOVE_SHALLOWCOPY = 2
604 } STGMOVE;
606 typedef enum tagSTATFLAG {
607 STATFLAG_DEFAULT = 0,
608 STATFLAG_NONAME = 1,
609 STATFLAG_NOOPEN = 2
610 } STATFLAG;
612 typedef double DATE;
614 #if 0
615 typedef struct tagCY {
616 LONGLONG int64;
617 } CY;
619 #else
620 typedef union tagCY {
621 struct {
622 #ifdef WORDS_BIGENDIAN
623 LONG Hi;
624 ULONG Lo;
625 #else
626 ULONG Lo;
627 LONG Hi;
628 #endif
629 } DUMMYSTRUCTNAME;
630 LONGLONG int64;
631 } CY;
632 #endif
633 typedef CY *LPCY;
635 #if 0
636 typedef struct tagDEC {
637 USHORT wReserved;
638 BYTE scale;
639 BYTE sign;
640 ULONG Hi32;
641 ULONGLONG Lo64;
642 } DECIMAL;
644 #else
645 typedef struct tagDEC {
646 USHORT wReserved;
647 union {
648 struct {
649 BYTE scale;
650 BYTE sign;
651 } DUMMYSTRUCTNAME;
652 USHORT signscale;
653 } DUMMYUNIONNAME;
654 ULONG Hi32;
655 union {
656 struct {
657 #ifdef WORDS_BIGENDIAN
658 ULONG Mid32;
659 ULONG Lo32;
660 #else
661 ULONG Lo32;
662 ULONG Mid32;
663 #endif
664 } DUMMYSTRUCTNAME1;
665 ULONGLONG Lo64;
666 } DUMMYUNIONNAME1;
667 } DECIMAL;
668 #endif
669 #define DECIMAL_NEG ((BYTE)0x80)
670 #define DECIMAL_SETZERO(d) do{ memset(((char*)(d)) + sizeof(USHORT), 0, sizeof(ULONG) * 3u + sizeof(USHORT)); }while (0)
671 typedef DECIMAL *LPDECIMAL;
673 typedef FLAGGED_WORD_BLOB *wireBSTR;
675 typedef OLECHAR *BSTR;
676 unsigned long __RPC_USER BSTR_UserSize (unsigned long *, unsigned long, BSTR *);
677 unsigned char * __RPC_USER BSTR_UserMarshal (unsigned long *, unsigned char *, BSTR *);
678 unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR *);
679 void __RPC_USER BSTR_UserFree (unsigned long *, BSTR *);
681 typedef BSTR *LPBSTR;
683 typedef short VARIANT_BOOL;
685 typedef VARIANT_BOOL _VARIANT_BOOL;
687 #define VARIANT_TRUE ((VARIANT_BOOL)0xFFFF)
688 #define VARIANT_FALSE ((VARIANT_BOOL)0x0000)
689 typedef struct tagBSTRBLOB {
690 ULONG cbSize;
691 BYTE *pData;
692 } BSTRBLOB, *LPBSTRBLOB;
694 typedef struct tagBLOB {
695 ULONG cbSize;
696 BYTE *pBlobData;
697 } BLOB, *LPBLOB;
699 typedef struct tagCLIPDATA {
700 ULONG cbSize;
701 long ulClipFmt;
702 BYTE *pClipData;
703 } CLIPDATA;
705 #define CBPCLIPDATA(cb) ((cb).cbSize - sizeof((cb).ulClipFmt))
706 typedef ULONG PROPID;
708 typedef unsigned short VARTYPE;
710 enum VARENUM {
711 VT_EMPTY = 0,
712 VT_NULL = 1,
713 VT_I2 = 2,
714 VT_I4 = 3,
715 VT_R4 = 4,
716 VT_R8 = 5,
717 VT_CY = 6,
718 VT_DATE = 7,
719 VT_BSTR = 8,
720 VT_DISPATCH = 9,
721 VT_ERROR = 10,
722 VT_BOOL = 11,
723 VT_VARIANT = 12,
724 VT_UNKNOWN = 13,
725 VT_DECIMAL = 14,
726 VT_I1 = 16,
727 VT_UI1 = 17,
728 VT_UI2 = 18,
729 VT_UI4 = 19,
730 VT_I8 = 20,
731 VT_UI8 = 21,
732 VT_INT = 22,
733 VT_UINT = 23,
734 VT_VOID = 24,
735 VT_HRESULT = 25,
736 VT_PTR = 26,
737 VT_SAFEARRAY = 27,
738 VT_CARRAY = 28,
739 VT_USERDEFINED = 29,
740 VT_LPSTR = 30,
741 VT_LPWSTR = 31,
742 VT_RECORD = 36,
743 VT_INT_PTR = 37,
744 VT_UINT_PTR = 38,
745 VT_FILETIME = 64,
746 VT_BLOB = 65,
747 VT_STREAM = 66,
748 VT_STORAGE = 67,
749 VT_STREAMED_OBJECT = 68,
750 VT_STORED_OBJECT = 69,
751 VT_BLOB_OBJECT = 70,
752 VT_CF = 71,
753 VT_CLSID = 72,
754 VT_BSTR_BLOB = 0xfff,
755 VT_VECTOR = 0x1000,
756 VT_ARRAY = 0x2000,
757 VT_BYREF = 0x4000,
758 VT_RESERVED = 0x8000,
759 VT_ILLEGAL = 0xffff,
760 VT_ILLEGALMASKED = 0xfff,
761 VT_TYPEMASK = 0xfff
764 #ifdef __cplusplus
766 #endif
767 #endif /* __WIDL_WTYPES_H */