检索主要标识和提供程序标识

适用于:Outlook 2013 | Outlook 2016

服务提供商(通常是通讯簿提供商)可以选择提供可用于在各种情况下表示会话的标识。 三个属性描述提供程序的标识:

这些属性设置为相应标识对象的条目标识符、显示名称和搜索键,该对象通常是消息用户。 提供标识的提供程序 还会在其PR_RESOURCE_FLAGS (PidTagResourceFlags) 属性中设置STATUS_PRIMARY_IDENTITY标志。

根据需求,可以使用特定提供程序的标识或会话的主要标识。 还可以将提供程序的标识用于显示目的或检索属性,例如 PR_RESOURCE_PATH (PidTagResourcePath) 。 PR_RESOURCE_PATH(如果已设置)包含提供程序使用或创建的文件的路径。 当你想要查找与会话用户相关的文件时,检索提供主标识的提供程序的 PR_RESOURCE_PATH 属性。

检索特定提供程序的标识

  1. 调用 IMAPISession::GetStatusTable 以访问状态表。

  2. 使用 SPropertyRestriction 结构生成限制,以将 PR_PROVIDER_DLL_NAME (PidTagProviderDllName) 列与指定提供程序的名称相匹配。

  3. 调用 IMAPITable::FindRow 以查找提供程序的行。 提供程序的标识将存储在 PR_IDENTITY_ENTRYID 列中(如果存在)。

检索会话的主标识

  • 调用 IMAPISession::QueryIdentityQueryIdentity 基于状态表中某行 PR_RESOURCE_FLAGS列中是否存在 STATUS_PRIMARY_IDENTITY值的会话标识。 如果状态行都没有设置此值, QueryIdentity 会将标识分配给设置三个PR_IDENTITY属性的第一个服务提供程序。 如果没有服务提供商提供标识, QueryIdentity 将返回MAPI_W_NO_SERVICE。 发生这种情况时,应创建一个字符串来表示可用作主标识的通用用户。

显式设置会话的主标识