IMAPISession::OpenAddressBook
适用于:Outlook 2013 | Outlook 2016
打开 MAPI 集成通讯簿,返回 IAddrBook 指针以供进一步访问。
HRESULT OpenAddressBook(
ULONG_PTR ulUIParam,
LPCIID lpInterface,
ULONG ulFlags,
LPADRBOOK FAR * lppAdrBook
);
参数
ulUIParam
[in]公共地址对话框和其他相关显示的父窗口的句柄。
lpInterface
[in]指向接口标识符的指针, (表示要用于访问通讯簿的接口的 IID) 。 传递 null 将返回指向通讯簿的标准接口 IAddrBook : IMAPIProp 的指针。
ulFlags
[in]控制通讯簿打开的标志的位掩码。 可以设置以下标志:
AB_NO_DIALOG
禁止显示对话框。 如果未设置AB_NO_DIALOG标志,则参与集成通讯簿的通讯簿提供商可以提示用户提供任何必要的信息。
lppAdrBook
[out]指向通讯簿的指针的指针。
返回值
S_OK
通讯簿已成功打开。
MAPI_W_ERRORS_RETURNED
调用成功,但无法打开一个或多个通讯簿提供程序的容器。 返回此警告时,应将调用处理为成功。 若要测试此警告,请使用 HR_FAILED 宏。 有关详细信息,请参阅 使用宏进行错误处理。
备注
IMAPISession::OpenAddressBook 方法打开 MAPI 集成通讯簿,这是配置文件中所有通讯簿提供程序的顶级容器的集合。 lppAdrBook 参数中返回的指针提供对通讯簿内容的进一步访问。 这允许调用方执行诸如打开单个容器、查找消息用户和显示常见地址对话框等任务。
给调用方的说明
如果 OpenAddressBook 无法加载配置文件中的一个或多个通讯簿提供程序,它将返回MAPI_W_ERRORS_RETURNED。 此值是警告,而不是错误值;按照S_OK处理。 OpenAddressBook 始终返回 lppAdrBook 参数中的有效指针,而不管有多少通讯簿提供程序未能加载。 因此,在注销之前,必须始终调用通讯簿的 IUnknown::Release 方法。
当 OpenAddressBook 返回MAPI_W_ERRORS_RETURNED时,调用 IMAPISession::GetLastError 以获取包含有关失败提供程序的信息的 MAPIERROR 结构。 返回单个 MAPIERROR 结构,其中包含所有提供程序提供的信息。
MFCMAPI 引用
有关 MFCMAPI 示例代码,请参阅下表。
文件 | 函数 | Comment |
---|---|---|
MAPIObjects.cpp |
CMapiObjects::GetAddrBook |
MFCMAPI 使用 IMAPISession::OpenAddressBook 方法获取集成的通讯簿。 |