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 内容