Platform SDK: DirectX

IDirectSoundBuffer::GetFormat

IDirectSoundBuffer::GetFormat メソッドは、バッファ内のサウンド データのフォーマットに関する情報、またはフォーマットの記述を取得するのに必要なバッファ サイズを取得する。

HRESULT GetFormat(
  LPWAVEFORMATEX lpwfxFormat,  
  DWORD dwSizeAllocated,   
  LPDWORD lpdwSizeWritten  
);

パラメータ

lpwfxFormat
バッファ内のサウンド データに関する情報を保持する WAVEFORMATEX 構造体のアドレス。フォーマットの記述を保持するのに必要なバッファ サイズを取得するには NULL を指定する。この場合、lpdwSizeWritten パラメータが指す DWORD が、完全なフォーマット情報を受け取るのに必要な構造体のサイズを受け取る。
dwSizeAllocated
WAVEFORMATEX 構造体のサイズ。単位はバイト。DirectSound がポインタへ書き込むバイト数は、最大で dwSizeAllocated バイトである。WAVEFORMATEX 構造体がそれより多くのメモリを必要とする場合、切り捨てが行われる。
lpdwSizeWritten
WAVEFORMATEX 構造体に書き込まれたバイト数を保持する変数のアドレス。このパラメータは NULL にしてもよい。

戻り値

成功すれば DS_OK、失敗すれば DSERR_INVALIDPARAM を返す。

注意

WAVEFORMATEX 構造体は、フォーマットの詳細に応じた可変長であってもよい。アプリケーションはフォーマットの記述を取得する前に、lpwfxFormat パラメータに NULL を指定してこのメソッドを呼び出し、フォーマットのサイズに関して DirectSoundBuffer へクエリーを行うべきである。構造体のサイズは lpdwSizeWritten パラメータへ返される。その後、アプリケーションは十分なメモリを割り当て、もう一度 IDirectSoundBuffer::GetFormat を呼び出し、フォーマットの記述を取得できる。

動作環境

  Windows NT/2000 : Service Pack 3 を適用した Windows NT バージョン 4.0 以降が必要。
  Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
  ヘッダー : dsound.h で宣言。
  インポート ライブラリ : dsound.lib を使用。

参照

IDirectSoundBufferIDirectSoundBuffer::SetFormat