#ifndef _INC_SYNCOP_H #define _INC_SYNCOP_H // {26FE9D30-1A8F-11d2-AABF-006097D474C4} DEFINE_GUID(CLSID_SyncOpDatabase, 0x26fe9d30, 0x1a8f, 0x11d2, 0xaa, 0xbf, 0x0, 0x60, 0x97, 0xd4, 0x74, 0xc4); //------------------------------------------------------------------ // Types //------------------------------------------------------------------ DECLARE_HANDLE(SYNCOPID); typedef SYNCOPID *LPSYNCOPID; //------------------------------------------------------------------ // SYNCOPID Constants //------------------------------------------------------------------ const SYNCOPID SYNCOPID_INVALID = (SYNCOPID)-1; //------------------------------------------------------------------ // SyncOp Database Version //------------------------------------------------------------------ const DWORD SYNCOP_DATABASE_VERSION = 2; //------------------------------------------------------------------ // SYNCOPTABLECOLID //------------------------------------------------------------------ typedef enum tagSYNCOPTABLECOLID { OPCOL_ID = 0, OPCOL_SERVER, OPCOL_FOLDER, OPCOL_MESSAGE, OPCOL_OPTYPE, OPCOL_FLAGS, OPCOL_ADD_FLAGS, OPCOL_REMOVE_FLAGS, OPCOL_FOLDER_DEST, OPCOL_MESSAGE_DEST, OPCOL_LASTID } SYNCOPTABLECOLID; //------------------------------------------------------------------ // SYNCUSERDATA //------------------------------------------------------------------ typedef struct tagSYNCOPUSERDATA { DWORD fInitialized; // 4 Has this folder been initialized yet BYTE rgReserved[248]; // Reserved } SYNCOPUSERDATA, *LPSYNCOPUSERDATA; typedef enum tagSYNCOPTYPE { SYNC_INVALID = 0x0000, SYNC_SETPROP_MSG = 0x0001, SYNC_CREATE_MSG = 0x0002, SYNC_COPY_MSG = 0x0004, SYNC_MOVE_MSG = 0x0008, SYNC_DELETE_MSG = 0x0010 } SYNCOPTYPE; //------------------------------------------------------------------ // SOF_ sync op flags //------------------------------------------------------------------ typedef DWORD SYNCOPFLAGS; #define SOF_ALLFLAGS 0x00000001 //------------------------------------------------------------------ // SYNCOPINFO //------------------------------------------------------------------ typedef struct tagSYNCOPINFO { BYTE *pAllocated; BYTE bVersion; SYNCOPID idOperation; FOLDERID idServer; FOLDERID idFolder; MESSAGEID idMessage; SYNCOPTYPE tyOperation; SYNCOPFLAGS dwFlags; MESSAGEFLAGS dwAdd; MESSAGEFLAGS dwRemove; FOLDERID idFolderDest; MESSAGEID idMessageDest; } SYNCOPINFO, *LPSYNCOPINFO; //------------------------------------------------------------------ // Operation Record Members //------------------------------------------------------------------ BEGIN_COLUMN_ARRAY(g_rgOpTblColumns, OPCOL_LASTID) DEFINE_COLUMN(OPCOL_ID, CDT_DWORD, SYNCOPINFO, idOperation) DEFINE_COLUMN(OPCOL_SERVER, CDT_DWORD, SYNCOPINFO, idServer) DEFINE_COLUMN(OPCOL_FOLDER, CDT_DWORD, SYNCOPINFO, idFolder) DEFINE_COLUMN(OPCOL_MESSAGE, CDT_DWORD, SYNCOPINFO, idMessage) DEFINE_COLUMN(OPCOL_OPTYPE, CDT_WORD, SYNCOPINFO, tyOperation) DEFINE_COLUMN(OPCOL_FLAGS, CDT_DWORD, SYNCOPINFO, dwFlags) DEFINE_COLUMN(OPCOL_ADD_FLAGS, CDT_DWORD, SYNCOPINFO, dwAdd) DEFINE_COLUMN(OPCOL_REMOVE_FLAGS, CDT_DWORD, SYNCOPINFO, dwRemove) DEFINE_COLUMN(OPCOL_FOLDER_DEST, CDT_DWORD, SYNCOPINFO, idFolderDest) DEFINE_COLUMN(OPCOL_MESSAGE_DEST, CDT_DWORD, SYNCOPINFO, idMessageDest) END_COLUMN_ARRAY //------------------------------------------------------------------ // g_OpTblPrimaryIndex //------------------------------------------------------------------ BEGIN_TABLE_INDEX(g_OpTblPrimaryIndex, 1) DEFINE_KEY(OPCOL_ID, 0, 0) END_TABLE_INDEX BEGIN_TABLE_INDEX(g_OpFolderIdIndex, 3) DEFINE_KEY(OPCOL_SERVER, 0, 0) DEFINE_KEY(OPCOL_FOLDER, 0, 0) DEFINE_KEY(OPCOL_ID, 0, 0) END_TABLE_INDEX extern const TABLEINDEX g_OpFolderIdIndex; //------------------------------------------------------------------ // Operation Record Format //------------------------------------------------------------------ BEGIN_TABLE_SCHEMA(g_SyncOpTableSchema, CLSID_SyncOpDatabase, SYNCOPINFO) SCHEMA_PROPERTY(SYNCOP_DATABASE_VERSION) SCHEMA_PROPERTY(TSF_RESETIFBADVERSION) SCHEMA_PROPERTY(sizeof(SYNCOPUSERDATA)) SCHEMA_PROPERTY(offsetof(SYNCOPINFO, idOperation)) SCHEMA_PROPERTY(OPCOL_LASTID) SCHEMA_PROPERTY(g_rgOpTblColumns) SCHEMA_PROPERTY(&g_OpTblPrimaryIndex) SCHEMA_PROPERTY(NULL) END_TABLE_SCHEMA extern const TABLESCHEMA g_SyncOpTableSchema; #endif // _INC_SYNCOP_H