source: trunk/include/win/wine/obj_oleaut.h

Last change on this file was 21314, checked in by vladest, 16 years ago

updating includes according to Flash10 support

File size: 30.3 KB
Line 
1/*
2 * Defines the COM interfaces and APIs related to OLE automation support.
3 */
4
5#ifndef __WINE_WINE_OBJ_OLEAUT_H
6#define __WINE_WINE_OBJ_OLEAUT_H
7
8
9DEFINE_OLEGUID(IID_StdOle, 0x00020430,0,0);
10
11/*****************************************************************************
12 * Predeclare the interfaces
13 */
14DEFINE_OLEGUID(IID_IDispatch, 0x00020400,0,0);
15typedef struct IDispatch IDispatch,*LPDISPATCH;
16
17DEFINE_OLEGUID(IID_ITypeInfo, 0x00020401,0,0);
18typedef struct ITypeInfo ITypeInfo,*LPTYPEINFO;
19
20DEFINE_OLEGUID(IID_ITypeLib, 0x00020402,0,0);
21typedef struct ITypeLib ITypeLib,*LPTYPELIB;
22
23DEFINE_OLEGUID(IID_ITypeComp, 0x00020403,0,0);
24typedef struct ITypeComp ITypeComp,*LPTYPECOMP;
25
26DEFINE_OLEGUID(IID_IEnumVARIANT, 0x00020404,0,0);
27typedef struct IEnumVARIANT IEnumVARIANT,*LPENUMVARIANT;
28
29DEFINE_OLEGUID(IID_ICreateTypeInfo, 0x00020405,0,0);
30typedef struct ICreateTypeInfo ICreateTypeInfo,*LPCREATETYPEINFO;
31
32DEFINE_OLEGUID(IID_ICreateTypeLib, 0x00020406,0,0);
33typedef struct ICreateTypeLib ICreateTypeLib,*LPCREATETYPELIB;
34
35DEFINE_OLEGUID(IID_ICreateTypeInfo2,0x0002040E,0,0);
36typedef struct ICreateTypeInfo2 ICreateTypeInfo2,*LPCREATETYPEINFO2;
37
38DEFINE_OLEGUID(IID_ICreateTypeLib2, 0x0002040F,0,0);
39typedef struct ICreateTypeLib2 ICreateTypeLib2,*LPCREATETYPELIB2;
40
41DEFINE_OLEGUID(IID_ITypeChangeEvents,0x00020410,0,0);
42typedef struct ITypeChangeEvents ITypeChangeEvents,*LPTYPECHANGEEVENTS;
43
44DEFINE_OLEGUID(IID_ITypeLib2, 0x00020411,0,0);
45typedef struct ITypeLib2 ITypeLib2,*LPTYPELIB2;
46
47DEFINE_OLEGUID(IID_ITypeInfo2, 0x00020412,0,0);
48typedef struct ITypeInfo2 ITypeInfo2,*LPTYPEINFO2;
49
50/* The OLE Automation ProxyStub Interface Class (aka Typelib Marshaler) */
51DEFINE_OLEGUID(CLSID_PSOAInterface, 0x00020424,0,0);
52
53/*****************************************************************************
54 * Automation data types
55 */
56
57/*****************************************************************
58 * SafeArray defines and structs
59 */
60
61#define FADF_AUTO ( 0x1 )
62#define FADF_STATIC ( 0x2 )
63#define FADF_EMBEDDED ( 0x4 )
64#define FADF_FIXEDSIZE ( 0x10 )
65#define FADF_RECORD ( 0x20 )
66#define FADF_HAVEIID ( 0x40 )
67#define FADF_HAVEVARTYPE ( 0x80 )
68#define FADF_BSTR ( 0x100 )
69#define FADF_UNKNOWN ( 0x200 )
70#define FADF_DISPATCH ( 0x400 )
71#define FADF_VARIANT ( 0x800 )
72#define FADF_RESERVED ( 0xf008 )
73
74/* Undocumented flags */
75#define FADF_CREATEVECTOR ( 0x2000 ) /* set when the safe array is created using SafeArrayCreateVector */
76
77
78typedef struct tagSAFEARRAYBOUND
79{
80 ULONG cElements; /* Number of elements in dimension */
81 LONG lLbound; /* Lower bound of dimension */
82} SAFEARRAYBOUND;
83
84typedef struct tagSAFEARRAY
85{
86 USHORT cDims; /* Count of array dimension */
87 USHORT fFeatures; /* Flags describing the array */
88 ULONG cbElements; /* Size of each element */
89 ULONG cLocks; /* Number of lock on array */
90 PVOID pvData; /* Pointer to data valid when cLocks > 0 */
91 SAFEARRAYBOUND rgsabound[ 1 ]; /* One bound for each dimension */
92} SAFEARRAY, *LPSAFEARRAY;
93
94typedef enum tagCALLCONV {
95 CC_CDECL = 1,
96 CC_MSCPASCAL = CC_CDECL + 1,
97 CC_PASCAL = CC_MSCPASCAL,
98 CC_MACPASCAL = CC_PASCAL + 1,
99 CC_STDCALL = CC_MACPASCAL + 1,
100 CC_RESERVED = CC_STDCALL + 1,
101 CC_SYSCALL = CC_RESERVED + 1,
102 CC_MPWCDECL = CC_SYSCALL + 1,
103 CC_MPWPASCAL = CC_MPWCDECL + 1,
104 CC_MAX = CC_MPWPASCAL + 1
105} CALLCONV;
106
107typedef CY CURRENCY;
108
109/*
110 * Declarations of the VARIANT structure and the VARIANT APIs.
111 */
112/* S_OK : Success.
113 * DISP_E_BADVARTYPE : The variant type vt in not a valid type of variant.
114 * DISP_E_OVERFLOW : The data pointed to by pvarSrc does not fit in the destination type.
115 * DISP_E_TYPEMISMATCH : The variant type vt is not a valid type of variant.
116 * E_INVALIDARG : One argument is invalid.
117 * * E_OUTOFMEMORY : Memory could not be allocated for the conversion.
118 * DISP_E_ARRAYISLOCKED : The variant contains an array that is locked.
119 */
120#if (__STDC__ && !defined(_FORCENAMELESSUNION)) || defined(NONAMELESSUNION)
121#define __VARIANT_NAME_1 n1
122#define __VARIANT_NAME_2 n2
123#define __VARIANT_NAME_3 n3
124#else
125#define __tagVARIANT
126#define __VARIANT_NAME_1
127#define __VARIANT_NAME_2
128#define __VARIANT_NAME_3
129#endif
130
131typedef struct tagVARIANT VARIANT, *LPVARIANT;
132typedef struct tagVARIANT VARIANTARG, *LPVARIANTARG;
133
134struct tagVARIANT
135{
136 union
137 {
138 struct __tagVARIANT
139 {
140 VARTYPE vt;
141 WORD wReserved1;
142 WORD wReserved2;
143 WORD wReserved3;
144 union /* DUMMYUNIONNAME */
145 {
146 /* By value. */
147 CHAR cVal;
148 USHORT uiVal;
149 ULONG ulVal;
150 INT intVal;
151 UINT uintVal;
152 BYTE bVal;
153 short iVal;
154 long lVal;
155 float fltVal;
156 double dblVal;
157 ULONGLONG ullVal;
158 VARIANT_BOOL boolVal;
159 SCODE scode;
160 DATE date;
161 BSTR bstrVal;
162 CY cyVal;
163 IUnknown* punkVal;
164 IDispatch* pdispVal;
165 SAFEARRAY* parray;
166
167 /* By reference */
168 CHAR* pcVal;
169 USHORT* puiVal;
170 ULONG* pulVal;
171 INT* pintVal;
172 UINT* puintVal;
173 BYTE* pbVal;
174 short* piVal;
175 long* plVal;
176 float* pfltVal;
177 double* pdblVal;
178 ULONGLONG* pullVal;
179 VARIANT_BOOL* pboolVal;
180 SCODE* pscode;
181 DATE* pdate;
182 BSTR* pbstrVal;
183 VARIANT* pvarVal;
184 PVOID byref;
185 CY* pcyVal;
186 DECIMAL* pdecVal;
187 IUnknown** ppunkVal;
188 IDispatch** ppdispVal;
189 SAFEARRAY** pparray;
190 } __VARIANT_NAME_3;
191 } __VARIANT_NAME_2;
192 DECIMAL decVal;
193 } __VARIANT_NAME_1;
194};
195
196
197typedef LONG DISPID;
198typedef DWORD HREFTYPE;
199typedef DISPID MEMBERID;
200
201#define DISPATCH_METHOD 0x1
202#define DISPATCH_PROPERTYGET 0x2
203#define DISPATCH_PROPERTYPUT 0x4
204#define DISPATCH_PROPERTYPUTREF 0x8
205
206#define DISPID_UNKNOWN ( -1 )
207#define DISPID_VALUE ( 0 )
208#define DISPID_PROPERTYPUT ( -3 )
209#define DISPID_NEWENUM ( -4 )
210#define DISPID_EVALUATE ( -5 )
211#define DISPID_CONSTRUCTOR ( -6 )
212#define DISPID_DESTRUCTOR ( -7 )
213#define DISPID_COLLECT ( -8 )
214
215#define MEMBERID_NIL DISPID_UNKNOWN
216
217#define IMPLTYPEFLAG_FDEFAULT (0x1)
218#define IMPLTYPEFLAG_FSOURCE (0x2)
219#define IMPLTYPEFLAG_FRESTRICTED (0x4)
220#define IMPLTYPEFLAG_FDEFAULTVTABLE (0x8)
221
222typedef struct tagDISPPARAMS
223{
224 VARIANTARG* rgvarg;
225 DISPID* rgdispidNamedArgs;
226 UINT cArgs;
227 UINT cNamedArgs;
228} DISPPARAMS;
229
230typedef struct tagEXCEPINFO
231{
232 WORD wCode;
233 WORD wReserved;
234 BSTR bstrSource;
235 BSTR bstrDescription;
236 BSTR bstrHelpFile;
237 DWORD dwHelpContext;
238 PVOID pvReserved;
239#ifdef __WIN32OS2__
240 HRESULT (* WINAPI pfnDeferredFillIn)(struct tagEXCEPINFO *);
241#else
242 HRESULT (__stdcall *pfnDeferredFillIn)(struct tagEXCEPINFO *);
243#endif
244 SCODE scode;
245} EXCEPINFO, * LPEXCEPINFO;
246
247typedef struct tagIDLDESC
248{
249 ULONG dwReserved;
250 USHORT wIDLFlags;
251} IDLDESC;
252
253typedef struct tagPARAMDESCEX
254{
255 ULONG cBytes;
256 VARIANTARG varDefaultValue;
257} PARAMDESCEX, *LPPARAMDESCEX;
258
259typedef struct tagPARAMDESC
260{
261 LPPARAMDESCEX pparamdescex;
262 USHORT wParamFlags;
263} PARAMDESC;
264
265#define PARAMFLAG_NONE (0x00)
266#define PARAMFLAG_FIN (0x01)
267#define PARAMFLAG_FOUT (0x02)
268#define PARAMFLAG_FLCID (0x04)
269#define PARAMFLAG_FRETVAL (0x08)
270#define PARAMFLAG_FOPT (0x10)
271#define PARAMFLAG_FHASDEFAULT (0x20)
272#define PARAMFLAG_FHASCUSTDATA (0x40)
273
274typedef struct tagTYPEDESC
275{
276 union {
277 struct tagTYPEDESC *lptdesc;
278 struct tagARRAYDESC *lpadesc;
279 HREFTYPE hreftype;
280 } DUMMYUNIONNAME;
281 VARTYPE vt;
282} TYPEDESC;
283
284typedef struct tagELEMDESC
285{
286 TYPEDESC tdesc;
287 union {
288 IDLDESC idldesc;
289 PARAMDESC paramdesc;
290 } DUMMYUNIONNAME;
291} ELEMDESC, *LPELEMDESC;
292
293typedef enum tagTYPEKIND
294{
295 TKIND_ENUM = 0,
296 TKIND_RECORD = 1,
297 TKIND_MODULE = 2,
298 TKIND_INTERFACE = 3,
299 TKIND_DISPATCH = 4,
300 TKIND_COCLASS = 5,
301 TKIND_ALIAS = 6,
302 TKIND_UNION = 7,
303 TKIND_MAX = 8
304} TYPEKIND;
305
306typedef struct tagTYPEATTR
307{
308 GUID guid;
309 LCID lcid;
310 DWORD dwReserved;
311 MEMBERID memidConstructor;
312 MEMBERID memidDestructor;
313 LPOLESTR lpstrSchema;
314 ULONG cbSizeInstance;
315 TYPEKIND typekind;
316 WORD cFuncs;
317 WORD cVars;
318 WORD cImplTypes;
319 WORD cbSizeVft;
320 WORD cbAlignment;
321 WORD wTypeFlags;
322 WORD wMajorVerNum;
323 WORD wMinorVerNum;
324 TYPEDESC tdescAlias;
325 IDLDESC idldescType;
326} TYPEATTR, *LPTYPEATTR;
327
328typedef enum tagTYPEFLAGS {
329 TYPEFLAG_FAPPOBJECT = 0x01,
330 TYPEFLAG_FCANCREATE = 0x02,
331 TYPEFLAG_FLICENSED = 0x04,
332 TYPEFLAG_FPREDECLID = 0x08,
333 TYPEFLAG_FHIDDEN = 0x10,
334 TYPEFLAG_FCONTROL = 0x20,
335 TYPEFLAG_FDUAL = 0x40,
336 TYPEFLAG_FNONEXTENSIBLE = 0x80,
337 TYPEFLAG_FOLEAUTOMATION = 0x100,
338 TYPEFLAG_FRESTRICTED = 0x200,
339 TYPEFLAG_FAGGREGATABLE = 0x400,
340 TYPEFLAG_FREPLACEABLE = 0x800,
341 TYPEFLAG_FDISPATCHABLE = 0x1000,
342 TYPEFLAG_FREVERSEBIND = 0x2000,
343 TYPEFLAG_FPROXY = 0x4000
344} TYPEFLAGS;
345
346typedef struct tagARRAYDESC
347{
348 TYPEDESC tdescElem;
349 USHORT cDims;
350 SAFEARRAYBOUND rgbounds[1];
351} ARRAYDESC;
352
353typedef enum tagFUNCKIND
354{
355 FUNC_VIRTUAL = 0,
356 FUNC_PUREVIRTUAL = 1,
357 FUNC_NONVIRTUAL = 2,
358 FUNC_STATIC = 3,
359 FUNC_DISPATCH = 4
360} FUNCKIND;
361
362typedef enum tagFUNCFLAGS
363{
364 FUNCFLAG_FRESTRICTED = 0x1,
365 FUNCFLAG_FSOURCE = 0x2,
366 FUNCFLAG_FBINDABLE = 0x4,
367 FUNCFLAG_FREQUESTEDIT = 0x8,
368 FUNCFLAG_FDISPLAYBIND = 0x10,
369 FUNCFLAG_FDEFAULTBIND = 0x20,
370 FUNCFLAG_FHIDDEN = 0x40,
371 FUNCFLAG_FUSESGETLASTERROR = 0x80,
372 FUNCFLAG_FDEFAULTCOLLELEM = 0x100,
373 FUNCFLAG_FUIDEFAULT = 0x200,
374 FUNCFLAG_FNONBROWSABLE = 0x400,
375 FUNCFLAG_FREPLACEABLE = 0x800,
376 FUNCFLAG_FIMMEDIATEBIND = 0x1000
377} FUNCFLAGS;
378
379typedef enum tagINVOKEKIND
380{
381 INVOKE_FUNC = 1,
382 INVOKE_PROPERTYGET = 2,
383 INVOKE_PROPERTYPUT = 4,
384 INVOKE_PROPERTYPUTREF = 8
385} INVOKEKIND;
386
387typedef struct tagFUNCDESC
388{
389 MEMBERID memid;
390 SCODE *lprgscode;
391 ELEMDESC *lprgelemdescParam;
392 FUNCKIND funckind;
393 INVOKEKIND invkind;
394 CALLCONV callconv;
395 SHORT cParams;
396 SHORT cParamsOpt;
397 SHORT oVft;
398 SHORT cScodes;
399 ELEMDESC elemdescFunc;
400 WORD wFuncFlags;
401} FUNCDESC, *LPFUNCDESC;
402
403typedef enum tagVARKIND
404{
405 VAR_PERINSTANCE = 0,
406 VAR_STATIC = 1,
407 VAR_CONST = 2,
408 VAR_DISPATCH = 3
409} VARKIND;
410
411typedef struct tagVARDESC
412{
413 MEMBERID memid;
414 LPOLESTR lpstrSchema;
415 union {
416 ULONG oInst;
417 VARIANT *lpvarValue;
418 } DUMMYUNIONNAME;
419 ELEMDESC elemdescVar;
420 WORD wVarFlags;
421 VARKIND varkind;
422} VARDESC, *LPVARDESC;
423
424typedef enum tagSYSKIND
425{
426 SYS_WIN16 = 0,
427 SYS_WIN32 = 1,
428 SYS_MAC = 2
429} SYSKIND;
430
431typedef enum tagLIBFLAGS
432{
433 LIBFLAG_FRESTRICTED = 0x1,
434 LIBFLAG_FCONTROL = 0x2,
435 LIBFLAG_FHIDDEN = 0x4,
436 LIBFLAG_FHASDISKIMAGE = 0x8
437} LIBFLAGS;
438
439typedef struct tagTLIBATTR
440{
441 GUID guid;
442 LCID lcid;
443 SYSKIND syskind;
444 WORD wMajorVerNum;
445 WORD wMinorVerNum;
446 WORD wLibFlags;
447} TLIBATTR, *LPTLIBATTR;
448
449typedef enum tagDESCKIND
450{
451 DESCKIND_NONE = 0,
452 DESCKIND_FUNCDESC = 1,
453 DESCKIND_VARDESC = 2,
454 DESCKIND_TYPECOMP = 3,
455 DESCKIND_IMPLICITAPPOBJ = 4,
456 DESCKIND_MAX = 5
457} DESCKIND;
458
459typedef union tagBINDPTR
460{
461 FUNCDESC *lpfuncdesc;
462 VARDESC *lpvardesc;
463 ITypeComp *lptcomp;
464} BINDPTR, *LPBINDPTR;
465
466typedef enum tagVARFLAGS
467{
468 VARFLAG_FREADONLY = 0x1,
469 VARFLAG_FSOURCE = 0x2,
470 VARFLAG_FBINDABLE = 0x4,
471 VARFLAG_FREQUESTEDIT = 0x8,
472 VARFLAG_FDISPLAYBIND = 0x10,
473 VARFLAG_FDEFAULTBIND = 0x20,
474 VARFLAG_FHIDDEN = 0x40,
475 VARFLAG_FRESTRICTED = 0x80,
476 VARFLAG_FDEFAULTCOLLELEM = 0x100,
477 VARFLAG_FUIDEFAULT = 0x200,
478 VARFLAG_FNONBROWSABLE = 0x400,
479 VARFLAG_FREPLACEABLE = 0x800,
480 VARFLAG_FIMMEDIATEBIND = 0x1000
481} VARFLAGS;
482
483
484/*
485 * Data types for Variants.
486 */
487
488enum VARENUM {
489 VT_EMPTY = 0,
490 VT_NULL = 1,
491 VT_I2 = 2,
492 VT_I4 = 3,
493 VT_R4 = 4,
494 VT_R8 = 5,
495 VT_CY = 6,
496 VT_DATE = 7,
497 VT_BSTR = 8,
498 VT_DISPATCH = 9,
499 VT_ERROR = 10,
500 VT_BOOL = 11,
501 VT_VARIANT = 12,
502 VT_UNKNOWN = 13,
503 VT_DECIMAL = 14,
504 VT_I1 = 16,
505 VT_UI1 = 17,
506 VT_UI2 = 18,
507 VT_UI4 = 19,
508 VT_I8 = 20,
509 VT_UI8 = 21,
510 VT_INT = 22,
511 VT_UINT = 23,
512 VT_VOID = 24,
513 VT_HRESULT = 25,
514 VT_PTR = 26,
515 VT_SAFEARRAY = 27,
516 VT_CARRAY = 28,
517 VT_USERDEFINED = 29,
518 VT_LPSTR = 30,
519 VT_LPWSTR = 31,
520 VT_RECORD = 36,
521 VT_FILETIME = 64,
522 VT_BLOB = 65,
523 VT_STREAM = 66,
524 VT_STORAGE = 67,
525 VT_STREAMED_OBJECT = 68,
526 VT_STORED_OBJECT = 69,
527 VT_BLOB_OBJECT = 70,
528 VT_CF = 71,
529 VT_CLSID = 72,
530 VT_VECTOR = 0x1000,
531 VT_ARRAY = 0x2000,
532 VT_BYREF = 0x4000,
533 VT_RESERVED = 0x8000,
534 VT_ILLEGAL = 0xffff,
535 VT_ILLEGALMASKED = 0xfff,
536 VT_TYPEMASK = 0xfff
537};
538
539/* the largest valide type
540 */
541#define VT_MAXVALIDTYPE VT_CLSID
542
543
544/*
545 * Declarations of the VARIANT structure and the VARIANT APIs.
546 */
547
548/* S_OK : Success.
549 * DISP_E_BADVARTYPE : The variant type vt in not a valid type of variant.
550 * DISP_E_OVERFLOW : The data pointed to by pvarSrc does not fit in the destination type.
551 * DISP_E_TYPEMISMATCH : The variant type vt is not a valid type of variant.
552 * E_INVALIDARG : One argument is invalid.
553 * E_OUTOFMEMORY : Memory could not be allocated for the conversion.
554 * DISP_E_ARRAYISLOCKED : The variant contains an array that is locked.
555 */
556
557
558typedef struct tagCUSTDATAITEM {
559 GUID guid;
560 VARIANTARG varValue;
561} CUSTDATAITEM, *LPCUSTDATAITEM;
562
563typedef struct tagCUSTDATA {
564 INT cCustData;
565 LPCUSTDATAITEM prgCustData; /* count cCustdata */
566} CUSTDATA, *LPCUSTDATA;
567
568
569
570/*****************************************************************************
571 * IDispatch interface
572 */
573#define ICOM_INTERFACE IDispatch
574#define IDispatch_METHODS \
575 ICOM_METHOD1(HRESULT, GetTypeInfoCount, UINT*, pctinfo) \
576 ICOM_METHOD3(HRESULT, GetTypeInfo, UINT, iTInfo, LCID, lcid, ITypeInfo**, ppTInfo) \
577 ICOM_METHOD5(HRESULT, GetIDsOfNames, REFIID, riid, LPOLESTR*, rgszNames, UINT, cNames, LCID, lcid, DISPID*, rgDispId) \
578 ICOM_METHOD8(HRESULT, Invoke, DISPID, dispIdMember, REFIID, riid, LCID, lcid, WORD, wFlags, DISPPARAMS*, pDispParams, VARIANT*, pVarResult, EXCEPINFO*, pExepInfo, UINT*, puArgErr)
579#define IDispatch_IMETHODS \
580 IUnknown_IMETHODS \
581 IDispatch_METHODS
582ICOM_DEFINE(IDispatch,IUnknown)
583#undef ICOM_INTERFACE
584
585/*** IUnknown methods ***/
586#define IDispatch_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
587#define IDispatch_AddRef(p) ICOM_CALL (AddRef,p)
588#define IDispatch_Release(p) ICOM_CALL (Release,p)
589/*** IDispatch methods ***/
590#define IDispatch_GetTypeInfoCount(p,a) ICOM_CALL1 (GetTypeInfoCount,p,a)
591#define IDispatch_GetTypeInfo(p,a,b,c) ICOM_CALL3 (GetTypeInfo,p,a,b,c)
592#define IDispatch_GetIDsOfNames(p,a,b,c,d,e) ICOM_CALL5 (GetIDsOfNames,p,a,b,c,d,e)
593#define IDispatch_Invoke(p,a,b,c,d,e,f,g,h) ICOM_CALL8 (Invoke,p,a,b,c,d,e,f,g,h)
594
595
596/*****************************************************************************
597 * ITypeInfo interface
598 */
599#define ICOM_INTERFACE ITypeInfo
600#define ITypeInfo_METHODS \
601 ICOM_METHOD1(HRESULT,GetTypeAttr, TYPEATTR**,ppTypeAttr) \
602 ICOM_METHOD1(HRESULT,GetTypeComp, ITypeComp**,ppTComp) \
603 ICOM_METHOD2(HRESULT,GetFuncDesc, UINT,index, FUNCDESC**,ppFuncDesc) \
604 ICOM_METHOD2(HRESULT,GetVarDesc, UINT,index, VARDESC**,ppVarDesc) \
605 ICOM_METHOD4(HRESULT,GetNames, MEMBERID,memid, BSTR*,rgBstrNames, UINT,cMaxNames, UINT*,pcNames) \
606 ICOM_METHOD2(HRESULT,GetRefTypeOfImplType, UINT,index, HREFTYPE*, pRefType) \
607 ICOM_METHOD2(HRESULT,GetImplTypeFlags, UINT,index, INT*,pImplTypeFlags)\
608 ICOM_METHOD3(HRESULT,GetIDsOfNames, LPOLESTR*,rgszNames, UINT,cNames, MEMBERID*,pMemId) \
609 ICOM_METHOD7(HRESULT,Invoke, PVOID,pvInstance, MEMBERID,memid, WORD,wFlags, DISPPARAMS*,pDispParams, VARIANT*,pVarResult, EXCEPINFO*,pExcepInfo, UINT*,puArgErr) \
610 ICOM_METHOD5(HRESULT,GetDocumentation, MEMBERID,memid, BSTR*,pBstrName, BSTR*,pBstrDocString, DWORD*,pdwHelpContext, BSTR*,pBstrHelpFile) \
611 ICOM_METHOD5(HRESULT,GetDllEntry, MEMBERID,memid, INVOKEKIND,invKind, BSTR*,pBstrDllName, BSTR*,pBstrName, WORD*,pwOrdinal) \
612 ICOM_METHOD2(HRESULT,GetRefTypeInfo, HREFTYPE,hRefType, ITypeInfo**,ppTInfo) \
613 ICOM_METHOD3(HRESULT,AddressOfMember, MEMBERID,memid, INVOKEKIND,invKind, PVOID*,ppv) \
614 ICOM_METHOD3(HRESULT,CreateInstance, IUnknown*,pUnkOuter, REFIID,riid, PVOID*,ppvObj) \
615 ICOM_METHOD2(HRESULT,GetMops, MEMBERID,memid, BSTR*,pBstrMops) \
616 ICOM_METHOD2(HRESULT,GetContainingTypeLib, ITypeLib**,ppTLib, UINT*,pIndex) \
617 ICOM_METHOD1(HRESULT,ReleaseTypeAttr, TYPEATTR*,pTypeAttr) \
618 ICOM_METHOD1(HRESULT,ReleaseFuncDesc, FUNCDESC*,pFuncDesc) \
619 ICOM_METHOD1(HRESULT,ReleaseVarDesc, VARDESC*,pVarDesc)
620
621#define ITypeInfo_IMETHODS \
622 IUnknown_IMETHODS \
623 ITypeInfo_METHODS
624ICOM_DEFINE(ITypeInfo,IUnknown)
625#undef ICOM_INTERFACE
626
627/*** IUnknown methods ***/
628#define ITypeInfo_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
629#define ITypeInfo_AddRef(p) ICOM_CALL (AddRef,p)
630#define ITypeInfo_Release(p) ICOM_CALL (Release,p)
631/*** ITypeInfo methods ***/
632#define ITypeInfo_GetTypeAttr(p,a) ICOM_CALL1(GetTypeAttr,p,a)
633#define ITypeInfo_GetTypeComp(p,a) ICOM_CALL1(GetTypeComp,p,a)
634#define ITypeInfo_GetFuncDesc(p,a,b) ICOM_CALL2(GetFuncDesc,p,a,b)
635#define ITypeInfo_GetVarDesc(p,a,b) ICOM_CALL2(GetVarDesc,p,a,b)
636#define ITypeInfo_GetNames(p,a,b,c,d) ICOM_CALL4(GetNames,p,a,b,c,d)
637#define ITypeInfo_GetRefTypeOfImplType(p,a,b) ICOM_CALL2(GetRefTypeOfImplType,p,a,b)
638#define ITypeInfo_GetImplTypeFlags(p,a,b) ICOM_CALL2(GetImplTypeFlags,p,a,b)
639#define ITypeInfo_GetIDsOfNames(p,a,b,c) ICOM_CALL3(GetIDsOfNames,p,a,b,c)
640#define ITypeInfo_Invoke(p,a,b,c,d,e,f,g) ICOM_CALL7(Invoke,p,a,b,c,d,e,f,g)
641#define ITypeInfo_GetDocumentation(p,a,b,c,d,e) ICOM_CALL5(GetDocumentation,p,a,b,c,d,e)
642#define ITypeInfo_GetDllEntry(p,a,b,c,d,e) ICOM_CALL5(GetDllEntry,p,a,b,c,d,e)
643#define ITypeInfo_GetRefTypeInfo(p,a,b) ICOM_CALL2(GetRefTypeInfo,p,a,b)
644#define ITypeInfo_AddressOfMember(p,a,b,c) ICOM_CALL3(AddressOfMember,p,a,b,c)
645#define ITypeInfo_CreateInstance(p,a,b,c) ICOM_CALL3(CreateInstance,p,a,b,c)
646#define ITypeInfo_GetMops(p,a,b) ICOM_CALL2(GetMops,p,a,b)
647#define ITypeInfo_GetContainingTypeLib(p,a,b) ICOM_CALL2(GetContainingTypeLib,p,a,b)
648#define ITypeInfo_ReleaseTypeAttr(p,a) ICOM_CALL1(ReleaseTypeAttr,p,a)
649#define ITypeInfo_ReleaseFuncDesc(p,a) ICOM_CALL1(ReleaseFuncDesc,p,a)
650#define ITypeInfo_ReleaseVarDesc(p,a) ICOM_CALL1(ReleaseVarDesc,p,a)
651
652
653/*****************************************************************************
654 * ITypeInfo2 interface
655 */
656#define ICOM_INTERFACE ITypeInfo2
657#define ITypeInfo2_METHODS \
658 ICOM_METHOD1(HRESULT, GetTypeKind, TYPEKIND*, pTypeKind) \
659 ICOM_METHOD1(HRESULT, GetTypeFlags, UINT*, pTypeFlags) \
660 ICOM_METHOD3(HRESULT, GetFuncIndexOfMemId, MEMBERID, memid, INVOKEKIND,\
661 invKind, UINT*, pFuncIndex) \
662 ICOM_METHOD2(HRESULT, GetVarIndexOfMemId, MEMBERID, memid, UINT*, \
663 pVarIndex) \
664 ICOM_METHOD2(HRESULT, GetCustData, REFGUID, guid, VARIANT*, pVarVal) \
665 ICOM_METHOD3(HRESULT, GetFuncCustData, UINT, index, REFGUID, guid,\
666 VARIANT*, pVarVal) \
667 ICOM_METHOD4(HRESULT, GetParamCustData, UINT, indexFunc, UINT,\
668 indexParam, REFGUID, guid, VARIANT*, pVarVal) \
669 ICOM_METHOD3(HRESULT, GetVarCustData, UINT, index, REFGUID, guid,\
670 VARIANT*, pVarVal) \
671 ICOM_METHOD3(HRESULT, GetImplTypeCustData, UINT, index, REFGUID, guid,\
672 VARIANT*, pVarVal) \
673 ICOM_METHOD5(HRESULT, GetDocumentation2, MEMBERID, memid, LCID, lcid,\
674 BSTR*, pbstrHelpString, DWORD*, pdwHelpStringContext,\
675 BSTR*, pbstrHelpStringDll) \
676 ICOM_METHOD1(HRESULT, GetAllCustData, CUSTDATA*, pCustData) \
677 ICOM_METHOD2(HRESULT, GetAllFuncCustData, UINT, index, CUSTDATA*,\
678 pCustData)\
679 ICOM_METHOD3(HRESULT, GetAllParamCustData, UINT, indexFunc, UINT,\
680 indexParam, CUSTDATA*, pCustData) \
681 ICOM_METHOD2(HRESULT, GetAllVarCustData, UINT, index, CUSTDATA*,\
682 pCustData) \
683 ICOM_METHOD2(HRESULT, GetAllImplTypeCustData, UINT, index, CUSTDATA*,\
684 pCustData)
685
686#define ITypeInfo2_IMETHODS \
687 IUnknown_IMETHODS \
688 ITypeInfo_METHODS \
689 ITypeInfo2_METHODS
690ICOM_DEFINE(ITypeInfo2,ITypeInfo)
691#undef ICOM_INTERFACE
692
693/*** IUnknown methods ***/
694#define ITypeInfo2_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
695#define ITypeInfo2_AddRef(p) ICOM_CALL (AddRef,p)
696#define ITypeInfo2_Release(p) ICOM_CALL (Release,p)
697/*** ITypeInfo methods ***/
698#define ITypeInfo2_GetTypeAttr(p,a) ICOM_CALL1(GetTypeAttr,p,a)
699#define ITypeInfo2_GetTypeComp(p,a) ICOM_CALL1(GetTypeComp,p,a)
700#define ITypeInfo2_GetFuncDesc(p,a,b) ICOM_CALL2(GetFuncDesc,p,a,b)
701#define ITypeInfo2_GetVarDesc(p,a,b) ICOM_CALL2(GetVarDesc,p,a,b)
702#define ITypeInfo2_GetNames(p,a,b,c,d) ICOM_CALL4(GetNames,p,a,b,c,d)
703#define ITypeInfo2_GetRefTypeOfImplType(p,a,b) ICOM_CALL2(GetRefTypeOfImplType,p,a,b)
704#define ITypeInfo2_GetImplTypeFlags(p,a,b) ICOM_CALL2(GetImplTypeFlags,p,a,b)
705#define ITypeInfo2_GetIDsOfNames(p,a,b,c) ICOM_CALL3(GetIDsOfNames,p,a,b,c)
706#define ITypeInfo2_Invoke(p,a,b,c,d,e,f,g) ICOM_CALL7(Invoke,p,a,b,c,d,e,f,g)
707#define ITypeInfo2_GetDocumentation(p,a,b,c,d,e) ICOM_CALL5(GetDocumentation,p,a,b,c,d,e)
708#define ITypeInfo2_GetDllEntry(p,a,b,c,d,e) ICOM_CALL5(GetDllEntry,p,a,b,c,d,e)
709#define ITypeInfo2_GetRefTypeInfo(p,a,b) ICOM_CALL2(GetRefTypeInfo,p,a,b)
710#define ITypeInfo2_AddressOfMember(p,a,b,c) ICOM_CALL3(AddressOfMember,p,a,b,c)
711#define ITypeInfo2_CreateInstance(p,a,b,c) ICOM_CALL3(CreateInstance,p,a,b,c)
712#define ITypeInfo2_GetMops(p,a,b) ICOM_CALL2(GetMops,p,a,b)
713#define ITypeInfo2_GetContainingTypeLib(p,a,b) ICOM_CALL2(GetContainingTypeLib,p,a,b)
714#define ITypeInfo2_ReleaseTypeAttr(p,a) ICOM_CALL1(ReleaseTypeAttr,p,a)
715#define ITypeInfo2_ReleaseFuncDesc(p,a) ICOM_CALL1(ReleaseFuncDesc,p,a)
716#define ITypeInfo2_ReleaseVarDesc(p,a) ICOM_CALL1(ReleaseVarDesc,p,a)
717/*** ITypeInfo2 methods ***/
718#define ITypeInfo2_GetTypeKind(p,a) ICOM_CALL1(GetTypeKind,p,a)
719#define ITypeInfo2_GetTypeFlags(p,a) ICOM_CALL1(GetTypeFlags,p,a)
720#define ITypeInfo2_GetFuncIndexOfMemId(p,a,b,c) ICOM_CALL3(GetFuncIndexOfMemId,p,a,b,c)
721#define ITypeInfo2_GetVarIndexOfMemId(p,a,b) ICOM_CALL2(GetVarIndexOfMemId,p,a,b)
722#define ITypeInfo2_GetCustData(p,a,b) ICOM_CALL2(GetCustData,p,a,b)
723#define ITypeInfo2_GetFuncCustData(p,a,b,c) ICOM_CALL3(GetFuncCustData,p,a,b,c)
724#define ITypeInfo2_GetParamCustData(p,a,b,c,d) ICOM_CALL4(GetParamCustData,p,a,b,c,d)
725#define ITypeInfo2_GetVarCustData(p,a,b,c) ICOM_CALL3(GetVarCustData,p,a,b,c)
726#define ITypeInfo2_GetImplTypeCustData(p,a,b,c) ICOM_CALL3(GetImplTypeCustData,p,a,b,c)
727#define ITypeInfo2_GetDocumentation2(p,a,b,c,d,e) ICOM_CALL5(GetDocumentation2,p,a,b,c,d,e)
728#define ITypeInfo2_GetAllCustData(p,a) ICOM_CALL1(GetAllCustData,p,a)
729#define ITypeInfo2_GetAllFuncCustData(p,a,b) ICOM_CALL2(GetAllFuncCustData,p,a,b)
730#define ITypeInfo2_GetAllParamCustData(p,a,b,c) ICOM_CALL3(GetAllParamCustData,p,a,b,c)
731#define ITypeInfo2_GetAllVarCustData(p,a,b) ICOM_CALL2(GetAllVarCustData,p,a,b)
732#define ITypeInfo2_GetAllImplTypeCustData(p,a,b) ICOM_CALL2(GetAllImplTypeCustData,p,a,b)
733
734/*****************************************************************************
735 * ITypeLib interface
736 */
737#define ICOM_INTERFACE ITypeLib
738#define ITypeLib_METHODS \
739 ICOM_METHOD (UINT,GetTypeInfoCount) \
740 ICOM_METHOD2(HRESULT,GetTypeInfo, UINT,index, ITypeInfo**,ppTInfo) \
741 ICOM_METHOD2(HRESULT,GetTypeInfoType, UINT,index, TYPEKIND*,pTKind) \
742 ICOM_METHOD2(HRESULT,GetTypeInfoOfGuid, REFGUID,guid, ITypeInfo**,ppTinfo) \
743 ICOM_METHOD1(HRESULT,GetLibAttr, TLIBATTR**,ppTLibAttr) \
744 ICOM_METHOD1(HRESULT,GetTypeComp, ITypeComp**,ppTComp) \
745 ICOM_METHOD5(HRESULT,GetDocumentation, INT,index, BSTR*,pBstrName, BSTR*,pBstrDocString, DWORD*,pdwHelpContext, BSTR*,pBstrHelpFile) \
746 ICOM_METHOD3(HRESULT,IsName, LPOLESTR,szNameBuf, ULONG,lHashVal, BOOL*,bfName) \
747 ICOM_METHOD5(HRESULT,FindName, LPOLESTR,szNameBuf, ULONG,lHashVal, ITypeInfo**,ppTInfo, MEMBERID*,rgMemId, USHORT*,pcFound) \
748 ICOM_METHOD1(VOID,ReleaseTLibAttr, TLIBATTR*,pTLibAttr)
749#define ITypeLib_IMETHODS \
750 IUnknown_IMETHODS \
751 ITypeLib_METHODS
752ICOM_DEFINE(ITypeLib,IUnknown)
753#undef ICOM_INTERFACE
754
755/*** IUnknown methods ***/
756#define ITypeLib_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
757#define ITypeLib_AddRef(p) ICOM_CALL (AddRef,p)
758#define ITypeLib_Release(p) ICOM_CALL (Release,p)
759/*** ITypeLib methods ***/
760#define ITypeLib_GetTypeInfoCount(p) ICOM_CALL (GetTypeInfoCount,p)
761#define ITypeLib_GetTypeInfo(p,a,b) ICOM_CALL2(GetTypeInfo,p,a,b)
762#define ITypeLib_GetTypeInfoType(p,a,b) ICOM_CALL2(GetTypeInfoType,p,a,b)
763#define ITypeLib_GetTypeInfoOfGuid(p,a,b) ICOM_CALL2(GetTypeInfoOfGuid,p,a,b)
764#define ITypeLib_GetLibAttr(p,a) ICOM_CALL1(GetLibAttr,p,a)
765#define ITypeLib_GetTypeComp(p,a) ICOM_CALL1(GetTypeComp,p,a)
766#define ITypeLib_GetDocumentation(p,a,b,c,d,e) ICOM_CALL5(GetDocumentation,p,a,b,c,d,e)
767#define ITypeLib_IsName(p,a,b,c) ICOM_CALL3(IsName,p,a,b,c)
768#define ITypeLib_FindName(p,a,b,c,d,e) ICOM_CALL5(FindName,p,a,b,c,d,e)
769#define ITypeLib_ReleaseTLibAttr(p,a) ICOM_CALL1(ReleaseTLibAttr,p,a)
770
771
772/*****************************************************************************
773 * ITypeLib2 interface
774 */
775#define ICOM_INTERFACE ITypeLib2
776#define ITypeLib2_METHODS \
777 ICOM_METHOD2(HRESULT, GetCustData, REFGUID, guid, VARIANT*, pVarVal) \
778 ICOM_METHOD2(HRESULT, GetLibStatistics, ULONG *, pcUniqueNames, ULONG*,pcchUniqueNames) \
779 ICOM_METHOD5(HRESULT, GetDocumentation2, INT, index, LCID, lcid,BSTR*, pbstrHelpString, DWORD*, pdwHelpStringContext, BSTR*, strHelpStringDll) \
780 ICOM_METHOD1(HRESULT, GetAllCustData, CUSTDATA *, pCustData)
781#define ITypeLib2_IMETHODS \
782 IUnknown_IMETHODS \
783 ITypeLib_IMETHODS \
784 ITypeLib2_METHODS
785ICOM_DEFINE(ITypeLib2,ITypeLib)
786#undef ICOM_INTERFACE
787
788/*** IUnknown methods ***/
789#define ITypeLib2_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
790#define ITypeLib2_AddRef(p) ICOM_CALL (AddRef,p)
791#define ITypeLib2_Release(p) ICOM_CALL (Release,p)
792/*** ITypeLib methods ***/
793#define ITypeLib2_GetTypeInfoCount(p) ICOM_CALL (GetTypeInfoCount,p)
794#define ITypeLib2_GetTypeInfo(p,a,b) ICOM_CALL2(GetTypeInfo,p,a,b)
795#define ITypeLib2_GetTypeInfoType(p,a,b) ICOM_CALL2(GetTypeInfoType,p,a,b)
796#define ITypeLib2_GetTypeInfoOfGuid(p,a,b) ICOM_CALL2(GetTypeInfoOfGuid,p,a,b)
797#define ITypeLib2_GetLibAttr(p,a) ICOM_CALL1(GetLibAttr,p,a)
798#define ITypeLib2_GetTypeComp(p,a) ICOM_CALL1(GetTypeComp,p,a)
799#define ITypeLib2_GetDocumentation(p,a,b,c,d,e) ICOM_CALL5(GetDocumentation,p,a,b,c,d,e)
800#define ITypeLib2_IsName(p,a,b,c) ICOM_CALL3(IsName,p,a,b,c)
801#define ITypeLib2_FindName(p,a,b,c,d,e) ICOM_CALL5(FindName,p,a,b,c,d,e)
802#define ITypeLib2_ReleaseTLibAttr(p,a) ICOM_CALL1(ReleaseTLibAttr,p,a)
803/*** ITypeLib2 methods ***/
804#define ITypeLib2_GetCustData(p,a,b) ICOM_CALL2(GetCustData,p,a,b)
805#define ITypeLib2_GetLibStatistics(p,a,b) ICOM_CALL2(GetLibStatistics,p,a,b)
806#define ITypeLib2_GetDocumentation2(p,a,b,c,d,e,f) ICOM_CALL5(GetDocumentation2,p,a,b,c,d,e)
807#define ITypeLib2_GetAllCustData(p,a) ICOM_CALL1(GetAllCustData,p,a)
808
809/*****************************************************************************
810 * ITypeComp interface
811 */
812#define ICOM_INTERFACE ITypeComp
813#define ITypeComp_METHODS \
814 ICOM_METHOD6(HRESULT,Bind, LPOLESTR,szName, ULONG,lHashVal, WORD,wFlags, ITypeInfo**,ppTInfo, DESCKIND*,pDescKind, BINDPTR*,pBindPtr) \
815 ICOM_METHOD4(HRESULT,BindType, LPOLESTR,szName, ULONG,lHashVal, ITypeInfo**,ppTInfo, ITypeComp**,ppTComp)
816#define ITypeComp_IMETHODS \
817 IUnknown_IMETHODS \
818 ITypeComp_METHODS
819ICOM_DEFINE(ITypeComp,IUnknown)
820#undef ICOM_INTERFACE
821
822/*** IUnknown methods ***/
823#define ITypeComp_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
824#define ITypeComp_AddRef(p) ICOM_CALL (AddRef,p)
825#define ITypeComp_Release(p) ICOM_CALL (Release,p)
826/*** ITypeComp methods ***/
827#define ITypeComp_Bind(p,a,b,c,d,e,f) ICOM_CALL6(Bind,p,a,b,c,d,e,f)
828#define ITypeComp_BindType(p,a,b,c,d) ICOM_CALL4(BindType,p,a,b,c,d)
829
830/*****************************************************************************
831 * IEnumVARIANT interface
832 */
833#define ICOM_INTERFACE IEnumVARIANT
834#define IEnumVARIANT_METHODS \
835 ICOM_METHOD3(HRESULT,Next, ULONG,celt, VARIANT*,rgVar, ULONG*,pCeltFetched) \
836 ICOM_METHOD1(HRESULT,Skip, ULONG,celt) \
837 ICOM_METHOD (HRESULT,Reset) \
838 ICOM_METHOD1(HRESULT,Clone, IEnumVARIANT**,ppEnum)
839#define IEnumVARIANT_IMETHODS \
840 IUnknown_IMETHODS \
841 IEnumVARIANT_METHODS
842ICOM_DEFINE(IEnumVARIANT,IUnknown)
843#undef ICOM_INTERFACE
844
845/*** IUnknown methods ***/
846#define IEnumVARIANT_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
847#define IEnumVARIANT_AddRef(p) ICOM_CALL (AddRef,p)
848#define IEnumVARIANT_Release(p) ICOM_CALL (Release,p)
849/*** IEnumVARIANT methods ***/
850#define IEnumVARIANT_Next(p,a,b,c) ICOM_CALL3(Next,p,a,b,c)
851#define IEnumVARIANT_Skip(p,a) ICOM_CALL1(Skip,p,a)
852#define IEnumVARIANT_Reset(p) ICOM_CALL (Reset,p)
853#define IEnumVARIANT_Clone(p,a) ICOM_CALL1(Clone,p,a)
854
855#endif /* __WINE_WINE_OBJ_OLEAUT_H */
856
Note: See TracBrowser for help on using the repository browser.