次の方法で共有


ICaptureGraphBuilder2::FindInterface

FindInterface メソッドは、指定されたフィルタから始めて、指定されたインターフェイスをグラフ内で検索する。検索は、フィルタのアップストリームまたはダウンストリームのグラフのセクションに限定したり、特定のピン カテゴリまたはメディア タイプに限定したりできる。

構文

  HRESULT FindInterface(
  const GUID *pCategory,
  const GUID *pType,
  IBaseFilter *pf,
  REFIID riid,
  void **ppint
);

パラメータ

pCategory

[in] 検索条件を指定する GUID へのポインタ。詳細については、「注意」を参照すること。指定できる値は次のとおりである。

  • &LOOK_UPSTREAM_ONLY
  • &LOOK_DOWNSTREAM_ONLY
  • ピン カテゴリを指定する、ピン プロパティ セットAMPROPERTY_PIN_CATEGORY 構造体のメンバへのポインタ。
  • NULL

詳細については、「注意」を参照すること。

pType

[in] 出力ピンのメジャー メディア タイプを指定する GUID へのポインタまたは NULL。

pf

[in] フィルタの IBaseFilter インターフェイスへのポインタ。メソッドは、このフィルタから検索を開始する。

riid

[in] 検索するインターフェイスのインターフェイス識別子 (IID) へのポインタ。

ppint

[out] インターフェイス ポインタを受け取る変数のアドレス。インターフェイスを使った後は、取得したインターフェイス ポインタを必ず解放すること。

戻り値

HRESULT 値を返す。可能な値は次のとおりである。

戻りコード 説明
S_OK 成功。
E_FAIL 失敗。
E_NOINTERFACE そのインターフェイスはサポートされていない。
E_POINTER NULL ポインタ引数。

注意

キャプチャ グラフでは、さまざまなフィルタおよびピンが、圧縮引数 (IAMVideoCompression) やストリーム フォーマット (IAMStreamConfig) などのプロパティを設定するインターフェイスを公開する可能性がある。キャプチャ デバイスによっては、他の有用なインターフェイスがアナログ信号のルーティングを行う IAMCrossbarや、TV チューナー デバイスを制御する IAMTVTuner を含んでいる可能性がある。このメソッドを使えば、グラフを対象に検索を行うための特殊なコードを書かなくても、インターフェイスを検索できる。

重要 :**   IVideoWindow** インターフェイス ポインタを取得するときは、このメソッドを呼び出してはならない。その場合は、フィルタ グラフ マネージャにこのインターフェイスの有無を問い合わせること。そうしないと、フィルタ グラフ マネージャは、画面解像度およびその他のイベントに正しく反応しなくなる。

pCategory 引数が NULL の場合、このメソッドは、グラフ全体を対象として要求されたインターフェイスを検索する。このメソッドは、pf 引数によって指定されたフィルタから始めて、グラフ内で次のオブジェクトに問い合わせる

  • フィルタ
  • フィルタのピン
  • フィルタのピンを含むすべてのダウンストリーム フィルタ
  • フィルタのピンを含むすべてのアップストリーム フィルタ

次のように pCategory 引数と pType 引数を設定することにより、検索を限定できる。

  • pCategory が &LOOK_UPSTREAM_ONLY の場合、検索はフィルタの入力ピンから始まって、アップストリーム方向に継続する。フィルタ自体やフィルタのダウンストリームにあるものは検索の対象にならない。pType 引数は無視される。
  • pCategory が &LOOK_DOWNSTREAM_ONLY の場合、検索はフィルタの出力ピンから始まって、ダウンストリーム方向に継続する。フィルタ自体やフィルタのアップストリームにあるものは検索の対象にならない。pType 引数は無視される。
  • pCategory がピン カテゴリを指定している場合、検索のダウンストリームの部分は、ピン カテゴリと pType 引数によって指定されるメディア タイプの両方が一致するフィルタの出力ピンに限定される。その場合、メソッドは、フィルタおよびフィルタのアップストリームにあるすべてのものも検索する。

ピン カテゴリは、キャプチャ フィルタのピン インターフェイスを検索するときに役立つ。たとえば、キャプチャ フィルタは、キャプチャ用とプレビュー用の別々のピンを備えていることがある。ピン カテゴリを指定する場合は、メソッドが正しいフィルタとピンを選択できるように、メディア タイプも指定する必要がある。

一部のビデオ キャプチャ フィルタは、プレビュー ピンの代わりにビデオ ポート ピン (PIN_CATEGORY_VIDEOPORT) を備えている。PIN_CATEGORY_PREVIE と MEDIATYPE_Video を指定すると、メソッドは、すべてのビデオ ポート ピンをプレビュー ピンとして扱う。アプリケーションでこの可能性をテストする必要はない。

**サポートするフィルタ。**キャプチャ デバイスが Windows Driver Model (WDM) ドライバを使う場合、グラフは、TV チューナー フィルタやアナログ ビデオ クロスバー フィルタなど、WDM ビデオ キャプチャ フィルタのアップストリームにある特定のフィルタを必要とすることがある。グラフがこれらの WDM フィルタのいずれかを必要とする場合、このメソッドは自動的にそれらのフィルタをグラフに挿入する。メソッドは、キャプチャ フィルタの入力ピンに問い合わせて、入力ピンがサポートするメディアを判別し、それらのメディアを適合するフィルタに接続する。

参照