Microsoft DirectX 8.0 (Visual Basic)

DirectSoundSecondaryBuffer8.SetFX

バッファのサウンド エフェクトを設定する。バッファの再生中であってはならない。

object.SetFX( _
  EffectsCount As Long, _
  Buffers() As DSEFFECTDESC, _
  lResultIDs() As Long)

指定項目

object
DirectSoundSecondaryBuffer8 オブジェクトを指定する。
EffectsCount
Buffers および lResultIDs の要素数。0 に設定すると、バッファからすべてのエフェクトが削除される。
Buffers
設定するエフェクトを指定する DSEFFECTDESC 型の配列。
lResultIDs
Long 変数の配列。Buffers 配列の各エフェクトに対して 1 つ指定する。対応するエフェクトの作成結果に関する情報を受け取る。各要素は、CONST_DSOUNDFX 列挙の値のいずれかを受け取る。
DSFXR_LOCHARDWARE
エフェクトはハードウェアでインスタンス化される。
DSFXR_LOCSOFTWARE
エフェクトはソフトウェアでインスタンス化される。
DSFXR_UNALLOCATED
エフェクトは、ハードウェアまたはソフトウェアのいずれにもまだ設定されていない。
DSFXR_FAILED
リソースを利用できなかったため、エフェクトは作成されていない。
DSFXR_PRESENT
エフェクトは利用可能だが、ほかの理由でメソッドが失敗したため、作成されていない。
DSFXR_UNKNOWN
エフェクトがシステムに登録されていないため、エフェクトは作成されていない。

エラー コード

失敗した場合はエラーが発生し、Err.Number に次のいずれかのエラー値が設定される。

DSERR_CONTROLUNAVAIL
DSERR_GENERIC
DSERR_INVALIDPARAM
DSERR_INVALIDCALL
DSERR_NOINTERFACE
DSERR_PRIOLEVELNEEDED

注意

メソッドを成功させるには、バッファが DSBCAPS_CTRLFX フラグで作成され、バッファの再生中であってはならない。

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

メソッドから DSERR_NOINTERFACE またはその他の COM エラーが返された場合は、結果コード配列内の DSFXR_PRESENT または DSFXR_UNKNOWN を探し、エラーの原因となったエフェクトを確認する。メソッドから DSERR_INVALIDPARAM が返された場合は、DSFXR_FAILED という結果コードを探し、リソースを取得できなかったエフェクトを確認する。

バッファがオーディオパスの一部である場合、オーディオパスは非アクティブでなければならない。「DirectMusicAudioPath8.Activate」を参照すること。

エフェクト オブジェクトを取得する前に、バッファにエフェクトを設定しなければならない。エフェクト オブジェクトを取得するには、DirectSoundSecondaryBuffer8.GetObjectInPath を使う。