提供程序表

适用于:Outlook 2013 | Outlook 2016

提供程序表包含有关服务提供商的信息。 有两个不同的提供程序表,这两个表都由 MAPI 实现,由客户端使用。 通过调用 IMsgServiceAdmin::GetProviderTable 方法访问的第一个表保存有关当前配置文件的所有提供程序的信息。 第二个表通过 IProviderAdmin::GetProviderTable 访问,创建一个表,用于存储有关消息服务的所有服务提供程序的信息。

这两个表有另一个区别。 通过 IMsgServiceAdmin::GetProviderTable 提供的提供程序表仅包含表示服务提供程序的行,而通过 IProviderAdmin::GetProviderTable 提供的表可能包含表示与服务提供商关联的其他信息的行。 此额外信息将添加到具有 MAPISVC.INF 的“分区”关键字 (keyword) 的配置文件中。 当提供程序具有额外的配置文件部分时,它将这些节的 MAPIUID 值存储在 PR_SERVICE_EXTRA_UIDS (PidTagServiceExtraUids) 属性中。 PR_SERVICE_EXTRA_UIDS 保存在消息服务配置文件部分中。

以下属性构成这两种类型的提供程序表中所需的列集:

属性
PR_INSTANCE_KEY (PidTagInstanceKey)
PR_DISPLAY_NAME (PidTagDisplayName)
PR_PROVIDER_DISPLAY (PidTagProviderDisplay)
PR_PROVIDER_DLL_NAME (PidTagProviderDllName)
PR_PROVIDER_ORDINAL (PidTagProviderOrdinal)
PR_PROVIDER_UID (PidTagProviderUid)
PR_RESOURCE_FLAGS (PidTagResourceFlags)
PR_RESOURCE_TYPE (PidTagResourceType)
PR_SERVICE_NAME (PidTagServiceName)
PR_SERVICE_UID (PidTagServiceUid)

提供程序表可用于显示当前传输顺序或更改它。 若要显示当前顺序,请构建一个限制,以仅检索 PR_RESOURCE_TYPE 属性设置为MAPI_TRANSPORT_PROVIDER的行。 然后使用 PR_PROVIDER_ORDINAL 作为排序键,使用 IMAPITable::QueryRows 方法或 HrQueryAllRows 函数对表进行排序并检索所有行。

若要更改传输顺序,请应用相同的限制并检索行。 然后,从表示传输提供程序的唯一标识符 的 PR_PROVIDER_UID 属性创建值数组。 当标识符按所需顺序时,将它们传递给 IMsgServiceAdmin::MsgServiceTransportOrder 方法。

提供程序表可用后,它不会反映后续更改,例如添加或删除提供程序。

另请参阅

MAPI 表