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 的类和接口标识符。

Constant 定义
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 的类和接口标识符。

Constant 定义
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 存储部分。

其他常量

Constant 定义
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 };
Constant 定义
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::OpenEntryIMAPISession::OpenEntryIMsgStore::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 存储接合的接口标识符。

Constant 定义 说明
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);

使用在 Windows SDK 头文件 guiddef.h 中定义的 DEFINE_OLEGUID 宏将以下 GUID 符号名称与及其值相关联。

//{00020393-0000-0000-C000-000000000046}
DEFINE_OLEGUID(IID_IMSCapabilities, 0x00020393, 0, 0)

MAPI 通讯簿常量

本部分包含 MAPI 通讯簿的常量定义。

Constant 定义 说明
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 使用的接口标识符。

Constant 定义 说明
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 参数中的 Simple 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 服务器,而不需要特殊的重新配置,但是一些其他错误代码可以返回给客户端。

Constant 定义 说明
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_ERRORMAPI_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 规范属性主题。

标识符

使用在 Microsoft Windows 软件开发工具包 (SDK) 头文件 guiddef.h 中定义的 DEFINE_OLEGUID 宏,将以下 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);

另请参阅