Platform SDK: DirectX |
IDirectSound::DuplicateSoundBuffer メソッドは、新しい DirectSoundBuffer オブジェクトを作成する。このオブジェクトは、オリジナルのオブジェクトと同じバッファ メモリを使う。
HRESULT DuplicateSoundBuffer( LPDIRECTSOUNDBUFFER lpDsbOriginal, LPLPDIRECTSOUNDBUFFER lplpDsbDuplicate );
成功すれば 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 を使用。