DirectMusic パフォーマンスを DirectMusic オブジェクトと DirectSound オブジェクトに関連付けます。
オーディオパスを使用しないアプリケーションは演奏前に1度だけこのメソッドを呼び出さなくてはなりません。
HRESULT Init( IDirectMusic** ppDirectMusic, LPDIRECTSOUND pDirectSound, HWND hwnd );
メソッドのインデックス: 3
DirectMusic オブジェクトへのインターフェイスポインタを指定または受け取る変数のアドレスを指定します。 0 (NULL) を指定することもできます。
指定されたアドレスが示す変数に IDirectMusic インターフェースポインタが格納されている場合には、その DirectMusic オブジェクトがパフォーマンスに割り当てられます。このとき、 IDirectMusic インターフェースポインタの参照カウントはインクリメントされます。
指定されたアドレスが示す変数に 0 (NULL) が格納されている場合には、 DirectMusic オブジェクトが作成されて、作成されたオブジェクトの IDirectMusic インターフェイスポインタがこの変数に格納されます。
このパラメータに 0 (NULL) を指定した場合は、 DirectMusic オブジェクトが作成されて、パフォーマンスが内部でこのオブジェクトを管理します。
ウェーブ出力のデフォルトで使用される IDirectSound インターフェイスポインタを指定します。
このパラメータに 0 (NULL) を指定した場合は、 DirectMusic によって内部的に DirectSound オブジェクトが作成され管理されます。ただし、 DirectSound オブジェクトは1つのプロセス1つだけしか存在させることができないため、アプリケーションで DirectSound を個別に使っている場合、そのインターフェイスをこのパラメータに渡さなければなりません。また、アプリケーションが DirectMusic オブジェクトを明示的に作成する場合は、そのインターフェイスを IDirectMusic::SetDirectSound メソッドに渡さなければなりません。
DirectSound の作成に使うウィンドウハンドルを指定します。0 (NULL) を指定した場合は、前面ウィンドウが使用されます。
pDirectSound パラメータに 0 (NULL) 以外の値を指定した場合は、このパラメータは無視されます。この場合は、 IDirectSound::SetCooperativeLevel メソッドの呼び出しにおいて、アプリケーションがウィンドウハンドルの設定を行なわなければなりません。
成功すると 0x00000000 (S_OK) が返ります。
失敗すると以下のいずれかのエラー値が返ります。
値 | 意味 |
---|---|
0x80004003 (E_POINTER) | 無効なポインタが渡されました。 |
0x8007000E (E_OUTOFMEMORY) | メモリ不足のため完了できませんでした。 |
0x88781151 (DMUS_E_ALREADY_INITED) | オブジェクトは既に初期化されています。 |
パフォーマンスを解放する前に、 IDirectMusicPerformance::CloseDown メソッドを使用してパフォーマンスを終了しなければなりません。