mapi.h) (MAPIDETAILS 回调函数

[不建议使用此函数。 它在后续版本的 Windows 中可能已更改或不可用。]

MAPIDetails 函数显示一个对话框,其中包含所选地址列表条目的详细信息。

语法

MAPIDETAILS Mapidetails;

ULONG Mapidetails(
  [in] LHANDLE lhSession,
  [in] ULONG_PTR ulUIParam,
  [in] lpMapiRecipDesc lpRecip,
  [in] FLAGS flFlags,
       ULONG ulReserved
)
{...}

parameters

[in] lhSession

表示简单 MAPI 会话或零的会话句柄。 如果 lhSession 参数的值为零,则 MAPI 将记录用户并创建仅在调用期间存在的会话。 此临时会话可以是现有共享会话,也可以是新会话。 如果用户需要其他信息才能成功完成登录,则会显示一个对话框。

[in] ulUIParam

父窗口句柄或零,指示如果显示对话框,则为应用程序模式。 如果 ulUIParam 参数包含父窗口句柄,则其类型为 HWND (强制转换为ULONG_PTR) 。 如果在调用期间未显示任何对话框,则忽略 ulUIParam

[in] lpRecip

指向要显示其详细信息的收件人的指针。 MAPIDetails 忽略此 MapiRecipDesc 结构的所有成员, ulEIDSizelpEntryID 成员除外。 如果 ulEIDSize 的值为非零, 则 MAPIDetails 解析收件人条目。 如果 ulEIDSize 的值为零, 则 MAPIDetails 返回MAPI_E_AMBIGUOUS_RECIP值。

[in] flFlags

选项标志的位掩码。 可以设置以下标志。

含义
MAPI_AB_NOMODIFY
调用方请求对话框为只读,禁止更改。 MAPIDetails 不一定接受该请求。
MAPI_LOGON_UI
应显示一个对话框,提示用户根据需要登录。 如果未设置MAPI_LOGON_UI标志,则客户端应用程序不会显示登录对话框,并且如果用户未登录,则返回错误值。
MAPI_NEW_SESSION
应尝试创建新会话,而不是获取环境的共享会话。 如果未设置MAPI_NEW_SESSION标志, MAPIDetails 将使用现有的共享会话。

ulReserved

保留;必须为零。

返回值

此函数返回以下值之一。

返回代码 说明
MAPI_E_AMBIGUOUS_RECIPIENT
无法显示对话框,因为 lpRecips 参数指向的结构的 ulEIDSize 成员为零。
MAPI_E_FAILURE
发生了一个或多个未指定的错误。 未显示任何对话框。
MAPI_E_INSUFFICIENT_MEMORY
内存不足,无法继续。 未显示任何对话框。
MAPI_E_INVALID_RECIPS
lpRecip 参数中指定的接收方未知,或者接收方具有无效的 ulEIDSize 值。 未显示任何对话框。
MAPI_E_LOGIN_FAILURE
没有默认登录,并且显示登录对话框时用户无法成功登录。 未显示任何对话框。
MAPI_E_NOT_SUPPORTED
基础消息传送系统不支持该操作。
MAPI_E_USER_ABORT
用户取消了登录对话框或详细信息对话框。
SUCCESS_SUCCESS
调用成功,并显示详细信息对话框。

注解

MAPIDetails 函数显示一个对话框,显示特定地址列表条目的详细信息。 显示名称和地址是对话框中显示的最小属性;可以显示更多信息,具体取决于通讯簿提供程序。 无法禁止显示详细信息对话框,但调用方可以请求它是只读的或可修改的。

只能为已解析的地址列表条目显示详细信息。 如果 MapiRecipDesc 结构的 ulEIDSize 成员的值为非零,则解析条目。 当 MAPIAddressMAPIResolveName 函数返回条目并因此成为读取邮件的收件人时,将解析这些条目。

要求

   
目标平台 Windows
标头 mapi.h

另请参阅

MAPIAddress

MAPILogon

MAPIResolveName

MapiRecipDesc

简单 MAPI