IFilterMapper2::EnumMatchingFilters メソッド (strmif.h)
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
メソッドは EnumMatchingFilters
、指定された要件を満たす登録済みフィルターを列挙します。
構文
HRESULT EnumMatchingFilters(
[out] IEnumMoniker **ppEnum,
[in] DWORD dwFlags,
[in] BOOL bExactMatch,
[in] DWORD dwMerit,
[in] BOOL bInputNeeded,
[in] DWORD cInputTypes,
[in] const GUID *pInputTypes,
[in] const REGPINMEDIUM *pMedIn,
[in] const CLSID *pPinCategoryIn,
[in] BOOL bRender,
[in] BOOL bOutputNeeded,
[in] DWORD cOutputTypes,
[in] const GUID *pOutputTypes,
[in] const REGPINMEDIUM *pMedOut,
[in] const CLSID *pPinCategoryOut
);
パラメーター
[out] ppEnum
IEnumMoniker インターフェイスへのポインターを受け取ります。 列挙体からフィルター モニカーを取得するには、このインターフェイス ポインターを使用します。 呼び出し元はインターフェイスを解放する必要があります。
[in] dwFlags
予約済み。0 である必要があります。
[in] bExactMatch
完全一致が必要かどうかを示すブール値。 詳細については、「解説」を参照してください。
[in] dwMerit
最小メリット値。 列挙は、より小さいメリット値を持つフィルターを除外します。 メリット値の一覧については、「 メリット」を参照してください。 dwMerit がMERIT_DO_NOT_USEより高い場合、列挙では、カテゴリのメリットがMERIT_DO_NOT_USE以下のフィルターも除外されます。 ( 「フィルター カテゴリ」を参照してください)。
[in] bInputNeeded
フィルターに入力ピンが必要かどうかを示すブール値。 値が TRUE の場合、フィルターには少なくとも 1 つの入力ピンが必要です。
[in] cInputTypes
pInputTypes で指定された入力メディアの種類の数。
[in] pInputTypes
入力ピンが一致するように、主要な型とサブタイプを指定する GUID ペアの配列へのポインター。 配列のサイズは 2 * cInputTypes です。 配列には NULL を指定できます。 個々の配列メンバーは、任意の型に一致するGUID_NULLできます。 ( 「メディアの種類」を参照してください)。
[in] pMedIn
入力ピンのメディアを指定する REGPINMEDIUM 構造体へのポインター。 必要ない場合は NULL に設定します。
[in] pPinCategoryIn
入力ピン カテゴリを指定する GUID へのポインター。 (「 Pin プロパティ セット」を参照してください)。必要ない場合は NULL に設定します。
[in] bRender
フィルターが入力をレンダリングする必要があるかどうかを示すブール値。 TRUE の場合、指定したフィルターは入力をレンダリングする必要があります。 (この値は、フィルターのピンに関する情報を登録するために使用される REGFILTERPINS 構造体の bRendered フィールドに対応します)。
[in] bOutputNeeded
フィルターに出力ピンが必要かどうかを指定するブール値。 TRUE の場合、フィルターには少なくとも 1 つの出力ピンが必要です。
[in] cOutputTypes
pOutputTypes で指定された入力メディアの種類の数。
[in] pOutputTypes
出力ピンが一致するように、主要な型とサブタイプを指定する GUID ペアの配列へのポインター。 配列のサイズは 2 * cOutputTypes です。 配列には NULL を指定できます。 個々の配列メンバーは、任意の型に一致するGUID_NULLできます。
[in] pMedOut
出力ピンのメディアを指定する REGPINMEDIUM 構造体へのポインター。 必要ない場合は NULL に設定します。
[in] pPinCategoryOut
出力ピン カテゴリを指定する GUID へのポインター。 (「 Pin プロパティ セット」を参照してください)。必要ない場合は NULL に設定します。
戻り値
HRESULT 値を返します。 次の表に示す値を指定できます。
リターン コード | 説明 |
---|---|
|
Success |
|
障害 |
|
メモリ不足 |
|
NULL ポインター引数 |
注釈
入力ピンが特定のメディア型のセットと一致するフィルターを検索するには、メジャー型 GUID とサブタイプ GUID をペアで並べ替えた配列を宣言します。 pInputTypes パラメーターに配列アドレスを渡し、cInputTypes パラメーターをペアの数 (つまり配列サイズの半分) に設定します。
C++ |
---|
GUID arrayInTypes[2];arrayInTypes[0] = MEDIATYPE_Video;arrayInTypes[1] = GUID_NULL; |
bExactMatch パラメーターの値が TRUE の場合、このメソッドは、メディアの種類、ピン カテゴリ、およびピンメディアに指定した値と完全に一致するフィルターを検索します。 値が FALSE の場合、これらの項目のいずれかに NULL 値を登録するフィルターは一致と見なされます。 (実際には、レジストリ内の NULL 値はワイルドカードとして機能します)。
メディアの種類、ピン カテゴリ、またはピン メディアに NULL を 指定した場合、フィルターはそのパラメーターと一致すると見なされます。
ピンがメディアの種類を登録しなかった場合、このメソッドはメディアの種類に一致するとは見なされません。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | strmif.h (Dshow.h を含む) |
Library | Strmiids.lib |