📄 edkmdb.h
字号:
LPENTRYID lpUserEntryID, \
ULONG cbEntryID, \
LPENTRYID lpEntryID, \
ULONG FAR * lpulRights) IPURE; \
MAPIMETHOD(GetMailboxTable) \
(THIS_ LPSTR lpszServerName, \
LPMAPITABLE FAR * lppTable, \
ULONG ulFlags) IPURE; \
MAPIMETHOD(GetPublicFolderTable) \
(THIS_ LPSTR lpszServerName, \
LPMAPITABLE FAR * lppTable, \
ULONG ulFlags) IPURE;
#undef INTERFACE
#define INTERFACE IExchangeManageStore
DECLARE_MAPI_INTERFACE_(IExchangeManageStore, IUnknown)
{
MAPI_IUNKNOWN_METHODS(PURE)
EXCHANGE_IEXCHANGEMANAGESTORE_METHODS(PURE)
};
#undef IMPL
#define IMPL
DECLARE_MAPI_INTERFACE_PTR(IExchangeManageStore, LPEXCHANGEMANAGESTORE);
// Properties for GetMailboxTable
#define PR_NT_USER_NAME PROP_TAG( PT_TSTRING, pidAdminMin+0x10)
#define PR_LOCALE_ID PROP_TAG( PT_LONG, pidAdminMin+0x11 )
#define PR_LAST_LOGON_TIME PROP_TAG( PT_SYSTIME, pidAdminMin+0x12 )
#define PR_LAST_LOGOFF_TIME PROP_TAG( PT_SYSTIME, pidAdminMin+0x13 )
#define PR_STORAGE_LIMIT_INFORMATION PROP_TAG( PT_LONG, pidAdminMin+0x14 )
// Properties for GetPublicFolderTable
#define PR_FOLDER_FLAGS PROP_TAG( PT_LONG, pidAdminMin+0x18 )
#define PR_LAST_ACCESS_TIME PROP_TAG( PT_SYSTIME, pidAdminMin+0x19 )
#define PR_RESTRICTION_COUNT PROP_TAG( PT_LONG, pidAdminMin+0x1A )
#define PR_CATEG_COUNT PROP_TAG( PT_LONG, pidAdminMin+0x1B )
#define PR_CACHED_COLUMN_COUNT PROP_TAG( PT_LONG, pidAdminMin+0x1C )
#define PR_NORMAL_MSG_W_ATTACH_COUNT PROP_TAG( PT_LONG, pidAdminMin+0x1D )
#define PR_ASSOC_MSG_W_ATTACH_COUNT PROP_TAG( PT_LONG, pidAdminMin+0x1E )
#define PR_RECIPIENT_ON_NORMAL_MSG_COUNT PROP_TAG( PT_LONG, pidAdminMin+0x1F )
#define PR_RECIPIENT_ON_ASSOC_MSG_COUNT PROP_TAG( PT_LONG, pidAdminMin+0x20 )
#define PR_ATTACH_ON_NORMAL_MSG_COUNT PROP_TAG( PT_LONG, pidAdminMin+0x21 )
#define PR_ATTACH_ON_ASSOC_MSG_COUNT PROP_TAG( PT_LONG, pidAdminMin+0x22 )
#define PR_NORMAL_MESSAGE_SIZE PROP_TAG( PT_LONG, pidAdminMin+0x23 )
#define PR_NORMAL_MESSAGE_SIZE_EXTENDED PROP_TAG( PT_I8, pidAdminMin+0x23 )
#define PR_ASSOC_MESSAGE_SIZE PROP_TAG( PT_LONG, pidAdminMin+0x24 )
#define PR_ASSOC_MESSAGE_SIZE_EXTENDED PROP_TAG( PT_I8, pidAdminMin+0x24 )
#define PR_FOLDER_PATHNAME PROP_TAG(PT_TSTRING, pidAdminMin+0x25 )
#define PR_OWNER_COUNT PROP_TAG( PT_LONG, pidAdminMin+0x26 )
#define PR_CONTACT_COUNT PROP_TAG( PT_LONG, pidAdminMin+0x27 )
// PT_I8 version of PR_MESSAGE_SIZE defined in mapitags.h
#define PR_MESSAGE_SIZE_EXTENDED PROP_TAG(PT_I8, PROP_ID(PR_MESSAGE_SIZE))
/* Bits in PR_FOLDER_FLAGS */
#define MDB_FOLDER_IPM 0x1
#define MDB_FOLDER_SEARCH 0x2
#define MDB_FOLDER_NORMAL 0x4
#define MDB_FOLDER_RULES 0x8
/* Bits used in ulFlags in GetPublicFolderTable() */
#define MDB_NON_IPM 0x10
#define MDB_IPM 0x20
/* Bits in PR_STORAGE_LIMIT_INFORMATION */
#define MDB_LIMIT_BELOW 0x1
#define MDB_LIMIT_ISSUE_WARNING 0x2
#define MDB_LIMIT_PROHIBIT_SEND 0x4
#define MDB_LIMIT_NO_CHECK 0x8
/*------------------------------------------------------------------------
*
* "IExchangeFastTransfer" Interface Declaration
*
* Used for fast transfer interface used to
* implement CopyTo, CopyProps, CopyFolder, and
* CopyMessages.
*
*-----------------------------------------------------------------------*/
// Transfer flags
// Use MAPI_MOVE for move option
// Transfer methods
#define TRANSFER_COPYTO 1
#define TRANSFER_COPYPROPS 2
#define TRANSFER_COPYMESSAGES 3
#define TRANSFER_COPYFOLDER 4
#define EXCHANGE_IEXCHANGEFASTTRANSFER_METHODS(IPURE) \
MAPIMETHOD(Config) \
(THIS_ ULONG ulFlags, \
ULONG ulTransferMethod) IPURE; \
MAPIMETHOD(TransferBuffer) \
(THIS_ ULONG cb, \
LPBYTE lpb, \
ULONG *lpcbProcessed) IPURE; \
STDMETHOD_(BOOL, IsInterfaceOk) \
(THIS_ ULONG ulTransferMethod, \
REFIID refiid, \
LPSPropTagArray lpptagList, \
ULONG ulFlags) IPURE;
#undef INTERFACE
#define INTERFACE IExchangeFastTransfer
DECLARE_MAPI_INTERFACE_(IExchangeFastTransfer, IUnknown)
{
MAPI_IUNKNOWN_METHODS(PURE)
EXCHANGE_IEXCHANGEFASTTRANSFER_METHODS(PURE)
};
#undef IMPL
#define IMPL
DECLARE_MAPI_INTERFACE_PTR(IExchangeFastTransfer, LPEXCHANGEFASTTRANSFER);
/*------------------------------------------------------------------------
*
* "IExchangeExportChanges" Interface Declaration
*
* Used for Incremental Synchronization
*
*-----------------------------------------------------------------------*/
#define EXCHANGE_IEXCHANGEEXPORTCHANGES_METHODS(IPURE) \
MAPIMETHOD(GetLastError) \
(THIS_ HRESULT hResult, \
ULONG ulFlags, \
LPMAPIERROR FAR * lppMAPIError) IPURE; \
MAPIMETHOD(Config) \
(THIS_ LPSTREAM lpStream, \
ULONG ulFlags, \
LPUNKNOWN lpUnk, \
LPSRestriction lpRestriction, \
LPSPropTagArray lpIncludeProps, \
LPSPropTagArray lpExcludeProps, \
ULONG ulBufferSize) IPURE; \
MAPIMETHOD(Synchronize) \
(THIS_ ULONG FAR * lpulSteps, \
ULONG FAR * lpulProgress) IPURE; \
MAPIMETHOD(UpdateState) \
(THIS_ LPSTREAM lpStream) IPURE;
#undef INTERFACE
#define INTERFACE IExchangeExportChanges
DECLARE_MAPI_INTERFACE_(IExchangeExportChanges, IUnknown)
{
MAPI_IUNKNOWN_METHODS(PURE)
EXCHANGE_IEXCHANGEEXPORTCHANGES_METHODS(PURE)
};
#undef IMPL
#define IMPL
DECLARE_MAPI_INTERFACE_PTR(IExchangeExportChanges, LPEXCHANGEEXPORTCHANGES);
typedef struct _ReadState
{
ULONG cbSourceKey;
BYTE * pbSourceKey;
ULONG ulFlags;
} READSTATE, *LPREADSTATE;
/*------------------------------------------------------------------------
*
* "IExchangeImportContentsChanges" Interface Declaration
*
* Used for Incremental Synchronization of folder contents (i.e. messages)
*
*-----------------------------------------------------------------------*/
#define EXCHANGE_IEXCHANGEIMPORTCONTENTSCHANGES_METHODS(IPURE) \
MAPIMETHOD(GetLastError) \
(THIS_ HRESULT hResult, \
ULONG ulFlags, \
LPMAPIERROR FAR * lppMAPIError) IPURE; \
MAPIMETHOD(Config) \
(THIS_ LPSTREAM lpStream, \
ULONG ulFlags) IPURE; \
MAPIMETHOD(UpdateState) \
(THIS_ LPSTREAM lpStream) IPURE; \
MAPIMETHOD(ImportMessageChange) \
(THIS_ ULONG cpvalChanges, \
LPSPropValue ppvalChanges, \
ULONG ulFlags, \
LPMESSAGE *lppmessage) IPURE; \
MAPIMETHOD(ImportMessageDeletion) \
(THIS_ ULONG ulFlags, \
LPENTRYLIST lpSrcEntryList) IPURE; \
MAPIMETHOD(ImportPerUserReadStateChange) \
(THIS_ ULONG cElements, \
LPREADSTATE lpReadState) IPURE; \
MAPIMETHOD(ImportMessageMove) \
(THIS_ ULONG cbSourceKeySrcFolder, \
BYTE FAR * pbSourceKeySrcFolder, \
ULONG cbSourceKeySrcMessage, \
BYTE FAR * pbSourceKeySrcMessage, \
ULONG cbPCLMessage, \
BYTE FAR * pbPCLMessage, \
ULONG cbSourceKeyDestMessage, \
BYTE FAR * pbSourceKeyDestMessage, \
ULONG cbChangeNumDestMessage, \
BYTE FAR * pbChangeNumDestMessage) IPURE;
#undef INTERFACE
#define INTERFACE IExchangeImportContentsChanges
DECLARE_MAPI_INTERFACE_(IExchangeImportContentsChanges, IUnknown)
{
MAPI_IUNKNOWN_METHODS(PURE)
EXCHANGE_IEXCHANGEIMPORTCONTENTSCHANGES_METHODS(PURE)
};
#undef IMPL
#define IMPL
DECLARE_MAPI_INTERFACE_PTR(IExchangeImportContentsChanges,
LPEXCHANGEIMPORTCONTENTSCHANGES);
/*------------------------------------------------------------------------
*
* "IExchangeImportHierarchyChanges" Interface Declaration
*
* Used for Incremental Synchronization of folder hierarchy
*
*-----------------------------------------------------------------------*/
#define EXCHANGE_IEXCHANGEIMPORTHIERARCHYCHANGES_METHODS(IPURE) \
MAPIMETHOD(GetLastError) \
(THIS_ HRESULT hResult, \
ULONG ulFlags, \
LPMAPIERROR FAR * lppMAPIError) IPURE; \
MAPIMETHOD(Config) \
(THIS_ LPSTREAM lpStream, \
ULONG ulFlags) IPURE; \
MAPIMETHOD(UpdateState) \
(THIS_ LPSTREAM lpStream) IPURE; \
MAPIMETHOD(ImportFolderChange) \
(THIS_ ULONG cpvalChanges, \
LPSPropValue ppvalChanges) IPURE; \
MAPIMETHOD(ImportFolderDeletion) \
(THIS_ ULONG ulFlags, \
LPENTRYLIST lpSrcEntryList) IPURE;
#undef INTERFACE
#define INTERFACE IExchangeImportHierarchyChanges
DECLARE_MAPI_INTERFACE_(IExchangeImportHierarchyChanges, IUnknown)
{
MAPI_IUNKNOWN_METHODS(PURE)
EXCHANGE_IEXCHANGEIMPORTHIERARCHYCHANGES_METHODS(PURE)
};
#undef IMPL
#define IMPL
DECLARE_MAPI_INTERFACE_PTR(IExchangeImportHierarchyChanges,
LPEXCHANGEIMPORTHIERARCHYCHANGES);
/*------------------------------------------------------------------------
*
* Errors returned by Exchange Incremental Change Synchronization Interface
*
*-----------------------------------------------------------------------*/
#define MAKE_SYNC_E(err) (MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, err))
#define MAKE_SYNC_W(warn) (MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, warn))
#define SYNC_E_UNKNOWN_FLAGS MAPI_E_UNKNOWN_FLAGS
#define SYNC_E_INVALID_PARAMETER E_INVALIDARG
#define SYNC_E_ERROR E_FAIL
#define SYNC_E_OBJECT_DELETED MAKE_SYNC_E(0x800)
#define SYNC_E_IGNORE MAKE_SYNC_E(0x801)
#define SYNC_E_CONFLICT MAKE_SYNC_E(0x802)
#define SYNC_E_NO_PARENT MAKE_SYNC_E(0x803)
#define SYNC_E_INCEST MAKE_SYNC_E(0x804)
#define SYNC_E_UNSYNCHRONIZED MAKE_SYNC_E(0x805)
#define SYNC_W_PROGRESS MAKE_SYNC_W(0x820)
#define SYNC_W_CLIENT_CHANGE_NEWER MAKE_SYNC_W(0x821)
/*------------------------------------------------------------------------
*
* Flags used by Exchange Incremental Change Synchronization Interface
*
*-----------------------------------------------------------------------*/
#define SYNC_UNICODE 0x01
#define SYNC_NO_DELETIONS 0x02
#define SYNC_NO_SOFT_DELETIONS 0x04
#define SYNC_READ_STATE 0x08
#define SYNC_ASSOCIATED 0x10
#define SYNC_NORMAL 0x20
#define SYNC_NO_CONFLICTS 0x40
#define SYNC_ONLY_SPECIFIED_PROPS 0x80
#define SYNC_NO_FOREIGN_KEYS 0x100
#define SYNC_LIMITED_IMESSAGE 0x200
/*------------------------------------------------------------------------
*
* Flags used by ImportMessageDeletion and ImportFolderDeletion methods
*
*-----------------------------------------------------------------------*/
#define SYNC_SOFT_DELETE 0x01
#define SYNC_EXPIRY 0x02
/*------------------------------------------------------------------------
*
* Flags used by ImportPerUserReadStateChange method
*
*-----------------------------------------------------------------------*/
#define SYNC_READ 0x01
/*------------------------------------------------------------------------
*
* "IExchangeFavorites" Interface Declaration
*
* Used for adding or removing favorite folders from the public store.
* This interface is obtained by calling QueryInterface on the folder
* whose EntryID is specified by PR_IPM_FAVORITES_ENTRYID on the public
* store.
*
*-----------------------------------------------------------------------*/
#define EXCHANGE_IEXCHANGEFAVORITES_METHODS(IPURE) \
MAPIMETHOD(GetLastError) \
(THIS_ HRESULT hResult, \
ULONG ulFlags, \
LPMAPIERROR FAR * lppMAPIError) IPURE; \
MAPIMETHOD(AddFavorites) \
(THIS_ LPENTRYLIST lpEntryList) IPURE; \
MAPIMETHOD(DelFavorites) \
(THIS_ LPENTRYLIST lpEntryList) IPURE; \
#undef INTERFACE
#define INTERFACE IExchangeFavorites
DECLARE_MAPI_INTERFACE_(IExchangeFavorites, IUnknown)
{
MAPI_IUNKNOWN_METHODS(PURE)
EXCHANGE_IEXCHANGEFAVORITES_METHODS(PURE)
};
DECLARE_MAPI_INTERFACE_PTR(IExchangeFavorites, LPEXCHANGEFAVORITES);
/*------------------------------------------------------------------------
*
* Properties used by the Offline Folders API
*
*-----------------------------------------------------------------------*/
#define PR_OFFLINE_FLAGS PROP_TAG( PT_LONG, pidFolderMin + 0x5)
#define PR_SYNCHRONIZE_FLAGS PROP_TAG( PT_LONG, pidExchangeNonXmitReservedMin + 0x4)
/*------------------------------------------------------------------------
*
* Flags used by the Offline Folders API
*
*-----------------------------------------------------------------------*/
#define OF_AVAILABLE_OFFLINE ((ULONG) 0x00000001)
#define OF_FORCE ((ULONG) 0x80000000)
#define SF_DISABLE_STARTUP_SYNC ((ULONG) 0x00000001)
#pragma option pop /*P_O_Pop*/
#endif //EDKMDB_INCLUDED
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -