次の方法で共有


IDirectSoundBuffer8::GetObjectInPath

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

構文

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

  );

パラメータ

rguidObject

検索するオブジェクトの一意なクラス識別子。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 では以下のインターフェイスを使える。これらのインターフェイスの詳細については、DirectX Media Object のヘルプを参照すること。

rguidInterface *ppObject
IID_IMediaObject IMediaObject
IID_IMediaObjectInPlace IMediaObjectInPlace
IID_IMediaParams IMediaParams

  DirectSound API を使ってバッファを再生すると、DirectSound は DMO バッファにタイムスタンプを押さないので、IMediaParams インターフェイスを使って設定されたパラメータ カーブ (エンベロープ) は動作しない。

dwIndex の値は、IDirectSoundBuffer8::SetFX に渡されたエフェクトの配列内でのオブジェクトのインデックスである。一部のエフェクトがまだ作成されていない場合があるため、この値はエフェクト内のオブジェクトの実際の位置を表しているとは限らない。

オブジェクトは、rguidObject および dwIndex との一致だけに基づいて返される。rguidInterface がそのオブジェクトで使われているインターフェイスを示しているかどうかは、アプリケーション側で確認する必要がある。

要件

**  ヘッダー:**dsound.h で宣言。

参照