Microsoft DirectX 8.0 (C++)

IDirectMusicPerformance8::Init

パフォーマンスを DirectMusic オブジェクトと DirectSound オブジェクトに関連付ける。アプリケーションがオーディオパスを使用していない場合は、パフォーマンスの演奏前にこのメソッドを呼び出す必要がある。

オーディオパスを使用するアプリケーションについては、このメソッドに代えて IDirectMusicPerformance8::InitAudio が使用される。

HRESULT Init(
  IDirectMusic** ppDirectMusic,
  LPDIRECTSOUND pDirectSound,
  HWND hWnd
);

パラメータ

ppDirectMusic
DirectMusic オブジェクトへのインターフェイス ポインタを指定または受け取る変数のアドレス。

ppDirectMusic が指す変数に、有効な IDirectMusic または IDirectMusic8 インターフェイス ポインタが含まれている場合は、既存のオブジェクトがパフォーマンスに割り当てられる。このインターフェイスの参照カウントはインクリメントされる。IDirectMusicPerformance8::AddPort メソッドに渡されるポートは、この DirectMusic オブジェクトから作成する必要がある。

ppDirectMusic が指す変数に NULL が含まれる場合、DirectMusic オブジェクトが作成され、IDirectMusic インターフェイス ポインタが返される。QueryInterface を使用して IDirectMusic8 を取得する。

ppDirectMusic が NULL の場合、DirectMusic オブジェクトが作成され、パフォーマンスによって内部的に使用される。

「注意」を参照すること。

pDirectSound
ウェーブ出力のデフォルトで使用される IDirectSound8 インターフェイス ポインタ。この値が NULL の場合、DirectMusic によって DirectSound オブジェクトが作成される。ただし、DirectSound オブジェクトが存在できるのは 1 つのプロセスにつき 1 つだけである。アプリケーションで DirectSound を個別に使っている場合、そのインターフェイスを pDirectSound に渡さなければならない。アプリケーションが DirectMusic オブジェクトを明示的に作成する場合は、そのインターフェイスを IDirectMusic8::SetDirectSound に渡さなければならない。
hWnd
DirectSound の作成に使うウィンドウ ハンドル。このパラメータは NULL でもよい。その場合、前面ウィンドウが使用される。「注意」を参照すること。

pDirectSound が NULL の場合、このパラメータは無視される。その場合、IDirectSound8::SetCooperativeLevel の呼び出しにおいて、アプリケーションがウィンドウ ハンドルの設定を行わなければならない。

戻り値

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

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

DMUS_E_ALREADY_INITED
E_OUTOFMEMORY
E_POINTER

注意

このメソッドは、一度だけ呼び出すことができる。既存の IDirectMusic8 インターフェイスの取得に使用することはできない。

DirectMusic オブジェクトは、以下の方法のいずれかを使って、パフォーマンスに関連付けることができる。

パフォーマンスを解放する前に、IDirectMusicPerformance8::CloseDown メソッドを使用してパフォーマンスを終了しなければならない。

hWnd パラメータに NULL を渡すと、現在の前面ウィンドウのハンドルを DirectSound に渡すことができる。ただし、アプリケーション ウィンドウが初期化中に前面にあると想定しないこと。最上位アプリケーションのウィンドウ ハンドルを渡すことが最良である。

動作環境

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

参照

ポートからオーディオパスへの移行