IProfSect : IMAPIProp

适用于:Outlook 2013 | Outlook 2016

使用配置文件节对象的属性。

属性
标头文件:
Mapix.h
公开者:
Profile 节对象
实现者:
MAPI
调用者:
客户端应用程序和服务提供商
接口标识符:
IID_IProfSect
指针类型:
LPPROFSECT
事务模型:
非事务处理

Vtable 顺序

此接口没有任何唯一的方法。

必需属性 Access
PR_OBJECT_TYPE (PidTagObjectType)
只读
PR_PROFILE_NAME (PidTagProfileName)
只读

给调用方的说明

IProfSect 接口没有任何自己的唯一方法,但可以调用配置文件部分的 IMAPIProp 方法。 IProfSect 实现与 IMAPIProp 的其他实现之间存在一些差异:

  • IProfSect 不支持事务模型。

  • IProfSect 不支持命名属性。

  • IProfSect 保留标识符范围0x67F0,以0x67ff安全属性。

不支持事务模型意味着在调用 IMAPIProp::CopyProps 和 IMAPIProp::CopyTo 方法后对配置文件部分所做的所有更改都会立即发生。 对 IMAPIProp::SaveChanges 方法的 调用成功,但实际上不会保存任何更改。

为了防止过早发生更改,服务提供商需要创建通过属性表显示给用户的配置文件部分的副本。 属性表应使用副本,而不是实际配置文件部分。 当用户单击“ 确定” 按钮以验证更改是否准确时,更改可以保存到“真实配置文件”部分。

若要使用复制的配置文件部分实现属性表,请使用以下过程:

  1. 通过调用 IMAPISupport::OpenProfileSectionIProviderAdmin::OpenProfileSection 方法打开配置文件部分。

  2. 调用 CreateIProp 函数以检索属性数据对象 (一个支持 IPropData 接口的对象)。

  3. 调用配置文件部分的 IMAPIProp::CopyTo 方法,将属性表上显示的属性从配置文件部分复制到属性数据对象。

  4. 调用 IMAPISupport::D oConfigPropSheet 方法以请求服务提供程序显示属性表,并在 lpConfigData 参数中传递指向属性数据对象的指针。

  5. 当用户将更改保存到属性表中的配置属性时,调用 IMAPIProp::CopyTo 方法,将属性数据对象中的属性复制回配置文件部分。

与其他对象不同,配置文件部分不支持命名属性。 IMAPIProp::GetIDsFromNamesIMAPIProp::GetNamesFromIDs 方法返回MAPI_E_NO_SUPPORT(如果它们是在配置文件部分对象上调用的)。 如果使用 IMAPIProp::SetProps 方法设置上述0x8000范围内的属性标识符,则将返回 PT_ERROR 属性类型。

配置文件部分保留标识符范围0x67F0,以0x67FF安全属性。 服务提供商可以使用此范围来存储密码和其他特定于提供程序的凭据。 在 IMAPIProp::GetProps 方法的 lpPropTag 参数中传递 NULL 时,此范围内的属性不会在属性的完整列表中返回,也不会在 IMAPIProp::GetPropList 方法的 lppPropTagArray 参数中返回这些属性。 必须按其标识符专门请求安全属性。

MAPI 为配置文件部分提供硬编码常量MUID_PROFILE_INSTANCE作为其标识符, PR_SEARCH_KEY (PidTagSearchKey) 作为其单个属性。 MAPI 可确保 PR_SEARCH_KEY 属性值在所有创建的配置文件中都是唯一的。 当唯一性很重要时,请使用 PR_SEARCH_KEY 而不是 PR_PROFILE_NAME ,因为删除的配置文件后跟另一个具有相同名称的配置文件。

有关如何使用配置文件部分的详细信息,请参阅 管理配置文件和消息服务

另请参阅

MAPI 接口