IMsgServiceAdmin::GetProviderTable
适用于:Outlook 2013 | Outlook 2016
提供对提供程序表(配置文件中的服务提供商列表)的访问权限。
HRESULT GetProviderTable(
ULONG ulFlags,
LPMAPITABLE FAR * lppTable
);
参数
ulFlags
[in]始终为 NULL。
lppTable
[out]指向提供程序表的指针的指针。
返回值
S_OK
已成功返回提供程序表。
备注
IMsgServiceAdmin::GetProviderTable 方法提供对 MAPI 提供程序表的访问权限,该表列出了配置文件中当前安装的所有通讯簿、消息存储和传输提供程序。
与通过 IProviderAdmin::GetProviderTable 方法返回的提供程序表不同,通过 IMsgServiceAdmin::GetProviderTable 返回的提供程序表不能包含表示与配置文件中的一个或多个服务提供程序关联的信息的其他行。
已删除或正在使用但已标记为删除的提供程序不包括在提供程序表中。 提供程序表是静态的,这意味着对配置文件的后续添加或删除不会反映在表中。
如果配置文件没有提供程序, 则 GetProviderTable 将返回一个包含零行且S_OK返回值的表。
有关提供程序表中列的完整列表,请参阅 提供程序表。
给调用方的说明
若要按传输顺序检索提供程序表的行,请使用以下过程:
调用 IMAPITable::Restrict 方法以施加与 MAPI_TRANSPORT_PROVIDER PR_RESOURCE_TYPE (PidTagResourceType) 属性匹配的属性限制。
调用 IMAPITable::SortTable 方法,按 pidTagProviderOrdinal) 列PR_PROVIDER_ORDINAL (对表进行排序。
调用 IMAPITable::QueryRows 方法以获取表的行。
这些调用的替代方法是对 HrQueryAllRows 函数进行单个调用,并传入所有适当的数据结构。
如果检索每个行中的 PR_SERVICE_UID (PidTagServiceUid) 列,则可以使用此 MAPIUID 结构数组在调用 IMsgServiceAdmin::MsgServiceTransportOrder 时设置传输顺序。
在 ulFlags 参数中设置MAPI_UNICODE标志将执行以下操作:
对于 IMAPITable::QueryColumns 方法为提供程序表的初始活动列返回的数据,将字符串类型设置为 Unicode。 提供程序表的初始活动列是 QueryColumns 方法在包含该表的提供程序调用 IMAPITable::SetColumns 方法之前返回的那些列。
对于 QueryRows 为提供程序表的初始活动行返回的数据,将字符串类型设置为 Unicode。 提供程序表的初始活动行是 QueryRows 在包含表的提供程序调用 SetColumns 之前返回的那些行。
在包含提供程序表的客户端调用 IMAPITable::SortTable 方法之前,控制 IMAPITable::QuerySortOrder 方法返回的 排序 顺序的属性类型。
另请参阅
IMsgServiceAdmin::GetMsgServiceTable
IMsgServiceAdmin::MsgServiceTransportOrder