OAIdl.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:208k
源码类别:

模拟服务器

开发平台:

C/C++

  1. #pragma warning( disable: 4049 )  /* more than 64k source lines */
  2. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  3.  /* File created by MIDL compiler version 6.00.0347 */
  4. /* Compiler settings for oaidl.idl:
  5.     Oicf, W1, Zp8, env=Win32 (32b run)
  6.     protocol : dce , ms_ext, c_ext, robust
  7.     error checks: allocation ref bounds_check enum stub_data 
  8.     VC __declspec() decoration level: 
  9.          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  10.          DECLSPEC_UUID(), MIDL_INTERFACE()
  11. */
  12. //@@MIDL_FILE_HEADING(  )
  13. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  14. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  15. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  16. #endif
  17. #include "rpc.h"
  18. #include "rpcndr.h"
  19. #ifndef __RPCNDR_H_VERSION__
  20. #error this stub requires an updated version of <rpcndr.h>
  21. #endif // __RPCNDR_H_VERSION__
  22. #ifndef COM_NO_WINDOWS_H
  23. #include "windows.h"
  24. #include "ole2.h"
  25. #endif /*COM_NO_WINDOWS_H*/
  26. #ifndef __oaidl_h__
  27. #define __oaidl_h__
  28. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  29. #pragma once
  30. #endif
  31. /* Forward Declarations */ 
  32. #ifndef __ICreateTypeInfo_FWD_DEFINED__
  33. #define __ICreateTypeInfo_FWD_DEFINED__
  34. typedef interface ICreateTypeInfo ICreateTypeInfo;
  35. #endif  /* __ICreateTypeInfo_FWD_DEFINED__ */
  36. #ifndef __ICreateTypeInfo2_FWD_DEFINED__
  37. #define __ICreateTypeInfo2_FWD_DEFINED__
  38. typedef interface ICreateTypeInfo2 ICreateTypeInfo2;
  39. #endif  /* __ICreateTypeInfo2_FWD_DEFINED__ */
  40. #ifndef __ICreateTypeLib_FWD_DEFINED__
  41. #define __ICreateTypeLib_FWD_DEFINED__
  42. typedef interface ICreateTypeLib ICreateTypeLib;
  43. #endif  /* __ICreateTypeLib_FWD_DEFINED__ */
  44. #ifndef __ICreateTypeLib2_FWD_DEFINED__
  45. #define __ICreateTypeLib2_FWD_DEFINED__
  46. typedef interface ICreateTypeLib2 ICreateTypeLib2;
  47. #endif  /* __ICreateTypeLib2_FWD_DEFINED__ */
  48. #ifndef __IDispatch_FWD_DEFINED__
  49. #define __IDispatch_FWD_DEFINED__
  50. typedef interface IDispatch IDispatch;
  51. #endif  /* __IDispatch_FWD_DEFINED__ */
  52. #ifndef __IEnumVARIANT_FWD_DEFINED__
  53. #define __IEnumVARIANT_FWD_DEFINED__
  54. typedef interface IEnumVARIANT IEnumVARIANT;
  55. #endif  /* __IEnumVARIANT_FWD_DEFINED__ */
  56. #ifndef __ITypeComp_FWD_DEFINED__
  57. #define __ITypeComp_FWD_DEFINED__
  58. typedef interface ITypeComp ITypeComp;
  59. #endif  /* __ITypeComp_FWD_DEFINED__ */
  60. #ifndef __ITypeInfo_FWD_DEFINED__
  61. #define __ITypeInfo_FWD_DEFINED__
  62. typedef interface ITypeInfo ITypeInfo;
  63. #endif  /* __ITypeInfo_FWD_DEFINED__ */
  64. #ifndef __ITypeInfo2_FWD_DEFINED__
  65. #define __ITypeInfo2_FWD_DEFINED__
  66. typedef interface ITypeInfo2 ITypeInfo2;
  67. #endif  /* __ITypeInfo2_FWD_DEFINED__ */
  68. #ifndef __ITypeLib_FWD_DEFINED__
  69. #define __ITypeLib_FWD_DEFINED__
  70. typedef interface ITypeLib ITypeLib;
  71. #endif  /* __ITypeLib_FWD_DEFINED__ */
  72. #ifndef __ITypeLib2_FWD_DEFINED__
  73. #define __ITypeLib2_FWD_DEFINED__
  74. typedef interface ITypeLib2 ITypeLib2;
  75. #endif  /* __ITypeLib2_FWD_DEFINED__ */
  76. #ifndef __ITypeChangeEvents_FWD_DEFINED__
  77. #define __ITypeChangeEvents_FWD_DEFINED__
  78. typedef interface ITypeChangeEvents ITypeChangeEvents;
  79. #endif  /* __ITypeChangeEvents_FWD_DEFINED__ */
  80. #ifndef __IErrorInfo_FWD_DEFINED__
  81. #define __IErrorInfo_FWD_DEFINED__
  82. typedef interface IErrorInfo IErrorInfo;
  83. #endif  /* __IErrorInfo_FWD_DEFINED__ */
  84. #ifndef __ICreateErrorInfo_FWD_DEFINED__
  85. #define __ICreateErrorInfo_FWD_DEFINED__
  86. typedef interface ICreateErrorInfo ICreateErrorInfo;
  87. #endif  /* __ICreateErrorInfo_FWD_DEFINED__ */
  88. #ifndef __ISupportErrorInfo_FWD_DEFINED__
  89. #define __ISupportErrorInfo_FWD_DEFINED__
  90. typedef interface ISupportErrorInfo ISupportErrorInfo;
  91. #endif  /* __ISupportErrorInfo_FWD_DEFINED__ */
  92. #ifndef __ITypeFactory_FWD_DEFINED__
  93. #define __ITypeFactory_FWD_DEFINED__
  94. typedef interface ITypeFactory ITypeFactory;
  95. #endif  /* __ITypeFactory_FWD_DEFINED__ */
  96. #ifndef __ITypeMarshal_FWD_DEFINED__
  97. #define __ITypeMarshal_FWD_DEFINED__
  98. typedef interface ITypeMarshal ITypeMarshal;
  99. #endif  /* __ITypeMarshal_FWD_DEFINED__ */
  100. #ifndef __IRecordInfo_FWD_DEFINED__
  101. #define __IRecordInfo_FWD_DEFINED__
  102. typedef interface IRecordInfo IRecordInfo;
  103. #endif  /* __IRecordInfo_FWD_DEFINED__ */
  104. #ifndef __IErrorLog_FWD_DEFINED__
  105. #define __IErrorLog_FWD_DEFINED__
  106. typedef interface IErrorLog IErrorLog;
  107. #endif  /* __IErrorLog_FWD_DEFINED__ */
  108. #ifndef __IPropertyBag_FWD_DEFINED__
  109. #define __IPropertyBag_FWD_DEFINED__
  110. typedef interface IPropertyBag IPropertyBag;
  111. #endif  /* __IPropertyBag_FWD_DEFINED__ */
  112. /* header files for imported files */
  113. #include "objidl.h"
  114. #ifdef __cplusplus
  115. extern "C"{
  116. #endif 
  117. void * __RPC_USER MIDL_user_allocate(size_t);
  118. void __RPC_USER MIDL_user_free( void * ); 
  119. /* interface __MIDL_itf_oaidl_0000 */
  120. /* [local] */ 
  121. //+-------------------------------------------------------------------------
  122. //
  123. //  Microsoft Windows
  124. //  Copyright (c) Microsoft Corporation. All rights reserved.
  125. //
  126. //--------------------------------------------------------------------------
  127. #if ( _MSC_VER >= 800 )
  128. #if _MSC_VER >= 1200
  129. #pragma warning(push)
  130. #endif
  131. #pragma warning(disable:4201)    /* Nameless struct/union */
  132. #endif
  133. #if ( _MSC_VER >= 1020 )
  134. #pragma once
  135. #endif
  136. extern RPC_IF_HANDLE __MIDL_itf_oaidl_0000_v0_0_c_ifspec;
  137. extern RPC_IF_HANDLE __MIDL_itf_oaidl_0000_v0_0_s_ifspec;
  138. #ifndef __IOleAutomationTypes_INTERFACE_DEFINED__
  139. #define __IOleAutomationTypes_INTERFACE_DEFINED__
  140. /* interface IOleAutomationTypes */
  141. /* [auto_handle][unique][version] */ 
  142. typedef CY CURRENCY;
  143. typedef struct tagSAFEARRAYBOUND
  144.     {
  145.     ULONG cElements;
  146.     LONG lLbound;
  147.     }  SAFEARRAYBOUND;
  148. typedef struct tagSAFEARRAYBOUND *LPSAFEARRAYBOUND;
  149. /* the following is what MIDL knows how to remote */
  150. typedef /* [unique] */ struct _wireVARIANT *wireVARIANT;
  151. typedef /* [unique] */ struct _wireBRECORD *wireBRECORD;
  152. typedef struct _wireSAFEARR_BSTR
  153.     {
  154.     ULONG Size;
  155.     /* [ref][size_is] */ wireBSTR *aBstr;
  156.     }  SAFEARR_BSTR;
  157. typedef struct _wireSAFEARR_UNKNOWN
  158.     {
  159.     ULONG Size;
  160.     /* [ref][size_is] */ IUnknown **apUnknown;
  161.     }  SAFEARR_UNKNOWN;
  162. typedef struct _wireSAFEARR_DISPATCH
  163.     {
  164.     ULONG Size;
  165.     /* [ref][size_is] */ IDispatch **apDispatch;
  166.     }  SAFEARR_DISPATCH;
  167. typedef struct _wireSAFEARR_VARIANT
  168.     {
  169.     ULONG Size;
  170.     /* [ref][size_is] */ wireVARIANT *aVariant;
  171.     }  SAFEARR_VARIANT;
  172. typedef struct _wireSAFEARR_BRECORD
  173.     {
  174.     ULONG Size;
  175.     /* [ref][size_is] */ wireBRECORD *aRecord;
  176.     }  SAFEARR_BRECORD;
  177. typedef struct _wireSAFEARR_HAVEIID
  178.     {
  179.     ULONG Size;
  180.     /* [ref][size_is] */ IUnknown **apUnknown;
  181.     IID iid;
  182.     }  SAFEARR_HAVEIID;
  183. typedef /* [v1_enum] */ 
  184. enum tagSF_TYPE
  185.     { SF_ERROR = VT_ERROR,
  186. SF_I1 = VT_I1,
  187. SF_I2 = VT_I2,
  188. SF_I4 = VT_I4,
  189. SF_I8 = VT_I8,
  190. SF_BSTR = VT_BSTR,
  191. SF_UNKNOWN = VT_UNKNOWN,
  192. SF_DISPATCH = VT_DISPATCH,
  193. SF_VARIANT = VT_VARIANT,
  194. SF_RECORD = VT_RECORD,
  195. SF_HAVEIID = VT_UNKNOWN | VT_RESERVED
  196.     }  SF_TYPE;
  197. typedef struct _wireSAFEARRAY_UNION
  198.     {
  199.     ULONG sfType;
  200.     /* [switch_is] */ /* [switch_type] */ union __MIDL_IOleAutomationTypes_0001
  201.         {
  202.         /* [case()] */ SAFEARR_BSTR BstrStr;
  203.         /* [case()] */ SAFEARR_UNKNOWN UnknownStr;
  204.         /* [case()] */ SAFEARR_DISPATCH DispatchStr;
  205.         /* [case()] */ SAFEARR_VARIANT VariantStr;
  206.         /* [case()] */ SAFEARR_BRECORD RecordStr;
  207.         /* [case()] */ SAFEARR_HAVEIID HaveIidStr;
  208.         /* [case()] */ BYTE_SIZEDARR ByteStr;
  209.         /* [case()] */ WORD_SIZEDARR WordStr;
  210.         /* [case()] */ DWORD_SIZEDARR LongStr;
  211.         /* [case()] */ HYPER_SIZEDARR HyperStr;
  212.         }  u;
  213.     }  SAFEARRAYUNION;
  214. typedef /* [unique] */ struct _wireSAFEARRAY
  215.     {
  216.     USHORT cDims;
  217.     USHORT fFeatures;
  218.     ULONG cbElements;
  219.     ULONG cLocks;
  220.     SAFEARRAYUNION uArrayStructs;
  221.     /* [size_is] */ SAFEARRAYBOUND rgsabound[ 1 ];
  222.     }  *wireSAFEARRAY;
  223. typedef /* [unique] */ wireSAFEARRAY *wirePSAFEARRAY;
  224. typedef struct tagSAFEARRAY
  225.     {
  226.     USHORT cDims;
  227.     USHORT fFeatures;
  228.     ULONG cbElements;
  229.     ULONG cLocks;
  230.     PVOID pvData;
  231.     SAFEARRAYBOUND rgsabound[ 1 ];
  232.     }  SAFEARRAY;
  233. typedef /* [wire_marshal] */ SAFEARRAY *LPSAFEARRAY;
  234. #define FADF_AUTO ( 0x1 )
  235. #define FADF_STATIC ( 0x2 )
  236. #define FADF_EMBEDDED ( 0x4 )
  237. #define FADF_FIXEDSIZE ( 0x10 )
  238. #define FADF_RECORD ( 0x20 )
  239. #define FADF_HAVEIID ( 0x40 )
  240. #define FADF_HAVEVARTYPE ( 0x80 )
  241. #define FADF_BSTR ( 0x100 )
  242. #define FADF_UNKNOWN ( 0x200 )
  243. #define FADF_DISPATCH ( 0x400 )
  244. #define FADF_VARIANT ( 0x800 )
  245. #define FADF_RESERVED ( 0xf008 )
  246. /* VARIANT STRUCTURE
  247.  *
  248.  *  VARTYPE vt;
  249.  *  WORD wReserved1;
  250.  *  WORD wReserved2;
  251.  *  WORD wReserved3;
  252.  *  union {
  253.  *    LONGLONG       VT_I8
  254.  *    LONG           VT_I4
  255.  *    BYTE           VT_UI1
  256.  *    SHORT          VT_I2
  257.  *    FLOAT          VT_R4
  258.  *    DOUBLE         VT_R8
  259.  *    VARIANT_BOOL   VT_BOOL
  260.  *    SCODE          VT_ERROR
  261.  *    CY             VT_CY
  262.  *    DATE           VT_DATE
  263.  *    BSTR           VT_BSTR
  264.  *    IUnknown *     VT_UNKNOWN
  265.  *    IDispatch *    VT_DISPATCH
  266.  *    SAFEARRAY *    VT_ARRAY
  267.  *    BYTE *         VT_BYREF|VT_UI1
  268.  *    SHORT *        VT_BYREF|VT_I2
  269.  *    LONG *         VT_BYREF|VT_I4
  270.  *    LONGLONG *     VT_BYREF|VT_I8
  271.  *    FLOAT *        VT_BYREF|VT_R4
  272.  *    DOUBLE *       VT_BYREF|VT_R8
  273.  *    VARIANT_BOOL * VT_BYREF|VT_BOOL
  274.  *    SCODE *        VT_BYREF|VT_ERROR
  275.  *    CY *           VT_BYREF|VT_CY
  276.  *    DATE *         VT_BYREF|VT_DATE
  277.  *    BSTR *         VT_BYREF|VT_BSTR
  278.  *    IUnknown **    VT_BYREF|VT_UNKNOWN
  279.  *    IDispatch **   VT_BYREF|VT_DISPATCH
  280.  *    SAFEARRAY **   VT_BYREF|VT_ARRAY
  281.  *    VARIANT *      VT_BYREF|VT_VARIANT
  282.  *    PVOID          VT_BYREF (Generic ByRef)
  283.  *    CHAR           VT_I1
  284.  *    USHORT         VT_UI2
  285.  *    ULONG          VT_UI4
  286.  *    ULONGLONG      VT_UI8
  287.  *    INT            VT_INT
  288.  *    UINT           VT_UINT
  289.  *    DECIMAL *      VT_BYREF|VT_DECIMAL
  290.  *    CHAR *         VT_BYREF|VT_I1
  291.  *    USHORT *       VT_BYREF|VT_UI2
  292.  *    ULONG *        VT_BYREF|VT_UI4
  293.  *    ULONGLONG *    VT_BYREF|VT_UI8
  294.  *    INT *          VT_BYREF|VT_INT
  295.  *    UINT *         VT_BYREF|VT_UINT
  296.  *  }
  297.  */
  298. #if (__STDC__ && !defined(_FORCENAMELESSUNION)) || defined(NONAMELESSUNION)
  299. #define __VARIANT_NAME_1 n1
  300. #define __VARIANT_NAME_2 n2
  301. #define __VARIANT_NAME_3 n3
  302. #define __VARIANT_NAME_4 brecVal
  303. #else
  304. #define __tagVARIANT
  305. #define __VARIANT_NAME_1
  306. #define __VARIANT_NAME_2
  307. #define __VARIANT_NAME_3
  308. #define __tagBRECORD
  309. #define __VARIANT_NAME_4
  310. #endif
  311. typedef /* [wire_marshal] */ struct tagVARIANT VARIANT;
  312. struct tagVARIANT
  313.     {
  314.     union 
  315.         {
  316.         struct __tagVARIANT
  317.             {
  318.             VARTYPE vt;
  319.             WORD wReserved1;
  320.             WORD wReserved2;
  321.             WORD wReserved3;
  322.             union 
  323.                 {
  324.                 LONGLONG llVal;
  325.                 LONG lVal;
  326.                 BYTE bVal;
  327.                 SHORT iVal;
  328.                 FLOAT fltVal;
  329.                 DOUBLE dblVal;
  330.                 VARIANT_BOOL boolVal;
  331.                 _VARIANT_BOOL bool;
  332.                 SCODE scode;
  333.                 CY cyVal;
  334.                 DATE date;
  335.                 BSTR bstrVal;
  336.                 IUnknown *punkVal;
  337.                 IDispatch *pdispVal;
  338.                 SAFEARRAY *parray;
  339.                 BYTE *pbVal;
  340.                 SHORT *piVal;
  341.                 LONG *plVal;
  342.                 LONGLONG *pllVal;
  343.                 FLOAT *pfltVal;
  344.                 DOUBLE *pdblVal;
  345.                 VARIANT_BOOL *pboolVal;
  346.                 _VARIANT_BOOL *pbool;
  347.                 SCODE *pscode;
  348.                 CY *pcyVal;
  349.                 DATE *pdate;
  350.                 BSTR *pbstrVal;
  351.                 IUnknown **ppunkVal;
  352.                 IDispatch **ppdispVal;
  353.                 SAFEARRAY **pparray;
  354.                 VARIANT *pvarVal;
  355.                 PVOID byref;
  356.                 CHAR cVal;
  357.                 USHORT uiVal;
  358.                 ULONG ulVal;
  359.                 ULONGLONG ullVal;
  360.                 INT intVal;
  361.                 UINT uintVal;
  362.                 DECIMAL *pdecVal;
  363.                 CHAR *pcVal;
  364.                 USHORT *puiVal;
  365.                 ULONG *pulVal;
  366.                 ULONGLONG *pullVal;
  367.                 INT *pintVal;
  368.                 UINT *puintVal;
  369.                 struct __tagBRECORD
  370.                     {
  371.                     PVOID pvRecord;
  372.                     IRecordInfo *pRecInfo;
  373.                     }  __VARIANT_NAME_4;
  374.                 }  __VARIANT_NAME_3;
  375.             }  __VARIANT_NAME_2;
  376.         DECIMAL decVal;
  377.         }  __VARIANT_NAME_1;
  378.     } ;
  379. typedef VARIANT *LPVARIANT;
  380. typedef VARIANT VARIANTARG;
  381. typedef VARIANT *LPVARIANTARG;
  382. /* the following is what MIDL knows how to remote */
  383. struct _wireBRECORD
  384.     {
  385.     ULONG fFlags;
  386.     ULONG clSize;
  387.     IRecordInfo *pRecInfo;
  388.     /* [size_is] */ byte *pRecord;
  389.     } ;
  390. struct _wireVARIANT
  391.     {
  392.     DWORD clSize;
  393.     DWORD rpcReserved;
  394.     USHORT vt;
  395.     USHORT wReserved1;
  396.     USHORT wReserved2;
  397.     USHORT wReserved3;
  398.     /* [switch_is][switch_type] */ union 
  399.         {
  400.         /* [case()] */ LONGLONG llVal;
  401.         /* [case()] */ LONG lVal;
  402.         /* [case()] */ BYTE bVal;
  403.         /* [case()] */ SHORT iVal;
  404.         /* [case()] */ FLOAT fltVal;
  405.         /* [case()] */ DOUBLE dblVal;
  406.         /* [case()] */ VARIANT_BOOL boolVal;
  407.         /* [case()] */ SCODE scode;
  408.         /* [case()] */ CY cyVal;
  409.         /* [case()] */ DATE date;
  410.         /* [case()] */ wireBSTR bstrVal;
  411.         /* [case()] */ IUnknown *punkVal;
  412.         /* [case()] */ IDispatch *pdispVal;
  413.         /* [case()] */ wirePSAFEARRAY parray;
  414.         /* [case()] */ wireBRECORD brecVal;
  415.         /* [case()] */ BYTE *pbVal;
  416.         /* [case()] */ SHORT *piVal;
  417.         /* [case()] */ LONG *plVal;
  418.         /* [case()] */ LONGLONG *pllVal;
  419.         /* [case()] */ FLOAT *pfltVal;
  420.         /* [case()] */ DOUBLE *pdblVal;
  421.         /* [case()] */ VARIANT_BOOL *pboolVal;
  422.         /* [case()] */ SCODE *pscode;
  423.         /* [case()] */ CY *pcyVal;
  424.         /* [case()] */ DATE *pdate;
  425.         /* [case()] */ wireBSTR *pbstrVal;
  426.         /* [case()] */ IUnknown **ppunkVal;
  427.         /* [case()] */ IDispatch **ppdispVal;
  428.         /* [case()] */ wirePSAFEARRAY *pparray;
  429.         /* [case()] */ wireVARIANT *pvarVal;
  430.         /* [case()] */ CHAR cVal;
  431.         /* [case()] */ USHORT uiVal;
  432.         /* [case()] */ ULONG ulVal;
  433.         /* [case()] */ ULONGLONG ullVal;
  434.         /* [case()] */ INT intVal;
  435.         /* [case()] */ UINT uintVal;
  436.         /* [case()] */ DECIMAL decVal;
  437.         /* [case()] */ DECIMAL *pdecVal;
  438.         /* [case()] */ CHAR *pcVal;
  439.         /* [case()] */ USHORT *puiVal;
  440.         /* [case()] */ ULONG *pulVal;
  441.         /* [case()] */ ULONGLONG *pullVal;
  442.         /* [case()] */ INT *pintVal;
  443.         /* [case()] */ UINT *puintVal;
  444.         /* [case()] */  /* Empty union arm */ 
  445.         /* [case()] */  /* Empty union arm */ 
  446.         }  ;
  447.     } ;
  448. typedef LONG DISPID;
  449. typedef DISPID MEMBERID;
  450. typedef DWORD HREFTYPE;
  451. typedef /* [v1_enum] */ 
  452. enum tagTYPEKIND
  453.     { TKIND_ENUM = 0,
  454. TKIND_RECORD = TKIND_ENUM + 1,
  455. TKIND_MODULE = TKIND_RECORD + 1,
  456. TKIND_INTERFACE = TKIND_MODULE + 1,
  457. TKIND_DISPATCH = TKIND_INTERFACE + 1,
  458. TKIND_COCLASS = TKIND_DISPATCH + 1,
  459. TKIND_ALIAS = TKIND_COCLASS + 1,
  460. TKIND_UNION = TKIND_ALIAS + 1,
  461. TKIND_MAX = TKIND_UNION + 1
  462.     }  TYPEKIND;
  463. typedef struct tagTYPEDESC
  464.     {
  465.     /* [switch_is][switch_type] */ union 
  466.         {
  467.         /* [case()] */ struct tagTYPEDESC *lptdesc;
  468.         /* [case()] */ struct tagARRAYDESC *lpadesc;
  469.         /* [case()] */ HREFTYPE hreftype;
  470.         /* [default] */  /* Empty union arm */ 
  471.         }  ;
  472.     VARTYPE vt;
  473.     }  TYPEDESC;
  474. typedef struct tagARRAYDESC
  475.     {
  476.     TYPEDESC tdescElem;
  477.     USHORT cDims;
  478.     /* [size_is] */ SAFEARRAYBOUND rgbounds[ 1 ];
  479.     }  ARRAYDESC;
  480. typedef struct tagPARAMDESCEX
  481.     {
  482.     ULONG cBytes;
  483.     VARIANTARG varDefaultValue;
  484.     }  PARAMDESCEX;
  485. typedef struct tagPARAMDESCEX *LPPARAMDESCEX;
  486. typedef struct tagPARAMDESC
  487.     {
  488.     LPPARAMDESCEX pparamdescex;
  489.     USHORT wParamFlags;
  490.     }  PARAMDESC;
  491. typedef struct tagPARAMDESC *LPPARAMDESC;
  492. #define PARAMFLAG_NONE ( 0 )
  493. #define PARAMFLAG_FIN ( 0x1 )
  494. #define PARAMFLAG_FOUT ( 0x2 )
  495. #define PARAMFLAG_FLCID ( 0x4 )
  496. #define PARAMFLAG_FRETVAL ( 0x8 )
  497. #define PARAMFLAG_FOPT ( 0x10 )
  498. #define PARAMFLAG_FHASDEFAULT ( 0x20 )
  499. #define PARAMFLAG_FHASCUSTDATA ( 0x40 )
  500. typedef struct tagIDLDESC
  501.     {
  502.     ULONG_PTR dwReserved;
  503.     USHORT wIDLFlags;
  504.     }  IDLDESC;
  505. typedef struct tagIDLDESC *LPIDLDESC;
  506. #define IDLFLAG_NONE ( PARAMFLAG_NONE )
  507. #define IDLFLAG_FIN ( PARAMFLAG_FIN )
  508. #define IDLFLAG_FOUT ( PARAMFLAG_FOUT )
  509. #define IDLFLAG_FLCID ( PARAMFLAG_FLCID )
  510. #define IDLFLAG_FRETVAL ( PARAMFLAG_FRETVAL )
  511. //;begin_internal
  512. #if 0
  513. /* the following is what MIDL knows how to remote */
  514. typedef struct tagELEMDESC
  515.     {
  516.     TYPEDESC tdesc;
  517.     PARAMDESC paramdesc;
  518.     }  ELEMDESC;
  519. #else /* 0 */
  520. //;end_internal
  521. typedef struct tagELEMDESC {
  522.     TYPEDESC tdesc;             /* the type of the element */
  523.     union {
  524.         IDLDESC idldesc;        /* info for remoting the element */
  525.         PARAMDESC paramdesc;    /* info about the parameter */
  526.     };
  527. } ELEMDESC, * LPELEMDESC;
  528. //;begin_internal
  529. #endif /* 0 */
  530. //;end_internal
  531. typedef struct tagTYPEATTR
  532.     {
  533.     GUID guid;
  534.     LCID lcid;
  535.     DWORD dwReserved;
  536.     MEMBERID memidConstructor;
  537.     MEMBERID memidDestructor;
  538.     LPOLESTR lpstrSchema;
  539.     ULONG cbSizeInstance;
  540.     TYPEKIND typekind;
  541.     WORD cFuncs;
  542.     WORD cVars;
  543.     WORD cImplTypes;
  544.     WORD cbSizeVft;
  545.     WORD cbAlignment;
  546.     WORD wTypeFlags;
  547.     WORD wMajorVerNum;
  548.     WORD wMinorVerNum;
  549.     TYPEDESC tdescAlias;
  550.     IDLDESC idldescType;
  551.     }  TYPEATTR;
  552. typedef struct tagTYPEATTR *LPTYPEATTR;
  553. typedef struct tagDISPPARAMS
  554.     {
  555.     /* [size_is] */ VARIANTARG *rgvarg;
  556.     /* [size_is] */ DISPID *rgdispidNamedArgs;
  557.     UINT cArgs;
  558.     UINT cNamedArgs;
  559.     }  DISPPARAMS;
  560. //;begin_internal
  561. #if 0
  562. /* the following is what MIDL knows how to remote */
  563. typedef struct tagEXCEPINFO
  564.     {
  565.     WORD wCode;
  566.     WORD wReserved;
  567.     BSTR bstrSource;
  568.     BSTR bstrDescription;
  569.     BSTR bstrHelpFile;
  570.     DWORD dwHelpContext;
  571.     ULONG_PTR pvReserved;
  572.     ULONG_PTR pfnDeferredFillIn;
  573.     SCODE scode;
  574.     }  EXCEPINFO;
  575. #else /* 0 */
  576. //;end_internal
  577. typedef struct tagEXCEPINFO {
  578.     WORD  wCode;
  579.     WORD  wReserved;
  580.     BSTR  bstrSource;
  581.     BSTR  bstrDescription;
  582.     BSTR  bstrHelpFile;
  583.     DWORD dwHelpContext;
  584.     PVOID pvReserved;
  585.     HRESULT (__stdcall *pfnDeferredFillIn)(struct tagEXCEPINFO *);
  586.     SCODE scode;
  587. } EXCEPINFO, * LPEXCEPINFO;
  588. //;begin_internal
  589. #endif /* 0 */
  590. //;end_internal
  591. typedef /* [v1_enum] */ 
  592. enum tagCALLCONV
  593.     { CC_FASTCALL = 0,
  594. CC_CDECL = 1,
  595. CC_MSCPASCAL = CC_CDECL + 1,
  596. CC_PASCAL = CC_MSCPASCAL,
  597. CC_MACPASCAL = CC_PASCAL + 1,
  598. CC_STDCALL = CC_MACPASCAL + 1,
  599. CC_FPFASTCALL = CC_STDCALL + 1,
  600. CC_SYSCALL = CC_FPFASTCALL + 1,
  601. CC_MPWCDECL = CC_SYSCALL + 1,
  602. CC_MPWPASCAL = CC_MPWCDECL + 1,
  603. CC_MAX = CC_MPWPASCAL + 1
  604.     }  CALLCONV;
  605. typedef /* [v1_enum] */ 
  606. enum tagFUNCKIND
  607.     { FUNC_VIRTUAL = 0,
  608. FUNC_PUREVIRTUAL = FUNC_VIRTUAL + 1,
  609. FUNC_NONVIRTUAL = FUNC_PUREVIRTUAL + 1,
  610. FUNC_STATIC = FUNC_NONVIRTUAL + 1,
  611. FUNC_DISPATCH = FUNC_STATIC + 1
  612.     }  FUNCKIND;
  613. typedef /* [v1_enum] */ 
  614. enum tagINVOKEKIND
  615.     { INVOKE_FUNC = 1,
  616. INVOKE_PROPERTYGET = 2,
  617. INVOKE_PROPERTYPUT = 4,
  618. INVOKE_PROPERTYPUTREF = 8
  619.     }  INVOKEKIND;
  620. typedef struct tagFUNCDESC
  621.     {
  622.     MEMBERID memid;
  623.     /* [size_is] */ SCODE *lprgscode;
  624.     /* [size_is] */ ELEMDESC *lprgelemdescParam;
  625.     FUNCKIND funckind;
  626.     INVOKEKIND invkind;
  627.     CALLCONV callconv;
  628.     SHORT cParams;
  629.     SHORT cParamsOpt;
  630.     SHORT oVft;
  631.     SHORT cScodes;
  632.     ELEMDESC elemdescFunc;
  633.     WORD wFuncFlags;
  634.     }  FUNCDESC;
  635. typedef struct tagFUNCDESC *LPFUNCDESC;
  636. typedef /* [v1_enum] */ 
  637. enum tagVARKIND
  638.     { VAR_PERINSTANCE = 0,
  639. VAR_STATIC = VAR_PERINSTANCE + 1,
  640. VAR_CONST = VAR_STATIC + 1,
  641. VAR_DISPATCH = VAR_CONST + 1
  642.     }  VARKIND;
  643. #define IMPLTYPEFLAG_FDEFAULT ( 0x1 )
  644. #define IMPLTYPEFLAG_FSOURCE ( 0x2 )
  645. #define IMPLTYPEFLAG_FRESTRICTED ( 0x4 )
  646. #define IMPLTYPEFLAG_FDEFAULTVTABLE ( 0x8 )
  647. typedef struct tagVARDESC
  648.     {
  649.     MEMBERID memid;
  650.     LPOLESTR lpstrSchema;
  651.     /* [switch_is][switch_type] */ union 
  652.         {
  653.         /* [case()] */ ULONG oInst;
  654.         /* [case()] */ VARIANT *lpvarValue;
  655.         }  ;
  656.     ELEMDESC elemdescVar;
  657.     WORD wVarFlags;
  658.     VARKIND varkind;
  659.     }  VARDESC;
  660. typedef struct tagVARDESC *LPVARDESC;
  661. typedef 
  662. enum tagTYPEFLAGS
  663.     { TYPEFLAG_FAPPOBJECT = 0x1,
  664. TYPEFLAG_FCANCREATE = 0x2,
  665. TYPEFLAG_FLICENSED = 0x4,
  666. TYPEFLAG_FPREDECLID = 0x8,
  667. TYPEFLAG_FHIDDEN = 0x10,
  668. TYPEFLAG_FCONTROL = 0x20,
  669. TYPEFLAG_FDUAL = 0x40,
  670. TYPEFLAG_FNONEXTENSIBLE = 0x80,
  671. TYPEFLAG_FOLEAUTOMATION = 0x100,
  672. TYPEFLAG_FRESTRICTED = 0x200,
  673. TYPEFLAG_FAGGREGATABLE = 0x400,
  674. TYPEFLAG_FREPLACEABLE = 0x800,
  675. TYPEFLAG_FDISPATCHABLE = 0x1000,
  676. TYPEFLAG_FREVERSEBIND = 0x2000,
  677. TYPEFLAG_FPROXY = 0x4000
  678.     }  TYPEFLAGS;
  679. typedef 
  680. enum tagFUNCFLAGS
  681.     { FUNCFLAG_FRESTRICTED = 0x1,
  682. FUNCFLAG_FSOURCE = 0x2,
  683. FUNCFLAG_FBINDABLE = 0x4,
  684. FUNCFLAG_FREQUESTEDIT = 0x8,
  685. FUNCFLAG_FDISPLAYBIND = 0x10,
  686. FUNCFLAG_FDEFAULTBIND = 0x20,
  687. FUNCFLAG_FHIDDEN = 0x40,
  688. FUNCFLAG_FUSESGETLASTERROR = 0x80,
  689. FUNCFLAG_FDEFAULTCOLLELEM = 0x100,
  690. FUNCFLAG_FUIDEFAULT = 0x200,
  691. FUNCFLAG_FNONBROWSABLE = 0x400,
  692. FUNCFLAG_FREPLACEABLE = 0x800,
  693. FUNCFLAG_FIMMEDIATEBIND = 0x1000
  694.     }  FUNCFLAGS;
  695. typedef 
  696. enum tagVARFLAGS
  697.     { VARFLAG_FREADONLY = 0x1,
  698. VARFLAG_FSOURCE = 0x2,
  699. VARFLAG_FBINDABLE = 0x4,
  700. VARFLAG_FREQUESTEDIT = 0x8,
  701. VARFLAG_FDISPLAYBIND = 0x10,
  702. VARFLAG_FDEFAULTBIND = 0x20,
  703. VARFLAG_FHIDDEN = 0x40,
  704. VARFLAG_FRESTRICTED = 0x80,
  705. VARFLAG_FDEFAULTCOLLELEM = 0x100,
  706. VARFLAG_FUIDEFAULT = 0x200,
  707. VARFLAG_FNONBROWSABLE = 0x400,
  708. VARFLAG_FREPLACEABLE = 0x800,
  709. VARFLAG_FIMMEDIATEBIND = 0x1000
  710.     }  VARFLAGS;
  711. typedef /* [wire_marshal] */ struct tagCLEANLOCALSTORAGE
  712.     {
  713.     IUnknown *pInterface;
  714.     PVOID pStorage;
  715.     DWORD flags;
  716.     }  CLEANLOCALSTORAGE;
  717. typedef struct tagCUSTDATAITEM
  718.     {
  719.     GUID guid;
  720.     VARIANTARG varValue;
  721.     }  CUSTDATAITEM;
  722. typedef struct tagCUSTDATAITEM *LPCUSTDATAITEM;
  723. typedef struct tagCUSTDATA
  724.     {
  725.     DWORD cCustData;
  726.     /* [size_is] */ LPCUSTDATAITEM prgCustData;
  727.     }  CUSTDATA;
  728. typedef struct tagCUSTDATA *LPCUSTDATA;
  729. extern RPC_IF_HANDLE IOleAutomationTypes_v1_0_c_ifspec;
  730. extern RPC_IF_HANDLE IOleAutomationTypes_v1_0_s_ifspec;
  731. #endif /* __IOleAutomationTypes_INTERFACE_DEFINED__ */
  732. #ifndef __ICreateTypeInfo_INTERFACE_DEFINED__
  733. #define __ICreateTypeInfo_INTERFACE_DEFINED__
  734. /* interface ICreateTypeInfo */
  735. /* [local][unique][uuid][object] */ 
  736. typedef /* [unique] */ ICreateTypeInfo *LPCREATETYPEINFO;
  737. EXTERN_C const IID IID_ICreateTypeInfo;
  738. #if defined(__cplusplus) && !defined(CINTERFACE)
  739.     
  740.     MIDL_INTERFACE("00020405-0000-0000-C000-000000000046")
  741.     ICreateTypeInfo : public IUnknown
  742.     {
  743.     public:
  744.         virtual HRESULT STDMETHODCALLTYPE SetGuid( 
  745.             /* [in] */ REFGUID guid) = 0;
  746.         
  747.         virtual HRESULT STDMETHODCALLTYPE SetTypeFlags( 
  748.             /* [in] */ UINT uTypeFlags) = 0;
  749.         
  750.         virtual HRESULT STDMETHODCALLTYPE SetDocString( 
  751.             /* [in] */ LPOLESTR pStrDoc) = 0;
  752.         
  753.         virtual HRESULT STDMETHODCALLTYPE SetHelpContext( 
  754.             /* [in] */ DWORD dwHelpContext) = 0;
  755.         
  756.         virtual HRESULT STDMETHODCALLTYPE SetVersion( 
  757.             /* [in] */ WORD wMajorVerNum,
  758.             /* [in] */ WORD wMinorVerNum) = 0;
  759.         
  760.         virtual HRESULT STDMETHODCALLTYPE AddRefTypeInfo( 
  761.             /* [in] */ ITypeInfo *pTInfo,
  762.             /* [in] */ HREFTYPE *phRefType) = 0;
  763.         
  764.         virtual HRESULT STDMETHODCALLTYPE AddFuncDesc( 
  765.             /* [in] */ UINT index,
  766.             /* [in] */ FUNCDESC *pFuncDesc) = 0;
  767.         
  768.         virtual HRESULT STDMETHODCALLTYPE AddImplType( 
  769.             /* [in] */ UINT index,
  770.             /* [in] */ HREFTYPE hRefType) = 0;
  771.         
  772.         virtual HRESULT STDMETHODCALLTYPE SetImplTypeFlags( 
  773.             /* [in] */ UINT index,
  774.             /* [in] */ INT implTypeFlags) = 0;
  775.         
  776.         virtual HRESULT STDMETHODCALLTYPE SetAlignment( 
  777.             /* [in] */ WORD cbAlignment) = 0;
  778.         
  779.         virtual HRESULT STDMETHODCALLTYPE SetSchema( 
  780.             /* [in] */ LPOLESTR pStrSchema) = 0;
  781.         
  782.         virtual HRESULT STDMETHODCALLTYPE AddVarDesc( 
  783.             /* [in] */ UINT index,
  784.             /* [in] */ VARDESC *pVarDesc) = 0;
  785.         
  786.         virtual HRESULT STDMETHODCALLTYPE SetFuncAndParamNames( 
  787.             /* [in] */ UINT index,
  788.             /* [in][size_is][in] */ LPOLESTR *rgszNames,
  789.             /* [in] */ UINT cNames) = 0;
  790.         
  791.         virtual HRESULT STDMETHODCALLTYPE SetVarName( 
  792.             /* [in] */ UINT index,
  793.             /* [in] */ LPOLESTR szName) = 0;
  794.         
  795.         virtual HRESULT STDMETHODCALLTYPE SetTypeDescAlias( 
  796.             /* [in] */ TYPEDESC *pTDescAlias) = 0;
  797.         
  798.         virtual HRESULT STDMETHODCALLTYPE DefineFuncAsDllEntry( 
  799.             /* [in] */ UINT index,
  800.             /* [in] */ LPOLESTR szDllName,
  801.             /* [in] */ LPOLESTR szProcName) = 0;
  802.         
  803.         virtual HRESULT STDMETHODCALLTYPE SetFuncDocString( 
  804.             /* [in] */ UINT index,
  805.             /* [in] */ LPOLESTR szDocString) = 0;
  806.         
  807.         virtual HRESULT STDMETHODCALLTYPE SetVarDocString( 
  808.             /* [in] */ UINT index,
  809.             /* [in] */ LPOLESTR szDocString) = 0;
  810.         
  811.         virtual HRESULT STDMETHODCALLTYPE SetFuncHelpContext( 
  812.             /* [in] */ UINT index,
  813.             /* [in] */ DWORD dwHelpContext) = 0;
  814.         
  815.         virtual HRESULT STDMETHODCALLTYPE SetVarHelpContext( 
  816.             /* [in] */ UINT index,
  817.             /* [in] */ DWORD dwHelpContext) = 0;
  818.         
  819.         virtual HRESULT STDMETHODCALLTYPE SetMops( 
  820.             /* [in] */ UINT index,
  821.             /* [in] */ BSTR bstrMops) = 0;
  822.         
  823.         virtual HRESULT STDMETHODCALLTYPE SetTypeIdldesc( 
  824.             /* [in] */ IDLDESC *pIdlDesc) = 0;
  825.         
  826.         virtual HRESULT STDMETHODCALLTYPE LayOut( void) = 0;
  827.         
  828.     };
  829.     
  830. #else  /* C style interface */
  831.     typedef struct ICreateTypeInfoVtbl
  832.     {
  833.         BEGIN_INTERFACE
  834.         
  835.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  836.             ICreateTypeInfo * This,
  837.             /* [in] */ REFIID riid,
  838.             /* [iid_is][out] */ void **ppvObject);
  839.         
  840.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  841.             ICreateTypeInfo * This);
  842.         
  843.         ULONG ( STDMETHODCALLTYPE *Release )( 
  844.             ICreateTypeInfo * This);
  845.         
  846.         HRESULT ( STDMETHODCALLTYPE *SetGuid )( 
  847.             ICreateTypeInfo * This,
  848.             /* [in] */ REFGUID guid);
  849.         
  850.         HRESULT ( STDMETHODCALLTYPE *SetTypeFlags )( 
  851.             ICreateTypeInfo * This,
  852.             /* [in] */ UINT uTypeFlags);
  853.         
  854.         HRESULT ( STDMETHODCALLTYPE *SetDocString )( 
  855.             ICreateTypeInfo * This,
  856.             /* [in] */ LPOLESTR pStrDoc);
  857.         
  858.         HRESULT ( STDMETHODCALLTYPE *SetHelpContext )( 
  859.             ICreateTypeInfo * This,
  860.             /* [in] */ DWORD dwHelpContext);
  861.         
  862.         HRESULT ( STDMETHODCALLTYPE *SetVersion )( 
  863.             ICreateTypeInfo * This,
  864.             /* [in] */ WORD wMajorVerNum,
  865.             /* [in] */ WORD wMinorVerNum);
  866.         
  867.         HRESULT ( STDMETHODCALLTYPE *AddRefTypeInfo )( 
  868.             ICreateTypeInfo * This,
  869.             /* [in] */ ITypeInfo *pTInfo,
  870.             /* [in] */ HREFTYPE *phRefType);
  871.         
  872.         HRESULT ( STDMETHODCALLTYPE *AddFuncDesc )( 
  873.             ICreateTypeInfo * This,
  874.             /* [in] */ UINT index,
  875.             /* [in] */ FUNCDESC *pFuncDesc);
  876.         
  877.         HRESULT ( STDMETHODCALLTYPE *AddImplType )( 
  878.             ICreateTypeInfo * This,
  879.             /* [in] */ UINT index,
  880.             /* [in] */ HREFTYPE hRefType);
  881.         
  882.         HRESULT ( STDMETHODCALLTYPE *SetImplTypeFlags )( 
  883.             ICreateTypeInfo * This,
  884.             /* [in] */ UINT index,
  885.             /* [in] */ INT implTypeFlags);
  886.         
  887.         HRESULT ( STDMETHODCALLTYPE *SetAlignment )( 
  888.             ICreateTypeInfo * This,
  889.             /* [in] */ WORD cbAlignment);
  890.         
  891.         HRESULT ( STDMETHODCALLTYPE *SetSchema )( 
  892.             ICreateTypeInfo * This,
  893.             /* [in] */ LPOLESTR pStrSchema);
  894.         
  895.         HRESULT ( STDMETHODCALLTYPE *AddVarDesc )( 
  896.             ICreateTypeInfo * This,
  897.             /* [in] */ UINT index,
  898.             /* [in] */ VARDESC *pVarDesc);
  899.         
  900.         HRESULT ( STDMETHODCALLTYPE *SetFuncAndParamNames )( 
  901.             ICreateTypeInfo * This,
  902.             /* [in] */ UINT index,
  903.             /* [in][size_is][in] */ LPOLESTR *rgszNames,
  904.             /* [in] */ UINT cNames);
  905.         
  906.         HRESULT ( STDMETHODCALLTYPE *SetVarName )( 
  907.             ICreateTypeInfo * This,
  908.             /* [in] */ UINT index,
  909.             /* [in] */ LPOLESTR szName);
  910.         
  911.         HRESULT ( STDMETHODCALLTYPE *SetTypeDescAlias )( 
  912.             ICreateTypeInfo * This,
  913.             /* [in] */ TYPEDESC *pTDescAlias);
  914.         
  915.         HRESULT ( STDMETHODCALLTYPE *DefineFuncAsDllEntry )( 
  916.             ICreateTypeInfo * This,
  917.             /* [in] */ UINT index,
  918.             /* [in] */ LPOLESTR szDllName,
  919.             /* [in] */ LPOLESTR szProcName);
  920.         
  921.         HRESULT ( STDMETHODCALLTYPE *SetFuncDocString )( 
  922.             ICreateTypeInfo * This,
  923.             /* [in] */ UINT index,
  924.             /* [in] */ LPOLESTR szDocString);
  925.         
  926.         HRESULT ( STDMETHODCALLTYPE *SetVarDocString )( 
  927.             ICreateTypeInfo * This,
  928.             /* [in] */ UINT index,
  929.             /* [in] */ LPOLESTR szDocString);
  930.         
  931.         HRESULT ( STDMETHODCALLTYPE *SetFuncHelpContext )( 
  932.             ICreateTypeInfo * This,
  933.             /* [in] */ UINT index,
  934.             /* [in] */ DWORD dwHelpContext);
  935.         
  936.         HRESULT ( STDMETHODCALLTYPE *SetVarHelpContext )( 
  937.             ICreateTypeInfo * This,
  938.             /* [in] */ UINT index,
  939.             /* [in] */ DWORD dwHelpContext);
  940.         
  941.         HRESULT ( STDMETHODCALLTYPE *SetMops )( 
  942.             ICreateTypeInfo * This,
  943.             /* [in] */ UINT index,
  944.             /* [in] */ BSTR bstrMops);
  945.         
  946.         HRESULT ( STDMETHODCALLTYPE *SetTypeIdldesc )( 
  947.             ICreateTypeInfo * This,
  948.             /* [in] */ IDLDESC *pIdlDesc);
  949.         
  950.         HRESULT ( STDMETHODCALLTYPE *LayOut )( 
  951.             ICreateTypeInfo * This);
  952.         
  953.         END_INTERFACE
  954.     } ICreateTypeInfoVtbl;
  955.     interface ICreateTypeInfo
  956.     {
  957.         CONST_VTBL struct ICreateTypeInfoVtbl *lpVtbl;
  958.     };
  959.     
  960. #ifdef COBJMACROS
  961. #define ICreateTypeInfo_QueryInterface(This,riid,ppvObject)
  962.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  963. #define ICreateTypeInfo_AddRef(This)
  964.     (This)->lpVtbl -> AddRef(This)
  965. #define ICreateTypeInfo_Release(This)
  966.     (This)->lpVtbl -> Release(This)
  967. #define ICreateTypeInfo_SetGuid(This,guid)
  968.     (This)->lpVtbl -> SetGuid(This,guid)
  969. #define ICreateTypeInfo_SetTypeFlags(This,uTypeFlags)
  970.     (This)->lpVtbl -> SetTypeFlags(This,uTypeFlags)
  971. #define ICreateTypeInfo_SetDocString(This,pStrDoc)
  972.     (This)->lpVtbl -> SetDocString(This,pStrDoc)
  973. #define ICreateTypeInfo_SetHelpContext(This,dwHelpContext)
  974.     (This)->lpVtbl -> SetHelpContext(This,dwHelpContext)
  975. #define ICreateTypeInfo_SetVersion(This,wMajorVerNum,wMinorVerNum)
  976.     (This)->lpVtbl -> SetVersion(This,wMajorVerNum,wMinorVerNum)
  977. #define ICreateTypeInfo_AddRefTypeInfo(This,pTInfo,phRefType)
  978.     (This)->lpVtbl -> AddRefTypeInfo(This,pTInfo,phRefType)
  979. #define ICreateTypeInfo_AddFuncDesc(This,index,pFuncDesc)
  980.     (This)->lpVtbl -> AddFuncDesc(This,index,pFuncDesc)
  981. #define ICreateTypeInfo_AddImplType(This,index,hRefType)
  982.     (This)->lpVtbl -> AddImplType(This,index,hRefType)
  983. #define ICreateTypeInfo_SetImplTypeFlags(This,index,implTypeFlags)
  984.     (This)->lpVtbl -> SetImplTypeFlags(This,index,implTypeFlags)
  985. #define ICreateTypeInfo_SetAlignment(This,cbAlignment)
  986.     (This)->lpVtbl -> SetAlignment(This,cbAlignment)
  987. #define ICreateTypeInfo_SetSchema(This,pStrSchema)
  988.     (This)->lpVtbl -> SetSchema(This,pStrSchema)
  989. #define ICreateTypeInfo_AddVarDesc(This,index,pVarDesc)
  990.     (This)->lpVtbl -> AddVarDesc(This,index,pVarDesc)
  991. #define ICreateTypeInfo_SetFuncAndParamNames(This,index,rgszNames,cNames)
  992.     (This)->lpVtbl -> SetFuncAndParamNames(This,index,rgszNames,cNames)
  993. #define ICreateTypeInfo_SetVarName(This,index,szName)
  994.     (This)->lpVtbl -> SetVarName(This,index,szName)
  995. #define ICreateTypeInfo_SetTypeDescAlias(This,pTDescAlias)
  996.     (This)->lpVtbl -> SetTypeDescAlias(This,pTDescAlias)
  997. #define ICreateTypeInfo_DefineFuncAsDllEntry(This,index,szDllName,szProcName)
  998.     (This)->lpVtbl -> DefineFuncAsDllEntry(This,index,szDllName,szProcName)
  999. #define ICreateTypeInfo_SetFuncDocString(This,index,szDocString)
  1000.     (This)->lpVtbl -> SetFuncDocString(This,index,szDocString)
  1001. #define ICreateTypeInfo_SetVarDocString(This,index,szDocString)
  1002.     (This)->lpVtbl -> SetVarDocString(This,index,szDocString)
  1003. #define ICreateTypeInfo_SetFuncHelpContext(This,index,dwHelpContext)
  1004.     (This)->lpVtbl -> SetFuncHelpContext(This,index,dwHelpContext)
  1005. #define ICreateTypeInfo_SetVarHelpContext(This,index,dwHelpContext)
  1006.     (This)->lpVtbl -> SetVarHelpContext(This,index,dwHelpContext)
  1007. #define ICreateTypeInfo_SetMops(This,index,bstrMops)
  1008.     (This)->lpVtbl -> SetMops(This,index,bstrMops)
  1009. #define ICreateTypeInfo_SetTypeIdldesc(This,pIdlDesc)
  1010.     (This)->lpVtbl -> SetTypeIdldesc(This,pIdlDesc)
  1011. #define ICreateTypeInfo_LayOut(This)
  1012.     (This)->lpVtbl -> LayOut(This)
  1013. #endif /* COBJMACROS */
  1014. #endif  /* C style interface */
  1015. HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetGuid_Proxy( 
  1016.     ICreateTypeInfo * This,
  1017.     /* [in] */ REFGUID guid);
  1018. void __RPC_STUB ICreateTypeInfo_SetGuid_Stub(
  1019.     IRpcStubBuffer *This,
  1020.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1021.     PRPC_MESSAGE _pRpcMessage,
  1022.     DWORD *_pdwStubPhase);
  1023. HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetTypeFlags_Proxy( 
  1024.     ICreateTypeInfo * This,
  1025.     /* [in] */ UINT uTypeFlags);
  1026. void __RPC_STUB ICreateTypeInfo_SetTypeFlags_Stub(
  1027.     IRpcStubBuffer *This,
  1028.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1029.     PRPC_MESSAGE _pRpcMessage,
  1030.     DWORD *_pdwStubPhase);
  1031. HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetDocString_Proxy( 
  1032.     ICreateTypeInfo * This,
  1033.     /* [in] */ LPOLESTR pStrDoc);
  1034. void __RPC_STUB ICreateTypeInfo_SetDocString_Stub(
  1035.     IRpcStubBuffer *This,
  1036.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1037.     PRPC_MESSAGE _pRpcMessage,
  1038.     DWORD *_pdwStubPhase);
  1039. HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetHelpContext_Proxy( 
  1040.     ICreateTypeInfo * This,
  1041.     /* [in] */ DWORD dwHelpContext);
  1042. void __RPC_STUB ICreateTypeInfo_SetHelpContext_Stub(
  1043.     IRpcStubBuffer *This,
  1044.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1045.     PRPC_MESSAGE _pRpcMessage,
  1046.     DWORD *_pdwStubPhase);
  1047. HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetVersion_Proxy( 
  1048.     ICreateTypeInfo * This,
  1049.     /* [in] */ WORD wMajorVerNum,
  1050.     /* [in] */ WORD wMinorVerNum);
  1051. void __RPC_STUB ICreateTypeInfo_SetVersion_Stub(
  1052.     IRpcStubBuffer *This,
  1053.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1054.     PRPC_MESSAGE _pRpcMessage,
  1055.     DWORD *_pdwStubPhase);
  1056. HRESULT STDMETHODCALLTYPE ICreateTypeInfo_AddRefTypeInfo_Proxy( 
  1057.     ICreateTypeInfo * This,
  1058.     /* [in] */ ITypeInfo *pTInfo,
  1059.     /* [in] */ HREFTYPE *phRefType);
  1060. void __RPC_STUB ICreateTypeInfo_AddRefTypeInfo_Stub(
  1061.     IRpcStubBuffer *This,
  1062.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1063.     PRPC_MESSAGE _pRpcMessage,
  1064.     DWORD *_pdwStubPhase);
  1065. HRESULT STDMETHODCALLTYPE ICreateTypeInfo_AddFuncDesc_Proxy( 
  1066.     ICreateTypeInfo * This,
  1067.     /* [in] */ UINT index,
  1068.     /* [in] */ FUNCDESC *pFuncDesc);
  1069. void __RPC_STUB ICreateTypeInfo_AddFuncDesc_Stub(
  1070.     IRpcStubBuffer *This,
  1071.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1072.     PRPC_MESSAGE _pRpcMessage,
  1073.     DWORD *_pdwStubPhase);
  1074. HRESULT STDMETHODCALLTYPE ICreateTypeInfo_AddImplType_Proxy( 
  1075.     ICreateTypeInfo * This,
  1076.     /* [in] */ UINT index,
  1077.     /* [in] */ HREFTYPE hRefType);
  1078. void __RPC_STUB ICreateTypeInfo_AddImplType_Stub(
  1079.     IRpcStubBuffer *This,
  1080.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1081.     PRPC_MESSAGE _pRpcMessage,
  1082.     DWORD *_pdwStubPhase);
  1083. HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetImplTypeFlags_Proxy( 
  1084.     ICreateTypeInfo * This,
  1085.     /* [in] */ UINT index,
  1086.     /* [in] */ INT implTypeFlags);
  1087. void __RPC_STUB ICreateTypeInfo_SetImplTypeFlags_Stub(
  1088.     IRpcStubBuffer *This,
  1089.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1090.     PRPC_MESSAGE _pRpcMessage,
  1091.     DWORD *_pdwStubPhase);
  1092. HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetAlignment_Proxy( 
  1093.     ICreateTypeInfo * This,
  1094.     /* [in] */ WORD cbAlignment);
  1095. void __RPC_STUB ICreateTypeInfo_SetAlignment_Stub(
  1096.     IRpcStubBuffer *This,
  1097.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1098.     PRPC_MESSAGE _pRpcMessage,
  1099.     DWORD *_pdwStubPhase);
  1100. HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetSchema_Proxy( 
  1101.     ICreateTypeInfo * This,
  1102.     /* [in] */ LPOLESTR pStrSchema);
  1103. void __RPC_STUB ICreateTypeInfo_SetSchema_Stub(
  1104.     IRpcStubBuffer *This,
  1105.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1106.     PRPC_MESSAGE _pRpcMessage,
  1107.     DWORD *_pdwStubPhase);
  1108. HRESULT STDMETHODCALLTYPE ICreateTypeInfo_AddVarDesc_Proxy( 
  1109.     ICreateTypeInfo * This,
  1110.     /* [in] */ UINT index,
  1111.     /* [in] */ VARDESC *pVarDesc);
  1112. void __RPC_STUB ICreateTypeInfo_AddVarDesc_Stub(
  1113.     IRpcStubBuffer *This,
  1114.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1115.     PRPC_MESSAGE _pRpcMessage,
  1116.     DWORD *_pdwStubPhase);
  1117. HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetFuncAndParamNames_Proxy( 
  1118.     ICreateTypeInfo * This,
  1119.     /* [in] */ UINT index,
  1120.     /* [in][size_is][in] */ LPOLESTR *rgszNames,
  1121.     /* [in] */ UINT cNames);
  1122. void __RPC_STUB ICreateTypeInfo_SetFuncAndParamNames_Stub(
  1123.     IRpcStubBuffer *This,
  1124.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1125.     PRPC_MESSAGE _pRpcMessage,
  1126.     DWORD *_pdwStubPhase);
  1127. HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetVarName_Proxy( 
  1128.     ICreateTypeInfo * This,
  1129.     /* [in] */ UINT index,
  1130.     /* [in] */ LPOLESTR szName);
  1131. void __RPC_STUB ICreateTypeInfo_SetVarName_Stub(
  1132.     IRpcStubBuffer *This,
  1133.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1134.     PRPC_MESSAGE _pRpcMessage,
  1135.     DWORD *_pdwStubPhase);
  1136. HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetTypeDescAlias_Proxy( 
  1137.     ICreateTypeInfo * This,
  1138.     /* [in] */ TYPEDESC *pTDescAlias);
  1139. void __RPC_STUB ICreateTypeInfo_SetTypeDescAlias_Stub(
  1140.     IRpcStubBuffer *This,
  1141.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1142.     PRPC_MESSAGE _pRpcMessage,
  1143.     DWORD *_pdwStubPhase);
  1144. HRESULT STDMETHODCALLTYPE ICreateTypeInfo_DefineFuncAsDllEntry_Proxy( 
  1145.     ICreateTypeInfo * This,
  1146.     /* [in] */ UINT index,
  1147.     /* [in] */ LPOLESTR szDllName,
  1148.     /* [in] */ LPOLESTR szProcName);
  1149. void __RPC_STUB ICreateTypeInfo_DefineFuncAsDllEntry_Stub(
  1150.     IRpcStubBuffer *This,
  1151.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1152.     PRPC_MESSAGE _pRpcMessage,
  1153.     DWORD *_pdwStubPhase);
  1154. HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetFuncDocString_Proxy( 
  1155.     ICreateTypeInfo * This,
  1156.     /* [in] */ UINT index,
  1157.     /* [in] */ LPOLESTR szDocString);
  1158. void __RPC_STUB ICreateTypeInfo_SetFuncDocString_Stub(
  1159.     IRpcStubBuffer *This,
  1160.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1161.     PRPC_MESSAGE _pRpcMessage,
  1162.     DWORD *_pdwStubPhase);
  1163. HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetVarDocString_Proxy( 
  1164.     ICreateTypeInfo * This,
  1165.     /* [in] */ UINT index,
  1166.     /* [in] */ LPOLESTR szDocString);
  1167. void __RPC_STUB ICreateTypeInfo_SetVarDocString_Stub(
  1168.     IRpcStubBuffer *This,
  1169.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1170.     PRPC_MESSAGE _pRpcMessage,
  1171.     DWORD *_pdwStubPhase);
  1172. HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetFuncHelpContext_Proxy( 
  1173.     ICreateTypeInfo * This,
  1174.     /* [in] */ UINT index,
  1175.     /* [in] */ DWORD dwHelpContext);
  1176. void __RPC_STUB ICreateTypeInfo_SetFuncHelpContext_Stub(
  1177.     IRpcStubBuffer *This,
  1178.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1179.     PRPC_MESSAGE _pRpcMessage,
  1180.     DWORD *_pdwStubPhase);
  1181. HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetVarHelpContext_Proxy( 
  1182.     ICreateTypeInfo * This,
  1183.     /* [in] */ UINT index,
  1184.     /* [in] */ DWORD dwHelpContext);
  1185. void __RPC_STUB ICreateTypeInfo_SetVarHelpContext_Stub(
  1186.     IRpcStubBuffer *This,
  1187.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1188.     PRPC_MESSAGE _pRpcMessage,
  1189.     DWORD *_pdwStubPhase);
  1190. HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetMops_Proxy( 
  1191.     ICreateTypeInfo * This,
  1192.     /* [in] */ UINT index,
  1193.     /* [in] */ BSTR bstrMops);
  1194. void __RPC_STUB ICreateTypeInfo_SetMops_Stub(
  1195.     IRpcStubBuffer *This,
  1196.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1197.     PRPC_MESSAGE _pRpcMessage,
  1198.     DWORD *_pdwStubPhase);
  1199. HRESULT STDMETHODCALLTYPE ICreateTypeInfo_SetTypeIdldesc_Proxy( 
  1200.     ICreateTypeInfo * This,
  1201.     /* [in] */ IDLDESC *pIdlDesc);
  1202. void __RPC_STUB ICreateTypeInfo_SetTypeIdldesc_Stub(
  1203.     IRpcStubBuffer *This,
  1204.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1205.     PRPC_MESSAGE _pRpcMessage,
  1206.     DWORD *_pdwStubPhase);
  1207. HRESULT STDMETHODCALLTYPE ICreateTypeInfo_LayOut_Proxy( 
  1208.     ICreateTypeInfo * This);
  1209. void __RPC_STUB ICreateTypeInfo_LayOut_Stub(
  1210.     IRpcStubBuffer *This,
  1211.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1212.     PRPC_MESSAGE _pRpcMessage,
  1213.     DWORD *_pdwStubPhase);
  1214. #endif  /* __ICreateTypeInfo_INTERFACE_DEFINED__ */
  1215. #ifndef __ICreateTypeInfo2_INTERFACE_DEFINED__
  1216. #define __ICreateTypeInfo2_INTERFACE_DEFINED__
  1217. /* interface ICreateTypeInfo2 */
  1218. /* [local][unique][uuid][object] */ 
  1219. typedef /* [unique] */ ICreateTypeInfo2 *LPCREATETYPEINFO2;
  1220. EXTERN_C const IID IID_ICreateTypeInfo2;
  1221. #if defined(__cplusplus) && !defined(CINTERFACE)
  1222.     
  1223.     MIDL_INTERFACE("0002040E-0000-0000-C000-000000000046")
  1224.     ICreateTypeInfo2 : public ICreateTypeInfo
  1225.     {
  1226.     public:
  1227.         virtual HRESULT STDMETHODCALLTYPE DeleteFuncDesc( 
  1228.             /* [in] */ UINT index) = 0;
  1229.         
  1230.         virtual HRESULT STDMETHODCALLTYPE DeleteFuncDescByMemId( 
  1231.             /* [in] */ MEMBERID memid,
  1232.             /* [in] */ INVOKEKIND invKind) = 0;
  1233.         
  1234.         virtual HRESULT STDMETHODCALLTYPE DeleteVarDesc( 
  1235.             /* [in] */ UINT index) = 0;
  1236.         
  1237.         virtual HRESULT STDMETHODCALLTYPE DeleteVarDescByMemId( 
  1238.             /* [in] */ MEMBERID memid) = 0;
  1239.         
  1240.         virtual HRESULT STDMETHODCALLTYPE DeleteImplType( 
  1241.             /* [in] */ UINT index) = 0;
  1242.         
  1243.         virtual HRESULT STDMETHODCALLTYPE SetCustData( 
  1244.             /* [in] */ REFGUID guid,
  1245.             /* [in] */ VARIANT *pVarVal) = 0;
  1246.         
  1247.         virtual HRESULT STDMETHODCALLTYPE SetFuncCustData( 
  1248.             /* [in] */ UINT index,
  1249.             /* [in] */ REFGUID guid,
  1250.             /* [in] */ VARIANT *pVarVal) = 0;
  1251.         
  1252.         virtual HRESULT STDMETHODCALLTYPE SetParamCustData( 
  1253.             /* [in] */ UINT indexFunc,
  1254.             /* [in] */ UINT indexParam,
  1255.             /* [in] */ REFGUID guid,
  1256.             /* [in] */ VARIANT *pVarVal) = 0;
  1257.         
  1258.         virtual HRESULT STDMETHODCALLTYPE SetVarCustData( 
  1259.             /* [in] */ UINT index,
  1260.             /* [in] */ REFGUID guid,
  1261.             /* [in] */ VARIANT *pVarVal) = 0;
  1262.         
  1263.         virtual HRESULT STDMETHODCALLTYPE SetImplTypeCustData( 
  1264.             /* [in] */ UINT index,
  1265.             /* [in] */ REFGUID guid,
  1266.             /* [in] */ VARIANT *pVarVal) = 0;
  1267.         
  1268.         virtual HRESULT STDMETHODCALLTYPE SetHelpStringContext( 
  1269.             /* [in] */ ULONG dwHelpStringContext) = 0;
  1270.         
  1271.         virtual HRESULT STDMETHODCALLTYPE SetFuncHelpStringContext( 
  1272.             /* [in] */ UINT index,
  1273.             /* [in] */ ULONG dwHelpStringContext) = 0;
  1274.         
  1275.         virtual HRESULT STDMETHODCALLTYPE SetVarHelpStringContext( 
  1276.             /* [in] */ UINT index,
  1277.             /* [in] */ ULONG dwHelpStringContext) = 0;
  1278.         
  1279.         virtual HRESULT STDMETHODCALLTYPE Invalidate( void) = 0;
  1280.         
  1281.         virtual HRESULT STDMETHODCALLTYPE SetName( 
  1282.             /* [in] */ LPOLESTR szName) = 0;
  1283.         
  1284.     };
  1285.     
  1286. #else  /* C style interface */
  1287.     typedef struct ICreateTypeInfo2Vtbl
  1288.     {
  1289.         BEGIN_INTERFACE
  1290.         
  1291.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1292.             ICreateTypeInfo2 * This,
  1293.             /* [in] */ REFIID riid,
  1294.             /* [iid_is][out] */ void **ppvObject);
  1295.         
  1296.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1297.             ICreateTypeInfo2 * This);
  1298.         
  1299.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1300.             ICreateTypeInfo2 * This);
  1301.         
  1302.         HRESULT ( STDMETHODCALLTYPE *SetGuid )( 
  1303.             ICreateTypeInfo2 * This,
  1304.             /* [in] */ REFGUID guid);
  1305.         
  1306.         HRESULT ( STDMETHODCALLTYPE *SetTypeFlags )( 
  1307.             ICreateTypeInfo2 * This,
  1308.             /* [in] */ UINT uTypeFlags);
  1309.         
  1310.         HRESULT ( STDMETHODCALLTYPE *SetDocString )( 
  1311.             ICreateTypeInfo2 * This,
  1312.             /* [in] */ LPOLESTR pStrDoc);
  1313.         
  1314.         HRESULT ( STDMETHODCALLTYPE *SetHelpContext )( 
  1315.             ICreateTypeInfo2 * This,
  1316.             /* [in] */ DWORD dwHelpContext);
  1317.         
  1318.         HRESULT ( STDMETHODCALLTYPE *SetVersion )( 
  1319.             ICreateTypeInfo2 * This,
  1320.             /* [in] */ WORD wMajorVerNum,
  1321.             /* [in] */ WORD wMinorVerNum);
  1322.         
  1323.         HRESULT ( STDMETHODCALLTYPE *AddRefTypeInfo )( 
  1324.             ICreateTypeInfo2 * This,
  1325.             /* [in] */ ITypeInfo *pTInfo,
  1326.             /* [in] */ HREFTYPE *phRefType);
  1327.         
  1328.         HRESULT ( STDMETHODCALLTYPE *AddFuncDesc )( 
  1329.             ICreateTypeInfo2 * This,
  1330.             /* [in] */ UINT index,
  1331.             /* [in] */ FUNCDESC *pFuncDesc);
  1332.         
  1333.         HRESULT ( STDMETHODCALLTYPE *AddImplType )( 
  1334.             ICreateTypeInfo2 * This,
  1335.             /* [in] */ UINT index,
  1336.             /* [in] */ HREFTYPE hRefType);
  1337.         
  1338.         HRESULT ( STDMETHODCALLTYPE *SetImplTypeFlags )( 
  1339.             ICreateTypeInfo2 * This,
  1340.             /* [in] */ UINT index,
  1341.             /* [in] */ INT implTypeFlags);
  1342.         
  1343.         HRESULT ( STDMETHODCALLTYPE *SetAlignment )( 
  1344.             ICreateTypeInfo2 * This,
  1345.             /* [in] */ WORD cbAlignment);
  1346.         
  1347.         HRESULT ( STDMETHODCALLTYPE *SetSchema )( 
  1348.             ICreateTypeInfo2 * This,
  1349.             /* [in] */ LPOLESTR pStrSchema);
  1350.         
  1351.         HRESULT ( STDMETHODCALLTYPE *AddVarDesc )( 
  1352.             ICreateTypeInfo2 * This,
  1353.             /* [in] */ UINT index,
  1354.             /* [in] */ VARDESC *pVarDesc);
  1355.         
  1356.         HRESULT ( STDMETHODCALLTYPE *SetFuncAndParamNames )( 
  1357.             ICreateTypeInfo2 * This,
  1358.             /* [in] */ UINT index,
  1359.             /* [in][size_is][in] */ LPOLESTR *rgszNames,
  1360.             /* [in] */ UINT cNames);
  1361.         
  1362.         HRESULT ( STDMETHODCALLTYPE *SetVarName )( 
  1363.             ICreateTypeInfo2 * This,
  1364.             /* [in] */ UINT index,
  1365.             /* [in] */ LPOLESTR szName);
  1366.         
  1367.         HRESULT ( STDMETHODCALLTYPE *SetTypeDescAlias )( 
  1368.             ICreateTypeInfo2 * This,
  1369.             /* [in] */ TYPEDESC *pTDescAlias);
  1370.         
  1371.         HRESULT ( STDMETHODCALLTYPE *DefineFuncAsDllEntry )( 
  1372.             ICreateTypeInfo2 * This,
  1373.             /* [in] */ UINT index,
  1374.             /* [in] */ LPOLESTR szDllName,
  1375.             /* [in] */ LPOLESTR szProcName);
  1376.         
  1377.         HRESULT ( STDMETHODCALLTYPE *SetFuncDocString )( 
  1378.             ICreateTypeInfo2 * This,
  1379.             /* [in] */ UINT index,
  1380.             /* [in] */ LPOLESTR szDocString);
  1381.         
  1382.         HRESULT ( STDMETHODCALLTYPE *SetVarDocString )( 
  1383.             ICreateTypeInfo2 * This,
  1384.             /* [in] */ UINT index,
  1385.             /* [in] */ LPOLESTR szDocString);
  1386.         
  1387.         HRESULT ( STDMETHODCALLTYPE *SetFuncHelpContext )( 
  1388.             ICreateTypeInfo2 * This,
  1389.             /* [in] */ UINT index,
  1390.             /* [in] */ DWORD dwHelpContext);
  1391.         
  1392.         HRESULT ( STDMETHODCALLTYPE *SetVarHelpContext )( 
  1393.             ICreateTypeInfo2 * This,
  1394.             /* [in] */ UINT index,
  1395.             /* [in] */ DWORD dwHelpContext);
  1396.         
  1397.         HRESULT ( STDMETHODCALLTYPE *SetMops )( 
  1398.             ICreateTypeInfo2 * This,
  1399.             /* [in] */ UINT index,
  1400.             /* [in] */ BSTR bstrMops);
  1401.         
  1402.         HRESULT ( STDMETHODCALLTYPE *SetTypeIdldesc )( 
  1403.             ICreateTypeInfo2 * This,
  1404.             /* [in] */ IDLDESC *pIdlDesc);
  1405.         
  1406.         HRESULT ( STDMETHODCALLTYPE *LayOut )( 
  1407.             ICreateTypeInfo2 * This);
  1408.         
  1409.         HRESULT ( STDMETHODCALLTYPE *DeleteFuncDesc )( 
  1410.             ICreateTypeInfo2 * This,
  1411.             /* [in] */ UINT index);
  1412.         
  1413.         HRESULT ( STDMETHODCALLTYPE *DeleteFuncDescByMemId )( 
  1414.             ICreateTypeInfo2 * This,
  1415.             /* [in] */ MEMBERID memid,
  1416.             /* [in] */ INVOKEKIND invKind);
  1417.         
  1418.         HRESULT ( STDMETHODCALLTYPE *DeleteVarDesc )( 
  1419.             ICreateTypeInfo2 * This,
  1420.             /* [in] */ UINT index);
  1421.         
  1422.         HRESULT ( STDMETHODCALLTYPE *DeleteVarDescByMemId )( 
  1423.             ICreateTypeInfo2 * This,
  1424.             /* [in] */ MEMBERID memid);
  1425.         
  1426.         HRESULT ( STDMETHODCALLTYPE *DeleteImplType )( 
  1427.             ICreateTypeInfo2 * This,
  1428.             /* [in] */ UINT index);
  1429.         
  1430.         HRESULT ( STDMETHODCALLTYPE *SetCustData )( 
  1431.             ICreateTypeInfo2 * This,
  1432.             /* [in] */ REFGUID guid,
  1433.             /* [in] */ VARIANT *pVarVal);
  1434.         
  1435.         HRESULT ( STDMETHODCALLTYPE *SetFuncCustData )( 
  1436.             ICreateTypeInfo2 * This,
  1437.             /* [in] */ UINT index,
  1438.             /* [in] */ REFGUID guid,
  1439.             /* [in] */ VARIANT *pVarVal);
  1440.         
  1441.         HRESULT ( STDMETHODCALLTYPE *SetParamCustData )( 
  1442.             ICreateTypeInfo2 * This,
  1443.             /* [in] */ UINT indexFunc,
  1444.             /* [in] */ UINT indexParam,
  1445.             /* [in] */ REFGUID guid,
  1446.             /* [in] */ VARIANT *pVarVal);
  1447.         
  1448.         HRESULT ( STDMETHODCALLTYPE *SetVarCustData )( 
  1449.             ICreateTypeInfo2 * This,
  1450.             /* [in] */ UINT index,
  1451.             /* [in] */ REFGUID guid,
  1452.             /* [in] */ VARIANT *pVarVal);
  1453.         
  1454.         HRESULT ( STDMETHODCALLTYPE *SetImplTypeCustData )( 
  1455.             ICreateTypeInfo2 * This,
  1456.             /* [in] */ UINT index,
  1457.             /* [in] */ REFGUID guid,
  1458.             /* [in] */ VARIANT *pVarVal);
  1459.         
  1460.         HRESULT ( STDMETHODCALLTYPE *SetHelpStringContext )( 
  1461.             ICreateTypeInfo2 * This,
  1462.             /* [in] */ ULONG dwHelpStringContext);
  1463.         
  1464.         HRESULT ( STDMETHODCALLTYPE *SetFuncHelpStringContext )( 
  1465.             ICreateTypeInfo2 * This,
  1466.             /* [in] */ UINT index,
  1467.             /* [in] */ ULONG dwHelpStringContext);
  1468.         
  1469.         HRESULT ( STDMETHODCALLTYPE *SetVarHelpStringContext )( 
  1470.             ICreateTypeInfo2 * This,
  1471.             /* [in] */ UINT index,
  1472.             /* [in] */ ULONG dwHelpStringContext);
  1473.         
  1474.         HRESULT ( STDMETHODCALLTYPE *Invalidate )( 
  1475.             ICreateTypeInfo2 * This);
  1476.         
  1477.         HRESULT ( STDMETHODCALLTYPE *SetName )( 
  1478.             ICreateTypeInfo2 * This,
  1479.             /* [in] */ LPOLESTR szName);
  1480.         
  1481.         END_INTERFACE
  1482.     } ICreateTypeInfo2Vtbl;
  1483.     interface ICreateTypeInfo2
  1484.     {
  1485.         CONST_VTBL struct ICreateTypeInfo2Vtbl *lpVtbl;
  1486.     };
  1487.     
  1488. #ifdef COBJMACROS
  1489. #define ICreateTypeInfo2_QueryInterface(This,riid,ppvObject)
  1490.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1491. #define ICreateTypeInfo2_AddRef(This)
  1492.     (This)->lpVtbl -> AddRef(This)
  1493. #define ICreateTypeInfo2_Release(This)
  1494.     (This)->lpVtbl -> Release(This)
  1495. #define ICreateTypeInfo2_SetGuid(This,guid)
  1496.     (This)->lpVtbl -> SetGuid(This,guid)
  1497. #define ICreateTypeInfo2_SetTypeFlags(This,uTypeFlags)
  1498.     (This)->lpVtbl -> SetTypeFlags(This,uTypeFlags)
  1499. #define ICreateTypeInfo2_SetDocString(This,pStrDoc)
  1500.     (This)->lpVtbl -> SetDocString(This,pStrDoc)
  1501. #define ICreateTypeInfo2_SetHelpContext(This,dwHelpContext)
  1502.     (This)->lpVtbl -> SetHelpContext(This,dwHelpContext)
  1503. #define ICreateTypeInfo2_SetVersion(This,wMajorVerNum,wMinorVerNum)
  1504.     (This)->lpVtbl -> SetVersion(This,wMajorVerNum,wMinorVerNum)
  1505. #define ICreateTypeInfo2_AddRefTypeInfo(This,pTInfo,phRefType)
  1506.     (This)->lpVtbl -> AddRefTypeInfo(This,pTInfo,phRefType)
  1507. #define ICreateTypeInfo2_AddFuncDesc(This,index,pFuncDesc)
  1508.     (This)->lpVtbl -> AddFuncDesc(This,index,pFuncDesc)
  1509. #define ICreateTypeInfo2_AddImplType(This,index,hRefType)
  1510.     (This)->lpVtbl -> AddImplType(This,index,hRefType)
  1511. #define ICreateTypeInfo2_SetImplTypeFlags(This,index,implTypeFlags)
  1512.     (This)->lpVtbl -> SetImplTypeFlags(This,index,implTypeFlags)
  1513. #define ICreateTypeInfo2_SetAlignment(This,cbAlignment)
  1514.     (This)->lpVtbl -> SetAlignment(This,cbAlignment)
  1515. #define ICreateTypeInfo2_SetSchema(This,pStrSchema)
  1516.     (This)->lpVtbl -> SetSchema(This,pStrSchema)
  1517. #define ICreateTypeInfo2_AddVarDesc(This,index,pVarDesc)
  1518.     (This)->lpVtbl -> AddVarDesc(This,index,pVarDesc)
  1519. #define ICreateTypeInfo2_SetFuncAndParamNames(This,index,rgszNames,cNames)
  1520.     (This)->lpVtbl -> SetFuncAndParamNames(This,index,rgszNames,cNames)
  1521. #define ICreateTypeInfo2_SetVarName(This,index,szName)
  1522.     (This)->lpVtbl -> SetVarName(This,index,szName)
  1523. #define ICreateTypeInfo2_SetTypeDescAlias(This,pTDescAlias)
  1524.     (This)->lpVtbl -> SetTypeDescAlias(This,pTDescAlias)
  1525. #define ICreateTypeInfo2_DefineFuncAsDllEntry(This,index,szDllName,szProcName)
  1526.     (This)->lpVtbl -> DefineFuncAsDllEntry(This,index,szDllName,szProcName)
  1527. #define ICreateTypeInfo2_SetFuncDocString(This,index,szDocString)
  1528.     (This)->lpVtbl -> SetFuncDocString(This,index,szDocString)
  1529. #define ICreateTypeInfo2_SetVarDocString(This,index,szDocString)
  1530.     (This)->lpVtbl -> SetVarDocString(This,index,szDocString)
  1531. #define ICreateTypeInfo2_SetFuncHelpContext(This,index,dwHelpContext)
  1532.     (This)->lpVtbl -> SetFuncHelpContext(This,index,dwHelpContext)
  1533. #define ICreateTypeInfo2_SetVarHelpContext(This,index,dwHelpContext)
  1534.     (This)->lpVtbl -> SetVarHelpContext(This,index,dwHelpContext)
  1535. #define ICreateTypeInfo2_SetMops(This,index,bstrMops)
  1536.     (This)->lpVtbl -> SetMops(This,index,bstrMops)
  1537. #define ICreateTypeInfo2_SetTypeIdldesc(This,pIdlDesc)
  1538.     (This)->lpVtbl -> SetTypeIdldesc(This,pIdlDesc)
  1539. #define ICreateTypeInfo2_LayOut(This)
  1540.     (This)->lpVtbl -> LayOut(This)
  1541. #define ICreateTypeInfo2_DeleteFuncDesc(This,index)
  1542.     (This)->lpVtbl -> DeleteFuncDesc(This,index)
  1543. #define ICreateTypeInfo2_DeleteFuncDescByMemId(This,memid,invKind)
  1544.     (This)->lpVtbl -> DeleteFuncDescByMemId(This,memid,invKind)
  1545. #define ICreateTypeInfo2_DeleteVarDesc(This,index)
  1546.     (This)->lpVtbl -> DeleteVarDesc(This,index)
  1547. #define ICreateTypeInfo2_DeleteVarDescByMemId(This,memid)
  1548.     (This)->lpVtbl -> DeleteVarDescByMemId(This,memid)
  1549. #define ICreateTypeInfo2_DeleteImplType(This,index)
  1550.     (This)->lpVtbl -> DeleteImplType(This,index)
  1551. #define ICreateTypeInfo2_SetCustData(This,guid,pVarVal)
  1552.     (This)->lpVtbl -> SetCustData(This,guid,pVarVal)
  1553. #define ICreateTypeInfo2_SetFuncCustData(This,index,guid,pVarVal)
  1554.     (This)->lpVtbl -> SetFuncCustData(This,index,guid,pVarVal)
  1555. #define ICreateTypeInfo2_SetParamCustData(This,indexFunc,indexParam,guid,pVarVal)
  1556.     (This)->lpVtbl -> SetParamCustData(This,indexFunc,indexParam,guid,pVarVal)
  1557. #define ICreateTypeInfo2_SetVarCustData(This,index,guid,pVarVal)
  1558.     (This)->lpVtbl -> SetVarCustData(This,index,guid,pVarVal)
  1559. #define ICreateTypeInfo2_SetImplTypeCustData(This,index,guid,pVarVal)
  1560.     (This)->lpVtbl -> SetImplTypeCustData(This,index,guid,pVarVal)
  1561. #define ICreateTypeInfo2_SetHelpStringContext(This,dwHelpStringContext)
  1562.     (This)->lpVtbl -> SetHelpStringContext(This,dwHelpStringContext)
  1563. #define ICreateTypeInfo2_SetFuncHelpStringContext(This,index,dwHelpStringContext)
  1564.     (This)->lpVtbl -> SetFuncHelpStringContext(This,index,dwHelpStringContext)
  1565. #define ICreateTypeInfo2_SetVarHelpStringContext(This,index,dwHelpStringContext)
  1566.     (This)->lpVtbl -> SetVarHelpStringContext(This,index,dwHelpStringContext)
  1567. #define ICreateTypeInfo2_Invalidate(This)
  1568.     (This)->lpVtbl -> Invalidate(This)
  1569. #define ICreateTypeInfo2_SetName(This,szName)
  1570.     (This)->lpVtbl -> SetName(This,szName)
  1571. #endif /* COBJMACROS */
  1572. #endif  /* C style interface */
  1573. HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_DeleteFuncDesc_Proxy( 
  1574.     ICreateTypeInfo2 * This,
  1575.     /* [in] */ UINT index);
  1576. void __RPC_STUB ICreateTypeInfo2_DeleteFuncDesc_Stub(
  1577.     IRpcStubBuffer *This,
  1578.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1579.     PRPC_MESSAGE _pRpcMessage,
  1580.     DWORD *_pdwStubPhase);
  1581. HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_DeleteFuncDescByMemId_Proxy( 
  1582.     ICreateTypeInfo2 * This,
  1583.     /* [in] */ MEMBERID memid,
  1584.     /* [in] */ INVOKEKIND invKind);
  1585. void __RPC_STUB ICreateTypeInfo2_DeleteFuncDescByMemId_Stub(
  1586.     IRpcStubBuffer *This,
  1587.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1588.     PRPC_MESSAGE _pRpcMessage,
  1589.     DWORD *_pdwStubPhase);
  1590. HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_DeleteVarDesc_Proxy( 
  1591.     ICreateTypeInfo2 * This,
  1592.     /* [in] */ UINT index);
  1593. void __RPC_STUB ICreateTypeInfo2_DeleteVarDesc_Stub(
  1594.     IRpcStubBuffer *This,
  1595.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1596.     PRPC_MESSAGE _pRpcMessage,
  1597.     DWORD *_pdwStubPhase);
  1598. HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_DeleteVarDescByMemId_Proxy( 
  1599.     ICreateTypeInfo2 * This,
  1600.     /* [in] */ MEMBERID memid);
  1601. void __RPC_STUB ICreateTypeInfo2_DeleteVarDescByMemId_Stub(
  1602.     IRpcStubBuffer *This,
  1603.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1604.     PRPC_MESSAGE _pRpcMessage,
  1605.     DWORD *_pdwStubPhase);
  1606. HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_DeleteImplType_Proxy( 
  1607.     ICreateTypeInfo2 * This,
  1608.     /* [in] */ UINT index);
  1609. void __RPC_STUB ICreateTypeInfo2_DeleteImplType_Stub(
  1610.     IRpcStubBuffer *This,
  1611.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1612.     PRPC_MESSAGE _pRpcMessage,
  1613.     DWORD *_pdwStubPhase);
  1614. HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_SetCustData_Proxy( 
  1615.     ICreateTypeInfo2 * This,
  1616.     /* [in] */ REFGUID guid,
  1617.     /* [in] */ VARIANT *pVarVal);
  1618. void __RPC_STUB ICreateTypeInfo2_SetCustData_Stub(
  1619.     IRpcStubBuffer *This,
  1620.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1621.     PRPC_MESSAGE _pRpcMessage,
  1622.     DWORD *_pdwStubPhase);
  1623. HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_SetFuncCustData_Proxy( 
  1624.     ICreateTypeInfo2 * This,
  1625.     /* [in] */ UINT index,
  1626.     /* [in] */ REFGUID guid,
  1627.     /* [in] */ VARIANT *pVarVal);
  1628. void __RPC_STUB ICreateTypeInfo2_SetFuncCustData_Stub(
  1629.     IRpcStubBuffer *This,
  1630.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1631.     PRPC_MESSAGE _pRpcMessage,
  1632.     DWORD *_pdwStubPhase);
  1633. HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_SetParamCustData_Proxy( 
  1634.     ICreateTypeInfo2 * This,
  1635.     /* [in] */ UINT indexFunc,
  1636.     /* [in] */ UINT indexParam,
  1637.     /* [in] */ REFGUID guid,
  1638.     /* [in] */ VARIANT *pVarVal);
  1639. void __RPC_STUB ICreateTypeInfo2_SetParamCustData_Stub(
  1640.     IRpcStubBuffer *This,
  1641.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1642.     PRPC_MESSAGE _pRpcMessage,
  1643.     DWORD *_pdwStubPhase);
  1644. HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_SetVarCustData_Proxy( 
  1645.     ICreateTypeInfo2 * This,
  1646.     /* [in] */ UINT index,
  1647.     /* [in] */ REFGUID guid,
  1648.     /* [in] */ VARIANT *pVarVal);
  1649. void __RPC_STUB ICreateTypeInfo2_SetVarCustData_Stub(
  1650.     IRpcStubBuffer *This,
  1651.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1652.     PRPC_MESSAGE _pRpcMessage,
  1653.     DWORD *_pdwStubPhase);
  1654. HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_SetImplTypeCustData_Proxy( 
  1655.     ICreateTypeInfo2 * This,
  1656.     /* [in] */ UINT index,
  1657.     /* [in] */ REFGUID guid,
  1658.     /* [in] */ VARIANT *pVarVal);
  1659. void __RPC_STUB ICreateTypeInfo2_SetImplTypeCustData_Stub(
  1660.     IRpcStubBuffer *This,
  1661.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1662.     PRPC_MESSAGE _pRpcMessage,
  1663.     DWORD *_pdwStubPhase);
  1664. HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_SetHelpStringContext_Proxy( 
  1665.     ICreateTypeInfo2 * This,
  1666.     /* [in] */ ULONG dwHelpStringContext);
  1667. void __RPC_STUB ICreateTypeInfo2_SetHelpStringContext_Stub(
  1668.     IRpcStubBuffer *This,
  1669.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1670.     PRPC_MESSAGE _pRpcMessage,
  1671.     DWORD *_pdwStubPhase);
  1672. HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_SetFuncHelpStringContext_Proxy( 
  1673.     ICreateTypeInfo2 * This,
  1674.     /* [in] */ UINT index,
  1675.     /* [in] */ ULONG dwHelpStringContext);
  1676. void __RPC_STUB ICreateTypeInfo2_SetFuncHelpStringContext_Stub(
  1677.     IRpcStubBuffer *This,
  1678.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1679.     PRPC_MESSAGE _pRpcMessage,
  1680.     DWORD *_pdwStubPhase);
  1681. HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_SetVarHelpStringContext_Proxy( 
  1682.     ICreateTypeInfo2 * This,
  1683.     /* [in] */ UINT index,
  1684.     /* [in] */ ULONG dwHelpStringContext);
  1685. void __RPC_STUB ICreateTypeInfo2_SetVarHelpStringContext_Stub(
  1686.     IRpcStubBuffer *This,
  1687.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1688.     PRPC_MESSAGE _pRpcMessage,
  1689.     DWORD *_pdwStubPhase);
  1690. HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_Invalidate_Proxy( 
  1691.     ICreateTypeInfo2 * This);
  1692. void __RPC_STUB ICreateTypeInfo2_Invalidate_Stub(
  1693.     IRpcStubBuffer *This,
  1694.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1695.     PRPC_MESSAGE _pRpcMessage,
  1696.     DWORD *_pdwStubPhase);
  1697. HRESULT STDMETHODCALLTYPE ICreateTypeInfo2_SetName_Proxy( 
  1698.     ICreateTypeInfo2 * This,
  1699.     /* [in] */ LPOLESTR szName);
  1700. void __RPC_STUB ICreateTypeInfo2_SetName_Stub(
  1701.     IRpcStubBuffer *This,
  1702.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1703.     PRPC_MESSAGE _pRpcMessage,
  1704.     DWORD *_pdwStubPhase);
  1705. #endif  /* __ICreateTypeInfo2_INTERFACE_DEFINED__ */
  1706. #ifndef __ICreateTypeLib_INTERFACE_DEFINED__
  1707. #define __ICreateTypeLib_INTERFACE_DEFINED__
  1708. /* interface ICreateTypeLib */
  1709. /* [local][unique][uuid][object] */ 
  1710. typedef /* [unique] */ ICreateTypeLib *LPCREATETYPELIB;
  1711. EXTERN_C const IID IID_ICreateTypeLib;
  1712. #if defined(__cplusplus) && !defined(CINTERFACE)
  1713.     
  1714.     MIDL_INTERFACE("00020406-0000-0000-C000-000000000046")
  1715.     ICreateTypeLib : public IUnknown
  1716.     {
  1717.     public:
  1718.         virtual HRESULT STDMETHODCALLTYPE CreateTypeInfo( 
  1719.             /* [in] */ LPOLESTR szName,
  1720.             /* [in] */ TYPEKIND tkind,
  1721.             /* [out] */ ICreateTypeInfo **ppCTInfo) = 0;
  1722.         
  1723.         virtual HRESULT STDMETHODCALLTYPE SetName( 
  1724.             /* [in] */ LPOLESTR szName) = 0;
  1725.         
  1726.         virtual HRESULT STDMETHODCALLTYPE SetVersion( 
  1727.             /* [in] */ WORD wMajorVerNum,
  1728.             /* [in] */ WORD wMinorVerNum) = 0;
  1729.         
  1730.         virtual HRESULT STDMETHODCALLTYPE SetGuid( 
  1731.             /* [in] */ REFGUID guid) = 0;
  1732.         
  1733.         virtual HRESULT STDMETHODCALLTYPE SetDocString( 
  1734.             /* [in] */ LPOLESTR szDoc) = 0;
  1735.         
  1736.         virtual HRESULT STDMETHODCALLTYPE SetHelpFileName( 
  1737.             /* [in] */ LPOLESTR szHelpFileName) = 0;
  1738.         
  1739.         virtual HRESULT STDMETHODCALLTYPE SetHelpContext( 
  1740.             /* [in] */ DWORD dwHelpContext) = 0;
  1741.         
  1742.         virtual HRESULT STDMETHODCALLTYPE SetLcid( 
  1743.             /* [in] */ LCID lcid) = 0;
  1744.         
  1745.         virtual HRESULT STDMETHODCALLTYPE SetLibFlags( 
  1746.             /* [in] */ UINT uLibFlags) = 0;
  1747.         
  1748.         virtual HRESULT STDMETHODCALLTYPE SaveAllChanges( void) = 0;
  1749.         
  1750.     };
  1751.     
  1752. #else  /* C style interface */
  1753.     typedef struct ICreateTypeLibVtbl
  1754.     {
  1755.         BEGIN_INTERFACE
  1756.         
  1757.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1758.             ICreateTypeLib * This,
  1759.             /* [in] */ REFIID riid,
  1760.             /* [iid_is][out] */ void **ppvObject);
  1761.         
  1762.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1763.             ICreateTypeLib * This);
  1764.         
  1765.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1766.             ICreateTypeLib * This);
  1767.         
  1768.         HRESULT ( STDMETHODCALLTYPE *CreateTypeInfo )( 
  1769.             ICreateTypeLib * This,
  1770.             /* [in] */ LPOLESTR szName,
  1771.             /* [in] */ TYPEKIND tkind,
  1772.             /* [out] */ ICreateTypeInfo **ppCTInfo);
  1773.         
  1774.         HRESULT ( STDMETHODCALLTYPE *SetName )( 
  1775.             ICreateTypeLib * This,
  1776.             /* [in] */ LPOLESTR szName);
  1777.         
  1778.         HRESULT ( STDMETHODCALLTYPE *SetVersion )( 
  1779.             ICreateTypeLib * This,
  1780.             /* [in] */ WORD wMajorVerNum,
  1781.             /* [in] */ WORD wMinorVerNum);
  1782.         
  1783.         HRESULT ( STDMETHODCALLTYPE *SetGuid )( 
  1784.             ICreateTypeLib * This,
  1785.             /* [in] */ REFGUID guid);
  1786.         
  1787.         HRESULT ( STDMETHODCALLTYPE *SetDocString )( 
  1788.             ICreateTypeLib * This,
  1789.             /* [in] */ LPOLESTR szDoc);
  1790.         
  1791.         HRESULT ( STDMETHODCALLTYPE *SetHelpFileName )( 
  1792.             ICreateTypeLib * This,
  1793.             /* [in] */ LPOLESTR szHelpFileName);
  1794.         
  1795.         HRESULT ( STDMETHODCALLTYPE *SetHelpContext )( 
  1796.             ICreateTypeLib * This,
  1797.             /* [in] */ DWORD dwHelpContext);
  1798.         
  1799.         HRESULT ( STDMETHODCALLTYPE *SetLcid )( 
  1800.             ICreateTypeLib * This,
  1801.             /* [in] */ LCID lcid);
  1802.         
  1803.         HRESULT ( STDMETHODCALLTYPE *SetLibFlags )( 
  1804.             ICreateTypeLib * This,
  1805.             /* [in] */ UINT uLibFlags);
  1806.         
  1807.         HRESULT ( STDMETHODCALLTYPE *SaveAllChanges )( 
  1808.             ICreateTypeLib * This);
  1809.         
  1810.         END_INTERFACE
  1811.     } ICreateTypeLibVtbl;
  1812.     interface ICreateTypeLib
  1813.     {
  1814.         CONST_VTBL struct ICreateTypeLibVtbl *lpVtbl;
  1815.     };
  1816.     
  1817. #ifdef COBJMACROS
  1818. #define ICreateTypeLib_QueryInterface(This,riid,ppvObject)
  1819.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1820. #define ICreateTypeLib_AddRef(This)
  1821.     (This)->lpVtbl -> AddRef(This)
  1822. #define ICreateTypeLib_Release(This)
  1823.     (This)->lpVtbl -> Release(This)
  1824. #define ICreateTypeLib_CreateTypeInfo(This,szName,tkind,ppCTInfo)
  1825.     (This)->lpVtbl -> CreateTypeInfo(This,szName,tkind,ppCTInfo)
  1826. #define ICreateTypeLib_SetName(This,szName)
  1827.     (This)->lpVtbl -> SetName(This,szName)
  1828. #define ICreateTypeLib_SetVersion(This,wMajorVerNum,wMinorVerNum)
  1829.     (This)->lpVtbl -> SetVersion(This,wMajorVerNum,wMinorVerNum)
  1830. #define ICreateTypeLib_SetGuid(This,guid)
  1831.     (This)->lpVtbl -> SetGuid(This,guid)
  1832. #define ICreateTypeLib_SetDocString(This,szDoc)
  1833.     (This)->lpVtbl -> SetDocString(This,szDoc)
  1834. #define ICreateTypeLib_SetHelpFileName(This,szHelpFileName)
  1835.     (This)->lpVtbl -> SetHelpFileName(This,szHelpFileName)
  1836. #define ICreateTypeLib_SetHelpContext(This,dwHelpContext)
  1837.     (This)->lpVtbl -> SetHelpContext(This,dwHelpContext)
  1838. #define ICreateTypeLib_SetLcid(This,lcid)
  1839.     (This)->lpVtbl -> SetLcid(This,lcid)
  1840. #define ICreateTypeLib_SetLibFlags(This,uLibFlags)
  1841.     (This)->lpVtbl -> SetLibFlags(This,uLibFlags)
  1842. #define ICreateTypeLib_SaveAllChanges(This)
  1843.     (This)->lpVtbl -> SaveAllChanges(This)
  1844. #endif /* COBJMACROS */
  1845. #endif  /* C style interface */
  1846. HRESULT STDMETHODCALLTYPE ICreateTypeLib_CreateTypeInfo_Proxy( 
  1847.     ICreateTypeLib * This,
  1848.     /* [in] */ LPOLESTR szName,
  1849.     /* [in] */ TYPEKIND tkind,
  1850.     /* [out] */ ICreateTypeInfo **ppCTInfo);
  1851. void __RPC_STUB ICreateTypeLib_CreateTypeInfo_Stub(
  1852.     IRpcStubBuffer *This,
  1853.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1854.     PRPC_MESSAGE _pRpcMessage,
  1855.     DWORD *_pdwStubPhase);
  1856. HRESULT STDMETHODCALLTYPE ICreateTypeLib_SetName_Proxy( 
  1857.     ICreateTypeLib * This,
  1858.     /* [in] */ LPOLESTR szName);
  1859. void __RPC_STUB ICreateTypeLib_SetName_Stub(
  1860.     IRpcStubBuffer *This,
  1861.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1862.     PRPC_MESSAGE _pRpcMessage,
  1863.     DWORD *_pdwStubPhase);
  1864. HRESULT STDMETHODCALLTYPE ICreateTypeLib_SetVersion_Proxy( 
  1865.     ICreateTypeLib * This,
  1866.     /* [in] */ WORD wMajorVerNum,
  1867.     /* [in] */ WORD wMinorVerNum);
  1868. void __RPC_STUB ICreateTypeLib_SetVersion_Stub(
  1869.     IRpcStubBuffer *This,
  1870.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1871.     PRPC_MESSAGE _pRpcMessage,
  1872.     DWORD *_pdwStubPhase);
  1873. HRESULT STDMETHODCALLTYPE ICreateTypeLib_SetGuid_Proxy( 
  1874.     ICreateTypeLib * This,
  1875.     /* [in] */ REFGUID guid);
  1876. void __RPC_STUB ICreateTypeLib_SetGuid_Stub(
  1877.     IRpcStubBuffer *This,
  1878.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1879.     PRPC_MESSAGE _pRpcMessage,
  1880.     DWORD *_pdwStubPhase);
  1881. HRESULT STDMETHODCALLTYPE ICreateTypeLib_SetDocString_Proxy( 
  1882.     ICreateTypeLib * This,
  1883.     /* [in] */ LPOLESTR szDoc);
  1884. void __RPC_STUB ICreateTypeLib_SetDocString_Stub(
  1885.     IRpcStubBuffer *This,
  1886.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1887.     PRPC_MESSAGE _pRpcMessage,
  1888.     DWORD *_pdwStubPhase);
  1889. HRESULT STDMETHODCALLTYPE ICreateTypeLib_SetHelpFileName_Proxy( 
  1890.     ICreateTypeLib * This,
  1891.     /* [in] */ LPOLESTR szHelpFileName);
  1892. void __RPC_STUB ICreateTypeLib_SetHelpFileName_Stub(
  1893.     IRpcStubBuffer *This,
  1894.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1895.     PRPC_MESSAGE _pRpcMessage,
  1896.     DWORD *_pdwStubPhase);
  1897. HRESULT STDMETHODCALLTYPE ICreateTypeLib_SetHelpContext_Proxy( 
  1898.     ICreateTypeLib * This,
  1899.     /* [in] */ DWORD dwHelpContext);
  1900. void __RPC_STUB ICreateTypeLib_SetHelpContext_Stub(
  1901.     IRpcStubBuffer *This,
  1902.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1903.     PRPC_MESSAGE _pRpcMessage,
  1904.     DWORD *_pdwStubPhase);
  1905. HRESULT STDMETHODCALLTYPE ICreateTypeLib_SetLcid_Proxy( 
  1906.     ICreateTypeLib * This,
  1907.     /* [in] */ LCID lcid);
  1908. void __RPC_STUB ICreateTypeLib_SetLcid_Stub(
  1909.     IRpcStubBuffer *This,
  1910.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1911.     PRPC_MESSAGE _pRpcMessage,
  1912.     DWORD *_pdwStubPhase);
  1913. HRESULT STDMETHODCALLTYPE ICreateTypeLib_SetLibFlags_Proxy( 
  1914.     ICreateTypeLib * This,
  1915.     /* [in] */ UINT uLibFlags);
  1916. void __RPC_STUB ICreateTypeLib_SetLibFlags_Stub(
  1917.     IRpcStubBuffer *This,
  1918.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1919.     PRPC_MESSAGE _pRpcMessage,
  1920.     DWORD *_pdwStubPhase);
  1921. HRESULT STDMETHODCALLTYPE ICreateTypeLib_SaveAllChanges_Proxy( 
  1922.     ICreateTypeLib * This);
  1923. void __RPC_STUB ICreateTypeLib_SaveAllChanges_Stub(
  1924.     IRpcStubBuffer *This,
  1925.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1926.     PRPC_MESSAGE _pRpcMessage,
  1927.     DWORD *_pdwStubPhase);
  1928. #endif  /* __ICreateTypeLib_INTERFACE_DEFINED__ */
  1929. #ifndef __ICreateTypeLib2_INTERFACE_DEFINED__
  1930. #define __ICreateTypeLib2_INTERFACE_DEFINED__
  1931. /* interface ICreateTypeLib2 */
  1932. /* [local][unique][uuid][object] */ 
  1933. typedef /* [unique] */ ICreateTypeLib2 *LPCREATETYPELIB2;
  1934. EXTERN_C const IID IID_ICreateTypeLib2;
  1935. #if defined(__cplusplus) && !defined(CINTERFACE)
  1936.     
  1937.     MIDL_INTERFACE("0002040F-0000-0000-C000-000000000046")
  1938.     ICreateTypeLib2 : public ICreateTypeLib
  1939.     {
  1940.     public:
  1941.         virtual HRESULT STDMETHODCALLTYPE DeleteTypeInfo( 
  1942.             /* [in] */ LPOLESTR szName) = 0;
  1943.         
  1944.         virtual HRESULT STDMETHODCALLTYPE SetCustData( 
  1945.             /* [in] */ REFGUID guid,
  1946.             /* [in] */ VARIANT *pVarVal) = 0;
  1947.         
  1948.         virtual HRESULT STDMETHODCALLTYPE SetHelpStringContext( 
  1949.             /* [in] */ ULONG dwHelpStringContext) = 0;
  1950.         
  1951.         virtual HRESULT STDMETHODCALLTYPE SetHelpStringDll( 
  1952.             /* [in] */ LPOLESTR szFileName) = 0;
  1953.         
  1954.     };
  1955.     
  1956. #else  /* C style interface */
  1957.     typedef struct ICreateTypeLib2Vtbl
  1958.     {
  1959.         BEGIN_INTERFACE
  1960.         
  1961.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1962.             ICreateTypeLib2 * This,
  1963.             /* [in] */ REFIID riid,
  1964.             /* [iid_is][out] */ void **ppvObject);
  1965.         
  1966.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1967.             ICreateTypeLib2 * This);
  1968.         
  1969.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1970.             ICreateTypeLib2 * This);
  1971.         
  1972.         HRESULT ( STDMETHODCALLTYPE *CreateTypeInfo )( 
  1973.             ICreateTypeLib2 * This,
  1974.             /* [in] */ LPOLESTR szName,
  1975.             /* [in] */ TYPEKIND tkind,
  1976.             /* [out] */ ICreateTypeInfo **ppCTInfo);
  1977.         
  1978.         HRESULT ( STDMETHODCALLTYPE *SetName )( 
  1979.             ICreateTypeLib2 * This,
  1980.             /* [in] */ LPOLESTR szName);
  1981.         
  1982.         HRESULT ( STDMETHODCALLTYPE *SetVersion )( 
  1983.             ICreateTypeLib2 * This,
  1984.             /* [in] */ WORD wMajorVerNum,
  1985.             /* [in] */ WORD wMinorVerNum);
  1986.         
  1987.         HRESULT ( STDMETHODCALLTYPE *SetGuid )( 
  1988.             ICreateTypeLib2 * This,
  1989.             /* [in] */ REFGUID guid);
  1990.         
  1991.         HRESULT ( STDMETHODCALLTYPE *SetDocString )( 
  1992.             ICreateTypeLib2 * This,
  1993.             /* [in] */ LPOLESTR szDoc);
  1994.         
  1995.         HRESULT ( STDMETHODCALLTYPE *SetHelpFileName )( 
  1996.             ICreateTypeLib2 * This,
  1997.             /* [in] */ LPOLESTR szHelpFileName);
  1998.         
  1999.         HRESULT ( STDMETHODCALLTYPE *SetHelpContext )( 
  2000.             ICreateTypeLib2 * This,
  2001.             /* [in] */ DWORD dwHelpContext);
  2002.         
  2003.         HRESULT ( STDMETHODCALLTYPE *SetLcid )( 
  2004.             ICreateTypeLib2 * This,
  2005.             /* [in] */ LCID lcid);
  2006.         
  2007.         HRESULT ( STDMETHODCALLTYPE *SetLibFlags )( 
  2008.             ICreateTypeLib2 * This,
  2009.             /* [in] */ UINT uLibFlags);
  2010.         
  2011.         HRESULT ( STDMETHODCALLTYPE *SaveAllChanges )( 
  2012.             ICreateTypeLib2 * This);
  2013.         
  2014.         HRESULT ( STDMETHODCALLTYPE *DeleteTypeInfo )( 
  2015.             ICreateTypeLib2 * This,
  2016.             /* [in] */ LPOLESTR szName);
  2017.         
  2018.         HRESULT ( STDMETHODCALLTYPE *SetCustData )( 
  2019.             ICreateTypeLib2 * This,
  2020.             /* [in] */ REFGUID guid,
  2021.             /* [in] */ VARIANT *pVarVal);
  2022.         
  2023.         HRESULT ( STDMETHODCALLTYPE *SetHelpStringContext )( 
  2024.             ICreateTypeLib2 * This,
  2025.             /* [in] */ ULONG dwHelpStringContext);
  2026.         
  2027.         HRESULT ( STDMETHODCALLTYPE *SetHelpStringDll )( 
  2028.             ICreateTypeLib2 * This,
  2029.             /* [in] */ LPOLESTR szFileName);
  2030.         
  2031.         END_INTERFACE
  2032.     } ICreateTypeLib2Vtbl;
  2033.     interface ICreateTypeLib2
  2034.     {
  2035.         CONST_VTBL struct ICreateTypeLib2Vtbl *lpVtbl;
  2036.     };
  2037.     
  2038. #ifdef COBJMACROS
  2039. #define ICreateTypeLib2_QueryInterface(This,riid,ppvObject)
  2040.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2041. #define ICreateTypeLib2_AddRef(This)
  2042.     (This)->lpVtbl -> AddRef(This)
  2043. #define ICreateTypeLib2_Release(This)
  2044.     (This)->lpVtbl -> Release(This)
  2045. #define ICreateTypeLib2_CreateTypeInfo(This,szName,tkind,ppCTInfo)
  2046.     (This)->lpVtbl -> CreateTypeInfo(This,szName,tkind,ppCTInfo)
  2047. #define ICreateTypeLib2_SetName(This,szName)
  2048.     (This)->lpVtbl -> SetName(This,szName)
  2049. #define ICreateTypeLib2_SetVersion(This,wMajorVerNum,wMinorVerNum)
  2050.     (This)->lpVtbl -> SetVersion(This,wMajorVerNum,wMinorVerNum)
  2051. #define ICreateTypeLib2_SetGuid(This,guid)
  2052.     (This)->lpVtbl -> SetGuid(This,guid)
  2053. #define ICreateTypeLib2_SetDocString(This,szDoc)
  2054.     (This)->lpVtbl -> SetDocString(This,szDoc)
  2055. #define ICreateTypeLib2_SetHelpFileName(This,szHelpFileName)
  2056.     (This)->lpVtbl -> SetHelpFileName(This,szHelpFileName)
  2057. #define ICreateTypeLib2_SetHelpContext(This,dwHelpContext)
  2058.     (This)->lpVtbl -> SetHelpContext(This,dwHelpContext)
  2059. #define ICreateTypeLib2_SetLcid(This,lcid)
  2060.     (This)->lpVtbl -> SetLcid(This,lcid)
  2061. #define ICreateTypeLib2_SetLibFlags(This,uLibFlags)
  2062.     (This)->lpVtbl -> SetLibFlags(This,uLibFlags)
  2063. #define ICreateTypeLib2_SaveAllChanges(This)
  2064.     (This)->lpVtbl -> SaveAllChanges(This)
  2065. #define ICreateTypeLib2_DeleteTypeInfo(This,szName)
  2066.     (This)->lpVtbl -> DeleteTypeInfo(This,szName)
  2067. #define ICreateTypeLib2_SetCustData(This,guid,pVarVal)
  2068.     (This)->lpVtbl -> SetCustData(This,guid,pVarVal)
  2069. #define ICreateTypeLib2_SetHelpStringContext(This,dwHelpStringContext)
  2070.     (This)->lpVtbl -> SetHelpStringContext(This,dwHelpStringContext)
  2071. #define ICreateTypeLib2_SetHelpStringDll(This,szFileName)
  2072.     (This)->lpVtbl -> SetHelpStringDll(This,szFileName)
  2073. #endif /* COBJMACROS */
  2074. #endif  /* C style interface */
  2075. HRESULT STDMETHODCALLTYPE ICreateTypeLib2_DeleteTypeInfo_Proxy( 
  2076.     ICreateTypeLib2 * This,
  2077.     /* [in] */ LPOLESTR szName);
  2078. void __RPC_STUB ICreateTypeLib2_DeleteTypeInfo_Stub(
  2079.     IRpcStubBuffer *This,
  2080.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2081.     PRPC_MESSAGE _pRpcMessage,
  2082.     DWORD *_pdwStubPhase);
  2083. HRESULT STDMETHODCALLTYPE ICreateTypeLib2_SetCustData_Proxy( 
  2084.     ICreateTypeLib2 * This,
  2085.     /* [in] */ REFGUID guid,
  2086.     /* [in] */ VARIANT *pVarVal);
  2087. void __RPC_STUB ICreateTypeLib2_SetCustData_Stub(
  2088.     IRpcStubBuffer *This,
  2089.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2090.     PRPC_MESSAGE _pRpcMessage,
  2091.     DWORD *_pdwStubPhase);
  2092. HRESULT STDMETHODCALLTYPE ICreateTypeLib2_SetHelpStringContext_Proxy( 
  2093.     ICreateTypeLib2 * This,
  2094.     /* [in] */ ULONG dwHelpStringContext);
  2095. void __RPC_STUB ICreateTypeLib2_SetHelpStringContext_Stub(
  2096.     IRpcStubBuffer *This,
  2097.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2098.     PRPC_MESSAGE _pRpcMessage,
  2099.     DWORD *_pdwStubPhase);
  2100. HRESULT STDMETHODCALLTYPE ICreateTypeLib2_SetHelpStringDll_Proxy( 
  2101.     ICreateTypeLib2 * This,
  2102.     /* [in] */ LPOLESTR szFileName);
  2103. void __RPC_STUB ICreateTypeLib2_SetHelpStringDll_Stub(
  2104.     IRpcStubBuffer *This,
  2105.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2106.     PRPC_MESSAGE _pRpcMessage,
  2107.     DWORD *_pdwStubPhase);
  2108. #endif  /* __ICreateTypeLib2_INTERFACE_DEFINED__ */
  2109. #ifndef __IDispatch_INTERFACE_DEFINED__
  2110. #define __IDispatch_INTERFACE_DEFINED__
  2111. /* interface IDispatch */
  2112. /* [unique][uuid][object] */ 
  2113. typedef /* [unique] */ IDispatch *LPDISPATCH;
  2114. /* DISPID reserved to indicate an "unknown" name */
  2115. /* only reserved for data members (properties); reused as a method dispid below */
  2116. #define DISPID_UNKNOWN ( -1 )
  2117. /* DISPID reserved for the "value" property */
  2118. #define DISPID_VALUE ( 0 )
  2119. /* The following DISPID is reserved to indicate the param
  2120.  * that is the right-hand-side (or "put" value) of a PropertyPut
  2121.  */
  2122. #define DISPID_PROPERTYPUT ( -3 )
  2123. /* DISPID reserved for the standard "NewEnum" method */
  2124. #define DISPID_NEWENUM ( -4 )
  2125. /* DISPID reserved for the standard "Evaluate" method */
  2126. #define DISPID_EVALUATE ( -5 )
  2127. #define DISPID_CONSTRUCTOR ( -6 )
  2128. #define DISPID_DESTRUCTOR ( -7 )
  2129. #define DISPID_COLLECT ( -8 )
  2130. /* The range -500 through -999 is reserved for Controls */
  2131. /* The range 0x80010000 through 0x8001FFFF is reserved for Controls */
  2132. /* The range -5000 through -5499 is reserved for ActiveX Accessability */
  2133. /* The range -2000 through -2499 is reserved for VB5 */
  2134. /* The range -3900 through -3999 is reserved for Forms */
  2135. /* The range -5500 through -5550 is reserved for Forms */
  2136. /* The remainder of the negative DISPIDs are reserved for future use */
  2137. EXTERN_C const IID IID_IDispatch;
  2138. #if defined(__cplusplus) && !defined(CINTERFACE)
  2139.     
  2140.     MIDL_INTERFACE("00020400-0000-0000-C000-000000000046")
  2141.     IDispatch : public IUnknown
  2142.     {
  2143.     public:
  2144.         virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount( 
  2145.             /* [out] */ UINT *pctinfo) = 0;
  2146.         
  2147.         virtual HRESULT STDMETHODCALLTYPE GetTypeInfo( 
  2148.             /* [in] */ UINT iTInfo,
  2149.             /* [in] */ LCID lcid,
  2150.             /* [out] */ ITypeInfo **ppTInfo) = 0;
  2151.         
  2152.         virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames( 
  2153.             /* [in] */ REFIID riid,
  2154.             /* [size_is][in] */ LPOLESTR *rgszNames,
  2155.             /* [in] */ UINT cNames,
  2156.             /* [in] */ LCID lcid,
  2157.             /* [size_is][out] */ DISPID *rgDispId) = 0;
  2158.         
  2159.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE Invoke( 
  2160.             /* [in] */ DISPID dispIdMember,
  2161.             /* [in] */ REFIID riid,
  2162.             /* [in] */ LCID lcid,
  2163.             /* [in] */ WORD wFlags,
  2164.             /* [out][in] */ DISPPARAMS *pDispParams,
  2165.             /* [out] */ VARIANT *pVarResult,
  2166.             /* [out] */ EXCEPINFO *pExcepInfo,
  2167.             /* [out] */ UINT *puArgErr) = 0;
  2168.         
  2169.     };
  2170.     
  2171. #else  /* C style interface */
  2172.     typedef struct IDispatchVtbl
  2173.     {
  2174.         BEGIN_INTERFACE
  2175.         
  2176.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2177.             IDispatch * This,
  2178.             /* [in] */ REFIID riid,
  2179.             /* [iid_is][out] */ void **ppvObject);
  2180.         
  2181.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2182.             IDispatch * This);
  2183.         
  2184.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2185.             IDispatch * This);
  2186.         
  2187.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
  2188.             IDispatch * This,
  2189.             /* [out] */ UINT *pctinfo);
  2190.         
  2191.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
  2192.             IDispatch * This,
  2193.             /* [in] */ UINT iTInfo,
  2194.             /* [in] */ LCID lcid,
  2195.             /* [out] */ ITypeInfo **ppTInfo);
  2196.         
  2197.         HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
  2198.             IDispatch * This,
  2199.             /* [in] */ REFIID riid,
  2200.             /* [size_is][in] */ LPOLESTR *rgszNames,
  2201.             /* [in] */ UINT cNames,
  2202.             /* [in] */ LCID lcid,
  2203.             /* [size_is][out] */ DISPID *rgDispId);
  2204.         
  2205.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
  2206.             IDispatch * This,
  2207.             /* [in] */ DISPID dispIdMember,
  2208.             /* [in] */ REFIID riid,
  2209.             /* [in] */ LCID lcid,
  2210.             /* [in] */ WORD wFlags,
  2211.             /* [out][in] */ DISPPARAMS *pDispParams,
  2212.             /* [out] */ VARIANT *pVarResult,
  2213.             /* [out] */ EXCEPINFO *pExcepInfo,
  2214.             /* [out] */ UINT *puArgErr);
  2215.         
  2216.         END_INTERFACE
  2217.     } IDispatchVtbl;
  2218.     interface IDispatch
  2219.     {
  2220.         CONST_VTBL struct IDispatchVtbl *lpVtbl;
  2221.     };
  2222.     
  2223. #ifdef COBJMACROS
  2224. #define IDispatch_QueryInterface(This,riid,ppvObject)
  2225.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2226. #define IDispatch_AddRef(This)
  2227.     (This)->lpVtbl -> AddRef(This)
  2228. #define IDispatch_Release(This)
  2229.     (This)->lpVtbl -> Release(This)
  2230. #define IDispatch_GetTypeInfoCount(This,pctinfo)
  2231.     (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  2232. #define IDispatch_GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  2233.     (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  2234. #define IDispatch_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  2235.     (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  2236. #define IDispatch_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  2237.     (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  2238. #endif /* COBJMACROS */
  2239. #endif  /* C style interface */
  2240. HRESULT STDMETHODCALLTYPE IDispatch_GetTypeInfoCount_Proxy( 
  2241.     IDispatch * This,
  2242.     /* [out] */ UINT *pctinfo);
  2243. void __RPC_STUB IDispatch_GetTypeInfoCount_Stub(
  2244.     IRpcStubBuffer *This,
  2245.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2246.     PRPC_MESSAGE _pRpcMessage,
  2247.     DWORD *_pdwStubPhase);
  2248. HRESULT STDMETHODCALLTYPE IDispatch_GetTypeInfo_Proxy( 
  2249.     IDispatch * This,
  2250.     /* [in] */ UINT iTInfo,
  2251.     /* [in] */ LCID lcid,
  2252.     /* [out] */ ITypeInfo **ppTInfo);
  2253. void __RPC_STUB IDispatch_GetTypeInfo_Stub(
  2254.     IRpcStubBuffer *This,
  2255.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2256.     PRPC_MESSAGE _pRpcMessage,
  2257.     DWORD *_pdwStubPhase);
  2258. HRESULT STDMETHODCALLTYPE IDispatch_GetIDsOfNames_Proxy( 
  2259.     IDispatch * This,
  2260.     /* [in] */ REFIID riid,
  2261.     /* [size_is][in] */ LPOLESTR *rgszNames,
  2262.     /* [in] */ UINT cNames,
  2263.     /* [in] */ LCID lcid,
  2264.     /* [size_is][out] */ DISPID *rgDispId);
  2265. void __RPC_STUB IDispatch_GetIDsOfNames_Stub(
  2266.     IRpcStubBuffer *This,
  2267.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2268.     PRPC_MESSAGE _pRpcMessage,
  2269.     DWORD *_pdwStubPhase);
  2270. /* [call_as] */ HRESULT STDMETHODCALLTYPE IDispatch_RemoteInvoke_Proxy( 
  2271.     IDispatch * This,
  2272.     /* [in] */ DISPID dispIdMember,
  2273.     /* [in] */ REFIID riid,
  2274.     /* [in] */ LCID lcid,
  2275.     /* [in] */ DWORD dwFlags,
  2276.     /* [in] */ DISPPARAMS *pDispParams,
  2277.     /* [out] */ VARIANT *pVarResult,
  2278.     /* [out] */ EXCEPINFO *pExcepInfo,
  2279.     /* [out] */ UINT *pArgErr,
  2280.     /* [in] */ UINT cVarRef,
  2281.     /* [size_is][in] */ UINT *rgVarRefIdx,
  2282.     /* [size_is][out][in] */ VARIANTARG *rgVarRef);
  2283. void __RPC_STUB IDispatch_RemoteInvoke_Stub(
  2284.     IRpcStubBuffer *This,
  2285.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2286.     PRPC_MESSAGE _pRpcMessage,
  2287.     DWORD *_pdwStubPhase);
  2288. #endif  /* __IDispatch_INTERFACE_DEFINED__ */
  2289. #ifndef __IEnumVARIANT_INTERFACE_DEFINED__
  2290. #define __IEnumVARIANT_INTERFACE_DEFINED__
  2291. /* interface IEnumVARIANT */
  2292. /* [unique][uuid][object] */ 
  2293. typedef /* [unique] */ IEnumVARIANT *LPENUMVARIANT;
  2294. EXTERN_C const IID IID_IEnumVARIANT;
  2295. #if defined(__cplusplus) && !defined(CINTERFACE)
  2296.     
  2297.     MIDL_INTERFACE("00020404-0000-0000-C000-000000000046")
  2298.     IEnumVARIANT : public IUnknown
  2299.     {
  2300.     public:
  2301.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE Next( 
  2302.             /* [in] */ ULONG celt,
  2303.             /* [length_is][size_is][out] */ VARIANT *rgVar,
  2304.             /* [out] */ ULONG *pCeltFetched) = 0;
  2305.         
  2306.         virtual HRESULT STDMETHODCALLTYPE Skip( 
  2307.             /* [in] */ ULONG celt) = 0;
  2308.         
  2309.         virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  2310.         
  2311.         virtual HRESULT STDMETHODCALLTYPE Clone( 
  2312.             /* [out] */ IEnumVARIANT **ppEnum) = 0;
  2313.         
  2314.     };
  2315.     
  2316. #else  /* C style interface */
  2317.     typedef struct IEnumVARIANTVtbl
  2318.     {
  2319.         BEGIN_INTERFACE
  2320.         
  2321.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2322.             IEnumVARIANT * This,
  2323.             /* [in] */ REFIID riid,
  2324.             /* [iid_is][out] */ void **ppvObject);
  2325.         
  2326.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2327.             IEnumVARIANT * This);
  2328.         
  2329.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2330.             IEnumVARIANT * This);
  2331.         
  2332.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )( 
  2333.             IEnumVARIANT * This,
  2334.             /* [in] */ ULONG celt,
  2335.             /* [length_is][size_is][out] */ VARIANT *rgVar,
  2336.             /* [out] */ ULONG *pCeltFetched);
  2337.         
  2338.         HRESULT ( STDMETHODCALLTYPE *Skip )( 
  2339.             IEnumVARIANT * This,
  2340.             /* [in] */ ULONG celt);
  2341.         
  2342.         HRESULT ( STDMETHODCALLTYPE *Reset )( 
  2343.             IEnumVARIANT * This);
  2344.         
  2345.         HRESULT ( STDMETHODCALLTYPE *Clone )( 
  2346.             IEnumVARIANT * This,
  2347.             /* [out] */ IEnumVARIANT **ppEnum);
  2348.         
  2349.         END_INTERFACE
  2350.     } IEnumVARIANTVtbl;
  2351.     interface IEnumVARIANT
  2352.     {
  2353.         CONST_VTBL struct IEnumVARIANTVtbl *lpVtbl;
  2354.     };
  2355.     
  2356. #ifdef COBJMACROS
  2357. #define IEnumVARIANT_QueryInterface(This,riid,ppvObject)
  2358.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2359. #define IEnumVARIANT_AddRef(This)
  2360.     (This)->lpVtbl -> AddRef(This)
  2361. #define IEnumVARIANT_Release(This)
  2362.     (This)->lpVtbl -> Release(This)
  2363. #define IEnumVARIANT_Next(This,celt,rgVar,pCeltFetched)
  2364.     (This)->lpVtbl -> Next(This,celt,rgVar,pCeltFetched)
  2365. #define IEnumVARIANT_Skip(This,celt)
  2366.     (This)->lpVtbl -> Skip(This,celt)
  2367. #define IEnumVARIANT_Reset(This)
  2368.     (This)->lpVtbl -> Reset(This)
  2369. #define IEnumVARIANT_Clone(This,ppEnum)
  2370.     (This)->lpVtbl -> Clone(This,ppEnum)
  2371. #endif /* COBJMACROS */
  2372. #endif  /* C style interface */
  2373. /* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumVARIANT_RemoteNext_Proxy( 
  2374.     IEnumVARIANT * This,
  2375.     /* [in] */ ULONG celt,
  2376.     /* [length_is][size_is][out] */ VARIANT *rgVar,
  2377.     /* [out] */ ULONG *pCeltFetched);
  2378. void __RPC_STUB IEnumVARIANT_RemoteNext_Stub(
  2379.     IRpcStubBuffer *This,
  2380.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2381.     PRPC_MESSAGE _pRpcMessage,
  2382.     DWORD *_pdwStubPhase);
  2383. HRESULT STDMETHODCALLTYPE IEnumVARIANT_Skip_Proxy( 
  2384.     IEnumVARIANT * This,
  2385.     /* [in] */ ULONG celt);
  2386. void __RPC_STUB IEnumVARIANT_Skip_Stub(
  2387.     IRpcStubBuffer *This,
  2388.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2389.     PRPC_MESSAGE _pRpcMessage,
  2390.     DWORD *_pdwStubPhase);
  2391. HRESULT STDMETHODCALLTYPE IEnumVARIANT_Reset_Proxy( 
  2392.     IEnumVARIANT * This);
  2393. void __RPC_STUB IEnumVARIANT_Reset_Stub(
  2394.     IRpcStubBuffer *This,
  2395.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2396.     PRPC_MESSAGE _pRpcMessage,
  2397.     DWORD *_pdwStubPhase);
  2398. HRESULT STDMETHODCALLTYPE IEnumVARIANT_Clone_Proxy( 
  2399.     IEnumVARIANT * This,
  2400.     /* [out] */ IEnumVARIANT **ppEnum);
  2401. void __RPC_STUB IEnumVARIANT_Clone_Stub(
  2402.     IRpcStubBuffer *This,
  2403.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2404.     PRPC_MESSAGE _pRpcMessage,
  2405.     DWORD *_pdwStubPhase);
  2406. #endif  /* __IEnumVARIANT_INTERFACE_DEFINED__ */
  2407. #ifndef __ITypeComp_INTERFACE_DEFINED__
  2408. #define __ITypeComp_INTERFACE_DEFINED__
  2409. /* interface ITypeComp */
  2410. /* [unique][uuid][object] */ 
  2411. typedef /* [unique] */ ITypeComp *LPTYPECOMP;
  2412. typedef /* [v1_enum] */ 
  2413. enum tagDESCKIND
  2414.     { DESCKIND_NONE = 0,
  2415. DESCKIND_FUNCDESC = DESCKIND_NONE + 1,
  2416. DESCKIND_VARDESC = DESCKIND_FUNCDESC + 1,
  2417. DESCKIND_TYPECOMP = DESCKIND_VARDESC + 1,
  2418. DESCKIND_IMPLICITAPPOBJ = DESCKIND_TYPECOMP + 1,
  2419. DESCKIND_MAX = DESCKIND_IMPLICITAPPOBJ + 1
  2420.     }  DESCKIND;
  2421. typedef union tagBINDPTR
  2422.     {
  2423.     FUNCDESC *lpfuncdesc;
  2424.     VARDESC *lpvardesc;
  2425.     ITypeComp *lptcomp;
  2426.     }  BINDPTR;
  2427. typedef union tagBINDPTR *LPBINDPTR;
  2428. EXTERN_C const IID IID_ITypeComp;
  2429. #if defined(__cplusplus) && !defined(CINTERFACE)
  2430.     
  2431.     MIDL_INTERFACE("00020403-0000-0000-C000-000000000046")
  2432.     ITypeComp : public IUnknown
  2433.     {
  2434.     public:
  2435.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE Bind( 
  2436.             /* [in] */ LPOLESTR szName,
  2437.             /* [in] */ ULONG lHashVal,
  2438.             /* [in] */ WORD wFlags,
  2439.             /* [out] */ ITypeInfo **ppTInfo,
  2440.             /* [out] */ DESCKIND *pDescKind,
  2441.             /* [out] */ BINDPTR *pBindPtr) = 0;
  2442.         
  2443.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE BindType( 
  2444.             /* [in] */ LPOLESTR szName,
  2445.             /* [in] */ ULONG lHashVal,
  2446.             /* [out] */ ITypeInfo **ppTInfo,
  2447.             /* [out] */ ITypeComp **ppTComp) = 0;
  2448.         
  2449.     };
  2450.     
  2451. #else  /* C style interface */
  2452.     typedef struct ITypeCompVtbl
  2453.     {
  2454.         BEGIN_INTERFACE
  2455.         
  2456.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2457.             ITypeComp * This,
  2458.             /* [in] */ REFIID riid,
  2459.             /* [iid_is][out] */ void **ppvObject);
  2460.         
  2461.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2462.             ITypeComp * This);
  2463.         
  2464.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2465.             ITypeComp * This);
  2466.         
  2467.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Bind )( 
  2468.             ITypeComp * This,
  2469.             /* [in] */ LPOLESTR szName,
  2470.             /* [in] */ ULONG lHashVal,
  2471.             /* [in] */ WORD wFlags,
  2472.             /* [out] */ ITypeInfo **ppTInfo,
  2473.             /* [out] */ DESCKIND *pDescKind,
  2474.             /* [out] */ BINDPTR *pBindPtr);
  2475.         
  2476.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *BindType )( 
  2477.             ITypeComp * This,
  2478.             /* [in] */ LPOLESTR szName,
  2479.             /* [in] */ ULONG lHashVal,
  2480.             /* [out] */ ITypeInfo **ppTInfo,
  2481.             /* [out] */ ITypeComp **ppTComp);
  2482.         
  2483.         END_INTERFACE
  2484.     } ITypeCompVtbl;
  2485.     interface ITypeComp
  2486.     {
  2487.         CONST_VTBL struct ITypeCompVtbl *lpVtbl;
  2488.     };
  2489.     
  2490. #ifdef COBJMACROS
  2491. #define ITypeComp_QueryInterface(This,riid,ppvObject)
  2492.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2493. #define ITypeComp_AddRef(This)
  2494.     (This)->lpVtbl -> AddRef(This)
  2495. #define ITypeComp_Release(This)
  2496.     (This)->lpVtbl -> Release(This)
  2497. #define ITypeComp_Bind(This,szName,lHashVal,wFlags,ppTInfo,pDescKind,pBindPtr)
  2498.     (This)->lpVtbl -> Bind(This,szName,lHashVal,wFlags,ppTInfo,pDescKind,pBindPtr)
  2499. #define ITypeComp_BindType(This,szName,lHashVal,ppTInfo,ppTComp)
  2500.     (This)->lpVtbl -> BindType(This,szName,lHashVal,ppTInfo,ppTComp)
  2501. #endif /* COBJMACROS */
  2502. #endif  /* C style interface */
  2503. /* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeComp_RemoteBind_Proxy( 
  2504.     ITypeComp * This,
  2505.     /* [in] */ LPOLESTR szName,
  2506.     /* [in] */ ULONG lHashVal,
  2507.     /* [in] */ WORD wFlags,
  2508.     /* [out] */ ITypeInfo **ppTInfo,
  2509.     /* [out] */ DESCKIND *pDescKind,
  2510.     /* [out] */ LPFUNCDESC *ppFuncDesc,
  2511.     /* [out] */ LPVARDESC *ppVarDesc,
  2512.     /* [out] */ ITypeComp **ppTypeComp,
  2513.     /* [out] */ CLEANLOCALSTORAGE *pDummy);
  2514. void __RPC_STUB ITypeComp_RemoteBind_Stub(
  2515.     IRpcStubBuffer *This,
  2516.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2517.     PRPC_MESSAGE _pRpcMessage,
  2518.     DWORD *_pdwStubPhase);
  2519. /* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeComp_RemoteBindType_Proxy( 
  2520.     ITypeComp * This,
  2521.     /* [in] */ LPOLESTR szName,
  2522.     /* [in] */ ULONG lHashVal,
  2523.     /* [out] */ ITypeInfo **ppTInfo);
  2524. void __RPC_STUB ITypeComp_RemoteBindType_Stub(
  2525.     IRpcStubBuffer *This,
  2526.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2527.     PRPC_MESSAGE _pRpcMessage,
  2528.     DWORD *_pdwStubPhase);
  2529. #endif  /* __ITypeComp_INTERFACE_DEFINED__ */
  2530. #ifndef __ITypeInfo_INTERFACE_DEFINED__
  2531. #define __ITypeInfo_INTERFACE_DEFINED__
  2532. /* interface ITypeInfo */
  2533. /* [unique][uuid][object] */ 
  2534. typedef /* [unique] */ ITypeInfo *LPTYPEINFO;
  2535. EXTERN_C const IID IID_ITypeInfo;
  2536. #if defined(__cplusplus) && !defined(CINTERFACE)
  2537.     
  2538.     MIDL_INTERFACE("00020401-0000-0000-C000-000000000046")
  2539.     ITypeInfo : public IUnknown
  2540.     {
  2541.     public:
  2542.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetTypeAttr( 
  2543.             /* [out] */ TYPEATTR **ppTypeAttr) = 0;
  2544.         
  2545.         virtual HRESULT STDMETHODCALLTYPE GetTypeComp( 
  2546.             /* [out] */ ITypeComp **ppTComp) = 0;
  2547.         
  2548.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetFuncDesc( 
  2549.             /* [in] */ UINT index,
  2550.             /* [out] */ FUNCDESC **ppFuncDesc) = 0;
  2551.         
  2552.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetVarDesc( 
  2553.             /* [in] */ UINT index,
  2554.             /* [out] */ VARDESC **ppVarDesc) = 0;
  2555.         
  2556.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetNames( 
  2557.             /* [in] */ MEMBERID memid,
  2558.             /* [length_is][size_is][out] */ BSTR *rgBstrNames,
  2559.             /* [in] */ UINT cMaxNames,
  2560.             /* [out] */ UINT *pcNames) = 0;
  2561.         
  2562.         virtual HRESULT STDMETHODCALLTYPE GetRefTypeOfImplType( 
  2563.             /* [in] */ UINT index,
  2564.             /* [out] */ HREFTYPE *pRefType) = 0;
  2565.         
  2566.         virtual HRESULT STDMETHODCALLTYPE GetImplTypeFlags( 
  2567.             /* [in] */ UINT index,
  2568.             /* [out] */ INT *pImplTypeFlags) = 0;
  2569.         
  2570.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetIDsOfNames( 
  2571.             /* [size_is][in] */ LPOLESTR *rgszNames,
  2572.             /* [in] */ UINT cNames,
  2573.             /* [size_is][out] */ MEMBERID *pMemId) = 0;
  2574.         
  2575.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE Invoke( 
  2576.             /* [in] */ PVOID pvInstance,
  2577.             /* [in] */ MEMBERID memid,
  2578.             /* [in] */ WORD wFlags,
  2579.             /* [out][in] */ DISPPARAMS *pDispParams,
  2580.             /* [out] */ VARIANT *pVarResult,
  2581.             /* [out] */ EXCEPINFO *pExcepInfo,
  2582.             /* [out] */ UINT *puArgErr) = 0;
  2583.         
  2584.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetDocumentation( 
  2585.             /* [in] */ MEMBERID memid,
  2586.             /* [out] */ BSTR *pBstrName,
  2587.             /* [out] */ BSTR *pBstrDocString,
  2588.             /* [out] */ DWORD *pdwHelpContext,
  2589.             /* [out] */ BSTR *pBstrHelpFile) = 0;
  2590.         
  2591.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetDllEntry( 
  2592.             /* [in] */ MEMBERID memid,
  2593.             /* [in] */ INVOKEKIND invKind,
  2594.             /* [out] */ BSTR *pBstrDllName,
  2595.             /* [out] */ BSTR *pBstrName,
  2596.             /* [out] */ WORD *pwOrdinal) = 0;
  2597.         
  2598.         virtual HRESULT STDMETHODCALLTYPE GetRefTypeInfo( 
  2599.             /* [in] */ HREFTYPE hRefType,
  2600.             /* [out] */ ITypeInfo **ppTInfo) = 0;
  2601.         
  2602.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE AddressOfMember( 
  2603.             /* [in] */ MEMBERID memid,
  2604.             /* [in] */ INVOKEKIND invKind,
  2605.             /* [out] */ PVOID *ppv) = 0;
  2606.         
  2607.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE CreateInstance( 
  2608.             /* [in] */ IUnknown *pUnkOuter,
  2609.             /* [in] */ REFIID riid,
  2610.             /* [iid_is][out] */ PVOID *ppvObj) = 0;
  2611.         
  2612.         virtual HRESULT STDMETHODCALLTYPE GetMops( 
  2613.             /* [in] */ MEMBERID memid,
  2614.             /* [out] */ BSTR *pBstrMops) = 0;
  2615.         
  2616.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetContainingTypeLib( 
  2617.             /* [out] */ ITypeLib **ppTLib,
  2618.             /* [out] */ UINT *pIndex) = 0;
  2619.         
  2620.         virtual /* [local] */ void STDMETHODCALLTYPE ReleaseTypeAttr( 
  2621.             /* [in] */ TYPEATTR *pTypeAttr) = 0;
  2622.         
  2623.         virtual /* [local] */ void STDMETHODCALLTYPE ReleaseFuncDesc( 
  2624.             /* [in] */ FUNCDESC *pFuncDesc) = 0;
  2625.         
  2626.         virtual /* [local] */ void STDMETHODCALLTYPE ReleaseVarDesc( 
  2627.             /* [in] */ VARDESC *pVarDesc) = 0;
  2628.         
  2629.     };
  2630.     
  2631. #else  /* C style interface */
  2632.     typedef struct ITypeInfoVtbl
  2633.     {
  2634.         BEGIN_INTERFACE
  2635.         
  2636.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2637.             ITypeInfo * This,
  2638.             /* [in] */ REFIID riid,
  2639.             /* [iid_is][out] */ void **ppvObject);
  2640.         
  2641.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2642.             ITypeInfo * This);
  2643.         
  2644.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2645.             ITypeInfo * This);
  2646.         
  2647.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetTypeAttr )( 
  2648.             ITypeInfo * This,
  2649.             /* [out] */ TYPEATTR **ppTypeAttr);
  2650.         
  2651.         HRESULT ( STDMETHODCALLTYPE *GetTypeComp )( 
  2652.             ITypeInfo * This,
  2653.             /* [out] */ ITypeComp **ppTComp);
  2654.         
  2655.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetFuncDesc )( 
  2656.             ITypeInfo * This,
  2657.             /* [in] */ UINT index,
  2658.             /* [out] */ FUNCDESC **ppFuncDesc);
  2659.         
  2660.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetVarDesc )( 
  2661.             ITypeInfo * This,
  2662.             /* [in] */ UINT index,
  2663.             /* [out] */ VARDESC **ppVarDesc);
  2664.         
  2665.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetNames )( 
  2666.             ITypeInfo * This,
  2667.             /* [in] */ MEMBERID memid,
  2668.             /* [length_is][size_is][out] */ BSTR *rgBstrNames,
  2669.             /* [in] */ UINT cMaxNames,
  2670.             /* [out] */ UINT *pcNames);
  2671.         
  2672.         HRESULT ( STDMETHODCALLTYPE *GetRefTypeOfImplType )( 
  2673.             ITypeInfo * This,
  2674.             /* [in] */ UINT index,
  2675.             /* [out] */ HREFTYPE *pRefType);
  2676.         
  2677.         HRESULT ( STDMETHODCALLTYPE *GetImplTypeFlags )( 
  2678.             ITypeInfo * This,
  2679.             /* [in] */ UINT index,
  2680.             /* [out] */ INT *pImplTypeFlags);
  2681.         
  2682.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
  2683.             ITypeInfo * This,
  2684.             /* [size_is][in] */ LPOLESTR *rgszNames,
  2685.             /* [in] */ UINT cNames,
  2686.             /* [size_is][out] */ MEMBERID *pMemId);
  2687.         
  2688.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
  2689.             ITypeInfo * This,
  2690.             /* [in] */ PVOID pvInstance,
  2691.             /* [in] */ MEMBERID memid,
  2692.             /* [in] */ WORD wFlags,
  2693.             /* [out][in] */ DISPPARAMS *pDispParams,
  2694.             /* [out] */ VARIANT *pVarResult,
  2695.             /* [out] */ EXCEPINFO *pExcepInfo,
  2696.             /* [out] */ UINT *puArgErr);
  2697.         
  2698.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetDocumentation )( 
  2699.             ITypeInfo * This,
  2700.             /* [in] */ MEMBERID memid,
  2701.             /* [out] */ BSTR *pBstrName,
  2702.             /* [out] */ BSTR *pBstrDocString,
  2703.             /* [out] */ DWORD *pdwHelpContext,
  2704.             /* [out] */ BSTR *pBstrHelpFile);
  2705.         
  2706.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetDllEntry )( 
  2707.             ITypeInfo * This,
  2708.             /* [in] */ MEMBERID memid,
  2709.             /* [in] */ INVOKEKIND invKind,
  2710.             /* [out] */ BSTR *pBstrDllName,
  2711.             /* [out] */ BSTR *pBstrName,
  2712.             /* [out] */ WORD *pwOrdinal);
  2713.         
  2714.         HRESULT ( STDMETHODCALLTYPE *GetRefTypeInfo )( 
  2715.             ITypeInfo * This,
  2716.             /* [in] */ HREFTYPE hRefType,
  2717.             /* [out] */ ITypeInfo **ppTInfo);
  2718.         
  2719.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *AddressOfMember )( 
  2720.             ITypeInfo * This,
  2721.             /* [in] */ MEMBERID memid,
  2722.             /* [in] */ INVOKEKIND invKind,
  2723.             /* [out] */ PVOID *ppv);
  2724.         
  2725.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *CreateInstance )( 
  2726.             ITypeInfo * This,
  2727.             /* [in] */ IUnknown *pUnkOuter,
  2728.             /* [in] */ REFIID riid,
  2729.             /* [iid_is][out] */ PVOID *ppvObj);
  2730.         
  2731.         HRESULT ( STDMETHODCALLTYPE *GetMops )( 
  2732.             ITypeInfo * This,
  2733.             /* [in] */ MEMBERID memid,
  2734.             /* [out] */ BSTR *pBstrMops);
  2735.         
  2736.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetContainingTypeLib )( 
  2737.             ITypeInfo * This,
  2738.             /* [out] */ ITypeLib **ppTLib,
  2739.             /* [out] */ UINT *pIndex);
  2740.         
  2741.         /* [local] */ void ( STDMETHODCALLTYPE *ReleaseTypeAttr )( 
  2742.             ITypeInfo * This,
  2743.             /* [in] */ TYPEATTR *pTypeAttr);
  2744.         
  2745.         /* [local] */ void ( STDMETHODCALLTYPE *ReleaseFuncDesc )( 
  2746.             ITypeInfo * This,
  2747.             /* [in] */ FUNCDESC *pFuncDesc);
  2748.         
  2749.         /* [local] */ void ( STDMETHODCALLTYPE *ReleaseVarDesc )( 
  2750.             ITypeInfo * This,
  2751.             /* [in] */ VARDESC *pVarDesc);
  2752.         
  2753.         END_INTERFACE
  2754.     } ITypeInfoVtbl;
  2755.     interface ITypeInfo
  2756.     {
  2757.         CONST_VTBL struct ITypeInfoVtbl *lpVtbl;
  2758.     };
  2759.     
  2760. #ifdef COBJMACROS
  2761. #define ITypeInfo_QueryInterface(This,riid,ppvObject)
  2762.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2763. #define ITypeInfo_AddRef(This)
  2764.     (This)->lpVtbl -> AddRef(This)
  2765. #define ITypeInfo_Release(This)
  2766.     (This)->lpVtbl -> Release(This)
  2767. #define ITypeInfo_GetTypeAttr(This,ppTypeAttr)
  2768.     (This)->lpVtbl -> GetTypeAttr(This,ppTypeAttr)
  2769. #define ITypeInfo_GetTypeComp(This,ppTComp)
  2770.     (This)->lpVtbl -> GetTypeComp(This,ppTComp)
  2771. #define ITypeInfo_GetFuncDesc(This,index,ppFuncDesc)
  2772.     (This)->lpVtbl -> GetFuncDesc(This,index,ppFuncDesc)
  2773. #define ITypeInfo_GetVarDesc(This,index,ppVarDesc)
  2774.     (This)->lpVtbl -> GetVarDesc(This,index,ppVarDesc)
  2775. #define ITypeInfo_GetNames(This,memid,rgBstrNames,cMaxNames,pcNames)
  2776.     (This)->lpVtbl -> GetNames(This,memid,rgBstrNames,cMaxNames,pcNames)
  2777. #define ITypeInfo_GetRefTypeOfImplType(This,index,pRefType)
  2778.     (This)->lpVtbl -> GetRefTypeOfImplType(This,index,pRefType)
  2779. #define ITypeInfo_GetImplTypeFlags(This,index,pImplTypeFlags)
  2780.     (This)->lpVtbl -> GetImplTypeFlags(This,index,pImplTypeFlags)
  2781. #define ITypeInfo_GetIDsOfNames(This,rgszNames,cNames,pMemId)
  2782.     (This)->lpVtbl -> GetIDsOfNames(This,rgszNames,cNames,pMemId)
  2783. #define ITypeInfo_Invoke(This,pvInstance,memid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  2784.     (This)->lpVtbl -> Invoke(This,pvInstance,memid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  2785. #define ITypeInfo_GetDocumentation(This,memid,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile)
  2786.     (This)->lpVtbl -> GetDocumentation(This,memid,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile)
  2787. #define ITypeInfo_GetDllEntry(This,memid,invKind,pBstrDllName,pBstrName,pwOrdinal)
  2788.     (This)->lpVtbl -> GetDllEntry(This,memid,invKind,pBstrDllName,pBstrName,pwOrdinal)
  2789. #define ITypeInfo_GetRefTypeInfo(This,hRefType,ppTInfo)
  2790.     (This)->lpVtbl -> GetRefTypeInfo(This,hRefType,ppTInfo)
  2791. #define ITypeInfo_AddressOfMember(This,memid,invKind,ppv)
  2792.     (This)->lpVtbl -> AddressOfMember(This,memid,invKind,ppv)
  2793. #define ITypeInfo_CreateInstance(This,pUnkOuter,riid,ppvObj)
  2794.     (This)->lpVtbl -> CreateInstance(This,pUnkOuter,riid,ppvObj)