IMAPISupport::StoreLogoffTransports
适用于:Outlook 2013 | Outlook 2016
请求消息存储的有序发布。
HRESULT StoreLogoffTransports(
ULONG FAR * lpulFlags
);
参数
lpulFlags
[in,out]控制消息存储注销方式的标志的位掩码。 输入时,此参数的所有标志都是互斥的;每次调用只能设置以下标志之一:
LOGOFF_ABORT
应在注销之前停止此存储的任何传输提供程序活动。 活动停止且 MAPI 后台处理程序已注销存储区后,控件将返回到客户端。 如果发生任何传输活动,则不会发生注销,并且不会更改 MAPI 后台处理程序或传输提供程序行为。 如果当前没有活动,MAPI 后台处理程序将释放存储区。
LOGOFF_NO_WAIT
MAPI 后台处理程序应在发送所有已准备好发送的出站邮件后立即释放存储并将控制权返回到客户端。 如果邮件存储具有默认的收件箱,则会接收任何进程内邮件,然后禁用进一步的接收。
LOGOFF_ORDERLY
MAPI 后台处理程序应在处理完任何挂起的消息后立即释放存储并将控制权返回到客户端。 不应处理任何新消息。
LOGOFF_PURGE
工作原理与 LOGOFF_NO_WAIT 标志相同。 LOGOFF_PURGE标志在完成后将控制权返回给调用方。
LOGOFF_QUIET
如果发生任何传输提供程序活动,则不应发生注销。 正在发生的活动类型在输出上作为标志返回。
在输出时,MAPI 后台处理程序可以返回以下一个或多个标志:
LOGOFF_COMPLETE
可以完成注销。 与存储关联的所有资源都已释放,并且对象已失效。 MAPI 后台处理程序已执行或将执行所有请求。 此时仅应调用消息存储的 IUnknown::Release 方法。
LOGOFF_INBOUND
消息当前来自一个或多个传输提供程序进入存储区。
LOGOFF_OUTBOUND
消息当前正由一个或多个传输提供程序从存储区发送。
LOGOFF_OUTBOUND_QUEUE
存储的出站队列中当前存在消息。
返回值
S_OK
注销过程成功。
备注
IMAPISupport::StoreLogoffTransports 方法为消息存储提供程序支持对象实现。 消息存储提供程序调用 StoreLogoffTransports ,以便客户端应用程序在消息存储关闭时对 MAPI 如何处理传输提供程序活动进行一些控制。
如果另一个进程为同一配置文件打开了要注销的存储区,MAPI 将忽略对 StoreLogoffTransports 的 调用,并在 lpulFlags 参数中返回LOGOFF_COMPLETE标志。
存储提供程序在从 StoreLogoffTransports 返回后的行为应基于 lpulFlags 的值,该值指示系统状态并传达有关注销行为的客户端说明。
给调用方的说明
StoreLogoffTransports 通常是从存储提供程序的 IMsgStore::StoreLogoff 方法调用的。 但是,也可以从消息存储的 IUnknown::Release 方法调用它。 实现消息存储的 Release 方法,以便检查是否已调用 StoreLogoffTransports。 如果未发生呼叫,请调用设置了 LOGOFF_ABORT 标志的 StoreLogoffTransports 。
lpulFlags 参数设置为指示客户端如何要求关闭消息存储的标志。 根据调用 StoreLogoff 中相应参数的设置,确定 ulFlags 的相应设置。 也就是说,如果调用 StoreLogoff 方法的客户端将 ulFlags 设置为 LOGOFF_ORDERLY,则应调用将 ulFlags 设置为 LOGOFF_ORDERLY 的 StoreLogoffTransports。
有关消息存储注销过程的详细信息,请参阅 关闭消息存储提供程序。