IDirectSoundBuffer8::AcquireResources
DSBUFFERDESC 構造体の DSBCAPS_LOCDEFER フラグを使って作成したバッファにリソースを割り当てる。
構文
HRESULT AcquireResources(
DWORD
dwFlags
,
DWORD
dwEffectsCount,
LPDWORD
pdwResultCodes
);
パラメータ
dwFlags
DSBCAPS_LOCDEFER フラグを使って作成したバッファにリソースを割り当てる方法を指定するフラグ。値のリストについては、IDirectSoundBuffer8::Play のボイス管理フラグおよびボイス割り当てフラグを参照すること。
dwEffectsCount
pdwResultFlags 配列の要素の数。pdwResultCodes が NULL の場合は 0 を指定する。
pdwResultCodes
バッファに関連付けられたエフェクトに関する情報を受け取る DWORD 変数の配列のアドレス。この配列には、IDirectSoundBuffer8::SetFXによってバッファに割り当てられたエフェクトごとに 1 つの要素が含まれていなければならない。各エフェクトに対して、次のいずれかの値が返される。
値 | 説明 |
DSFXR_LOCHARDWARE | エフェクトはハードウェアでインスタンス化される。 |
DSFXR_LOCSOFTWARE | エフェクトはソフトウェアでインスタンス化される。 |
DSFXR_FAILED | リソースを利用できなかったため、エフェクトは作成されていない。 |
DSFXR_PRESENT | エフェクトは利用可能だが、他の理由でメソッドが失敗したため、作成されていない。 |
DSFXR_UNKNOWN | エフェクトがシステムに登録されていないため、エフェクトは作成されていない。 |
結果コードが必要ない場合は、このパラメータを 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 で宣言。
参照