IDirectSoundBuffer8::GetFormat

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

HRESULT 
GetFormat(
  LPWAVEFORMATEX pwfxFormat,
  DWORD dwSizeAllocated,
  LPDWORD pdwSizeWritten
);

パラメータ

  • pwfxFormat
    バッファー内のサウンド データの記述を受け取る WAVEFORMATEX 構造体または WAVEFORMATEXTENSIBLE 構造体のアドレスです。フォーマットの記述を保持するために必要なバッファー サイズを取得するには、NULL を指定します。この場合、pdwSizeWritten の変数が、データを受け取るために必要な構造体のサイズを受け取ります。
  • dwSizeAllocated
    pwfxFormat の構造体のサイズ (バイト単位) です。pwfxFormat が NULL でない場合、この値は、予想されるデータのサイズ以上でなければなりません。
  • pdwSizeWritten
    pwfxFormat の構造体に書き込まれたバイト数を受け取る変数のアドレスです。このパラメーターは NULL でもかまいません。

戻り値

成功した場合は、DS_OK を返します。失敗した場合は、DSERR_INVALIDPARAM を返します。

解説 

フォーマット構造体は、フォーマットに応じて長さが変化する場合があります。アプリケーションでは、フォーマットの記述を取得する前に、pwfxFormat パラメーターに NULL を指定してこのメソッドを呼び出し、フォーマットのサイズをバッファー オブジェクトにクエリする必要があります。必要な構造体のサイズは、pdwSizeWritten パラメーターに返されます。続いて、アプリケーションでは十分なメモリーを割り当て、GetFormat をもう一度呼び出して、フォーマットの記述を取得することができます。

要件

ヘッダー: DSound.h 宣言

ライブラリ: Dsound3d.dll 内容

関連項目

IDirectSoundBuffer8