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.
 
 
 
 
 
 

128 lines
4.9 KiB

#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