Microsoft DirectX 8.0

CMediaType クラス

CMediaType クラスの階層

メディア タイプを管理するためのクラス。このクラスは AM_MEDIA_TYPE 構造体を継承する。それは AM_MEDIA_TYPE タイプの変数にキャストされ得る。

宣言 : Mtype.h

Public メソッド
CMediaTypeコンストラクタ メソッド
~CMediaTypeデストラクタ メソッド
IsValidメジャー タイプがこのオブジェクトにアサインされているかどうかを確認する。
Typeメジャー タイプを取得する。
SetTypeメジャー タイプを指定する。
Subtypeサブタイプを取得する。
SetSubtypeサブタイプを指定する。
IsFixedSizeサンプルが固定サイズか可変サイズかを確認する。
IsTemporalCompressedストリームが時系列圧縮を使用しているかどうかを確認する。
GetSampleSizeサンプル サイズを取得する。
SetSampleSize固定サンプル サイズを指定する、あるいはサンプルが可変サイズを持つことを指定する。
SetVariableSizeサンプルが固定サイズを持たないことを指定する。
SetTemporalCompressionサンプルが時系列圧縮を使って圧縮されたかどうかを指定する。
Formatフォーマット ブロックへのポインタを取得する。
FormatLengthフォーマット ブロックの長さを取得する。
SetFormatTypeフォーマット タイプを指定する。
FormatTypeフォーマット タイプを取得する。
SetFormatフォーマット ブロックを指定する。
ResetFormatBufferフォーマット ブロックを削除する。
AllocFormatBufferフォーマット ブロックのメモリを割り当てる。
ReallocFormatBufferフォーマット ブロックに新しいサイズを再割り当てする。
InitMediaTypeメディア タイプを初期化する。
MatchesPartialこのメディア タイプが部分的に指定したメディア タイプと一致するかどうかを確認する。
IsPartiallySpecifiedメディア タイプが部分的に指定されたかどうかを確認する。
演算子
operator =メディア タイプをコピーする割り当て演算子をオーバーロードする。
operator ==2 つの CMediaType オブジェクトが等しいことをテストする。
operator !=2 つのCMediaType オブジェクトが等しくないことをテストする。

CMediaType::AllocFormatBuffer

CMediaType クラス

フォーマット ブロックのメモリを割り当てる。

構文

BYTE* AllocFormatBuffer(
    ULONG length
);

パラメータ

length
フォーマット ブロックに要求されるサイズ、バイト単位。

戻り値

成功なら新しいブロックへのポインタを返す。そうでなければ NULL を返す。

注意

メソッドが新しいフォーマット ブロックの割り当てに成功すると、既存のフォーマット ブロックをフリーにする。

CMediaType::CMediaType

CMediaType クラス

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

構文

CMediaType(void);

CMediaType(
    const GUID *majortype
);

CMediaType(
    const AM_MEDIA_TYPE& mtype
);

CMediaType(
    const CMediaType& cmtype
);

パラメータ

majortype
メジャー タイプ GUID へのポインタ。
mtype
AM_MEDIA_TYPE 構造体への参照。
cmtype
CMediaType オブジェクトへの参照。

注意

コンストラクタは InitMediaType 関数を呼び出して、メディア タイプを初期化する。majortype パラメータが指定されると、コンストラクタはメジャー タイプを GUID で初期化する。mtypecmtype パラメータが指定されると、コンストラクタは (フォーマット ブロックを含む) メディア タイプ情報を新しいオブジェクトにコピーする。

CMediaType::~CMediaType

CMediaType クラス

デストラクタ メソッド。

構文

~CMediaType(void);

注意

デストラクタは FreeMediaType 関数を自分自身で呼び出す。

CMediaType::Format

CMediaType クラス

フォーマット ブロックへのポインタを取得する。

構文

BYTE* Format(void) const;

戻り値

pbFormat メンバを返す。

CMediaType::FormatLength

CMediaType クラス

フォーマット ブロックの長さを取得する。

構文

ULONG FormatLength(void) const;

戻り値

cbFormat メンバを返す。

CMediaType::FormatType

CMediaType クラス

フォーマット タイプを取得する。

構文

const GUID *FormatType(void) const;

戻り値

formattype メンバへのポインタを返す。

