CoMarshalInterThreadInterfaceInStream 関数 (combaseapi.h)
同じプロセス内の 1 つのスレッドから別のスレッドへのインターフェイス ポインターをマーシャリングします。
構文
HRESULT CoMarshalInterThreadInterfaceInStream(
[in] REFIID riid,
[in] LPUNKNOWN pUnk,
[out] LPSTREAM *ppStm
);
パラメーター
[in] riid
マーシャリングするインターフェイスの識別子への参照。
[in] pUnk
マーシャリングするインターフェイスへのポインター。 IUnknown から派生する必要があります。 このパラメーターは、NULL でもかまいません。
[out] ppStm
マーシャリングされたインターフェイスを含むストリームへのインターフェイス ポインターを受け取る IStream* ポインター変数のアドレス。
戻り値
この関数は、E_OUTOFMEMORYおよびS_OK標準戻り値を返すことができます。
注釈
CoMarshalInterThreadInterfaceInStream 関数を使用すると、オブジェクトは、同じプロセス内の別のスレッドへのインターフェイス ポインターを簡単かつ確実にマーシャリングできます。 ppStm パラメーターで返されるストリームは、受信スレッドで実行されているクライアントがポインターのマーシャリングを解除しようとすると、正しく動作することが保証されます。 その後、クライアントは CoGetInterfaceAndReleaseStream を呼び出してインターフェイス ポインターのマーシャリングを解除し、ストリーム オブジェクトを解放できます。
CoMarshalInterThreadInterfaceInStream 関数は、次のタスクを実行します。
- ストリーム オブジェクトを作成します。
- ストリーム オブジェクトの IStream ポインターを CoMarshalInterface に渡します。
- 呼び出し元への IStream ポインターを返します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | combaseapi.h (Objbase.h を含む) |
Library | Ole32.lib |
[DLL] | Ole32.dll |