Microsoft DirectX 8.0 |
このインターフェイスは、データ バッファを操作するためのメソッドを備えている。Microsoft® DirectX® Media Object (DMO) に渡されるすべてのバッファは、このインターフェイスを実装する必要がある。
IUnknown メソッド 説明 QueryInterface サポートされているインターフェイスを指すポインタを取得する。 AddRef 参照カウントをインクリメントする。 Release 参照カウントをデクリメントする。 IMediaBuffer メソッド 説明 SetLength 現在バッファ内にあるデータの長さを指定する。 GetMaxLength このバッファに格納できる最大バイト数を取得する。 GetBufferAndLength バッファとバッファ内の有効なデータのサイズを取得する。
現在バッファ内にあるデータの長さを指定する。
構文
HRESULT SetLength( DWORD cbLength );
パラメータ
- cbLength
- バイト単位で表すデータのサイズ。値はバッファの最大サイズを超えてはいけない。最大サイズを取得するには、GetMaxLength メソッドを呼び出す。
戻り値
成功すれば S_OK を返す。それ以外の場合は、エラーの原因を示す HRESULT 値を返す。
注意
このメソッドは、バッファに割り当てられたサイズではなく、現在バッファ内にある有効なデータのサイズを設定する。
このバッファに格納できる最大バイト数を取得する。
構文
HRESULT GetMaxLength( DWORD *pcbMaxLength );
パラメータ
- pcbMaxLength
- [out] バッファの最大サイズをバイト単位で受け取る変数を指すポインタ。
戻り値
成功すれば S_OK を返す。それ以外の場合は、エラーの原因を示す HRESULT 値を返す。
バッファとバッファ内の有効なデータのサイズを取得する。
構文
HRESULT GetBufferAndLength( BYTE **ppBuffer, DWORD *pcbLength );
パラメータ
- ppBuffer
- [out] バッファ配列を受け取るポインタのアドレス。pcbLength が NULL でなければ、NULL を指定できる。
- pcbLength
- [out] 有効なデータのサイズをバイト単位で受け取る変数を指すポインタ。ppBuffer が NULL でなkれば、NULL を指定できる。
戻り値
HRESULT 値を返す。以下の値をとる。
S_OK 成功 E_POINTER NULL ポインタ引数
注意
どちらか一方のパラメータを NULL にすることができる。その場合、NULL にしたパラメータは、値を受け取らない。少なくとも 1 つのパラメータは、NULL でない値にする必要がある。両方のパラメータが NULL の場合、メソッドは E_POINTER を返す。
pcbLength パラメータによって返される値は、バッファに割り当てられたサイズではなく、バッファ内の有効なデータのサイズである。バッファに割り当てられたサイズを取得するには、GetMaxLength メソッドを呼び出す。