关闭消息存储提供程序

适用于:Outlook 2013 | Outlook 2016

如果提供程序是消息存储提供程序,则可以通过以下方式之一将其关闭:

IMsgStore::StoreLogoff 的实现应首先调用 IMAPISupport::StoreLogoffTransports 以通知 MAPI 它正在关闭,指示应注销任何相关的传输提供程序。 当 IMsgStore::StoreLogoff 返回时,其调用方将调用消息存储的 IUnknown::Release 方法。 通过调用支持对象的 IUnknown::Release 方法实现此 Release 方法。

MAPI 在实现消息存储的 IUnknown::Release 中执行以下任务:

  1. 删除消息存储提供程序注册的所有 MAPIUID 结构。

  2. 从状态表中删除消息存储提供程序的行。

  3. 调用 IMSLogon::Logoff 以释放所有打开的对象、子对象和状态对象。

  4. 调用 IUnknown::Release 以释放消息存储提供程序的登录对象。

某些客户端可能会省略对 IMsgStore::StoreLogoff 的调用,从而通过调用消息存储的 IUnknown::Release 方法启动消息存储提供程序的关闭。 在这些情况下,在没有调用 StoreLogoff 的情况下关闭的顺序和控制程度较低。 编写消息存储的 Release 方法以处理此可能性,并跟踪是否已调用 IMAPISupport::StoreLogoffTransports 。 在关闭过程中,必须调用一次 StoreLogoffTransports。 如果在 Release 方法中检测到 尚未调用 StoreLogoffTransports ,请使用 LOGOFF_ABORT 标志调用它。

另请参阅

关闭服务提供商