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