CMediaType::GetSampleSize

CMediaType クラス

サンプル サイズを取得する。

構文

ULONG GetSampleSize(void) const;

戻り値

サンプル サイズが固定なら、バイト単位のサンプルサイズを返す。そうでなければゼロを返す。

CMediaType::InitMediaType

CMediaType クラス

メディア タイプを初期化する。

構文

void InitMediaType(void);

注意

このメソッドはオブジェクトのメモリをゼロにし、固定サンプル サイズ プロパティを TRUE にし、サンプル サイズを 1 に設定する。

CMediaType::IsFixedSize

CMediaType クラス

サンプルが固定サイズか可変サイズかを確認する。

構文

BOOL IsFixedSize(void) const;

戻り値

bFixedSizeSamples メンバの値を返す。

CMediaType::IsPartiallySpecified

CMediaType クラス

メディア タイプが部分的に指定されたかどうかを確認する。メジャー タイプ、サブタイプ、フォーマット タイプが GUID_NILL なら、メディア タイプは 部分的 である。

構文

BOOL IsPartiallySpecified(void) const;

戻り値

メディア タイプが部分的に指定されているなら TRUE を返す。そうでなければ FALSE を返す。

注意

IPin::Connect メソッドは部分的メディア タイプを許容できる。

その実装は実際にはサブタイプのテストではない。指定したフォーマット タイプがあれば、たとえサブタイプが GUID_NULL であっても、メディア タイプは部分的とは解釈されない。

CMediaType::IsTemporalCompressed

CMediaType クラス

ストリームが時系列圧縮を使用しているかどうかを確認する。

構文

BOOL IsTemporalCompressed(void) const;

戻り値

bTemporalCompression メンバの値を返す。

CMediaType::IsValid

CMediaType クラス

メジャー タイプがこのオブジェクトにアサインされているかどうかを確認する。

構文

BOOL IsValid(void) const;

戻り値

メジャータイプがこのオブジェクトにアサインされているなら TRUE を返す。それ以外なら FALSE を返す。

注意

デフォルトでは CMediaType オブジェクトは GUID_NULL のメジャー タイプで初期化される。このメソッドを呼び出して、オブジェクトが正しく初期化されたかどうかを確認すること。

CMediaType::MatchesPartial

CMediaType クラス

このメディア タイプが部分的に指定したメディア タイプと一致するかどうかを確認する。

構文

BOOL MatchesPartial(
    const CMediaType *ppartial
    ) const;

パラメータ

ppartial
一致すべきメディア タイプへのポインタ。

戻り値

メディア タイプが一致すれば TRUE を返す。それ以外なら FALSE を返す。

注意

ppartial によって指定されるメディア タイプはメジャータイプ、サブタイプ、フォーマット タイプに GUID_NULL 値を取り得る。GUID_NULL 値のメンバはテストされない。(基本的には、GUID_NULL はワイルドカードとして働く。) GUID_NULL 以外の値を持つメンバは一致すべきメディア タイプと一致しなければならない。

CMediaType::ReallocFormatBuffer

CMediaType クラス

フォーマット ブロックに新しいサイズを再割り当てする。

構文

BYTE* ReallocFormatBuffer(
    ULONG length
);

パラメータ

length
フォーマット ブロックに要求される新しいサイズ、バイト単位。ゼロより大きな値でなければならない。

戻り値

成功すれば新しいブロックへのポインタを返す。そうでなければ、古いフォーマット ブロックへのポインタか NULL を返す。

注意

このメソッドは新しいフォーマット ブロックを割り当てる。それは既存のフォーマット ブロックを新しいフォーマット ブロックにできるだけコピーする。新しいブロックが既存のブロックより小さいなら、既存のブロックは切り詰められる。新しいブロックがより大きければ、未定義の追加スペースを持つ。そこでは明示的にゼロがセットされているわけでは ない

CMediaType::ResetFormatBuffer

CMediaType クラス

フォーマット ブロックを削除する。

構文

void ResetFormatBuffer(void);

CMediaType::SetFormat

CMediaType クラス

フォーマット ブロックを指定する

構文

BOOL SetFormat(
    BYTE *pFormat,
    ULONG length
);

パラメータ

