IProviderAdmin::OpenProfileSection

适用于:Outlook 2013 | Outlook 2016

打开当前配置文件中的配置文件部分,并返回 IProfSect 指针以供进一步访问。

HRESULT OpenProfileSection(
  LPMAPIUID lpUID,
  LPCIID lpInterface,
  ULONG ulFlags,
  LPPROFSECT FAR * lppProfSect
);

参数

lpUID

[in]指向 MAPIUID 结构的指针,该结构包含要打开的配置文件节的唯一标识符。 客户端不能为 lpUID 参数传递 NULL。 当服务提供商从其消息服务入口点函数调用时,可以传递 NULL 来检索 MAPIUID

lpInterface

[in]指向接口标识符的指针 (IID) ,表示用于访问配置文件部分的接口。 传递 NULL 会导致返回配置文件部分的标准接口 (IProfSect) 。

ulFlags

[in]控制配置文件部分的打开方式的标志的位掩码。 可以设置以下标志:

MAPI_DEFERRED_ERRORS

允许 OpenProfileSection 成功返回,可能是在配置文件部分对调用方完全可用之前。 如果配置文件部分不可用,则对其进行后续调用可能会引发错误。

MAPI_MODIFY

请求读/写权限。 默认情况下,使用只读权限打开对象,调用方不应假定已授予读/写权限。 不允许客户端具有对配置文件的提供程序部分的读/写权限。

MAPI_FORCE_ACCESS

允许访问所有配置文件部分,即使是单个服务提供商拥有的配置文件部分。

lppProfSect

[out]指向配置文件部分的指针的指针。

返回值

S_OK

配置文件部分已成功打开。

MAPI_E_NO_ACCESS

尝试修改只读配置文件部分或访问用户权限不足的对象。

MAPI_E_NOT_FOUND

请求的配置文件部分不存在。

备注

IProviderAdmin::OpenProfileSection 方法打开配置文件部分,使调用方能够从中读取信息,并可能将信息写入活动配置文件。

客户端无法使用 OpenProfileSection 方法打开属于提供程序的配置文件节。

多个客户端或服务提供商可以使用只读权限同时打开配置文件部分。 但是,当配置文件部分以读/写权限打开时,无论访问类型如何,都不能进行其他调用来打开该部分。 如果配置文件部分以只读权限打开,则请求读/写权限的后续调用将失败,并MAPI_E_NO_ACCESS。 同样,如果某个节以读/写权限打开,则请求只读权限的后续调用也将失败。

给调用方的说明

如果请求 OpenProfileSection 通过在 ulFlags 中传递MAPI_MODIFY和 lpUID 中的未知 MAPIUID 打开不存在的配置文件部分,则会创建配置文件部分。

如果请求 OpenProfileSection 使用只读权限打开不存在的分区,它将返回MAPI_E_NOT_FOUND。

MFCMAPI 引用

有关 MFCMAPI 示例代码,请参阅下表。

文件 函数 Comment
MAPIProfileFunctions.cpp
OpenProfileSection
MFCMAPI 使用 IProviderAdmin::OpenProfileSection 方法从当前配置文件打开配置文件部分。

另请参阅

IMAPIProp : IUnknown

IProfSect : IMAPIProp

MAPIUID

IProviderAdmin : IUnknown

MFCMAPI 代码示例