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.

68 lines
1.6 KiB

  1. #pragma once
  2. class CDownloadDlg;
  3. class CAssemblyDownload : public IAssemblyDownload
  4. {
  5. public:
  6. // IUnknown methods
  7. STDMETHODIMP QueryInterface(REFIID riid,void ** ppv);
  8. STDMETHODIMP_(ULONG) AddRef();
  9. STDMETHODIMP_(ULONG) Release();
  10. // IBackgroundCopyCallback methods
  11. STDMETHOD(JobTransferred)(
  12. /* in */ IBackgroundCopyJob *pJob);
  13. STDMETHOD(JobError)(
  14. /* in */ IBackgroundCopyJob* pJob,
  15. /* in */ IBackgroundCopyError* pError);
  16. STDMETHOD(JobModification)(
  17. /* in */ IBackgroundCopyJob* pJob,
  18. /* in */ DWORD dwReserved);
  19. // IAssemblyDownload methods
  20. STDMETHOD(DownloadManifestAndDependencies)(
  21. /* in */ LPWSTR wzApplicationManifestUrl, HANDLE hNamedEvent, DWORD dwFlags);
  22. CAssemblyDownload();
  23. ~CAssemblyDownload();
  24. private:
  25. HRESULT Init();
  26. HRESULT DoCacheUpdate(IBackgroundCopyJob *pJob);
  27. HRESULT EnqueueDependencies(LPASSEMBLY_CACHE_IMPORT
  28. pCacheImport, CString &sCodebase, CString &sDisplayName, IBackgroundCopyJob **ppJob);
  29. HRESULT GetPatchDisplayNameFromFilePath ( CString &sPatchFilePath, CString &sDisplayName);
  30. HRESULT ApplyPatchFile (LPASSEMBLY_IDENTITY pPatchAssemblyId, LPWSTR pwzFilePath);
  31. DWORD _dwSig;
  32. LONG _cRef;
  33. HRESULT _hr;
  34. CString _sDisplayName;
  35. IAssemblyCacheEmit *_pRootEmit;
  36. HANDLE _hNamedEvent;
  37. CDownloadDlg *_pDlg;
  38. static IBackgroundCopyManager *g_pManager;
  39. friend CDownloadDlg;
  40. };