Microsoft DirectX 8.0 (C++) |
バッファに関連付けられたエフェクト オブジェクトのインターフェイスを取得する。
HRESULT GetObjectInPath( REFGUID rguidObject, DWORD dwIndex, REFGUID rguidInterface, LPVOID * ppObject );
成功した場合は DS_OK を返す。
失敗した場合は、次のいずれかのエラー値を返す。
DSERR_CONTROLUNAVAIL |
DSERR_INVALIDPARAM |
DSERR_OBJECTNOTFOUND |
E_NOINTERFACE |
IDirectSoundBuffer8::SetFX を使ってバッファに設定されている DMO は、リソースが割り当てられていなくても取得することができる。
以下のインターフェイスは、DirectX で提供されている各種 DMO に対して取得できる。
rguidInterface | *ppObject |
---|---|
IID_IDirectSoundFXGargle8 | IDirectSoundFXGargle8 |
IID_IDirectSoundFXChorus8 | IDirectSoundFXChorus8 |
IID_IDirectSoundFXFlanger8 | IDirectSoundFXFlanger8 |
IID_IDirectSoundFXEcho8 | IDirectSoundFXEcho8 |
IID_IDirectSoundFXDistortion8 | IDirectSoundFXDistortion8 |
IID_IDirectSoundFXCompressor8 | IDirectSoundFXCompressor8 |
IID_IDirectSoundFXParamEq8 | IDirectSoundFXParamEq8 |
IID_IDirectSoundFXWavesReverb8 | IDirectSoundFXWavesReverb8 |
IID_IDirectSoundFXI3DL2Reverb8 | IDirectSoundFXI3DL2Reverb8 |
さらに、標準の DMO では以下のインターフェイスを使用できる。これらのインターフェイスの詳細については、DirectShow のヘルプを参照すること。
rguidInterface | *ppObject |
---|---|
IID_IMediaObject | IMediaObject |
IID_IMediaObjectInPlace | IMediaObjectInPlace |
IID_IMediaParams | IMediaParams |
dwIndex の値は、IDirectSoundBuffer8::SetFX に渡されたエフェクトの配列内でのオブジェクトのインデックスである。いくつかのエフェクトがまだ作成されていない場合があるため、エフェクト内の実際のオブジェクトの位置を表しているとは限らない。
オブジェクトは、rguidObject および dwIndex との一致だけに基づいて返される。rguidInterface がそのオブジェクトで使用されているインターフェイスを示しているかどうかは、アプリケーション側で確認する必要がある。
ヘッダー : dsound.h で宣言。
IDirectSoundFXChorus8、IDirectSoundFXCompressor8、IDirectSoundFXDistortion8、IDirectSoundFXEcho8、IDirectSoundFXFlanger8、IDirectSoundFXParamEq8、IDirectSoundFXI3DL2Reverb8