Microsoft DirectX 8.0 |
フィルタ上のピンを列挙する。
IBaseFilter::EnumPins メソッドは、このインターフェイスを返す。このメソッドは、標準 Component Object Model (COM) 列挙子を基にしている。詳細については、Platform SDK の「IEnumXXXX」 というトピックを参照すること。
フィルタ グラフ マネージャは、フィルタと接続するときこのインターフェイスを使用する。アプリケーションは、このインターフェイスを使って、フィルタ上のピンを取得することができる。詳細については、「フィルタ グラフ内のオブジェクトの列挙」を参照すること。
フィルタのピンの数が変更になると、このインターフェイスのいくつかのメソッドが VFW_E_ENUM_OUT_OF_SYNC を返す。Reset を呼び出して列挙子を再同期する。
vtable 順のメソッド
IUnknown メソッド 説明 QueryInterface サポートされているインターフェイスへのポインタを取得する。 AddRef 参照カウントをインクリメントする。 Release 参照カウントをデクリメントする。 IEnumPins メソッド 説明 Next 指定した数のピンを取得する。 Skip 指定した数のピンをスキップする。 Reset 列挙子をシーケンスの先頭からリセットする。 Clone 同じ列挙状態で列挙子のコピーを作成する。
同じ列挙状態で列挙子のコピーを作成する。
構文
HRESULT Clone( IEnumPins **ppEnum );
パラメータ
- ppEnum
- [out] 新しい列挙子の IEnumPins インターフェイスへのポインタを受け取る変数のアドレス。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_OUTOFMEMORY メモリ不足。 E_POINTER Null ポインタ引数。 VFW_E_ENUM_OUT_OF_SYNC フィルタの状態が変更になり、現在その列挙子と互換性がない。
注意
ピンの数が変更されると、列挙子はそのピンとの互換性をなくし、メソッドは VFW_E_ENUM_OUT_OF_SYNC を返す。列挙子へのその前の呼び出しで取得したデータは廃棄すること、なぜなら有効ではない可能性があるからだ。Reset メソッドを呼び出して列挙子をアップデートすること。そうすれば Clone メソッドを安全に呼び出すことができる。
列挙シーケンスで指定した数のピンを取得する。
構文
HRESULT Next( ULONG cPins, IPin **ppPins, ULONG *pcFetched );
パラメータ
- cPins
- [in] 取得するピンの数。
- ppPins
- [out] IPin ポインタが書き込まれる cPins サイズの配列。
- pcFetched
- [out] 取得したピンの数を受け取る変数へのポインタ。cPins が 1 なら NULL の場合もある。
戻り値
次のいずれかの HRESULT 値を返す。
S_FALSE 要求した数と同じ数のピンを取得できなかった。 S_OK 成功。 E_INVALIDARG 無効な引数。 E_POINTER Null ポインタ引数。 VFW_E_ENUM_OUT_OF_SYNC フィルタの状態が変更になり、現在その列挙子と互換性がない。
注意
このメソッドは、列挙の現在位置から開始して、指定した数のピンへのポインタを取得し、それを指定した配列に置く。
メソッドが成功すると、IPin ポインタすべてに参照カウントが残る。解放時に注意が必要。
ピンの数が変更されると、列挙子はそのピンとの互換性をなくし、メソッドは VFW_E_ENUM_OUT_OF_SYNC を返す。列挙子へのその前の呼び出しで取得したデータは廃棄すること、なぜなら有効ではない可能性があるからだ。Reset メソッドを呼び出して列挙子をアップデートすること。そうすれば Next メソッドを安全に呼び出すことができる。
列挙子をシーケンスの先頭からリセットする。
構文
HRESULT Reset(void);
戻り値
S_OK を返す。
指定した数のピンをスキップする。
構文
HRESULT Skip( ULONG cPins );
パラメータ
- cPins
- [in] スキップするピン数。
戻り値
次のいずれかの HRESULT 値を返す。
S_FALSE スキップはシーケンスの最後を越えた。 S_OK 成功。 VFW_E_ENUM_OUT_OF_SYNC フィルタの状態が変更になり、現在その列挙子と互換性がない。
注意
ピンの数が変更されると、列挙子はそのピンとの互換性をなくし、メソッドは VFW_E_ENUM_OUT_OF_SYNC を返す。列挙子へのその前の呼び出しで取得したデータは廃棄すること、なぜなら有効ではない可能性があるからだ。Reset メソッドを呼び出して列挙子をアップデートすること。そうすれば Skip メソッドを安全に呼び出すことができる。