IProviderAdmin::GetProviderTable
适用于:Outlook 2013 | Outlook 2016
提供对消息服务的提供程序表(消息服务中的服务提供商列表)的访问。
HRESULT GetProviderTable(
ULONG ulFlags,
LPMAPITABLE FAR * lppTable
);
参数
ulFlags
[in]一个标志的位掩码,用于控制提供程序表的列中返回的字符串的类型。 可以设置以下标志:
MAPI_UNICODE
字符串列采用 Unicode 格式。 如果未设置MAPI_UNICODE标志,则列采用 ANSI 格式。
lppTable
[out]指向提供程序表的指针的指针。
返回值
S_OK
已成功返回提供程序表。
备注
IProviderAdmin::GetProviderTable 方法检索指向消息服务的提供程序表的指针,该表由 MAPI 维护,其中包含有关消息服务中每个服务提供程序的信息。
与 IMsgServiceAdmin::GetProviderTable 方法返回的提供程序表不同, IProviderAdmin::GetProviderTable 返回的提供程序表可能包含表示与消息服务中的一个或多个服务提供程序关联的信息的其他行。 此额外信息使用 Mapisvc.inf 文件的“Sections”关键字 (keyword) 添加到配置文件中。 当提供程序具有额外的配置文件部分时,它将这些节的 MAPIUID 结构存储在 PR_SERVICE_EXTRA_UIDS (PidTagServiceExtraUids) 属性中。 PR_SERVICE_EXTRA_UIDS 保存在消息服务配置文件部分中。
已删除或正在使用但已标记为删除的提供程序不包括在提供程序表中。 提供程序表是静态的,这意味着对消息服务的后续添加或删除不会反映在表中。
如果消息服务没有提供程序, IProviderAdmin::GetProviderTable 将返回一个包含零行且S_OK返回值的表。
在 ulFlags 参数中设置MAPI_UNICODE标志会影响从 IMAPITable::QueryColumns 和 IMAPITable::QueryRows 方法返回的列的格式。
此标志还控制 IMAPITable::QuerySortOrder 方法返回的排序顺序中的属性类型。
有关提供程序表中列的完整列表,请参阅 提供程序表。
给调用方的说明
若要按传输顺序检索提供程序表的行,请按 PR_PROVIDER_ORDINAL (PidTagProviderOrdinal) 列对表进行排序。
若要仅检索表示服务提供商 (的行,而不) 包含任何额外的行,请将检索限制为在其 PR_RESOURCE_TYPE (PidTagResourceType) 列中具有PT_ERROR值的行。
MFCMAPI 引用
有关 MFCMAPI 示例代码,请参阅下表。
文件 | 函数 | Comment |
---|---|---|
MsgServiceTableDlg.cpp |
CMsgServiceTableDlg::OnDisplayItem |
MFCMAPI 使用 IProviderAdmin::GetProviderTable 方法获取要在新对话框中呈现的提供程序表。 |