Microsoft DirectX 8.0

IMediaBuffer インターフェイス

このインターフェイスは、データ バッファを操作するためのメソッドを備えている。Microsoft® DirectX® Media Object (DMO) に渡されるすべてのバッファは、このインターフェイスを実装する必要がある。

Vtable 順のメソッド

IUnknown メソッド説明
QueryInterfaceサポートされているインターフェイスを指すポインタを取得する。
AddRef参照カウントをインクリメントする。
Release参照カウントをデクリメントする。
IMediaBuffer メソッド説明
SetLength現在バッファ内にあるデータの長さを指定する。
GetMaxLengthこのバッファに格納できる最大バイト数を取得する。
GetBufferAndLengthバッファとバッファ内の有効なデータのサイズを取得する。

IMediaBuffer::SetLength

IMediaBuffer インターフェイス

現在バッファ内にあるデータの長さを指定する。

構文

HRESULT SetLength(
   DWORD cbLength
);

パラメータ

cbLength
バイト単位で表すデータのサイズ。値はバッファの最大サイズを超えてはいけない。最大サイズを取得するには、GetMaxLength メソッドを呼び出す。

戻り値

成功すれば S_OK を返す。それ以外の場合は、エラーの原因を示す HRESULT 値を返す。

注意

このメソッドは、バッファに割り当てられたサイズではなく、現在バッファ内にある有効なデータのサイズを設定する。

IMediaBuffer::GetMaxLength

IMediaBuffer インターフェイス

このバッファに格納できる最大バイト数を取得する。

構文

HRESULT GetMaxLength(
    DWORD *pcbMaxLength
);

パラメータ

pcbMaxLength
[out] バッファの最大サイズをバイト単位で受け取る変数を指すポインタ。

戻り値

成功すれば S_OK を返す。それ以外の場合は、エラーの原因を示す HRESULT 値を返す。

IMediaBuffer::GetBufferAndLength

IMediaBuffer インターフェイス

バッファとバッファ内の有効なデータのサイズを取得する。

構文

HRESULT GetBufferAndLength(
    BYTE **ppBuffer,  
    DWORD *pcbLength
);

パラメータ

ppBuffer
[out] バッファ配列を受け取るポインタのアドレス。pcbLength が NULL でなければ、NULL を指定できる。
pcbLength
[out] 有効なデータのサイズをバイト単位で受け取る変数を指すポインタ。ppBuffer が NULL でなkれば、NULL を指定できる。

戻り値

HRESULT 値を返す。以下の値をとる。

S_OK成功
E_POINTERNULL ポインタ引数

注意

どちらか一方のパラメータを NULL にすることができる。その場合、NULL にしたパラメータは、値を受け取らない。少なくとも 1 つのパラメータは、NULL でない値にする必要がある。両方のパラメータが NULL の場合、メソッドは E_POINTER を返す。

pcbLength パラメータによって返される値は、バッファに割り当てられたサイズではなく、バッファ内の有効なデータのサイズである。バッファに割り当てられたサイズを取得するには、GetMaxLength メソッドを呼び出す。