/* * ESEBACK2.H * * Contains declarations of additional definitions and interfaces * for the ESE server apps. */ #ifndef _ESEBACK2_ #define _ESEBACK2_ // // Useful types. // typedef long ERR; typedef long HRESULT; #include "jet.h" #include "esebcli2.h" #define ESEBACK_API __stdcall #define ESEBACK_CALLBACK __stdcall #ifdef __cplusplus extern "C" { #endif #define IN #define OUT // Server API for backup and restore #ifndef ESE_REGISTER_BACKUP #define ESE_REGISTER_BACKUP 0x00000001 #endif #ifndef ESE_REGISTER_ONLINE_RESTORE #define ESE_REGISTER_ONLINE_RESTORE 0x00000002 #endif #ifndef ESE_REGISTER_OFFLINE_RESTORE #define ESE_REGISTER_OFFLINE_RESTORE 0x00000004 #endif #ifndef ESE_REGISTER_SNAPSHOT_BACKUP #define ESE_REGISTER_SNAPSHOT_BACKUP 0x00000010 #endif // this flag will determin that the HrESEGetNodes() // will be solved at ESEBACK2 level (return the list of Exchange // server from DS) not at server level using callback functions #ifndef ESE_REGISTER_EXCHANGE_SERVER #define ESE_REGISTER_EXCHANGE_SERVER 0x00000100 #endif HRESULT ESEBACK_API HrESEBackupRestoreRegister( IN WCHAR * wszDisplayName, IN unsigned long fFlags, IN WCHAR * wszEndpointAnnotation, IN WCHAR * wszCallbackDll); HRESULT ESEBACK_API HrESEBackupRestoreUnregister( void ); // Server API for restore/recover HRESULT ESEBACK_API HrESERecoverAfterRestore ( IN WCHAR * wszRestoreLogPath, IN WCHAR * wszCheckpointFilePath, IN WCHAR * wszLogFilePath, IN WCHAR * wszTargetInstanceName); HRESULT ESEBACK_API HrESERecoverAfterRestore2 ( WCHAR * wszRestoreLogPath, WCHAR * wszCheckpointFilePath, WCHAR * wszLogFilePath, WCHAR * wszTargetInstanceCheckpointFilePath, WCHAR * wszTargetInstanceLogPath ); typedef struct _ESEBACK_CONTEXT { unsigned long cbSize; WCHAR * wszServerName; void * pvApplicationData; } ESEBACK_CONTEXT, * PESEBACK_CONTEXT; // callback function definitions for backup and restore typedef void (ESEBACK_CALLBACK *PfnESECBFree)( IN void * pv ); typedef ERR (ESEBACK_CALLBACK *PfnErrESECBGetDatabasesInfo)( IN PESEBACK_CONTEXT pBackupContext, OUT unsigned long * pcInfo, OUT INSTANCE_BACKUP_INFO ** prgInfo, IN unsigned long fReserved ); typedef ERR (ESEBACK_CALLBACK *PfnErrESECBFreeDatabasesInfo)( IN PESEBACK_CONTEXT pBackupContext, IN unsigned long cInfo, IN INSTANCE_BACKUP_INFO * rgInfo ); // callback function definitions for backup typedef ERR (ESEBACK_CALLBACK *PfnErrESECBPrepareInstanceForBackup)( IN PESEBACK_CONTEXT pBackupContext, IN JET_INSTANCE ulInstanceId, IN void * pvReserved); #define BACKUP_DONE_FLAG_ABORT ESE_BACKUP_INSTANCE_END_ERROR #define BACKUP_DONE_FLAG_NORMAL ESE_BACKUP_INSTANCE_END_SUCCESS typedef ERR (ESEBACK_CALLBACK *PfnErrESECBDoneWithInstanceForBackup)( IN PESEBACK_CONTEXT pBackupContext, IN JET_INSTANCE ulInstanceId, IN unsigned long fComplete, IN void * pvReserved ); typedef ERR (ESEBACK_CALLBACK *PfnErrESECBGetDependencyInfo)( IN PESEBACK_CONTEXT pBackupContext, IN JET_INSTANCE ulInstanceId, OUT void ** pvInfo, OUT unsigned long * pcbInfo, OUT WCHAR ** pwszAnnotations, IN void * pvReserved ); // callback function definitions for restore #define RESTORE_OPEN_REOPEN 0x0001L #define RESTORE_OPEN_GET_PATH 0x0002L typedef ERR (ESEBACK_CALLBACK *PfnErrESECBRestoreOpen)( IN PESEBACK_CONTEXT pRestoreContext, IN unsigned long fFlags, IN WCHAR * wszSrcInstanceName, OUT WCHAR ** pwszRestorePath, IN void * pvReserved ); #define RESTORE_CLOSE_FLAG_NORMAL 0x0001L #define RESTORE_CLOSE_FLAG_ABORT 0x0002L #define RESTORE_CLOSE_FLAG_RPC 0x0004L #define RESTORE_CLOSE_FLAG_COMPLETE_CALLED 0x0008L typedef ERR (ESEBACK_CALLBACK *PfnErrESECBRestoreClose)( IN PESEBACK_CONTEXT pRestoreContext, IN unsigned long fFlags, IN void * pvReserved ); typedef ERR (ESEBACK_CALLBACK *PfnErrESECBRestoreGetDestination)( IN PESEBACK_CONTEXT pRestoreContext, IN WCHAR * wszDatabaseDisplayName, IN GUID guidDatabase, IN WCHAR * wszDatabaseFileNameS, IN WCHAR * wszDatabaseSLVFileNameS, OUT WCHAR ** pwszDatabaseFileNameD, OUT WCHAR ** pwszDatabaseSLVFileNameD, IN void * pvReserved ); typedef ERR (ESEBACK_CALLBACK *PfnErrESECBRestoreComplete)( IN PESEBACK_CONTEXT pRestoreContext, IN WCHAR * wszRestorePath, IN unsigned long fFlags, IN void * pvReserved ); // calback functions for nodes tree typedef ERR (ESEBACK_CALLBACK *PfnErrESECBGetNodes)( IN PESEBACK_CONTEXT pContext, OUT PBACKUP_NODE_TREE * ppBackupNodeTree, IN void * pvReserved ); typedef VOID (ESEBACK_CALLBACK *PfnESECBFreeNodes)( IN PBACKUP_NODE_TREE pBackupNodeTree ); typedef ERR (ESEBACK_CALLBACK *PfnErrESECBGetIcons)( IN PESEBACK_CONTEXT pContext, OUT ESE_ICON_DESCRIPTION * pDisplayIcon, OUT ESE_ICON_DESCRIPTION * pAnnotationIcon, IN void * pvReserved ); #ifdef __cplusplus } #endif #endif // _ESEBACK2_