次の方法で共有


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 関数は、次のタスクを実行します。

  1. ストリーム オブジェクトを作成します。
  2. ストリーム オブジェクトの IStream ポインターを CoMarshalInterface に渡します。
  3. 呼び出し元への IStream ポインターを返します。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー combaseapi.h (Objbase.h を含む)
Library Ole32.lib
[DLL] Ole32.dll

こちらもご覧ください

CoGetInterfaceAndReleaseStream