IDirectSound8::CreateSoundBuffer

CreateSoundBuffer メソッドはオーディオ サンプルを管理するサウンド バッファー オブジェクトを作成します。

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 を返します。DSBUFFERDESC の guid3DAlgorithm メンバーの説明を参照してください。失敗した場合は、以下の表に示すエラー値のいずれかが戻り値となります。

リターン コード
DSERR_ALLOCATED
DSERR_BADFORMAT
DSERR_BUFFERTOOSMALL
DSERR_CONTROLUNAVAIL
DSERR_DS8_REQUIRED
DSERR_INVALIDCALL
DSERR_INVALIDPARAM
DSERR_NOAGGREGATION
DSERR_OUTOFMEMORY
DSERR_UNINITIALIZED
DSERR_UNSUPPORTED

解説 

DirectSound はバッファーの内容を初期化しません。また、アプリケーションではバッファーが無音であることを予測できません。

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

要件

ヘッダー: DSound.h 宣言

ライブラリ: Dsound3d.dll 内容

関連項目

IDirectSound8