Platform SDK: DirectX

IDirectSound::DuplicateSoundBuffer

IDirectSound::DuplicateSoundBuffer メソッドは、新しい DirectSoundBuffer オブジェクトを作成する。このオブジェクトは、オリジナルのオブジェクトと同じバッファ メモリを使う。

HRESULT DuplicateSoundBuffer(
  LPDIRECTSOUNDBUFFER lpDsbOriginal,  
  LPLPDIRECTSOUNDBUFFER lplpDsbDuplicate  
);

パラメータ

lpDsbOriginal
複製される DirectSoundBuffer オブジェクトへのポインタ。
lplpDsbDuplicate
新しい DirectSoundBuffer オブジェクトへのポインタ。

戻り値

成功すれば DS_OK、失敗すれば次のエラー値のいずれかを返す。

DSERR_ALLOCATED
DSERR_INVALIDCALL
DSERR_INVALIDPARAM
DSERR_OUTOFMEMORY
DSERR_UNINITIALIZED

注意

新しいオブジェクトはオリジナルのオブジェクトと同じ方法で使用できる。

複製直後のバッファは、オリジナル バッファと同じパラメータを持つ。ただし、アプリケーションは各バッファのパラメータを個別に変更でき、各バッファは違いに影響を及ぼすことなく再生と停止を行える。

どちらかのオブジェクトがバッファ内のデータを変更すると、バッファ メモリが共有されているため、その変更はもう一方のオブジェクトにも反映される。

後に残った参照側オブジェクトが解放されると、バッファ メモリは解放される。

アプリケーションは、サウンド バッファの複製作業が常に成功するとは想定できない。特に、DirectSound はハードウェア バッファのソフトウェア複製を作成できない。

動作環境

  Windows NT/2000 : Service Pack 3 を適用した Windows NT バージョン 4.0 以降が必要。
  Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
  ヘッダー : dsound.h で宣言。
  インポート ライブラリ : dsound.lib を使用。

参照

IDirectSound::CreateSoundBuffer