Microsoft DirectX 8.0 |
許容するメディアタイプの列挙子
宣言 : Amfilter.h
このクラスは IEnumMediaTypes インターフェイスを実装する。以下の CBasePin メソッドを呼び出す :
ピンが許容するメディア タイプのリストを変更するたびに、ピンはメディアタイプ バージョン数をインクリメントする。これが起こると、列挙オブジェクトはピンとはもう同期せず、クラス メソッドは VFW_E_ENUM_OUT_OF_SYNC を返す。列挙子を同期するには Reset を呼び出すこと。
Public メソッド | |
---|---|
CEnumMediaTypes | コンストラクタ メソッド。 |
~CEnumMediaTypes | デストラクタ メソッド。仮想。 |
IEnumMediaTypes メソッド。 | |
Clone | 同じ列挙状態で列挙子のコピーを作成する。 |
Next | 指定した数だけメディア タイプを取得する。 |
Reset | 列挙シーケンスを開始状態にリセットする。 |
Skip | 指定した数だけメディア タイプをスキップする。 |
コンストラクタ メソッド。
構文
CEnumMediaTypes( CBasePin *pPin, CEnumMediaTypes *pEnumMediaTypes );
パラメータ
- pPin
- 列挙が行われるべきピンへのポインタ。
- pEnumMediaTypes
- コピーする列挙子の IEnumMediaTypes インターフェイスへのポインタ、あるいは NULL 。
注意
pEnumMediaTypes が NULL なら、このメソッドは列挙シーケンスの初期状態に列挙子を初期化する。そうでなければ、それは pEnumMediaTypes で指定される列挙子の内部状態をコピーする。
デストラクタ メソッド。
構文
virtual ~CEnumMediaTypes(void);
同じ列挙状態で列挙子のコピーを作る。IEnumMediaTypes::Clone メソッドの実装。
構文
HRESULT Clone( IEnumMediaTypes **ppEnum );
パラメータ
- ppEnum
- 新しい列挙子の IEnumMediaTypes インターフェイスへのポインタを受け取る変数のアドレス。
戻り値
以下の表に示される HRESULT 値の 1 つを返す。
S_OK 成功。 E_OUTOFMEMORY メモリ不足。 E_POINTER NULL ポインタ引数。 VFW_E_ENUM_OUT_OF_SYNC ピンの状態は変更され、現在その列挙子とは矛盾している。
指定した数だけメディア タイプを取得する。 IEnumMediaTypes::Next メソッドの実装。
構文
HRESULT Next( ULONG cMediaTypes, AM_MEDIA_TYPE **ppMediaTypes, ULONG *pcFetched );
パラメータ
- cMediaTypes
- 取得するメディア タイプの数。
- ppMediaTypes
- サイズ cPins の AM_MEDIA_TYPE 構造体へのポインタの配列。
- pcFetched
- メソッドが返すメディア タイプの数を受け取る変数のポインタ。cMediaTypes が 1 なら、NULL を取り得る。
戻り値
以下の表に示される HRESULT 値の 1 つを返す。
S_FALSE 要求された数のメディア タイプを取得できなかった。 S_OK 成功。 E_INVALIDARG 不適切な引数。 E_POINTER NULL ポインタ引数。 VFW_E_ENUM_OUT_OF_SYNC ピンの状態は変更され、現在その列挙子とは矛盾している。
注意
メソッドが成功すると、ppMediaTypes によって指定される配列には AM_MEDIA_TYPE 構造体へのポインタが入る。構造体の数は *pcFetched と等しい。DeleteMediaType を呼び出して、各メディア タイプをフリーにすること。
このメディアはピンの CBasePin::GetMediaType メソッドを呼び出してメディア タイプを取得する。
列挙シーケンスを開始状態にリセットする。IEnumMediaTypes::Reset メソッドの実装。
構文
HRESULT Reset(void);
戻り値
S_OK を返す。
指定した数だけメディア タイプをスキップする。IEnumMediaTypes::Skip メソッドの実装。
構文
HRESULT Skip( ULONG cMediaTypes );
パラメータ
- cMediaTypes
- スキップするメディア タイプの数。
戻り値
以下の表に示される HRESULT 値の 1 つを返す。
S_FALSE シーケンスの最後までスキップした。 S_OK 成功。 VFW_E_ENUM_OUT_OF_SYNC ピンの状態は変更され、現在その列挙子とは矛盾する。