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:
- Erstellt ein Streamobjekt.
- Übergibt den IStream-Zeiger des Streamobjekts an CoMarshalInterface.
- 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 |