Freigeben über


CoMarshalInterThreadInterfaceInStream-Funktion (combaseapi.h)

Marshallt einen Schnittstellenzeiger von einem Thread in einen anderen Thread im selben Prozess.

Syntax

HRESULT CoMarshalInterThreadInterfaceInStream(
  [in]  REFIID    riid,
  [in]  LPUNKNOWN pUnk,
  [out] LPSTREAM  *ppStm
);

Parameter

[in] riid

Ein Verweis auf den Bezeichner der schnittstelle, die gemarshallt werden soll.

[in] pUnk

Ein Zeiger auf die zu marshallende Schnittstelle, die von IUnknown abgeleitet werden muss. Dieser Parameter kann NULL sein.

[out] ppStm

Die Adresse der IStream*-Zeigervariable, die den Schnittstellenzeiger auf den Stream empfängt, der die gemarshallte Schnittstelle enthält.

Rückgabewert

Diese Funktion kann die standardmäßigen Rückgabewerte E_OUTOFMEMORY und S_OK zurückgeben.

Hinweise

Die CoMarshalInterThreadInterfaceInStream-Funktion ermöglicht es einem Objekt, einen Schnittstellenzeiger einfach und zuverlässig auf einen anderen Thread im selben Prozess zu marshallen. Der im ppStm-Parameter zurückgegebene Stream verhält sich garantiert ordnungsgemäß, wenn ein Client, der im empfangenden Thread ausgeführt wird, versucht, den Zeiger aufzuheben. Der Client kann dann coGetInterfaceAndReleaseStream aufrufen, um den Schnittstellenzeiger aufzuheben und das Streamobjekt freizugeben.

Die CoMarshalInterThreadInterfaceInStream-Funktion führt die folgenden Aufgaben aus:

  1. Erstellt ein Streamobjekt.
  2. Übergibt den IStream-Zeiger des Streamobjekts an CoMarshalInterface.
  3. Gibt den IStream-Zeiger auf den Aufrufer zurück.

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

Weitere Informationen

CoGetInterfaceAndReleaseStream