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 で宣言。
参照