MAPIRESOLVENAME 回调函数 (mapi.h)

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

MAPIResolveName 函数将用户输入的邮件收件人姓名转换为明确的地址列表条目。

语法

MAPIRESOLVENAME Mapiresolvename;

ULONG Mapiresolvename(
  [in]  LHANDLE lhSession,
  [in]  ULONG_PTR ulUIParam,
  [in]  LPSTR lpszName,
  [in]  FLAGS flFlags,
        ULONG ulReserved,
        lpMapiRecipDesc *lppRecip
)
{...}

参数

[in] lhSession

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

[in] ulUIParam

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

[in] lpszName

指向要解析的名称的指针。

[in] flFlags

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

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

ulReserved

保留;必须为零。

lppRecip

返回值

此函数返回以下值之一。

返回代码 说明
MAPI_E_AMBIGUOUS_RECIPIENT
请求的收件人尚未或无法解析为唯一地址列表条目。
MAPI_E_UNKNOWN_RECIPIENT
无法将收件人解析为任何地址。 收件人可能不存在,也可能未知。
MAPI_E_FAILURE
发生了一个或多个未指定的错误。 名称未解析。
MAPI_E_INSUFFICIENT_MEMORY
内存不足,无法继续。 名称未解析。
MAPI_E_LOGIN_FAILURE
没有默认登录,并且显示登录对话框时,用户无法成功登录。 名称未解析。
MAPI_E_NOT_SUPPORTED
基础消息传送系统不支持此操作。
MAPI_E_USER_ABORT
用户取消了其中一个对话框。 名称未解析。
SUCCESS_SUCCESS
调用成功,名称已解析。

注解

MAPIResolveName 函数将用户输入的邮件收件人姓名 (解析为明确的地址列表条目) ,并根据需要提示用户在可能的条目之间进行选择。 分配并返回包含有关条目的完全解析信息的收件人描述符结构。 调用方应通过调用 MAPIFreeBuffer 函数在某一点释放此 MapiRecipDesc 结构。 如果 MAPIResolveName 返回错误值,则无需使用 MAPIFreeBuffer 解除分配内存。

要求

要求
目标平台 Windows
标头 mapi.h

另请参阅

MAPIFreeBuffer

MAPILogon

MapiRecipDesc

简单 MAPI