CoGetInterfaceAndReleaseStream-Funktion (combaseapi.h)

Hebt einen Puffer, der einen Schnittstellenzeiger enthält, auf und gibt den Stream frei, wenn ein Schnittstellenzeiger von einem anderen Thread an den aufrufenden Thread gemarst wurde.

Syntax

HRESULT CoGetInterfaceAndReleaseStream(
  [in]  LPSTREAM pStm,
  [in]  REFIID   iid,
  [out] LPVOID   *ppv
);

Parameter

[in] pStm

Ein Zeiger auf die IStream-Schnittstelle im Datenstrom, der entmarshaliert werden soll.

[in] iid

Ein Verweis auf den Bezeichner der Schnittstelle, die vom nichtmarshalierten Objekt angefordert wurde.

[out] ppv

Die Adresse der Zeigervariable, die den in riid angeforderten Schnittstellenzeiger empfängt. Nach erfolgreicher Rückgabe enthält *ppv den angeforderten Schnittstellenzeiger auf die nichtmarshalierte Schnittstelle.

Rückgabewert

Diese Funktion kann die Standardrückgabewerte S_OK und E_INVALIDARG sowie alle von CoUnmarshalInterface zurückgegebenen Werte zurückgeben.

Hinweise

Wichtig  

Sicherheitshinweis: Das Aufrufen dieser Methode mit nicht vertrauenswürdigen Daten ist ein Sicherheitsrisiko. Rufen Sie diese Methode nur mit vertrauenswürdigen Daten auf.

 
Die CoGetInterfaceAndReleaseStream-Funktion führt die folgenden Aufgaben aus:
  • Ruft CoUnmarshalInterface auf, um einen Schnittstellenzeiger aufzuheben, der zuvor in einem Aufruf von CoMarshalInterThreadInterfaceInStream übergeben wurde.
  • Gibt den Streamzeiger frei. Selbst wenn die Entmarshaling fehlschlägt, wird der Stream immer noch freigegeben, da es keine effektive Möglichkeit gibt, einen solchen Fehler wiederherzustellen.

Anforderungen

   
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 combaseapi.h (include Objbase.h)
Bibliothek Ole32.lib
DLL Ole32.dll

Weitere Informationen

CoMarshalInterThreadInterfaceInStream

CoUnmarshalInterface