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

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);