Share via


IMarshal::ReleaseMarshalData-Methode (objidl.h)

Zerstört ein gemarschtes Datenpaket.

Syntax

HRESULT ReleaseMarshalData(
  [in] IStream *pStm
);

Parameter

[in] pStm

Ein Zeiger auf einen Stream, der das zu zerstörende Datenpaket enthält.

Rückgabewert

Diese Methode kann die Standardrückgabewerte S_OK und E_FAIL sowie alle Streamzugriffsfehler für die IStream-Schnittstelle zurückgeben.

Hinweise

Wenn das gemarschte Datenpaket eines Objekts im Clientprozessbereich nicht entmarshaliert wird und das Paket nicht mehr benötigt wird, ruft der Client ReleaseMarshalData für die IMarshal-Implementierung des Proxys auf, um das Objekt anzuweisen, das Datenpaket zu zerstören. Der Aufruf erfolgt innerhalb der Funktion CoReleaseMarshalData . Das Datenpaket dient als zusätzlicher Verweis auf das -Objekt, und das Freigeben der Daten ähnelt dem Freigeben eines Schnittstellenzeigers durch Aufrufen von Release.

Wenn das gemarselte Datenpaket irgendwie nicht im Clientprozess ankommt oder Wenn ReleaseMarshalData im Proxy nicht erfolgreich neu erstellt wurde, kann COM diese Methode für das Objekt selbst aufrufen.

Hinweise für Anrufer

Sie werden selten oder überhaupt Gelegenheit haben, diese Methode selbst aufzurufen. Eine mögliche Ausnahme wäre, wenn Sie IMarshal in einer Klassenfactory für ein Klassenobjekt implementieren, für das Sie auch IMarshal implementieren. Wenn Sie in diesem Fall das Objekt in eine Tabelle marshallen, in der es von mehreren Clients abgerufen werden könnte, können Sie im Rahmen ihrer Entmarshaling-Routine ReleaseMarshalData aufrufen, um das Datenpaket für jeden Proxy freizugeben.

Hinweise zu Implementierern

Wenn Ihre Implementierung Zustandsinformationen zu ge marshallten Datenpaketen speichert, können Sie diese Methode verwenden, um die Zustandsinformationen freizugeben, die dem von pStm dargestellten Datenpaket zugeordnet sind. Ihre Implementierung sollte auch den Suchzeiger im Stream über das letzte Byte der Daten hinaus positionieren.

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

CoReleaseMarshalData

IMarshal