Microsoft DirectX 8.0 |
ピンの許容するフォーマットを列挙する。
IPin::EnumMediaTypes メソッドはこのインターフェイスを返す。それは標準 Component Object Model (COM) 列挙子をベースにしている。詳細については、Platform SDK の IEnumXXXX トピックを参照すること。
ピンが他のピンと接続するとき、ピンはこのインターフェイスを使用する。アプリケーションはそれを使って、ピンの許容するメディアタイプを試験することもできる。詳細については、「Enumerating Objects in a Filter Graph」を参照すること。
ピンの許容するメディア タイプが変更されると、このインターフェイスのあるメソッドが VFW_E_ENUM_OUT_OF_SYNC を返す。Reset メソッドを呼び出して列挙子を再同期すること。
vtable 順のメソッド
IUnknown メソッド 説明 QueryInterface サポートされているインターフェイスへのポインタを取得する。 AddRef 参照カウントをインクリメントする。 Release 参照カウントをデクリメントする。 IEnumMediaTypes メソッド 説明 Next 指定した数のメディア タイプを取得する。 Skip 指定した数のメディア タイプをスキップする。 Reset 列挙シーケンスを先頭からリセットする。 Clone 同じ列挙状態で列挙子のコピーを作成する。
同じ列挙状態で列挙子のコピーを作成する。
構文
HRESULT Clone( IEnumMediaTypes **ppEnum );
パラメータ
- ppEnum
- [out] 新しい列挙子のIEnumMediaTypes インターフェイスへのポインタを受け取る変数のアドレス。
戻り値
次のいずれかの 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 cMediaTypes, AM_MEDIA_TYPE **ppMediaTypes, ULONG *pcFetched );
パラメータ
- cMediaTypes
- [in] 取得するメディア タイプ数。
- ppMediaTypes
- [out] cPins サイズの AM_MEDIA_TYPE 構造体へのポインタの配列。
- pcFetched
- [out] メソッドが返したメディア タイプの数を受け取る変数へのポインタ。cMediaTypes が 1 なら NULL の場合もある。
戻り値
次のいずれかの HRESULT 値を返す。
S_FALSE 要求されたメディア タイプの数と同じ数を取得できなかった。 S_OK 成功。 E_INVALIDARG 無効な引数。 E_POINTER Null ポインタ引数。 VFW_E_ENUM_OUT_OF_SYNC ピンの状態が変更になり、現在その列挙子と互換性がない。
注意
メソッドが成功すると、ppMediaTypes によって指定された配列には AM_MEDIA_TYPE 構造体へのポインタが入る。構造体の数は *pcFetched と等しい。DeleteMediaType を呼び出して各メディア タイプを解放すること。
メディア タイプが変更されると、列挙子はそのピンとの互換性をなくし、メソッドは VFW_E_ENUM_OUT_OF_SYNC を返す。列挙子へのその前の呼び出しで取得したデータは廃棄すること、なぜなら有効ではない可能性があるからだ。Reset メソッドを呼び出して列挙子をアップデートすること。そうすれば Next メソッドを安全に呼び出すことができる。
列挙シーケンスを先頭からリセットする。
構文
HRESULT Reset(void);
戻り値
S_OK を返す。
指定した数のメディア タイプをスキップする。
構文
HRESULT Skip( ULONG cMediaTypes);
パラメータ
- cMediaTypes
- [in] スキップするメディア タイプの数。
戻り値
次のいずれかの HRESULT 値を返す。
S_FALSE スキップはシーケンスの最後を越えた。 S_OK 成功。 VFW_E_ENUM_OUT_OF_SYNC ピンの状態が変更され、現在その列挙子と互換性がない。
注意
メディア タイプが変更されると、列挙子はそのピンとの互換性をなくし、メソッドは VFW_E_ENUM_OUT_OF_SYNC を返す。列挙子へのその前の呼び出しで取得したデータは廃棄すること、なぜなら有効ではない可能性があるからだ。Reset メソッドを呼び出して列挙子をアップデートすること。そうすれば Skip メソッドを安全に呼び出すことができる。