Platform SDK: DirectX

DirectSoundBuffer.SetFormat

DirectSoundBuffer.SetFormat メソッドは、このアプリケーション用のプライマリ サウンド バッファのフォーマットを設定する。このアプリケーションに入力フォーカスが置かれるたびに、DirectSound はプライマリ バッファを指定されたフォーマットに設定する。

object.SetFormat(format As WAVEFORMATEX)

パラメータ

object
DirectSoundBuffer オブジェクトを表すオブジェクト式。
format
プライマリ サウンド バッファの新しいフォーマットを指定する WAVEFORMATEX 型。

エラー コード

失敗すればエラーが発生し、Err.Number に次のいずれかのエラー コードが設定される。

DSERR_BADFORMAT
DSERR_INVALIDCALL
DSERR_INVALIDPARAM
DSERR_OUTOFMEMORY
DSERR_PRIOLEVELNEEDED
DSERR_UNSUPPORTED

注意

ハードウェアが要求されたフォーマットをサポートしない場合でも、このメソッドは成功する。DirectSound はバッファを、要求に最も近いフォーマットに設定し、要求されたフォーマットでサウンドをミックスし、変換した上でプライマリ バッファに送る。このような状況が発生しているかどうかを判断するには、アプリケーションはプライマリ バッファに対して DirectSoundBuffer.GetFormat メソッドを呼び出し、その結果を、SetFormat メソッドで要求したフォーマットと比較する。

呼び出すアプリケーションに DSSCL_NORMAL 協調レベルが設定されていると、このメソッドは失敗する。

このメソッドはセカンダリ サウンド バッファには有効ではない。セカンダリ サウンド バッファがフォーマットの変更を必要とする場合、アプリケーションは新規のフォーマットを使う新しい DirectSoundBuffer オブジェクトを作成すべきである。