IDirectMusicSegmentState8::GetObjectInPath
セグメント状態が演奏されているオーディオパスに含まれるオブジェクトのインターフェイスを取得する。
構文
HRESULT GetObjectInPath(
DWORD
dwPChannel
,
DWORD
dwStage
,
DWORD
dwBuffer
,
REFGUID
guidObject
,
DWORD
dwIndex
,
REFGUID
iidInterface
,
Void**
ppObject
);
パラメータ
dwPChannel
検索するパフォーマンス チャンネル。DMUS_PCHANNEL_ALL を指定すると、すべてのチャンネルが検索される。最初のチャンネルは 0 番になる。「注意」を参照すること。
dwStage
パス内のステージ。次の表で示されている値のいずれかを指定できる。
値 | 説明 |
DMUS_PATH_AUDIOPATH | セグメント状態が演奏されているオーディオパス。 |
DMUS_PATH_AUDIOPATH_GRAPH | オーディオパス ツールグラフ。存在しなければ作成される。 |
DMUS_PATH_AUDIOPATH_TOOL | オーディオパス ツールグラフのツール。 |
DMUS_PATH_BUFFER | DirectSound バッファ。 |
DMUS_PATH_BUFFER_DMO | バッファ内の DMO。DMO のインターフェイスについては、「IDirectSoundBuffer8::GetObjectInPath」を参照。 |
DMUS_PATH_MIXIN_BUFFER | グローバル ミックスイン バッファ。 |
DMUS_PATH_MIXIN_BUFFER_DMO | グローバル ミックスイン バッファ内の DMO。 |
DMUS_PATH_PERFORMANCE | パフォーマンス。 |
DMUS_PATH_PERFORMANCE_GRAPH | パフォーマンス ツールグラフ。存在しなければ作成される。 |
DMUS_PATH_PERFORMANCE_TOOL | パフォーマンス グラフ内のツール。 |
DMUS_PATH_PORT | シンセサイザ。 |
DMUS_PATH_PRIMARY_BUFFER | プライマリ バッファ。 |
DMUS_PATH_SEGMENT | セグメント状態を所有するセグメント。 |
DMUS_PATH_SEGMENT_GRAPH | セグメント ツールグラフ。存在しなければ作成される。「注意」を参照。 |
DMUS_PATH_SEGMENT_TOOL | セグメント グラフのツール。「注意」を参照。 |
DMUS_PATH_SEGMENT_TRACK | セグメントのトラック。「注意」を参照。 |
dwBuffer
dwStage が DMUS_PATH_BUFFER_DMO または DMUS_PATH_MIXIN_BUFFER_DMO の場合は、その DMO が存在するバッファのインデックス。dwStage が DMUS_PATH_BUFFER または DMUS_PATH_MIXIN_BUFFER の場合は、バッファのインデックス。それ以外の場合は、0 を指定する。
guidObject
オブジェクトのクラス識別子、または任意のクラスのオブジェクトを検索する場合は GUID_All_Objects。dwStage で指定するステージに存在できるオブジェクトが単一のクラスに限定されている場合は、このパラメータは無視されて、GUID_NULL に設定できる。
dwIndex
一致するオブジェクトのリスト内でのオブジェクトのインデックス。最初に一致するオブジェクトを検索するには、0 に設定する。dwStage が DMUS_PATH_BUFFER または DMUS_PATH_MIXIN_BUFFER の場合は、このパラメータは無視され、バッファ インデックスは dwBuffer で指定する。
iidInterface
目的のインターフェイスの識別子。IID_IDirectMusicGraph など。
ppObject
目的のインターフェイスへのポインタを受け取る変数のアドレス。
戻り値
成功した場合は S_OK または DMUS_S_GARBAGE_COLLECTED を返す。「ガベージ コレクション」を参照すること。
失敗した場合は、次の表に示すエラー値のいずれかを返す。
リターン コード |
DMUS_E_NOT_FOUND |
E_INVALIDARG |
E_NOINTERFACE |
E_OUTOFMEMORY |
注意
チャンネル固有でないステージについては、dwPChannel の値を 0 に設定しなければならない。以下のステージのオブジェクトはチャンネル固有なので、dwPChannel にチャンネル番号または DMUS_PCHANNEL_ALL を設定して取得できる。
値 |
DMUS_PATH_AUDIOPATH_TOOL |
DMUS_PATH_BUFFER |
DMUS_PATH_BUFFER_DMO |
DMUS_PATH_PERFORMANCE_TOOL |
DMUS_PATH_PORT |
DMUS_PATH_SEGMENT_TOOL |
不必要なオブジェクトをフィルタによって除外するときのパラメータの優先順位は次のとおりである。
- dwStage。
- guidObject。この値が GUID_All_Objects でない場合は、クラス識別子が guidObject に等しいオブジェクトだけが検索される。ただし、指定したステージに存在できるオブジェクトのクラスが 1 つに限定されている場合には、このパラメータは無視される。
- dwPChannel。ステージがチャンネル固有で、この値が DMUS_PCHANNEL_ALL でない場合は、そのチャンネルのオブジェクトだけが検索される。
- dwBuffer。このパラメータは、dwStage が DMUS_PATH_BUFFER、DMUS_PATH_MIXIN_BUFFER、DMUS_PATH_BUFFER_DMO、または DMUS_PATH_MIXIN_BUFFER_DMO の場合にだけ使用される。
- dwIndex。DirectMusic Producer で作成するセグメントのトラックは、必ずしもアプリケーションと同じ順序である必要はない。ステージ DMUS_PATH_SEGMENT_TRACK で特定のトラックを検索する場合は、dwIndex だけに依存してはならない。
一致するオブジェクトが見つかっても、iidInterface で指定されているインターフェイスが見つからない場合、このメソッドは失敗する。
dwStage で DMUS_PATH_SEGMENT_GRAPH または DMUS_PATH_SEGMENT_TOOL を指定した場合に返されるオブジェクトは、同じセグメントに基づく別のセグメント状態に対して返されるオブジェクトと同じではない可能性がある。セグメントの演奏時には、セグメントのツールグラフがコピーされ、IDirectMusicTool8::Clone メソッドをサポートするツールもすべてコピーされる。
要件
** ヘッダー:**dmusici.h で宣言。
参照