Microsoft DirectX 8.0

IEnumPins インターフェイス

フィルタ上のピンを列挙する。

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 同じ列挙状態で列挙子のコピーを作成する。

IEnumPins::Clone

IEnumPins インターフェイス

同じ列挙状態で列挙子のコピーを作成する。

構文

HRESULT Clone(
    IEnumPins **ppEnum
);

パラメータ

ppEnum
[out] 新しい列挙子の IEnumPins インターフェイスへのポインタを受け取る変数のアドレス。

戻り値

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

S_OK成功。
E_OUTOFMEMORYメモリ不足。
E_POINTERNull ポインタ引数。
VFW_E_ENUM_OUT_OF_SYNCフィルタの状態が変更になり、現在その列挙子と互換性がない。

注意

ピンの数が変更されると、列挙子はそのピンとの互換性をなくし、メソッドは VFW_E_ENUM_OUT_OF_SYNC を返す。列挙子へのその前の呼び出しで取得したデータは廃棄すること、なぜなら有効ではない可能性があるからだ。Reset メソッドを呼び出して列挙子をアップデートすること。そうすれば Clone メソッドを安全に呼び出すことができる。

IEnumPins::Next

IEnumPins インターフェイス

列挙シーケンスで指定した数のピンを取得する。

構文

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_POINTERNull ポインタ引数。
VFW_E_ENUM_OUT_OF_SYNCフィルタの状態が変更になり、現在その列挙子と互換性がない。

注意

このメソッドは、列挙の現在位置から開始して、指定した数のピンへのポインタを取得し、それを指定した配列に置く。

メソッドが成功すると、IPin ポインタすべてに参照カウントが残る。解放時に注意が必要。

ピンの数が変更されると、列挙子はそのピンとの互換性をなくし、メソッドは VFW_E_ENUM_OUT_OF_SYNC を返す。列挙子へのその前の呼び出しで取得したデータは廃棄すること、なぜなら有効ではない可能性があるからだ。Reset メソッドを呼び出して列挙子をアップデートすること。そうすれば Next メソッドを安全に呼び出すことができる。

IEnumPins::Reset

IEnumPins インターフェイス

列挙子をシーケンスの先頭からリセットする。

構文

HRESULT Reset(void);

戻り値

S_OK を返す。

IEnumPins::Skip

IEnumPins インターフェイス

指定した数のピンをスキップする。

構文

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 メソッドを安全に呼び出すことができる。