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 方法从当前配置文件打开配置文件部分。 |