//depot/private/lab01_fusion/base/win32/fusion/dll/whistler/sxsasmcache.h#3 - edit change 16520 (text) /*++ Copyright (c) 2000 Microsoft Corporation Module Name: sxsasmcache.h Abstract: CAssemblyCache implementation for installation Author: Xiaoyu Wu (xiaoyuw) April 2000 Revision History: --*/ #if !defined(_FUSION_SXS_ASMCACHE_H_INCLUDED_) #define _FUSION_SXS_ASMCACHE_H_INCLUDED_ #pragma once #include "fusion.h" // CAssemblyCache declaration. class CAssemblyCache : public IAssemblyCache { public: // IUnknown methods STDMETHODIMP QueryInterface(REFIID riid,void ** ppv); STDMETHODIMP_(ULONG) AddRef(); STDMETHODIMP_(ULONG) Release(); // IAssemblyCache methods STDMETHOD (UninstallAssembly)( /* [in] */ DWORD dwFlags, /* [in] */ LPCWSTR pszAssemblyName, // uncanonicalized, comma separted name=value pairs. /* [in] */ LPCFUSION_INSTALL_REFERENCE lpReference, /* [out, optional] */ ULONG *pulDisposition ); STDMETHOD (QueryAssemblyInfo)( /* [in] */ DWORD dwFlags, /* [in] */ LPCWSTR pszAssemblyName, /* [in, out] */ ASSEMBLY_INFO *pAsmInfo ); STDMETHOD (CreateAssemblyCacheItem)( /* [in] */ DWORD dwFlags, /* [in] */ PVOID pvReserved, /* [out] */ IAssemblyCacheItem **ppAsmItem, /* [in, optional] */ LPCWSTR pszAssemblyName // uncanonicalized, comma separted name=value pairs. ); STDMETHOD (InstallAssembly)( // if you use this, fusion will do the streaming & commit. /* [in] */ DWORD dwFlags, /* [in] */ LPCWSTR pszManifestFilePath, /* [in] */ LPCFUSION_INSTALL_REFERENCE lpReference ); STDMETHOD(CreateAssemblyScavenger) ( /* [out] */ IAssemblyScavenger **ppAsmScavenger ); CAssemblyCache():m_cRef(0) { } ~CAssemblyCache() { ASSERT_NTC(m_cRef == 0); } private : ULONG m_cRef; }; #endif // _FUSION_SXS_ASMCACHE_H_INCLUDED_