windows-nt/Source/XPSP1/NT/base/win32/fusion/sxs/sxsasmcache.h
2020-09-26 16:20:57 +08:00

83 lines
2 KiB
C++

//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_