次の方法で共有


IAMGraphStreams::FindUpstreamInterface

FindUpstreamInterface メソッドは、指定されたピンから始めて、指定されたインターフェイスをフィルタ グラフ内で検索する。

構文

  HRESULT FindUpstreamInterface(
  IPin *pPin,
  REFIID riid,
  void **ppvInterface,
  DWORD dwFlags
);

パラメータ

pPin

[in] ピンの IPin インターフェイスへのポインタ。ピンは、フィルタ グラフ内のフィルタに属していなければならない。

riid

[in] 検索するインターフェイスを指定するインターフェイス ID (IID) への参照。

ppvInterface

[out] 空のポインタのアドレス。メソッドが成功した場合、この変数は riid で指定されるインターフェイスへのポインタを受け取る。

dwFlags

[in] AM_INTF_SEARCH_FLAGS 列挙型で定義されるフラグの組み合わせ。検索対象 (ピンまたはフィルタ) を指定する。

戻り値

次のいずれかの HRESULT 値を返す。

戻りコード 説明
E_NOINTERFACE インターフェイスが見つからない。
E_POINTER 無効なポインタ。
S_OK 成功。

注意

dwFlags がゼロの場合、このメソッドは、次の順序でインターフェイスを検索する。

  1. pPin で指定されたピンを問い合わせる。

  2. pPin が入力ピンの場合は、pPin に出力ピンが接続されていれば、その出力ピン上で FindUpstreamInterface を再帰的に呼び出す。

    pPin が出力ピンの場合は、pPin を所有しているフィルタを問い合わせる。その後、フィルタ上で pPin に内部接続している入力ピンのリストを作成し、それらの入力ピン上で FindUpstreamInterface を再帰的に呼び出す。

    内部接続を持つ入力ピンのリストを作成するために、このメソッドは以下のことを実行する。

このインターフェイスをサポートしている最初のオブジェクトを見つけると停止する。dwFlags をゼロ以外の値に設定することで、検索するオブジェクトを、フィルタ、入力ピン、出力ピンなどに限定できる。

 :  ICaptureGraphBuilder2::FindInterface メソッドはこの問題に対してより汎用的なアプローチを実装しており、ほとんどの状況でこちらが推奨される。

参照