Microsoft DirectX 8.0 (C++)

IDirectSound8::DuplicateSoundBuffer

新しい DirectSoundBuffer オブジェクトを作成する。このオブジェクトは、オリジナルのバッファのメモリを複製または共有する。

HRESULT DuplicateSoundBuffer(
  LPDIRECTSOUNDBUFFER pDSBufferOriginal, 
  LPDIRECTSOUNDBUFFER * ppDSBufferDuplicate 
);

パラメータ

pDSBufferOriginal
複製するバッファの IDirectSoundBuffer または IDirectSoundBuffer8 インターフェイスのアドレス。
ppDSBufferDuplicate
新しいバッファの IDirectSoundBuffer インターフェイス ポインタを受け取る変数のアドレス。IDirectSoundBuffer8 インターフェイスは複製バッファからは取得できない。

戻り値

成功した場合は DS_OK を返す。

失敗した場合は、次のいずれかのエラー値を返す。

DSERR_ALLOCATED
DSERR_INVALIDCALL
DSERR_INVALIDPARAM
DSERR_OUTOFMEMORY
DSERR_UNINITIALIZED

注意

このメソッドは、DSBCAPS_CTRLFX フラグを使って作成したバッファには無効である。

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

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

複製バッファは同じメモリを共有する場合もあるが、常にそうであるとは限らない。バッファに格納されたデータの変更は、必ずしも複製に反映されるわけではない。

動作環境

  ヘッダー : dsound.h で宣言。

参照

IDirectSound8::CreateSoundBuffer