Source code of Windows XP (NT5)
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.

78 lines
2.4 KiB

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