Herunterfahren eines Nachrichtenspeicheranbieters
Gilt für: Outlook 2013 | Outlook 2016
Wenn Ihr Anbieter ein Nachrichtenspeicheranbieter ist, kann er auf eine der folgenden Arten heruntergefahren werden:
Wenn ein Client oder der MAPI-Spooler IMsgStore::StoreLogoff aufruft. Das Herunterfahren eines Nachrichtenspeicheranbieters mit StoreLogoff führt dazu, dass das Herunterfahren ordnungsgemäß und kontrolliert erfolgt.
Wenn ein Client IMAPISession::Logoff aufruft.
Ihre Implementierung von IMsgStore::StoreLogoff sollte mit dem Aufruf von IMAPISupport::StoreLogoffTransports beginnen, um MAPI darüber zu informieren, dass es heruntergefahren wird, was angibt, dass alle zugehörigen Transportanbieter abgemeldet werden sollen. Wenn IMsgStore::StoreLogoff zurückgibt, ruft sein Aufrufer die IUnknown::Release-Methode Ihres Nachrichtenspeichers auf. Implementieren Sie diese Release-Methode , indem Sie die IUnknown::Release-Methode des Supportobjekts aufrufen.
MAPI führt die folgenden Aufgaben bei der Implementierung von IUnknown::Release für Nachrichtenspeicher aus:
Entfernt alle vom Nachrichtenspeicheranbieter registrierten MAPIUID-Strukturen .
Entfernt die Zeile des Nachrichtenspeicheranbieters aus der status Tabelle.
Ruft IMSLogon::Logoff auf, um alle geöffneten Objekte, Unterobjekte und status Freizugeben.
Ruft IUnknown::Release auf, um das Anmeldeobjekt des Nachrichtenspeicheranbieters freizugeben.
Einige Clients lassen möglicherweise den Aufruf von IMsgStore::StoreLogoff aus und initiieren das Herunterfahren Ihres Nachrichtenspeicheranbieters mit dem Aufruf der IUnknown::Release-Methode des Nachrichtenspeichers. Ein Herunterfahren ohne den Aufruf von StoreLogoff ist unter diesen Umständen weniger geordnet und kontrolliert. Schreiben Sie die Release-Methode Ihres Nachrichtenspeichers, um diese Möglichkeit zu behandeln, und verfolgen Sie, ob ein Aufruf von IMAPISupport::StoreLogoffTransports erfolgt ist. StoreLogoffTransports muss während des Herunterfahrens einmal aufgerufen werden. Wenn Sie in Ihrer Release-Methode feststellen, dass StoreLogoffTransports noch nicht aufgerufen wurde, rufen Sie es mit dem flag LOGOFF_ABORT auf.