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.

67 lines
2.3 KiB

  1. class CTimeWarpProp : public IShellExtInit,
  2. public IShellPropSheetExt,
  3. public IPreviousVersionsInfo
  4. {
  5. public:
  6. // IUnknown
  7. STDMETHOD(QueryInterface)(REFIID riid, void **ppv);
  8. STDMETHOD_(ULONG, AddRef)();
  9. STDMETHOD_(ULONG, Release)();
  10. // IShellExtInit
  11. STDMETHOD(Initialize)(PCIDLIST_ABSOLUTE pidlFolder, IDataObject *lpdobj, HKEY hkeyProgID);
  12. // IShellPropSheetExt
  13. STDMETHOD(AddPages)(LPFNADDPROPSHEETPAGE pfnAddPage, LPARAM lParam);
  14. STDMETHOD(ReplacePage)(UINT uPageID, LPFNADDPROPSHEETPAGE lpfnReplaceWith, LPARAM lParam);
  15. // IPreviousVersionsInfo
  16. STDMETHOD(AreSnapshotsAvailable)(LPCWSTR pszPath, BOOL fOkToBeSlow, BOOL *pfAvailable);
  17. static HRESULT CreateInstance(IUnknown *punkOuter, IUnknown **ppunk, LPCOBJECTINFO poi);
  18. private:
  19. CTimeWarpProp();
  20. ~CTimeWarpProp();
  21. // dialog methods
  22. void _OnInit(HWND hDlg);
  23. void _OnRefresh();
  24. void _OnSize();
  25. void _UpdateButtons();
  26. void _OnView();
  27. void _OnCopy();
  28. void _OnRevert();
  29. // helpers
  30. LPCWSTR _GetSelectedItemPath();
  31. LPWSTR _MakeDoubleNullString(LPCWSTR psz, BOOL bAddWildcard);
  32. BOOL _CopySnapShot(LPCWSTR pszSource, LPCWSTR pszDest, FILEOP_FLAGS foFlags);
  33. HRESULT _InvokeBFFDialog(LPWSTR pszDest, UINT cchDest);
  34. // Note that both of these can be TRUE at the same time, for example ZIP
  35. // and CAB are individual files represented as shell folders.
  36. BOOL _IsFolder() { return (_fItemAttributes & SFGAO_FOLDER); }
  37. BOOL _IsFile() { return (_fItemAttributes & SFGAO_STREAM); }
  38. BOOL _IsShortcut() { return (_fItemAttributes & SFGAO_LINK); }
  39. // callback methods
  40. static UINT CALLBACK PSPCallback(HWND hDlg, UINT uMsg, LPPROPSHEETPAGE ppsp);
  41. static INT_PTR CALLBACK DlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
  42. LONG _cRef;
  43. LPWSTR _pszPath;
  44. LPWSTR _pszDisplayName;
  45. LPWSTR _pszSnapList;
  46. int _iIcon;
  47. HWND _hDlg;
  48. HWND _hList;
  49. SFGAOF _fItemAttributes; // SFGAO_ flags
  50. };
  51. extern const CLSID CLSID_TimeWarpProp; // {596AB062-B4D2-4215-9F74-E9109B0A8153}
  52. void InitSnapCheckCache(void);
  53. void DestroySnapCheckCache(void);