Microsoft DirectX 8.0 (C++)

IDirectSoundBuffer8::GetObjectInPath

バッファに関連付けられたエフェクト オブジェクトのインターフェイスを取得する。

HRESULT GetObjectInPath(
  REFGUID rguidObject, 
  DWORD dwIndex, 
  REFGUID rguidInterface, 
  LPVOID * ppObject
);

パラメータ

rguidObject
検索するオブジェクトの一意のクラス識別子を指定する REFGUID 型の値。たとえば、GUID_DSFX_STANDARD_ECHO など。任意のクラスのオブジェクトを検索する場合は、このパラメータを GUID_All_Objects に設定する。
dwIndex
パス中のクラスのオブジェクト内で、オブジェクトのインデックスを指定する値。「注意」を参照すること。
rguidInterface
目的のインターフェイスの一意の識別子を指定する値。「注意」を参照すること。
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 で宣言。

参照

IDirectSoundFXChorus8IDirectSoundFXCompressor8IDirectSoundFXDistortion8IDirectSoundFXEcho8IDirectSoundFXFlanger8IDirectSoundFXParamEq8IDirectSoundFXI3DL2Reverb8