次の方法で共有


CoGetInterfaceAndReleaseStream 関数 (combaseapi.h)

インターフェイス ポインターを含むバッファーのマーシャリングを解除し、インターフェイス ポインターが別のスレッドから呼び出し元のスレッドにマーシャリングされたときにストリームを解放します。

構文

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

パラメーター

[in] pStm

マーシャリング解除するストリーム上の IStream インターフェイスへのポインター。

[in] iid

マーシャリングされていない オブジェクトから要求されたインターフェイスの識別子への参照。

[out] ppv

riid で要求されたインターフェイス ポインターを受け取るポインター変数のアドレス。 正常に戻ると、*ppv には、マーシャリングされていないインターフェイスへの要求されたインターフェイス ポインターが含まれます。

戻り値

この関数は、S_OKおよびE_INVALIDARG標準の戻り値と、 CoUnmarshalInterface によって返される値を返すことができます。

解説

重要  

セキュリティに関する注意: 信頼されていないデータを使用してこのメソッドを呼び出すと、セキュリティ上のリスクがあります。 このメソッドは信頼されたデータでのみ呼び出してください。

 
CoGetInterfaceAndReleaseStream 関数は、次のタスクを実行します。
  • CoUnmarshalInterface を呼び出して、以前に CoMarshalInterThreadInterfaceInStream の呼び出しで渡されたインターフェイス ポインターのマーシャリングを解除します。
  • ストリーム ポインターを解放します。 マーシャリングが失敗した場合でも、この種の障害から回復する効果的な方法がないため、ストリームはまだ解放されます。

要件

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

関連項目

CoMarshalInterThreadInterfaceInStream

CoUnmarshalInterface