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