76 lines
3.2 KiB
C
76 lines
3.2 KiB
C
|
#ifndef _INC_PLAYBACK_H
|
||
|
#define _INC_PLAYBACK_H
|
||
|
|
||
|
class COfflinePlayback : public IStoreCallback, public ITimeoutCallback
|
||
|
{
|
||
|
public:
|
||
|
// IUnknown
|
||
|
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppvObject);
|
||
|
ULONG STDMETHODCALLTYPE AddRef(void);
|
||
|
ULONG STDMETHODCALLTYPE Release(void);
|
||
|
|
||
|
// IStoreCallback
|
||
|
HRESULT STDMETHODCALLTYPE OnBegin(STOREOPERATIONTYPE tyOperation, STOREOPERATIONINFO *pOpInfo, IOperationCancel *pCancel);
|
||
|
HRESULT STDMETHODCALLTYPE OnProgress(STOREOPERATIONTYPE tyOperation, DWORD dwCurrent, DWORD dwMax, LPCSTR pszStatus);
|
||
|
HRESULT STDMETHODCALLTYPE OnTimeout(LPINETSERVER pServer, LPDWORD pdwTimeout, IXPTYPE ixpServerType);
|
||
|
HRESULT STDMETHODCALLTYPE CanConnect(LPCSTR pszAccountId, DWORD dwFlags);
|
||
|
HRESULT STDMETHODCALLTYPE OnLogonPrompt(LPINETSERVER pServer, IXPTYPE );
|
||
|
HRESULT STDMETHODCALLTYPE OnComplete(STOREOPERATIONTYPE tyOperation, HRESULT hrComplete, LPSTOREOPERATIONINFO pOpInfo, LPSTOREERROR pErrorInfo);
|
||
|
HRESULT STDMETHODCALLTYPE OnPrompt(HRESULT hrError, LPCTSTR pszText, LPCTSTR pszCaption, UINT uType, INT *piUserResponse);
|
||
|
HRESULT STDMETHODCALLTYPE GetParentWindow(DWORD dwReserved, HWND *phwndParent);
|
||
|
|
||
|
// ITimeoutCallback
|
||
|
HRESULT STDMETHODCALLTYPE OnTimeoutResponse(TIMEOUTRESPONSE eResponse);
|
||
|
|
||
|
COfflinePlayback(void);
|
||
|
~COfflinePlayback(void);
|
||
|
|
||
|
HRESULT DoPlayback(HWND hwnd, IDatabase *pDB, FOLDERID *pid, DWORD cid, FOLDERID idFolderSel);
|
||
|
|
||
|
static INT_PTR CALLBACK PlaybackDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
|
||
|
|
||
|
private:
|
||
|
HRESULT _DoNextOperation(void);
|
||
|
HRESULT _DoSetPropOp(SYNCOPINFO *pInfo);
|
||
|
HRESULT _DoCreateOp(SYNCOPINFO *pInfo);
|
||
|
HRESULT _DoDeleteOp(SYNCOPINFO *pInfo);
|
||
|
HRESULT _DoCopyOp(SYNCOPINFO *pInfo);
|
||
|
|
||
|
HRESULT _HandleSetPropComplete(HRESULT hrOperation, SYNCOPINFO *pInfo);
|
||
|
HRESULT _HandleCreateComplete(HRESULT hrOperation, SYNCOPINFO *pInfo);
|
||
|
HRESULT _HandleDeleteComplete(HRESULT hrOperation, SYNCOPINFO *pInfo);
|
||
|
HRESULT _HandleCopyComplete(HRESULT hrOperation, SYNCOPINFO *pInfo);
|
||
|
|
||
|
ULONG m_cRef;
|
||
|
HRESULT m_hr;
|
||
|
HWND m_hwndDlg;
|
||
|
BOOL m_fComplete;
|
||
|
STOREOPERATIONTYPE m_type;
|
||
|
IOperationCancel *m_pCancel;
|
||
|
HTIMEOUT m_hTimeout;
|
||
|
|
||
|
DWORD m_cMovedToErrors;
|
||
|
DWORD m_cFailures;
|
||
|
|
||
|
IDatabase *m_pDB;
|
||
|
|
||
|
FOLDERID *m_pid;
|
||
|
DWORD m_iid;
|
||
|
DWORD m_cid;
|
||
|
FOLDERID m_idFolderSel;
|
||
|
BOOL m_fSyncSel;
|
||
|
|
||
|
FOLDERID m_idServer;
|
||
|
FOLDERID m_idFolder;
|
||
|
IMessageServer *m_pServer;
|
||
|
IMessageFolder *m_pLocalFolder;
|
||
|
DWORD m_iOps;
|
||
|
DWORD m_cOps;
|
||
|
CEnumerateSyncOps *m_pEnum;
|
||
|
SYNCOPID m_idOperation;
|
||
|
|
||
|
IMessageFolder *m_pFolderDest; // for copy and move
|
||
|
};
|
||
|
|
||
|
#endif // _INC_PLAYBACK_H
|