Microsoft DirectX 8.0 (C++) |
DSBUFFERDESC 構造体の DSBCAPS_LOCDEFER フラグを使って作成したバッファにリソースを割り当てる。
HRESULT AcquireResources( DWORD dwFlags, DWORD dwEffectsCount, LPDWORD pdwResultCodes );
結果コードが必要でない場合、このパラメータは NULL にする。
成功した場合は、DS_OK または DS_INCOMPLETE を返す。
失敗した場合は、次のいずれかのエラー値を返す。
DSERR_CONTROLUNAVAIL |
DSERR_INVALIDCALL |
DSERR_INVALIDPARAM |
通常、DSBCAPS_LOCDEFER で作成されたバッファは、IDirectSoundBuffer8::Play が呼び出されるまでリソースに割り当てられない。遅延バッファにリソースを割り当てるには、IDirectSoundBuffer8::AcquireResources を使う。これによって、アプリケーションは、エフェクトの処理に関する情報を取得して、バッファが演奏される前にエフェクト パラメータを設定できる。
メソッドが失敗した場合は、pdwResultCodes の値を調べて、失敗の原因となったエフェクトを特定する。
リソースを割り当てられた、まだ演奏されていないバッファは、Play メソッドに渡されたボイス管理フラグにより、早めに終了される候補とならない。
AcquireResources によって取得されたリソースは、再生が停止されたときに解放される。
メソッドが既に呼び出されたバッファで、繰り返しメソッドが呼び出された場合、エフェクトのステータスは返されるが、それ以上のリソースは割り当てられない。
この関数の dwEffectsCount パラメータは、IDirectSoundBuffer8::SetFX の呼び出しで渡されたパラメータと同じでなければならない。
ハードウェア アクセラレーションを利用できないシステムで DSBCAPS_LOCHARDWARE フラグを使ってバッファのリソースを取得しようとすると、メソッドは失敗し、オペレーティング システムに応じて DSERR_CONTROLUNAVAIL または DSERR_INVALIDCALL を返す。
ヘッダー : dsound.h で宣言。