1 /*** Autogenerated by WIDL 3.19 from include/fusion.idl - Do not edit ***/
2 
3 #ifndef __REQUIRED_RPCNDR_H_VERSION__
4 #define __REQUIRED_RPCNDR_H_VERSION__ 475
5 #endif
6 
7 #include <rpc.h>
8 #include <rpcndr.h>
9 
10 #ifndef COM_NO_WINDOWS_H
11 #include <windows.h>
12 #include <ole2.h>
13 #endif
14 
15 #ifndef __fusion_h__
16 #define __fusion_h__
17 
18 /* Forward declarations */
19 
20 #ifndef __IAssemblyCache_FWD_DEFINED__
21 #define __IAssemblyCache_FWD_DEFINED__
22 typedef interface IAssemblyCache IAssemblyCache;
23 #ifdef __cplusplus
24 interface IAssemblyCache;
25 #endif /* __cplusplus */
26 #endif
27 
28 #ifndef __IAssemblyCacheItem_FWD_DEFINED__
29 #define __IAssemblyCacheItem_FWD_DEFINED__
30 typedef interface IAssemblyCacheItem IAssemblyCacheItem;
31 #ifdef __cplusplus
32 interface IAssemblyCacheItem;
33 #endif /* __cplusplus */
34 #endif
35 
36 #ifndef __IAssemblyName_FWD_DEFINED__
37 #define __IAssemblyName_FWD_DEFINED__
38 typedef interface IAssemblyName IAssemblyName;
39 #ifdef __cplusplus
40 interface IAssemblyName;
41 #endif /* __cplusplus */
42 #endif
43 
44 #ifndef __IAssemblyEnum_FWD_DEFINED__
45 #define __IAssemblyEnum_FWD_DEFINED__
46 typedef interface IAssemblyEnum IAssemblyEnum;
47 #ifdef __cplusplus
48 interface IAssemblyEnum;
49 #endif /* __cplusplus */
50 #endif
51 
52 #ifndef __IInstallReferenceItem_FWD_DEFINED__
53 #define __IInstallReferenceItem_FWD_DEFINED__
54 typedef interface IInstallReferenceItem IInstallReferenceItem;
55 #ifdef __cplusplus
56 interface IInstallReferenceItem;
57 #endif /* __cplusplus */
58 #endif
59 
60 #ifndef __IInstallReferenceEnum_FWD_DEFINED__
61 #define __IInstallReferenceEnum_FWD_DEFINED__
62 typedef interface IInstallReferenceEnum IInstallReferenceEnum;
63 #ifdef __cplusplus
64 interface IInstallReferenceEnum;
65 #endif /* __cplusplus */
66 #endif
67 
68 /* Headers for imported files */
69 
70 #include <objidl.h>
71 
72 #ifdef __cplusplus
73 extern "C" {
74 #endif
75 
76 #ifndef __IAssemblyCache_FWD_DEFINED__
77 #define __IAssemblyCache_FWD_DEFINED__
78 typedef interface IAssemblyCache IAssemblyCache;
79 #ifdef __cplusplus
80 interface IAssemblyCache;
81 #endif /* __cplusplus */
82 #endif
83 
84 #ifndef __IAssemblyCacheItem_FWD_DEFINED__
85 #define __IAssemblyCacheItem_FWD_DEFINED__
86 typedef interface IAssemblyCacheItem IAssemblyCacheItem;
87 #ifdef __cplusplus
88 interface IAssemblyCacheItem;
89 #endif /* __cplusplus */
90 #endif
91 
92 #ifndef __IAssemblyEnum_FWD_DEFINED__
93 #define __IAssemblyEnum_FWD_DEFINED__
94 typedef interface IAssemblyEnum IAssemblyEnum;
95 #ifdef __cplusplus
96 interface IAssemblyEnum;
97 #endif /* __cplusplus */
98 #endif
99 
100 #ifndef __IAssemblyName_FWD_DEFINED__
101 #define __IAssemblyName_FWD_DEFINED__
102 typedef interface IAssemblyName IAssemblyName;
103 #ifdef __cplusplus
104 interface IAssemblyName;
105 #endif /* __cplusplus */
106 #endif
107 
108 typedef enum __WIDL_fusion_generated_name_00000002 {
109     ASM_CACHE_ZAP = 0x1,
110     ASM_CACHE_GAC = 0x2,
111     ASM_CACHE_DOWNLOAD = 0x4,
112     ASM_CACHE_ROOT = 0x8,
113     ASM_CACHE_ROOT_EX = 0x80
114 } ASM_CACHE_FLAGS;
115 typedef enum __WIDL_fusion_generated_name_00000003 {
116     peNone = 0x0,
117     peMSIL = 0x1,
118     peI386 = 0x2,
119     peIA64 = 0x3,
120     peAMD64 = 0x4,
121     peARM = 0x5,
122     peInvalid = 0xffffffff
123 } PEKIND;
124 typedef enum _tagAssemblyComparisonResult {
125     ACR_Unknown = 0,
126     ACR_EquivalentFullMatch = 1,
127     ACR_EquivalentWeakNamed = 2,
128     ACR_EquivalentFXUnified = 3,
129     ACR_EquivalentUnified = 4,
130     ACR_NonEquivalentVersion = 5,
131     ACR_NonEquivalent = 6,
132     ACR_EquivalentPartialMatch = 7,
133     ACR_EquivalentPartialWeakNamed = 8,
134     ACR_EquivalentPartialUnified = 9,
135     ACR_EquivalentPartialFXUnified = 10,
136     ACR_NonEquivalentPartialVersion = 11
137 } AssemblyComparisonResult;
138 /*****************************************************************************
139  * IAssemblyCache interface
140  */
141 #ifndef __IAssemblyCache_INTERFACE_DEFINED__
142 #define __IAssemblyCache_INTERFACE_DEFINED__
143 
144 typedef struct _FUSION_INSTALL_REFERENCE_ {
145     DWORD cbSize;
146     DWORD dwFlags;
147     GUID guidScheme;
148     LPCWSTR szIdentifier;
149     LPCWSTR szNonCannonicalData;
150 } FUSION_INSTALL_REFERENCE;
151 typedef struct _FUSION_INSTALL_REFERENCE_ *LPFUSION_INSTALL_REFERENCE;
152 typedef const FUSION_INSTALL_REFERENCE *LPCFUSION_INSTALL_REFERENCE;
153 typedef struct _ASSEMBLY_INFO {
154     ULONG cbAssemblyInfo;
155     DWORD dwAssemblyFlags;
156     ULARGE_INTEGER uliAssemblySizeInKB;
157     LPWSTR pszCurrentAssemblyPathBuf;
158     ULONG cchBuf;
159 } ASSEMBLY_INFO;
160 #define IASSEMBLYCACHE_INSTALL_FLAG_REFRESH       0x00000001
161 #define IASSEMBLYCACHE_INSTALL_FLAG_FORCE_REFRESH 0x00000002
162 #define IASSEMBLYCACHE_UNINSTALL_DISPOSITION_UNINSTALLED 1
163 #define IASSEMBLYCACHE_UNINSTALL_DISPOSITION_STILL_IN_USE 2
164 #define IASSEMBLYCACHE_UNINSTALL_DISPOSITION_ALREADY_UNINSTALLED 3
165 #define IASSEMBLYCACHE_UNINSTALL_DISPOSITION_DELETE_PENDING 4
166 #define IASSEMBLYCACHE_UNINSTALL_DISPOSITION_HAS_INSTALL_REFERENCES 5
167 #define IASSEMBLYCACHE_UNINSTALL_DISPOSITION_REFERENCE_NOT_FOUND 6
168 #define QUERYASMINFO_FLAG_VALIDATE   0x00000001
169 #define QUERYASMINFO_FLAG_GETSIZE    0x00000002
170 #define ASSEMBLYINFO_FLAG_INSTALLED       0x00000001
171 #define ASSEMBLYINFO_FLAG_PAYLOADRESIDENT 0x00000002
172 DEFINE_GUID(IID_IAssemblyCache, 0xe707dcde, 0xd1cd, 0x11d2, 0xba,0xb9, 0x00,0xc0,0x4f,0x8e,0xce,0xae);
173 #if defined(__cplusplus) && !defined(CINTERFACE)
174 MIDL_INTERFACE("e707dcde-d1cd-11d2-bab9-00c04f8eceae")
175 IAssemblyCache : public IUnknown
176 {
177     virtual HRESULT STDMETHODCALLTYPE UninstallAssembly(
178         DWORD dwFlags,
179         LPCWSTR pszAssemblyName,
180         LPCFUSION_INSTALL_REFERENCE pRefData,
181         ULONG *pulDisposition) = 0;
182 
183     virtual HRESULT STDMETHODCALLTYPE QueryAssemblyInfo(
184         DWORD dwFlags,
185         LPCWSTR pszAssemblyName,
186         ASSEMBLY_INFO *pAsmInfo) = 0;
187 
188     virtual HRESULT STDMETHODCALLTYPE CreateAssemblyCacheItem(
189         DWORD dwFlags,
190         PVOID pvReserved,
191         IAssemblyCacheItem **ppAsmItem,
192         LPCWSTR pszAssemblyName) = 0;
193 
194     virtual HRESULT STDMETHODCALLTYPE CreateAssemblyScavenger(
195         IUnknown **ppUnkReserved) = 0;
196 
197     virtual HRESULT STDMETHODCALLTYPE InstallAssembly(
198         DWORD dwFlags,
199         LPCWSTR pszManifestFilePath,
200         LPCFUSION_INSTALL_REFERENCE pRefData) = 0;
201 
202 };
203 #ifdef __CRT_UUID_DECL
204 __CRT_UUID_DECL(IAssemblyCache, 0xe707dcde, 0xd1cd, 0x11d2, 0xba,0xb9, 0x00,0xc0,0x4f,0x8e,0xce,0xae)
205 #endif
206 #else
207 typedef struct IAssemblyCacheVtbl {
208     BEGIN_INTERFACE
209 
210     /*** IUnknown methods ***/
211     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
212         IAssemblyCache *This,
213         REFIID riid,
214         void **ppvObject);
215 
216     ULONG (STDMETHODCALLTYPE *AddRef)(
217         IAssemblyCache *This);
218 
219     ULONG (STDMETHODCALLTYPE *Release)(
220         IAssemblyCache *This);
221 
222     /*** IAssemblyCache methods ***/
223     HRESULT (STDMETHODCALLTYPE *UninstallAssembly)(
224         IAssemblyCache *This,
225         DWORD dwFlags,
226         LPCWSTR pszAssemblyName,
227         LPCFUSION_INSTALL_REFERENCE pRefData,
228         ULONG *pulDisposition);
229 
230     HRESULT (STDMETHODCALLTYPE *QueryAssemblyInfo)(
231         IAssemblyCache *This,
232         DWORD dwFlags,
233         LPCWSTR pszAssemblyName,
234         ASSEMBLY_INFO *pAsmInfo);
235 
236     HRESULT (STDMETHODCALLTYPE *CreateAssemblyCacheItem)(
237         IAssemblyCache *This,
238         DWORD dwFlags,
239         PVOID pvReserved,
240         IAssemblyCacheItem **ppAsmItem,
241         LPCWSTR pszAssemblyName);
242 
243     HRESULT (STDMETHODCALLTYPE *CreateAssemblyScavenger)(
244         IAssemblyCache *This,
245         IUnknown **ppUnkReserved);
246 
247     HRESULT (STDMETHODCALLTYPE *InstallAssembly)(
248         IAssemblyCache *This,
249         DWORD dwFlags,
250         LPCWSTR pszManifestFilePath,
251         LPCFUSION_INSTALL_REFERENCE pRefData);
252 
253     END_INTERFACE
254 } IAssemblyCacheVtbl;
255 
256 interface IAssemblyCache {
257     CONST_VTBL IAssemblyCacheVtbl* lpVtbl;
258 };
259 
260 #ifdef COBJMACROS
261 #ifndef WIDL_C_INLINE_WRAPPERS
262 /*** IUnknown methods ***/
263 #define IAssemblyCache_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
264 #define IAssemblyCache_AddRef(This) (This)->lpVtbl->AddRef(This)
265 #define IAssemblyCache_Release(This) (This)->lpVtbl->Release(This)
266 /*** IAssemblyCache methods ***/
267 #define IAssemblyCache_UninstallAssembly(This,dwFlags,pszAssemblyName,pRefData,pulDisposition) (This)->lpVtbl->UninstallAssembly(This,dwFlags,pszAssemblyName,pRefData,pulDisposition)
268 #define IAssemblyCache_QueryAssemblyInfo(This,dwFlags,pszAssemblyName,pAsmInfo) (This)->lpVtbl->QueryAssemblyInfo(This,dwFlags,pszAssemblyName,pAsmInfo)
269 #define IAssemblyCache_CreateAssemblyCacheItem(This,dwFlags,pvReserved,ppAsmItem,pszAssemblyName) (This)->lpVtbl->CreateAssemblyCacheItem(This,dwFlags,pvReserved,ppAsmItem,pszAssemblyName)
270 #define IAssemblyCache_CreateAssemblyScavenger(This,ppUnkReserved) (This)->lpVtbl->CreateAssemblyScavenger(This,ppUnkReserved)
271 #define IAssemblyCache_InstallAssembly(This,dwFlags,pszManifestFilePath,pRefData) (This)->lpVtbl->InstallAssembly(This,dwFlags,pszManifestFilePath,pRefData)
272 #else
273 /*** IUnknown methods ***/
274 static FORCEINLINE HRESULT IAssemblyCache_QueryInterface(IAssemblyCache* This,REFIID riid,void **ppvObject) {
275     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
276 }
277 static FORCEINLINE ULONG IAssemblyCache_AddRef(IAssemblyCache* This) {
278     return This->lpVtbl->AddRef(This);
279 }
280 static FORCEINLINE ULONG IAssemblyCache_Release(IAssemblyCache* This) {
281     return This->lpVtbl->Release(This);
282 }
283 /*** IAssemblyCache methods ***/
284 static FORCEINLINE HRESULT IAssemblyCache_UninstallAssembly(IAssemblyCache* This,DWORD dwFlags,LPCWSTR pszAssemblyName,LPCFUSION_INSTALL_REFERENCE pRefData,ULONG *pulDisposition) {
285     return This->lpVtbl->UninstallAssembly(This,dwFlags,pszAssemblyName,pRefData,pulDisposition);
286 }
287 static FORCEINLINE HRESULT IAssemblyCache_QueryAssemblyInfo(IAssemblyCache* This,DWORD dwFlags,LPCWSTR pszAssemblyName,ASSEMBLY_INFO *pAsmInfo) {
288     return This->lpVtbl->QueryAssemblyInfo(This,dwFlags,pszAssemblyName,pAsmInfo);
289 }
290 static FORCEINLINE HRESULT IAssemblyCache_CreateAssemblyCacheItem(IAssemblyCache* This,DWORD dwFlags,PVOID pvReserved,IAssemblyCacheItem **ppAsmItem,LPCWSTR pszAssemblyName) {
291     return This->lpVtbl->CreateAssemblyCacheItem(This,dwFlags,pvReserved,ppAsmItem,pszAssemblyName);
292 }
293 static FORCEINLINE HRESULT IAssemblyCache_CreateAssemblyScavenger(IAssemblyCache* This,IUnknown **ppUnkReserved) {
294     return This->lpVtbl->CreateAssemblyScavenger(This,ppUnkReserved);
295 }
296 static FORCEINLINE HRESULT IAssemblyCache_InstallAssembly(IAssemblyCache* This,DWORD dwFlags,LPCWSTR pszManifestFilePath,LPCFUSION_INSTALL_REFERENCE pRefData) {
297     return This->lpVtbl->InstallAssembly(This,dwFlags,pszManifestFilePath,pRefData);
298 }
299 #endif
300 #endif
301 
302 #endif
303 
304 
305 #endif  /* __IAssemblyCache_INTERFACE_DEFINED__ */
306 
307 /*****************************************************************************
308  * IAssemblyCacheItem interface
309  */
310 #ifndef __IAssemblyCacheItem_INTERFACE_DEFINED__
311 #define __IAssemblyCacheItem_INTERFACE_DEFINED__
312 
313 #define STREAM_FORMAT_COMPLIB_MODULE    0
314 #define STREAM_FORMAT_COMPLIB_MANIFEST  1
315 #define STREAM_FORMAT_WIN32_MODULE      2
316 #define STREAM_FORMAT_WIN32_MANIFEST    4
317 #define IASSEMBLYCACHEITEM_COMMIT_FLAG_REFRESH       0x00000001
318 #define IASSEMBLYCACHEITEM_COMMIT_FLAG_FORCE_REFRESH 0x00000002
319 #define IASSEMBLYCACHEITEM_COMMIT_DISPOSITION_INSTALLED 1
320 #define IASSEMBLYCACHEITEM_COMMIT_DISPOSITION_REFRESHED 2
321 #define IASSEMBLYCACHEITEM_COMMIT_DISPOSITION_ALREADY_INSTALLED 3
322 DEFINE_GUID(IID_IAssemblyCacheItem, 0x9e3aaeb4, 0xd1cd, 0x11d2, 0xba,0xb9, 0x00,0xc0,0x4f,0x8e,0xce,0xae);
323 #if defined(__cplusplus) && !defined(CINTERFACE)
324 MIDL_INTERFACE("9e3aaeb4-d1cd-11d2-bab9-00c04f8eceae")
325 IAssemblyCacheItem : public IUnknown
326 {
327     virtual HRESULT STDMETHODCALLTYPE CreateStream(
328         DWORD dwFlags,
329         LPCWSTR pszStreamName,
330         DWORD dwFormat,
331         DWORD dwFormatFlags,
332         IStream **ppIStream,
333         ULARGE_INTEGER *puliMaxSize) = 0;
334 
335     virtual HRESULT STDMETHODCALLTYPE Commit(
336         DWORD dwFlags,
337         ULONG *pulDisposition) = 0;
338 
339     virtual HRESULT STDMETHODCALLTYPE AbortItem(
340         ) = 0;
341 
342 };
343 #ifdef __CRT_UUID_DECL
344 __CRT_UUID_DECL(IAssemblyCacheItem, 0x9e3aaeb4, 0xd1cd, 0x11d2, 0xba,0xb9, 0x00,0xc0,0x4f,0x8e,0xce,0xae)
345 #endif
346 #else
347 typedef struct IAssemblyCacheItemVtbl {
348     BEGIN_INTERFACE
349 
350     /*** IUnknown methods ***/
351     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
352         IAssemblyCacheItem *This,
353         REFIID riid,
354         void **ppvObject);
355 
356     ULONG (STDMETHODCALLTYPE *AddRef)(
357         IAssemblyCacheItem *This);
358 
359     ULONG (STDMETHODCALLTYPE *Release)(
360         IAssemblyCacheItem *This);
361 
362     /*** IAssemblyCacheItem methods ***/
363     HRESULT (STDMETHODCALLTYPE *CreateStream)(
364         IAssemblyCacheItem *This,
365         DWORD dwFlags,
366         LPCWSTR pszStreamName,
367         DWORD dwFormat,
368         DWORD dwFormatFlags,
369         IStream **ppIStream,
370         ULARGE_INTEGER *puliMaxSize);
371 
372     HRESULT (STDMETHODCALLTYPE *Commit)(
373         IAssemblyCacheItem *This,
374         DWORD dwFlags,
375         ULONG *pulDisposition);
376 
377     HRESULT (STDMETHODCALLTYPE *AbortItem)(
378         IAssemblyCacheItem *This);
379 
380     END_INTERFACE
381 } IAssemblyCacheItemVtbl;
382 
383 interface IAssemblyCacheItem {
384     CONST_VTBL IAssemblyCacheItemVtbl* lpVtbl;
385 };
386 
387 #ifdef COBJMACROS
388 #ifndef WIDL_C_INLINE_WRAPPERS
389 /*** IUnknown methods ***/
390 #define IAssemblyCacheItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
391 #define IAssemblyCacheItem_AddRef(This) (This)->lpVtbl->AddRef(This)
392 #define IAssemblyCacheItem_Release(This) (This)->lpVtbl->Release(This)
393 /*** IAssemblyCacheItem methods ***/
394 #define IAssemblyCacheItem_CreateStream(This,dwFlags,pszStreamName,dwFormat,dwFormatFlags,ppIStream,puliMaxSize) (This)->lpVtbl->CreateStream(This,dwFlags,pszStreamName,dwFormat,dwFormatFlags,ppIStream,puliMaxSize)
395 #define IAssemblyCacheItem_Commit(This,dwFlags,pulDisposition) (This)->lpVtbl->Commit(This,dwFlags,pulDisposition)
396 #define IAssemblyCacheItem_AbortItem(This) (This)->lpVtbl->AbortItem(This)
397 #else
398 /*** IUnknown methods ***/
399 static FORCEINLINE HRESULT IAssemblyCacheItem_QueryInterface(IAssemblyCacheItem* This,REFIID riid,void **ppvObject) {
400     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
401 }
402 static FORCEINLINE ULONG IAssemblyCacheItem_AddRef(IAssemblyCacheItem* This) {
403     return This->lpVtbl->AddRef(This);
404 }
405 static FORCEINLINE ULONG IAssemblyCacheItem_Release(IAssemblyCacheItem* This) {
406     return This->lpVtbl->Release(This);
407 }
408 /*** IAssemblyCacheItem methods ***/
409 static FORCEINLINE HRESULT IAssemblyCacheItem_CreateStream(IAssemblyCacheItem* This,DWORD dwFlags,LPCWSTR pszStreamName,DWORD dwFormat,DWORD dwFormatFlags,IStream **ppIStream,ULARGE_INTEGER *puliMaxSize) {
410     return This->lpVtbl->CreateStream(This,dwFlags,pszStreamName,dwFormat,dwFormatFlags,ppIStream,puliMaxSize);
411 }
412 static FORCEINLINE HRESULT IAssemblyCacheItem_Commit(IAssemblyCacheItem* This,DWORD dwFlags,ULONG *pulDisposition) {
413     return This->lpVtbl->Commit(This,dwFlags,pulDisposition);
414 }
415 static FORCEINLINE HRESULT IAssemblyCacheItem_AbortItem(IAssemblyCacheItem* This) {
416     return This->lpVtbl->AbortItem(This);
417 }
418 #endif
419 #endif
420 
421 #endif
422 
423 
424 #endif  /* __IAssemblyCacheItem_INTERFACE_DEFINED__ */
425 
426 /*****************************************************************************
427  * IAssemblyName interface
428  */
429 #ifndef __IAssemblyName_INTERFACE_DEFINED__
430 #define __IAssemblyName_INTERFACE_DEFINED__
431 
432 typedef IAssemblyName *LPASSEMBLYNAME;
433 typedef enum __WIDL_fusion_generated_name_00000004 {
434     CANOF_PARSE_DISPLAY_NAME = 0x1,
435     CANOF_SET_DEFAULT_VALUES = 0x2,
436     CANOF_VERIFY_FRIEND_ASSEMBLYNAME = 0x4,
437     CANOF_PARSE_FRIEND_DISPLAY_NAME = CANOF_PARSE_DISPLAY_NAME | CANOF_VERIFY_FRIEND_ASSEMBLYNAME
438 } CREATE_ASM_NAME_OBJ_FLAGS;
439 typedef enum __WIDL_fusion_generated_name_00000005 {
440     ASM_NAME_PUBLIC_KEY = 0,
441     ASM_NAME_PUBLIC_KEY_TOKEN = 1,
442     ASM_NAME_HASH_VALUE = 2,
443     ASM_NAME_NAME = 3,
444     ASM_NAME_MAJOR_VERSION = 4,
445     ASM_NAME_MINOR_VERSION = 5,
446     ASM_NAME_BUILD_NUMBER = 6,
447     ASM_NAME_REVISION_NUMBER = 7,
448     ASM_NAME_CULTURE = 8,
449     ASM_NAME_PROCESSOR_ID_ARRAY = 9,
450     ASM_NAME_OSINFO_ARRAY = 10,
451     ASM_NAME_HASH_ALGID = 11,
452     ASM_NAME_ALIAS = 12,
453     ASM_NAME_CODEBASE_URL = 13,
454     ASM_NAME_CODEBASE_LASTMOD = 14,
455     ASM_NAME_NULL_PUBLIC_KEY = 15,
456     ASM_NAME_NULL_PUBLIC_KEY_TOKEN = 16,
457     ASM_NAME_CUSTOM = 17,
458     ASM_NAME_NULL_CUSTOM = 18,
459     ASM_NAME_MVID = 19,
460     ASM_NAME_FILE_MAJOR_VERSION = 20,
461     ASM_NAME_FILE_MINOR_VERSION = 21,
462     ASM_NAME_FILE_BUILD_NUMBER = 22,
463     ASM_NAME_FILE_REVISION_NUMBER = 23,
464     ASM_NAME_RETARGET = 24,
465     ASM_NAME_SIGNATURE_BLOB = 25,
466     ASM_NAME_CONFIG_MASK = 26,
467     ASM_NAME_ARCHITECTURE = 27,
468     ASM_NAME_MAX_PARAMS = 28
469 } ASM_NAME;
470 typedef enum __WIDL_fusion_generated_name_00000006 {
471     ASM_DISPLAYF_VERSION = 0x1,
472     ASM_DISPLAYF_CULTURE = 0x2,
473     ASM_DISPLAYF_PUBLIC_KEY_TOKEN = 0x4,
474     ASM_DISPLAYF_PUBLIC_KEY = 0x8,
475     ASM_DISPLAYF_CUSTOM = 0x10,
476     ASM_DISPLAYF_PROCESSORARCHITECTURE = 0x20,
477     ASM_DISPLAYF_LANGUAGEID = 0x40,
478     ASM_DISPLAYF_RETARGET = 0x80,
479     ASM_DISPLAYF_CONFIG_MASK = 0x100,
480     ASM_DISPLAYF_MVID = 0x200,
481     ASM_DISPLAYF_FULL = (((ASM_DISPLAYF_VERSION | ASM_DISPLAYF_CULTURE) | ASM_DISPLAYF_PUBLIC_KEY_TOKEN) | ASM_DISPLAYF_RETARGET) | ASM_DISPLAYF_PROCESSORARCHITECTURE
482 } ASM_DISPLAY_FLAGS;
483 typedef enum __WIDL_fusion_generated_name_00000007 {
484     ASM_CMPF_NAME = 0x1,
485     ASM_CMPF_MAJOR_VERSION = 0x2,
486     ASM_CMPF_MINOR_VERSION = 0x4,
487     ASM_CMPF_BUILD_NUMBER = 0x8,
488     ASM_CMPF_REVISION_NUMBER = 0x10,
489     ASM_CMPF_VERSION = ((ASM_CMPF_MAJOR_VERSION | ASM_CMPF_MINOR_VERSION) | ASM_CMPF_BUILD_NUMBER) | ASM_CMPF_REVISION_NUMBER,
490     ASM_CMPF_PUBLIC_KEY_TOKEN = 0x20,
491     ASM_CMPF_CULTURE = 0x40,
492     ASM_CMPF_CUSTOM = 0x80,
493     ASM_CMPF_DEFAULT = 0x100,
494     ASM_CMPF_RETARGET = 0x200,
495     ASM_CMPF_ARCHITECTURE = 0x400,
496     ASM_CMPF_CONFIG_MASK = 0x800,
497     ASM_CMPF_MVID = 0x1000,
498     ASM_CMPF_SIGNATURE = 0x2000,
499     ASM_CMPF_IL_ALL = ((ASM_CMPF_NAME | ASM_CMPF_VERSION) | ASM_CMPF_PUBLIC_KEY_TOKEN) | ASM_CMPF_CULTURE,
500     ASM_CMPF_IL_NO_VERSION = (ASM_CMPF_NAME | ASM_CMPF_PUBLIC_KEY_TOKEN) | ASM_CMPF_CULTURE
501 } ASM_CMP_FLAGS;
502 DEFINE_GUID(IID_IAssemblyName, 0xcd193bc0, 0xb4bc, 0x11d2, 0x98,0x33, 0x00,0xc0,0x4f,0xc3,0x1d,0x2e);
503 #if defined(__cplusplus) && !defined(CINTERFACE)
504 MIDL_INTERFACE("cd193bc0-b4bc-11d2-9833-00c04fc31d2e")
505 IAssemblyName : public IUnknown
506 {
507     virtual HRESULT STDMETHODCALLTYPE SetProperty(
508         DWORD PropertyId,
509         LPVOID pvProperty,
510         DWORD cbProperty) = 0;
511 
512     virtual HRESULT STDMETHODCALLTYPE GetProperty(
513         DWORD PropertyId,
514         LPVOID pvProperty,
515         LPDWORD pcbProperty) = 0;
516 
517     virtual HRESULT STDMETHODCALLTYPE Finalize(
518         ) = 0;
519 
520     virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
521         LPOLESTR szDisplayName,
522         LPDWORD pccDisplayName,
523         DWORD dwDisplayFlags) = 0;
524 
525     virtual HRESULT STDMETHODCALLTYPE Reserved(
526         REFIID refIID,
527         IUnknown *pUnkReserved1,
528         IUnknown *pUnkReserved2,
529         LPCOLESTR szReserved,
530         LONGLONG llReserved,
531         LPVOID pvReserved,
532         DWORD cbReserved,
533         LPVOID *ppReserved) = 0;
534 
535     virtual HRESULT STDMETHODCALLTYPE GetName(
536         LPDWORD lpcwBuffer,
537         WCHAR *pwzName) = 0;
538 
539     virtual HRESULT STDMETHODCALLTYPE GetVersion(
540         LPDWORD pdwVersionHi,
541         LPDWORD pdwVersionLow) = 0;
542 
543     virtual HRESULT STDMETHODCALLTYPE IsEqual(
544         IAssemblyName *pName,
545         DWORD dwCmpFlags) = 0;
546 
547     virtual HRESULT STDMETHODCALLTYPE Clone(
548         IAssemblyName **pName) = 0;
549 
550 };
551 #ifdef __CRT_UUID_DECL
552 __CRT_UUID_DECL(IAssemblyName, 0xcd193bc0, 0xb4bc, 0x11d2, 0x98,0x33, 0x00,0xc0,0x4f,0xc3,0x1d,0x2e)
553 #endif
554 #else
555 typedef struct IAssemblyNameVtbl {
556     BEGIN_INTERFACE
557 
558     /*** IUnknown methods ***/
559     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
560         IAssemblyName *This,
561         REFIID riid,
562         void **ppvObject);
563 
564     ULONG (STDMETHODCALLTYPE *AddRef)(
565         IAssemblyName *This);
566 
567     ULONG (STDMETHODCALLTYPE *Release)(
568         IAssemblyName *This);
569 
570     /*** IAssemblyName methods ***/
571     HRESULT (STDMETHODCALLTYPE *SetProperty)(
572         IAssemblyName *This,
573         DWORD PropertyId,
574         LPVOID pvProperty,
575         DWORD cbProperty);
576 
577     HRESULT (STDMETHODCALLTYPE *GetProperty)(
578         IAssemblyName *This,
579         DWORD PropertyId,
580         LPVOID pvProperty,
581         LPDWORD pcbProperty);
582 
583     HRESULT (STDMETHODCALLTYPE *Finalize)(
584         IAssemblyName *This);
585 
586     HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
587         IAssemblyName *This,
588         LPOLESTR szDisplayName,
589         LPDWORD pccDisplayName,
590         DWORD dwDisplayFlags);
591 
592     HRESULT (STDMETHODCALLTYPE *Reserved)(
593         IAssemblyName *This,
594         REFIID refIID,
595         IUnknown *pUnkReserved1,
596         IUnknown *pUnkReserved2,
597         LPCOLESTR szReserved,
598         LONGLONG llReserved,
599         LPVOID pvReserved,
600         DWORD cbReserved,
601         LPVOID *ppReserved);
602 
603     HRESULT (STDMETHODCALLTYPE *GetName)(
604         IAssemblyName *This,
605         LPDWORD lpcwBuffer,
606         WCHAR *pwzName);
607 
608     HRESULT (STDMETHODCALLTYPE *GetVersion)(
609         IAssemblyName *This,
610         LPDWORD pdwVersionHi,
611         LPDWORD pdwVersionLow);
612 
613     HRESULT (STDMETHODCALLTYPE *IsEqual)(
614         IAssemblyName *This,
615         IAssemblyName *pName,
616         DWORD dwCmpFlags);
617 
618     HRESULT (STDMETHODCALLTYPE *Clone)(
619         IAssemblyName *This,
620         IAssemblyName **pName);
621 
622     END_INTERFACE
623 } IAssemblyNameVtbl;
624 
625 interface IAssemblyName {
626     CONST_VTBL IAssemblyNameVtbl* lpVtbl;
627 };
628 
629 #ifdef COBJMACROS
630 #ifndef WIDL_C_INLINE_WRAPPERS
631 /*** IUnknown methods ***/
632 #define IAssemblyName_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
633 #define IAssemblyName_AddRef(This) (This)->lpVtbl->AddRef(This)
634 #define IAssemblyName_Release(This) (This)->lpVtbl->Release(This)
635 /*** IAssemblyName methods ***/
636 #define IAssemblyName_SetProperty(This,PropertyId,pvProperty,cbProperty) (This)->lpVtbl->SetProperty(This,PropertyId,pvProperty,cbProperty)
637 #define IAssemblyName_GetProperty(This,PropertyId,pvProperty,pcbProperty) (This)->lpVtbl->GetProperty(This,PropertyId,pvProperty,pcbProperty)
638 #define IAssemblyName_Finalize(This) (This)->lpVtbl->Finalize(This)
639 #define IAssemblyName_GetDisplayName(This,szDisplayName,pccDisplayName,dwDisplayFlags) (This)->lpVtbl->GetDisplayName(This,szDisplayName,pccDisplayName,dwDisplayFlags)
640 #define IAssemblyName_Reserved(This,refIID,pUnkReserved1,pUnkReserved2,szReserved,llReserved,pvReserved,cbReserved,ppReserved) (This)->lpVtbl->Reserved(This,refIID,pUnkReserved1,pUnkReserved2,szReserved,llReserved,pvReserved,cbReserved,ppReserved)
641 #define IAssemblyName_GetName(This,lpcwBuffer,pwzName) (This)->lpVtbl->GetName(This,lpcwBuffer,pwzName)
642 #define IAssemblyName_GetVersion(This,pdwVersionHi,pdwVersionLow) (This)->lpVtbl->GetVersion(This,pdwVersionHi,pdwVersionLow)
643 #define IAssemblyName_IsEqual(This,pName,dwCmpFlags) (This)->lpVtbl->IsEqual(This,pName,dwCmpFlags)
644 #define IAssemblyName_Clone(This,pName) (This)->lpVtbl->Clone(This,pName)
645 #else
646 /*** IUnknown methods ***/
647 static FORCEINLINE HRESULT IAssemblyName_QueryInterface(IAssemblyName* This,REFIID riid,void **ppvObject) {
648     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
649 }
650 static FORCEINLINE ULONG IAssemblyName_AddRef(IAssemblyName* This) {
651     return This->lpVtbl->AddRef(This);
652 }
653 static FORCEINLINE ULONG IAssemblyName_Release(IAssemblyName* This) {
654     return This->lpVtbl->Release(This);
655 }
656 /*** IAssemblyName methods ***/
657 static FORCEINLINE HRESULT IAssemblyName_SetProperty(IAssemblyName* This,DWORD PropertyId,LPVOID pvProperty,DWORD cbProperty) {
658     return This->lpVtbl->SetProperty(This,PropertyId,pvProperty,cbProperty);
659 }
660 static FORCEINLINE HRESULT IAssemblyName_GetProperty(IAssemblyName* This,DWORD PropertyId,LPVOID pvProperty,LPDWORD pcbProperty) {
661     return This->lpVtbl->GetProperty(This,PropertyId,pvProperty,pcbProperty);
662 }
663 static FORCEINLINE HRESULT IAssemblyName_Finalize(IAssemblyName* This) {
664     return This->lpVtbl->Finalize(This);
665 }
666 static FORCEINLINE HRESULT IAssemblyName_GetDisplayName(IAssemblyName* This,LPOLESTR szDisplayName,LPDWORD pccDisplayName,DWORD dwDisplayFlags) {
667     return This->lpVtbl->GetDisplayName(This,szDisplayName,pccDisplayName,dwDisplayFlags);
668 }
669 static FORCEINLINE HRESULT IAssemblyName_Reserved(IAssemblyName* This,REFIID refIID,IUnknown *pUnkReserved1,IUnknown *pUnkReserved2,LPCOLESTR szReserved,LONGLONG llReserved,LPVOID pvReserved,DWORD cbReserved,LPVOID *ppReserved) {
670     return This->lpVtbl->Reserved(This,refIID,pUnkReserved1,pUnkReserved2,szReserved,llReserved,pvReserved,cbReserved,ppReserved);
671 }
672 static FORCEINLINE HRESULT IAssemblyName_GetName(IAssemblyName* This,LPDWORD lpcwBuffer,WCHAR *pwzName) {
673     return This->lpVtbl->GetName(This,lpcwBuffer,pwzName);
674 }
675 static FORCEINLINE HRESULT IAssemblyName_GetVersion(IAssemblyName* This,LPDWORD pdwVersionHi,LPDWORD pdwVersionLow) {
676     return This->lpVtbl->GetVersion(This,pdwVersionHi,pdwVersionLow);
677 }
678 static FORCEINLINE HRESULT IAssemblyName_IsEqual(IAssemblyName* This,IAssemblyName *pName,DWORD dwCmpFlags) {
679     return This->lpVtbl->IsEqual(This,pName,dwCmpFlags);
680 }
681 static FORCEINLINE HRESULT IAssemblyName_Clone(IAssemblyName* This,IAssemblyName **pName) {
682     return This->lpVtbl->Clone(This,pName);
683 }
684 #endif
685 #endif
686 
687 #endif
688 
689 
690 #endif  /* __IAssemblyName_INTERFACE_DEFINED__ */
691 
692 /*****************************************************************************
693  * IAssemblyEnum interface
694  */
695 #ifndef __IAssemblyEnum_INTERFACE_DEFINED__
696 #define __IAssemblyEnum_INTERFACE_DEFINED__
697 
698 DEFINE_GUID(IID_IAssemblyEnum, 0x21b8916c, 0xf28e, 0x11d2, 0xa4,0x73, 0x00,0xc0,0x4f,0x8e,0xf4,0x48);
699 #if defined(__cplusplus) && !defined(CINTERFACE)
700 MIDL_INTERFACE("21b8916c-f28e-11d2-a473-00c04f8ef448")
701 IAssemblyEnum : public IUnknown
702 {
703     virtual HRESULT STDMETHODCALLTYPE GetNextAssembly(
704         LPVOID pvReserved,
705         IAssemblyName **ppName,
706         DWORD dwFlags) = 0;
707 
708     virtual HRESULT STDMETHODCALLTYPE Reset(
709         ) = 0;
710 
711     virtual HRESULT STDMETHODCALLTYPE Clone(
712         IAssemblyEnum **ppEnum) = 0;
713 
714 };
715 #ifdef __CRT_UUID_DECL
716 __CRT_UUID_DECL(IAssemblyEnum, 0x21b8916c, 0xf28e, 0x11d2, 0xa4,0x73, 0x00,0xc0,0x4f,0x8e,0xf4,0x48)
717 #endif
718 #else
719 typedef struct IAssemblyEnumVtbl {
720     BEGIN_INTERFACE
721 
722     /*** IUnknown methods ***/
723     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
724         IAssemblyEnum *This,
725         REFIID riid,
726         void **ppvObject);
727 
728     ULONG (STDMETHODCALLTYPE *AddRef)(
729         IAssemblyEnum *This);
730 
731     ULONG (STDMETHODCALLTYPE *Release)(
732         IAssemblyEnum *This);
733 
734     /*** IAssemblyEnum methods ***/
735     HRESULT (STDMETHODCALLTYPE *GetNextAssembly)(
736         IAssemblyEnum *This,
737         LPVOID pvReserved,
738         IAssemblyName **ppName,
739         DWORD dwFlags);
740 
741     HRESULT (STDMETHODCALLTYPE *Reset)(
742         IAssemblyEnum *This);
743 
744     HRESULT (STDMETHODCALLTYPE *Clone)(
745         IAssemblyEnum *This,
746         IAssemblyEnum **ppEnum);
747 
748     END_INTERFACE
749 } IAssemblyEnumVtbl;
750 
751 interface IAssemblyEnum {
752     CONST_VTBL IAssemblyEnumVtbl* lpVtbl;
753 };
754 
755 #ifdef COBJMACROS
756 #ifndef WIDL_C_INLINE_WRAPPERS
757 /*** IUnknown methods ***/
758 #define IAssemblyEnum_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
759 #define IAssemblyEnum_AddRef(This) (This)->lpVtbl->AddRef(This)
760 #define IAssemblyEnum_Release(This) (This)->lpVtbl->Release(This)
761 /*** IAssemblyEnum methods ***/
762 #define IAssemblyEnum_GetNextAssembly(This,pvReserved,ppName,dwFlags) (This)->lpVtbl->GetNextAssembly(This,pvReserved,ppName,dwFlags)
763 #define IAssemblyEnum_Reset(This) (This)->lpVtbl->Reset(This)
764 #define IAssemblyEnum_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
765 #else
766 /*** IUnknown methods ***/
767 static FORCEINLINE HRESULT IAssemblyEnum_QueryInterface(IAssemblyEnum* This,REFIID riid,void **ppvObject) {
768     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
769 }
770 static FORCEINLINE ULONG IAssemblyEnum_AddRef(IAssemblyEnum* This) {
771     return This->lpVtbl->AddRef(This);
772 }
773 static FORCEINLINE ULONG IAssemblyEnum_Release(IAssemblyEnum* This) {
774     return This->lpVtbl->Release(This);
775 }
776 /*** IAssemblyEnum methods ***/
777 static FORCEINLINE HRESULT IAssemblyEnum_GetNextAssembly(IAssemblyEnum* This,LPVOID pvReserved,IAssemblyName **ppName,DWORD dwFlags) {
778     return This->lpVtbl->GetNextAssembly(This,pvReserved,ppName,dwFlags);
779 }
780 static FORCEINLINE HRESULT IAssemblyEnum_Reset(IAssemblyEnum* This) {
781     return This->lpVtbl->Reset(This);
782 }
783 static FORCEINLINE HRESULT IAssemblyEnum_Clone(IAssemblyEnum* This,IAssemblyEnum **ppEnum) {
784     return This->lpVtbl->Clone(This,ppEnum);
785 }
786 #endif
787 #endif
788 
789 #endif
790 
791 
792 #endif  /* __IAssemblyEnum_INTERFACE_DEFINED__ */
793 
794 /*****************************************************************************
795  * IInstallReferenceItem interface
796  */
797 #ifndef __IInstallReferenceItem_INTERFACE_DEFINED__
798 #define __IInstallReferenceItem_INTERFACE_DEFINED__
799 
800 DEFINE_GUID(IID_IInstallReferenceItem, 0x582dac66, 0xe678, 0x449f, 0xab,0xa6, 0x6f,0xaa,0xec,0x8a,0x93,0x94);
801 #if defined(__cplusplus) && !defined(CINTERFACE)
802 MIDL_INTERFACE("582dac66-e678-449f-aba6-6faaec8a9394")
803 IInstallReferenceItem : public IUnknown
804 {
805 };
806 #ifdef __CRT_UUID_DECL
807 __CRT_UUID_DECL(IInstallReferenceItem, 0x582dac66, 0xe678, 0x449f, 0xab,0xa6, 0x6f,0xaa,0xec,0x8a,0x93,0x94)
808 #endif
809 #else
810 typedef struct IInstallReferenceItemVtbl {
811     BEGIN_INTERFACE
812 
813     /*** IUnknown methods ***/
814     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
815         IInstallReferenceItem *This,
816         REFIID riid,
817         void **ppvObject);
818 
819     ULONG (STDMETHODCALLTYPE *AddRef)(
820         IInstallReferenceItem *This);
821 
822     ULONG (STDMETHODCALLTYPE *Release)(
823         IInstallReferenceItem *This);
824 
825     END_INTERFACE
826 } IInstallReferenceItemVtbl;
827 
828 interface IInstallReferenceItem {
829     CONST_VTBL IInstallReferenceItemVtbl* lpVtbl;
830 };
831 
832 #ifdef COBJMACROS
833 #ifndef WIDL_C_INLINE_WRAPPERS
834 /*** IUnknown methods ***/
835 #define IInstallReferenceItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
836 #define IInstallReferenceItem_AddRef(This) (This)->lpVtbl->AddRef(This)
837 #define IInstallReferenceItem_Release(This) (This)->lpVtbl->Release(This)
838 #else
839 /*** IUnknown methods ***/
840 static FORCEINLINE HRESULT IInstallReferenceItem_QueryInterface(IInstallReferenceItem* This,REFIID riid,void **ppvObject) {
841     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
842 }
843 static FORCEINLINE ULONG IInstallReferenceItem_AddRef(IInstallReferenceItem* This) {
844     return This->lpVtbl->AddRef(This);
845 }
846 static FORCEINLINE ULONG IInstallReferenceItem_Release(IInstallReferenceItem* This) {
847     return This->lpVtbl->Release(This);
848 }
849 #endif
850 #endif
851 
852 #endif
853 
854 
855 #endif  /* __IInstallReferenceItem_INTERFACE_DEFINED__ */
856 
857 /*****************************************************************************
858  * IInstallReferenceEnum interface
859  */
860 #ifndef __IInstallReferenceEnum_INTERFACE_DEFINED__
861 #define __IInstallReferenceEnum_INTERFACE_DEFINED__
862 
863 DEFINE_GUID(IID_IInstallReferenceEnum, 0x56b1a988, 0x7c0c, 0x4aa2, 0x86,0x39, 0xc3,0xeb,0x5a,0x90,0x22,0x6f);
864 #if defined(__cplusplus) && !defined(CINTERFACE)
865 MIDL_INTERFACE("56b1a988-7c0c-4aa2-8639-c3eb5a90226f")
866 IInstallReferenceEnum : public IUnknown
867 {
868 };
869 #ifdef __CRT_UUID_DECL
870 __CRT_UUID_DECL(IInstallReferenceEnum, 0x56b1a988, 0x7c0c, 0x4aa2, 0x86,0x39, 0xc3,0xeb,0x5a,0x90,0x22,0x6f)
871 #endif
872 #else
873 typedef struct IInstallReferenceEnumVtbl {
874     BEGIN_INTERFACE
875 
876     /*** IUnknown methods ***/
877     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
878         IInstallReferenceEnum *This,
879         REFIID riid,
880         void **ppvObject);
881 
882     ULONG (STDMETHODCALLTYPE *AddRef)(
883         IInstallReferenceEnum *This);
884 
885     ULONG (STDMETHODCALLTYPE *Release)(
886         IInstallReferenceEnum *This);
887 
888     END_INTERFACE
889 } IInstallReferenceEnumVtbl;
890 
891 interface IInstallReferenceEnum {
892     CONST_VTBL IInstallReferenceEnumVtbl* lpVtbl;
893 };
894 
895 #ifdef COBJMACROS
896 #ifndef WIDL_C_INLINE_WRAPPERS
897 /*** IUnknown methods ***/
898 #define IInstallReferenceEnum_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
899 #define IInstallReferenceEnum_AddRef(This) (This)->lpVtbl->AddRef(This)
900 #define IInstallReferenceEnum_Release(This) (This)->lpVtbl->Release(This)
901 #else
902 /*** IUnknown methods ***/
903 static FORCEINLINE HRESULT IInstallReferenceEnum_QueryInterface(IInstallReferenceEnum* This,REFIID riid,void **ppvObject) {
904     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
905 }
906 static FORCEINLINE ULONG IInstallReferenceEnum_AddRef(IInstallReferenceEnum* This) {
907     return This->lpVtbl->AddRef(This);
908 }
909 static FORCEINLINE ULONG IInstallReferenceEnum_Release(IInstallReferenceEnum* This) {
910     return This->lpVtbl->Release(This);
911 }
912 #endif
913 #endif
914 
915 #endif
916 
917 
918 #endif  /* __IInstallReferenceEnum_INTERFACE_DEFINED__ */
919 
920 HRESULT WINAPI ClearDownloadCache(void);
921 HRESULT WINAPI CompareAssemblyIdentity(LPCWSTR,WINBOOL,LPCWSTR,WINBOOL,WINBOOL*,AssemblyComparisonResult*);
922 HRESULT WINAPI CreateAssemblyCache(IAssemblyCache**,DWORD);
923 HRESULT WINAPI CreateAssemblyEnum(IAssemblyEnum**,IUnknown*,IAssemblyName*,DWORD,LPVOID);
924 HRESULT WINAPI CreateAssemblyNameObject(LPASSEMBLYNAME*,LPCWSTR,DWORD,LPVOID);
925 HRESULT WINAPI CreateInstallReferenceEnum(IInstallReferenceEnum**,IAssemblyName*,DWORD,LPVOID);
926 HRESULT WINAPI GetAssemblyIdentityFromFile(LPCWSTR,REFIID,IUnknown**);
927 HRESULT WINAPI GetCachePath(ASM_CACHE_FLAGS,LPWSTR,PDWORD);
928 /* Begin additional prototypes for all interfaces */
929 
930 
931 /* End additional prototypes */
932 
933 #ifdef __cplusplus
934 }
935 #endif
936 
937 #endif /* __fusion_h__ */
938