次の方法で共有


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

参照