ReactOS 0.4.16-dev-1946-g52006dd
wtypes.idl
Go to the documentation of this file.
1/*
2 * Basic types used by COM interfaces
3 *
4 * Copyright 2002 Ove Kaaven
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 */
20
21import "basetsd.h";
22import "guiddef.h";
23
24[
25 uuid(D3980A60-910C-1068-9341-00DD010F2F1C),
26 version(0.1),
28]
29
30interface IWinTypes
31{
32
33/******************** BASIC WIN32 TYPES ********************/
34cpp_quote("#if 0 /* winnt.h */") /* don't redefine these */
35
36typedef byte BYTE;
37typedef unsigned short WORD;
38typedef unsigned long DWORD;
39typedef long BOOL;
40typedef unsigned char UCHAR;
41typedef int INT;
42typedef unsigned int UINT;
43typedef short SHORT;
44typedef unsigned short USHORT;
45typedef long LONG;
46typedef unsigned long ULONG;
47typedef float FLOAT;
48
49typedef void *PVOID, *LPVOID;
50
51typedef DWORD *LPDWORD;
52
53typedef char CHAR;
54typedef [string] CHAR *LPSTR;
55typedef [string] const CHAR *LPCSTR;
56
57typedef wchar_t WCHAR;
58typedef [string] WCHAR *LPWSTR;
59typedef [string] const WCHAR *LPCWSTR;
60
61typedef boolean BOOLEAN;
62
64
65typedef void *HANDLE;
66#define DECLARE_HANDLE(name) typedef void *name
67#define DECLARE_WIREM_HANDLE(name) typedef [wire_marshal(wire##name)] void*name
68
83
84typedef HANDLE HDWP;
85
87
88typedef LONG HRESULT;
89typedef DWORD LCID;
90typedef USHORT LANGID;
91
92typedef unsigned __int64 DWORDLONG;
94typedef unsigned __int64 ULONGLONG;
95
96typedef struct _LARGE_INTEGER {
99
100typedef struct _ULARGE_INTEGER {
103
107
108typedef struct _SID {
114
115typedef void *PSID;
116
118
119typedef struct _ACL {
126typedef ACL *PACL;
127
128typedef struct _SECURITY_DESCRIPTOR {
137
139{
144
145typedef struct tagSIZE
146{
151
152typedef struct tagPOINT
153{
157
158typedef struct _POINTL
159{
163
164typedef struct tagRECT
165{
171typedef const RECT *LPCRECT;
172
173typedef struct _RECTL
174{
180typedef const RECTL *LPCRECTL;
181
184
185cpp_quote("#endif /* winnt.h */")
186
187cpp_quote("#ifdef _MSC_VER") /* for IDL and MSVC only */
188typedef double DOUBLE;
189cpp_quote("#else")
190cpp_quote("typedef double DECLSPEC_ALIGN(8) DOUBLE;")
191cpp_quote("#endif")
192
193cpp_quote("#ifndef _PALETTEENTRY_DEFINED")
194cpp_quote("#define _PALETTEENTRY_DEFINED")
195typedef struct tagPALETTEENTRY {
196 BYTE peRed;
197 BYTE peGreen;
198 BYTE peBlue;
199 BYTE peFlags;
200} PALETTEENTRY, *PPALETTEENTRY, *LPPALETTEENTRY;
201cpp_quote("#endif")
202
203cpp_quote("#ifndef _LOGPALETTE_DEFINED")
204cpp_quote("#define _LOGPALETTE_DEFINED")
205typedef struct tagLOGPALETTE
206{
207 WORD palVersion;
208 WORD palNumEntries;
209 [size_is(palNumEntries)] PALETTEENTRY palPalEntry[*];
210} LOGPALETTE, *PLOGPALETTE, *LPLOGPALETTE;
211cpp_quote("#endif")
212
213cpp_quote("#ifndef _SYSTEMTIME_")
214cpp_quote("#define _SYSTEMTIME_")
215typedef struct _SYSTEMTIME{
216 WORD wYear;
217 WORD wMonth;
218 WORD wDayOfWeek;
219 WORD wDay;
220 WORD wHour;
221 WORD wMinute;
222 WORD wSecond;
223 WORD wMilliseconds;
224} SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;
225cpp_quote("#endif")
226
227cpp_quote("#ifndef _FILETIME_")
228cpp_quote("#define _FILETIME_")
229typedef struct _FILETIME {
230 DWORD dwLowDateTime;
231 DWORD dwHighDateTime;
232} FILETIME, *PFILETIME, *LPFILETIME;
233cpp_quote("#endif")
234
235cpp_quote("#ifndef _TEXTMETRIC_DEFINED")
236cpp_quote("#define _TEXTMETRIC_DEFINED")
237typedef struct tagTEXTMETRICA
238{
239 LONG tmHeight;
240 LONG tmAscent;
241 LONG tmDescent;
242 LONG tmInternalLeading;
243 LONG tmExternalLeading;
244 LONG tmAveCharWidth;
245 LONG tmMaxCharWidth;
246 LONG tmWeight;
247 LONG tmOverhang;
248 LONG tmDigitizedAspectX;
249 LONG tmDigitizedAspectY;
250 BYTE tmFirstChar;
251 BYTE tmLastChar;
252 BYTE tmDefaultChar;
253 BYTE tmBreakChar;
254 BYTE tmItalic;
255 BYTE tmUnderlined;
256 BYTE tmStruckOut;
257 BYTE tmPitchAndFamily;
258 BYTE tmCharSet;
259} TEXTMETRICA, *LPTEXTMETRICA, *PTEXTMETRICA;
260
261typedef struct tagTEXTMETRICW
262{
263 LONG tmHeight;
264 LONG tmAscent;
265 LONG tmDescent;
266 LONG tmInternalLeading;
267 LONG tmExternalLeading;
268 LONG tmAveCharWidth;
269 LONG tmMaxCharWidth;
270 LONG tmWeight;
271 LONG tmOverhang;
272 LONG tmDigitizedAspectX;
273 LONG tmDigitizedAspectY;
274 WCHAR tmFirstChar;
275 WCHAR tmLastChar;
276 WCHAR tmDefaultChar;
277 WCHAR tmBreakChar;
278 BYTE tmItalic;
279 BYTE tmUnderlined;
280 BYTE tmStruckOut;
281 BYTE tmPitchAndFamily;
282 BYTE tmCharSet;
283} TEXTMETRICW, *LPTEXTMETRICW, *PTEXTMETRICW;
284cpp_quote("#endif")
285
286/******************** BASIC COM/OLE TYPES ********************/
287
288typedef WCHAR OLECHAR;
289typedef [string] OLECHAR *LPOLESTR;
290typedef [string] const OLECHAR *LPCOLESTR;
291cpp_quote("#ifndef __WINESRC__")
292cpp_quote("# ifdef WINE_UNICODE_NATIVE")
293cpp_quote("# define OLESTR(str) L##str")
294cpp_quote("# else")
295cpp_quote("# define OLESTR(str) u##str")
296cpp_quote("# endif")
297cpp_quote("#endif")
298
299typedef LONG SCODE;
300
301typedef struct _COAUTHIDENTITY {
302 [size_is(UserLength+1)] USHORT *User;
303 ULONG UserLength;
304 [size_is(DomainLength+1)] USHORT *Domain;
305 ULONG DomainLength;
306 [size_is(PasswordLength+1)] USHORT *Password;
307 ULONG PasswordLength;
308 ULONG Flags;
309} COAUTHIDENTITY;
310
311typedef struct _COAUTHINFO {
312 DWORD dwAuthnSvc;
313 DWORD dwAuthzSvc;
314 LPWSTR pwszServerPrincName;
315 DWORD dwAuthnLevel;
316 DWORD dwImpersonationLevel;
317 COAUTHIDENTITY *pAuthIdentityData;
318 DWORD dwCapabilities;
319} COAUTHINFO;
320
321typedef enum tagMEMCTX {
322 MEMCTX_TASK = 1,
323 MEMCTX_SHARED = 2,
324 MEMCTX_MACSYSTEM = 3,
325 MEMCTX_UNKNOWN = -1,
326 MEMCTX_SAME = -2
327} MEMCTX;
328
329cpp_quote("#ifndef _ROT_COMPARE_MAX_DEFINED")
330cpp_quote("#define _ROT_COMPARE_MAX_DEFINED")
331cpp_quote("#define ROT_COMPARE_MAX 2048")
332cpp_quote("#endif")
333
334cpp_quote("#ifndef _ROTFLAGS_DEFINED")
335cpp_quote("#define _ROTFLAGS_DEFINED")
336cpp_quote("#define ROTFLAGS_REGISTRATIONKEEPSALIVE 0x1")
337cpp_quote("#define ROTFLAGS_ALLOWANYCLIENT 0x2")
338cpp_quote("#endif")
339
340typedef enum tagCLSCTX {
341 CLSCTX_INPROC_SERVER = 0x00000001,
342 CLSCTX_INPROC_HANDLER = 0x00000002,
343 CLSCTX_LOCAL_SERVER = 0x00000004,
344 CLSCTX_INPROC_SERVER16 = 0x00000008,
345 CLSCTX_REMOTE_SERVER = 0x00000010,
346 CLSCTX_INPROC_HANDLER16 = 0x00000020,
347 CLSCTX_INPROC_SERVERX86 = 0x00000040,
348 CLSCTX_INPROC_HANDLERX86 = 0x00000080,
349 CLSCTX_ESERVER_HANDLER = 0x00000100,
350 CLSCTX_NO_CODE_DOWNLOAD = 0x00000400,
351 CLSCTX_NO_CUSTOM_MARSHAL = 0x00001000,
352 CLSCTX_ENABLE_CODE_DOWNLOAD = 0x00002000,
353 CLSCTX_NO_FAILURE_LOG = 0x00004000,
354 CLSCTX_DISABLE_AAA = 0x00008000,
355 CLSCTX_ENABLE_AAA = 0x00010000,
356 CLSCTX_FROM_DEFAULT_CONTEXT = 0x00020000,
357 CLSCTX_ACTIVATE_X86_SERVER = 0x00040000,
358 CLSCTX_ACTIVATE_32_BIT_SERVER = CLSCTX_ACTIVATE_X86_SERVER,
359 CLSCTX_ACTIVATE_64_BIT_SERVER = 0x00080000,
360 CLSCTX_ENABLE_CLOAKING = 0x00100000,
361 CLSCTX_APPCONTAINER = 0x00400000,
362 CLSCTX_ACTIVATE_AAA_AS_IU = 0x00800000,
363 CLSCTX_RESERVED6 = 0x01000000,
364 CLSCTX_ACTIVATE_ARM32_SERVER = 0x02000000,
365 CLSCTX_PS_DLL = 0x80000000,
366} CLSCTX;
367
368cpp_quote("#define CLSCTX_INPROC (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER)")
369cpp_quote("#define CLSCTX_ALL (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)")
370cpp_quote("#define CLSCTX_SERVER (CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)")
371
372typedef enum tagMSHLFLAGS {
373 MSHLFLAGS_NORMAL = 0,
374 MSHLFLAGS_TABLESTRONG = 1,
375 MSHLFLAGS_TABLEWEAK = 2,
376 MSHLFLAGS_NOPING = 4
377} MSHLFLAGS;
378
379typedef enum tagMSHCTX {
380 MSHCTX_LOCAL = 0,
381 MSHCTX_NOSHAREDMEM = 1,
382 MSHCTX_DIFFERENTMACHINE = 2,
383 MSHCTX_INPROC = 3,
384 MSHCTX_CROSSCTX = 4
385} MSHCTX;
386
387/******************** BLOB TYPES ********************/
388
389typedef struct _BYTE_BLOB {
390 unsigned long clSize;
391 [size_is(clSize)] byte abData[];
392} BYTE_BLOB;
393typedef [unique] BYTE_BLOB *UP_BYTE_BLOB;
394
395typedef struct _FLAGGED_BYTE_BLOB {
396 unsigned long fFlags;
397 unsigned long clSize;
398 [size_is(clSize)] byte abData[];
399} FLAGGED_BYTE_BLOB;
400typedef [unique] FLAGGED_BYTE_BLOB *UP_FLAGGED_BYTE_BLOB;
401
402typedef struct _FLAGGED_WORD_BLOB {
403 unsigned long fFlags;
404 unsigned long clSize;
405 [size_is(clSize)] unsigned short asData[];
406} FLAGGED_WORD_BLOB;
407typedef [unique] FLAGGED_WORD_BLOB *UP_FLAGGED_WORD_BLOB;
408
409typedef struct _BYTE_SIZEDARR {
410 unsigned long clSize;
411 [size_is(clSize)] byte *pData;
412} BYTE_SIZEDARR;
413
414typedef struct _SHORT_SIZEDARR {
415 unsigned long clSize;
416 [size_is(clSize)] unsigned short *pData;
417} WORD_SIZEDARR;
418
419typedef struct _LONG_SIZEDARR {
420 unsigned long clSize;
421 [size_is(clSize)] unsigned long *pData;
422} DWORD_SIZEDARR;
423
424typedef struct _HYPER_SIZEDARR {
425 unsigned long clSize;
426 [size_is(clSize)] hyper *pData;
427} HYPER_SIZEDARR;
428
429/******************** GDI TYPES ********************/
430
431const unsigned long WDT_INPROC_CALL = 0x48746457;
432const unsigned long WDT_REMOTE_CALL = 0x52746457;
433const unsigned long WDT_INPROC64_CALL = 0x50746457;
434
435typedef union _userCLIPFORMAT switch(long fContext) u {
436 case WDT_INPROC_CALL: DWORD dwValue;
437 case WDT_REMOTE_CALL: LPWSTR pwszName;
438} userCLIPFORMAT;
439
440typedef [unique] userCLIPFORMAT *wireCLIPFORMAT;
441typedef [wire_marshal(wireCLIPFORMAT)] WORD CLIPFORMAT;
442
443typedef struct tagRemHGLOBAL {
444 long fNullHGlobal;
445 unsigned long cbData;
446 [size_is(cbData)] byte data[];
447} RemHGLOBAL;
448
449typedef union _userHGLOBAL switch(long fContext) u {
450 case WDT_INPROC_CALL: long hInproc;
451 case WDT_REMOTE_CALL: FLAGGED_BYTE_BLOB *hRemote;
452 case WDT_INPROC64_CALL: __int64 hInproc64;
453} userHGLOBAL;
454
455typedef [unique] userHGLOBAL *wireHGLOBAL;
456
457typedef struct tagRemHMETAFILEPICT {
458 long mm;
459 long xExt;
460 long yExt;
461 unsigned long cbData;
462 [size_is(cbData)] byte data[];
463} RemHMETAFILEPICT;
464
465typedef union _userHMETAFILE switch(long fContext) u {
466 case WDT_INPROC_CALL: long hInproc;
467 case WDT_REMOTE_CALL: BYTE_BLOB *hRemote;
468 case WDT_INPROC64_CALL: __int64 hInproc64;
469} userHMETAFILE;
470
471typedef [unique] userHMETAFILE *wireHMETAFILE;
472
473typedef struct _remoteMETAFILEPICT {
474 long mm;
475 long xExt;
476 long yExt;
477 userHMETAFILE *hMF;
478} remoteMETAFILEPICT;
479
480typedef union _userHMETAFILEPICT switch(long fContext) u {
481 case WDT_INPROC_CALL: long hInproc;
482 case WDT_REMOTE_CALL: remoteMETAFILEPICT *hRemote;
483 case WDT_INPROC64_CALL: __int64 hInproc64;
484} userHMETAFILEPICT;
485
486typedef [unique] userHMETAFILEPICT *wireHMETAFILEPICT;
487
488typedef struct tagRemHENHMETAFILE {
489 unsigned long cbData;
490 [size_is(cbData)] byte data[];
491} RemHENHMETAFILE;
492
493typedef union _userHENHMETAFILE switch(long fContext) u {
494 case WDT_INPROC_CALL: long hInproc;
495 case WDT_REMOTE_CALL: BYTE_BLOB *hRemote;
496 case WDT_INPROC64_CALL: __int64 hInproc64;
497} userHENHMETAFILE;
498
499typedef [unique] userHENHMETAFILE *wireHENHMETAFILE;
500
501typedef struct tagRemHBITMAP
502{
503 unsigned long cbData;
504 [size_is(cbData)] byte data[];
505} RemHBITMAP;
506
507typedef struct _userBITMAP {
508 LONG bmType;
509 LONG bmWidth;
510 LONG bmHeight;
511 LONG bmWidthBytes;
512 WORD bmPlanes;
513 WORD bmBitsPixel;
514 ULONG cbSize;
515 [size_is(cbSize)] byte pBuffer[];
516} userBITMAP;
517
518typedef union _userHBITMAP switch(long fContext) u {
519 case WDT_INPROC_CALL: long hInproc;
520 case WDT_REMOTE_CALL: userBITMAP *hRemote;
521 case WDT_INPROC64_CALL: __int64 hInproc64;
522} userHBITMAP;
523
524typedef [unique] userHBITMAP *wireHBITMAP;
525
526typedef struct tagRemHPALETTE {
527 unsigned long cbData;
528 [size_is(cbData)] byte data[];
529} RemHPALETTE;
530
531typedef struct tagrpcLOGPALETTE {
532 WORD palVersion;
533 WORD palNumEntries;
534 [size_is(palNumEntries)] PALETTEENTRY palPalEntry[];
535} rpcLOGPALETTE;
536
537typedef union _userHPALETTE switch(long fContext) u {
538 case WDT_INPROC_CALL: long hInproc;
539 case WDT_REMOTE_CALL: rpcLOGPALETTE *hRemote;
540 case WDT_INPROC64_CALL: __int64 hInproc64;
541} userHPALETTE;
542
543typedef [unique] userHPALETTE *wireHPALETTE;
544
545cpp_quote("#if 0")
546DECLARE_WIREM_HANDLE(HGLOBAL);
547typedef HGLOBAL HLOCAL;
548DECLARE_WIREM_HANDLE(HBITMAP);
549DECLARE_WIREM_HANDLE(HPALETTE);
550DECLARE_WIREM_HANDLE(HENHMETAFILE);
551DECLARE_WIREM_HANDLE(HMETAFILE);
552cpp_quote("#endif")
553DECLARE_WIREM_HANDLE(HMETAFILEPICT);
554
555typedef union _RemotableHandle switch (long fContext) u
556{
557 case WDT_INPROC_CALL: long hInproc;
558 case WDT_REMOTE_CALL: long hRemote;
559} RemotableHandle;
560
561typedef [unique] RemotableHandle *wireHACCEL;
562typedef [unique] RemotableHandle *wireHBRUSH;
563typedef [unique] RemotableHandle *wireHDC;
564typedef [unique] RemotableHandle *wireHFONT;
565typedef [unique] RemotableHandle *wireHICON;
566typedef [unique] RemotableHandle *wireHMENU;
567typedef [unique] RemotableHandle *wireHWND;
568typedef [unique] RemotableHandle *wireHMONITOR;
569
570cpp_quote("#if 0") /* for IDL only (C/C++ defs are in windef.h) */
571DECLARE_WIREM_HANDLE(HACCEL);
572DECLARE_WIREM_HANDLE(HBRUSH);
573DECLARE_WIREM_HANDLE(HDC);
574DECLARE_WIREM_HANDLE(HFONT);
575DECLARE_WIREM_HANDLE(HICON);
576DECLARE_WIREM_HANDLE(HMENU);
577DECLARE_WIREM_HANDLE(HWND);
578DECLARE_WIREM_HANDLE(HMONITOR);
579
580typedef HICON HCURSOR;
581
582typedef struct tagMSG
583{
584 HWND hwnd;
585 UINT message;
586 WPARAM wParam;
587 LPARAM lParam;
588 DWORD time;
589 POINT pt;
590} MSG, *PMSG, *NPMSG, *LPMSG;
591
592cpp_quote("#endif")
593
594/******************** GUID TYPES ********************/
595
596cpp_quote("#if 0") /* for IDL only (C/C++ defs are in guiddef.h) */
597typedef GUID *REFGUID;
598typedef IID *REFIID;
599typedef CLSID *REFCLSID;
600typedef FMTID *REFFMTID;
601cpp_quote("#endif")
602
603/******************** MISC TYPES ********************/
604
605typedef enum tagDVASPECT {
606 DVASPECT_CONTENT = 1,
607 DVASPECT_THUMBNAIL = 2,
608 DVASPECT_ICON = 4,
609 DVASPECT_DOCPRINT = 8
610} DVASPECT;
611
612typedef enum tagSTGC {
613 STGC_DEFAULT = 0,
614 STGC_OVERWRITE = 1,
615 STGC_ONLYIFCURRENT = 2,
616 STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4,
617 STGC_CONSOLIDATE = 8
618} STGC;
619
620typedef enum tagSTGMOVE {
621 STGMOVE_MOVE = 0,
622 STGMOVE_COPY = 1,
623 STGMOVE_SHALLOWCOPY = 2
624} STGMOVE;
625
626typedef enum tagSTATFLAG {
627 STATFLAG_DEFAULT = 0,
628 STATFLAG_NONAME = 1,
629 STATFLAG_NOOPEN = 2
630} STATFLAG;
631
632/******************** OLE Automation ********************/
633
634cpp_quote("#ifdef _MSC_VER") /* for IDL and MSVC only */
635typedef double DATE;
636cpp_quote("#else")
637cpp_quote("typedef double DECLSPEC_ALIGN(8) DATE;")
638cpp_quote("#endif")
639
640cpp_quote("#if 0") /* for IDL only */
641typedef struct tagCY {
642 LONGLONG int64;
643} CY;
644cpp_quote("#else") /* C/C++ defs */
645cpp_quote("#ifndef _tagCY_DEFINED")
646cpp_quote("#define _tagCY_DEFINED")
647cpp_quote("typedef union tagCY {")
648cpp_quote(" struct {")
649cpp_quote(" ULONG Lo;")
650cpp_quote(" LONG Hi;")
651cpp_quote(" } DUMMYSTRUCTNAME;")
652cpp_quote(" LONGLONG int64;")
653cpp_quote("} CY;")
654cpp_quote("#endif")
655cpp_quote("#endif")
656
657typedef CY *LPCY;
658
659cpp_quote("#if 0") /* for IDL only */
660typedef struct tagDEC {
661 USHORT wReserved;
662 BYTE scale;
663 BYTE sign;
664 ULONG Hi32;
665 ULONGLONG Lo64;
666} DECIMAL;
667cpp_quote("#else") /* C/C++ defs */
668cpp_quote("typedef struct tagDEC {")
669cpp_quote(" USHORT wReserved;")
670cpp_quote(" union {")
671cpp_quote(" struct {")
672cpp_quote(" BYTE scale;")
673cpp_quote(" BYTE sign;")
674cpp_quote(" } DUMMYSTRUCTNAME;")
675cpp_quote(" USHORT signscale;")
676cpp_quote(" } DUMMYUNIONNAME;")
677cpp_quote(" ULONG Hi32;")
678cpp_quote(" union {")
679cpp_quote(" struct {")
680cpp_quote(" ULONG Lo32;")
681cpp_quote(" ULONG Mid32;")
682cpp_quote(" } DUMMYSTRUCTNAME1;")
683cpp_quote(" ULONGLONG Lo64;")
684cpp_quote(" } DUMMYUNIONNAME1;")
685cpp_quote("} DECIMAL;")
686cpp_quote("#endif")
687cpp_quote("#define DECIMAL_NEG ((BYTE)0x80)")
688cpp_quote("#define DECIMAL_SETZERO(d) do{ memset(((char*)&(d)) + sizeof(USHORT), 0, sizeof(ULONG) * 3u + sizeof(USHORT)); }while (0)")
689
690typedef DECIMAL *LPDECIMAL;
691
692typedef [unique] FLAGGED_WORD_BLOB *wireBSTR;
693typedef [wire_marshal(wireBSTR)] OLECHAR *BSTR;
694typedef BSTR *LPBSTR;
695
696typedef short VARIANT_BOOL;
697typedef VARIANT_BOOL _VARIANT_BOOL;
698cpp_quote("#define VARIANT_TRUE ((VARIANT_BOOL)0xFFFF)")
699cpp_quote("#define VARIANT_FALSE ((VARIANT_BOOL)0x0000)")
700
701typedef struct tagBSTRBLOB {
702 ULONG cbSize;
703 [size_is(cbSize)] BYTE *pData;
704} BSTRBLOB, *LPBSTRBLOB;
705
706cpp_quote("#ifndef _tagBLOB_DEFINED")
707cpp_quote("#define _tagBLOB_DEFINED")
708cpp_quote("#define _BLOB_DEFINED")
709cpp_quote("#define _LPBLOB_DEFINED")
710typedef struct tagBLOB {
711 ULONG cbSize;
712 [size_is(cbSize)] BYTE *pBlobData;
713} BLOB, *LPBLOB;
714cpp_quote("#endif")
715
716typedef struct tagCLIPDATA {
717 ULONG cbSize;
718 long ulClipFmt;
719 [size_is(cbSize-sizeof(long))] BYTE *pClipData;
720} CLIPDATA;
721cpp_quote("#define CBPCLIPDATA(cb) ((cb).cbSize - sizeof((cb).ulClipFmt))")
722
723typedef ULONG PROPID;
724
725/******************** VARTYPE ********************/
726
727typedef unsigned short VARTYPE;
728enum VARENUM {
729 VT_EMPTY = 0,
730 VT_NULL = 1,
731 VT_I2 = 2,
732 VT_I4 = 3,
733 VT_R4 = 4,
734 VT_R8 = 5,
735 VT_CY = 6,
736 VT_DATE = 7,
737 VT_BSTR = 8,
738 VT_DISPATCH = 9,
739 VT_ERROR = 10,
740 VT_BOOL = 11,
741 VT_VARIANT = 12,
742 VT_UNKNOWN = 13,
743 VT_DECIMAL = 14,
744 VT_I1 = 16,
745 VT_UI1 = 17,
746 VT_UI2 = 18,
747 VT_UI4 = 19,
748 VT_I8 = 20,
749 VT_UI8 = 21,
750 VT_INT = 22,
751 VT_UINT = 23,
752 VT_VOID = 24,
753 VT_HRESULT = 25,
754 VT_PTR = 26,
755 VT_SAFEARRAY = 27,
756 VT_CARRAY = 28,
757 VT_USERDEFINED = 29,
758 VT_LPSTR = 30,
759 VT_LPWSTR = 31,
760 VT_RECORD = 36,
761 VT_INT_PTR = 37,
762 VT_UINT_PTR = 38,
763 VT_FILETIME = 64,
764 VT_BLOB = 65,
765 VT_STREAM = 66,
766 VT_STORAGE = 67,
767 VT_STREAMED_OBJECT = 68,
768 VT_STORED_OBJECT = 69,
769 VT_BLOB_OBJECT = 70,
770 VT_CF = 71,
771 VT_CLSID = 72,
772 VT_VERSIONED_STREAM= 73,
773 VT_BSTR_BLOB = 0x0fff,
774 VT_VECTOR = 0x1000,
775 VT_ARRAY = 0x2000,
776 VT_BYREF = 0x4000,
777 VT_RESERVED = 0x8000,
778 VT_ILLEGAL = 0xffff,
779 VT_ILLEGALMASKED = 0x0fff,
780 VT_TYPEMASK = 0x0fff
782
783typedef struct tagCSPLATFORM
784{
785 DWORD dwPlatformId;
786 DWORD dwVersionHi;
787 DWORD dwVersionLo;
788 DWORD dwProcessorArch;
789} CSPLATFORM;
790
791typedef struct tagQUERYCONTEXT
792{
793 DWORD dwContext;
794 CSPLATFORM Platform;
795 LCID Locale;
796 DWORD dwVersionHi;
797 DWORD dwVersionLo;
798} QUERYCONTEXT;
799
800typedef [v1_enum] enum tagTYSPEC
801{
802 TYSPEC_CLSID,
803 TYSPEC_FILEEXT,
804 TYSPEC_MIMETYPE,
805 TYSPEC_PROGID,
806 TYSPEC_FILENAME,
807 TYSPEC_PACKAGENAME,
808 TYSPEC_OBJECTID
809} TYSPEC;
810
811typedef union switch(DWORD tyspec)
812{
813 case TYSPEC_CLSID:
814 CLSID clsid;
815 case TYSPEC_FILEEXT:
816 LPOLESTR pFileExt;
817 case TYSPEC_MIMETYPE:
818 LPOLESTR pMimeType;
819 case TYSPEC_PROGID:
820 LPOLESTR pProgId;
821 case TYSPEC_FILENAME:
822 LPOLESTR pFileName;
823 case TYSPEC_PACKAGENAME:
824 struct
825 {
826 LPOLESTR pPackageName;
827 GUID PolicyId;
828 } ByName;
829 case TYSPEC_OBJECTID:
830 struct
831 {
832 GUID ObjectId;
833 GUID PolicyId;
834 } ByObjectId;
835} uCLSSPEC;
836
837cpp_quote("#ifndef PROPERTYKEY_DEFINED")
838cpp_quote("#define PROPERTYKEY_DEFINED")
839typedef struct _tagpropertykey
840{
841 GUID fmtid;
842 DWORD pid;
843} PROPERTYKEY;
844cpp_quote("#endif /*PROPERTYKEY_DEFINED*/")
845
846} /* interface IWinTypes */
#define __int64
Definition: basetyps.h:16
Definition: terminate.cpp:24
CD3D10_BUFFER_DESC D3D10_BUFFER_DESC cpp_quote(" ~CD3D10_BUFFER_DESC() {}") operator const D3D10_BUFFER_DESC &() const
Definition: d3d10.idl:491
coclass PSFactoryBuffer pointer_default(unique)] interface ObjectRpcBaseTypes
Definition: dcom.idl:35
static const WCHAR version[]
Definition: asmname.c:66
struct IWinTypes::_RECTL * PRECTL
DECLARE_HANDLE(HINSTANCE)
struct IWinTypes::tagRECT * PRECT
short SHORT
Definition: wtypes.idl:43
const RECT * LPCRECT
Definition: wtypes.idl:171
SIZE SIZEL
Definition: wtypes.idl:150
HANDLE HDWP
Definition: wtypes.idl:84
struct IWinTypes::_SECURITY_DESCRIPTOR * PISECURITY_DESCRIPTOR
DECLARE_HANDLE(HKL)
const CHAR * LPCSTR
Definition: wtypes.idl:55
unsigned long ULONG
Definition: wtypes.idl:46
DECLARE_HANDLE(HMF)
struct IWinTypes::tagSIZE * LPSIZE
int INT
Definition: wtypes.idl:41
struct IWinTypes::_ULARGE_INTEGER ULARGE_INTEGER
CHAR * LPSTR
Definition: wtypes.idl:54
struct IWinTypes::tagPOINT POINT
DWORD * LPDWORD
Definition: wtypes.idl:51
DECLARE_HANDLE(HDESK)
DECLARE_HANDLE(HSTR)
DECLARE_HANDLE(HRGN)
struct IWinTypes::_SID_IDENTIFIER_AUTHORITY * PSID_IDENTIFIER_AUTHORITY
struct IWinTypes::_SECURITY_ATTRIBUTES * PSECURITY_ATTRIBUTES
USHORT * PSECURITY_DESCRIPTOR_CONTROL
Definition: wtypes.idl:117
LONG_PTR LPARAM
Definition: wtypes.idl:183
struct IWinTypes::tagRECT RECT
__int64 LONGLONG
Definition: wtypes.idl:93
void * PSID
Definition: wtypes.idl:115
struct IWinTypes::_SID * PISID
SIZE * LPSIZEL
Definition: wtypes.idl:150
DWORD LCID
Definition: wtypes.idl:89
WCHAR * LPWSTR
Definition: wtypes.idl:58
unsigned __int64 ULONGLONG
Definition: wtypes.idl:94
long LONG
Definition: wtypes.idl:45
DECLARE_HANDLE(HEMF)
struct IWinTypes::_POINTL * PPOINTL
struct IWinTypes::_POINTL POINTL
unsigned char UCHAR
Definition: wtypes.idl:40
struct IWinTypes::tagPOINT * LPPOINT
struct IWinTypes::_ACL ACL
float FLOAT
Definition: wtypes.idl:47
struct IWinTypes::tagRECT * LPRECT
unsigned short USHORT
Definition: wtypes.idl:44
struct IWinTypes::_SID_IDENTIFIER_AUTHORITY SID_IDENTIFIER_AUTHORITY
unsigned short WORD
Definition: wtypes.idl:37
DECLARE_HANDLE(HKEY)
byte BYTE
Definition: wtypes.idl:36
char CHAR
Definition: wtypes.idl:53
DECLARE_HANDLE(HWINSTA)
struct IWinTypes::tagPOINT * PPOINT
const WCHAR * LPCWSTR
Definition: wtypes.idl:59
struct IWinTypes::tagSIZE SIZE
struct IWinTypes::_SECURITY_DESCRIPTOR SECURITY_DESCRIPTOR
long BOOL
Definition: wtypes.idl:39
DECLARE_HANDLE(HTASK)
const RECTL * LPCRECTL
Definition: wtypes.idl:180
USHORT SECURITY_DESCRIPTOR_CONTROL
Definition: wtypes.idl:117
struct IWinTypes::_RECTL * LPRECTL
unsigned int UINT
Definition: wtypes.idl:42
LONG HRESULT
Definition: wtypes.idl:88
ACL * PACL
Definition: wtypes.idl:126
unsigned __int64 DWORDLONG
Definition: wtypes.idl:92
DWORD COLORREF
Definition: wtypes.idl:63
LONG_PTR LRESULT
Definition: wtypes.idl:86
DECLARE_HANDLE(HRSRC)
DECLARE_HANDLE(HPEN)
unsigned long DWORD
Definition: wtypes.idl:38
struct IWinTypes::_SECURITY_ATTRIBUTES * LPSECURITY_ATTRIBUTES
struct IWinTypes::_LARGE_INTEGER LARGE_INTEGER
UINT_PTR WPARAM
Definition: wtypes.idl:182
USHORT LANGID
Definition: wtypes.idl:90
SIZE * PSIZEL
Definition: wtypes.idl:150
DECLARE_HANDLE(HMODULE)
DECLARE_HANDLE(HGDIOBJ)
struct IWinTypes::_SID SID
wchar_t WCHAR
Definition: wtypes.idl:57
struct IWinTypes::_RECTL RECTL
struct IWinTypes::tagSIZE * PSIZE
struct IWinTypes::_SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES
Definition: msctf.idl:532
boolean
Definition: jmorecfg.h:365
UINT_PTR HKL
Definition: msctf.idl:125
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
unsigned __int3264 UINT_PTR
Definition: mstsclib_h.h:274
UCHAR AclRevision
Definition: wtypes.idl:120
USHORT AceCount
Definition: wtypes.idl:123
USHORT AclSize
Definition: wtypes.idl:122
SECURITY_DESCRIPTOR_CONTROL Control
Definition: wtypes.idl:131
ULONG SubAuthority[*]
Definition: wtypes.idl:112
UCHAR Revision
Definition: wtypes.idl:109
SID_IDENTIFIER_AUTHORITY IdentifierAuthority
Definition: wtypes.idl:111
UCHAR SubAuthorityCount
Definition: wtypes.idl:110
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413
#define const
Definition: zconf.h:233