Freigeben über


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

Gibt alle Verbindungen mit einem Objekt frei. Der -Server des Objekts ruft die Implementierung dieser Methode durch das Objekt auf, bevor er heruntergefahren wird.

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 wird sie 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, gewaltsam 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 unternehmen kann, um seinen Proxy darüber zu informieren, dass es heruntergefahren wird.

Hinweise zu Implementierern

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

Das Ergebnis jeder Implementierung dieser Methode sollte sein, dass ein Proxy auf alle nachfolgenden Aufrufe seines Clients reagieren kann, indem er RPC_E_DISCONNECTED oder CO_E_OBJNOTCONNECTED zurückgibt, anstatt die Aufrufe an das ursprüngliche Objekt weiterzuleiten. Es liegt am 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 objidlbase.h (include ObjIdl.h)

Weitere Informationen

CoDisconnectObject

IMarshal