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 フィルタのいずれかを必要とする場合、このメソッドは自動的にそれらのフィルタをグラフに挿入する。メソッドは、キャプチャ フィルタの入力ピンに問い合わせて、入力ピンがサポートするメディアを判別し、それらのメディアを適合するフィルタに接続する。
参照