IDirectSoundBuffer8::GetObjectInPath

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

解説 

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 メディア オブジェクトのヘルプを参照してください。

rguidInterface *ppObject
IID_IMediaObject IMediaObject
IID_IMediaObjectInPlace IMediaObjectInPlace
IID_IMediaParams IMediaParams

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

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

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

要件

ヘッダー: DSound.h 宣言

ライブラリ: Dsound3d.dll 内容

関連項目

IDirectSoundBuffer8