Microsoft DirectX 8.0 (C++)

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

不必要なオブジェクトをフィルタリングによって除外するときのパラメータの優先順位は次のとおりである。

  1. dwStage
  2. guidObject。この値が GUID_All_Objects でない場合、クラス識別子が guidObject に等しいオブジェクトだけが検索される。ただし、指定されたステージに存在できるオブジェクトのクラスが 1 つに限定されている場合、このパラメータは無視される。
  3. dwPChannel。ステージがチャンネル固有で、この値が DMUS_PCHANNEL_ALL でない場合、そのチャンネルのオブジェクトだけが検索される。
  4. dwBuffer。このパラメータが使用されるのは、dwStage が DMUS_PATH_BUFFER、DMUS_PATH_MIXIN_BUFFER、DMUS_PATH_BUFFER_DMO、または DMUS_PATH_MIXIN_BUFFER_DMO の場合だけである。
  5. dwIndex。DirectMusic Producer で作成するセグメントのトラックは、必ずしもアプリケーションと同じ順序である必要はない。ステージ DMUS_PATH_SEGMENT_TRACK では、特定のトラックの検索を dwIndex だけに頼らないこと。

一致するオブジェクトが見つかっても、iidInterface で指定されているインターフェイスが見つからない場合、このメソッドは失敗する。

dwStage に DMUS_PATH_SEGMENT_GRAPH または DMUS_PATH_SEGMENT_TOOL を指定する場合に返されるオブジェクトは、同じセグメントに基づく別のセグメント状態に返されるオブジェクトと同じではない可能性がある。セグメントが演奏される場合、そのツールグラフはコピーされ、IDirectMusicTool8::Clone メソッドをサポートするツールもすべてコピーされる。

動作環境

  ヘッダー : dmusici.h で宣言。

参照

IDirectMusicAudioPath8::GetObjectInPathオーディオパスからのオブジェクトの取得