次の方法で共有


IDirectMusicAudioPath8::GetObjectInPath

オーディオパス内のオブジェクトに対するインターフェイスを取得する。

構文

  RESULT GetObjectInPath(
  DWORD 
  dwPChannel
  ,
  DWORD 
  dwStage,
  DWORD dwBuffer,
  REFGUID guidObject,
  DWORD dwIndex,
  REFGUID iidInterface,
  void ** ppObject
);

パラメータ

dwPChannel

検索するパフォーマンス チャンネル。DMUS_PCHANNEL_ALL を指定すると、すべてのチャンネルが検索される。最初のチャンネルは 0 番になる。「注意」を参照すること。

dwStage

オーディオパス内のステージ。次の表で示されている値のいずれかを指定できる。

説明
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 プライマリ バッファを取得する。

dwBuffer

バッファのインデックス (dwStage が DMUS_PATH_BUFFER または DMUS_PATH_MIXIN_BUFFER の場合)、または DMO が存在するバッファのインデックス (dwStage が DMUS_PATH_BUFFER_DMO または DMUS_PATH_MIXIN_BUFFER_DMO の場合)。

guidObject

オブジェクトのクラス識別子、または任意のクラスのオブジェクトを検索する GUID_All_Objects。dwStage で指定するステージに存在するオブジェクトが単一のクラスに限定される場合、このパラメータは無視される。このパラメータには GUID_NULL を設定できる。

dwIndex

一致するオブジェクトのリストにおけるオブジェクトのインデックス。0 に設定して、最初の適合オブジェクトを検索する。dwStage が DMUS_PATH_BUFFER または DMUS_PATH_MIXIN_BUFFER の場合は、このパラメータは無視され、バッファ インデックスは dwBuffer で指定する。

iidInterface

IID_IDirectMusicTool など、目的のインターフェイスの識別子。

ppObject

要求したインターフェイスへのポインタを受け取る変数のアドレス。

戻り値

成功した場合は S_OK を返す。

失敗した場合は、次の表に示すエラー値のいずれかを返す。

リターン コード
DMUS_E_NOT_FOUND
E_INVALIDARG
E_OUTOFMEMORY
E_NOINTERFACE
E_POINTER

注意

チャンネル固有でないステージについては、dwPChannel の値を 0 に設定しなければならない。以下のステージのオブジェクトはチャンネル固有なので、dwPChannel にチャンネル番号または DMUS_PCHANNEL_ALL を設定して取得できる。

DMUS_PATH_AUDIOPATH_TOOL
DMUS_PATH_BUFFER
DMUS_PATH_BUFFER_DMO
DMUS_PATH_PERFORMANCE_TOOL
DMUS_PATH_PORT

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

  1. dwStage
  2. guidObject。この値が GUID_All_Objects でない場合は、クラス識別子が guidObject に等しいオブジェクトだけが検索される。ただし、DMUS_PATH_AUDIOPATH_GRAPH などのようにオブジェクトが単一のクラスに限定されるステージでは、このパラメータは無視される。
  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

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

次の関数の例は、オーディオパス内のバッファを列挙する方法を示している。

void DumpAudioPathBuffers(
    IDirectMusicAudioPath *pDirectMusicAudioPath)
{
  DWORD dwBuffer = 0;
  IDirectSoundBuffer *pDirectSoundBuffer;
 
  while(S_OK == pDirectMusicAudioPath->GetObjectInPath( 
      DMUS_PCHANNEL_ALL, DMUS_PATH_BUFFER, dwBuffer,
      GUID_NULL, 0, IID_IDirectSoundBuffer, 
      (void**) &pDirectSoundBuffer))
  {
    // pDirectSoundBuffer について何らかの処理を行う。
    // . . .
    dwBuffer++;
    pDirectSoundBuffer->Release();
  }
}

要件

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

参照