MAPILOGON 回调函数 (mapi.h)

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

MAPILogon 函数开始简单 MAPI 会话,加载默认的消息存储和通讯簿提供程序。

语法

MAPILOGON Mapilogon;

ULONG Mapilogon(
  [in]           ULONG_PTR ulUIParam,
  [in, optional] LPSTR lpszProfileName,
  [in, optional] LPSTR lpszPassword,
  [in]           FLAGS flFlags,
                 ULONG ulReserved,
  [out]          LPLHANDLE lplhSession
)
{...}

参数

[in] ulUIParam

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

[in, optional] lpszProfileName

指向 以 null 结尾的配置文件名称字符串的指针,限制为 256 个字符或更少。 这是登录时要使用的配置文件。 如果 lpszProfileName 参数为 NULL 或指向空字符串,并且 flFlags 参数设置为 MAPI_LOGON_UI, 则 MAPILogon 将显示一个包含空名称字段的登录对话框。

[in, optional] lpszPassword

指向 以 null 结尾的凭据字符串的指针,限制为 256 个字符或更少。 如果消息传送系统不需要密码凭据,或者它要求用户输入密码凭据, 则 lpszPassword 参数应为 NULL 或指向空字符串。 当用户必须输入凭据时, flFlags 参数必须设置为 MAPI_LOGON_UI以允许显示登录对话框。

[in] flFlags

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

含义
MAPI_FORCE_DOWNLOAD
在返回之前,应尝试下载用户的所有消息。 如果未设置MAPI_FORCE_DOWNLOAD标志,可以在函数调用返回后在后台下载消息。
MAPI_NEW_SESSION
应尝试创建新会话,而不是获取环境的共享会话。 如果未设置MAPI_NEW_SESSION标志, MAPILogon 将使用现有的共享会话。
MAPI_LOGON_UI
应显示登录对话框,提示用户输入登录信息。 如果用户需要提供密码和配置文件名称才能成功登录,则必须设置MAPI_LOGON_UI。
MAPI_PASSWORD_UI
MAPILogon 应仅提示输入密码,不允许用户更改配置文件名称。 不应设置MAPI_PASSWORD_UI或MAPI_LOGON_UI,因为目的是在两个不同的对话框之间进行选择登录。

ulReserved

保留;必须为零。

[out] lplhSession

简单的 MAPI 会话句柄。

返回值

此函数返回以下值之一。

返回代码 说明
MAPI_E_FAILURE
登录期间发生了一个或多个未指定的错误。 未返回任何会话句柄。
MAPI_E_INSUFFICIENT_MEMORY
内存不足,无法继续。 未返回任何会话句柄。
MAPI_E_LOGIN_FAILURE
没有默认登录,并且显示登录对话框时,用户无法成功登录。 未返回任何会话句柄。
MAPI_E_TOO_MANY_SESSIONS
用户同时打开的会话过多。 未返回任何会话句柄。
MAPI_E_USER_ABORT
用户取消了登录对话框。 未返回任何会话句柄。
SUCCESS_SUCCESS
调用成功,并已建立简单 MAPI 会话。

注解

MAPILogon 函数开始与消息传送系统的会话,返回一个句柄,该句柄可用于后续 MAPI 调用,以向消息系统显式提供用户凭据。 若要在提供的凭据未能验证会话时请求显示登录对话框,请将 flFlags 参数设置为 MAPI_LOGON_UI。

客户端应用程序通过使用 lpszProfileName 参数的 NULL 值、lpszPassword 参数的 NULL 值以及不设置 flFlags 中的 MAPI_LOGON_UI 标志来测试现有会话。 如果存在现有会话,则调用成功并返回会话的有效 LHANDLE。 否则,调用会失败。

要求

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

另请参阅

MAPILogoff

简单 MAPI