Microsoft DirectX 8.0 |
注 : このインターフェイスの使用は避けること。新しいアプリケーションでは、モニカを列挙し、IEnumMoniker インターフェイスへのポインタを返す IFilterMapper2::EnumMatchingFilters を使用すること。
このインターフェイスは、登録済みフィルタを列挙するメソッドを備えている。IFilterMapper::EnumMatchingFilters メソッドが、このインターフェイスへのポインタを返す。ただし、IFilterMapper に代わって、IFilterMapper2 が使用されるようになった。
vtable 順のメソッド
IUnknown メソッド 説明 QueryInterface サポートされているインターフェイスへのポインタを取得する。 AddRef 参照カウントをインクリメントする。 Release 参照カウントをデクリメントする。 IEnumRegFilters メソッド 説明 Next 条件を満たす次のフィルタを配列に設定する。 Skip 現在は実装されていない。 Reset 1 番目のフィルタを先頭に、Next メソッドを再び開始する。 Clone 現在は実装されていない。
現在の列挙子の状態と同じ状態の、別の列挙子を作成する。
このメソッドは現在実装されていない。E_NOTIMPL を返す。
構文
HRESULT Clone( IEnumRegFilters **ppEnum );
パラメータ
- ppEnum
- [out] 重複する列挙子インターフェイスへのポインタのアドレス。
戻り値
E_NOTIMPL を返す。
列挙子の作成時に指定した条件を満たす、cFilters パラメータで指定される次のフィルタ セットの記述を配列に設定する。
構文
HRESULT Next( ULONG cFilters, REGFILTER **apRegFilter, ULONG *pcFetched );
パラメータ
- cFilters
- [in] フィルタ数。
- apRegFilter
- [out] REGFILTER ポインタで構成される配列へのポインタのアドレス。
- pcFetched
- [out] 実際に渡されたフィルタ数へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
E_INVALIDARG 無効な引数。 E_OUTOFMEMORY メモリ不足。 E_POINTER Null ポインタ引数。 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::Next メソッドの次回の呼び出しは、再び先頭のフィルタ (ある場合) から開始する。
構文
HRESULT Reset(void);
戻り値
成功を示す S_OK を返す。
列挙シーケンスの中で指定の項目数をスキップする。
このメソッドは現在実装されていない。E_NOTIMPL を返す。
構文
HRESULT Skip( ULONG celt );
パラメータ
- celt
- [in] スキップする項目数。
戻り値
E_NOTIMPL を返す。