Fixed DECIMAL_SETZERO
[wine.git] / include / wtypes.h
blob31c2102361752e53c249323d943b763602ca198a
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 double DOUBLE;
39 typedef void *PVOID, *LPVOID;
41 typedef char CHAR;
43 typedef CHAR *LPSTR;
45 typedef const CHAR *LPCSTR;
47 typedef wchar_t WCHAR;
49 typedef WCHAR *LPWSTR;
51 typedef const WCHAR *LPCWSTR;
53 typedef boolean BOOLEAN;
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 LONG_PTR LRESULT;
79 typedef double DATE;
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 tagSIZE {
133 LONG cx;
134 LONG cy;
135 } SIZE, *PSIZE, *LPSIZE;
137 typedef SIZE SIZEL, *PSIZEL, *LPSIZEL;
139 typedef struct tagPOINT {
140 LONG x;
141 LONG y;
142 } POINT, *PPOINT, *LPPOINT;
144 typedef struct _POINTL {
145 LONG x;
146 LONG y;
147 } POINTL;
149 typedef struct tagRECT {
150 LONG left;
151 LONG top;
152 LONG right;
153 LONG bottom;
154 } RECT, *PRECT, *LPRECT;
156 typedef const RECT *LPCRECT;
158 typedef struct _RECTL {
159 LONG left;
160 LONG top;
161 LONG right;
162 LONG bottom;
163 } RECTL, *PRECTL, *LPRECTL;
165 typedef const RECTL *LPCRECTL;
167 typedef UINT_PTR WPARAM;
169 typedef LONG_PTR LPARAM;
171 typedef struct tagMSG {
172 HWND hwnd;
173 UINT message;
174 WPARAM wParam;
175 LPARAM lParam;
176 DWORD time;
177 POINT pt;
178 } MSG, *PMSG, *NPMSG, *LPMSG;
180 #endif /* winnt.h */
181 #ifndef _PALETTEENTRY_DEFINED
182 #define _PALETTEENTRY_DEFINED
183 typedef struct tagPALETTEENTRY {
184 BYTE peRed;
185 BYTE peGreen;
186 BYTE peBlue;
187 BYTE peFlags;
188 } PALETTEENTRY, *PPALETTEENTRY, *LPPALETTEENTRY;
190 #endif
191 #ifndef _LOGPALETTE_DEFINED
192 #define _LOGPALETTE_DEFINED
193 typedef struct tagLOGPALETTE {
194 WORD palVersion;
195 WORD palNumEntries;
196 PALETTEENTRY palPalEntry[1];
197 } LOGPALETTE, *PLOGPALETTE, *LPLOGPALETTE;
199 #endif
200 #ifndef _FILETIME_
201 #define _FILETIME_
202 typedef struct _FILETIME {
203 DWORD dwLowDateTime;
204 DWORD dwHighDateTime;
205 } FILETIME, *PFILETIME, *LPFILETIME;
207 #endif
208 #ifndef _TEXTMETRIC_DEFINED
209 #define _TEXTMETRIC_DEFINED
210 typedef struct {
211 LONG tmHeight;
212 LONG tmAscent;
213 LONG tmDescent;
214 LONG tmInternalLeading;
215 LONG tmExternalLeading;
216 LONG tmAveCharWidth;
217 LONG tmMaxCharWidth;
218 LONG tmWeight;
219 LONG tmOverhang;
220 LONG tmDigitizedAspectX;
221 LONG tmDigitizedAspectY;
222 BYTE tmFirstChar;
223 BYTE tmLastChar;
224 BYTE tmDefaultChar;
225 BYTE tmBreakChar;
226 BYTE tmItalic;
227 BYTE tmUnderlined;
228 BYTE tmStruckOut;
229 BYTE tmPitchAndFamily;
230 BYTE tmCharSet;
231 } TEXTMETRICA, *LPTEXTMETRICA, *PTEXTMETRICA;
233 typedef struct {
234 LONG tmHeight;
235 LONG tmAscent;
236 LONG tmDescent;
237 LONG tmInternalLeading;
238 LONG tmExternalLeading;
239 LONG tmAveCharWidth;
240 LONG tmMaxCharWidth;
241 LONG tmWeight;
242 LONG tmOverhang;
243 LONG tmDigitizedAspectX;
244 LONG tmDigitizedAspectY;
245 WCHAR tmFirstChar;
246 WCHAR tmLastChar;
247 WCHAR tmDefaultChar;
248 WCHAR tmBreakChar;
249 BYTE tmItalic;
250 BYTE tmUnderlined;
251 BYTE tmStruckOut;
252 BYTE tmPitchAndFamily;
253 BYTE tmCharSet;
254 } TEXTMETRICW, *LPTEXTMETRICW, *PTEXTMETRICW;
256 #endif
257 typedef WCHAR OLECHAR;
259 typedef OLECHAR *LPOLESTR;
261 typedef const OLECHAR *LPCOLESTR;
263 #ifndef __WINESRC__
264 #define OLESTR(str) WINE_UNICODE_TEXT(str)
265 #endif
266 typedef CHAR OLECHAR16;
268 typedef LPSTR LPOLESTR16;
270 typedef LPCSTR LPCOLESTR16;
272 typedef OLECHAR16 *BSTR16;
273 typedef BSTR16 *LPBSTR16;
274 #define OLESTR16(x) x
275 typedef LONG SCODE;
277 typedef struct _COAUTHIDENTITY {
278 USHORT *User;
279 ULONG UserLength;
280 USHORT *Domain;
281 ULONG DomainLength;
282 USHORT *Password;
283 ULONG PasswordLength;
284 ULONG Flags;
285 } COAUTHIDENTITY;
287 typedef struct _COAUTHINFO {
288 DWORD dwAuthnSvc;
289 DWORD dwAuthzSvc;
290 LPWSTR pwszServerPrincName;
291 DWORD dwAuthnLevel;
292 DWORD dwImpersonationLevel;
293 COAUTHIDENTITY *pAuthIdentityData;
294 DWORD dwCapabilities;
295 } COAUTHINFO;
297 typedef struct _COSERVERINFO {
298 DWORD dwReserved1;
299 LPWSTR pwszName;
300 COAUTHINFO *pAuthInfo;
301 DWORD dwReserved2;
302 } COSERVERINFO;
304 typedef enum tagMEMCTX {
305 MEMCTX_TASK = 1,
306 MEMCTX_SHARED = 2,
307 MEMCTX_MACSYSTEM = 3,
308 MEMCTX_UNKNOWN = -1,
309 MEMCTX_SAME = -2
310 } MEMCTX;
312 #ifndef _ROTFLAGS_DEFINED
313 #define _ROTFLAGS_DEFINED
314 #define ROTFLAGS_REGISTRATIONKEEPSALIVE 0x1
315 #define ROTFLAGS_ALLOWANYCLIENT 0x2
316 #endif
317 typedef enum tagCLSCTX {
318 CLSCTX_INPROC_SERVER = 0x1,
319 CLSCTX_INPROC_HANDLER = 0x2,
320 CLSCTX_LOCAL_SERVER = 0x4,
321 CLSCTX_INPROC_SERVER16 = 0x8,
322 CLSCTX_REMOTE_SERVER = 0x10,
323 CLSCTX_INPROC_HANDLER16 = 0x20,
324 CLSCTX_INPROC_SERVERX86 = 0x40,
325 CLSCTX_INPROC_HANDLERX86 = 0x80,
326 CLSCTX_ESERVER_HANDLER = 0x100,
327 CLSCTX_NO_CODE_DOWNLOAD = 0x400,
328 CLSCTX_NO_CUSTOM_MARSHAL = 0x1000,
329 CLSCTX_ENABLE_CODE_DOWNLOAD = 0x2000,
330 CLSCTX_NO_FAILURE_LOG = 0x4000,
331 CLSCTX_DISABLE_AAA = 0x8000,
332 CLSCTX_ENABLE_AAA = 0x10000,
333 CLSCTX_FROM_DEFAULT_CONTEXT = 0x20000
334 } CLSCTX;
336 #define CLSCTX_INPROC (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER)
337 #define CLSCTX_ALL (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
338 #define CLSCTX_SERVER (CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
339 typedef enum tagMSHLFLAGS {
340 MSHLFLAGS_NORMAL = 0,
341 MSHLFLAGS_TABLESTRONG = 1,
342 MSHLFLAGS_TABLEWEAK = 2,
343 MSHLFLAGS_NOPING = 4
344 } MSHLFLAGS;
346 typedef enum tagMSHCTX {
347 MSHCTX_LOCAL = 0,
348 MSHCTX_NOSHAREDMEM = 1,
349 MSHCTX_DIFFERENTMACHINE = 2,
350 MSHCTX_INPROC = 3,
351 MSHCTX_CROSSCTX = 4
352 } MSHCTX;
354 typedef struct _BYTE_BLOB {
355 unsigned long clSize;
356 byte abData[1];
357 } BYTE_BLOB;
359 typedef BYTE_BLOB *UP_BYTE_BLOB;
361 typedef struct _FLAGGED_BYTE_BLOB {
362 unsigned long fFlags;
363 unsigned long clSize;
364 byte abData[1];
365 } FLAGGED_BYTE_BLOB;
367 typedef FLAGGED_BYTE_BLOB *UP_FLAGGED_BYTE_BLOB;
369 typedef struct _FLAGGED_WORD_BLOB {
370 unsigned long fFlags;
371 unsigned long clSize;
372 unsigned short asData[1];
373 } FLAGGED_WORD_BLOB;
375 typedef FLAGGED_WORD_BLOB *UP_FLAGGED_WORD_BLOB;
377 typedef struct _BYTE_SIZEDARR {
378 unsigned long clSize;
379 byte *pData;
380 } BYTE_SIZEDARR;
382 typedef struct _SHORT_SIZEDARR {
383 unsigned long clSize;
384 unsigned short *pData;
385 } WORD_SIZEDARR;
387 typedef struct _LONG_SIZEDARR {
388 unsigned long clSize;
389 unsigned long *pData;
390 } DWORD_SIZEDARR;
392 typedef struct _HYPER_SIZEDARR {
393 unsigned long clSize;
394 hyper *pData;
395 } HYPER_SIZEDARR;
397 #define WDT_INPROC_CALL (0x48746457)
399 #define WDT_REMOTE_CALL (0x52746457)
401 typedef struct _userCLIPFORMAT {
402 long fContext;
403 union {
404 DWORD dwValue;
405 LPWSTR pwszName;
406 } u;
407 } userCLIPFORMAT;
409 typedef userCLIPFORMAT *wireCLIPFORMAT;
411 typedef WORD CLIPFORMAT;
412 unsigned long __RPC_USER CLIPFORMAT_UserSize (unsigned long *, unsigned long, CLIPFORMAT *);
413 unsigned char * __RPC_USER CLIPFORMAT_UserMarshal (unsigned long *, unsigned char *, CLIPFORMAT *);
414 unsigned char * __RPC_USER CLIPFORMAT_UserUnmarshal(unsigned long *, unsigned char *, CLIPFORMAT *);
415 void __RPC_USER CLIPFORMAT_UserFree (unsigned long *, CLIPFORMAT *);
417 typedef struct tagRemHGLOBAL {
418 long fNullHGlobal;
419 unsigned long cbData;
420 byte data[1];
421 } RemHGLOBAL;
423 typedef struct _userHGLOBAL {
424 long fContext;
425 union {
426 long hInproc;
427 FLAGGED_BYTE_BLOB *hRemote;
428 long hGlobal;
429 } u;
430 } userHGLOBAL;
432 typedef userHGLOBAL *wireHGLOBAL;
434 typedef struct tagRemHMETAFILEPICT {
435 long mm;
436 long xExt;
437 long yExt;
438 unsigned long cbData;
439 byte data[1];
440 } RemHMETAFILEPICT;
442 typedef struct _userHMETAFILE {
443 long fContext;
444 union {
445 long hInproc;
446 BYTE_BLOB *hRemote;
447 long hGlobal;
448 } u;
449 } userHMETAFILE;
451 typedef userHMETAFILE *wireHMETAFILE;
453 typedef struct _remoteMETAFILEPICT {
454 long mm;
455 long xExt;
456 long yExt;
457 userHMETAFILE *hMF;
458 } remoteMETAFILEPICT;
460 typedef struct _userHMETAFILEPICT {
461 long fContext;
462 union {
463 long hInproc;
464 remoteMETAFILEPICT *hRemote;
465 long hGlobal;
466 } u;
467 } userHMETAFILEPICT;
469 typedef userHMETAFILEPICT *wireHMETAFILEPICT;
471 typedef struct tagRemHENHMETAFILE {
472 unsigned long cbData;
473 byte data[1];
474 } RemHENHMETAFILE;
476 typedef struct _userHENHMETAFILE {
477 long fContext;
478 union {
479 long hInproc;
480 BYTE_BLOB *hRemote;
481 long hGlobal;
482 } u;
483 } userHENHMETAFILE;
485 typedef userHENHMETAFILE *wireHENHMETAFILE;
487 typedef struct tagRemHBITMAP {
488 unsigned long cbData;
489 byte data[1];
490 } RemHBITMAP;
492 typedef struct _userBITMAP {
493 LONG bmType;
494 LONG bmWidth;
495 LONG bmHeight;
496 LONG bmWidthBytes;
497 WORD bmPlanes;
498 WORD bmBitsPixel;
499 ULONG cbSize;
500 byte pBuffer[1];
501 } userBITMAP;
503 typedef struct _userHBITMAP {
504 long fContext;
505 union {
506 long hInproc;
507 userBITMAP *hRemote;
508 long hGlobal;
509 } u;
510 } userHBITMAP;
512 typedef userHBITMAP *wireHBITMAP;
514 typedef struct tagRemHPALETTE {
515 unsigned long cbData;
516 byte data[1];
517 } RemHPALETTE;
519 typedef struct tagrpcLOGPALETTE {
520 WORD palVersion;
521 WORD palNumEntries;
522 PALETTEENTRY palPalEntry[1];
523 } rpcLOGPALETTE;
525 typedef struct _userHPALETTE {
526 long fContext;
527 union {
528 long hInproc;
529 rpcLOGPALETTE *hRemote;
530 long hGlobal;
531 } u;
532 } userHPALETTE;
534 typedef userHPALETTE *wireHPALETTE;
536 #if 0
537 typedef void *HGLOBAL;
538 unsigned long __RPC_USER HGLOBAL_UserSize (unsigned long *, unsigned long, HGLOBAL *);
539 unsigned char * __RPC_USER HGLOBAL_UserMarshal (unsigned long *, unsigned char *, HGLOBAL *);
540 unsigned char * __RPC_USER HGLOBAL_UserUnmarshal(unsigned long *, unsigned char *, HGLOBAL *);
541 void __RPC_USER HGLOBAL_UserFree (unsigned long *, HGLOBAL *);
543 typedef HGLOBAL HLOCAL;
545 typedef void *HBITMAP;
546 unsigned long __RPC_USER HBITMAP_UserSize (unsigned long *, unsigned long, HBITMAP *);
547 unsigned char * __RPC_USER HBITMAP_UserMarshal (unsigned long *, unsigned char *, HBITMAP *);
548 unsigned char * __RPC_USER HBITMAP_UserUnmarshal(unsigned long *, unsigned char *, HBITMAP *);
549 void __RPC_USER HBITMAP_UserFree (unsigned long *, HBITMAP *);
551 typedef void *HPALETTE;
552 unsigned long __RPC_USER HPALETTE_UserSize (unsigned long *, unsigned long, HPALETTE *);
553 unsigned char * __RPC_USER HPALETTE_UserMarshal (unsigned long *, unsigned char *, HPALETTE *);
554 unsigned char * __RPC_USER HPALETTE_UserUnmarshal(unsigned long *, unsigned char *, HPALETTE *);
555 void __RPC_USER HPALETTE_UserFree (unsigned long *, HPALETTE *);
557 typedef void *HENHMETAFILE;
558 unsigned long __RPC_USER HENHMETAFILE_UserSize (unsigned long *, unsigned long, HENHMETAFILE *);
559 unsigned char * __RPC_USER HENHMETAFILE_UserMarshal (unsigned long *, unsigned char *, HENHMETAFILE *);
560 unsigned char * __RPC_USER HENHMETAFILE_UserUnmarshal(unsigned long *, unsigned char *, HENHMETAFILE *);
561 void __RPC_USER HENHMETAFILE_UserFree (unsigned long *, HENHMETAFILE *);
563 typedef void *HMETAFILE;
564 unsigned long __RPC_USER HMETAFILE_UserSize (unsigned long *, unsigned long, HMETAFILE *);
565 unsigned char * __RPC_USER HMETAFILE_UserMarshal (unsigned long *, unsigned char *, HMETAFILE *);
566 unsigned char * __RPC_USER HMETAFILE_UserUnmarshal(unsigned long *, unsigned char *, HMETAFILE *);
567 void __RPC_USER HMETAFILE_UserFree (unsigned long *, HMETAFILE *);
569 #endif
570 typedef void *HMETAFILEPICT;
571 unsigned long __RPC_USER HMETAFILEPICT_UserSize (unsigned long *, unsigned long, HMETAFILEPICT *);
572 unsigned char * __RPC_USER HMETAFILEPICT_UserMarshal (unsigned long *, unsigned char *, HMETAFILEPICT *);
573 unsigned char * __RPC_USER HMETAFILEPICT_UserUnmarshal(unsigned long *, unsigned char *, HMETAFILEPICT *);
574 void __RPC_USER HMETAFILEPICT_UserFree (unsigned long *, HMETAFILEPICT *);
576 #if 0
577 typedef GUID *REFGUID;
579 typedef IID *REFIID;
581 typedef CLSID *REFCLSID;
583 typedef FMTID *REFFMTID;
585 #endif
586 typedef enum tagDVASPECT {
587 DVASPECT_CONTENT = 1,
588 DVASPECT_THUMBNAIL = 2,
589 DVASPECT_ICON = 4,
590 DVASPECT_DOCPRINT = 8
591 } DVASPECT;
593 typedef enum tagSTGC {
594 STGC_DEFAULT = 0,
595 STGC_OVERWRITE = 1,
596 STGC_ONLYIFCURRENT = 2,
597 STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4,
598 STGC_CONSOLIDATE = 8
599 } STGC;
601 typedef enum tagSTGMOVE {
602 STGMOVE_MOVE = 0,
603 STGMOVE_COPY = 1,
604 STGMOVE_SHALLOWCOPY = 2
605 } STGMOVE;
607 typedef enum tagSTATFLAG {
608 STATFLAG_DEFAULT = 0,
609 STATFLAG_NONAME = 1,
610 STATFLAG_NOOPEN = 2
611 } STATFLAG;
613 #if 0
614 typedef struct tagCY {
615 LONGLONG int64;
616 } CY;
618 #else
619 typedef union tagCY {
620 struct {
621 #ifdef WORDS_BIGENDIAN
622 LONG Hi;
623 ULONG Lo;
624 #else
625 ULONG Lo;
626 LONG Hi;
627 #endif
628 } DUMMYSTRUCTNAME;
629 LONGLONG int64;
630 } CY;
631 #endif
632 typedef CY *LPCY;
634 #if 0
635 typedef struct tagDEC {
636 USHORT wReserved;
637 BYTE scale;
638 BYTE sign;
639 ULONG Hi32;
640 ULONGLONG Lo64;
641 } DECIMAL;
643 #else
644 typedef struct tagDEC {
645 USHORT wReserved;
646 union {
647 struct {
648 BYTE scale;
649 BYTE sign;
650 } DUMMYSTRUCTNAME;
651 USHORT signscale;
652 } DUMMYUNIONNAME;
653 ULONG Hi32;
654 union {
655 struct {
656 #ifdef WORDS_BIGENDIAN
657 ULONG Mid32;
658 ULONG Lo32;
659 #else
660 ULONG Lo32;
661 ULONG Mid32;
662 #endif
663 } DUMMYSTRUCTNAME1;
664 ULONGLONG Lo64;
665 } DUMMYUNIONNAME1;
666 } DECIMAL;
667 #endif
668 #define DECIMAL_NEG ((BYTE)0x80)
669 #define DECIMAL_SETZERO(d) do{ memset(((char*)(d)) + sizeof(USHORT), 0, sizeof(ULONG) * 3u + sizeof(USHORT)); }while (0)
670 typedef DECIMAL *LPDECIMAL;
672 typedef FLAGGED_WORD_BLOB *wireBSTR;
674 typedef OLECHAR *BSTR;
675 unsigned long __RPC_USER BSTR_UserSize (unsigned long *, unsigned long, BSTR *);
676 unsigned char * __RPC_USER BSTR_UserMarshal (unsigned long *, unsigned char *, BSTR *);
677 unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR *);
678 void __RPC_USER BSTR_UserFree (unsigned long *, BSTR *);
680 typedef BSTR *LPBSTR;
682 typedef short VARIANT_BOOL;
684 typedef VARIANT_BOOL _VARIANT_BOOL;
686 #define VARIANT_TRUE ((VARIANT_BOOL)0xFFFF)
687 #define VARIANT_FALSE ((VARIANT_BOOL)0x0000)
688 typedef struct tagBSTRBLOB {
689 ULONG cbSize;
690 BYTE *pData;
691 } BSTRBLOB, *LPBSTRBLOB;
693 typedef struct tagBLOB {
694 ULONG cbSize;
695 BYTE *pBlobData;
696 } BLOB, *LPBLOB;
698 typedef struct tagCLIPDATA {
699 ULONG cbSize;
700 long ulClipFmt;
701 BYTE *pClipData;
702 } CLIPDATA;
704 #define CBPCLIPDATA(cb) ((cb).cbSize - sizeof((cb).ulClipFmt))
705 typedef ULONG PROPID;
707 typedef unsigned short VARTYPE;
709 enum VARENUM {
710 VT_EMPTY = 0,
711 VT_NULL = 1,
712 VT_I2 = 2,
713 VT_I4 = 3,
714 VT_R4 = 4,
715 VT_R8 = 5,
716 VT_CY = 6,
717 VT_DATE = 7,
718 VT_BSTR = 8,
719 VT_DISPATCH = 9,
720 VT_ERROR = 10,
721 VT_BOOL = 11,
722 VT_VARIANT = 12,
723 VT_UNKNOWN = 13,
724 VT_DECIMAL = 14,
725 VT_I1 = 16,
726 VT_UI1 = 17,
727 VT_UI2 = 18,
728 VT_UI4 = 19,
729 VT_I8 = 20,
730 VT_UI8 = 21,
731 VT_INT = 22,
732 VT_UINT = 23,
733 VT_VOID = 24,
734 VT_HRESULT = 25,
735 VT_PTR = 26,
736 VT_SAFEARRAY = 27,
737 VT_CARRAY = 28,
738 VT_USERDEFINED = 29,
739 VT_LPSTR = 30,
740 VT_LPWSTR = 31,
741 VT_RECORD = 36,
742 VT_INT_PTR = 37,
743 VT_UINT_PTR = 38,
744 VT_FILETIME = 64,
745 VT_BLOB = 65,
746 VT_STREAM = 66,
747 VT_STORAGE = 67,
748 VT_STREAMED_OBJECT = 68,
749 VT_STORED_OBJECT = 69,
750 VT_BLOB_OBJECT = 70,
751 VT_CF = 71,
752 VT_CLSID = 72,
753 VT_BSTR_BLOB = 0xfff,
754 VT_VECTOR = 0x1000,
755 VT_ARRAY = 0x2000,
756 VT_BYREF = 0x4000,
757 VT_RESERVED = 0x8000,
758 VT_ILLEGAL = 0xffff,
759 VT_ILLEGALMASKED = 0xfff,
760 VT_TYPEMASK = 0xfff
763 #ifdef __cplusplus
765 #endif
766 #endif /* __WIDL_WTYPES_H */