Share via


ObjectControl::D eactivate-Methode (comsvcs.h)

Ermöglicht es einem COM+-Objekt, eine Bereinigung durchzuführen, die vor der Wiederverwendung oder Zerstörung erforderlich ist.

Diese Methode wird von der COM+-Laufzeitumgebung aufgerufen, wenn ein Objekt deaktiviert wird. Führen Sie keine Methodenaufrufe für Objekte in derselben Aktivität aus dieser Methode aus.

Syntax

HRESULT Deactivate();

Rückgabewert

Diese Methode kann die Standardrückgabewerte E_INVALIDARG, E_OUTOFMEMORY, E_UNEXPECTED, E_FAIL und S_OK zurückgeben.

Hinweise

Die COM+-Laufzeitumgebung ruft die Deactivate-Methode auf, wenn ein Objekt, das die ObjectControl-Schnittstelle unterstützt, deaktiviert wird. Ein Objekt wird deaktiviert, wenn es von einer Methode zurückgibt, in der die Methode mit dem Namen SetComplete oder SetAbort aufgerufen wird, wenn die Transaktion, in der es ausgeführt wurde, committet oder abgebrochen wird, oder wenn der letzte Client, der einen Verweis auf das Objekt enthält, seinen Verweis freigibt.

Wenn die Komponente recycling unterstützt (gibt TRUE von der CanBePooled-Methode zurück), müssen Sie die Deactivate-Methode verwenden, um den Zustand des Objekts auf den Zustand zurückzusetzen, in dem die Activate-Methode erwartet, dass es gefunden wird. Sie können auch die Deactivate-Methode verwenden, um den Kontext des Objekts freizugeben oder andere kontextspezifische Bereinigungen zu durchführen. Selbst wenn ein Objekt das Recycling unterstützt, kann es von Vorteil sein, bestimmte wiederverwendbare Ressourcen in seiner Deactivate-Methode freizugeben. Beispielsweise stellt ODBC eigene Verbindungspools bereit. Es ist effizienter, eine Datenbankverbindung in einem allgemeinen Verbindungspool zu poolen, in dem andere Objekte sie verwenden können, als sie an ein bestimmtes Objekt in einem Objektpool gebunden zu halten.

COM+ verbietet ausdrücklich das Aufrufen eines Objekts, das ObjectControl verfügbar macht, nachdem die Deactivate-Methode zurückgegeben wurde (wenn sie sich in ihrem Destruktor befindet). Ein solcher Aufruf würde zu einem RPC_E_DISCONNECTED Fehler führen. Wenn z. B. ein Objekt einen Verweis auf sich selbst übergeben hat und dann nach Rückgabe von Deactivate wieder in das Objekt aufruft, tritt ein getrennter Fehler auf.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile comsvcs.h

Weitere Informationen

ObjectControl