Microsoft DirectX 8.0

CEnumMediaTypes クラス

CEnumMediaTypes クラスの階層

許容するメディアタイプの列挙子

宣言 : Amfilter.h

このクラスは IEnumMediaTypes インターフェイスを実装する。以下の CBasePin メソッドを呼び出す :

ピンが許容するメディア タイプのリストを変更するたびに、ピンはメディアタイプ バージョン数をインクリメントする。これが起こると、列挙オブジェクトはピンとはもう同期せず、クラス メソッドは VFW_E_ENUM_OUT_OF_SYNC を返す。列挙子を同期するには Reset を呼び出すこと。

Public メソッド
CEnumMediaTypesコンストラクタ メソッド。
~CEnumMediaTypesデストラクタ メソッド。仮想。
IEnumMediaTypes メソッド。
Clone同じ列挙状態で列挙子のコピーを作成する。
Next指定した数だけメディア タイプを取得する。
Reset列挙シーケンスを開始状態にリセットする。
Skip指定した数だけメディア タイプをスキップする。

CEnumMediaTypes::CEnumMediaTypes

CEnumMediaTypes クラス

コンストラクタ メソッド。

構文

CEnumMediaTypes(
    CBasePin *pPin,
    CEnumMediaTypes *pEnumMediaTypes
);

パラメータ

pPin
列挙が行われるべきピンへのポインタ。
pEnumMediaTypes
コピーする列挙子の IEnumMediaTypes インターフェイスへのポインタ、あるいは NULL 。

注意

pEnumMediaTypes が NULL なら、このメソッドは列挙シーケンスの初期状態に列挙子を初期化する。そうでなければ、それは pEnumMediaTypes で指定される列挙子の内部状態をコピーする。

CEnumMediaTypes::~CEnumMediaTypes

CEnumMediaTypes クラス

デストラクタ メソッド。

構文

virtual ~CEnumMediaTypes(void);

CEnumMediaTypes::Clone

CEnumMediaTypes クラス

同じ列挙状態で列挙子のコピーを作る。IEnumMediaTypes::Clone メソッドの実装。

構文

HRESULT Clone(
    IEnumMediaTypes **ppEnum
);

パラメータ

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

戻り値

以下の表に示される HRESULT 値の 1 つを返す。

S_OK成功。
E_OUTOFMEMORYメモリ不足。
E_POINTERNULL ポインタ引数。
VFW_E_ENUM_OUT_OF_SYNCピンの状態は変更され、現在その列挙子とは矛盾している。

CEnumMediaTypes::Next

CEnumMediaTypes クラス

指定した数だけメディア タイプを取得する。 IEnumMediaTypes::Next メソッドの実装。

構文

HRESULT Next(
    ULONG cMediaTypes,
    AM_MEDIA_TYPE **ppMediaTypes,
    ULONG *pcFetched
);

パラメータ

cMediaTypes
取得するメディア タイプの数。
ppMediaTypes
サイズ cPinsAM_MEDIA_TYPE 構造体へのポインタの配列。
pcFetched
メソッドが返すメディア タイプの数を受け取る変数のポインタ。cMediaTypes が 1 なら、NULL を取り得る。

戻り値

以下の表に示される HRESULT 値の 1 つを返す。

S_FALSE要求された数のメディア タイプを取得できなかった。
S_OK成功。
E_INVALIDARG不適切な引数。
E_POINTERNULL ポインタ引数。
VFW_E_ENUM_OUT_OF_SYNCピンの状態は変更され、現在その列挙子とは矛盾している。

注意

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

このメディアはピンの CBasePin::GetMediaType メソッドを呼び出してメディア タイプを取得する。

CEnumMediaTypes::Reset

CEnumMediaTypes クラス

列挙シーケンスを開始状態にリセットする。IEnumMediaTypes::Reset メソッドの実装。

構文

HRESULT Reset(void);

戻り値

S_OK を返す。

CEnumMediaTypes::Skip

CEnumMediaTypes クラス

指定した数だけメディア タイプをスキップする。IEnumMediaTypes::Skip メソッドの実装。

構文

HRESULT Skip(
    ULONG cMediaTypes
);

パラメータ

cMediaTypes
スキップするメディア タイプの数。

戻り値

以下の表に示される HRESULT 値の 1 つを返す。

S_FALSEシーケンスの最後までスキップした。
S_OK成功。
VFW_E_ENUM_OUT_OF_SYNCピンの状態は変更され、現在その列挙子とは矛盾する。