Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
2.4 KiB

  1. /*++
  2. Copyright (c) Microsoft Corporation
  3. Module Name:
  4. sxsasmitem.h
  5. Abstract:
  6. CAssemblyCacheItem implementation for installation
  7. Author:
  8. Xiaoyu Wu (xiaoyuw) April 2000
  9. Revision History:
  10. xiaoyuw 10/26/2000 revise during Beta2 code-review period
  11. --*/
  12. #if !defined(_FUSION_SXS_ASMITEM_H_INCLUDED_)
  13. #define _FUSION_SXS_ASMITEM_H_INCLUDED_
  14. #pragma once
  15. #include <windows.h>
  16. #include <winerror.h>
  17. #include "fusion.h"
  18. #include "sxsinstall.h"
  19. class CAssemblyCacheItem : public IAssemblyCacheItem
  20. {
  21. public:
  22. // IUnknown methods
  23. STDMETHODIMP QueryInterface(REFIID riid,void ** ppv);
  24. STDMETHODIMP_(ULONG) AddRef();
  25. STDMETHODIMP_(ULONG) Release();
  26. // IAssemblyCacheItem methods
  27. STDMETHOD(CreateStream)(
  28. /* [in] */ DWORD dwFlags,
  29. /* [in] */ LPCWSTR pszName,
  30. /* [in] */ DWORD dwFormat,
  31. /* [in] */ DWORD dwFormatFlags,
  32. /* [out] */ IStream** ppStream,
  33. /* [in, optional] */ ULARGE_INTEGER *puliMaxSize);
  34. STDMETHOD(Commit)(
  35. /* [in] */ DWORD dwFlags,
  36. /* [out, optional] */ ULONG *pulDisposition);
  37. STDMETHOD(AbortItem)();
  38. // Constructor and Destructor
  39. CAssemblyCacheItem();
  40. ~CAssemblyCacheItem();
  41. HRESULT Initialize();
  42. private:
  43. ULONG m_cRef; // refcount
  44. BOOL m_fCommit; // whether this asmcache has been commit or not
  45. BOOL m_fManifest; // whether a manifest has been submit before commit or more than once
  46. ULONG m_cStream; // stream count for an AssemblyCacheItem
  47. CStringBuffer m_strTempDir; // temporary directory for this assembly
  48. CSmallStringBuffer m_strUidBuf; // used in SxsCreateWinSxsTempDirectory
  49. CStringBuffer m_strManifestFileName; // full-path manifest filename for Jay's API
  50. CRunOnceDeleteDirectory *m_pRunOnceCookie; // not the cookie to create the temporary directory
  51. CAssemblyInstall* m_pInstallCookie;
  52. private:
  53. CAssemblyCacheItem(const CAssemblyCacheItem &r); // intentionally not implemented
  54. CAssemblyCacheItem &operator =(const CAssemblyCacheItem &r); // intentionally not implemented
  55. };
  56. #endif // _FUSION_SXS_ASMITEM_H_INCLUDED_