Share via


IMarshal::D isconnectObject-Methode (objidl.h)

Gibt alle Verbindungen mit einem -Objekt frei. Der Server des Objekts ruft vor dem Herunterfahren die Implementierung dieser Methode des Objekts auf.

Syntax

HRESULT DisconnectObject(
  [in] DWORD dwReserved
);

Parameter

[in] dwReserved

Dieser Parameter ist reserviert und muss 0 sein.

Rückgabewert

Wenn die Methode erfolgreich ist, wird der Rückgabewert S_OK. Andernfalls ist es E_FAIL.

Hinweise

Diese Methode wird für das -Objekt implementiert, nicht für den Proxy.

Hinweise für Anrufer

Der übliche Fall, in dem diese Methode aufgerufen wird, tritt auf, wenn ein Endbenutzer einen COM-Server mit einem oder mehreren ausgeführten Objekten, die IMarshal implementieren, zwangsweise schließt. Vor dem Herunterfahren ruft der Server die CoDisconnectObject-Funktion auf, um externe Verbindungen für alle ausgeführten Objekte freizugeben. Für jedes Objekt, das IMarshal implementiert, ruft diese Funktion jedoch DisconnectObject auf, sodass jedes Objekt, das sein eigenes Marshalling verwaltet, Schritte ausführen kann, um seinen Proxy darüber zu informieren, dass es heruntergefahren wird.

Hinweise für Implementierer

Im Rahmen des normalen Herunterfahrens sollte ein Server CoDisconnectObject aufrufen, das wiederum DisconnectObject aufruft, für jedes seiner ausgeführten Objekte, die IMarshal implementiert.

Das Ergebnis jeder Implementierung dieser Methode sollte sein, dass ein Proxy auf alle nachfolgenden Aufrufe des Clients reagieren kann, indem er RPC_E_DISCONNECTED oder CO_E_OBJNOTCONNECTED zurückgibt, anstatt zu versuchen, die Aufrufe an das ursprüngliche Objekt weiterzuleiten. Es liegt beim Client, den Proxy zu zerstören.

Wenn Sie diese Methode für ein unveränderliches Objekt implementieren, z. B. einen Moniker, muss Ihre Implementierung nichts tun, da solche Objekte in der Regel vollständig in den Adressraum des Clients kopiert werden. Daher verfügen sie weder über einen Proxy noch über eine Verbindung mit dem ursprünglichen Objekt. Weitere Informationen zum Marshallen unveränderlicher Objekte finden Sie im Abschnitt "Wann zu implementieren" des IMarshal-Themas .

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile objidl.h (include ObjIdl.h)

Weitere Informationen

CoDisconnectObject

IMarshal