Fix the case of product and company names.
[wine] / include / wtypes.h
1 /*** Autogenerated by WIDL 0.1 from wtypes.idl - Do not edit ***/
2 #include <rpc.h>
3 #include <rpcndr.h>
4
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;
14
15 typedef unsigned short WORD;
16
17 typedef unsigned long DWORD;
18
19 typedef long BOOL;
20
21 typedef unsigned char UCHAR;
22
23 typedef int INT;
24
25 typedef unsigned int UINT;
26
27 typedef short SHORT;
28
29 typedef unsigned short USHORT;
30
31 typedef long LONG;
32
33 typedef unsigned long ULONG;
34
35 typedef float FLOAT;
36
37 typedef double DOUBLE;
38
39 typedef void *PVOID, *LPVOID;
40
41 typedef char CHAR;
42
43 typedef CHAR *LPSTR;
44
45 typedef const CHAR *LPCSTR;
46
47 typedef wchar_t WCHAR;
48
49 typedef WCHAR *LPWSTR;
50
51 typedef const WCHAR *LPCWSTR;
52
53 typedef boolean BOOLEAN;
54
55 typedef DWORD COLORREF;
56
57 typedef void *HANDLE;
58
59 typedef void *HACCEL;
60
61 typedef void *HDC;
62
63 typedef void *HFONT;
64
65 typedef void *HWND;
66
67 typedef void *HMENU;
68
69 typedef void *HMODULE;
70
71 typedef void *HINSTANCE;
72
73 typedef void *HRGN;
74
75 typedef void *HTASK;
76
77 typedef void *HKEY;
78
79 typedef LONG_PTR LRESULT;
80
81 typedef double DATE;
82
83 typedef LONG HRESULT;
84
85 typedef DWORD LCID;
86
87 typedef unsigned __int64 DWORDLONG;
88
89 typedef __int64 LONGLONG;
90
91 typedef unsigned __int64 ULONGLONG;
92
93 typedef struct _LARGE_INTEGER {
94     LONGLONG QuadPart;
95 } LARGE_INTEGER;
96
97 typedef struct _ULARGE_INTEGER {
98     ULONGLONG QuadPart;
99 } ULARGE_INTEGER;
100
101 typedef struct _SID_IDENTIFIER_AUTHORITY {
102     UCHAR Value[6];
103 } SID_IDENTIFIER_AUTHORITY, *PSID_IDENTIFIER_AUTHORITY;
104
105 typedef struct _SID {
106     UCHAR Revision;
107     UCHAR SubAuthorityCount;
108     SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
109     ULONG SubAuthority[1];
110 } SID, *PSID;
111
112 typedef USHORT SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;
113
114 typedef struct _ACL {
115     UCHAR AclRevision;
116     UCHAR Sbz1;
117     USHORT AclSize;
118     USHORT AceCount;
119     USHORT Sbz2;
120 } ACL;
121
122 typedef ACL *PACL;
123
124 typedef struct _SECURITY_DESCRIPTOR {
125     UCHAR Revision;
126     UCHAR Sbz1;
127     SECURITY_DESCRIPTOR_CONTROL Control;
128     PSID Owner;
129     PSID Group;
130     PACL Sacl;
131     PACL Dacl;
132 } SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR;
133
134 typedef struct _SECURITY_ATTRIBUTES {
135     DWORD nLength;
136     LPVOID lpSecurityDescriptor;
137     BOOL bInheritHandle;
138 } SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
139
140 typedef struct tagSIZE {
141     LONG cx;
142     LONG cy;
143 } SIZE, *PSIZE, *LPSIZE;
144
145 typedef SIZE SIZEL, *PSIZEL, *LPSIZEL;
146
147 typedef struct tagPOINT {
148     LONG x;
149     LONG y;
150 } POINT, *PPOINT, *LPPOINT;
151
152 typedef struct _POINTL {
153     LONG x;
154     LONG y;
155 } POINTL;
156
157 typedef struct tagRECT {
158     LONG left;
159     LONG top;
160     LONG right;
161     LONG bottom;
162 } RECT, *PRECT, *LPRECT;
163
164 typedef const RECT *LPCRECT;
165
166 typedef struct _RECTL {
167     LONG left;
168     LONG top;
169     LONG right;
170     LONG bottom;
171 } RECTL, *PRECTL, *LPRECTL;
172
173 typedef const RECTL *LPCRECTL;
174
175 typedef UINT_PTR WPARAM;
176
177 typedef LONG_PTR LPARAM;
178
179 typedef struct tagMSG {
180     HWND hwnd;
181     UINT message;
182     WPARAM wParam;
183     LPARAM lParam;
184     DWORD time;
185     POINT pt;
186 } MSG, *PMSG, *NPMSG, *LPMSG;
187
188 #endif /* winnt.h */
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;
197
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;
206
207 #endif
208 #ifndef _FILETIME_
209 #define _FILETIME_
210 typedef struct _FILETIME {
211     DWORD dwLowDateTime;
212     DWORD dwHighDateTime;
213 } FILETIME, *PFILETIME, *LPFILETIME;
214
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;
240
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;
263
264 #endif
265 typedef WCHAR OLECHAR;
266
267 typedef OLECHAR *LPOLESTR;
268
269 typedef const OLECHAR *LPCOLESTR;
270
271 #ifndef __WINESRC__
272 #define OLESTR(str) L##str
273 #endif
274 typedef CHAR OLECHAR16;
275
276 typedef LPSTR LPOLESTR16;
277
278 typedef LPCSTR LPCOLESTR16;
279
280 typedef OLECHAR16 *BSTR16;
281 typedef BSTR16 *LPBSTR16;
282 #define OLESTR16(x) x
283 typedef LONG SCODE;
284
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;
294
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;
304
305 typedef struct _COSERVERINFO {
306     DWORD dwReserved1;
307     LPWSTR pwszName;
308     COAUTHINFO *pAuthInfo;
309     DWORD dwReserved2;
310 } COSERVERINFO;
311
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;
319
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;
343
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;
353
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;
361
362 typedef struct _BYTE_BLOB {
363     unsigned long clSize;
364     byte abData[1];
365 } BYTE_BLOB;
366
367 typedef BYTE_BLOB *UP_BYTE_BLOB;
368
369 typedef struct _FLAGGED_BYTE_BLOB {
370     unsigned long fFlags;
371     unsigned long clSize;
372     byte abData[1];
373 } FLAGGED_BYTE_BLOB;
374
375 typedef FLAGGED_BYTE_BLOB *UP_FLAGGED_BYTE_BLOB;
376
377 typedef struct _FLAGGED_WORD_BLOB {
378     unsigned long fFlags;
379     unsigned long clSize;
380     unsigned short asData[1];
381 } FLAGGED_WORD_BLOB;
382
383 typedef FLAGGED_WORD_BLOB *UP_FLAGGED_WORD_BLOB;
384
385 typedef struct _BYTE_SIZEDARR {
386     unsigned long clSize;
387     byte *pData;
388 } BYTE_SIZEDARR;
389
390 typedef struct _SHORT_SIZEDARR {
391     unsigned long clSize;
392     unsigned short *pData;
393 } WORD_SIZEDARR;
394
395 typedef struct _LONG_SIZEDARR {
396     unsigned long clSize;
397     unsigned long *pData;
398 } DWORD_SIZEDARR;
399
400 typedef struct _HYPER_SIZEDARR {
401     unsigned long clSize;
402     hyper *pData;
403 } HYPER_SIZEDARR;
404
405 #define WDT_INPROC_CALL (0x48746457)
406
407 #define WDT_REMOTE_CALL (0x52746457)
408
409 typedef struct _userCLIPFORMAT {
410     long fContext;
411     union {
412         DWORD dwValue;
413         LPWSTR pwszName;
414     } u;
415 } userCLIPFORMAT;
416
417 typedef userCLIPFORMAT *wireCLIPFORMAT;
418
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 *);
424
425 typedef struct tagRemHGLOBAL {
426     long fNullHGlobal;
427     unsigned long cbData;
428     byte data[1];
429 } RemHGLOBAL;
430
431 typedef struct _userHGLOBAL {
432     long fContext;
433     union {
434         long hInproc;
435         FLAGGED_BYTE_BLOB *hRemote;
436         long hGlobal;
437     } u;
438 } userHGLOBAL;
439
440 typedef userHGLOBAL *wireHGLOBAL;
441
442 typedef struct tagRemHMETAFILEPICT {
443     long mm;
444     long xExt;
445     long yExt;
446     unsigned long cbData;
447     byte data[1];
448 } RemHMETAFILEPICT;
449
450 typedef struct _userHMETAFILE {
451     long fContext;
452     union {
453         long hInproc;
454         BYTE_BLOB *hRemote;
455         long hGlobal;
456     } u;
457 } userHMETAFILE;
458
459 typedef userHMETAFILE *wireHMETAFILE;
460
461 typedef struct _remoteMETAFILEPICT {
462     long mm;
463     long xExt;
464     long yExt;
465     userHMETAFILE *hMF;
466 } remoteMETAFILEPICT;
467
468 typedef struct _userHMETAFILEPICT {
469     long fContext;
470     union {
471         long hInproc;
472         remoteMETAFILEPICT *hRemote;
473         long hGlobal;
474     } u;
475 } userHMETAFILEPICT;
476
477 typedef userHMETAFILEPICT *wireHMETAFILEPICT;
478
479 typedef struct tagRemHENHMETAFILE {
480     unsigned long cbData;
481     byte data[1];
482 } RemHENHMETAFILE;
483
484 typedef struct _userHENHMETAFILE {
485     long fContext;
486     union {
487         long hInproc;
488         BYTE_BLOB *hRemote;
489         long hGlobal;
490     } u;
491 } userHENHMETAFILE;
492
493 typedef userHENHMETAFILE *wireHENHMETAFILE;
494
495 typedef struct tagRemHBITMAP {
496     unsigned long cbData;
497     byte data[1];
498 } RemHBITMAP;
499
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;
510
511 typedef struct _userHBITMAP {
512     long fContext;
513     union {
514         long hInproc;
515         userBITMAP *hRemote;
516         long hGlobal;
517     } u;
518 } userHBITMAP;
519
520 typedef userHBITMAP *wireHBITMAP;
521
522 typedef struct tagRemHPALETTE {
523     unsigned long cbData;
524     byte data[1];
525 } RemHPALETTE;
526
527 typedef struct tagrpcLOGPALETTE {
528     WORD palVersion;
529     WORD palNumEntries;
530     PALETTEENTRY palPalEntry[1];
531 } rpcLOGPALETTE;
532
533 typedef struct _userHPALETTE {
534     long fContext;
535     union {
536         long hInproc;
537         rpcLOGPALETTE *hRemote;
538         long hGlobal;
539     } u;
540 } userHPALETTE;
541
542 typedef userHPALETTE *wireHPALETTE;
543
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 *);
550
551 typedef HGLOBAL HLOCAL;
552
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 *);
558
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 *);
564
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 *);
570
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 *);
576
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 *);
583
584 #if 0
585 typedef GUID *REFGUID;
586
587 typedef IID *REFIID;
588
589 typedef CLSID *REFCLSID;
590
591 typedef FMTID *REFFMTID;
592
593 #endif
594 typedef enum tagDVASPECT {
595     DVASPECT_CONTENT = 1,
596     DVASPECT_THUMBNAIL = 2,
597     DVASPECT_ICON = 4,
598     DVASPECT_DOCPRINT = 8
599 } DVASPECT;
600
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;
608
609 typedef enum tagSTGMOVE {
610     STGMOVE_MOVE = 0,
611     STGMOVE_COPY = 1,
612     STGMOVE_SHALLOWCOPY = 2
613 } STGMOVE;
614
615 typedef enum tagSTATFLAG {
616     STATFLAG_DEFAULT = 0,
617     STATFLAG_NONAME = 1,
618     STATFLAG_NOOPEN = 2
619 } STATFLAG;
620
621 #if 0
622 typedef struct tagCY {
623     LONGLONG int64;
624 } CY;
625
626 #else
627 typedef union tagCY {
628     struct {
629 #ifdef WORDS_BIGENDIAN
630         LONG  Hi;
631         ULONG Lo;
632 #else
633         ULONG Lo;
634         LONG  Hi;
635 #endif
636     } DUMMYSTRUCTNAME;
637     LONGLONG int64;
638 } CY;
639 #endif
640 typedef CY *LPCY;
641
642 #if 0
643 typedef struct tagDEC {
644     USHORT wReserved;
645     BYTE scale;
646     BYTE sign;
647     ULONG Hi32;
648     ULONGLONG Lo64;
649 } DECIMAL;
650
651 #else
652 typedef struct tagDEC {
653   USHORT wReserved;
654   union {
655     struct {
656       BYTE scale;
657       BYTE sign;
658     } DUMMYSTRUCTNAME;
659     USHORT signscale;
660   } DUMMYUNIONNAME;
661   ULONG Hi32;
662   union {
663     struct {
664 #ifdef WORDS_BIGENDIAN
665       ULONG Mid32;
666       ULONG Lo32;
667 #else
668       ULONG Lo32;
669       ULONG Mid32;
670 #endif
671     } DUMMYSTRUCTNAME1;
672     ULONGLONG Lo64;
673   } DUMMYUNIONNAME1;
674 } DECIMAL;
675 #endif
676 #define DECIMAL_NEG ((BYTE)0x80)
677 #define DECIMAL_SETZERO(d) do{ memset(((char*)(d)) + sizeof(USHORT), 0, sizeof(ULONG) * 3u + sizeof(USHORT)); }while (0)
678 typedef DECIMAL *LPDECIMAL;
679
680 typedef FLAGGED_WORD_BLOB *wireBSTR;
681
682 typedef OLECHAR *BSTR;
683 unsigned long   __RPC_USER BSTR_UserSize     (unsigned long *, unsigned long,   BSTR *);
684 unsigned char * __RPC_USER BSTR_UserMarshal  (unsigned long *, unsigned char *, BSTR *);
685 unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR *);
686 void            __RPC_USER BSTR_UserFree     (unsigned long *, BSTR *);
687
688 typedef BSTR *LPBSTR;
689
690 typedef short VARIANT_BOOL;
691
692 typedef VARIANT_BOOL _VARIANT_BOOL;
693
694 #define VARIANT_TRUE  ((VARIANT_BOOL)0xFFFF)
695 #define VARIANT_FALSE ((VARIANT_BOOL)0x0000)
696 typedef struct tagBSTRBLOB {
697     ULONG cbSize;
698     BYTE *pData;
699 } BSTRBLOB, *LPBSTRBLOB;
700
701 typedef struct tagBLOB {
702     ULONG cbSize;
703     BYTE *pBlobData;
704 } BLOB, *LPBLOB;
705
706 typedef struct tagCLIPDATA {
707     ULONG cbSize;
708     long ulClipFmt;
709     BYTE *pClipData;
710 } CLIPDATA;
711
712 #define CBPCLIPDATA(cb) ((cb).cbSize - sizeof((cb).ulClipFmt))
713 typedef ULONG PROPID;
714
715 typedef unsigned short VARTYPE;
716
717 enum VARENUM {
718     VT_EMPTY = 0,
719     VT_NULL = 1,
720     VT_I2 = 2,
721     VT_I4 = 3,
722     VT_R4 = 4,
723     VT_R8 = 5,
724     VT_CY = 6,
725     VT_DATE = 7,
726     VT_BSTR = 8,
727     VT_DISPATCH = 9,
728     VT_ERROR = 10,
729     VT_BOOL = 11,
730     VT_VARIANT = 12,
731     VT_UNKNOWN = 13,
732     VT_DECIMAL = 14,
733     VT_I1 = 16,
734     VT_UI1 = 17,
735     VT_UI2 = 18,
736     VT_UI4 = 19,
737     VT_I8 = 20,
738     VT_UI8 = 21,
739     VT_INT = 22,
740     VT_UINT = 23,
741     VT_VOID = 24,
742     VT_HRESULT = 25,
743     VT_PTR = 26,
744     VT_SAFEARRAY = 27,
745     VT_CARRAY = 28,
746     VT_USERDEFINED = 29,
747     VT_LPSTR = 30,
748     VT_LPWSTR = 31,
749     VT_RECORD = 36,
750     VT_INT_PTR = 37,
751     VT_UINT_PTR = 38,
752     VT_FILETIME = 64,
753     VT_BLOB = 65,
754     VT_STREAM = 66,
755     VT_STORAGE = 67,
756     VT_STREAMED_OBJECT = 68,
757     VT_STORED_OBJECT = 69,
758     VT_BLOB_OBJECT = 70,
759     VT_CF = 71,
760     VT_CLSID = 72,
761     VT_BSTR_BLOB = 0xfff,
762     VT_VECTOR = 0x1000,
763     VT_ARRAY = 0x2000,
764     VT_BYREF = 0x4000,
765     VT_RESERVED = 0x8000,
766     VT_ILLEGAL = 0xffff,
767     VT_ILLEGALMASKED = 0xfff,
768     VT_TYPEMASK = 0xfff
769 };
770
771 #ifdef __cplusplus
772 }
773 #endif
774 #endif /* __WIDL_WTYPES_H */