Home | History | Annotate | Download | only in include
      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 #include "rpc.h"
      7 #include "rpcndr.h"
      8 #ifndef COM_NO_WINDOWS_H
      9 #include "windows.h"
     10 #include "ole2.h"
     11 #endif
     12 
     13 #ifndef __mergemod_h__
     14 #define __mergemod_h__
     15 
     16 #ifndef _WIN32_MSM
     17 #define _WIN32_MSM 100
     18 #endif
     19 
     20 #ifdef __cplusplus
     21 extern "C"{
     22 #endif
     23 
     24 #ifndef __IEnumMsmString_FWD_DEFINED__
     25 #define __IEnumMsmString_FWD_DEFINED__
     26   typedef struct IEnumMsmString IEnumMsmString;
     27 #endif
     28 
     29 #ifndef __IMsmStrings_FWD_DEFINED__
     30 #define __IMsmStrings_FWD_DEFINED__
     31   typedef struct IMsmStrings IMsmStrings;
     32 #endif
     33 
     34 #ifndef __IMsmError_FWD_DEFINED__
     35 #define __IMsmError_FWD_DEFINED__
     36   typedef struct IMsmError IMsmError;
     37 #endif
     38 
     39 #ifndef __IEnumMsmError_FWD_DEFINED__
     40 #define __IEnumMsmError_FWD_DEFINED__
     41   typedef struct IEnumMsmError IEnumMsmError;
     42 #endif
     43 
     44 #ifndef __IMsmErrors_FWD_DEFINED__
     45 #define __IMsmErrors_FWD_DEFINED__
     46   typedef struct IMsmErrors IMsmErrors;
     47 #endif
     48 
     49 #ifndef __IMsmDependency_FWD_DEFINED__
     50 #define __IMsmDependency_FWD_DEFINED__
     51   typedef struct IMsmDependency IMsmDependency;
     52 #endif
     53 
     54 #ifndef __IEnumMsmDependency_FWD_DEFINED__
     55 #define __IEnumMsmDependency_FWD_DEFINED__
     56   typedef struct IEnumMsmDependency IEnumMsmDependency;
     57 #endif
     58 
     59 #ifndef __IMsmDependencies_FWD_DEFINED__
     60 #define __IMsmDependencies_FWD_DEFINED__
     61   typedef struct IMsmDependencies IMsmDependencies;
     62 #endif
     63 
     64 #ifndef __IMsmMerge_FWD_DEFINED__
     65 #define __IMsmMerge_FWD_DEFINED__
     66   typedef struct IMsmMerge IMsmMerge;
     67 #endif
     68 
     69 #ifndef __IMsmGetFiles_FWD_DEFINED__
     70 #define __IMsmGetFiles_FWD_DEFINED__
     71   typedef struct IMsmGetFiles IMsmGetFiles;
     72 #endif
     73 
     74 #ifndef __IMsmStrings_FWD_DEFINED__
     75 #define __IMsmStrings_FWD_DEFINED__
     76   typedef struct IMsmStrings IMsmStrings;
     77 #endif
     78 
     79 #ifndef __IMsmError_FWD_DEFINED__
     80 #define __IMsmError_FWD_DEFINED__
     81   typedef struct IMsmError IMsmError;
     82 #endif
     83 
     84 #ifndef __IMsmErrors_FWD_DEFINED__
     85 #define __IMsmErrors_FWD_DEFINED__
     86   typedef struct IMsmErrors IMsmErrors;
     87 #endif
     88 
     89 #ifndef __IMsmDependency_FWD_DEFINED__
     90 #define __IMsmDependency_FWD_DEFINED__
     91   typedef struct IMsmDependency IMsmDependency;
     92 #endif
     93 
     94 #ifndef __IMsmDependencies_FWD_DEFINED__
     95 #define __IMsmDependencies_FWD_DEFINED__
     96   typedef struct IMsmDependencies IMsmDependencies;
     97 #endif
     98 
     99 #ifndef __IMsmGetFiles_FWD_DEFINED__
    100 #define __IMsmGetFiles_FWD_DEFINED__
    101   typedef struct IMsmGetFiles IMsmGetFiles;
    102 #endif
    103 
    104 #if (_WIN32_MSM >= 150)
    105 
    106 #ifndef __IMsmConfigurableItem_FWD_DEFINED__
    107 #define __IMsmConfigurableItem_FWD_DEFINED__
    108   typedef struct IMsmConfigurableItem IMsmConfigurableItem;
    109 #endif
    110 
    111 #ifndef __IEnumMsmConfigurableItem_FWD_DEFINED__
    112 #define __IEnumMsmConfigurableItem_FWD_DEFINED__
    113   typedef struct IEnumMsmConfigurableItem IEnumMsmConfigurableItem;
    114 #endif
    115 
    116 #ifndef __IMsmConfigurableItems_FWD_DEFINED__
    117 #define __IMsmConfigurableItems_FWD_DEFINED__
    118   typedef struct IMsmConfigurableItems IMsmConfigurableItems;
    119 #endif
    120 
    121 #ifndef __IMsmMerge2_FWD_DEFINED__
    122 #define __IMsmMerge2_FWD_DEFINED__
    123   typedef struct IMsmMerge2 IMsmMerge2;
    124 #endif
    125 
    126 #ifndef __IMsmConfigureModule_FWD_DEFINED__
    127 #define __IMsmConfigureModule_FWD_DEFINED__
    128   typedef struct IMsmConfigureModule IMsmConfigureModule;
    129 #endif
    130 
    131 #ifndef __MsmMerge2_FWD_DEFINED__
    132 #define __MsmMerge2_FWD_DEFINED__
    133 #ifdef __cplusplus
    134   typedef class MsmMerge2 MsmMerge2;
    135 #else
    136   typedef struct MsmMerge2 MsmMerge2;
    137 #endif
    138 #endif
    139 #endif
    140 
    141 #ifndef __MsmMerge_FWD_DEFINED__
    142 #define __MsmMerge_FWD_DEFINED__
    143 #ifdef __cplusplus
    144   typedef class MsmMerge MsmMerge;
    145 #else
    146   typedef struct MsmMerge MsmMerge;
    147 #endif
    148 #endif
    149 
    150 #include "oaidl.h"
    151 
    152 #ifndef __MIDL_user_allocate_free_DEFINED__
    153 #define __MIDL_user_allocate_free_DEFINED__
    154   void *__RPC_API MIDL_user_allocate(size_t);
    155   void __RPC_API MIDL_user_free(void *);
    156 #endif
    157 
    158 #ifndef __FORWARD_IID_IMSMMERGETYPELIB
    159 #define __FORWARD_IID_IMSMMERGETYPELIB
    160 
    161   typedef enum msmErrorType {
    162     msmErrorLanguageUnsupported = 1,msmErrorLanguageFailed = 2,msmErrorExclusion = 3,msmErrorTableMerge = 4,msmErrorResequenceMerge = 5,
    163     msmErrorFileCreate = 6,msmErrorDirCreate = 7,msmErrorFeatureRequired = 8,
    164 #if (_WIN32_MSM >= 150)
    165     msmErrorBadNullSubstitution = 9,msmErrorBadSubstitutionType = 10,msmErrorMissingConfigItem = 11,msmErrorBadNullResponse = 12,
    166     msmErrorDataRequestFailed = 13,msmErrorPlatformMismatch = 14
    167 #endif
    168   } msmErrorType;
    169 
    170 #if (_WIN32_MSM >= 150)
    171   typedef enum msmConfigurableItemFormat {
    172     msmConfigurableItemText = 0,msmConfigurableItemKey = 1,msmConfigurableItemInteger = 2,msmConfigurableItemBitfield = 3
    173   } msmConfigurableItemFormat;
    174 
    175   typedef enum msmConfigurableItemOptions {
    176     msmConfigurableOptionKeyNoOrphan = 1,msmConfigurableOptionNonNullable = 2
    177   } msmConfigurableItemOptions;
    178 #endif
    179 #endif
    180 
    181   extern RPC_IF_HANDLE __MIDL_itf_mergemod_0000_v0_0_c_ifspec;
    182   extern RPC_IF_HANDLE __MIDL_itf_mergemod_0000_v0_0_s_ifspec;
    183 
    184 #ifndef __IEnumMsmString_INTERFACE_DEFINED__
    185 #define __IEnumMsmString_INTERFACE_DEFINED__
    186 #if defined(__cplusplus) && !defined(CINTERFACE)
    187   struct IEnumMsmString : public IUnknown {
    188   public:
    189     virtual HRESULT WINAPI Next(unsigned __LONG32 cFetch,BSTR *rgbstrStrings,unsigned __LONG32 *pcFetched) = 0;
    190     virtual HRESULT WINAPI Skip(unsigned __LONG32 cSkip) = 0;
    191     virtual HRESULT WINAPI Reset(void) = 0;
    192     virtual HRESULT WINAPI Clone(IEnumMsmString **pemsmStrings) = 0;
    193   };
    194 #else
    195   typedef struct IEnumMsmStringVtbl {
    196     BEGIN_INTERFACE
    197       HRESULT (WINAPI *QueryInterface)(IEnumMsmString *This,REFIID riid,void **ppvObject);
    198       ULONG (WINAPI *AddRef)(IEnumMsmString *This);
    199       ULONG (WINAPI *Release)(IEnumMsmString *This);
    200       HRESULT (WINAPI *Next)(IEnumMsmString *This,unsigned __LONG32 cFetch,BSTR *rgbstrStrings,unsigned __LONG32 *pcFetched);
    201       HRESULT (WINAPI *Skip)(IEnumMsmString *This,unsigned __LONG32 cSkip);
    202       HRESULT (WINAPI *Reset)(IEnumMsmString *This);
    203       HRESULT (WINAPI *Clone)(IEnumMsmString *This,IEnumMsmString **pemsmStrings);
    204     END_INTERFACE
    205   } IEnumMsmStringVtbl;
    206   struct IEnumMsmString {
    207     CONST_VTBL struct IEnumMsmStringVtbl *lpVtbl;
    208   };
    209 #ifdef COBJMACROS
    210 #define IEnumMsmString_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    211 #define IEnumMsmString_AddRef(This) (This)->lpVtbl->AddRef(This)
    212 #define IEnumMsmString_Release(This) (This)->lpVtbl->Release(This)
    213 #define IEnumMsmString_Next(This,cFetch,rgbstrStrings,pcFetched) (This)->lpVtbl->Next(This,cFetch,rgbstrStrings,pcFetched)
    214 #define IEnumMsmString_Skip(This,cSkip) (This)->lpVtbl->Skip(This,cSkip)
    215 #define IEnumMsmString_Reset(This) (This)->lpVtbl->Reset(This)
    216 #define IEnumMsmString_Clone(This,pemsmStrings) (This)->lpVtbl->Clone(This,pemsmStrings)
    217 #endif
    218 #endif
    219   HRESULT WINAPI IEnumMsmString_Next_Proxy(IEnumMsmString *This,unsigned __LONG32 cFetch,BSTR *rgbstrStrings,unsigned __LONG32 *pcFetched);
    220   void __RPC_STUB IEnumMsmString_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    221   HRESULT WINAPI IEnumMsmString_Skip_Proxy(IEnumMsmString *This,unsigned __LONG32 cSkip);
    222   void __RPC_STUB IEnumMsmString_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    223   HRESULT WINAPI IEnumMsmString_Reset_Proxy(IEnumMsmString *This);
    224   void __RPC_STUB IEnumMsmString_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    225   HRESULT WINAPI IEnumMsmString_Clone_Proxy(IEnumMsmString *This,IEnumMsmString **pemsmStrings);
    226   void __RPC_STUB IEnumMsmString_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    227 #endif
    228 
    229 #ifndef __IMsmStrings_INTERFACE_DEFINED__
    230 #define __IMsmStrings_INTERFACE_DEFINED__
    231 #if defined(__cplusplus) && !defined(CINTERFACE)
    232   struct IMsmStrings : public IDispatch {
    233   public:
    234     virtual HRESULT WINAPI get_Item(__LONG32 Item,BSTR *Return) = 0;
    235     virtual HRESULT WINAPI get_Count(__LONG32 *Count) = 0;
    236     virtual HRESULT WINAPI get__NewEnum(IUnknown **NewEnum) = 0;
    237   };
    238 #else
    239   typedef struct IMsmStringsVtbl {
    240     BEGIN_INTERFACE
    241       HRESULT (WINAPI *QueryInterface)(IMsmStrings *This,REFIID riid,void **ppvObject);
    242       ULONG (WINAPI *AddRef)(IMsmStrings *This);
    243       ULONG (WINAPI *Release)(IMsmStrings *This);
    244       HRESULT (WINAPI *GetTypeInfoCount)(IMsmStrings *This,UINT *pctinfo);
    245       HRESULT (WINAPI *GetTypeInfo)(IMsmStrings *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
    246       HRESULT (WINAPI *GetIDsOfNames)(IMsmStrings *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
    247       HRESULT (WINAPI *Invoke)(IMsmStrings *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
    248       HRESULT (WINAPI *get_Item)(IMsmStrings *This,__LONG32 Item,BSTR *Return);
    249       HRESULT (WINAPI *get_Count)(IMsmStrings *This,__LONG32 *Count);
    250       HRESULT (WINAPI *get__NewEnum)(IMsmStrings *This,IUnknown **NewEnum);
    251     END_INTERFACE
    252   } IMsmStringsVtbl;
    253   struct IMsmStrings {
    254     CONST_VTBL struct IMsmStringsVtbl *lpVtbl;
    255   };
    256 #ifdef COBJMACROS
    257 #define IMsmStrings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    258 #define IMsmStrings_AddRef(This) (This)->lpVtbl->AddRef(This)
    259 #define IMsmStrings_Release(This) (This)->lpVtbl->Release(This)
    260 #define IMsmStrings_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
    261 #define IMsmStrings_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
    262 #define IMsmStrings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
    263 #define IMsmStrings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
    264 #define IMsmStrings_get_Item(This,Item,Return) (This)->lpVtbl->get_Item(This,Item,Return)
    265 #define IMsmStrings_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
    266 #define IMsmStrings_get__NewEnum(This,NewEnum) (This)->lpVtbl->get__NewEnum(This,NewEnum)
    267 #endif
    268 #endif
    269   HRESULT WINAPI IMsmStrings_get_Item_Proxy(IMsmStrings *This,__LONG32 Item,BSTR *Return);
    270   void __RPC_STUB IMsmStrings_get_Item_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    271   HRESULT WINAPI IMsmStrings_get_Count_Proxy(IMsmStrings *This,__LONG32 *Count);
    272   void __RPC_STUB IMsmStrings_get_Count_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    273   HRESULT WINAPI IMsmStrings_get__NewEnum_Proxy(IMsmStrings *This,IUnknown **NewEnum);
    274   void __RPC_STUB IMsmStrings_get__NewEnum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    275 #endif
    276 
    277 #ifndef __IMsmError_INTERFACE_DEFINED__
    278 #define __IMsmError_INTERFACE_DEFINED__
    279 #if defined(__cplusplus) && !defined(CINTERFACE)
    280   struct IMsmError : public IDispatch {
    281   public:
    282     virtual HRESULT WINAPI get_Type(msmErrorType *ErrorType) = 0;
    283     virtual HRESULT WINAPI get_Path(BSTR *ErrorPath) = 0;
    284     virtual HRESULT WINAPI get_Language(short *ErrorLanguage) = 0;
    285     virtual HRESULT WINAPI get_DatabaseTable(BSTR *ErrorTable) = 0;
    286     virtual HRESULT WINAPI get_DatabaseKeys(IMsmStrings **ErrorKeys) = 0;
    287     virtual HRESULT WINAPI get_ModuleTable(BSTR *ErrorTable) = 0;
    288     virtual HRESULT WINAPI get_ModuleKeys(IMsmStrings **ErrorKeys) = 0;
    289   };
    290 #else
    291   typedef struct IMsmErrorVtbl {
    292     BEGIN_INTERFACE
    293       HRESULT (WINAPI *QueryInterface)(IMsmError *This,REFIID riid,void **ppvObject);
    294       ULONG (WINAPI *AddRef)(IMsmError *This);
    295       ULONG (WINAPI *Release)(IMsmError *This);
    296       HRESULT (WINAPI *GetTypeInfoCount)(IMsmError *This,UINT *pctinfo);
    297       HRESULT (WINAPI *GetTypeInfo)(IMsmError *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
    298       HRESULT (WINAPI *GetIDsOfNames)(IMsmError *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
    299       HRESULT (WINAPI *Invoke)(IMsmError *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
    300       HRESULT (WINAPI *get_Type)(IMsmError *This,msmErrorType *ErrorType);
    301       HRESULT (WINAPI *get_Path)(IMsmError *This,BSTR *ErrorPath);
    302       HRESULT (WINAPI *get_Language)(IMsmError *This,short *ErrorLanguage);
    303       HRESULT (WINAPI *get_DatabaseTable)(IMsmError *This,BSTR *ErrorTable);
    304       HRESULT (WINAPI *get_DatabaseKeys)(IMsmError *This,IMsmStrings **ErrorKeys);
    305       HRESULT (WINAPI *get_ModuleTable)(IMsmError *This,BSTR *ErrorTable);
    306       HRESULT (WINAPI *get_ModuleKeys)(IMsmError *This,IMsmStrings **ErrorKeys);
    307     END_INTERFACE
    308   } IMsmErrorVtbl;
    309   struct IMsmError {
    310     CONST_VTBL struct IMsmErrorVtbl *lpVtbl;
    311   };
    312 #ifdef COBJMACROS
    313 #define IMsmError_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    314 #define IMsmError_AddRef(This) (This)->lpVtbl->AddRef(This)
    315 #define IMsmError_Release(This) (This)->lpVtbl->Release(This)
    316 #define IMsmError_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
    317 #define IMsmError_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
    318 #define IMsmError_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
    319 #define IMsmError_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
    320 #define IMsmError_get_Type(This,ErrorType) (This)->lpVtbl->get_Type(This,ErrorType)
    321 #define IMsmError_get_Path(This,ErrorPath) (This)->lpVtbl->get_Path(This,ErrorPath)
    322 #define IMsmError_get_Language(This,ErrorLanguage) (This)->lpVtbl->get_Language(This,ErrorLanguage)
    323 #define IMsmError_get_DatabaseTable(This,ErrorTable) (This)->lpVtbl->get_DatabaseTable(This,ErrorTable)
    324 #define IMsmError_get_DatabaseKeys(This,ErrorKeys) (This)->lpVtbl->get_DatabaseKeys(This,ErrorKeys)
    325 #define IMsmError_get_ModuleTable(This,ErrorTable) (This)->lpVtbl->get_ModuleTable(This,ErrorTable)
    326 #define IMsmError_get_ModuleKeys(This,ErrorKeys) (This)->lpVtbl->get_ModuleKeys(This,ErrorKeys)
    327 #endif
    328 #endif
    329   HRESULT WINAPI IMsmError_get_Type_Proxy(IMsmError *This,msmErrorType *ErrorType);
    330   void __RPC_STUB IMsmError_get_Type_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    331   HRESULT WINAPI IMsmError_get_Path_Proxy(IMsmError *This,BSTR *ErrorPath);
    332   void __RPC_STUB IMsmError_get_Path_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    333   HRESULT WINAPI IMsmError_get_Language_Proxy(IMsmError *This,short *ErrorLanguage);
    334   void __RPC_STUB IMsmError_get_Language_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    335   HRESULT WINAPI IMsmError_get_DatabaseTable_Proxy(IMsmError *This,BSTR *ErrorTable);
    336   void __RPC_STUB IMsmError_get_DatabaseTable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    337   HRESULT WINAPI IMsmError_get_DatabaseKeys_Proxy(IMsmError *This,IMsmStrings **ErrorKeys);
    338   void __RPC_STUB IMsmError_get_DatabaseKeys_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    339   HRESULT WINAPI IMsmError_get_ModuleTable_Proxy(IMsmError *This,BSTR *ErrorTable);
    340   void __RPC_STUB IMsmError_get_ModuleTable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    341   HRESULT WINAPI IMsmError_get_ModuleKeys_Proxy(IMsmError *This,IMsmStrings **ErrorKeys);
    342   void __RPC_STUB IMsmError_get_ModuleKeys_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    343 #endif
    344 
    345 #ifndef __IEnumMsmError_INTERFACE_DEFINED__
    346 #define __IEnumMsmError_INTERFACE_DEFINED__
    347 #if defined(__cplusplus) && !defined(CINTERFACE)
    348   struct IEnumMsmError : public IUnknown {
    349   public:
    350     virtual HRESULT WINAPI Next(unsigned __LONG32 cFetch,IMsmError **rgmsmErrors,unsigned __LONG32 *pcFetched) = 0;
    351     virtual HRESULT WINAPI Skip(unsigned __LONG32 cSkip) = 0;
    352     virtual HRESULT WINAPI Reset(void) = 0;
    353     virtual HRESULT WINAPI Clone(IEnumMsmError **pemsmErrors) = 0;
    354   };
    355 #else
    356   typedef struct IEnumMsmErrorVtbl {
    357     BEGIN_INTERFACE
    358       HRESULT (WINAPI *QueryInterface)(IEnumMsmError *This,REFIID riid,void **ppvObject);
    359       ULONG (WINAPI *AddRef)(IEnumMsmError *This);
    360       ULONG (WINAPI *Release)(IEnumMsmError *This);
    361       HRESULT (WINAPI *Next)(IEnumMsmError *This,unsigned __LONG32 cFetch,IMsmError **rgmsmErrors,unsigned __LONG32 *pcFetched);
    362       HRESULT (WINAPI *Skip)(IEnumMsmError *This,unsigned __LONG32 cSkip);
    363       HRESULT (WINAPI *Reset)(IEnumMsmError *This);
    364       HRESULT (WINAPI *Clone)(IEnumMsmError *This,IEnumMsmError **pemsmErrors);
    365     END_INTERFACE
    366   } IEnumMsmErrorVtbl;
    367   struct IEnumMsmError {
    368     CONST_VTBL struct IEnumMsmErrorVtbl *lpVtbl;
    369   };
    370 #ifdef COBJMACROS
    371 #define IEnumMsmError_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    372 #define IEnumMsmError_AddRef(This) (This)->lpVtbl->AddRef(This)
    373 #define IEnumMsmError_Release(This) (This)->lpVtbl->Release(This)
    374 #define IEnumMsmError_Next(This,cFetch,rgmsmErrors,pcFetched) (This)->lpVtbl->Next(This,cFetch,rgmsmErrors,pcFetched)
    375 #define IEnumMsmError_Skip(This,cSkip) (This)->lpVtbl->Skip(This,cSkip)
    376 #define IEnumMsmError_Reset(This) (This)->lpVtbl->Reset(This)
    377 #define IEnumMsmError_Clone(This,pemsmErrors) (This)->lpVtbl->Clone(This,pemsmErrors)
    378 #endif
    379 #endif
    380   HRESULT WINAPI IEnumMsmError_Next_Proxy(IEnumMsmError *This,unsigned __LONG32 cFetch,IMsmError **rgmsmErrors,unsigned __LONG32 *pcFetched);
    381   void __RPC_STUB IEnumMsmError_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    382   HRESULT WINAPI IEnumMsmError_Skip_Proxy(IEnumMsmError *This,unsigned __LONG32 cSkip);
    383   void __RPC_STUB IEnumMsmError_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    384   HRESULT WINAPI IEnumMsmError_Reset_Proxy(IEnumMsmError *This);
    385   void __RPC_STUB IEnumMsmError_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    386   HRESULT WINAPI IEnumMsmError_Clone_Proxy(IEnumMsmError *This,IEnumMsmError **pemsmErrors);
    387   void __RPC_STUB IEnumMsmError_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    388 #endif
    389 
    390 #ifndef __IMsmErrors_INTERFACE_DEFINED__
    391 #define __IMsmErrors_INTERFACE_DEFINED__
    392 #if defined(__cplusplus) && !defined(CINTERFACE)
    393 
    394   struct IMsmErrors : public IDispatch {
    395   public:
    396     virtual HRESULT WINAPI get_Item(__LONG32 Item,IMsmError **Return) = 0;
    397     virtual HRESULT WINAPI get_Count(__LONG32 *Count) = 0;
    398     virtual HRESULT WINAPI get__NewEnum(IUnknown **NewEnum) = 0;
    399   };
    400 #else
    401   typedef struct IMsmErrorsVtbl {
    402     BEGIN_INTERFACE
    403       HRESULT (WINAPI *QueryInterface)(IMsmErrors *This,REFIID riid,void **ppvObject);
    404       ULONG (WINAPI *AddRef)(IMsmErrors *This);
    405       ULONG (WINAPI *Release)(IMsmErrors *This);
    406       HRESULT (WINAPI *GetTypeInfoCount)(IMsmErrors *This,UINT *pctinfo);
    407       HRESULT (WINAPI *GetTypeInfo)(IMsmErrors *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
    408       HRESULT (WINAPI *GetIDsOfNames)(IMsmErrors *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
    409       HRESULT (WINAPI *Invoke)(IMsmErrors *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
    410       HRESULT (WINAPI *get_Item)(IMsmErrors *This,__LONG32 Item,IMsmError **Return);
    411       HRESULT (WINAPI *get_Count)(IMsmErrors *This,__LONG32 *Count);
    412       HRESULT (WINAPI *get__NewEnum)(IMsmErrors *This,IUnknown **NewEnum);
    413     END_INTERFACE
    414   } IMsmErrorsVtbl;
    415   struct IMsmErrors {
    416     CONST_VTBL struct IMsmErrorsVtbl *lpVtbl;
    417   };
    418 #ifdef COBJMACROS
    419 #define IMsmErrors_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    420 #define IMsmErrors_AddRef(This) (This)->lpVtbl->AddRef(This)
    421 #define IMsmErrors_Release(This) (This)->lpVtbl->Release(This)
    422 #define IMsmErrors_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
    423 #define IMsmErrors_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
    424 #define IMsmErrors_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
    425 #define IMsmErrors_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
    426 #define IMsmErrors_get_Item(This,Item,Return) (This)->lpVtbl->get_Item(This,Item,Return)
    427 #define IMsmErrors_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
    428 #define IMsmErrors_get__NewEnum(This,NewEnum) (This)->lpVtbl->get__NewEnum(This,NewEnum)
    429 #endif
    430 #endif
    431   HRESULT WINAPI IMsmErrors_get_Item_Proxy(IMsmErrors *This,__LONG32 Item,IMsmError **Return);
    432   void __RPC_STUB IMsmErrors_get_Item_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    433   HRESULT WINAPI IMsmErrors_get_Count_Proxy(IMsmErrors *This,__LONG32 *Count);
    434   void __RPC_STUB IMsmErrors_get_Count_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    435   HRESULT WINAPI IMsmErrors_get__NewEnum_Proxy(IMsmErrors *This,IUnknown **NewEnum);
    436   void __RPC_STUB IMsmErrors_get__NewEnum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    437 #endif
    438 
    439 #ifndef __IMsmDependency_INTERFACE_DEFINED__
    440 #define __IMsmDependency_INTERFACE_DEFINED__
    441 #if defined(__cplusplus) && !defined(CINTERFACE)
    442   struct IMsmDependency : public IDispatch {
    443   public:
    444     virtual HRESULT WINAPI get_Module(BSTR *Module) = 0;
    445     virtual HRESULT WINAPI get_Language(short *Language) = 0;
    446     virtual HRESULT WINAPI get_Version(BSTR *Version) = 0;
    447   };
    448 #else
    449   typedef struct IMsmDependencyVtbl {
    450     BEGIN_INTERFACE
    451       HRESULT (WINAPI *QueryInterface)(IMsmDependency *This,REFIID riid,void **ppvObject);
    452       ULONG (WINAPI *AddRef)(IMsmDependency *This);
    453       ULONG (WINAPI *Release)(IMsmDependency *This);
    454       HRESULT (WINAPI *GetTypeInfoCount)(IMsmDependency *This,UINT *pctinfo);
    455       HRESULT (WINAPI *GetTypeInfo)(IMsmDependency *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
    456       HRESULT (WINAPI *GetIDsOfNames)(IMsmDependency *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
    457       HRESULT (WINAPI *Invoke)(IMsmDependency *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
    458       HRESULT (WINAPI *get_Module)(IMsmDependency *This,BSTR *Module);
    459       HRESULT (WINAPI *get_Language)(IMsmDependency *This,short *Language);
    460       HRESULT (WINAPI *get_Version)(IMsmDependency *This,BSTR *Version);
    461     END_INTERFACE
    462   } IMsmDependencyVtbl;
    463   struct IMsmDependency {
    464     CONST_VTBL struct IMsmDependencyVtbl *lpVtbl;
    465   };
    466 #ifdef COBJMACROS
    467 #define IMsmDependency_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    468 #define IMsmDependency_AddRef(This) (This)->lpVtbl->AddRef(This)
    469 #define IMsmDependency_Release(This) (This)->lpVtbl->Release(This)
    470 #define IMsmDependency_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
    471 #define IMsmDependency_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
    472 #define IMsmDependency_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
    473 #define IMsmDependency_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
    474 #define IMsmDependency_get_Module(This,Module) (This)->lpVtbl->get_Module(This,Module)
    475 #define IMsmDependency_get_Language(This,Language) (This)->lpVtbl->get_Language(This,Language)
    476 #define IMsmDependency_get_Version(This,Version) (This)->lpVtbl->get_Version(This,Version)
    477 #endif
    478 #endif
    479   HRESULT WINAPI IMsmDependency_get_Module_Proxy(IMsmDependency *This,BSTR *Module);
    480   void __RPC_STUB IMsmDependency_get_Module_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    481   HRESULT WINAPI IMsmDependency_get_Language_Proxy(IMsmDependency *This,short *Language);
    482   void __RPC_STUB IMsmDependency_get_Language_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    483   HRESULT WINAPI IMsmDependency_get_Version_Proxy(IMsmDependency *This,BSTR *Version);
    484   void __RPC_STUB IMsmDependency_get_Version_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    485 #endif
    486 
    487 #ifndef __IEnumMsmDependency_INTERFACE_DEFINED__
    488 #define __IEnumMsmDependency_INTERFACE_DEFINED__
    489 #if defined(__cplusplus) && !defined(CINTERFACE)
    490   struct IEnumMsmDependency : public IUnknown {
    491   public:
    492     virtual HRESULT WINAPI Next(unsigned __LONG32 cFetch,IMsmDependency **rgmsmDependencies,unsigned __LONG32 *pcFetched) = 0;
    493     virtual HRESULT WINAPI Skip(unsigned __LONG32 cSkip) = 0;
    494     virtual HRESULT WINAPI Reset(void) = 0;
    495     virtual HRESULT WINAPI Clone(IEnumMsmDependency **pemsmDependencies) = 0;
    496   };
    497 #else
    498   typedef struct IEnumMsmDependencyVtbl {
    499     BEGIN_INTERFACE
    500       HRESULT (WINAPI *QueryInterface)(IEnumMsmDependency *This,REFIID riid,void **ppvObject);
    501       ULONG (WINAPI *AddRef)(IEnumMsmDependency *This);
    502       ULONG (WINAPI *Release)(IEnumMsmDependency *This);
    503       HRESULT (WINAPI *Next)(IEnumMsmDependency *This,unsigned __LONG32 cFetch,IMsmDependency **rgmsmDependencies,unsigned __LONG32 *pcFetched);
    504       HRESULT (WINAPI *Skip)(IEnumMsmDependency *This,unsigned __LONG32 cSkip);
    505       HRESULT (WINAPI *Reset)(IEnumMsmDependency *This);
    506       HRESULT (WINAPI *Clone)(IEnumMsmDependency *This,IEnumMsmDependency **pemsmDependencies);
    507     END_INTERFACE
    508   } IEnumMsmDependencyVtbl;
    509   struct IEnumMsmDependency {
    510     CONST_VTBL struct IEnumMsmDependencyVtbl *lpVtbl;
    511   };
    512 #ifdef COBJMACROS
    513 #define IEnumMsmDependency_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    514 #define IEnumMsmDependency_AddRef(This) (This)->lpVtbl->AddRef(This)
    515 #define IEnumMsmDependency_Release(This) (This)->lpVtbl->Release(This)
    516 #define IEnumMsmDependency_Next(This,cFetch,rgmsmDependencies,pcFetched) (This)->lpVtbl->Next(This,cFetch,rgmsmDependencies,pcFetched)
    517 #define IEnumMsmDependency_Skip(This,cSkip) (This)->lpVtbl->Skip(This,cSkip)
    518 #define IEnumMsmDependency_Reset(This) (This)->lpVtbl->Reset(This)
    519 #define IEnumMsmDependency_Clone(This,pemsmDependencies) (This)->lpVtbl->Clone(This,pemsmDependencies)
    520 #endif
    521 #endif
    522   HRESULT WINAPI IEnumMsmDependency_Next_Proxy(IEnumMsmDependency *This,unsigned __LONG32 cFetch,IMsmDependency **rgmsmDependencies,unsigned __LONG32 *pcFetched);
    523   void __RPC_STUB IEnumMsmDependency_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    524   HRESULT WINAPI IEnumMsmDependency_Skip_Proxy(IEnumMsmDependency *This,unsigned __LONG32 cSkip);
    525   void __RPC_STUB IEnumMsmDependency_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    526   HRESULT WINAPI IEnumMsmDependency_Reset_Proxy(IEnumMsmDependency *This);
    527   void __RPC_STUB IEnumMsmDependency_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    528   HRESULT WINAPI IEnumMsmDependency_Clone_Proxy(IEnumMsmDependency *This,IEnumMsmDependency **pemsmDependencies);
    529   void __RPC_STUB IEnumMsmDependency_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    530 #endif
    531 
    532 #ifndef __IMsmDependencies_INTERFACE_DEFINED__
    533 #define __IMsmDependencies_INTERFACE_DEFINED__
    534 #if defined(__cplusplus) && !defined(CINTERFACE)
    535   struct IMsmDependencies : public IDispatch {
    536   public:
    537     virtual HRESULT WINAPI get_Item(__LONG32 Item,IMsmDependency **Return) = 0;
    538     virtual HRESULT WINAPI get_Count(__LONG32 *Count) = 0;
    539     virtual HRESULT WINAPI get__NewEnum(IUnknown **NewEnum) = 0;
    540   };
    541 #else
    542   typedef struct IMsmDependenciesVtbl {
    543     BEGIN_INTERFACE
    544       HRESULT (WINAPI *QueryInterface)(IMsmDependencies *This,REFIID riid,void **ppvObject);
    545       ULONG (WINAPI *AddRef)(IMsmDependencies *This);
    546       ULONG (WINAPI *Release)(IMsmDependencies *This);
    547       HRESULT (WINAPI *GetTypeInfoCount)(IMsmDependencies *This,UINT *pctinfo);
    548       HRESULT (WINAPI *GetTypeInfo)(IMsmDependencies *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
    549       HRESULT (WINAPI *GetIDsOfNames)(IMsmDependencies *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
    550       HRESULT (WINAPI *Invoke)(IMsmDependencies *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
    551       HRESULT (WINAPI *get_Item)(IMsmDependencies *This,__LONG32 Item,IMsmDependency **Return);
    552       HRESULT (WINAPI *get_Count)(IMsmDependencies *This,__LONG32 *Count);
    553       HRESULT (WINAPI *get__NewEnum)(IMsmDependencies *This,IUnknown **NewEnum);
    554     END_INTERFACE
    555   } IMsmDependenciesVtbl;
    556   struct IMsmDependencies {
    557     CONST_VTBL struct IMsmDependenciesVtbl *lpVtbl;
    558   };
    559 #ifdef COBJMACROS
    560 #define IMsmDependencies_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    561 #define IMsmDependencies_AddRef(This) (This)->lpVtbl->AddRef(This)
    562 #define IMsmDependencies_Release(This) (This)->lpVtbl->Release(This)
    563 #define IMsmDependencies_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
    564 #define IMsmDependencies_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
    565 #define IMsmDependencies_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
    566 #define IMsmDependencies_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
    567 #define IMsmDependencies_get_Item(This,Item,Return) (This)->lpVtbl->get_Item(This,Item,Return)
    568 #define IMsmDependencies_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
    569 #define IMsmDependencies_get__NewEnum(This,NewEnum) (This)->lpVtbl->get__NewEnum(This,NewEnum)
    570 #endif
    571 #endif
    572   HRESULT WINAPI IMsmDependencies_get_Item_Proxy(IMsmDependencies *This,__LONG32 Item,IMsmDependency **Return);
    573   void __RPC_STUB IMsmDependencies_get_Item_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    574   HRESULT WINAPI IMsmDependencies_get_Count_Proxy(IMsmDependencies *This,__LONG32 *Count);
    575   void __RPC_STUB IMsmDependencies_get_Count_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    576   HRESULT WINAPI IMsmDependencies_get__NewEnum_Proxy(IMsmDependencies *This,IUnknown **NewEnum);
    577   void __RPC_STUB IMsmDependencies_get__NewEnum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    578 #endif
    579 
    580 #if (_WIN32_MSM >= 150)
    581 #ifndef __IMsmConfigurableItem_INTERFACE_DEFINED__
    582 #define __IMsmConfigurableItem_INTERFACE_DEFINED__
    583 #if defined(__cplusplus) && !defined(CINTERFACE)
    584   struct IMsmConfigurableItem : public IDispatch {
    585   public:
    586     virtual HRESULT WINAPI get_Name(BSTR *Name) = 0;
    587     virtual HRESULT WINAPI get_Format(msmConfigurableItemFormat *Format) = 0;
    588     virtual HRESULT WINAPI get_Type(BSTR *Type) = 0;
    589     virtual HRESULT WINAPI get_Context(BSTR *Context) = 0;
    590     virtual HRESULT WINAPI get_DefaultValue(BSTR *DefaultValue) = 0;
    591     virtual HRESULT WINAPI get_Attributes(__LONG32 *Attributes) = 0;
    592     virtual HRESULT WINAPI get_DisplayName(BSTR *DisplayName) = 0;
    593     virtual HRESULT WINAPI get_Description(BSTR *Description) = 0;
    594     virtual HRESULT WINAPI get_HelpLocation(BSTR *HelpLocation) = 0;
    595     virtual HRESULT WINAPI get_HelpKeyword(BSTR *HelpKeyword) = 0;
    596   };
    597 #else
    598   typedef struct IMsmConfigurableItemVtbl {
    599     BEGIN_INTERFACE
    600       HRESULT (WINAPI *QueryInterface)(IMsmConfigurableItem *This,REFIID riid,void **ppvObject);
    601       ULONG (WINAPI *AddRef)(IMsmConfigurableItem *This);
    602       ULONG (WINAPI *Release)(IMsmConfigurableItem *This);
    603       HRESULT (WINAPI *GetTypeInfoCount)(IMsmConfigurableItem *This,UINT *pctinfo);
    604       HRESULT (WINAPI *GetTypeInfo)(IMsmConfigurableItem *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
    605       HRESULT (WINAPI *GetIDsOfNames)(IMsmConfigurableItem *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
    606       HRESULT (WINAPI *Invoke)(IMsmConfigurableItem *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
    607       HRESULT (WINAPI *get_Name)(IMsmConfigurableItem *This,BSTR *Name);
    608       HRESULT (WINAPI *get_Format)(IMsmConfigurableItem *This,msmConfigurableItemFormat *Format);
    609       HRESULT (WINAPI *get_Type)(IMsmConfigurableItem *This,BSTR *Type);
    610       HRESULT (WINAPI *get_Context)(IMsmConfigurableItem *This,BSTR *Context);
    611       HRESULT (WINAPI *get_DefaultValue)(IMsmConfigurableItem *This,BSTR *DefaultValue);
    612       HRESULT (WINAPI *get_Attributes)(IMsmConfigurableItem *This,__LONG32 *Attributes);
    613       HRESULT (WINAPI *get_DisplayName)(IMsmConfigurableItem *This,BSTR *DisplayName);
    614       HRESULT (WINAPI *get_Description)(IMsmConfigurableItem *This,BSTR *Description);
    615       HRESULT (WINAPI *get_HelpLocation)(IMsmConfigurableItem *This,BSTR *HelpLocation);
    616       HRESULT (WINAPI *get_HelpKeyword)(IMsmConfigurableItem *This,BSTR *HelpKeyword);
    617     END_INTERFACE
    618   } IMsmConfigurableItemVtbl;
    619   struct IMsmConfigurableItem {
    620     CONST_VTBL struct IMsmConfigurableItemVtbl *lpVtbl;
    621   };
    622 #ifdef COBJMACROS
    623 #define IMsmConfigurableItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    624 #define IMsmConfigurableItem_AddRef(This) (This)->lpVtbl->AddRef(This)
    625 #define IMsmConfigurableItem_Release(This) (This)->lpVtbl->Release(This)
    626 #define IMsmConfigurableItem_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
    627 #define IMsmConfigurableItem_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
    628 #define IMsmConfigurableItem_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
    629 #define IMsmConfigurableItem_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
    630 #define IMsmConfigurableItem_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
    631 #define IMsmConfigurableItem_get_Format(This,Format) (This)->lpVtbl->get_Format(This,Format)
    632 #define IMsmConfigurableItem_get_Type(This,Type) (This)->lpVtbl->get_Type(This,Type)
    633 #define IMsmConfigurableItem_get_Context(This,Context) (This)->lpVtbl->get_Context(This,Context)
    634 #define IMsmConfigurableItem_get_DefaultValue(This,DefaultValue) (This)->lpVtbl->get_DefaultValue(This,DefaultValue)
    635 #define IMsmConfigurableItem_get_Attributes(This,Attributes) (This)->lpVtbl->get_Attributes(This,Attributes)
    636 #define IMsmConfigurableItem_get_DisplayName(This,DisplayName) (This)->lpVtbl->get_DisplayName(This,DisplayName)
    637 #define IMsmConfigurableItem_get_Description(This,Description) (This)->lpVtbl->get_Description(This,Description)
    638 #define IMsmConfigurableItem_get_HelpLocation(This,HelpLocation) (This)->lpVtbl->get_HelpLocation(This,HelpLocation)
    639 #define IMsmConfigurableItem_get_HelpKeyword(This,HelpKeyword) (This)->lpVtbl->get_HelpKeyword(This,HelpKeyword)
    640 #endif
    641 #endif
    642   HRESULT WINAPI IMsmConfigurableItem_get_Name_Proxy(IMsmConfigurableItem *This,BSTR *Name);
    643   void __RPC_STUB IMsmConfigurableItem_get_Name_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    644   HRESULT WINAPI IMsmConfigurableItem_get_Format_Proxy(IMsmConfigurableItem *This,msmConfigurableItemFormat *Format);
    645   void __RPC_STUB IMsmConfigurableItem_get_Format_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    646   HRESULT WINAPI IMsmConfigurableItem_get_Type_Proxy(IMsmConfigurableItem *This,BSTR *Type);
    647   void __RPC_STUB IMsmConfigurableItem_get_Type_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    648   HRESULT WINAPI IMsmConfigurableItem_get_Context_Proxy(IMsmConfigurableItem *This,BSTR *Context);
    649   void __RPC_STUB IMsmConfigurableItem_get_Context_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    650   HRESULT WINAPI IMsmConfigurableItem_get_DefaultValue_Proxy(IMsmConfigurableItem *This,BSTR *DefaultValue);
    651   void __RPC_STUB IMsmConfigurableItem_get_DefaultValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    652   HRESULT WINAPI IMsmConfigurableItem_get_Attributes_Proxy(IMsmConfigurableItem *This,__LONG32 *Attributes);
    653   void __RPC_STUB IMsmConfigurableItem_get_Attributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    654   HRESULT WINAPI IMsmConfigurableItem_get_DisplayName_Proxy(IMsmConfigurableItem *This,BSTR *DisplayName);
    655   void __RPC_STUB IMsmConfigurableItem_get_DisplayName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    656   HRESULT WINAPI IMsmConfigurableItem_get_Description_Proxy(IMsmConfigurableItem *This,BSTR *Description);
    657   void __RPC_STUB IMsmConfigurableItem_get_Description_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    658   HRESULT WINAPI IMsmConfigurableItem_get_HelpLocation_Proxy(IMsmConfigurableItem *This,BSTR *HelpLocation);
    659   void __RPC_STUB IMsmConfigurableItem_get_HelpLocation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    660   HRESULT WINAPI IMsmConfigurableItem_get_HelpKeyword_Proxy(IMsmConfigurableItem *This,BSTR *HelpKeyword);
    661   void __RPC_STUB IMsmConfigurableItem_get_HelpKeyword_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    662 #endif
    663 
    664 #ifndef __IEnumMsmConfigurableItem_INTERFACE_DEFINED__
    665 #define __IEnumMsmConfigurableItem_INTERFACE_DEFINED__
    666 #if defined(__cplusplus) && !defined(CINTERFACE)
    667   struct IEnumMsmConfigurableItem : public IUnknown {
    668   public:
    669     virtual HRESULT WINAPI Next(unsigned __LONG32 cFetch,IMsmConfigurableItem **rgmsmItems,unsigned __LONG32 *pcFetched) = 0;
    670     virtual HRESULT WINAPI Skip(unsigned __LONG32 cSkip) = 0;
    671     virtual HRESULT WINAPI Reset(void) = 0;
    672     virtual HRESULT WINAPI Clone(IEnumMsmConfigurableItem **pemsmConfigurableItem) = 0;
    673   };
    674 #else
    675   typedef struct IEnumMsmConfigurableItemVtbl {
    676     BEGIN_INTERFACE
    677       HRESULT (WINAPI *QueryInterface)(IEnumMsmConfigurableItem *This,REFIID riid,void **ppvObject);
    678       ULONG (WINAPI *AddRef)(IEnumMsmConfigurableItem *This);
    679       ULONG (WINAPI *Release)(IEnumMsmConfigurableItem *This);
    680       HRESULT (WINAPI *Next)(IEnumMsmConfigurableItem *This,unsigned __LONG32 cFetch,IMsmConfigurableItem **rgmsmItems,unsigned __LONG32 *pcFetched);
    681       HRESULT (WINAPI *Skip)(IEnumMsmConfigurableItem *This,unsigned __LONG32 cSkip);
    682       HRESULT (WINAPI *Reset)(IEnumMsmConfigurableItem *This);
    683       HRESULT (WINAPI *Clone)(IEnumMsmConfigurableItem *This,IEnumMsmConfigurableItem **pemsmConfigurableItem);
    684     END_INTERFACE
    685   } IEnumMsmConfigurableItemVtbl;
    686   struct IEnumMsmConfigurableItem {
    687     CONST_VTBL struct IEnumMsmConfigurableItemVtbl *lpVtbl;
    688   };
    689 #ifdef COBJMACROS
    690 #define IEnumMsmConfigurableItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    691 #define IEnumMsmConfigurableItem_AddRef(This) (This)->lpVtbl->AddRef(This)
    692 #define IEnumMsmConfigurableItem_Release(This) (This)->lpVtbl->Release(This)
    693 #define IEnumMsmConfigurableItem_Next(This,cFetch,rgmsmItems,pcFetched) (This)->lpVtbl->Next(This,cFetch,rgmsmItems,pcFetched)
    694 #define IEnumMsmConfigurableItem_Skip(This,cSkip) (This)->lpVtbl->Skip(This,cSkip)
    695 #define IEnumMsmConfigurableItem_Reset(This) (This)->lpVtbl->Reset(This)
    696 #define IEnumMsmConfigurableItem_Clone(This,pemsmConfigurableItem) (This)->lpVtbl->Clone(This,pemsmConfigurableItem)
    697 #endif
    698 #endif
    699   HRESULT WINAPI IEnumMsmConfigurableItem_Next_Proxy(IEnumMsmConfigurableItem *This,unsigned __LONG32 cFetch,IMsmConfigurableItem **rgmsmItems,unsigned __LONG32 *pcFetched);
    700   void __RPC_STUB IEnumMsmConfigurableItem_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    701   HRESULT WINAPI IEnumMsmConfigurableItem_Skip_Proxy(IEnumMsmConfigurableItem *This,unsigned __LONG32 cSkip);
    702   void __RPC_STUB IEnumMsmConfigurableItem_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    703   HRESULT WINAPI IEnumMsmConfigurableItem_Reset_Proxy(IEnumMsmConfigurableItem *This);
    704   void __RPC_STUB IEnumMsmConfigurableItem_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    705   HRESULT WINAPI IEnumMsmConfigurableItem_Clone_Proxy(IEnumMsmConfigurableItem *This,IEnumMsmConfigurableItem **pemsmConfigurableItem);
    706   void __RPC_STUB IEnumMsmConfigurableItem_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    707 #endif
    708 
    709 #ifndef __IMsmConfigurableItems_INTERFACE_DEFINED__
    710 #define __IMsmConfigurableItems_INTERFACE_DEFINED__
    711 #if defined(__cplusplus) && !defined(CINTERFACE)
    712   struct IMsmConfigurableItems : public IDispatch {
    713   public:
    714     virtual HRESULT WINAPI get_Item(__LONG32 Item,IMsmConfigurableItem **Return) = 0;
    715     virtual HRESULT WINAPI get_Count(__LONG32 *Count) = 0;
    716     virtual HRESULT WINAPI get__NewEnum(IUnknown **NewEnum) = 0;
    717   };
    718 #else
    719   typedef struct IMsmConfigurableItemsVtbl {
    720     BEGIN_INTERFACE
    721       HRESULT (WINAPI *QueryInterface)(IMsmConfigurableItems *This,REFIID riid,void **ppvObject);
    722       ULONG (WINAPI *AddRef)(IMsmConfigurableItems *This);
    723       ULONG (WINAPI *Release)(IMsmConfigurableItems *This);
    724       HRESULT (WINAPI *GetTypeInfoCount)(IMsmConfigurableItems *This,UINT *pctinfo);
    725       HRESULT (WINAPI *GetTypeInfo)(IMsmConfigurableItems *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
    726       HRESULT (WINAPI *GetIDsOfNames)(IMsmConfigurableItems *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
    727       HRESULT (WINAPI *Invoke)(IMsmConfigurableItems *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
    728       HRESULT (WINAPI *get_Item)(IMsmConfigurableItems *This,__LONG32 Item,IMsmConfigurableItem **Return);
    729       HRESULT (WINAPI *get_Count)(IMsmConfigurableItems *This,__LONG32 *Count);
    730       HRESULT (WINAPI *get__NewEnum)(IMsmConfigurableItems *This,IUnknown **NewEnum);
    731     END_INTERFACE
    732   } IMsmConfigurableItemsVtbl;
    733   struct IMsmConfigurableItems {
    734     CONST_VTBL struct IMsmConfigurableItemsVtbl *lpVtbl;
    735   };
    736 #ifdef COBJMACROS
    737 #define IMsmConfigurableItems_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    738 #define IMsmConfigurableItems_AddRef(This) (This)->lpVtbl->AddRef(This)
    739 #define IMsmConfigurableItems_Release(This) (This)->lpVtbl->Release(This)
    740 #define IMsmConfigurableItems_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
    741 #define IMsmConfigurableItems_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
    742 #define IMsmConfigurableItems_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
    743 #define IMsmConfigurableItems_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
    744 #define IMsmConfigurableItems_get_Item(This,Item,Return) (This)->lpVtbl->get_Item(This,Item,Return)
    745 #define IMsmConfigurableItems_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
    746 #define IMsmConfigurableItems_get__NewEnum(This,NewEnum) (This)->lpVtbl->get__NewEnum(This,NewEnum)
    747 #endif
    748 #endif
    749   HRESULT WINAPI IMsmConfigurableItems_get_Item_Proxy(IMsmConfigurableItems *This,__LONG32 Item,IMsmConfigurableItem **Return);
    750   void __RPC_STUB IMsmConfigurableItems_get_Item_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    751   HRESULT WINAPI IMsmConfigurableItems_get_Count_Proxy(IMsmConfigurableItems *This,__LONG32 *Count);
    752   void __RPC_STUB IMsmConfigurableItems_get_Count_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    753   HRESULT WINAPI IMsmConfigurableItems_get__NewEnum_Proxy(IMsmConfigurableItems *This,IUnknown **NewEnum);
    754   void __RPC_STUB IMsmConfigurableItems_get__NewEnum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    755 #endif
    756 
    757 #ifndef __IMsmConfigureModule_INTERFACE_DEFINED__
    758 #define __IMsmConfigureModule_INTERFACE_DEFINED__
    759 #if defined(__cplusplus) && !defined(CINTERFACE)
    760   struct IMsmConfigureModule : public IDispatch {
    761   public:
    762     virtual HRESULT WINAPI ProvideTextData(const BSTR Name,BSTR *ConfigData) = 0;
    763     virtual HRESULT WINAPI ProvideIntegerData(const BSTR Name,__LONG32 *ConfigData) = 0;
    764   };
    765 #else
    766   typedef struct IMsmConfigureModuleVtbl {
    767     BEGIN_INTERFACE
    768       HRESULT (WINAPI *QueryInterface)(IMsmConfigureModule *This,REFIID riid,void **ppvObject);
    769       ULONG (WINAPI *AddRef)(IMsmConfigureModule *This);
    770       ULONG (WINAPI *Release)(IMsmConfigureModule *This);
    771       HRESULT (WINAPI *GetTypeInfoCount)(IMsmConfigureModule *This,UINT *pctinfo);
    772       HRESULT (WINAPI *GetTypeInfo)(IMsmConfigureModule *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
    773       HRESULT (WINAPI *GetIDsOfNames)(IMsmConfigureModule *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
    774       HRESULT (WINAPI *Invoke)(IMsmConfigureModule *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
    775       HRESULT (WINAPI *ProvideTextData)(IMsmConfigureModule *This,const BSTR Name,BSTR *ConfigData);
    776       HRESULT (WINAPI *ProvideIntegerData)(IMsmConfigureModule *This,const BSTR Name,__LONG32 *ConfigData);
    777     END_INTERFACE
    778   } IMsmConfigureModuleVtbl;
    779   struct IMsmConfigureModule {
    780     CONST_VTBL struct IMsmConfigureModuleVtbl *lpVtbl;
    781   };
    782 #ifdef COBJMACROS
    783 #define IMsmConfigureModule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    784 #define IMsmConfigureModule_AddRef(This) (This)->lpVtbl->AddRef(This)
    785 #define IMsmConfigureModule_Release(This) (This)->lpVtbl->Release(This)
    786 #define IMsmConfigureModule_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
    787 #define IMsmConfigureModule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
    788 #define IMsmConfigureModule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
    789 #define IMsmConfigureModule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
    790 #define IMsmConfigureModule_ProvideTextData(This,Name,ConfigData) (This)->lpVtbl->ProvideTextData(This,Name,ConfigData)
    791 #define IMsmConfigureModule_ProvideIntegerData(This,Name,ConfigData) (This)->lpVtbl->ProvideIntegerData(This,Name,ConfigData)
    792 #endif
    793 #endif
    794   HRESULT WINAPI IMsmConfigureModule_ProvideTextData_Proxy(IMsmConfigureModule *This,const BSTR Name,BSTR *ConfigData);
    795   void __RPC_STUB IMsmConfigureModule_ProvideTextData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    796   HRESULT WINAPI IMsmConfigureModule_ProvideIntegerData_Proxy(IMsmConfigureModule *This,const BSTR Name,__LONG32 *ConfigData);
    797   void __RPC_STUB IMsmConfigureModule_ProvideIntegerData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    798 #endif
    799 #endif
    800 
    801 #ifndef __IMsmMerge_INTERFACE_DEFINED__
    802 #define __IMsmMerge_INTERFACE_DEFINED__
    803 #if defined(__cplusplus) && !defined(CINTERFACE)
    804   struct IMsmMerge : public IDispatch {
    805   public:
    806     virtual HRESULT WINAPI OpenDatabase(const BSTR Path) = 0;
    807     virtual HRESULT WINAPI OpenModule(const BSTR Path,const short Language) = 0;
    808     virtual HRESULT WINAPI CloseDatabase(const VARIANT_BOOL Commit) = 0;
    809     virtual HRESULT WINAPI CloseModule(void) = 0;
    810     virtual HRESULT WINAPI OpenLog(const BSTR Path) = 0;
    811     virtual HRESULT WINAPI CloseLog(void) = 0;
    812     virtual HRESULT WINAPI Log(const BSTR Message) = 0;
    813     virtual HRESULT WINAPI get_Errors(IMsmErrors **Errors) = 0;
    814     virtual HRESULT WINAPI get_Dependencies(IMsmDependencies **Dependencies) = 0;
    815     virtual HRESULT WINAPI Merge(const BSTR Feature,const BSTR RedirectDir) = 0;
    816     virtual HRESULT WINAPI Connect(const BSTR Feature) = 0;
    817     virtual HRESULT WINAPI ExtractCAB(const BSTR FileName) = 0;
    818     virtual HRESULT WINAPI ExtractFiles(const BSTR Path) = 0;
    819   };
    820 #else
    821   typedef struct IMsmMergeVtbl {
    822     BEGIN_INTERFACE
    823       HRESULT (WINAPI *QueryInterface)(IMsmMerge *This,REFIID riid,void **ppvObject);
    824       ULONG (WINAPI *AddRef)(IMsmMerge *This);
    825       ULONG (WINAPI *Release)(IMsmMerge *This);
    826       HRESULT (WINAPI *GetTypeInfoCount)(IMsmMerge *This,UINT *pctinfo);
    827       HRESULT (WINAPI *GetTypeInfo)(IMsmMerge *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
    828       HRESULT (WINAPI *GetIDsOfNames)(IMsmMerge *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
    829       HRESULT (WINAPI *Invoke)(IMsmMerge *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
    830       HRESULT (WINAPI *OpenDatabase)(IMsmMerge *This,const BSTR Path);
    831       HRESULT (WINAPI *OpenModule)(IMsmMerge *This,const BSTR Path,const short Language);
    832       HRESULT (WINAPI *CloseDatabase)(IMsmMerge *This,const VARIANT_BOOL Commit);
    833       HRESULT (WINAPI *CloseModule)(IMsmMerge *This);
    834       HRESULT (WINAPI *OpenLog)(IMsmMerge *This,const BSTR Path);
    835       HRESULT (WINAPI *CloseLog)(IMsmMerge *This);
    836       HRESULT (WINAPI *Log)(IMsmMerge *This,const BSTR Message);
    837       HRESULT (WINAPI *get_Errors)(IMsmMerge *This,IMsmErrors **Errors);
    838       HRESULT (WINAPI *get_Dependencies)(IMsmMerge *This,IMsmDependencies **Dependencies);
    839       HRESULT (WINAPI *Merge)(IMsmMerge *This,const BSTR Feature,const BSTR RedirectDir);
    840       HRESULT (WINAPI *Connect)(IMsmMerge *This,const BSTR Feature);
    841       HRESULT (WINAPI *ExtractCAB)(IMsmMerge *This,const BSTR FileName);
    842       HRESULT (WINAPI *ExtractFiles)(IMsmMerge *This,const BSTR Path);
    843     END_INTERFACE
    844   } IMsmMergeVtbl;
    845   struct IMsmMerge {
    846     CONST_VTBL struct IMsmMergeVtbl *lpVtbl;
    847   };
    848 #ifdef COBJMACROS
    849 #define IMsmMerge_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    850 #define IMsmMerge_AddRef(This) (This)->lpVtbl->AddRef(This)
    851 #define IMsmMerge_Release(This) (This)->lpVtbl->Release(This)
    852 #define IMsmMerge_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
    853 #define IMsmMerge_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
    854 #define IMsmMerge_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
    855 #define IMsmMerge_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
    856 #define IMsmMerge_OpenDatabase(This,Path) (This)->lpVtbl->OpenDatabase(This,Path)
    857 #define IMsmMerge_OpenModule(This,Path,Language) (This)->lpVtbl->OpenModule(This,Path,Language)
    858 #define IMsmMerge_CloseDatabase(This,Commit) (This)->lpVtbl->CloseDatabase(This,Commit)
    859 #define IMsmMerge_CloseModule(This) (This)->lpVtbl->CloseModule(This)
    860 #define IMsmMerge_OpenLog(This,Path) (This)->lpVtbl->OpenLog(This,Path)
    861 #define IMsmMerge_CloseLog(This) (This)->lpVtbl->CloseLog(This)
    862 #define IMsmMerge_Log(This,Message) (This)->lpVtbl->Log(This,Message)
    863 #define IMsmMerge_get_Errors(This,Errors) (This)->lpVtbl->get_Errors(This,Errors)
    864 #define IMsmMerge_get_Dependencies(This,Dependencies) (This)->lpVtbl->get_Dependencies(This,Dependencies)
    865 #define IMsmMerge_Merge(This,Feature,RedirectDir) (This)->lpVtbl->Merge(This,Feature,RedirectDir)
    866 #define IMsmMerge_Connect(This,Feature) (This)->lpVtbl->Connect(This,Feature)
    867 #define IMsmMerge_ExtractCAB(This,FileName) (This)->lpVtbl->ExtractCAB(This,FileName)
    868 #define IMsmMerge_ExtractFiles(This,Path) (This)->lpVtbl->ExtractFiles(This,Path)
    869 #endif
    870 #endif
    871   HRESULT WINAPI IMsmMerge_OpenDatabase_Proxy(IMsmMerge *This,const BSTR Path);
    872   void __RPC_STUB IMsmMerge_OpenDatabase_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    873   HRESULT WINAPI IMsmMerge_OpenModule_Proxy(IMsmMerge *This,const BSTR Path,const short Language);
    874   void __RPC_STUB IMsmMerge_OpenModule_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    875   HRESULT WINAPI IMsmMerge_CloseDatabase_Proxy(IMsmMerge *This,const VARIANT_BOOL Commit);
    876   void __RPC_STUB IMsmMerge_CloseDatabase_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    877   HRESULT WINAPI IMsmMerge_CloseModule_Proxy(IMsmMerge *This);
    878   void __RPC_STUB IMsmMerge_CloseModule_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    879   HRESULT WINAPI IMsmMerge_OpenLog_Proxy(IMsmMerge *This,const BSTR Path);
    880   void __RPC_STUB IMsmMerge_OpenLog_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    881   HRESULT WINAPI IMsmMerge_CloseLog_Proxy(IMsmMerge *This);
    882   void __RPC_STUB IMsmMerge_CloseLog_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    883   HRESULT WINAPI IMsmMerge_Log_Proxy(IMsmMerge *This,const BSTR Message);
    884   void __RPC_STUB IMsmMerge_Log_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    885   HRESULT WINAPI IMsmMerge_get_Errors_Proxy(IMsmMerge *This,IMsmErrors **Errors);
    886   void __RPC_STUB IMsmMerge_get_Errors_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    887   HRESULT WINAPI IMsmMerge_get_Dependencies_Proxy(IMsmMerge *This,IMsmDependencies **Dependencies);
    888   void __RPC_STUB IMsmMerge_get_Dependencies_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    889   HRESULT WINAPI IMsmMerge_Merge_Proxy(IMsmMerge *This,const BSTR Feature,const BSTR RedirectDir);
    890   void __RPC_STUB IMsmMerge_Merge_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    891   HRESULT WINAPI IMsmMerge_Connect_Proxy(IMsmMerge *This,const BSTR Feature);
    892   void __RPC_STUB IMsmMerge_Connect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    893   HRESULT WINAPI IMsmMerge_ExtractCAB_Proxy(IMsmMerge *This,const BSTR FileName);
    894   void __RPC_STUB IMsmMerge_ExtractCAB_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    895   HRESULT WINAPI IMsmMerge_ExtractFiles_Proxy(IMsmMerge *This,const BSTR Path);
    896   void __RPC_STUB IMsmMerge_ExtractFiles_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    897 #endif
    898 
    899 #ifndef __IMsmGetFiles_INTERFACE_DEFINED__
    900 #define __IMsmGetFiles_INTERFACE_DEFINED__
    901 #if defined(__cplusplus) && !defined(CINTERFACE)
    902   struct IMsmGetFiles : public IDispatch {
    903   public:
    904     virtual HRESULT WINAPI get_ModuleFiles(IMsmStrings **Files) = 0;
    905   };
    906 #else
    907   typedef struct IMsmGetFilesVtbl {
    908     BEGIN_INTERFACE
    909       HRESULT (WINAPI *QueryInterface)(IMsmGetFiles *This,REFIID riid,void **ppvObject);
    910       ULONG (WINAPI *AddRef)(IMsmGetFiles *This);
    911       ULONG (WINAPI *Release)(IMsmGetFiles *This);
    912       HRESULT (WINAPI *GetTypeInfoCount)(IMsmGetFiles *This,UINT *pctinfo);
    913       HRESULT (WINAPI *GetTypeInfo)(IMsmGetFiles *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
    914       HRESULT (WINAPI *GetIDsOfNames)(IMsmGetFiles *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
    915       HRESULT (WINAPI *Invoke)(IMsmGetFiles *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
    916       HRESULT (WINAPI *get_ModuleFiles)(IMsmGetFiles *This,IMsmStrings **Files);
    917     END_INTERFACE
    918   } IMsmGetFilesVtbl;
    919   struct IMsmGetFiles {
    920     CONST_VTBL struct IMsmGetFilesVtbl *lpVtbl;
    921   };
    922 #ifdef COBJMACROS
    923 #define IMsmGetFiles_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    924 #define IMsmGetFiles_AddRef(This) (This)->lpVtbl->AddRef(This)
    925 #define IMsmGetFiles_Release(This) (This)->lpVtbl->Release(This)
    926 #define IMsmGetFiles_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
    927 #define IMsmGetFiles_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
    928 #define IMsmGetFiles_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
    929 #define IMsmGetFiles_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
    930 #define IMsmGetFiles_get_ModuleFiles(This,Files) (This)->lpVtbl->get_ModuleFiles(This,Files)
    931 #endif
    932 #endif
    933   HRESULT WINAPI IMsmGetFiles_get_ModuleFiles_Proxy(IMsmGetFiles *This,IMsmStrings **Files);
    934   void __RPC_STUB IMsmGetFiles_get_ModuleFiles_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    935 #endif
    936 
    937 #if (_WIN32_MSM >= 150)
    938 #ifndef __IMsmMerge2_INTERFACE_DEFINED__
    939 #define __IMsmMerge2_INTERFACE_DEFINED__
    940 #if defined(__cplusplus) && !defined(CINTERFACE)
    941   struct IMsmMerge2 : public IDispatch {
    942   public:
    943     virtual HRESULT WINAPI OpenDatabase(const BSTR Path) = 0;
    944     virtual HRESULT WINAPI OpenModule(const BSTR Path,const short Language) = 0;
    945     virtual HRESULT WINAPI CloseDatabase(const VARIANT_BOOL Commit) = 0;
    946     virtual HRESULT WINAPI CloseModule(void) = 0;
    947     virtual HRESULT WINAPI OpenLog(const BSTR Path) = 0;
    948     virtual HRESULT WINAPI CloseLog(void) = 0;
    949     virtual HRESULT WINAPI Log(const BSTR Message) = 0;
    950     virtual HRESULT WINAPI get_Errors(IMsmErrors **Errors) = 0;
    951     virtual HRESULT WINAPI get_Dependencies(IMsmDependencies **Dependencies) = 0;
    952     virtual HRESULT WINAPI Merge(const BSTR Feature,const BSTR RedirectDir) = 0;
    953     virtual HRESULT WINAPI Connect(const BSTR Feature) = 0;
    954     virtual HRESULT WINAPI ExtractCAB(const BSTR FileName) = 0;
    955     virtual HRESULT WINAPI ExtractFiles(const BSTR Path) = 0;
    956     virtual HRESULT WINAPI MergeEx(const BSTR Feature,const BSTR RedirectDir,IUnknown *pConfiguration) = 0;
    957     virtual HRESULT WINAPI ExtractFilesEx(const BSTR Path,VARIANT_BOOL fLongFileNames,IMsmStrings **pFilePaths) = 0;
    958     virtual HRESULT WINAPI get_ConfigurableItems(IMsmConfigurableItems **ConfigurableItems) = 0;
    959     virtual HRESULT WINAPI CreateSourceImage(const BSTR Path,VARIANT_BOOL fLongFileNames,IMsmStrings **pFilePaths) = 0;
    960     virtual HRESULT WINAPI get_ModuleFiles(IMsmStrings **Files) = 0;
    961   };
    962 #else
    963   typedef struct IMsmMerge2Vtbl {
    964     BEGIN_INTERFACE
    965       HRESULT (WINAPI *QueryInterface)(IMsmMerge2 *This,REFIID riid,void **ppvObject);
    966       ULONG (WINAPI *AddRef)(IMsmMerge2 *This);
    967       ULONG (WINAPI *Release)(IMsmMerge2 *This);
    968       HRESULT (WINAPI *GetTypeInfoCount)(IMsmMerge2 *This,UINT *pctinfo);
    969       HRESULT (WINAPI *GetTypeInfo)(IMsmMerge2 *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
    970       HRESULT (WINAPI *GetIDsOfNames)(IMsmMerge2 *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
    971       HRESULT (WINAPI *Invoke)(IMsmMerge2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
    972       HRESULT (WINAPI *OpenDatabase)(IMsmMerge2 *This,const BSTR Path);
    973       HRESULT (WINAPI *OpenModule)(IMsmMerge2 *This,const BSTR Path,const short Language);
    974       HRESULT (WINAPI *CloseDatabase)(IMsmMerge2 *This,const VARIANT_BOOL Commit);
    975       HRESULT (WINAPI *CloseModule)(IMsmMerge2 *This);
    976       HRESULT (WINAPI *OpenLog)(IMsmMerge2 *This,const BSTR Path);
    977       HRESULT (WINAPI *CloseLog)(IMsmMerge2 *This);
    978       HRESULT (WINAPI *Log)(IMsmMerge2 *This,const BSTR Message);
    979       HRESULT (WINAPI *get_Errors)(IMsmMerge2 *This,IMsmErrors **Errors);
    980       HRESULT (WINAPI *get_Dependencies)(IMsmMerge2 *This,IMsmDependencies **Dependencies);
    981       HRESULT (WINAPI *Merge)(IMsmMerge2 *This,const BSTR Feature,const BSTR RedirectDir);
    982       HRESULT (WINAPI *Connect)(IMsmMerge2 *This,const BSTR Feature);
    983       HRESULT (WINAPI *ExtractCAB)(IMsmMerge2 *This,const BSTR FileName);
    984       HRESULT (WINAPI *ExtractFiles)(IMsmMerge2 *This,const BSTR Path);
    985       HRESULT (WINAPI *MergeEx)(IMsmMerge2 *This,const BSTR Feature,const BSTR RedirectDir,IMsmConfigureModule *pConfiguration);
    986       HRESULT (WINAPI *ExtractFilesEx)(IMsmMerge2 *This,const BSTR Path,VARIANT_BOOL fLongFileNames,IMsmStrings **pFilePaths);
    987       HRESULT (WINAPI *get_ConfigurableItems)(IMsmMerge2 *This,IMsmConfigurableItems **ConfigurableItems);
    988       HRESULT (WINAPI *CreateSourceImage)(IMsmMerge2 *This,const BSTR Path,VARIANT_BOOL fLongFileNames,IMsmStrings **pFilePaths);
    989       HRESULT (WINAPI *get_ModuleFiles)(IMsmMerge2 *This,IMsmStrings **Files);
    990     END_INTERFACE
    991   } IMsmMerge2Vtbl;
    992   struct IMsmMerge2 {
    993     CONST_VTBL struct IMsmMerge2Vtbl *lpVtbl;
    994   };
    995 #ifdef COBJMACROS
    996 #define IMsmMerge2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    997 #define IMsmMerge2_AddRef(This) (This)->lpVtbl->AddRef(This)
    998 #define IMsmMerge2_Release(This) (This)->lpVtbl->Release(This)
    999 #define IMsmMerge2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   1000 #define IMsmMerge2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   1001 #define IMsmMerge2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   1002 #define IMsmMerge2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   1003 #define IMsmMerge2_OpenDatabase(This,Path) (This)->lpVtbl->OpenDatabase(This,Path)
   1004 #define IMsmMerge2_OpenModule(This,Path,Language) (This)->lpVtbl->OpenModule(This,Path,Language)
   1005 #define IMsmMerge2_CloseDatabase(This,Commit) (This)->lpVtbl->CloseDatabase(This,Commit)
   1006 #define IMsmMerge2_CloseModule(This) (This)->lpVtbl->CloseModule(This)
   1007 #define IMsmMerge2_OpenLog(This,Path) (This)->lpVtbl->OpenLog(This,Path)
   1008 #define IMsmMerge2_CloseLog(This) (This)->lpVtbl->CloseLog(This)
   1009 #define IMsmMerge2_Log(This,Message) (This)->lpVtbl->Log(This,Message)
   1010 #define IMsmMerge2_get_Errors(This,Errors) (This)->lpVtbl->get_Errors(This,Errors)
   1011 #define IMsmMerge2_get_Dependencies(This,Dependencies) (This)->lpVtbl->get_Dependencies(This,Dependencies)
   1012 #define IMsmMerge2_Merge(This,Feature,RedirectDir) (This)->lpVtbl->Merge(This,Feature,RedirectDir)
   1013 #define IMsmMerge2_Connect(This,Feature) (This)->lpVtbl->Connect(This,Feature)
   1014 #define IMsmMerge2_ExtractCAB(This,FileName) (This)->lpVtbl->ExtractCAB(This,FileName)
   1015 #define IMsmMerge2_ExtractFiles(This,Path) (This)->lpVtbl->ExtractFiles(This,Path)
   1016 #define IMsmMerge2_MergeEx(This,Feature,RedirectDir,pConfiguration) (This)->lpVtbl->MergeEx(This,Feature,RedirectDir,pConfiguration)
   1017 #define IMsmMerge2_ExtractFilesEx(This,Path,fLongFileNames,pFilePaths) (This)->lpVtbl->ExtractFilesEx(This,Path,fLongFileNames,pFilePaths)
   1018 #define IMsmMerge2_get_ConfigurableItems(This,ConfigurableItems) (This)->lpVtbl->get_ConfigurableItems(This,ConfigurableItems)
   1019 #define IMsmMerge2_CreateSourceImage(This,Path,fLongFileNames,pFilePaths) (This)->lpVtbl->CreateSourceImage(This,Path,fLongFileNames,pFilePaths)
   1020 #define IMsmMerge2_get_ModuleFiles(This,Files) (This)->lpVtbl->get_ModuleFiles(This,Files)
   1021 #endif
   1022 #endif
   1023   HRESULT WINAPI IMsmMerge2_OpenDatabase_Proxy(IMsmMerge2 *This,const BSTR Path);
   1024   void __RPC_STUB IMsmMerge2_OpenDatabase_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1025   HRESULT WINAPI IMsmMerge2_OpenModule_Proxy(IMsmMerge2 *This,const BSTR Path,const short Language);
   1026   void __RPC_STUB IMsmMerge2_OpenModule_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1027   HRESULT WINAPI IMsmMerge2_CloseDatabase_Proxy(IMsmMerge2 *This,const VARIANT_BOOL Commit);
   1028   void __RPC_STUB IMsmMerge2_CloseDatabase_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1029   HRESULT WINAPI IMsmMerge2_CloseModule_Proxy(IMsmMerge2 *This);
   1030   void __RPC_STUB IMsmMerge2_CloseModule_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1031   HRESULT WINAPI IMsmMerge2_OpenLog_Proxy(IMsmMerge2 *This,const BSTR Path);
   1032   void __RPC_STUB IMsmMerge2_OpenLog_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1033   HRESULT WINAPI IMsmMerge2_CloseLog_Proxy(IMsmMerge2 *This);
   1034   void __RPC_STUB IMsmMerge2_CloseLog_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1035   HRESULT WINAPI IMsmMerge2_Log_Proxy(IMsmMerge2 *This,const BSTR Message);
   1036   void __RPC_STUB IMsmMerge2_Log_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1037   HRESULT WINAPI IMsmMerge2_get_Errors_Proxy(IMsmMerge2 *This,IMsmErrors **Errors);
   1038   void __RPC_STUB IMsmMerge2_get_Errors_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1039   HRESULT WINAPI IMsmMerge2_get_Dependencies_Proxy(IMsmMerge2 *This,IMsmDependencies **Dependencies);
   1040   void __RPC_STUB IMsmMerge2_get_Dependencies_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1041   HRESULT WINAPI IMsmMerge2_Merge_Proxy(IMsmMerge2 *This,const BSTR Feature,const BSTR RedirectDir);
   1042   void __RPC_STUB IMsmMerge2_Merge_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1043   HRESULT WINAPI IMsmMerge2_Connect_Proxy(IMsmMerge2 *This,const BSTR Feature);
   1044   void __RPC_STUB IMsmMerge2_Connect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1045   HRESULT WINAPI IMsmMerge2_ExtractCAB_Proxy(IMsmMerge2 *This,const BSTR FileName);
   1046   void __RPC_STUB IMsmMerge2_ExtractCAB_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1047   HRESULT WINAPI IMsmMerge2_ExtractFiles_Proxy(IMsmMerge2 *This,const BSTR Path);
   1048   void __RPC_STUB IMsmMerge2_ExtractFiles_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1049   HRESULT WINAPI IMsmMerge2_MergeEx_Proxy(IMsmMerge2 *This,const BSTR Feature,const BSTR RedirectDir,IMsmConfigureModule *pConfiguration);
   1050   void __RPC_STUB IMsmMerge2_MergeEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1051   HRESULT WINAPI IMsmMerge2_ExtractFilesEx_Proxy(IMsmMerge2 *This,const BSTR Path,VARIANT_BOOL fLongFileNames,IMsmStrings **pFilePaths);
   1052   void __RPC_STUB IMsmMerge2_ExtractFilesEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1053   HRESULT WINAPI IMsmMerge2_get_ConfigurableItems_Proxy(IMsmMerge2 *This,IMsmConfigurableItems **ConfigurableItems);
   1054   void __RPC_STUB IMsmMerge2_get_ConfigurableItems_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1055   HRESULT WINAPI IMsmMerge2_CreateSourceImage_Proxy(IMsmMerge2 *This,const BSTR Path,VARIANT_BOOL fLongFileNames,IMsmStrings **pFilePaths);
   1056   void __RPC_STUB IMsmMerge2_CreateSourceImage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1057   HRESULT WINAPI IMsmMerge2_get_ModuleFiles_Proxy(IMsmMerge2 *This,IMsmStrings **Files);
   1058   void __RPC_STUB IMsmMerge2_get_ModuleFiles_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1059 #endif
   1060 #endif
   1061 
   1062 #ifndef __MsmMergeTypeLib_LIBRARY_DEFINED__
   1063 #define __MsmMergeTypeLib_LIBRARY_DEFINED__
   1064 #ifdef __cplusplus
   1065   class MsmMerge;
   1066 #endif
   1067 
   1068 #if (_WIN32_MSM >= 150)
   1069 #ifdef __cplusplus
   1070   class MsmMerge2;
   1071 #endif
   1072 #endif
   1073 #endif
   1074 
   1075   ULONG __RPC_API BSTR_UserSize(ULONG *,ULONG,BSTR *);
   1076   unsigned char *__RPC_API BSTR_UserMarshal(ULONG *,unsigned char *,BSTR *);
   1077   unsigned char *__RPC_API BSTR_UserUnmarshal(ULONG *,unsigned char *,BSTR *);
   1078   void __RPC_API BSTR_UserFree(ULONG *,BSTR *);
   1079 
   1080 #ifdef __cplusplus
   1081 }
   1082 #endif
   1083 
   1084 DEFINE_GUID(IID_IEnumMsmString,0x0ADDA826,0x2C26,0x11D2,0xAD,0x65,0x00,0xA0,0xC9,0xAF,0x11,0xA6);
   1085 DEFINE_GUID(IID_IMsmStrings,0x0ADDA827,0x2C26,0x11D2,0xAD,0x65,0x00,0xA0,0xC9,0xAF,0x11,0xA6);
   1086 DEFINE_GUID(IID_IMsmError,0x0ADDA828,0x2C26,0x11D2,0xAD,0x65,0x00,0xA0,0xC9,0xAF,0x11,0xA6);
   1087 DEFINE_GUID(IID_IEnumMsmError,0x0ADDA829,0x2C26,0x11D2,0xAD,0x65,0x00,0xA0,0xC9,0xAF,0x11,0xA6);
   1088 DEFINE_GUID(IID_IMsmErrors,0x0ADDA82A,0x2C26,0x11D2,0xAD,0x65,0x00,0xA0,0xC9,0xAF,0x11,0xA6);
   1089 DEFINE_GUID(IID_IMsmDependency,0x0ADDA82B,0x2C26,0x11D2,0xAD,0x65,0x00,0xA0,0xC9,0xAF,0x11,0xA6);
   1090 DEFINE_GUID(IID_IEnumMsmDependency,0x0ADDA82C,0x2C26,0x11D2,0xAD,0x65,0x00,0xA0,0xC9,0xAF,0x11,0xA6);
   1091 DEFINE_GUID(IID_IMsmDependencies,0x0ADDA82D,0x2C26,0x11D2,0xAD,0x65,0x00,0xA0,0xC9,0xAF,0x11,0xA6);
   1092 DEFINE_GUID(IID_IMsmMerge,0x0ADDA82E,0x2C26,0x11D2,0xAD,0x65,0x00,0xA0,0xC9,0xAF,0x11,0xA6);
   1093 DEFINE_GUID(IID_IMsmGetFiles,0x7041ae26,0x2d78,0x11d2,0x88,0x8a,0x0,0xa0,0xc9,0x81,0xb0,0x15);
   1094 DEFINE_GUID(LIBID_MsmMergeTypeLib,0x0ADDA82F,0x2C26,0x11D2,0xAD,0x65,0x00,0xA0,0xC9,0xAF,0x11,0xA6);
   1095 DEFINE_GUID(CLSID_MsmMerge,0x0ADDA830,0x2C26,0x11D2,0xAD,0x65,0x00,0xA0,0xC9,0xAF,0x11,0xA6);
   1096 #if (_WIN32_MSM >= 150)
   1097 DEFINE_GUID(IID_IMsmMerge2,0x351A72AB,0x21CB,0x47AB,0xB7,0xAA,0xC4,0xD7,0xB0,0x2E,0xA3,0x05);
   1098 DEFINE_GUID(IID_IMsmConfigurableItem,0x4D6E6284,0xD21D,0x401E,0x84,0xF6,0x90,0x9E,0x00,0xB5,0x0F,0x71);
   1099 DEFINE_GUID(IID_IEnumMsmConfigurableItem,0x832C6969,0x4826,0x4C24,0xA3,0x97,0xB7,0x00,0x2D,0x81,0x96,0xE6);
   1100 DEFINE_GUID(IID_IMsmConfigurableItems,0x55BF723C,0x9A0D,0x463E,0xB4,0x2B,0xB4,0xFB,0xC7,0xBE,0x3C,0x7C);
   1101 DEFINE_GUID(IID_IMsmConfigureModule,0xAC013209,0x18A7,0x4851,0x8A,0x21,0x23,0x53,0x44,0x3D,0x70,0xA0);
   1102 DEFINE_GUID(CLSID_MsmMerge2,0xF94985D5,0x29F9,0x4743,0x98,0x05,0x99,0xBC,0x3F,0x35,0xB6,0x78);
   1103 #endif
   1104 #endif
   1105