DirectMusic パフォーマンスを初期化して、オプションでデフォルトのオーディオパスをセットアップします。
オーディオパスを使用してパフォーマンスを演奏するアプリケーションは演奏前に1度だけこのメソッドを呼び出さなくてはなりません。
HRESULT InitAudio( IDirectMusic** ppDirectMusic, IDirectSound** ppDirectSound, HWND hwnd, DWORD dwDefaultPathType, DWORD dwPChannelCount, DWORD dwFlags, DMUS_AUDIOPARAMS* pParams );
メソッドのインデックス: 44
DirectMusic オブジェクトへのインターフェイスポインタを指定または受け取る変数のアドレスを指定します。 0 (NULL) を指定することもできます。
指定されたアドレスが示す変数に IDirectMusic インターフェースポインタが格納されている場合には、その DirectMusic オブジェクトがパフォーマンスに割り当てられます。このとき、IDirectMusic インターフェースポインタの参照カウントはインクリメントされます。
指定されたアドレスが示す変数に 0 (NULL) が格納されている場合には、DirectMusic オブジェクトが作成されて、作成されたオブジェクトの IDirectMusic インターフェイスポインタがこの変数に格納されます。
このパラメータに 0 (NULL) を指定した場合は、DirectMusic オブジェクトが作成されて、パフォーマンスが内部でこのオブジェクトを管理します。
ウェーブ出力のデフォルトで使用する DirectSound オブジェクトの IDirectSound インターフェイスポインタを指定または取得する変数のアドレスを指定します。
このパラメータのアドレスが指し示す変数にウェーブ出力のデフォルトで使用する DirectSound オブジェクトの IDirectSound インターフェイスポインタを格納しておきます。(IDirectSound8 ではない。) このオブジェクトは初期化済みの CLSID_DirectSound8 クラスのオブジェクトでなければなりません。
このパラメータのアドレスが指し示す変数に 0 (NULL) を格納している場合には、DirectMusic オブジェクトによって DirectSound オブジェクトが作成され、その IDirectSound インターフェイスポインタが格納されます。
このパラメータに 0 (NULL) を指定した場合は、DirectMusic によって内部的に DirectSound オブジェクトが作成され管理されます。ただし、DirectSound オブジェクトは1つのプロセス1つだけしか存在させることができないため、アプリケーションで DirectSound を個別に使っている場合、そのインターフェイスを渡さなければなりません。また、アプリケーションが DirectMusic オブジェクトを明示的に作成する場合は、そのインターフェイスを IDirectMusic::SetDirectSound メソッドに渡さなければなりません。
DirectSound の作成に使うウィンドウハンドルを指定します。0 (NULL) を指定した場合は、前面ウィンドウが使用されます。
ppDirectSound パラメータに IDirectSound インターフェイスポインタが渡された場合は、このパラメータは無視されます。この場合は、 IDirectSound::SetCooperativeLevel メソッドを呼び出して、アプリケーションがウィンドウハンドルの設定を行なわなければなりません。
デフォルトオーディオパスのタイプを示す値を指定します。デフォルトパスタイプが不要な場合は、0 を指定します。
0 または以下の値のいずれかを指定します。
値 | 機能 |
---|---|
1 (DMUS_APATH_SHARED_STEREOPLUSREVERB) | ステレオ出力とリバーブを備えた、通常のミュージックセットアップ |
6 (DMUS_APATH_DYNAMIC_3D) | 3D バッファに対する1つのバス |
7 (DMUS_APATH_DYNAMIC_MONO) | モノラルバッファに対する1つのバス |
8 (DMUS_APATH_DYNAMIC_STEREO) | ステレオバッファに対する2つのバス |
dwDefaultPathType パラメータで有効なオーディオパスのタイプを指定した場合に、オーディオパスに割り当てるパフォーマンスチャンネル数を指定します。
要求された機能を指定するフラグ値を指定します。 pParams パラメータが 0 (NULL) 以外の場合は、この値は無視され、 pParams パラメータが指し示す DMUS_AUDIOPARAMS 構造体の dwFeatures メンバの値が使用されます。
以下の値のいずれかを指定します
値 | 機能 |
---|---|
0x1 (DMUS_AUDIOF_3D) | 3D バッファ |
0x2 (DMUS_AUDIOF_ENVIRON) | 環境モデリング |
0x4 (DMUS_AUDIOF_EAX) | EAX エフェクト |
0x10 (DMUS_AUDIOF_STREAMING) | ストリーミングウェーブのサポート |
0x20 (DMUS_AUDIOF_BUFFERS) | 複数のバッファ |
0x3F (DMUS_AUDIOF_ALL) | すべての機能 |
シンセサイザのパラメータを指定し、どのパラメータが設定されたかについての情報を受け取る DMUS_AUDIOPARAMS 構造体のアドレスを指定します。 0 (NULL) を指定すると、デフォルトのパラメータが使用されます。
成功すると 0x00000000 (S_OK) が返ります。
失敗すると以下のいずれかのエラー値が返ります。
値 | 意味 |
---|---|
0x80004002 (E_NOINTERFACE) | 利用可能なオブジェクトインターフェイスがありません。 |
0x80004003 (E_POINTER) | 無効なポインタが渡されました。 |
0x8007000E (E_OUTOFMEMORY) | メモリ不足のため完了できませんでした。 |
0x88781151 (DMUS_E_ALREADY_INITED) | オブジェクトは既に初期化されています。 |
0x88780046 (DSERR_PRIOLEVELNEEDED) | 呼び出し元は、関数を成功させるために必要な優先レベルを持っていません。 |
0x88780096 (DSERR_BUFFERLOST) | バッファメモリが失われたため、復元しなければなりません。 |
0x887800AA (DSERR_UNINITIALIZED) | ほかのメソッドを呼び出す前に IDirectSound8::Initialize メソッドを呼び出さなかったか、呼び出しが成功していません。 |