79 lines
2.4 KiB
C
79 lines
2.4 KiB
C
|
//depot/private/lab01_fusion/base/win32/fusion/dll/whistler/sxsasmitem.h#3 - edit change 16520 (text)
|
||
|
/*++
|
||
|
|
||
|
Copyright (c) 2000 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
sxsasmitem.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
CAssemblyCacheItem implementation for installation
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Xiaoyu Wu (xiaoyuw) April 2000
|
||
|
|
||
|
Revision History:
|
||
|
xiaoyuw 10/26/2000 revise during Beta2 code-review period
|
||
|
--*/
|
||
|
#if !defined(_FUSION_SXS_ASMITEM_H_INCLUDED_)
|
||
|
#define _FUSION_SXS_ASMITEM_H_INCLUDED_
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
#include <windows.h>
|
||
|
#include <winerror.h>
|
||
|
#include "fusion.h"
|
||
|
#include "sxsinstall.h"
|
||
|
|
||
|
class CAssemblyCacheItem : public IAssemblyCacheItem
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
// IUnknown methods
|
||
|
STDMETHODIMP QueryInterface(REFIID riid,void ** ppv);
|
||
|
STDMETHODIMP_(ULONG) AddRef();
|
||
|
STDMETHODIMP_(ULONG) Release();
|
||
|
|
||
|
// IAssemblyCacheItem methods
|
||
|
STDMETHOD(CreateStream)(
|
||
|
/* [in] */ DWORD dwFlags,
|
||
|
/* [in] */ LPCWSTR pszName,
|
||
|
/* [in] */ DWORD dwFormat,
|
||
|
/* [in] */ DWORD dwFormatFlags,
|
||
|
/* [out] */ IStream** ppStream,
|
||
|
/* [in, optional] */ ULARGE_INTEGER *puliMaxSize);
|
||
|
|
||
|
STDMETHOD(Commit)(
|
||
|
/* [in] */ DWORD dwFlags,
|
||
|
/* [out, optional] */ ULONG *pulDisposition);
|
||
|
STDMETHOD(AbortItem)();
|
||
|
|
||
|
// Constructor and Destructor
|
||
|
CAssemblyCacheItem();
|
||
|
~CAssemblyCacheItem();
|
||
|
|
||
|
HRESULT Initialize();
|
||
|
|
||
|
private:
|
||
|
|
||
|
ULONG m_cRef; // refcount
|
||
|
BOOL m_fCommit; // whether this asmcache has been commit or not
|
||
|
BOOL m_fManifest; // whether a manifest has been submit before commit or more than once
|
||
|
ULONG m_cStream; // stream count for an AssemblyCacheItem
|
||
|
CStringBuffer m_strTempDir; // temporary directory for this assembly
|
||
|
CSmallStringBuffer m_strUidBuf; // used in SxsCreateWinSxsTempDirectory
|
||
|
|
||
|
CStringBuffer m_strManifestFileName; // full-path manifest filename for Jay's API
|
||
|
CRunOnceDeleteDirectory *m_pRunOnceCookie; // not the cookie to create the temporary directory
|
||
|
CAssemblyInstall* m_pInstallCookie;
|
||
|
private:
|
||
|
CAssemblyCacheItem(const CAssemblyCacheItem &r); // intentionally not implemented
|
||
|
CAssemblyCacheItem &operator =(const CAssemblyCacheItem &r); // intentionally not implemented
|
||
|
|
||
|
};
|
||
|
|
||
|
#endif // _FUSION_SXS_ASMITEM_H_INCLUDED_
|