ICaptureGraphBuilder2::FindInterface メソッド (strmif.h)

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]

メソッドは FindInterface 、指定したフィルターから開始して、指定したインターフェイスのグラフを検索します。 フィルターの上流または下流のグラフのセクションに検索を制限したり、特定のピン カテゴリまたはメディアの種類に制限したりできます。

構文

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

パラメーター

[in] pCategory

検索条件を指定する GUID へのポインター。 詳細については、「解説」を参照してください。 可能な値は次のとおりです。

  • &LOOK_UPSTREAM_ONLY。
  • &LOOK_DOWNSTREAM_ONLY。
  • [ Pin プロパティ セット] に一覧表示されているピン カテゴリの 1 つ。
  • NULL
詳細については、「解説」を参照してください。

[in] pType

出力ピンの主要なメディアの種類 ( NULL) を指定する GUID へのポインター。

[in] pf

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

[in] riid

検索するインターフェイスのインターフェイス識別子 (IID)。

[out] ppint

インターフェイス ポインターを受け取る変数のアドレス。 インターフェイスが完了したら、必ず取得したインターフェイス ポインターを解放してください。

戻り値

HRESULT 値を返します。 使用可能な値は次のとおりです。

リターン コード 説明
S_OK
正常終了しました。
E_FAIL
失敗しました。
E_NOINTERFACE
そのようなインターフェイスはサポートされていません。
E_POINTER
NULL ポインター引数。

注釈

キャプチャ グラフでは、さまざまなフィルターとピンによって、圧縮パラメーター (IAMVideoCompression) やストリーム形式 (IAMStreamConfig) などのプロパティを設定するためのインターフェイスが公開される場合があります。 キャプチャ デバイスによっては、アナログ信号をルーティングする IAMCrossbar や、テレビ チューナー デバイスを制御する IAMTVTuner などの便利なインターフェイスが含まれる場合があります。 このメソッドを使用すると、グラフを走査する特別なコードを記述することなく、インターフェイスを検索できます。

大事なIVideoWindow インターフェイス ポインターを取得するには、このメソッドを呼び出さないでください。 常に、このインターフェイスのフィルター グラフ マネージャーに対してクエリを実行します。 それ以外の場合、フィルター グラフ マネージャーは、画面の解像度やその他のイベントの変更に正しく応答しません。
 
pCategory パラメーターが NULL の場合、このメソッドはグラフ全体で要求されたインターフェイスを検索します。 pf パラメーターで指定されたフィルターから、グラフ内の次のオブジェクトに対してクエリを実行します。
  • フィルター
  • フィルターのピン
  • すべてのダウンストリーム フィルター (ピンを含む)
  • すべてのアップストリーム フィルター (ピンを含む)
pCategory パラメーターと pType パラメーターを次のように設定することで、検索を制限できます。
  • pCategory が &LOOK_UPSTREAM_ONLY と等しい場合、検索はフィルターの入力ピンから開始され、アップストリームに進みます。 フィルターまたはフィルターの下流には何も含まれません。 pType パラメーターは無視されます。
  • pCategory が &LOOK_DOWNSTREAM_ONLY と等しい場合、検索はフィルターの出力ピンから開始され、ダウンストリームに続きます。 フィルターやフィルターの上流には含まれません。 pType パラメーターは無視されます。
  • pCategory でピン カテゴリが指定されている場合、検索のダウンストリーム部分は、pType パラメーターで指定されたピン カテゴリとメディアの種類の両方に一致するフィルターの出力ピンに制限されます。 この場合、 メソッドはフィルターと、フィルターから上流のすべても検索します。
さらに、 pCategoryNULL 以外の場合、メソッドは pf で指定されたフィルターから特定の Windows ドライバー モデル (WDM) フィルターをアップストリームに追加できます。 詳細については、このセクションの「サポート フィルター」の解説を参照してください。

ピン カテゴリは、キャプチャ フィルターでピン インターフェイスを見つけるのに役立ちます。 たとえば、キャプチャ フィルターには、キャプチャとプレビュー用の個別のピンが含まれます。 ピン カテゴリを指定する場合は、メディアの種類も指定して、メソッドが正しいフィルターとピンを選択することを確認する必要があります。

一部のビデオ キャプチャ フィルターには、プレビュー ピンではなくビデオ ポート ピン (PIN_CATEGORY_VIDEOPORT) があります。 PIN_CATEGORY_PREVIEWとMEDIATYPE_Videoを指定した場合、メソッドはビデオ ポート ピンをプレビュー ピンとして扱います。 アプリケーションでこの可能性をテストする必要はありません。

フィルターのサポート。 キャプチャ デバイスで Windows ドライバー モデル (WDM) ドライバーが使用されている場合、グラフには、テレビ チューナー フィルターやアナログ ビデオ クロスバー フィルターなど、WDM ビデオ キャプチャ フィルターの上流にある特定のフィルターが必要になる場合があります。 pCategory パラメーターが NULL と等しくない場合、このメソッドは必要な WDM フィルターをグラフに自動的に挿入します。 これを行うには、キャプチャ フィルターの入力ピンに対してクエリを実行して、サポートされているメディアを特定し、一致するフィルターに接続します。 pCategory パラメーターが NULL の場合、メソッドはアップストリーム フィルターを追加しません。

要件

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

こちらもご覧ください

エラーコードと成功コード

ICaptureGraphBuilder2 インターフェイス