Microsoft DirectX 8.0 |
IMemoryData インターフェイスには、オーディオ データ オブジェクト上のメモリ データを設定および取得するメソッドが含まれる。オーディオ データ オブジェクトは、ストリーム サンプルがアクセスする、基盤となるデータを提供するものである。このインターフェイスは、メモリ バッファを初期化し、実際にオブジェクト内にあるオーディオ データの量を設定する手段を提供する。また、GetInfo メソッドを使用すると、オーディオ メモリ データを取得できる。
このインターフェイスは、オーディオ ストリーム サンプル オブジェクトからアクセスされる、基盤となるオーディオ データ オブジェクト上に実装する。
通常、これらのメソッドは、アプリケーションではなく、IAudioMediaStream オブジェクトまたは IAudioStreamSample オブジェクトから呼び出される。
IUnknown メソッド 説明 QueryInterface サポートされているインターフェイスへのポインタを取得する。 AddRef 参照カウントをインクリメントする。 Release 参照カウントをデクリメントする。 IMemoryData メソッド 説明 SetBuffer メモリへのポインタと長さを指定してメモリ バッファを初期化する。 GetInfo オーディオ データ オブジェクトを記述する情報を取得する。 SetActual 現在オブジェクト内にあるオーディオ データの量 (バイト単位) を設定する。
オーディオ データ オブジェクトを記述する情報を取得する。
構文
HRESULT GetInfo(
DWORD *pdwLength,
BYTE **ppbData,
DWORD *pcbActualData );
パラメータ
- pdwLength
- [out] バイト単位で表したメモリの長さ (NULL でない場合)。
- ppbData
- [out] メモリへのポインタ (NULL でない場合)。
- pcbActualData
- [out] バイト単位で表したデータ長 (NULL でない場合)。
戻り値
HRESULT 値を返す。
注意
このメソッドは、SetActual によって最後に設定された、現在オブジェクト内にあるデータの数を判断する。
現在オブジェクト内にあるオーディオ データの量を設定する。
構文
HRESULT SetActual(
DWORD cbDataValid
);
パラメータ
- cbDataValid
- [in] データの量 (バイト単位)。
戻り値
成功した場合は、S_OK を返す。必須パラメータが NULL の場合は、E_POINTER を返す。
注意
これらのメソッドは、通常、アプリケーションではなく、IAudioMediaStream オブジェクトまたは IAudioStreamSample オブジェクトから呼び出される。
メモリへのポインタと長さを指定してメモリ バッファを初期化する。
構文
HRESULT SetBuffer(
DWORD cbSize,
BYTE *pbData,
DWORD dwFlags );
パラメータ
- cbSize
- [in] pbData が指すメモリのサイズ (バイト単位)。
- pbData
- [in] このオブジェクトが使用するメモリへのポインタ。
- dwFlags
- [in] フラグ データ用に予約されている。ゼロでなくてはならない。
戻り値
成功した場合は、S_OK を返す。cbSize が 0 の場合、または pbData が NULL の場合は、E_INVALIDARG を返す。
注意
このメソッドは必要なだけ繰り返して呼び出すことができる。IStreamSample::Update を使ってサンプルを非同期に更新するときには、サンプルの更新が完了する前に SetBuffer が呼び出されないように注意する。