IMSProvider::SpoolerLogon

适用于:Outlook 2013 | Outlook 2016

将 MAPI 后台处理程序记录到消息存储。

HRESULT SpoolerLogon(
  LPMAPISUP lpMAPISup,
  ULONG_PTR ulUIParam,
  LPSTR lpszProfileName,
  ULONG cbEntryID,
  LPENTRYID lpEntryID,
  ULONG ulFlags,
  LPCIID lpInterface,
  ULONG cbSpoolSecurity,
  LPBYTE lpbSpoolSecurity,
  LPMAPIERROR FAR * lppMAPIError,
  LPMSLOGON FAR * lppMSLogon,
  LPMDB FAR * lppMDB     
);

参数

lpMAPISup

[in]指向消息存储的 MAPI 支持对象的指针。

ulUIParam

[in]此方法显示的任何对话框或窗口的父窗口的句柄。

lpszProfileName

[in]指向字符串的指针,该字符串包含用于 MAPI 后台处理程序登录的配置文件的名称。 此字符串可以显示在对话框中、写出到日志文件中或直接忽略。 如果在 ulFlags 参数中设置了MAPI_UNICODE标志,则它必须采用 Unicode 格式。

cbEntryID

[in] lpEntryID 参数指向的条目标识符的大小(以字节为单位)。

lpEntryID

[in]指向消息存储的条目标识符的指针。 在 lpEntryID 参数中传递 NULL 表示尚未选择消息存储,并且可以显示允许用户选择消息存储的对话框。

ulFlags

[in]控制如何执行登录的标志的位掩码。 可以设置以下标志:

MAPI_DEFERRED_ERRORS

即使基础对象对调用实现不可用,也允许调用成功。 如果该对象不可用,则对对象的后续调用可能会引发错误。

MAPI_UNICODE

传入的字符串采用 Unicode 格式。 如果未设置MAPI_UNICODE,则字符串采用 ANSI 格式。

MDB_NO_DIALOG

阻止显示登录对话框。 如果设置了此标志,则如果登录失败,将返回错误值MAPI_E_LOGON_FAILED。 如果未设置此标志,消息存储提供程序可以提示用户更正名称或密码、插入磁盘或执行与存储建立连接所需的其他操作。

MDB_WRITE

请求读/写权限。

lpInterface

[in]指向要登录的消息存储的接口标识符 (IID) 的指针。 传递 NULL 表示返回消息存储的 MAPI 接口, (IMsgStore) 。 还可以将 lpInterface 参数设置为消息存储的相应接口的标识符, (例如IID_IUnknown或IID_IMAPIProp) 。

cbSpoolSecurity

[in]指向 lppbSpoolSecurity 参数中验证数据的大小(以字节为单位)的指针。

lpbSpoolSecurity

[in]指向验证数据的指针的指针。 SpoolerLogon 方法使用此数据将 MAPI 后台处理程序记录到之前使用 IMSProvider::Logon 方法登录到的消息存储提供程序所在的同一存储区。

lppMAPIError

[out]指向返回的 MAPIERROR 结构的指针(如果有)的指针,该结构包含错误的版本、组件和上下文信息。 如果没有要返回的 MAPIERROR 结构,可以将 lppMAPIError 参数设置为 NULL。

lppMSLogon

[out]指向要登录 MAPI 的消息存储登录对象的指针的指针。

lppMDB

[out]指向要登录的 MAPI 后台处理程序和客户端应用程序的消息存储对象的指针的指针。

返回值

S_OK

调用成功,并返回了预期的值。

MAPI_E_UNCONFIGURED

配置文件中没有足够的信息来完成登录。 返回此值时,MAPI 将调用消息存储提供程序的消息服务入口点函数。

MAPI_W_ERRORS_RETURNED

调用成功,但消息存储提供程序提供了错误信息。 返回此警告时,应将调用处理为成功。 若要测试此警告,请使用 HR_FAILED 宏。 有关详细信息,请参阅 使用宏进行错误处理。 若要从提供程序获取错误信息,请调用 IMAPISession::GetLastError 方法。

备注

MAPI 后台处理程序调用 IMSProvider::SpoolerLogon 方法登录到消息存储。 MAPI 后台处理程序应在登录期间和登录后使用 lppMDB 参数中的消息存储提供程序返回的消息存储对象。

为了与 IMSProvider::Logon 方法保持一致,提供程序还返回 lppMSLogon 参数中的消息存储登录对象。 存储对象和登录对象的使用与通常的存储登录相同;登录对象和存储对象之间应有一对一的对应关系,使对象就像是公开两个接口的一个对象一样运行。 这两个对象一起创建并一起释放。

存储提供程序应在内部标记返回的消息存储对象,以指示 MAPI 后台处理程序正在使用存储区。 此存储对象的某些方法与提供给客户端应用程序的消息存储对象的行为不同。 保留此内部标记是触发特定于 MAPI 后台处理程序的行为的最常见方法。

另请参阅

IMSProvider::Logon

MAPIERROR

IMSProvider : IUnknown