IMarshal::ReleaseMarshalData-Methode (objidlbase.h)

Zerstört ein gemarshalltes 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 gemarshallte Datenpaket eines Objekts nicht im Clientprozessbereich ungemarshallt 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 entspricht dem Freigeben eines Schnittstellenzeigers durch Aufrufen von Release.

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

Hinweise für Anrufer

Sie werden selten, wenn überhaupt, gelegenheit haben, diese Methode selbst aufzurufen. Eine mögliche Ausnahme wäre, wenn Sie IMarshal in einer Klassenfactory für ein Klassenobjekt implementieren würden, 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 konnte, können Sie im Rahmen Ihrer Entmarshaling-Routine ReleaseMarshalData aufrufen, um das Datenpaket für jeden Proxy freizugeben.

Hinweise für Implementierer

Wenn Ihre Implementierung Zustandsinformationen zu gemarshallten Datenpaketen speichert, können Sie diese Methode verwenden, um die Statusinformationen freizugeben, die dem durch 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 objidlbase.h (include ObjIdl.h)

Weitere Informationen

CoReleaseMarshalData

IMarshal