Microsoft DirectX 8.0

IEnumMediaTypes インターフェイス

ピンの許容するフォーマットを列挙する。

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

IEnumMediaTypes::Clone

IEnumMediaTypes インターフェイス

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

構文

HRESULT Clone(
    IEnumMediaTypes **ppEnum
);

パラメータ

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

戻り値

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

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

注意

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

IEnumMediaTypes::Next

IEnumMediaTypes インターフェイス

指定した数のメディア タイプを取得する。

構文

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

注意

メソッドが成功すると、ppMediaTypes によって指定された配列には AM_MEDIA_TYPE 構造体へのポインタが入る。構造体の数は *pcFetched と等しい。DeleteMediaType を呼び出して各メディア タイプを解放すること。

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

IEnumMediaTypes::Reset

IEnumMediaTypes インターフェイス

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

構文

HRESULT Reset(void);

戻り値

S_OK を返す。

IEnumMediaTypes::Skip

IEnumMediaTypes インターフェイス

指定した数のメディア タイプをスキップする。

構文

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