MAPI 常量
适用于:Outlook 2013 | Outlook 2016
本主题包含常量定义、MAPI 接口声明,以及 MAPI API 使用的类和接口标识符。
类和接口标识符
使用在 Microsoft Windows 软件开发工具包 (SDK) 头文件 guiddef.h 中定义的 DEFINE_GUID 宏,将全局唯一标识符 (GUID) 符号名称与其值关联起来,除非另有说明。
附件安全转换 API
本部分包含常量定义和附件安全 API 的接口标识符。
// {b2533636-c3f3-416f-bf04-aefe41abaae2}
DEFINE_GUID(IID_IAttachmentSecurity, 0xb2533636, 0xc3f3, 0x416f, 0xbf, 0x04, 0xae, 0xfe, 0x41, 0xab, 0xaa, 0xe2);
使用在 Windows SDK 头文件 mapidefs.h 中定义的 MAPIMETHOD 宏来定义纯虚函数 IsAttachmentBlocked。
#define MAPI_IATTACHMENTSECURITY_METHODS(IPURE) MAPIMETHOD(IsAttachmentBlocked) (LPCWSTR pwszFileName, BOOL *pfBlocked) IPURE;
使用在 Windows SDK 头文件 mapidefs.h 中定义的 DECLARE_MAPI_INTERFACE_ 宏来定义 IAttachmentSecurity 的虚拟方法表。
DECLARE_MAPI_INTERFACE_(IAttachmentSecurity, IUnknown)
{
BEGIN_INTERFACE
MAPI_IUNKNOWN_METHODS(PURE)
MAPI_IATTACHMENTSECURITY_METHODS(PURE)
};
MAPI-MIME 转换 API
本部分包含常量定义和 MAPI-MIME 转换 API 的类和接口标识符。
常量 | 定义 |
---|---|
CCSF_SMTP |
0x0002 |
CCSF_NOHEADERS |
0x0004 |
CCSF_USE_TNEF |
0x0010 |
CCSF_INCLUDE_BCC |
0x0020 |
CCSF_8BITHEADERS |
0x0040 |
CCSF_USE_RTF |
0x0080 |
CCSF_PLAIN_TEXT_ONLY |
0x1000 |
CCSF_NO_MSGID |
0x4000 |
CCSF_GLOBAL_MESSAGE |
0x00200000 |
E_INVALIDARG |
如 Microsoft Windows 软件开发工具包 (SDK) 头文件 winerror.h 中所定义 |
类标识符
// {4e3a7680-b77a-11d0-9da5-00c04fd65685}
DEFINE_GUID(CLSID_IConverterSession, 0x4e3a7680, 0xb77a, 0x11d0, 0x9d, 0xa5, 0x0, 0xc0, 0x4f, 0xd6, 0x56, 0x85);
接口标识符
// {4b401570-b77b-11d0-9da5-00c04fd65685}
DEFINE_GUID(IID_IConverterSession, 0x4b401570, 0xb77b, 0x11d0, 0x9d, 0xa5, 0x0, 0xc0, 0x4f, 0xd6, 0x56, 0x85);
脱机状态 API
本部分包含常量定义和脱机状态 API 的类和接口标识符。
常量 | 定义 |
---|---|
E_INVALIDARG |
如 Microsoft Windows 软件开发工具包 (SDK) 头文件 winerror.h 中所定义 |
E_NOINTERFACE |
如 Windows (SDK) 头文件 winerror.h 中所定义 |
MAPIOFFLINE_ADVISE_DEFAULT |
(ULONG)0 |
MAPIOFFLINE_UNADVISE_DEFAULT |
(ULONG)0 |
MAPIOFFLINE_ADVISE_TYPE_STATECHANGE |
1 |
MAPIOFFLINE_CAPABILITY_OFFLINE |
0x1 |
MAPIOFFLINE_CAPABILITY_ONLINE |
0x2 |
MAPIOFFLINE_FLAG_BLOCK |
0x00002000 |
MAPIOFFLINE_FLAG_DEFAULT |
0x00000000 |
MAPIOFFLINE_STATE_ALL |
0x003f037f |
联机或脱机 |
|
MAPIOFFLINE_STATE_OFFLINE_MASK |
0x00000003 |
MAPIOFFLINE_STATE_OFFLINE |
0x00000001 |
MAPIOFFLINE_STATE_ONLINE |
0x00000002 |
类标识符
//{fbeffd93-b11f-4094-842b-96dcd31e63d1}
DEFINE_GUID(GUID_GlobalState, 0xfbeffd93, 0xb11f, 0x4094, 0x84, 0x2b, 0x96, 0xdc, 0xd3, 0x1e, 0x63, 0xd1);
接口标识符
//{000672B5-0000-0000-c000-000000000046}
DEFINE_GUID(IID_IMAPIOffline, 0x000672B5, 0x0000, 0x0000, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x46);
//{0317bde5-fc29-44cd-8dcd-36125a3be9ec}
DEFINE_GUID(IID_IMAPIOfflineNotify, 0x0317bde5, 0xfc29, 0x44cd, 0x8d, 0xcd, 0x36, 0x12, 0x5a, 0x3b, 0xe9, 0xec);
//{42175607-ff3e-4790-bc18-66c8643e6424
DEFINE_GUID(IID_IMAPIOfflineMgr, 0x42175607, 0xFF3E, 0x4790, 0xbc, 0x18, 0x66, 0xc8, 0x64, 0x3e, 0x64, 0x24);
Outlook 命名属性
本部分包含命名属性的常量定义及其命名空间和其他相关常量。
命名属性定义
#define dispidMeetingType0x0026
#define dispidFileUnder0x8005
#define dispidYomiFirstName 0x802C
#define dispidYomiLastName 0x802D
#define dispidYomiCompanyName 0x802E
#define dispidWorkAddressStreet 0x8045
#define dispidWorkAddressCity 0x8046
#define dispidWorkAddressState 0x8047
#define dispidWorkAddressPostalCode 0x8048
#define dispidWorkAddressCountry 0x8049
#define dispidWorkAddressPostOfficeBox 0x804A
#define dispidInstMsg 0x8062
#define dispidEmailDisplayName 0x8080
#define dispidEmailAddrType 0x8082
#define dispidEmailEmailAddress 0x8083
#define dispidEmailOriginalDisplayName 0x8084
#define dispidEmail1OriginalEntryID0x8085
#define dispidEmail2DisplayName 0x8090
#define dispidEmail2AddrType 0x8092
#define dispidEmail2EmailAddress 0x8093
#define dispidEmail2OriginalDisplayName 0x8094
#define dispidEmail2OriginalEntryID0x8095
#define dispidEmail3DisplayName 0x80A0
#define dispidEmail3AddrType 0x80A2
#define dispidEmail3EmailAddress 0x80A3
#define dispidEmail3OriginalDisplayName 0x80A4
#define dispidEmail3OriginalEntryID0x80A5
#define dispidTaskStatus 0x8101
#define dispidTaskStartDate 0x8104
#define dispidTaskDueDate 0x8105
#define dispidTaskActualEffort 0x8110
#define dispidTaskEstimatedEffort 0x8111
#define dispidTaskFRecur 0x8126
#define dispidBusyStatus0x8205
#define dispidLocation 0x8208
#define dispidApptStartWhole 0x820D
#define dispidApptEndWhole 0x820E
#define dispidApptDuration 0x8213
#define dispidRecurring 0x8223
#define dispidTimeZoneStruct0x8233
#define dispidAllAttendeesString 0x8238
#define dispidToAttendeesString 0x823B
#define dispidCCAttendeesString 0x823C
#define dispidConfCheck0x8240
#define dispidApptCounterProposal 0x8257
#define dispidApptTZDefStartDisplay0x825E
#define dispidApptTZDefEndDisplay0x825F
#define dispidApptTZDefRecur0x8260
#define dispidReminderTime0x8502
#define dispidReminderSet 0x8503
#define dispidFormStorage0x850F
#define dispidPageDirStream0x8513
#define dispidSmartNoAttach 0x8514
#define dispidCommonStart 0x8516
#define dispidCommonEnd 0x8517
#define dispidFormPropStream0x851B
#define dispidRequest 0x8530
#define dispidCompanies 0x8539
#define dispidContacts0x853A
#define dispidPropDefStream0x8540
#define dispidScriptStream0x8541
#define dispidCustomFlag0x8542
#define dispidReminderNextTime 0x8560
#define dispidHeaderItem0x8578
#define dispidUseTNEF0x8582
#define dispidToDoTitle0x85A4
#define dispidLogType 0x8700
#define dispidLogStart 0x8706
#define dispidLogDuration 0x8707
#define dispidLogEnd 0x8708
命名空间定义
以下全局唯一标识符 (GUID) 代表命名属性的命名空间。
const GUID PS_INTERNET_HEADERS = {0x00020386, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}};
const GUID PS_PUBLIC_STRINGS = {0x00020329, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}};
const GUID PSETID_Appointment= {0x00062002, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}};
const GUID PSETID_Address = {0x00062004, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}};
const GUID PSETID_Common = {0x00062008, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}};
const GUID PSETID_Log = {0x0006200A, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}};
const GUID PSETID_Meeting = {0x6ED8DA90, 0x450B, 0x101B, {0x98, 0xDA, 0x00, 0xAA, 0x00, 0x3F, 0x13, 0x05}};
const GUID PSETID_Task = {0x00062003, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}};
参考 PSETID 定义的 MAPI 存储部分。
其他常量
常量 | 定义 |
---|---|
INSP_ONEOFFFLAGS |
0xD000000 |
INSP_PROPDEFINITION |
0x2000000 |
MNID_ID |
如头文件 mapidefs.h 中所定义。 |
MNID_STRING |
如头文件 mapidefs.h 中所定义。 |
mtgNone |
0x0 |
mtgRequest |
0x00000001 |
mtgFullUpdate |
0x00010000 |
mtgInfoUpdate |
0x00020000 |
mtgOutofDate |
0x00080000 |
mtgDelegated |
0x00100000 |
复制 API
本部分包含常量定义、MAPI 接口声明,以及复制 API 的类和接口标识符。
下面是识别 MAPI 服务提供商的 MAPIUID 结构:
const MAPIUID g_muidProvPrvNST =
{ 0xE9, 0x2F, 0xEB, 0x75, 0x96, 0x50, 0x44, 0x86,
0x83, 0xB8, 0x7D, 0xE5, 0x22, 0xAA, 0x49, 0x48 };
常量 | 定义 |
---|---|
DNH_OK |
0x00010000 |
DNT_OK |
0x00010000 |
HSF_LOCAL |
0x00000008 |
HSF_COPYDESTRUCTIVE |
0x00000010 |
HSF_OK |
0x00010000 |
MDB_OST_LOGON_UNICODE |
((ULONG) 0x00000800) |
MDB_OST_LOGON_ANSI |
((ULONG) 0x00001000) |
SHOW_SOFT_DELETES |
((ULONG) 0x00000002) |
SS_ACTIVE |
0 |
SS_SUSPENDED |
1 |
SYNC_UPLOAD_HIERARCHY |
0x00000001 |
SYNC_DOWNLOAD_HIERARCHY |
0x00000002 |
SYNC_UPLOAD_CONTENTS |
0x00000040 |
SYNC_DOWNLOAD_CONTENTS |
0x00000080 |
SYNC_OUTGOING_MAIL |
0x00000200 |
SYNC_BACKGROUND |
0x00001000 |
SYNC_THESE_FOLDERS |
0x00020000 |
SYNC_HEADERS |
0x02000000 |
UPC_OK |
0x00010000 |
UPD_ASSOC |
0x00000001 |
UPD_MOV |
0x00000002 |
UPD_OK |
0x00010000 |
UPD_MOVED |
0x00020000 |
UPD_UPDATE |
0x00040000 |
UPD_COMMIT |
0x00080000 |
UPF_NEW |
0x00000001 |
UPF_MOD_PARENT |
0x00000002 |
UPF_MOD_PROPS |
0x00000004 |
UPF_DEL |
0x00000008 |
UPF_OK |
0x00010000 |
UPH_OK |
0x00010000 |
UPM_ASSOC |
0x00000001 |
UPM_NEW |
0x00000002 |
UPM_MOV |
0x00000004 |
UPM_MOD_PROPS |
0x00000008 |
UPM_HEADER |
0x00000010 |
UPM_OK |
0x00010000 |
UPM_MOVED |
0x00020000 |
UPM_COMMIT |
0x00040000 |
UPM_DELETE |
0x00080000 |
UPM_SAVE |
0x00100000 |
UPR_ASSOC |
0x00000001 |
UPR_READ |
0x00000002 |
UPR_OK |
0x00010000 |
UPR_COMMIT |
0x00020000 |
UPS_UPLOAD_ONLY |
0x00000001 |
UPS_DNLOAD_ONLY |
0x00000002 |
UPS_ONE_FOLDER |
0x00000004 |
UPS_THESE_FOLDERS |
0x00000080 |
UPS_OK |
0x00010000 |
UPT_OK |
0x00010000 |
UPT_PUBLIC |
0x00000001 |
UPV_ERROR |
0x00010000 |
UPV_DIRTY |
0x00020000 |
UPV_COMMIT |
0x00040000 |
接口声明
DECLARE_MAPI_INTERFACE_PTR(IExchangeImportHierarchyChanges,PXIHC);
DECLARE_MAPI_INTERFACE_PTR(IExchangeImportContentsChanges,PXICC);
接口标识符
//{4FDEEFF0-0319-11CF-B4CF-00AA0DBBB6E6}
DEFINE_GUID (IID_IPSTX, 0x4FDEEFF0, 0x0319, 0x11CF, 0xB4, 0xCF, 0x00, 0xAA, 0x0D, 0xBB, 0xB6, 0xE6)
//{2067A790-2A45-11D1-EB86-00A0C90DCA6D}
DEFINE_GUID (IID_IPSTX2, 0x2067A790, 0x2A45, 0x11D1, 0xEB, 0x86, 0x00, 0xA0, 0xC9, 0x0D, 0xCA, 0x6D)
//{55f15320-111b-11d2-a999-006008b05aa7}
DEFINE_GUID (IID_IPSTX3, 0x55f15320, 0x111b, 0x11d2, 0xa9, 0x99, 0x00, 0x60, 0x08, 0xb0, 0x5a, 0xa7)
//{aa2e2092-ac08-11d2-a2f9-0060b0ec3d4f}
DEFINE_GUID (IID_IPSTX4, 0xaa2e2092, 0xac08, 0x11d2, 0xa2, 0xf9, 0x00, 0x60, 0xb0, 0xec, 0x3d, 0x4f)
//{55f15322-111b-11d2-a999-006008b05aa7}
DEFINE_GUID (IID_IPSTX5, 0x55f15322, 0x111b, 0x11d2, 0xa9, 0x99, 0x00, 0x60, 0x08, 0xb0, 0x5a, 0xa7)
//{55f15323-111b-11d2-a999-006008b05aa7}
DEFINE_GUID (IID_IPSTX6, 0x55f15323, 0x111b, 0x11d2, 0xa9, 0x99, 0x00, 0x60, 0x08, 0xb0, 0x5a, 0xa7)
//{d2d85db4-840f-49b8-9982-07d2405ec6b7}
DEFINE_GUID (IID_IOSTX, 0xd2d85db4, 0x840f, 0x49b8, 0x99, 0x82, 0x07, 0xd2, 0x40, 0x5e, 0xc6, 0xb7)
将以下两个接口标识符与 IMAPIContainer::OpenEntry、IMAPISession::OpenEntry 或 IMsgStore::OpenEntry 配合使用以分别打开并忽略针对文件夹对象和邮件对象的任何提供商检查。
//{57D333A0-F589-4b23-A3F9-85F82FEC153C}
DEFINE_GUID (IID_IMAPIFolderNoProvChk, 0x57D333A0, 0xF589, 0x4b23, 0xA3, 0xF9, 0x85, 0xF8, 0x2F, 0xEC, 0x15, 0x3C)
//{C3505457-7B2E-4c3b-A8D6-6DD949BB97A1}
DEFINE_GUID (IID_IMessageNoProvChk, 0xC3505457, 0x7B2E, 0x4c3b, 0xA8, 0xD6, 0x6D, 0xD9, 0x49, 0xBB, 0x97, 0xA1)
MAPI 存储
本部分包含常量定义和 API 使用的与 MAPI 存储接合的接口标识符。
常量 | 定义 | 说明 |
---|---|---|
fnevIndexing |
((ULONG) 0x00010000) |
存储提供程序可以指定通知结构 ulEventType 成员中的 fnevIndexing,以通知索引器对象已准备好进行索引。 通知结构的 info 成员包含 EXTENDED_NOTIFICATION 结构。 |
FS_NONE |
0x00 |
客户端可以调用 IFolderSupport::GetSupportMask 并检查返回的位掩码。 FS_NONE 指示文件夹不支持共享。 |
FS_SUPPORTS_SHARING |
0x01 |
客户端可以调用 IFolderSupport::GetSupportMask 并检查返回的位掩码。 FS_SUPPORTS_SHARING 指示文件夹支持共享。 |
INDEXING_SEARCH_OWNER |
((ULONG) 0x00000001) |
标识将通知推送到索引器指示对象已准备好索引的进程。 |
MNID_ID |
如 Microsoft Windows 软件开发工具包 (SDK) 头文件 mapidefs.h 中所定义的 |
MAPINAMEID 结构的 ulKind 字段的值。 |
MNID_STRING |
如 Microsoft Windows 软件开发工具包 (SDK) 头文件 mapidefs.h 中所定义。 | MAPINAMEID 结构的 ulKind 字段的值。 |
MSCAP_RES_ANNOTATION |
((ULONG) 0x00000001) |
如果客户端在 mscapSelector 中为 IMSCapabilities::GetCapabilities 指定了MSCAP_SEL_RESTRICTION,则如果存储区忽略了限制中的无效参数,则 GetCapabilities 可以返回此值。 |
MSCAP_SECURE_FOLDER_HOMEPAGES |
((ULONG) 0x00000001) |
如果客户端在 mscapSelector 中为 IMSCapabilities::GetCapabilities 指定MSCAP_SEL_FOLDER,则如果存储区是支持文件夹主页的非默认存储区,则 GetCapabilities 可以返回此值。 |
STORE_PUSHER_OK |
((ULONG) 0x00800000) |
客户端可以获取属性 PR_SUPPORT_MASK 来确定邮件存储的特征。 如果存储提供程序在位掩码中设置 STORE_PUSHER_OK 标记,这意味着 MAPI 协议处理程序不会对存储区进行爬网,且存储区负责通过通知将任何更改推送到索引器来索引邮件。 |
命名空间定义
以下全局唯一标识符 (GUID) 代表命名属性的命名空间。 他们已通过 MAPI 协议处理程序 (PH) 编制索引,并被记录为只读。
警告
命名属性不应用于创建或修改项。
const GUID PS_INTERNET_HEADERS = {0x00020386, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}};
const GUID PS_PUBLIC_STRINGS = {0x00020329, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}};
const GUID PSETID_Address = {0x00062004, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}};
const GUID PSETID_Appointment = {0x00062002, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}};
const GUID PSETID_Common = {0x00062008, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}};
const GUID PSETID_Log = {0x0006200A, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}};
const GUID PSETID_Meeting = {0x6ED8DA90, 0x450B, 0x101B, {0x98, 0xDA, 0x00, 0xAA, 0x00, 0x3F, 0x13, 0x05}};
const GUID PSETID_Task = {0x00062003, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}};
MNID_ID Properties
// In PSETID_Address
#define dispidWorkAddressStreet 0x8045
#define dispidWorkAddressCity 0x8046
#define dispidWorkAddressState 0x8047
#define dispidWorkAddressPostalCode 0x8048
#define dispidWorkAddressCountry 0x8049
#define dispidInstMsg 0x8062
#define dispidEmailDisplayName 0x8080
#define dispidEmailOriginalDisplayName 0x8084
// In PSETID_Appointment
#define dispidLocation 0x8208
#define dispidApptStartWhole 0x820D
#define dispidApptEndWhole 0x820E
#define dispidApptDuration 0x8213
#define dispidRecurring 0x8223
#define dispidAllAttendeesString 0x8238
#define dispidToAttendeesString 0x823B
#define dispidCCAttendeesString 0x823C
// In PSETID_Common
#define dispidReminderSet 0x8503
#define dispidSmartNoAttach 0x8514
#define dispidCommonStart 0x8516
#define dispidCommonEnd 0x8517
#define dispidRequest 0x8530
#define dispidCompanies 0x8539
#define dispidReminderNextTime 0x8560
// In PSETID_Log (also known as Journal)
#define dispidLogType 0x8700
#define dispidLogStart 0x8706
#define dispidLogDuration 0x8707
#define dispidLogEnd 0x8708MNID_STRING properties
// In PSETID_Task
#define dispidTaskStartDate 0x8104
#define dispidTaskDueDate 0x8105
#define dispidTaskActualEffort 0x8110
#define dispidTaskEstimatedEffort 0x8111
#define dispidTaskFRecur 0x8126
MNID_STRING Properties
// In PS_PUBLIC_STRINGS
"Keywords"
// In PS_INTERNET_HEADERS
"return-path"
接口标识符
//{00375ac3-ecaf-4ef8-a527-34f452fa9c67}
DEFINE_GUID(IID_IFolderSupport, 0x00375ac3, 0xecaf, 0x4ef8, 0xa5, 0x27, 0x34, 0xf4, 0x52, 0xfa, 0x9c, 0x67);
//{29F3AB10-554d-11d0-a97c-00a0c911f50a}
#define DEFINE_PRXGUID(_name, _l) DEFINE_GUID(_name, (0x29f3ab10 + _l), 0x554d, 0x11d0, 0xa9, 0x7c, 0x00, 0xa0, 0xc9, 0x11, 0xf5, 0x0a)
DEFINE_PRXGUID(IID_IProxyStoreObject, 0x00000000L);
DEFINE_OLEGUID
使用 Windows SDK 头文件 guiddef.h 中定义的宏将以下 GUID 符号名称与其值相关联。
//{00020393-0000-0000-C000-000000000046}
DEFINE_OLEGUID(IID_IMSCapabilities, 0x00020393, 0, 0)
MAPI 通讯簿常量
本部分包含 MAPI 通讯簿的常量定义。
常量 | 定义 | 说明 |
---|---|---|
CONTAB_ROOT |
((ULONG) 0x00000001) |
MAPI 通讯簿对象的根文件夹。 |
CONTAB_SUBROOT |
((ULONG) 0x00000002) |
MAPI 通讯簿对象的根文件夹内包含一个子文件。 |
CONTAB_CONTAINER |
((ULONG) 0x00000003) |
通讯簿容器对象。 |
CONTAB_USER |
((ULONG) 0x00000004) |
消息传递用户对象。 |
CONTAB_DISTLIST |
((ULONG) 0x00000005) |
通讯组列表对象。 |
其他 MAPI 常量
本部分包含包括错误代码在内的常量定义,和以前未公开和记录的 MAPI API 使用的接口标识符。
常量 | 定义 | 说明 |
---|---|---|
DIALOG_MODAL |
((ULONG) 0x00000001) |
当客户端调用 IAddrBook::D etails 方法时,客户端必须在 ulFlags 参数中设置DIALOG_MODAL标志,以显示模式对话框,其中显示了有关特定通讯簿条目的详细信息。 此常量在 mapidefs.h 中定义。 |
ITEMPROC_FORCE |
0x00000800 |
在 Outlook 2007 中,包装的 PST 存储区会在通知 MAPI 客户端新邮件之前,对新邮件执行规则和垃圾邮件筛选处理。 使用 IMAPIFolder::CreateMessage 方法在 PST 存储中创建新邮件的提供程序或客户端应在 IMAPIProp::SaveChanges 方法的 ulFlags 参数中设置ITEMPROC_FORCE标志,以在存储通知任何侦听客户端新邮件的到达之前,向 PST 存储指示消息符合规则处理条件。 请注意,此类规则处理仅适用于在除 Microsoft Exchange Server 以外的服务器上创建的新邮件,因为 Exchange Server 处理服务器上的邮件规则。 因此创建邮件的提供商或客户端必须将此标记与 NON_EMS_XP_SAVE 一起传递,表示服务器不是 Exchange 服务器。 |
MAPI_BG_SESSION |
0x00200000 |
客户端可以调用 MAPILogonEx 函数,将 flFlags 参数中的 MAPI_BG_SESSION 标志设置为登录到会话并在后台执行任何操作。 一般情况下,如果客户端打算在后台线程,或者在独立过程中以在前台线程上不显眼的方式执行处理,它应调用带 MAPI_BG_SESSION 标记的 MAPILogonEx。 使用此方法的一个示例是客户端应用程序,例如索引引擎,它会打开用于后台类型访问的个人文件夹文件 (PST)。 |
MAPI_CACHE_ONLY |
0x00004000 |
客户端可以调用 IAddrBook::OpenEntry 方法,在 ulFlags 参数中设置 MAPI_CACHE_ONLY 标志以打开通讯簿条目,然后只能从缓存访问它。 使用此方法的一个示例是想要在缓存 Exchange 模式中打开全局地址列表,并从缓存访问该通讯簿条目的客户端应用程序,而无需在客户端和服务器之间创建流量。 |
MAPI_DIALOG_MODELESS |
0x0000000C |
此值可以传递给 ulFlags 参数中的简单 MAPI MAPISendMail 函数,以指定默认邮件应用程序显示无模式对话框。 如果此标记和 MAPI_DIALOG (0x00000008) 均未设置,将不会显示对话框。 |
MAPI_NO_CACHE |
0x00000200 |
如果 Microsoft Office Outlook 处于缓存 Exchange 模式,并且存储已在缓存模式下打开,则客户端或服务提供商可以调用 IMsgStore::OpenEntry,在 ulFlags 参数中设置MAPI_NO_CACHE标志以打开远程存储上的项目或文件夹。 请注意,如果在远程服务器上使用 MDB_ONLINE 标记打开邮件存储区,则无需使用 MAPI_NO_CACHE 标记。 |
MAPI_UNICODE |
0x80000000 |
客户端或服务提供程序可以调用 OpenIMsgOnIStg 函数,在 ulFlags 参数中设置 MAPI_UNICODE 标志以创建 Unicode .msg 文件。 生成的 IMessage: IMAPIProp 文件显示 STORE_UNICODE_OK 位于其 PidTagStoreSupportMask 规范属性中,且支持 Unicode 属性。 此常量在 mapidefs.h 中定义。 |
MDB_ONLINE |
0x00000100 |
如果 Outlook 处于缓存 Exchange 模式,则客户端或服务提供商可以调用 IMAPISession::OpenMsgStore 方法,在 ulFlags 参数中设置MDB_ONLINE标志,以覆盖与本地邮件存储的连接,并打开远程服务器上的存储。 请注意,不能在同一个 MAPI 会话中同时在缓存模式和非缓存模式下打开 Exchange 存储。 如果已经打开缓存的邮件存储区,或者必须使用此标记关闭存储,或打开新的 MAPI 会话,可以使用此标记在远程服务器上打开 Exchange 存储。 |
NON_EMS_XP_SAVE |
0x00001000 |
客户端可以调用 IMAPIProp::SaveChanges 方法,在 ulFlags 参数中设置 NON_EMS_XP_SAVE 标志,以指示尚未从 Exchange 服务器传递消息。 此标志应与 ulFlags 参数中的 ITEMPROC_FORCE 标志结合使用,以在 PST 存储通知任何侦听客户端邮件到达之前,向 PST 存储指示邮件符合规则处理条件。 此规则仅适用于在除 Exchange 服务器以外的服务器上使用 IMAPIFolder::CreateMessage 创建的新邮件(这种情况下 Exchange 服务器已处理邮件上的规则)。 |
SPAMFILTER_ONSAVE |
0x00000080 |
客户端可以调用 IMAPIProp::SaveChanges,在 ulFlags 参数中设置SPAMFILTER_ONSAVE标志,以对正在保存的邮件启用垃圾邮件筛选。 垃圾邮件筛选支持只有在发件人的电子邮件地址类型为简单邮件传输协议 (SMTP) 且正在将邮件保存到个人文件夹文件 (PST) 存储区的情况下可用。 |
STORE_ITEMPROC |
0x00200000 |
如果在包装的 PST 存储区的 PidTagStoreSupportMask 规范属性中设置此标记,它表示在新邮件到达存储区时,存储区会单独在邮件上处理规则和垃圾邮件。 存储区然后调用 IMAPISupport::Notify,在通知结构中设置作为参数传递的 fnevNewMail,并将新邮件的详细信息传递到侦听客户端。 随后,当侦听客户端收到通知,它不会处理邮件上的规则。 |
STORE_UNICODE_OK |
0x00040000 |
如果此标志包含在 PidTagStoreSupportMask 规范属性中,它表示存储支持 Unicode 存储。 客户端可以查找标记以决定是否请求或将 Unicode 信息保存到存储区。 |
在文件夹中存档项目的定义
以下常量定义是用于设置 PidTagAgingGranularity 规范属性的值。
#define AG_MONTHS 0
#define AG_WEEKS 1
#define AG_DAYS 2
显示远程对象的定义
以下常量和宏定义用于显示远程对象。 有关详细信息,请参阅 PidTagDisplayTypeEx 规范属性。
#define DTE_FLAG_REMOTE_VALID0x80000000
#define DTE_FLAG_ACL_CAPABLE 0x40000000
#define DTE_MASK_REMOTE 0x0000ff00
#define DTE_MASK_LOCAL 0x000000ff
#define DTE_IS_REMOTE_VALID(v)(!!((v) & DTE_FLAG_REMOTE_VALID))
#define DTE_IS_ACL_CAPABLE(v)(!!((v) & DTE_FLAG_ACL_CAPABLE))
#define DTE_REMOTE(v)(((v) & DTE_MASK_REMOTE) >> 8)
#define DTE_LOCAL(v)((v) & DTE_MASK_LOCAL)
#define DT_ROOM((ULONG) 0x00000007)
#define DT_EQUIPMENT((ULONG) 0x00000008)
#define DT_SEC_DISTLIST((ULONG) 0x00000009)
Exchange 通讯簿和邮件存储错误代码定义
下列包含 Exchange 通讯簿以及邮件存储的错误代码定义,它们具有重新连接功能。 对断开连接的全局编录 (GC) 的最后一次调用可能会导致 MAPI_E_END_OF_SESSION 错误,可能需要重试。
Outlook 的 MAPI 支持重新连接到 GC 服务器,而不需要特殊的重新配置,但是一些其他错误代码可以返回给客户端。
常量 | 定义 | 说明 |
---|---|---|
MAPI_E_END_OF_SESSION |
0x80040200 |
断开连接时返回。 |
MAPI_E_RECONNECTED |
0x80040125 |
在远程过程调用 (RPC) 连接令牌过期时返回。 如果当前事务的令牌与表示已重新连接的连接令牌不同,则返回 MAPI_E_RECONNECTED,并且可以被视为MAPI_E_END_OF_SESSION。 应重试调用。 |
MAPI_E_OFFLINE |
0x80040126 |
连接处于脱机状态时返回。 通常情况下,这意味着环境中出现了一些状况,比如服务器故障或网络连接丢失。 该错误最有可能在使用缓存模式配置文件和尝试绕过缓存与服务器通信时发生。 如果缓存无法初始建立到服务器的连接,它可能处于脱机状态,其中可能会显示 MAPI_E_OFFLINE。 |
在所有可能出现的场景中,前两个错误都不会返回。 在大多数情况下,将返回 MAPI_E_NETWORK_ERROR 或 MAPI_E_CALL_FAILED 。 使用 Microsoft Exchange Server MAPI 客户端和协作数据对象 1.2.1 下载,两种错误都不会出现。
Exchange 服务器邮箱缓存模式配额的定义
Microsoft Outlook 2010 和 Microsoft Outlook 2013 使用以下常量定义来设置 Exchange 缓存模式配置文件配额,该配额等同于 Exchange 邮箱配额,只不过只有在使用联机配置文件时才提供。
#define PR_QUOTA_WARNING PROP_TAG( PT_LONG, 0x341A)
#define PR_QUOTA_SEND PROP_TAG( PT_LONG, 0x341B)
#define PR_QUOTA_RECEIVE PROP_TAG( PT_LONG, 0x341C)
这些属性映射到其对应的联机属性并包含以千字节为单位的相同值。 PR_QUOTA_WARNING 映射到 PR_STORAGE_QUOTA_LIMIT,PR_QUOTA_SEND 映射到 PR_QUOTA_PROHIBIT_SEND_QUOTA,以及 PR_QUOTA_RECEIVE 映射到 PR_PROHIBIT_RECEIVE_QUOTA。
邮件格式定义
以下常量定义是用于设置 PidTagMessageEditorFormat 规范属性的值。
#define EDITOR_FORMAT_DONTKNOW ((ULONG) 0)
#define EDITOR_FORMAT_PLAINTEXT ((ULONG) 1)
#define EDITOR_FORMAT_HTML ((ULONG) 2)
#define EDITOR_FORMAT_RTF ((ULONG) 3)
通过 HTTP 使用 RPC 的定义
有关用作标记来设置属性的常量定义,请参阅 PidTagRpcOverHttpFlags 规范属性主题。
有关用于设置属性的常量定义,请参阅 PidTagRpcOverHttpProxyAuthScheme 规范属性主题。
标识符
DEFINE_OLEGUID
使用 Microsoft Windows 软件开发工具包 (Windows SDK) (SDK) 头文件 guiddef.h 中定义的宏将以下 GUID 符号名称与其值相关联。
//{0002038A-0000-0000-C000-000000000046}
#if !defined(INITGUID) || defined(USES_IID_IMessageRaw)
DEFINE_OLEGUID(IID_IMessageRaw,0x0002038A, 0, 0);
#endif
下列标识符用于通讯簿的 Capone 配置文件部分,它支持多个 Exchange (MultiEx) 邮箱,包含一个 PR_AB_CHOOSE_DIRECTORY_AUTOMATICALLY 属性,以便有效地关闭由 SetDefaultDir 指定的默认容器。
// {00020D0A-0000-0000-C000-000000000046}
DEFINE_OLEGUID(IID_CAPONE_PROF, 0x00020d0a, 0, 0);
接口标识符
IMAPISync
DEFINE_GUID(IID_IMAPISync, 0x5024a385, 0x2d44, 0x486a, 0x81, 0xa8, 0x8f, 0xe, 0xcb, 0x60, 0x71, 0xdd);
IMAPISyncProgressCallback
DEFINE_GUID(IID_IMAPISyncProgressCallback, 0x5024a386, 0x2d44, 0x486a, 0x81, 0xa8, 0x8f, 0xe, 0xcb, 0x60, 0x71, 0xdd);
IID_IContabAdmin
// {CC6A3BA9-E7F5-4769-887B-34E190817BFC}
DEFINE_GUID(IID_IContabAdmin, 0xcc6a3ba9, 0xe7f5, 0x4769, 0x88, 0x7b, 0x34, 0xe1, 0x90, 0x81, 0x7b, 0xfc);
IID_IMAPISECUREMESSAGE
DEFINE_GUID(IID_IMAPISecureMessage, 0x253cc320, 0xeab6, 0x11d0, 0x82, 0x22, 0, 0x60, 0x97, 0x93, 0x87, 0xea);
IID_IMAPIGetSession
DEFINE_GUID(IID_IMAPIGetSession, 0x614ab435, 0x491d, 0x4f5b, 0xa8, 0xb4, 0x60, 0xeb, 0x3, 0x10, 0x30, 0xc6);
PST 重写处理程序接口标识符
IID_IPSTOVERRIDEREQ
// {892EBC6D-24DC-4d90-BA48-C6CBEC14A86A}
DEFINE_GUID(IID_IPSTOVERRIDEREQ, 0x892ebc6d, 0x24dc, 0x4d90, 0xba, 0x48, 0xc6, 0xcb, 0xec, 0x14, 0xa8, 0x6a);
IID_IPSTOVERRIDE1
// {FBB68D34-F561-44fb-A8CA-AE36696342CA}
DEFINE_GUID(IID_IPSTOVERRIDE1, 0xfbb68d34, 0xf561, 0x44fb, 0xa8, 0xca, 0xae, 0x36, 0x69, 0x63, 0x42, 0xca);