Microsoft DirectX 8.0 (Visual Basic)

DirectSoundSecondaryBuffer8.AcquireResources

DSBCAPS_LOCDEFER フラグで作成されたバッファにリソースを割り当てる。

object.AcquireResources( _
  lFlags As Long, _
  lEffectsResults() As Long)

指定項目

object
DirectSoundSecondaryBuffer8 オブジェクトを指定する。
lFlags
CONST_DSBPLAYFLAGS 列挙に含まれる、DSBPLAY_LOOPING 以外の 1 つまたは複数のフラグ。リソースを割り当てる方法を指定する。
lEffectsResults
バッファに関連付けられたエフェクトに関する情報を受け取る Long 型の変数の配列。要素の数は、あらかじめ DirectSoundSecondaryBuffer8.SetFX を使ってバッファに設定したエフェクトの数と同じでなければならない。各エフェクトに対して、CONST_DSOUNDFX 列挙のいずれかの定数が返される。
DSFXR_FAILED
リソースを利用できなかったため、エフェクトは作成されていない。
DSFXR_LOCHARDWARE
エフェクトはハードウェアでインスタンス化される。
DSFXR_LOCSOFTWARE
エフェクトはソフトウェアでインスタンス化される。
DSFXR_PRESENT
エフェクトは利用可能だが、ほかの理由でメソッドが失敗したため、作成されていない。
DSFXR_UNKNOWN
エフェクトがシステムに登録されていないため、エフェクトは作成されていない。

エラー コード

失敗した場合はエラーが発生する。Err.Number に設定される値は、次のとおりである。

DSERR_CONTROLUNAVAIL
DSERR_INVALIDCALL
DSERR_INVALIDPARAM

注意

通常、DSBCAPS_LOCDEFER で作成されたバッファには、DirectSoundSecondaryBuffer8.Play が呼び出されるまでリソースが与えられない。遅延バッファにリソースを割り当てるには、DirectSoundSecondaryBuffer8.AcquireResources を使用する。これによって、アプリケーションは、バッファを再生する前に、エフェクトの処理に関する情報を取得してエフェクト パラメータを設定できる。

このメソッドが失敗すると、lEffectsResults で、各エフェクトに対して DSFXF_PRESENT または DSFXR_UNKNOWN が返される。これらの値を調べることによって、失敗の原因となったエフェクトを特定できる。

リソースが割り当てられた未再生のバッファは、Play メソッドに渡されるボイス管理フラグによって早めに終了される候補にならない。

既に AcquireResources が呼び出されたバッファで、繰り返し AcquireResources が呼び出された場合、エフェクトのステータスは返されるが、それ以上のリソースは割り当てられない。

再生が停止すると、リソースは解放される。

ハードウェア アクセラレーションを利用できないシステムで、DSBCAPS_LOCHARDWARE フラグを使ってバッファのリソースを取得しようとすると、メソッドは失敗し、オペレーティング システムに応じて DSERR_CONTROLUNAVAIL または DSERR_INVALIDCALL を返す。