ReactOS  0.4.14-dev-52-g6116262
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
20 import "objidl.idl";
21 #endif
22 
23 interface IDispatch;
24 interface ITypeInfo;
25 interface ITypeLib;
26 interface IRecordInfo;
27 
28 [
29  version(1.0),
31 ]
33 {
34 
35 typedef CY CURRENCY;
36 
37 /* Safe Array */
38 
39 typedef struct tagSAFEARRAYBOUND {
43 
44 typedef [unique] struct _wireVARIANT *wireVARIANT;
45 typedef [unique] struct _wireBRECORD *wireBRECORD;
46 
47 typedef struct _wireSAFEARR_BSTR {
49  [size_is(Size), ref] wireBSTR *aBstr;
50 } SAFEARR_BSTR;
51 
52 typedef struct _wireSAFEARR_UNKNOWN {
54  [size_is(Size), ref] IUnknown **apUnknown;
56 
57 typedef struct _wireSAFEARR_DISPATCH {
59  [size_is(Size), ref] IDispatch **apDispatch;
61 
62 typedef struct _wireSAFEARR_VARIANT {
64  [size_is(Size), ref] wireVARIANT *aVariant;
66 
67 typedef struct _wireSAFEARR_BRECORD {
69  [size_is(Size), ref] wireBRECORD *aRecord;
71 
72 typedef struct _wireSAFEARR_HAVEIID {
74  [size_is(Size), ref] IUnknown **apUnknown;
77 
78 typedef [v1_enum] enum tagSF_TYPE {
90 } SF_TYPE;
91 
92 typedef union _wireSAFEARRAY_UNION switch(ULONG sfType) u {
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 
105 typedef [unique] struct _wireSAFEARRAY {
112 } *wireSAFEARRAY;
113 
115 
116 typedef struct tagSAFEARRAY {
123 } SAFEARRAY;
124 
125 typedef [wire_marshal(wirePSAFEARRAY)] SAFEARRAY *LPSAFEARRAY;
126 
127 const USHORT FADF_AUTO = 0x0001;
128 const USHORT FADF_STATIC = 0x0002;
129 const USHORT FADF_EMBEDDED = 0x0004;
130 const USHORT FADF_FIXEDSIZE = 0x0010;
131 const USHORT FADF_RECORD = 0x0020;
132 const USHORT FADF_HAVEIID = 0x0040;
133 const USHORT FADF_HAVEVARTYPE = 0x0080;
134 const USHORT FADF_BSTR = 0x0100;
135 const USHORT FADF_UNKNOWN = 0x0200;
136 const USHORT FADF_DISPATCH = 0x0400;
137 const USHORT FADF_VARIANT = 0x0800;
138 const USHORT FADF_RESERVED = 0xF008;
139 /* Undocumented flags */
140 const USHORT FADF_DATADELETED = 0x1000; /* Data in a vector has been deleted */
141 const USHORT FADF_CREATEVECTOR = 0x2000; /* This array is a vector */
142 
143 /* Variant */
144 
145 cpp_quote("#if (__STDC__ && !defined(_FORCENAMELESSUNION)) || defined(NONAMELESSUNION)")
146 cpp_quote("#define __VARIANT_NAME_1 n1")
147 cpp_quote("#define __VARIANT_NAME_2 n2")
148 cpp_quote("#define __VARIANT_NAME_3 n3")
149 cpp_quote("#define __VARIANT_NAME_4 brecVal")
150 cpp_quote("#else")
151 cpp_quote("#define __tagVARIANT")
152 cpp_quote("#define __VARIANT_NAME_1")
153 cpp_quote("#define __VARIANT_NAME_2")
154 cpp_quote("#define __VARIANT_NAME_3")
155 cpp_quote("#define __tagBRECORD")
156 cpp_quote("#define __VARIANT_NAME_4")
157 cpp_quote("#endif")
158 
159 typedef [wire_marshal(wireVARIANT)] struct tagVARIANT VARIANT;
160 
162  union {
163  struct __tagVARIANT {
168  union {
169  signed char cVal;
180 #if 0 /* illegal in C++ */
182 #endif
192  signed char *pcVal;
203 #if 0
204  _VARIANT_BOOL *pbool;
205 #endif
218  struct __tagBRECORD {
224 
227 };
228 
232 
233 struct _wireBRECORD {
237  [size_is(clSize)] byte *pRecord;
238 };
239 
240 struct _wireVARIANT {
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;
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;
261  [case(VT_DATE)] DATE date;
262  [case(VT_BSTR)] wireBSTR bstrVal;
263  [case(VT_CY)] CY cyVal;
268  [case(VT_I1|VT_BYREF)] signed char *pcVal;
281  [case(VT_BSTR|VT_BYREF)] wireBSTR *pbstrVal;
289  } DUMMYUNIONNAME;
290 };
291 
292 /* Dispatch */
293 
294 typedef LONG DISPID;
295 typedef DWORD HREFTYPE;
296 typedef DISPID MEMBERID;
297 
298 typedef [v1_enum] enum tagTYPEKIND {
308 } TYPEKIND;
309 
310 typedef struct tagTYPEDESC {
311  [switch_is(vt)] union {
313  [case(VT_CARRAY)] struct tagARRAYDESC *lpadesc;
315  [default] ;
316  } DUMMYUNIONNAME;
318 } TYPEDESC;
319 
320 typedef struct tagARRAYDESC {
324 } ARRAYDESC;
325 
326 typedef struct tagPARAMDESCEX {
330 
331 typedef struct tagPARAMDESC {
335 
336 const USHORT PARAMFLAG_NONE = 0x00;
337 const USHORT PARAMFLAG_FIN = 0x01;
338 const USHORT PARAMFLAG_FOUT = 0x02;
339 const USHORT PARAMFLAG_FLCID = 0x04;
341 const USHORT PARAMFLAG_FOPT = 0x10;
344 
345 typedef struct tagIDLDESC {
348 } IDLDESC, *LPIDLDESC;
349 
355 
356 cpp_quote("#if 0") /* for IDL only */
360 } ELEMDESC;
361 cpp_quote("#else") /* C/C++ defs */
362 cpp_quote("typedef struct tagELEMDESC {")
363 cpp_quote(" TYPEDESC tdesc;")
364 cpp_quote(" union {")
365 cpp_quote(" IDLDESC idldesc;")
366 cpp_quote(" PARAMDESC paramdesc;")
367 cpp_quote(" } DUMMYUNIONNAME;")
368 cpp_quote("} ELEMDESC, *LPELEMDESC;")
369 cpp_quote("#endif")
370 
371 typedef 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 
392 typedef struct tagDISPPARAMS {
393  [size_is(cArgs)] VARIANTARG *rgvarg;
394  [size_is(cNamedArgs)] DISPID *rgdispidNamedArgs;
395  UINT cArgs;
396  UINT cNamedArgs;
397 } DISPPARAMS;
398 
399 cpp_quote("#if 0") /* for IDL only */
400 typedef 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;
411 cpp_quote("#else")
412 cpp_quote("typedef struct tagEXCEPINFO {")
413 cpp_quote(" WORD wCode;")
414 cpp_quote(" WORD wReserved;")
415 cpp_quote(" BSTR bstrSource;")
416 cpp_quote(" BSTR bstrDescription;")
417 cpp_quote(" BSTR bstrHelpFile;")
418 cpp_quote(" DWORD dwHelpContext;")
419 cpp_quote(" PVOID pvReserved;")
420 cpp_quote(" HRESULT (__stdcall *pfnDeferredFillIn)(struct tagEXCEPINFO *);")
421 cpp_quote(" SCODE scode;")
422 cpp_quote("} EXCEPINFO, *LPEXCEPINFO;")
423 cpp_quote("#endif")
424 
425 typedef [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 
439 typedef [v1_enum] enum tagFUNCKIND {
440  FUNC_VIRTUAL,
441  FUNC_PUREVIRTUAL,
442  FUNC_NONVIRTUAL,
443  FUNC_STATIC,
444  FUNC_DISPATCH
445 } FUNCKIND;
446 
447 typedef [v1_enum] enum tagINVOKEKIND {
448  INVOKE_FUNC = 1,
449  INVOKE_PROPERTYGET = 2,
450  INVOKE_PROPERTYPUT = 4,
451  INVOKE_PROPERTYPUTREF = 8
452 } INVOKEKIND;
453 
454 typedef 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 
469 typedef [v1_enum] enum tagVARKIND {
470  VAR_PERINSTANCE,
471  VAR_STATIC,
472  VAR_CONST,
473  VAR_DISPATCH
474 } VARKIND;
475 
476 const USHORT IMPLTYPEFLAG_FDEFAULT = 0x1;
477 const USHORT IMPLTYPEFLAG_FSOURCE = 0x2;
478 const USHORT IMPLTYPEFLAG_FRESTRICTED = 0x4;
479 const USHORT IMPLTYPEFLAG_FDEFAULTVTABLE = 0x8;
480 
481 typedef 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 
493 typedef 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 
511 typedef 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 
527 typedef 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 
543 typedef [wire_marshal(DWORD)] struct tagCLEANLOCALSTORAGE {
544  IUnknown *pInterface;
545  PVOID pStorage;
546  DWORD flags;
547 } CLEANLOCALSTORAGE;
548 
549 typedef struct tagCUSTDATAITEM {
550  GUID guid;
551  VARIANTARG varValue;
552 } CUSTDATAITEM, *LPCUSTDATAITEM;
553 
554 typedef 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 ]
568 interface 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 ]
627 interface 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 ]
658 interface 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 ]
717 interface 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 ]
898 interface 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 ]
985 interface 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 ]
1103 interface 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 ]
1148 interface 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 ]
1180 interface 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 ]
1205 interface 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 ]
1230 interface 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 ]
1242 interface 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 ]
1255 interface 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 ]
1287 interface 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 ]
1359 interface 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 ]
1454 interface 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 ]
1522 interface 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 ]
1565 interface 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 ]
1592 interface 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 ]
1610 interface 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 }
struct IOleAutomationTypes::tagARRAYDESC ARRAYDESC
VARIANT * LPVARIANT
Definition: oaidl.idl:229
const USHORT PARAMFLAG_FOUT
Definition: oaidl.idl:338
struct IOleAutomationTypes::tagIDLDESC * LPIDLDESC
const USHORT FADF_HAVEVARTYPE
Definition: oaidl.idl:133
const USHORT PARAMFLAG_FIN
Definition: oaidl.idl:337
const USHORT IDLFLAG_FLCID
Definition: oaidl.idl:353
wireSAFEARRAY * wirePSAFEARRAY
Definition: oaidl.idl:114
Definition: compat.h:1939
struct IOleAutomationTypes::_wireSAFEARRAY * wireSAFEARRAY
Definition: compat.h:1955
WORD_SIZEDARR WordStr
Definition: oaidl.idl:100
Definition: compat.h:1951
struct tagTYPEDESC * lptdesc
Definition: oaidl.idl:312
struct IOleAutomationTypes::tagELEMDESC ELEMDESC
SAFEARR_DISPATCH DispatchStr
Definition: oaidl.idl:95
#define __VARIANT_NAME_3
Definition: compat.h:2014
BYTE_SIZEDARR ByteStr
Definition: oaidl.idl:99
union IOleAutomationTypes::tagTYPEDESC::@3049 DUMMYUNIONNAME
struct _wireBRECORD * wireBRECORD
Definition: oaidl.idl:45
struct IOleAutomationTypes::_wireSAFEARR_BRECORD SAFEARR_BRECORD
const USHORT IDLFLAG_NONE
Definition: oaidl.idl:350
double DATE
Definition: compat.h:1894
struct IOleAutomationTypes::_wireSAFEARR_HAVEIID SAFEARR_HAVEIID
const USHORT FADF_RESERVED
Definition: oaidl.idl:138
SAFEARRAYBOUND rgsabound[]
Definition: oaidl.idl:122
OLECHAR * BSTR
Definition: compat.h:1934
#define DUMMYUNIONNAME
Definition: ntbasedef.h:32
int32_t INT
Definition: typedefs.h:56
short VARIANT_BOOL
Definition: compat.h:1931
enum IOleAutomationTypes::tagSF_TYPE SF_TYPE
coclass AMMultiMediaStream cpp_quote("DEFINE_GUID(CLSID_AMDirectDrawStream, 0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") cpp_quote("DEFINE_GUID(CLSID_AMAudioStream
struct _wireVARIANT * wireVARIANT
Definition: oaidl.idl:44
const USHORT PARAMFLAG_FHASDEFAULT
Definition: oaidl.idl:342
#define __VARIANT_NAME_4
Definition: compat.h:2016
uint32_t ULONG_PTR
Definition: typedefs.h:63
const USHORT PARAMFLAG_FLCID
Definition: oaidl.idl:339
Definition: compat.h:1896
const USHORT FADF_BSTR
Definition: oaidl.idl:134
long LONG
Definition: pedump.c:60
const USHORT IDLFLAG_FRETVAL
Definition: oaidl.idl:354
const USHORT FADF_DISPATCH
Definition: oaidl.idl:136
struct IOleAutomationTypes::tagIDLDESC IDLDESC
short SHORT
Definition: pedump.c:59
GLenum GLint ref
Definition: glext.h:6028
struct tagARRAYDESC * lpadesc
Definition: oaidl.idl:313
LONG SCODE
Definition: compat.h:1893
const USHORT FADF_VARIANT
Definition: oaidl.idl:137
const USHORT FADF_EMBEDDED
Definition: oaidl.idl:129
static const WCHAR version[]
Definition: asmname.c:64
struct IOleAutomationTypes::_wireSAFEARR_DISPATCH SAFEARR_DISPATCH
struct IOleAutomationTypes::tagEXCEPINFO EXCEPINFO
switch(r->id)
Definition: btrfs.c:2932
struct IOleAutomationTypes::tagEXCEPINFO * LPEXCEPINFO
union _wireSAFEARRAY_UNION IOleAutomationTypes::u SAFEARRAYUNION
VARIANT VARIANTARG
Definition: oaidl.idl:230
typedef bool(CARDLIBPROC *pCanDragProc)(CardRegion &stackobj
int64_t LONGLONG
Definition: typedefs.h:66
struct IOleAutomationTypes::_wireSAFEARR_UNKNOWN SAFEARR_UNKNOWN
#define __tagBRECORD
Definition: compat.h:2015
const USHORT IDLFLAG_FIN
Definition: oaidl.idl:351
VARIANT_BOOL _VARIANT_BOOL
Definition: compat.h:1932
struct IOleAutomationTypes::_wireSAFEARR_VARIANT SAFEARR_VARIANT
#define __VARIANT_NAME_1
Definition: compat.h:2012
enum IOleAutomationTypes::tagTYPEKIND TYPEKIND
uint64_t ULONGLONG
Definition: typedefs.h:65
DWORD_SIZEDARR LongStr
Definition: oaidl.idl:101
unsigned short WORD
Definition: ntddk_ex.h:93
unsigned long DWORD
Definition: ntddk_ex.h:95
#define __stdcall
Definition: typedefs.h:25
#define __tagVARIANT
Definition: compat.h:2011
SAFEARR_HAVEIID HaveIidStr
Definition: oaidl.idl:98
const USHORT PARAMFLAG_NONE
Definition: oaidl.idl:336
struct IOleAutomationTypes::tagPARAMDESC * LPPARAMDESC
Definition: compat.h:1940
unsigned char BYTE
Definition: mem.h:68
const USHORT FADF_RECORD
Definition: oaidl.idl:131
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:359
Definition: compat.h:1942
HYPER_SIZEDARR HyperStr
Definition: oaidl.idl:102
struct IOleAutomationTypes::tagPARAMDESCEX PARAMDESCEX
const USHORT FADF_FIXEDSIZE
Definition: oaidl.idl:130
const USHORT FADF_CREATEVECTOR
Definition: oaidl.idl:141
struct IOleAutomationTypes::_wireSAFEARR_BSTR SAFEARR_BSTR
const USHORT FADF_DATADELETED
Definition: oaidl.idl:140
struct IOleAutomationTypes::tagSAFEARRAYBOUND SAFEARRAYBOUND
SAFEARR_BSTR BstrStr
Definition: oaidl.idl:93
SAFEARR_VARIANT VariantStr
Definition: oaidl.idl:96
SAFEARRAY * LPSAFEARRAY
Definition: oaidl.idl:125
static unsigned char pointer_default
Definition: parser.tab.c:114
struct IOleAutomationTypes::tagELEMDESC * LPELEMDESC
unsigned short USHORT
Definition: pedump.c:61
struct IOleAutomationTypes::tagSAFEARRAYBOUND * LPSAFEARRAYBOUND
const USHORT FADF_UNKNOWN
Definition: oaidl.idl:135
struct IOleAutomationTypes::tagSAFEARRAY SAFEARRAY
unsigned short VARTYPE
Definition: compat.h:1895
unsigned int UINT
Definition: ndis.h:50
VARIANTARG * LPVARIANTARG
Definition: oaidl.idl:231
SAFEARR_UNKNOWN UnknownStr
Definition: oaidl.idl:94
const USHORT IDLFLAG_FOUT
Definition: oaidl.idl:352
struct IOleAutomationTypes::tagPARAMDESCEX * LPPARAMDESCEX
#define __VARIANT_NAME_2
Definition: compat.h:2013
struct IOleAutomationTypes::tagPARAMDESC PARAMDESC
float FLOAT
Definition: typedefs.h:67
_ForwardIter unique(_ForwardIter __first, _ForwardIter __last)
Definition: _algo.h:298
unsigned int ULONG
Definition: retypes.h:1
SAFEARR_BRECORD RecordStr
Definition: oaidl.idl:97
const USHORT PARAMFLAG_FRETVAL
Definition: oaidl.idl:340
double DOUBLE
Definition: typedefs.h:68
const USHORT FADF_STATIC
Definition: oaidl.idl:128
const USHORT PARAMFLAG_FHASCUSTDATA
Definition: oaidl.idl:343
struct IOleAutomationTypes::tagTYPEDESC TYPEDESC
const USHORT FADF_AUTO
Definition: oaidl.idl:127
union IOleAutomationTypes::_wireVARIANT::@3048 DUMMYUNIONNAME
Definition: compat.h:1941
Definition: compat.h:1938
HRESULT(__stdcall *pfnDeferredFillIn)(struct tagEXCEPINFO *)
const USHORT PARAMFLAG_FOPT
Definition: oaidl.idl:341
const USHORT FADF_HAVEIID
Definition: oaidl.idl:132