pFormat
フォーマット ブロックが入るメモリのブロックへのポインタ。
length
フォーマット ブロックのサイズ、バイト単位。

戻り値

成功なら TRUE、エラーが起きたなら FALSE を返す。

注意

このメソッドは pFormat によって指定されたフォーマット ブロックをコピーする。フォーマット タイプを設定するには SetFormatType メソッドを呼び出すこと。

CMediaType::SetFormatType

CMediaType クラス

フォーマット タイプを指定する。

構文

void SetFormatType(
    const GUID *pformattype
);

パラメータ

pformattype
フォーマット タイプを指定する GUID へのポインタ。

注意

このメソッドは formattype メンバを設定する。フォーマット タイプはフォーマット ブロックのレイアウトを定義する。たとえば、フォーマット タイプが FORMAT_VideoInfo なら、フォーマット ブロックには VIDEOINFOHEADER が入るべきである。フォーマット ブロックを設定するには、SetFormat を呼び出すこと。呼び出し元はフォーマット ブロックがフォーマット タイプと一致することを保証する責任がある。

CMediaType::SetSampleSize

CMediaType クラス

固定サンプル サイズを指定する、あるいはサンプルが可変サイズを持つことを指定する。

構文

void SetSampleSize(
    ULONG sz
);

パラメータ

sz
サンプル サイズ (バイト単位)、あるいはゼロ。

注意

sz がゼロなら、メディア タイプは可変のサンプル サイズを使う。そうでなければ、サンプル サイズは sz バイト固定である。

CMediaType::SetSubtype

CMediaType クラス

サブタイプを指定する。

構文

void SetSubtype(
    const GUID *psubtype
);

パラメータ

psubtype
サブタイプを指定する GUID へのポインタ。

CMediaType::SetTemporalCompression

CMediaType クラス

ストリームが時系列圧縮を使用しているかどうかを確認する。

構文

void SetTemporalCompression(
    BOOL bCompressed
);

パラメータ

bCompressed
ストリームが時系列圧縮を使用しているかどうかを指定するブール値。ストリームが時系列圧縮を使用しているなら TRUE 値がセットされる。

注意

このメソッドは bTemporalCompression メンバを設定する。

CMediaType::SetType

CMediaType クラス

メジャー タイプを指定する。

構文

void SetType(
    const GUID *ptype
);

パラメータ

ptype
メジャー タイプを指定する GUID へのポインタ。

CMediaType::SetVariableSize

CMediaType クラス

サンプルが固定サイズを持たないことを指定する。

構文

void SetVariableSize(void);

注意

このメソッドは bFixedSizeSamples メンバを FALSE に設定する。この後で CMediaType::GetSampleSize メソッドを呼び出すとゼロを返す。

CMediaType::Subtype

CMediaType クラス

サブタイプを取得する。

構文

const GUID *Type(void) const;

戻り値

subtype メンバへのポインタを返す。

CMediaType::Type

CMediaType クラス

メジャー タイプを取得する。

構文

const GUID *Type(void) const;

戻り値

majortype メンバへのポインタを返す。

CMediaType::operator =

CMediaType クラス

メディア タイプをコピーする割り当て演算子をオーバーロードする。

構文

CMediaType& operator=(
    const CMediaType& cmtype
);

CMediaType& operator=(
    const AM_MEDIA_TYPE& mtype
);

パラメータ

cmtype
CMediaType オブジェクトへの参照。
mtype
AM_MEDIA_TYPE 構造体への参照。

戻り値

オブジェクトへの参照を返す。

CMediaType::operator ==

CMediaType クラス

2 つの CMediaType オブジェクトが等しいことをテストする。

構文

inline BOOL operator==(
    const CMediaType& rt
) const;

パラメータ

rt
比較する CMediaType オブジェクトへの参照。

戻り値

rt がこのオブジェクトと等しいなら TRUE を返す。そうでなければ FALSE を返す。

CMediaType::operator !=

CMediaType クラス

2 つのCMediaType オブジェクトが等しくないことをテストする。

構文

BOOL operator!=(
    const CMediaType& rt
) const;

パラメータ

rt
比較する CMediaType オブジェクトへの参照。

戻り値

rt がこのオブジェクトと等くないなら TRUE を返す。そうでなければ FALSE を返す。