164 lines
4.9 KiB
C
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
|