Microsoft DirectX 8.0 (C++)

IDirectSound8::CreateSoundBuffer

サンプリング オーディオのシーケンスを保持するための DirectSoundBuffer オブジェクトを作成する。

HRESULT CreateSoundBuffer(
  LPCDSBUFFERDESC pcDSBufferDesc,
  LPDIRECTSOUNDBUFFER * ppDSBuffer,
  LPUNKNOWN pUnkOuter 
);

パラメータ

pcDSBufferDesc
作成するサウンド バッファを記述する DSBUFFERDESC 構造体のアドレス。
ppDSBuffer
新しいバッファ オブジェクトの IDirectSoundBuffer インターフェイスを受け取る変数のアドレス。IDirectSoundBuffer8 を取得するには、QueryInterface を使用する。IDirectSoundBuffer8 はプライマリ バッファには利用できない。「注意」を参照すること。
pUnkOuter
COM 集成体に対する制御オブジェクトの IUnknown インターフェイスのアドレス。NULL でなければならない。

戻り値

成功した場合は DS_OK を返す。また、要求した 3D アルゴリズムを利用できず、ステレオ パンが代用された場合は、DS_NO_VIRTUALIZATION を返す。DSBUFFERDESCguid3DAlgorithm メンバの記述を参照すること。

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

DSERR_ALLOCATED
DSERR_CONTROLUNAVAIL
DSERR_BADFORMAT
DSERR_BUFFERTOOSMALL
DSERR_DS8_REQUIRED
DSERR_INVALIDCALL
DSERR_INVALIDPARAM
DSERR_NOAGGREGATION
DSERR_OUTOFMEMORY
DSERR_UNINITIALIZED
DSERR_UNSUPPORTED

注意

DirectSound は、バッファの内容を初期化しない。したがって、アプリケーションでは、バッファに無音が含まれていると想定してはならない。

アプリケーションがマルチスレッド化されている場合、バッファを作成するスレッドは、バッファの有効期間を通して存在していなければならない。WDM ドライバで作成されたバッファでは、スレッドが終了すると再生が停止する。

ハードウェア アクセラレーションを利用できないシステムで DSBCAPS_LOCHARDWARE フラグを使ってバッファを作成しようとすると、メソッドは失敗し、オペレーティング システムに応じて DSERR_CONTROLUNAVAIL または DSERR_INVALIDCALL を返す。

動作環境

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

参照

セカンダリ バッファの作成IDirectSound8::DuplicateSoundBuffer