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.
 
 
 
 
 
 

75 lines
3.2 KiB

#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