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.

58 lines
1.6 KiB

  1. #pragma once
  2. #ifndef _VERSION_MAN_H
  3. #define _VERSION_MAN_H
  4. #include <objbase.h>
  5. #include <windows.h>
  6. // ----------------------------------------------------------------------
  7. class CVersionManagement;
  8. typedef CVersionManagement *LPVERSION_MANAGEMENT;
  9. STDAPI CreateVersionManagement(
  10. LPVERSION_MANAGEMENT *ppVersionManagement,
  11. DWORD dwFlags);
  12. // ----------------------------------------------------------------------
  13. class CVersionManagement : public IUnknown//: public IVersionManagement
  14. {
  15. public:
  16. // IUnknown methods
  17. STDMETHODIMP QueryInterface(REFIID riid,void ** ppv);
  18. STDMETHODIMP_(ULONG) AddRef();
  19. STDMETHODIMP_(ULONG) Release();
  20. // IVersionManagement methods
  21. STDMETHOD(RegisterInstall)(
  22. /* in */ LPASSEMBLY_MANIFEST_IMPORT pManImport,
  23. /* in */ LPCWSTR pwzDesktopManifestFilePath);
  24. STDMETHOD(Uninstall)(
  25. /* in */ LPCWSTR pwzDisplayNameMask,
  26. /* in */ LPCWSTR pwzDesktopManifestFilePath);
  27. STDMETHOD(Rollback)(
  28. /* in */ LPCWSTR pwzDisplayNameMask);
  29. CVersionManagement();
  30. ~CVersionManagement();
  31. private:
  32. DWORD _dwSig;
  33. DWORD _cRef;
  34. DWORD _hr;
  35. IAssemblyCache* _pFusionAsmCache;
  36. HRESULT UninstallGACAssemblies(LPASSEMBLY_CACHE_IMPORT pCacheImport);
  37. friend HRESULT CreateVersionManagement(
  38. LPVERSION_MANAGEMENT *ppVersionManagement,
  39. DWORD dwFlags);
  40. };
  41. #endif // _VERSION_MAN_H