IFilterMapper2::EnumMatchingFilters

EnumMatchingFilters メソッドは、指定された要件を満たす登録済みフィルタを列挙する。

構文

  HRESULT EnumMatchingFilters(
  IEnumMoniker **ppEnum,
  DWORD dwFlags,
  BOOL bExactMatch,
  DWORD dwMerit,
  BOOL bInputNeeded,
  DWORD cInputTypes,
  const GUID *pInputTypes,
  const REGPINMEDIUM *pMedIn,
  const CLSID *pPinCategoryIn,
  BOOL bRender,
  BOOL bOutputNeeded,
  DWORD cOutputTypes,
  const GUID *pOutputTypes,
  const REGPINMEDIUM *pMedOut,
  const CLSID *pPinCategoryOut
);

パラメータ

ppEnum

[out] IEnumMoniker インターフェイスへのポインタを受け取る変数のアドレス。このインターフェイス ポインタを使って、列挙からフィルタ モニカを取得する。呼び出し元はインターフェイスを必ず解放すること。

dwFlags

[in] 予約済み。0 でなければならない。

bExactMatch

[in] 完全に一致するものだけを列挙するかどうかを示すブール型の値。詳細については、「注意」を参照すること。

dwMerit

[in] 最小メリット値。列挙では、この値未満のメリット値のフィルタは除外する。dwMerit が MERIT_DO_NOT_USE を超える場合、列挙は category が MERIT_DO_NOT_USE 以下のメリット値のフィルタも除外する (フィルタ カテゴリ」を参照すること)。

bInputNeeded

[in] フィルタに入力ピンが必要かどうかを示すブール型の値。TRUE の場合、フィルタには入力ピンが少なくとも 1 つ必要である。

cInputTypes

[in] pInputTypes で指定する入力メディア タイプの数。

pInputTypes

[in] メジャー タイプおよびサブタイプを指定する GUID ペアの配列へのポインタ。これらに一致する入力ピンを列挙する。配列のサイズは 2 * cInputTypes となる。配列は NULL も可。配列の個々のメンバには、あらゆるタイプに一致する GUID_NULL を指定できる (「メディア タイプ」を参照すること)。

pMedIn

[in] 入力ピンのメディアを指定する REGPINMEDIUM 構造体へのポインタ。必要がない場合は、NULL を設定する。

pPinCategoryIn

[in] 入力ピン カテゴリを指定する GUID へのポインタ (「ピン プロパティ セット」を参照すること)。必要がない場合は、NULL を設定する。

bRender

[in] フィルタがその入力をレンダリングする必要があるかどうかを指定するブール型の値。TRUE の場合には、指定されたフィルタが入力をレンダリングする必要がある。

bOutputNeeded

[in] フィルタに出力ピンが必要かどうかを指定するブール型の値。TRUE の場合、フィルタには出力ピンが少なくとも 1 つ必要である。

cOutputTypes

[in] pOutputTypes で指定する入力メディア タイプの数。

pOutputTypes

[in] メジャー タイプおよびサブタイプを指定する GUID ペアの配列へのポインタ。これらに一致する出力ピンを列挙する。配列のサイズは 2 * cOutputTypes となる。配列は NULL も可。配列の個々のメンバには、あらゆるタイプに一致する GUID_NULL を指定できる。

pMedOut

[in] 出力ピンのメディアを指定する REGPINMEDIUM 構造体へのポインタ。必要がない場合は、NULL を設定する。

pPinCategoryOut

[in] 出力ピン カテゴリを指定する GUID へのポインタ (「ピン プロパティ セット」を参照すること)。必要がない場合は、NULL を設定する。

戻り値

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

説明
S_OK 成功。
E_FAIL 失敗。
E_OUTOFMEMORY メモリ不足。
E_POINTER NULL ポインタ引数。

注意

入力ピンが与えられたメディア タイプ セットと一致するフィルタを検索するには、メジャー タイプ GUID とサブタイプ GUID のペアを順に並べた配列を宣言する。pInputTypes 引数に配列のアドレスを渡し、cInputTypes 引数にペアの数 (つまり配列サイズの半分) を設定する。

GUID arrayInTypes[2];
arrayInTypes[0] = MEDIATYPE_Video;
arrayInTypes[1] = GUID_NULL;

DWORD cInTypes = 1;

出力ピンの場合は、pOutputTypes 引数に同様の配列を渡し、cOutputTypes 引数で GUID ペアの数を指定する。

bExactMatch 引数の値が TRUE の場合、このメソッドは、メディア タイプ、ピン カテゴリ、ピン メディアで指定された値と完全に一致するフィルタを検索する。この値が FALSE の場合、これらの項目のいずれかの値に NULL を登録しているフィルタが一致するものと見なされる (レジストリ内の値 NULL はワイルドカードの役目を果たす)。

メディア タイプ、ピン カテゴリ、またはピン メディアに NULL を指定すると、あらゆるフィルタがその引数に一致するものと見なされる。

メディア タイプが登録されていないピンは、そのメディア タイプに一致しないものと見なされる。

参照