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
67 lines
2.3 KiB
class CTimeWarpProp : public IShellExtInit,
|
|
public IShellPropSheetExt,
|
|
public IPreviousVersionsInfo
|
|
{
|
|
public:
|
|
// IUnknown
|
|
STDMETHOD(QueryInterface)(REFIID riid, void **ppv);
|
|
STDMETHOD_(ULONG, AddRef)();
|
|
STDMETHOD_(ULONG, Release)();
|
|
|
|
// IShellExtInit
|
|
STDMETHOD(Initialize)(PCIDLIST_ABSOLUTE pidlFolder, IDataObject *lpdobj, HKEY hkeyProgID);
|
|
|
|
// IShellPropSheetExt
|
|
STDMETHOD(AddPages)(LPFNADDPROPSHEETPAGE pfnAddPage, LPARAM lParam);
|
|
STDMETHOD(ReplacePage)(UINT uPageID, LPFNADDPROPSHEETPAGE lpfnReplaceWith, LPARAM lParam);
|
|
|
|
// IPreviousVersionsInfo
|
|
STDMETHOD(AreSnapshotsAvailable)(LPCWSTR pszPath, BOOL fOkToBeSlow, BOOL *pfAvailable);
|
|
|
|
static HRESULT CreateInstance(IUnknown *punkOuter, IUnknown **ppunk, LPCOBJECTINFO poi);
|
|
|
|
private:
|
|
CTimeWarpProp();
|
|
~CTimeWarpProp();
|
|
|
|
// dialog methods
|
|
void _OnInit(HWND hDlg);
|
|
void _OnRefresh();
|
|
void _OnSize();
|
|
void _UpdateButtons();
|
|
void _OnView();
|
|
void _OnCopy();
|
|
void _OnRevert();
|
|
|
|
// helpers
|
|
LPCWSTR _GetSelectedItemPath();
|
|
LPWSTR _MakeDoubleNullString(LPCWSTR psz, BOOL bAddWildcard);
|
|
BOOL _CopySnapShot(LPCWSTR pszSource, LPCWSTR pszDest, FILEOP_FLAGS foFlags);
|
|
HRESULT _InvokeBFFDialog(LPWSTR pszDest, UINT cchDest);
|
|
|
|
// Note that both of these can be TRUE at the same time, for example ZIP
|
|
// and CAB are individual files represented as shell folders.
|
|
BOOL _IsFolder() { return (_fItemAttributes & SFGAO_FOLDER); }
|
|
BOOL _IsFile() { return (_fItemAttributes & SFGAO_STREAM); }
|
|
|
|
BOOL _IsShortcut() { return (_fItemAttributes & SFGAO_LINK); }
|
|
|
|
// callback methods
|
|
static UINT CALLBACK PSPCallback(HWND hDlg, UINT uMsg, LPPROPSHEETPAGE ppsp);
|
|
static INT_PTR CALLBACK DlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
|
|
|
LONG _cRef;
|
|
LPWSTR _pszPath;
|
|
LPWSTR _pszDisplayName;
|
|
LPWSTR _pszSnapList;
|
|
int _iIcon;
|
|
HWND _hDlg;
|
|
HWND _hList;
|
|
SFGAOF _fItemAttributes; // SFGAO_ flags
|
|
};
|
|
|
|
extern const CLSID CLSID_TimeWarpProp; // {596AB062-B4D2-4215-9F74-E9109B0A8153}
|
|
|
|
void InitSnapCheckCache(void);
|
|
void DestroySnapCheckCache(void);
|
|
|