windows-nt/Source/XPSP1/NT/com/mobile/syncmgr/test/outhndlr/mdbuix.h
2020-09-26 16:20:57 +08:00

164 lines
4.9 KiB
C

/*
* mdbuix.h
*
* Private interface between EMSMDB.DLL and EMSUIX.DLL
*
* Copyright (C) 1995 Microsoft Corporation
*/
/*
* This GUID changes when the version changes, disabling access to those who
* don't have the right version of the header file
*
* NOTE: I've actually generated this GUID from 0x03 to 0x16
*/
#ifdef _ROG_CHANGED
#define MDBX_VERSION 0x0B
DEFINE_GUID(IID_IMDBX,
0x2F63F100+MDBX_VERSION,0x0A2E,0x11CF,0x9F,0xED,0x00,0xAA,0x00,0xB9,0x2B,0x87);
#endif // _ROGCHANGED
#ifndef __MDBUIX_H_
#define __MDBUIX_H_
#include "wmsuix.h"
typedef BOOL (CALLBACK *CREATEPROC)(STDPROG *);
typedef VOID (CALLBACK *UPDATEPROC)(STDPROG *, LPSTR, INT, INT);
typedef VOID (CALLBACK *DESTROYPROC)(STDPROG *, BOOL);
// To get the message underlying a form
typedef HRESULT (CALLBACK *GETFORMMSGPROC) (LPMAPIFORMINFO, ULONG FAR *,
LPSTR lpcClass, LPMESSAGE FAR *);
// Flags to the Synchronize method
#define SYNC_UPLOAD_HIERARCHY 0x0001
#define SYNC_DOWNLOAD_HIERARCHY 0x0002
#define SYNC_UPLOAD_FAVORITES 0x0004
#define SYNC_DOWNLOAD_FAVORITES 0x0008
#define SYNC_UPLOAD_VIEWS 0x0010
#define SYNC_DOWNLOAD_VIEWS 0x0020
#define SYNC_UPLOAD_CONTENTS 0x0040
#define SYNC_DOWNLOAD_CONTENTS 0x0080
#define SYNC_ONE_FOLDER 0x0100
#define SYNC_OUTGOING_MAIL 0x0200
#define SYNC_FORMS 0x0400
#define MAPI_IMDBX_METHODS(IPURE) \
MAPIMETHOD(GetLastError) \
(THIS_ HRESULT hResult, \
ULONG ulFlags, \
LPMAPIERROR FAR * lppMAPIError) IPURE; \
MAPIMETHOD_(ULONG,GetFolderType) \
(THIS_ ULONG cbEntryID, \
LPENTRYID pbEntryID) IPURE; \
MAPIMETHOD(EditFavorites) \
(THIS_ LPENTRYLIST lpEntryList, \
BOOL fAdd) IPURE; \
MAPIMETHOD(Synchronize) \
(THIS_ ULONG ulFlags, \
LPMAPISESSION pses, \
ULONG cbEntryID, \
LPENTRYID lpEntryID, \
STDPROG FAR * lpStdProgress, \
UPDATEPROC lpUpdateProc, \
GETFORMMSGPROC lpFormMsgProc) IPURE; \
MAPIMETHOD(OnlineStoreLogon) \
(THIS_ LPMSLOGON FAR * lppMSLogon, \
LPMDB FAR * lppMDB) IPURE; \
MAPIMETHOD(DownloadMessage) \
(THIS_ ULONG ulFlags, \
LPMESSAGE lpMsgSource, \
LPMESSAGE lpMsgDest) IPURE; \
MAPIMETHOD_(ULONG,GetStoreType) \
(THIS) IPURE; \
MAPIMETHOD(GetFolderSync) \
(THIS_ ULONG cbEntryID, \
LPENTRYID pbEntryID, \
BOOL fFull, \
FLDSYNC * pfldsync) IPURE; \
MAPIMETHOD(SetFolderSync) \
(THIS_ ULONG cbEntryID, \
LPENTRYID pbEntryID, \
ULONG cbParEntryID, \
LPENTRYID pbParEntryID, \
BOOL fEnable) IPURE; \
MAPIMETHOD(ConfigureOffline) \
(THIS_ ULONG ulUIParam) IPURE; \
MAPIMETHOD(DownloadComplete) \
(THIS) IPURE; \
MAPIMETHOD(TestActiveCount) \
(THIS_ ULONG ulFlags, \
ULONG FAR * pulActiveCount) IPURE; \
MAPIMETHOD(GetDCName) \
(THIS_ char * szDomainName, \
CHAR rgchDomainController[ 16+2 ]) IPURE; \
MAPIMETHOD(GetTransferredViewCount) \
(THIS_ ULONG ulFlags, \
ULONG FAR * pulViewCount) IPURE; \
typedef struct _fldsync
{
ULONG ulFlags;
FILETIME ftLastSync;
ULONG cItemOnline;
ULONG cItemOffline;
ULONG cbParEntryID;
BYTE rgbParEntryID[46];
} FLDSYNC, * PFLDSYNC;
#define FLDSYNC_UNCONFIGURED 0x00000001 // Offline store not configured
#define FLDSYNC_OFFLINE 0x00000002 // Currently viewing offline store
#define FLDSYNC_REPLICATED 0x00000004 // Folder is marked for replication
#define FLDSYNC_NOTFOUND 0x00000008 // Folder doesn't exist offline
#define FLDSYNC_DELETED 0x00000010 // Folder has been deleted offline
#define FLDSYNC_SPECIAL 0x00000020 // Folder is one of special four
#define FLDSYNC_HASMODS 0x00000040 // Offline folder has unsync'd mods
#undef INTERFACE
#define INTERFACE IMDBX
DECLARE_MAPI_INTERFACE_(IMDBX, IUnknown)
{
BEGIN_INTERFACE
MAPI_IUNKNOWN_METHODS(PURE)
MAPI_IMDBX_METHODS(PURE)
};
DECLARE_MAPI_INTERFACE_PTR(IMDBX, LPMDBX);
#define MDBX_SIG (0x50554200 + MDBX_VERSION)
// Flags returned from GetFolderType
#define MDBX_FTYPE_UNKNOWN 0
#define MDBX_FTYPE_PUB_IPM 1
#define MDBX_FTYPE_FAV_ROOT 2
#define MDBX_FTYPE_FAV 3
#define MDBX_FTYPE_PUB_ROOT 4
#define MDBX_FTYPE_PUB 5
#define MDBX_FTYPE_PRV_IPM 6
#define MDBX_FTYPE_PRV 7
// Flags returned from GetStoreType
#define MDBX_STORE_OFFLINE 0x80000000 // This is the offline store
#define MDBX_STORE_PUBLIC 0x00000001
#define MDBX_STORE_PRIVATE 0x00000002
#define MDBX_STORE_OST_OPEN 0x40000000 // The OST is open
#ifdef WIN32
#define MDBX_SIG_OFFSET 48
#else
#define MDBX_SIG_OFFSET 44
#endif
#define MDBX_GetSig(_pmdb) \
(IsBadWritePtr((_pmdb), MDBX_SIG_OFFSET + sizeof(DWORD)) ? 0 : \
*(DWORD *)((LPBYTE)(_pmdb) + MDBX_SIG_OFFSET))
#endif