Microsoft DirectX 8.0

IEnumRegFilters インターフェイス

注 :  このインターフェイスの使用は避けること。新しいアプリケーションでは、モニカを列挙し、IEnumMoniker インターフェイスへのポインタを返す IFilterMapper2::EnumMatchingFilters を使用すること。

このインターフェイスは、登録済みフィルタを列挙するメソッドを備えている。IFilterMapper::EnumMatchingFilters メソッドが、このインターフェイスへのポインタを返す。ただし、IFilterMapper に代わって、IFilterMapper2 が使用されるようになった。

vtable 順のメソッド

IUnknown メソッド説明
QueryInterface サポートされているインターフェイスへのポインタを取得する。
AddRef 参照カウントをインクリメントする。
Release 参照カウントをデクリメントする。
IEnumRegFilters メソッド説明
Next 条件を満たす次のフィルタを配列に設定する。
Skip 現在は実装されていない。
Reset 1 番目のフィルタを先頭に、Next メソッドを再び開始する。
Clone 現在は実装されていない。

IEnumRegFilters::Clone

IEnumRegFilters インターフェイス

現在の列挙子の状態と同じ状態の、別の列挙子を作成する。

このメソッドは現在実装されていない。E_NOTIMPL を返す。

構文

HRESULT Clone(
    IEnumRegFilters **ppEnum
);

パラメータ

ppEnum
[out] 重複する列挙子インターフェイスへのポインタのアドレス。

戻り値

E_NOTIMPL を返す。

IEnumRegFilters::Next

IEnumRegFilters インターフェイス

列挙子の作成時に指定した条件を満たす、cFilters パラメータで指定される次のフィルタ セットの記述を配列に設定する。

構文

HRESULT Next(
    ULONG cFilters,
    REGFILTER **apRegFilter,
    ULONG *pcFetched
);

パラメータ

cFilters
[in] フィルタ数。
apRegFilter
[out] REGFILTER ポインタで構成される配列へのポインタのアドレス。
pcFetched
[out] 実際に渡されたフィルタ数へのポインタ。

戻り値

次のいずれかの HRESULT 値を返す。

E_INVALIDARG無効な引数。
E_OUTOFMEMORYメモリ不足。
E_POINTERNull ポインタ引数。
E_UNEXPECTED予期せぬエラー。
S_FALSE取得されたフィルタ数が、要求された数よりも少ない。
S_OK成功。
VFW_E_ENUM_OUT_OF_SYNC列挙子が無効になった。詳細については、「注意」を参照すること。

注意

呼び出し側のアプリケーションは、Microsoft Win32 CoTaskMemFree 関数を使用して、配列に返された各 REGFILTER ポインタを解放する必要がある。REGFILTER 構造体の Name メンバを個別に解放してはならない。IEnumRegFilters::Next は、REGFILTER 構造体の一部として、この文字列に対してメモリを割り当てているからである。

登録済みフィルタ数が変更を受けると、列挙子の状態とレジストリの状態の一貫性が失われる。この結果、VFW_E_ENUM_OUT_OF_SYNC が返される。データが無効の可能性があるため、列挙子への前の呼び出しから取得したデータはいずれも破棄し、Reset メソッドを呼び出して列挙子を更新する必要がある。この後であれば、Next メソッドを正しく呼び出すことができる。

IEnumRegFilters::Reset

IEnumRegFilters インターフェイス

列挙子をリセットする。これによって、IEnumRegFilters::Next メソッドの次回の呼び出しは、再び先頭のフィルタ (ある場合) から開始する。

構文

HRESULT Reset(void);

戻り値

成功を示す S_OK を返す。

IEnumRegFilters::Skip

IEnumRegFilters インターフェイス

列挙シーケンスの中で指定の項目数をスキップする。

このメソッドは現在実装されていない。E_NOTIMPL を返す。

構文

HRESULT Skip(
  ULONG celt
);

パラメータ

celt
[in] スキップする項目数。

戻り値

E_NOTIMPL を返す。