ReactOS 0.4.16-dev-303-g11d5cb8
oaidl.idl
Go to the documentation of this file.
1/*
2 * Copyright 2002 Ove Kaaven
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19#ifndef DO_NO_IMPORTS
20import "objidl.idl";
21#endif
22
23interface IDispatch;
24interface ITypeInfo;
25interface ITypeLib;
26interface IRecordInfo;
27
28[
29 version(1.0),
31]
33{
34
35typedef CY CURRENCY;
36
37/* Safe Array */
38
39typedef struct tagSAFEARRAYBOUND {
43
46
47typedef struct _wireSAFEARR_BSTR {
49 [size_is(Size), ref] wireBSTR *aBstr;
51
52typedef struct _wireSAFEARR_UNKNOWN {
54 [size_is(Size), ref] IUnknown **apUnknown;
56
57typedef struct _wireSAFEARR_DISPATCH {
61
62typedef struct _wireSAFEARR_VARIANT {
66
67typedef struct _wireSAFEARR_BRECORD {
71
72typedef struct _wireSAFEARR_HAVEIID {
74 [size_is(Size), ref] IUnknown **apUnknown;
77
78typedef [v1_enum] enum tagSF_TYPE {
91
92typedef union _wireSAFEARRAY_UNION switch(ULONG sfType) u {
93 case SF_BSTR: SAFEARR_BSTR BstrStr;
94 case SF_UNKNOWN: SAFEARR_UNKNOWN UnknownStr;
95 case SF_DISPATCH: SAFEARR_DISPATCH DispatchStr;
96 case SF_VARIANT: SAFEARR_VARIANT VariantStr;
97 case SF_RECORD: SAFEARR_BRECORD RecordStr;
98 case SF_HAVEIID: SAFEARR_HAVEIID HaveIidStr;
99 case SF_I1: BYTE_SIZEDARR ByteStr;
100 case SF_I2: WORD_SIZEDARR WordStr;
101 case SF_I4: DWORD_SIZEDARR LongStr;
102 case SF_I8: HYPER_SIZEDARR HyperStr;
104
105typedef [unique] struct _wireSAFEARRAY {
113
115
116typedef struct tagSAFEARRAY {
124
125typedef [wire_marshal(wirePSAFEARRAY)] SAFEARRAY *LPSAFEARRAY;
126
127const USHORT FADF_AUTO = 0x0001;
128const USHORT FADF_STATIC = 0x0002;
129const USHORT FADF_EMBEDDED = 0x0004;
130const USHORT FADF_FIXEDSIZE = 0x0010;
131const USHORT FADF_RECORD = 0x0020;
132const USHORT FADF_HAVEIID = 0x0040;
134const USHORT FADF_BSTR = 0x0100;
135const USHORT FADF_UNKNOWN = 0x0200;
136const USHORT FADF_DISPATCH = 0x0400;
137const USHORT FADF_VARIANT = 0x0800;
138const USHORT FADF_RESERVED = 0xF008;
139/* Undocumented flags */
140const USHORT FADF_DATADELETED = 0x1000; /* Data in a vector has been deleted */
141const USHORT FADF_CREATEVECTOR = 0x2000; /* This array is a vector */
142
143/* Variant */
144
145cpp_quote("#if (__STDC__ && !defined(_FORCENAMELESSUNION)) || defined(NONAMELESSUNION)")
146cpp_quote("#define __VARIANT_NAME_1 n1")
147cpp_quote("#define __VARIANT_NAME_2 n2")
148cpp_quote("#define __VARIANT_NAME_3 n3")
149cpp_quote("#define __VARIANT_NAME_4 brecVal")
150cpp_quote("#else")
151cpp_quote("#define __tagVARIANT")
152cpp_quote("#define __VARIANT_NAME_1")
153cpp_quote("#define __VARIANT_NAME_2")
154cpp_quote("#define __VARIANT_NAME_3")
155cpp_quote("#define __tagBRECORD")
156cpp_quote("#define __VARIANT_NAME_4")
157cpp_quote("#endif")
158
159typedef [wire_marshal(wireVARIANT)] struct tagVARIANT VARIANT;
160
161struct tagVARIANT {
162 union {
163 struct __tagVARIANT {
164 VARTYPE vt;
165 WORD wReserved1;
166 WORD wReserved2;
167 WORD wReserved3;
168 union {
169 signed char cVal;
170 USHORT uiVal;
171 ULONG ulVal;
172 INT intVal;
173 UINT uintVal;
174 BYTE bVal;
175 SHORT iVal;
176 LONG lVal;
177 FLOAT fltVal;
178 DOUBLE dblVal;
179 VARIANT_BOOL boolVal;
180#if 0 /* illegal in C++ */
181 _VARIANT_BOOL bool;
182#endif
183 SCODE scode;
184 DATE date;
185 BSTR bstrVal;
186 CY cyVal;
187 IUnknown *punkVal;
188 IDispatch *pdispVal;
189 SAFEARRAY *parray;
190 LONGLONG llVal;
191 ULONGLONG ullVal;
192 signed char *pcVal;
193 USHORT *puiVal;
194 ULONG *pulVal;
195 INT *pintVal;
196 UINT *puintVal;
197 BYTE *pbVal;
198 SHORT *piVal;
199 LONG *plVal;
200 FLOAT *pfltVal;
201 DOUBLE *pdblVal;
202 VARIANT_BOOL *pboolVal;
203#if 0
204 _VARIANT_BOOL *pbool;
205#endif
206 SCODE *pscode;
207 DATE *pdate;
208 BSTR *pbstrVal;
209 VARIANT *pvarVal;
210 PVOID byref;
211 CY *pcyVal;
212 DECIMAL *pdecVal;
213 IUnknown **ppunkVal;
214 IDispatch **ppdispVal;
215 SAFEARRAY **pparray;
216 LONGLONG *pllVal;
217 ULONGLONG *pullVal;
218 struct __tagBRECORD {
219 PVOID pvRecord;
220 IRecordInfo *pRecInfo;
221 } __VARIANT_NAME_4;
222 } __VARIANT_NAME_3;
223 } __VARIANT_NAME_2;
224
225 DECIMAL decVal;
226 } __VARIANT_NAME_1;
227};
228
229typedef VARIANT *LPVARIANT;
230typedef VARIANT VARIANTARG;
231typedef VARIANTARG *LPVARIANTARG;
232
233struct _wireBRECORD {
234 ULONG fFlags;
235 ULONG clSize;
236 IRecordInfo *pRecInfo;
237 [size_is(clSize)] byte *pRecord;
238};
239
240struct _wireVARIANT {
241 DWORD clSize;
242 DWORD rpcReserved;
243 USHORT vt;
244 USHORT wReserved1;
245 USHORT wReserved2;
246 USHORT wReserved3;
247 [switch_is(vt)] union {
248 [case(VT_EMPTY, VT_NULL)] ;
249 [case(VT_I1)] signed char cVal;
250 [case(VT_UI2)] USHORT uiVal;
251 [case(VT_UI4)] ULONG ulVal;
252 [case(VT_INT)] INT intVal;
253 [case(VT_UINT)] UINT uintVal;
254 [case(VT_UI1)] BYTE bVal;
255 [case(VT_I2)] SHORT iVal;
256 [case(VT_I4)] LONG lVal;
257 [case(VT_R4)] FLOAT fltVal;
258 [case(VT_R8)] DOUBLE dblVal;
259 [case(VT_BOOL)] VARIANT_BOOL boolVal;
260 [case(VT_ERROR)] SCODE scode;
261 [case(VT_DATE)] DATE date;
262 [case(VT_BSTR)] wireBSTR bstrVal;
263 [case(VT_CY)] CY cyVal;
264 [case(VT_DECIMAL)] DECIMAL decVal;
265 [case(VT_UNKNOWN)] IUnknown *punkVal;
266 [case(VT_DISPATCH)] IDispatch *pdispVal;
267 [case(VT_ARRAY)] wireSAFEARRAY parray;
268 [case(VT_I1|VT_BYREF)] signed char *pcVal;
269 [case(VT_UI2|VT_BYREF)] USHORT *puiVal;
270 [case(VT_UI4|VT_BYREF)] ULONG *pulVal;
271 [case(VT_INT|VT_BYREF)] INT *pintVal;
272 [case(VT_UINT|VT_BYREF)] UINT *puintVal;
273 [case(VT_UI1|VT_BYREF)] BYTE *pbVal;
274 [case(VT_I2|VT_BYREF)] SHORT *piVal;
275 [case(VT_I4|VT_BYREF)] LONG *plVal;
276 [case(VT_R4|VT_BYREF)] FLOAT *pfltVal;
277 [case(VT_R8|VT_BYREF)] DOUBLE *pdblVal;
278 [case(VT_BOOL|VT_BYREF)] VARIANT_BOOL *pboolVal;
279 [case(VT_ERROR|VT_BYREF)] SCODE *pscode;
280 [case(VT_DATE|VT_BYREF)] DATE *pdate;
281 [case(VT_BSTR|VT_BYREF)] wireBSTR *pbstrVal;
282 [case(VT_VARIANT|VT_BYREF)] wireVARIANT *pvarVal;
283 [case(VT_CY|VT_BYREF)] CY *pcyVal;
284 [case(VT_DECIMAL|VT_BYREF)] DECIMAL *pdecVal;
285 [case(VT_UNKNOWN|VT_BYREF)] IUnknown **ppunkVal;
286 [case(VT_DISPATCH|VT_BYREF)] IDispatch **ppdispVal;
287 [case(VT_ARRAY|VT_BYREF)] wireSAFEARRAY *pparray;
288 [case(VT_RECORD, VT_RECORD|VT_BYREF)] wireBRECORD brecVal;
289 } DUMMYUNIONNAME;
290};
291
292/* Dispatch */
293
294typedef LONG DISPID;
295typedef DWORD HREFTYPE;
296typedef DISPID MEMBERID;
297
298typedef [v1_enum] enum tagTYPEKIND {
299 TKIND_ENUM = 0,
300 TKIND_RECORD,
301 TKIND_MODULE,
302 TKIND_INTERFACE,
303 TKIND_DISPATCH,
304 TKIND_COCLASS,
305 TKIND_ALIAS,
306 TKIND_UNION,
307 TKIND_MAX
308} TYPEKIND;
309
310typedef struct tagTYPEDESC {
311 [switch_is(vt)] union {
312 [case(VT_PTR, VT_SAFEARRAY)] struct tagTYPEDESC *lptdesc;
313 [case(VT_CARRAY)] struct tagARRAYDESC *lpadesc;
314 [case(VT_USERDEFINED)] HREFTYPE hreftype;
315 [default] ;
316 } DUMMYUNIONNAME;
317 VARTYPE vt;
318} TYPEDESC;
319
320typedef struct tagARRAYDESC {
321 TYPEDESC tdescElem;
322 USHORT cDims;
323 [size_is(cDims)] SAFEARRAYBOUND rgbounds[];
324} ARRAYDESC;
325
326typedef struct tagPARAMDESCEX {
327 ULONG cBytes;
328 VARIANTARG varDefaultValue;
329} PARAMDESCEX, *LPPARAMDESCEX;
330
331typedef struct tagPARAMDESC {
332 LPPARAMDESCEX pparamdescex;
333 USHORT wParamFlags;
334} PARAMDESC, *LPPARAMDESC;
335
336const USHORT PARAMFLAG_NONE = 0x00;
337const USHORT PARAMFLAG_FIN = 0x01;
338const USHORT PARAMFLAG_FOUT = 0x02;
339const USHORT PARAMFLAG_FLCID = 0x04;
340const USHORT PARAMFLAG_FRETVAL = 0x08;
341const USHORT PARAMFLAG_FOPT = 0x10;
342const USHORT PARAMFLAG_FHASDEFAULT = 0x20;
343const USHORT PARAMFLAG_FHASCUSTDATA = 0x40;
344
345typedef struct tagIDLDESC {
346 ULONG_PTR dwReserved;
347 USHORT wIDLFlags;
348} IDLDESC, *LPIDLDESC;
349
350const USHORT IDLFLAG_NONE = PARAMFLAG_NONE;
351const USHORT IDLFLAG_FIN = PARAMFLAG_FIN;
352const USHORT IDLFLAG_FOUT = PARAMFLAG_FOUT;
353const USHORT IDLFLAG_FLCID = PARAMFLAG_FLCID;
354const USHORT IDLFLAG_FRETVAL = PARAMFLAG_FRETVAL;
355
356cpp_quote("#if 0") /* for IDL only */
357typedef struct tagELEMDESC {
358 TYPEDESC tdesc;
359 PARAMDESC paramdesc;
360} ELEMDESC;
361cpp_quote("#else") /* C/C++ defs */
362cpp_quote("typedef struct tagELEMDESC {")
363cpp_quote(" TYPEDESC tdesc;")
364cpp_quote(" union {")
365cpp_quote(" IDLDESC idldesc;")
366cpp_quote(" PARAMDESC paramdesc;")
367cpp_quote(" } DUMMYUNIONNAME;")
368cpp_quote("} ELEMDESC, *LPELEMDESC;")
369cpp_quote("#endif")
370
371typedef struct tagTYPEATTR {
372 GUID guid;
373 LCID lcid;
374 DWORD dwReserved;
375 MEMBERID memidConstructor;
376 MEMBERID memidDestructor;
377 LPOLESTR lpstrSchema;
378 ULONG cbSizeInstance;
379 TYPEKIND typekind;
380 WORD cFuncs;
381 WORD cVars;
382 WORD cImplTypes;
383 WORD cbSizeVft;
384 WORD cbAlignment;
385 WORD wTypeFlags;
386 WORD wMajorVerNum;
387 WORD wMinorVerNum;
388 TYPEDESC tdescAlias;
389 IDLDESC idldescType;
390} TYPEATTR, *LPTYPEATTR;
391
392typedef struct tagDISPPARAMS {
393 [size_is(cArgs)] VARIANTARG *rgvarg;
394 [size_is(cNamedArgs)] DISPID *rgdispidNamedArgs;
395 UINT cArgs;
396 UINT cNamedArgs;
397} DISPPARAMS;
398
399cpp_quote("#if 0") /* for IDL only */
400typedef struct tagEXCEPINFO {
401 WORD wCode;
402 WORD wReserved;
403 BSTR bstrSource;
404 BSTR bstrDescription;
405 BSTR bstrHelpFile;
406 DWORD dwHelpContext;
407 ULONG_PTR pvReserved;
408 ULONG_PTR pfnDeferredFillIn;
409 SCODE scode;
410} EXCEPINFO;
411cpp_quote("#else")
412cpp_quote("typedef struct tagEXCEPINFO {")
413cpp_quote(" WORD wCode;")
414cpp_quote(" WORD wReserved;")
415cpp_quote(" BSTR bstrSource;")
416cpp_quote(" BSTR bstrDescription;")
417cpp_quote(" BSTR bstrHelpFile;")
418cpp_quote(" DWORD dwHelpContext;")
419cpp_quote(" PVOID pvReserved;")
420cpp_quote(" HRESULT (__stdcall *pfnDeferredFillIn)(struct tagEXCEPINFO *);")
421cpp_quote(" SCODE scode;")
422cpp_quote("} EXCEPINFO, *LPEXCEPINFO;")
423cpp_quote("#endif")
424
425typedef [v1_enum] enum tagCALLCONV {
426 CC_FASTCALL = 0,
427 CC_CDECL = 1,
428 CC_MSCPASCAL,
429 CC_PASCAL = CC_MSCPASCAL,
430 CC_MACPASCAL,
431 CC_STDCALL,
432 CC_FPFASTCALL,
433 CC_SYSCALL,
434 CC_MPWCDECL,
435 CC_MPWPASCAL,
436 CC_MAX
437} CALLCONV;
438
439typedef [v1_enum] enum tagFUNCKIND {
440 FUNC_VIRTUAL,
441 FUNC_PUREVIRTUAL,
442 FUNC_NONVIRTUAL,
443 FUNC_STATIC,
444 FUNC_DISPATCH
445} FUNCKIND;
446
447typedef [v1_enum] enum tagINVOKEKIND {
448 INVOKE_FUNC = 1,
449 INVOKE_PROPERTYGET = 2,
450 INVOKE_PROPERTYPUT = 4,
451 INVOKE_PROPERTYPUTREF = 8
452} INVOKEKIND;
453
454typedef struct tagFUNCDESC {
455 MEMBERID memid;
456 [size_is(cScodes)] SCODE *lprgscode;
457 [size_is(cParams)] ELEMDESC *lprgelemdescParam;
458 FUNCKIND funckind;
459 INVOKEKIND invkind;
460 CALLCONV callconv;
461 SHORT cParams;
462 SHORT cParamsOpt;
463 SHORT oVft;
464 SHORT cScodes;
465 ELEMDESC elemdescFunc;
466 WORD wFuncFlags;
467} FUNCDESC, *LPFUNCDESC;
468
469typedef [v1_enum] enum tagVARKIND {
470 VAR_PERINSTANCE,
471 VAR_STATIC,
472 VAR_CONST,
473 VAR_DISPATCH
474} VARKIND;
475
476const USHORT IMPLTYPEFLAG_FDEFAULT = 0x1;
477const USHORT IMPLTYPEFLAG_FSOURCE = 0x2;
478const USHORT IMPLTYPEFLAG_FRESTRICTED = 0x4;
479const USHORT IMPLTYPEFLAG_FDEFAULTVTABLE = 0x8;
480
481typedef struct tagVARDESC {
482 MEMBERID memid;
483 LPOLESTR lpstrSchema;
484 [switch_is(varkind)] union {
485 [case(VAR_PERINSTANCE, VAR_DISPATCH, VAR_STATIC)] ULONG oInst;
486 [case(VAR_CONST)] VARIANT *lpvarValue;
487 } DUMMYUNIONNAME;
488 ELEMDESC elemdescVar;
489 WORD wVarFlags;
490 VARKIND varkind;
491} VARDESC, *LPVARDESC;
492
493typedef enum tagTYPEFLAGS {
494 TYPEFLAG_FAPPOBJECT = 0x0001,
495 TYPEFLAG_FCANCREATE = 0x0002,
496 TYPEFLAG_FLICENSED = 0x0004,
497 TYPEFLAG_FPREDECLID = 0x0008,
498 TYPEFLAG_FHIDDEN = 0x0010,
499 TYPEFLAG_FCONTROL = 0x0020,
500 TYPEFLAG_FDUAL = 0x0040,
501 TYPEFLAG_FNONEXTENSIBLE = 0x0080,
502 TYPEFLAG_FOLEAUTOMATION = 0x0100,
503 TYPEFLAG_FRESTRICTED = 0x0200,
504 TYPEFLAG_FAGGREGATABLE = 0x0400,
505 TYPEFLAG_FREPLACEABLE = 0x0800,
506 TYPEFLAG_FDISPATCHABLE = 0x1000,
507 TYPEFLAG_FREVERSEBIND = 0x2000,
508 TYPEFLAG_FPROXY = 0x4000
509} TYPEFLAGS;
510
511typedef enum tagFUNCFLAGS {
512 FUNCFLAG_FRESTRICTED = 0x0001,
513 FUNCFLAG_FSOURCE = 0x0002,
514 FUNCFLAG_FBINDABLE = 0x0004,
515 FUNCFLAG_FREQUESTEDIT = 0x0008,
516 FUNCFLAG_FDISPLAYBIND = 0x0010,
517 FUNCFLAG_FDEFAULTBIND = 0x0020,
518 FUNCFLAG_FHIDDEN = 0x0040,
519 FUNCFLAG_FUSESGETLASTERROR = 0x0080,
520 FUNCFLAG_FDEFAULTCOLLELEM = 0x0100,
521 FUNCFLAG_FUIDEFAULT = 0x0200,
522 FUNCFLAG_FNONBROWSABLE = 0x0400,
523 FUNCFLAG_FREPLACEABLE = 0x0800,
524 FUNCFLAG_FIMMEDIATEBIND = 0x1000
525} FUNCFLAGS;
526
527typedef enum tagVARFLAGS {
528 VARFLAG_FREADONLY = 0x0001,
529 VARFLAG_FSOURCE = 0x0002,
530 VARFLAG_FBINDABLE = 0x0004,
531 VARFLAG_FREQUESTEDIT = 0x0008,
532 VARFLAG_FDISPLAYBIND = 0x0010,
533 VARFLAG_FDEFAULTBIND = 0x0020,
534 VARFLAG_FHIDDEN = 0x0040,
535 VARFLAG_FRESTRICTED = 0x0080,
536 VARFLAG_FDEFAULTCOLLELEM = 0x0100,
537 VARFLAG_FUIDEFAULT = 0x0200,
538 VARFLAG_FNONBROWSABLE = 0x0400,
539 VARFLAG_FREPLACEABLE = 0x0800,
540 VARFLAG_FIMMEDIATEBIND = 0x1000
541} VARFLAGS;
542
543typedef [wire_marshal(DWORD)] struct tagCLEANLOCALSTORAGE {
544 IUnknown *pInterface;
545 PVOID pStorage;
546 DWORD flags;
547} CLEANLOCALSTORAGE;
548
549typedef struct tagCUSTDATAITEM {
550 GUID guid;
551 VARIANTARG varValue;
552} CUSTDATAITEM, *LPCUSTDATAITEM;
553
554typedef struct tagCUSTDATA {
555 DWORD cCustData;
556 [size_is(cCustData)] LPCUSTDATAITEM prgCustData;
557} CUSTDATA, *LPCUSTDATA;
558
559} /* interface IOleAutomationTypes */
560
561/******************** INTERFACES ********************/
562
563[
564 object,
565 uuid(00020400-0000-0000-C000-000000000046),
566 pointer_default(unique)
567]
568interface IDispatch : IUnknown
569{
570 typedef [unique] IDispatch *LPDISPATCH;
571
572 const DISPID DISPID_UNKNOWN = -1;
573 const DISPID DISPID_VALUE = 0;
574 const DISPID DISPID_PROPERTYPUT = -3;
575 const DISPID DISPID_NEWENUM = -4;
576 const DISPID DISPID_EVALUATE = -5;
577 const DISPID DISPID_CONSTRUCTOR = -6;
578 const DISPID DISPID_DESTRUCTOR = -7;
579 const DISPID DISPID_COLLECT = -8;
580
581 HRESULT GetTypeInfoCount(
582 [out] UINT *pctinfo);
583
584 HRESULT GetTypeInfo(
585 [in] UINT iTInfo,
586 [in] LCID lcid,
587 [out] ITypeInfo **ppTInfo);
588
589 HRESULT GetIDsOfNames(
590 [in] REFIID riid,
591 [in, size_is(cNames)] LPOLESTR *rgszNames,
592 [in] UINT cNames,
593 [in] LCID lcid,
594 [out, size_is(cNames)] DISPID *rgDispId);
595
596 [local]
597 HRESULT Invoke(
598 [in] DISPID dispIdMember,
599 [in] REFIID riid,
600 [in] LCID lcid,
601 [in] WORD wFlags,
602 [in, out] DISPPARAMS *pDispParams,
603 [out] VARIANT *pVarResult,
604 [out] EXCEPINFO *pExcepInfo,
605 [out] UINT *puArgErr);
606
607 [call_as(Invoke)]
608 HRESULT RemoteInvoke(
609 [in] DISPID dispIdMember,
610 [in] REFIID riid,
611 [in] LCID lcid,
612 [in] DWORD dwFlags,
613 [in] DISPPARAMS *pDispParams,
614 [out] VARIANT *pVarResult,
615 [out] EXCEPINFO *pExcepInfo,
616 [out] UINT *pArgErr,
617 [in] UINT cVarRef,
618 [in, size_is(cVarRef)] UINT *rgVarRefIdx,
619 [in, out, size_is(cVarRef)] VARIANTARG *rgVarRef);
620}
621
622[
623 object,
624 uuid(00020404-0000-0000-C000-000000000046),
625 pointer_default(unique)
626]
627interface IEnumVARIANT : IUnknown
628{
629 typedef [unique] IEnumVARIANT *LPENUMVARIANT;
630
631 [local]
632 HRESULT Next(
633 [in] ULONG celt,
634 [out] VARIANT *rgVar,
635 [out] ULONG *pCeltFetched);
636
637 [call_as(Next)]
638 HRESULT RemoteNext(
639 [in] ULONG celt,
640 [out, size_is(celt), length_is(*pCeltFetched)]
641 VARIANT *rgVar,
642 [out] ULONG *pCeltFetched);
643
644 HRESULT Skip(
645 [in] ULONG celt);
646
647 HRESULT Reset();
648
649 HRESULT Clone(
650 [out] IEnumVARIANT **ppEnum);
651}
652
653[
654 object,
655 uuid(00020403-0000-0000-C000-000000000046),
656 pointer_default(unique)
657]
658interface ITypeComp : IUnknown
659{
660 typedef [unique] ITypeComp *LPTYPECOMP;
661
662 typedef [v1_enum] enum tagDESCKIND {
663 DESCKIND_NONE = 0,
664 DESCKIND_FUNCDESC,
665 DESCKIND_VARDESC,
666 DESCKIND_TYPECOMP,
667 DESCKIND_IMPLICITAPPOBJ,
668 DESCKIND_MAX
669 } DESCKIND;
670
671 typedef union tagBINDPTR {
672 FUNCDESC *lpfuncdesc;
673 VARDESC *lpvardesc;
674 ITypeComp *lptcomp;
675 } BINDPTR, *LPBINDPTR;
676
677 [local]
678 HRESULT Bind(
679 [in] LPOLESTR szName,
680 [in] ULONG lHashVal,
681 [in] WORD wFlags,
682 [out] ITypeInfo **ppTInfo,
683 [out] DESCKIND *pDescKind,
684 [out] BINDPTR *pBindPtr);
685
686 [call_as(Bind)]
687 HRESULT RemoteBind(
688 [in] LPOLESTR szName,
689 [in] ULONG lHashVal,
690 [in] WORD wFlags,
691 [out] ITypeInfo **ppTInfo,
692 [out] DESCKIND *pDescKind,
693 [out] LPFUNCDESC *ppFuncDesc,
694 [out] LPVARDESC *ppVarDesc,
695 [out] ITypeComp **ppTypeComp,
696 [out] CLEANLOCALSTORAGE *pDummy);
697
698 [local]
699 HRESULT BindType(
700 [in] LPOLESTR szName,
701 [in] ULONG lHashVal,
702 [out] ITypeInfo **ppTInfo,
703 [out] ITypeComp **ppTComp);
704
705 [call_as(BindType)]
706 HRESULT RemoteBindType(
707 [in] LPOLESTR szName,
708 [in] ULONG lHashVal,
709 [out] ITypeInfo **ppTInfo);
710}
711
712[
713 object,
714 uuid(00020401-0000-0000-C000-000000000046),
715 pointer_default(unique)
716]
717interface ITypeInfo : IUnknown
718{
719 typedef [unique] ITypeInfo *LPTYPEINFO;
720
721 [local]
722 HRESULT GetTypeAttr(
723 [out] TYPEATTR **ppTypeAttr);
724
725 [call_as(GetTypeAttr)]
726 HRESULT RemoteGetTypeAttr(
727 [out] LPTYPEATTR *ppTypeAttr,
728 [out] CLEANLOCALSTORAGE *pDummy);
729
730 HRESULT GetTypeComp(
731 [out] ITypeComp **ppTComp);
732
733 [local]
734 HRESULT GetFuncDesc(
735 [in] UINT index,
736 [out] FUNCDESC **ppFuncDesc);
737
738 [call_as(GetFuncDesc)]
739 HRESULT RemoteGetFuncDesc(
740 [in] UINT index,
741 [out] LPFUNCDESC *ppFuncDesc,
742 [out] CLEANLOCALSTORAGE *pDummy);
743
744 [local]
745 HRESULT GetVarDesc(
746 [in] UINT index,
747 [out] VARDESC **ppVarDesc);
748
749 [call_as(GetVarDesc)]
750 HRESULT RemoteGetVarDesc(
751 [in] UINT index,
752 [out] LPVARDESC *ppVarDesc,
753 [out] CLEANLOCALSTORAGE *pDummy);
754
755 [local]
756 HRESULT GetNames(
757 [in] MEMBERID memid,
758 [out, size_is(cMaxNames), length_is(*pcNames)] BSTR *rgBstrNames,
759 [in] UINT cMaxNames,
760 [out] UINT *pcNames);
761
762 [call_as(GetNames)]
763 HRESULT RemoteGetNames(
764 [in] MEMBERID memid,
765 [out, size_is(cMaxNames), length_is(*pcNames)] BSTR *rgBstrNames,
766 [in] UINT cMaxNames,
767 [out] UINT *pcNames);
768
769 HRESULT GetRefTypeOfImplType(
770 [in] UINT index,
771 [out] HREFTYPE *pRefType);
772
773 HRESULT GetImplTypeFlags(
774 [in] UINT index,
775 [out] INT *pImplTypeFlags);
776
777 [local]
778 HRESULT GetIDsOfNames(
779 [in, size_is(cNames)] LPOLESTR *rgszNames,
780 [in] UINT cNames,
781 [out, size_is(cNames)] MEMBERID *pMemId);
782
783 [call_as(GetIDsOfNames)]
784 HRESULT LocalGetIDsOfNames();
785
786 [local]
787 HRESULT Invoke(
788 [in] PVOID pvInstance,
789 [in] MEMBERID memid,
790 [in] WORD wFlags,
791 [in, out] DISPPARAMS *pDispParams,
792 [out] VARIANT *pVarResult,
793 [out] EXCEPINFO *pExcepInfo,
794 [out] UINT *puArgErr);
795
796 [call_as(Invoke)]
797 HRESULT LocalInvoke();
798
799 [local]
800 HRESULT GetDocumentation(
801 [in] MEMBERID memid,
802 [out] BSTR *pBstrName,
803 [out] BSTR *pBstrDocString,
804 [out] DWORD *pdwHelpContext,
805 [out] BSTR *pBstrHelpFile);
806
807 [call_as(GetDocumentation)]
808 HRESULT RemoteGetDocumentation(
809 [in] MEMBERID memid,
810 [in] DWORD refPtrFlags,
811 [out] BSTR *pBstrName,
812 [out] BSTR *pBstrDocString,
813 [out] DWORD *pdwHelpContext,
814 [out] BSTR *pBstrHelpFile);
815
816 [local]
817 HRESULT GetDllEntry(
818 [in] MEMBERID memid,
819 [in] INVOKEKIND invKind,
820 [out] BSTR *pBstrDllName,
821 [out] BSTR *pBstrName,
822 [out] WORD *pwOrdinal);
823
824 [call_as(GetDllEntry)]
825 HRESULT RemoteGetDllEntry(
826 [in] MEMBERID memid,
827 [in] INVOKEKIND invKind,
828 [in] DWORD refPtrFlags,
829 [out] BSTR *pBstrDllName,
830 [out] BSTR *pBstrName,
831 [out] WORD *pwOrdinal);
832
833 HRESULT GetRefTypeInfo(
834 [in] HREFTYPE hRefType,
835 [out] ITypeInfo **ppTInfo);
836
837 [local]
838 HRESULT AddressOfMember(
839 [in] MEMBERID memid,
840 [in] INVOKEKIND invKind,
841 [out] PVOID *ppv);
842
843 [call_as(AddressOfMember)]
844 HRESULT LocalAddressOfMember();
845
846 [local]
847 HRESULT CreateInstance(
848 [in] IUnknown *pUnkOuter,
849 [in] REFIID riid,
850 [out, iid_is(riid)] PVOID *ppvObj);
851
852 [call_as(CreateInstance)]
853 HRESULT RemoteCreateInstance(
854 [in] REFIID riid,
855 [out, iid_is(riid)] IUnknown **ppvObj);
856
857 HRESULT GetMops(
858 [in] MEMBERID memid,
859 [out] BSTR *pBstrMops);
860
861 [local]
862 HRESULT GetContainingTypeLib(
863 [out] ITypeLib **ppTLib,
864 [out] UINT *pIndex);
865
866 [call_as(GetContainingTypeLib)]
867 HRESULT RemoteGetContainingTypeLib(
868 [out] ITypeLib **ppTLib,
869 [out] UINT *pIndex);
870
871 [local]
872 void ReleaseTypeAttr(
873 [in] TYPEATTR *pTypeAttr);
874
875 [call_as(ReleaseTypeAttr)]
876 HRESULT LocalReleaseTypeAttr();
877
878 [local]
879 void ReleaseFuncDesc(
880 [in] FUNCDESC *pFuncDesc);
881
882 [call_as(ReleaseFuncDesc)]
883 HRESULT LocalReleaseFuncDesc();
884
885 [local]
886 void ReleaseVarDesc(
887 [in] VARDESC *pVarDesc);
888
889 [call_as(ReleaseVarDesc)]
890 HRESULT LocalReleaseVarDesc();
891}
892
893[
894 object,
895 uuid(00020412-0000-0000-C000-000000000046),
896 pointer_default(unique)
897]
898interface ITypeInfo2 : ITypeInfo
899{
900 typedef [unique] ITypeInfo2 *LPTYPEINFO2;
901
902 HRESULT GetTypeKind(
903 [out] TYPEKIND *pTypeKind);
904
905 HRESULT GetTypeFlags(
906 [out] ULONG *pTypeFlags);
907
908 HRESULT GetFuncIndexOfMemId(
909 [in] MEMBERID memid,
910 [in] INVOKEKIND invKind,
911 [out] UINT *pFuncIndex);
912
913 HRESULT GetVarIndexOfMemId(
914 [in] MEMBERID memid,
915 [out] UINT *pVarIndex);
916
917 HRESULT GetCustData(
918 [in] REFGUID guid,
919 [out] VARIANT *pVarVal);
920
921 HRESULT GetFuncCustData(
922 [in] UINT index,
923 [in] REFGUID guid,
924 [out] VARIANT *pVarVal);
925
926 HRESULT GetParamCustData(
927 [in] UINT indexFunc,
928 [in] UINT indexParam,
929 [in] REFGUID guid,
930 [out] VARIANT *pVarVal);
931
932 HRESULT GetVarCustData(
933 [in] UINT index,
934 [in] REFGUID guid,
935 [out] VARIANT *pVarVal);
936
937 HRESULT GetImplTypeCustData(
938 [in] UINT index,
939 [in] REFGUID guid,
940 [out] VARIANT *pVarVal);
941
942 [local]
943 HRESULT GetDocumentation2(
944 [in] MEMBERID memid,
945 [in] LCID lcid,
946 [out] BSTR *pbstrHelpString,
947 [out] DWORD *pdwHelpStringContext,
948 [out] BSTR *pbstrHelpStringDll);
949
950 [call_as(GetDocumentation2)]
951 HRESULT RemoteGetDocumentation2(
952 [in] MEMBERID memid,
953 [in] LCID lcid,
954 [in] DWORD refPtrFlags,
955 [out] BSTR *pbstrHelpString,
956 [out] DWORD *pdwHelpStringContext,
957 [out] BSTR *pbstrHelpStringDll);
958
959 HRESULT GetAllCustData(
960 [out] CUSTDATA *pCustData);
961
962 HRESULT GetAllFuncCustData(
963 [in] UINT index,
964 [out] CUSTDATA *pCustData);
965
966 HRESULT GetAllParamCustData(
967 [in] UINT indexFunc,
968 [in] UINT indexParam,
969 [out] CUSTDATA *pCustData);
970
971 HRESULT GetAllVarCustData(
972 [in] UINT index,
973 [out] CUSTDATA *pCustData);
974
975 HRESULT GetAllImplTypeCustData(
976 [in] UINT index,
977 [out] CUSTDATA *pCustData);
978}
979
980[
981 object,
982 uuid(00020402-0000-0000-C000-000000000046),
983 pointer_default(unique)
984]
985interface ITypeLib : IUnknown
986{
987 typedef [unique] ITypeLib *LPTYPELIB;
988
989 typedef [v1_enum] enum tagSYSKIND {
990 SYS_WIN16 = 0,
991 SYS_WIN32,
992 SYS_MAC,
993 SYS_WIN64
994 } SYSKIND;
995
996 typedef [v1_enum] enum tagLIBFLAGS {
997 LIBFLAG_FRESTRICTED = 0x01,
998 LIBFLAG_FCONTROL = 0x02,
999 LIBFLAG_FHIDDEN = 0x04,
1000 LIBFLAG_FHASDISKIMAGE = 0x08
1001 } LIBFLAGS;
1002
1003 typedef struct tagTLIBATTR {
1004 GUID guid;
1005 LCID lcid;
1006 SYSKIND syskind;
1007 WORD wMajorVerNum;
1008 WORD wMinorVerNum;
1009 WORD wLibFlags;
1010 } TLIBATTR, *LPTLIBATTR;
1011
1012 [local]
1013 UINT GetTypeInfoCount();
1014
1015 [call_as(GetTypeInfoCount)]
1016 HRESULT RemoteGetTypeInfoCount(
1017 [out] UINT *pcTInfo);
1018
1019 HRESULT GetTypeInfo(
1020 [in] UINT index,
1021 [out] ITypeInfo **ppTInfo);
1022
1023 HRESULT GetTypeInfoType(
1024 [in] UINT index,
1025 [out] TYPEKIND *pTKind);
1026
1027 HRESULT GetTypeInfoOfGuid(
1028 [in] REFGUID guid,
1029 [out] ITypeInfo **ppTinfo);
1030
1031 [local]
1032 HRESULT GetLibAttr(
1033 [out] TLIBATTR **ppTLibAttr);
1034
1035 [call_as(GetLibAttr)]
1036 HRESULT RemoteGetLibAttr(
1037 [out] LPTLIBATTR *ppTLibAttr,
1038 [out] CLEANLOCALSTORAGE *pDummy);
1039
1040 HRESULT GetTypeComp(
1041 [out] ITypeComp **ppTComp);
1042
1043 [local]
1044 HRESULT GetDocumentation(
1045 [in] INT index,
1046 [out] BSTR *pBstrName,
1047 [out] BSTR *pBstrDocString,
1048 [out] DWORD *pdwHelpContext,
1049 [out] BSTR *pBstrHelpFile);
1050
1051 [call_as(GetDocumentation)]
1052 HRESULT RemoteGetDocumentation(
1053 [in] INT index,
1054 [in] DWORD refPtrFlags,
1055 [out] BSTR *pBstrName,
1056 [out] BSTR *pBstrDocString,
1057 [out] DWORD *pdwHelpContext,
1058 [out] BSTR *pBstrHelpFile);
1059
1060 [local]
1061 HRESULT IsName(
1062 [in, out] LPOLESTR szNameBuf,
1063 [in] ULONG lHashVal,
1064 [out] BOOL *pfName);
1065
1066 [call_as(IsName)]
1067 HRESULT RemoteIsName(
1068 [in] LPOLESTR szNameBuf,
1069 [in] ULONG lHashVal,
1070 [out] BOOL *pfName,
1071 [out] BSTR *pBstrLibName);
1072
1073 [local]
1074 HRESULT FindName(
1075 [in, out] LPOLESTR szNameBuf,
1076 [in] ULONG lHashVal,
1077 [out, size_is(*pcFound), length_is(*pcFound)] ITypeInfo **ppTInfo,
1078 [out, size_is(*pcFound), length_is(*pcFound)] MEMBERID *rgMemId,
1079 [in, out] USHORT *pcFound);
1080
1081 [call_as(FindName)]
1082 HRESULT RemoteFindName(
1083 [in] LPOLESTR szNameBuf,
1084 [in] ULONG lHashVal,
1085 [out, size_is(*pcFound), length_is(*pcFound)] ITypeInfo **ppTInfo,
1086 [out, size_is(*pcFound), length_is(*pcFound)] MEMBERID *rgMemId,
1087 [in, out] USHORT *pcFound,
1088 [out] BSTR *pBstrLibName);
1089
1090 [local]
1091 void ReleaseTLibAttr(
1092 [in] TLIBATTR *pTLibAttr);
1093
1094 [call_as(ReleaseTLibAttr)]
1095 HRESULT LocalReleaseTLibAttr();
1096}
1097
1098[
1099 object,
1100 uuid(00020411-0000-0000-C000-000000000046),
1101 pointer_default(unique)
1102]
1103interface ITypeLib2 : ITypeLib
1104{
1105 typedef [unique] ITypeLib2 *LPTYPELIB2;
1106
1107 HRESULT GetCustData(
1108 [in] REFGUID guid,
1109 [out] VARIANT *pVarVal);
1110
1111 [local]
1112 HRESULT GetLibStatistics(
1113 [out] ULONG *pcUniqueNames,
1114 [out] ULONG *pcchUniqueNames);
1115
1116 [call_as(GetLibStatistics)]
1117 HRESULT RemoteGetLibStatistics(
1118 [out] ULONG *pcUniqueNames,
1119 [out] ULONG *pcchUniqueNames);
1120
1121 [local]
1122 HRESULT GetDocumentation2(
1123 [in] INT index,
1124 [in] LCID lcid,
1125 [out] BSTR *pbstrHelpString,
1126 [out] DWORD *pdwHelpStringContext,
1127 [out] BSTR *pbstrHelpStringDll);
1128
1129 [call_as(GetDocumentation2)]
1130 HRESULT RemoteGetDocumentation2(
1131 [in] INT index,
1132 [in] LCID lcid,
1133 [in] DWORD refPtrFlags,
1134 [out] BSTR *pbstrHelpString,
1135 [out] DWORD *pdwHelpStringContext,
1136 [out] BSTR *pbstrHelpStringDll);
1137
1138 HRESULT GetAllCustData(
1139 [out] CUSTDATA *pCustData);
1140}
1141
1142[
1143 local,
1144 object,
1145 uuid(00020410-0000-0000-C000-000000000046),
1146 pointer_default(unique)
1147]
1148interface ITypeChangeEvents : IUnknown
1149{
1150 typedef [unique] ITypeChangeEvents *LPTYPECHANGEEVENTS;
1151
1152 typedef enum tagCHANGEKIND {
1153 CHANGEKIND_ADDMEMBER,
1154 CHANGEKIND_DELETEMEMBER,
1155 CHANGEKIND_SETNAMES,
1156 CHANGEKIND_SETDOCUMENTATION,
1157 CHANGEKIND_GENERAL,
1158 CHANGEKIND_INVALIDATE,
1159 CHANGEKIND_CHANGEFAILED,
1160 CHANGEKIND_MAX
1161 } CHANGEKIND;
1162
1163 HRESULT RequestTypeChange(
1164 [in] CHANGEKIND changeKind,
1165 [in] ITypeInfo *pTInfoBefore,
1166 [in] LPOLESTR pStrName,
1167 [out] INT *pfCancel);
1168
1169 HRESULT AfterTypeChange(
1170 [in] CHANGEKIND changeKind,
1171 [in] ITypeInfo *pTInfoAfter,
1172 [in] LPOLESTR pStrName);
1173}
1174
1175[
1176 object,
1177 uuid(1CF2B120-547D-101B-8E65-08002B2BD119),
1178 pointer_default(unique)
1179]
1180interface IErrorInfo : IUnknown
1181{
1182 typedef [unique] IErrorInfo *LPERRORINFO;
1183
1184 HRESULT GetGUID(
1185 [out] GUID *pGUID);
1186
1187 HRESULT GetSource(
1188 [out] BSTR *pBstrSource);
1189
1190 HRESULT GetDescription(
1191 [out] BSTR *pBstrDescription);
1192
1193 HRESULT GetHelpFile(
1194 [out] BSTR *pBstrHelpFile);
1195
1196 HRESULT GetHelpContext(
1197 [out] DWORD *pdwHelpContext);
1198}
1199
1200[
1201 object,
1202 uuid(22F03340-547D-101B-8E65-08002B2BD119),
1203 pointer_default(unique)
1204]
1205interface ICreateErrorInfo : IUnknown
1206{
1207 typedef [unique] ICreateErrorInfo *LPCREATEERRORINFO;
1208
1209 HRESULT SetGUID(
1210 [in] REFGUID rguid);
1211
1212 HRESULT SetSource(
1213 [in] LPOLESTR szSource);
1214
1215 HRESULT SetDescription(
1216 [in] LPOLESTR szDescription);
1217
1218 HRESULT SetHelpFile(
1219 [in] LPOLESTR szHelpFile);
1220
1221 HRESULT SetHelpContext(
1222 [in] DWORD dwHelpContext);
1223}
1224
1225[
1226 object,
1227 uuid(DF0B3D60-548F-101B-8E65-08002B2BD119),
1228 pointer_default(unique)
1229]
1230interface ISupportErrorInfo : IUnknown
1231{
1232 typedef [unique] ISupportErrorInfo *LPSUPPORTERRORINFO;
1233
1234 HRESULT InterfaceSupportsErrorInfo(
1235 [in] REFIID riid);
1236}
1237
1238[
1239 object,
1240 uuid(0000002E-0000-0000-C000-000000000046)
1241]
1242interface ITypeFactory : IUnknown
1243{
1244 HRESULT CreateFromTypeInfo(
1245 [in] ITypeInfo *pTypeInfo,
1246 [in] REFIID riid,
1247 [out, iid_is(riid)] IUnknown **ppv);
1248}
1249
1250[
1251 local,
1252 object,
1253 uuid(0000002D-0000-0000-C000-000000000046)
1254]
1255interface ITypeMarshal : IUnknown
1256{
1257 HRESULT Size(
1258 [in] PVOID pvType,
1259 [in] DWORD dwDestContext,
1260 [in] PVOID pvDestContext,
1261 [out] ULONG *pSize);
1262
1263 HRESULT Marshal(
1264 [in] PVOID pvType,
1265 [in] DWORD dwDestContext,
1266 [in] PVOID pvDestContext,
1267 [in] ULONG cbBufferLength,
1268 [out] BYTE *pBuffer,
1269 [out] ULONG *pcbWritten);
1270
1271 HRESULT Unmarshal(
1272 [out] PVOID pvType,
1273 [in] DWORD dwFlags,
1274 [in] ULONG cbBufferLength,
1275 [in] BYTE *pBuffer,
1276 [out] ULONG *pcbRead);
1277
1278 HRESULT Free(
1279 [in] PVOID pvType);
1280}
1281
1282[
1283 local,
1284 object,
1285 uuid(0000002F-0000-0000-C000-000000000046)
1286]
1287interface IRecordInfo : IUnknown
1288{
1289 typedef [unique] IRecordInfo *LPRECORDINFO;
1290
1291 HRESULT RecordInit(
1292 [out] PVOID pvNew);
1293
1294 HRESULT RecordClear(
1295 [in] PVOID pvExisting);
1296
1297 HRESULT RecordCopy(
1298 [in] PVOID pvExisting,
1299 [out] PVOID pvNew);
1300
1301 HRESULT GetGuid(
1302 [out] GUID *pguid);
1303
1304 HRESULT GetName(
1305 [out] BSTR *pbstrName);
1306
1307 HRESULT GetSize(
1308 [out] ULONG *pcbSize);
1309
1310 HRESULT GetTypeInfo(
1311 [out] ITypeInfo **ppTypeInfo);
1312
1313 HRESULT GetField(
1314 [in] PVOID pvData,
1315 [in] LPCOLESTR szFieldName,
1316 [out] VARIANT *pvarField);
1317
1318 HRESULT GetFieldNoCopy(
1319 [in] PVOID pvData,
1320 [in] LPCOLESTR szFieldName,
1321 [out] VARIANT *pvarField,
1322 [out] PVOID *ppvDataCArray);
1323
1324 HRESULT PutField(
1325 [in] ULONG wFlags,
1326 [in, out] PVOID pvData,
1327 [in] LPCOLESTR szFieldName,
1328 [in] VARIANT *pvarField);
1329
1330 HRESULT PutFieldNoCopy(
1331 [in] ULONG wFlags,
1332 [in, out] PVOID pvData,
1333 [in] LPCOLESTR szFieldName,
1334 [in] VARIANT *pvarField);
1335
1336 HRESULT GetFieldNames(
1337 [in, out] ULONG *pcNames,
1338 [out, size_is(*pcNames), length_is(*pcNames)] BSTR *rgBstrNames);
1339
1340 BOOL IsMatchingType(
1341 [in] IRecordInfo *pRecordInfo);
1342
1343 PVOID RecordCreate();
1344
1345 HRESULT RecordCreateCopy(
1346 [in] PVOID pvSource,
1347 [out] PVOID *ppvDest);
1348
1349 HRESULT RecordDestroy(
1350 [in] PVOID pvRecord);
1351}
1352
1353[
1354 local,
1355 object,
1356 uuid(00020405-0000-0000-C000-000000000046),
1357 pointer_default(unique)
1358]
1359interface ICreateTypeInfo : IUnknown
1360{
1361 typedef [unique] ICreateTypeInfo *LPCREATETYPEINFO;
1362
1363 HRESULT SetGuid(
1364 [in] REFGUID guid);
1365
1366 HRESULT SetTypeFlags(
1367 [in] UINT uTypeFlags);
1368
1369 HRESULT SetDocString(
1370 [in] LPOLESTR pStrDoc);
1371
1372 HRESULT SetHelpContext(
1373 [in] DWORD dwHelpContext);
1374
1375 HRESULT SetVersion(
1376 [in] WORD wMajorVerNum,
1377 [in] WORD wMinorVerNum);
1378
1379 HRESULT AddRefTypeInfo(
1380 [in] ITypeInfo *pTInfo,
1381 [in] HREFTYPE *phRefType);
1382
1383 HRESULT AddFuncDesc(
1384 [in] UINT index,
1385 [in] FUNCDESC *pFuncDesc);
1386
1387 HRESULT AddImplType(
1388 [in] UINT index,
1389 [in] HREFTYPE hRefType);
1390
1391 HRESULT SetImplTypeFlags(
1392 [in] UINT index,
1393 [in] INT implTypeFlags);
1394
1395 HRESULT SetAlignment(
1396 [in] WORD cbAlignment);
1397
1398 HRESULT SetSchema(
1399 [in] LPOLESTR pStrSchema);
1400
1401 HRESULT AddVarDesc(
1402 [in] UINT index,
1403 [in] VARDESC *pVarDesc);
1404
1405 HRESULT SetFuncAndParamNames(
1406 [in] UINT index,
1407 [in, size_is(cNames)] LPOLESTR *rgszNames,
1408 [in] UINT cNames);
1409
1410 HRESULT SetVarName(
1411 [in] UINT index,
1412 [in] LPOLESTR szName);
1413
1414 HRESULT SetTypeDescAlias(
1415 [in] TYPEDESC *pTDescAlias);
1416
1417 HRESULT DefineFuncAsDllEntry(
1418 [in] UINT index,
1419 [in] LPOLESTR szDllName,
1420 [in] LPOLESTR szProcName);
1421
1422 HRESULT SetFuncDocString(
1423 [in] UINT index,
1424 [in] LPOLESTR szDocString);
1425
1426 HRESULT SetVarDocString(
1427 [in] UINT index,
1428 [in] LPOLESTR szDocString);
1429
1430 HRESULT SetFuncHelpContext(
1431 [in] UINT index,
1432 [in] DWORD dwHelpContext);
1433
1434 HRESULT SetVarHelpContext(
1435 [in] UINT index,
1436 [in] DWORD dwHelpContext);
1437
1438 HRESULT SetMops(
1439 [in] UINT index,
1440 [in] BSTR bstrMops);
1441
1442 HRESULT SetTypeIdldesc(
1443 [in] IDLDESC * pIdlDesc);
1444
1445 HRESULT LayOut();
1446}
1447
1448[
1449 local,
1450 object,
1451 uuid(0002040E-0000-0000-C000-000000000046),
1452 pointer_default(unique)
1453]
1454interface ICreateTypeInfo2 : ICreateTypeInfo
1455{
1456 typedef [unique] ICreateTypeInfo2 *LPCREATETYPEINFO2;
1457
1458 HRESULT DeleteFuncDesc(
1459 [in] UINT index);
1460
1461 HRESULT DeleteFuncDescByMemId(
1462 [in] MEMBERID memid,
1463 [in] INVOKEKIND invKind);
1464
1465 HRESULT DeleteVarDesc(
1466 [in] UINT index);
1467
1468 HRESULT DeleteVarDescByMemId(
1469 [in] MEMBERID memid);
1470
1471 HRESULT DeleteImplType(
1472 [in] UINT index);
1473
1474 HRESULT SetCustData(
1475 [in] REFGUID guid,
1476 [in] VARIANT *pVarVal);
1477
1478 HRESULT SetFuncCustData(
1479 [in] UINT index,
1480 [in] REFGUID guid,
1481 [in] VARIANT *pVarVal);
1482
1483 HRESULT SetParamCustData(
1484 [in] UINT indexFunc,
1485 [in] UINT indexParam,
1486 [in] REFGUID guid,
1487 [in] VARIANT *pVarVal);
1488
1489 HRESULT SetVarCustData(
1490 [in] UINT index,
1491 [in] REFGUID guid,
1492 [in] VARIANT *pVarVal);
1493
1494 HRESULT SetImplTypeCustData(
1495 [in] UINT index,
1496 [in] REFGUID guid,
1497 [in] VARIANT *pVarVal);
1498
1499 HRESULT SetHelpStringContext(
1500 [in] ULONG dwHelpStringContext);
1501
1502 HRESULT SetFuncHelpStringContext(
1503 [in] UINT index,
1504 [in] ULONG dwHelpStringContext);
1505
1506 HRESULT SetVarHelpStringContext(
1507 [in] UINT index,
1508 [in] ULONG dwHelpStringContext);
1509
1510 HRESULT Invalidate();
1511
1512 HRESULT SetName(
1513 [in] LPOLESTR szName);
1514}
1515
1516[
1517 local,
1518 object,
1519 uuid(00020406-0000-0000-C000-000000000046),
1520 pointer_default(unique)
1521]
1522interface ICreateTypeLib : IUnknown
1523{
1524 typedef [unique] ICreateTypeLib *LPCREATETYPELIB;
1525
1526 HRESULT CreateTypeInfo(
1527 [in] LPOLESTR szName,
1528 [in] TYPEKIND tkind,
1529 [out] ICreateTypeInfo **ppCTInfo);
1530
1531 HRESULT SetName(
1532 [in] LPOLESTR szName);
1533
1534 HRESULT SetVersion(
1535 [in] WORD wMajorVerNum,
1536 [in] WORD wMinorVerNum);
1537
1538 HRESULT SetGuid(
1539 [in] REFGUID guid);
1540
1541 HRESULT SetDocString(
1542 [in] LPOLESTR szDoc);
1543
1544 HRESULT SetHelpFileName(
1545 [in] LPOLESTR szHelpFileName);
1546
1547 HRESULT SetHelpContext(
1548 [in] DWORD dwHelpContext);
1549
1550 HRESULT SetLcid(
1551 [in] LCID lcid);
1552
1553 HRESULT SetLibFlags(
1554 [in] UINT uLibFlags);
1555
1556 HRESULT SaveAllChanges();
1557}
1558
1559[
1560 local,
1561 object,
1562 uuid(0002040F-0000-0000-C000-000000000046),
1563 pointer_default(unique)
1564]
1565interface ICreateTypeLib2 : ICreateTypeLib
1566{
1567 typedef [unique] ICreateTypeLib2 *LPCREATETYPELIB2;
1568
1569 HRESULT DeleteTypeInfo(
1570 [in] LPOLESTR szName);
1571
1572 HRESULT SetCustData(
1573 [in] REFGUID guid,
1574 [in] VARIANT *pVarVal);
1575
1576 HRESULT SetHelpStringContext(
1577 [in] ULONG dwHelpStringContext);
1578
1579 HRESULT SetHelpStringDll(
1580 [in] LPOLESTR szFileName);
1581}
1582
1583
1584/*****************************************************************************
1585 * IErrorLog interface
1586 */
1587[
1588 object,
1589 uuid(3127ca40-446e-11ce-8135-00aa004bb851),
1590 pointer_default(unique)
1591]
1592interface IErrorLog : IUnknown
1593{
1594 typedef IErrorLog *LPERRORLOG;
1595
1596 HRESULT AddError(
1597 [in] LPCOLESTR pszPropName,
1598 [in] EXCEPINFO *pExcepInfo);
1599}
1600
1601
1602/*****************************************************************************
1603 * IPropertyBag interface
1604 */
1605[
1606 object,
1607 uuid(55272a00-42cb-11ce-8135-00aa004bb851),
1608 pointer_default(unique)
1609]
1610interface IPropertyBag : IUnknown
1611{
1612 typedef IPropertyBag *LPPROPERTYBAG;
1613
1614 [local]
1615 HRESULT Read(
1616 [in] LPCOLESTR pszPropName,
1617 [in, out] VARIANT *pVar,
1618 [in] IErrorLog *pErrorLog);
1619
1620 [call_as(Read)]
1621 HRESULT RemoteRead(
1622 [in] LPCOLESTR pszPropName,
1623 [out] VARIANT *pVar,
1624 [in] IErrorLog *pErrorLog,
1625 [in] DWORD varType,
1626 [in] IUnknown *pUnkObj);
1627
1628 HRESULT Write(
1629 [in] LPCOLESTR pszPropName,
1630 [in] VARIANT *pVar);
1631}
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
@ VT_BSTR
Definition: compat.h:2303
@ VT_UNKNOWN
Definition: compat.h:2308
@ VT_RESERVED
Definition: compat.h:2343
@ VT_ERROR
Definition: compat.h:2305
@ VT_VARIANT
Definition: compat.h:2307
@ VT_I8
Definition: compat.h:2314
@ VT_I1
Definition: compat.h:2310
@ VT_I4
Definition: compat.h:2298
@ VT_I2
Definition: compat.h:2297
@ VT_RECORD
Definition: compat.h:2326
@ VT_DISPATCH
Definition: compat.h:2304
static const WCHAR version[]
Definition: asmname.c:66
switch(r->id)
Definition: btrfs.c:3046
const USHORT FADF_BSTR
Definition: oaidl.idl:134
const USHORT FADF_HAVEVARTYPE
Definition: oaidl.idl:133
SAFEARRAY * LPSAFEARRAY
Definition: oaidl.idl:125
const USHORT FADF_UNKNOWN
Definition: oaidl.idl:135
const USHORT FADF_RESERVED
Definition: oaidl.idl:138
const USHORT FADF_EMBEDDED
Definition: oaidl.idl:129
const USHORT FADF_CREATEVECTOR
Definition: oaidl.idl:141
struct IOleAutomationTypes::tagSAFEARRAYBOUND * LPSAFEARRAYBOUND
const USHORT FADF_HAVEIID
Definition: oaidl.idl:132
const USHORT FADF_AUTO
Definition: oaidl.idl:127
struct IOleAutomationTypes::_wireSAFEARR_BRECORD SAFEARR_BRECORD
struct IOleAutomationTypes::tagSAFEARRAY SAFEARRAY
struct IOleAutomationTypes::_wireSAFEARR_UNKNOWN SAFEARR_UNKNOWN
struct IOleAutomationTypes::_wireSAFEARR_BSTR SAFEARR_BSTR
struct IOleAutomationTypes::_wireSAFEARR_DISPATCH SAFEARR_DISPATCH
struct IOleAutomationTypes::_wireSAFEARR_VARIANT SAFEARR_VARIANT
const USHORT FADF_DISPATCH
Definition: oaidl.idl:136
const USHORT FADF_RECORD
Definition: oaidl.idl:131
struct IOleAutomationTypes::tagSAFEARRAYBOUND SAFEARRAYBOUND
struct _wireBRECORD * wireBRECORD
Definition: oaidl.idl:45
wireSAFEARRAY * wirePSAFEARRAY
Definition: oaidl.idl:114
const USHORT FADF_FIXEDSIZE
Definition: oaidl.idl:130
struct _wireVARIANT * wireVARIANT
Definition: oaidl.idl:44
const USHORT FADF_DATADELETED
Definition: oaidl.idl:140
enum IOleAutomationTypes::tagSF_TYPE SF_TYPE
struct IOleAutomationTypes::_wireSAFEARRAY * wireSAFEARRAY
const USHORT FADF_VARIANT
Definition: oaidl.idl:137
union _wireSAFEARRAY_UNION IOleAutomationTypes::u SAFEARRAYUNION
const USHORT FADF_STATIC
Definition: oaidl.idl:128
struct IOleAutomationTypes::_wireSAFEARR_HAVEIID SAFEARR_HAVEIID
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
SAFEARRAYBOUND rgsabound[]
Definition: oaidl.idl:122
Definition: send.c:48
uint32_t ULONG
Definition: typedefs.h:59
WORD_SIZEDARR WordStr
Definition: oaidl.idl:100
SAFEARR_BRECORD RecordStr
Definition: oaidl.idl:97
HYPER_SIZEDARR HyperStr
Definition: oaidl.idl:102
SAFEARR_BSTR BstrStr
Definition: oaidl.idl:93
DWORD_SIZEDARR LongStr
Definition: oaidl.idl:101
SAFEARR_UNKNOWN UnknownStr
Definition: oaidl.idl:94
BYTE_SIZEDARR ByteStr
Definition: oaidl.idl:99
SAFEARR_VARIANT VariantStr
Definition: oaidl.idl:96
SAFEARR_HAVEIID HaveIidStr
Definition: oaidl.idl:98
SAFEARR_DISPATCH DispatchStr
Definition: oaidl.idl:95
Definition: compat.h:2255
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4533