Microsoft DirectX 8.0 (C++) |
シンセサイザからの出力用に、DirectMusic を DirectSound オブジェクトに接続する。
ほとんどのアプリケーションはこのメソッドを使用しない。通常、DirectSound オブジェクトの作成とパフォーマンスへの接続は、IDirectMusicPerformance8::InitAudio によって行われる。
HRESULT SetDirectSound( LPDIRECTSOUND pDirectSound, HWND hWnd );
pDirectSound が有効なインターフェイスの場合、このパラメータは無視される。IDirectSound8::SetCooperativeLevel の呼び出しでは、アプリケーションが有効なウィンドウ ハンドルを提供する必要があるためである。
成功した場合は S_OK を返す。
失敗した場合は DMUS_E_DSOUND_ALREADY_SET を返す。
指定した DirectSound オブジェクトは、すべてのポート上でオーディオをレンダリングする際に使われるオブジェクトである。このデフォルト値は、IDirectMusicPort8::SetDirectSound メソッドを使って上書きできる。
IDirectMusic8::SetDirectSound メソッドを呼び出すたびに、既存の DirectSound オブジェクトは解放される。
pDirectSound が NULL の場合、DirectSound を使うポートがアクティブになるまで新しい DirectSound オブジェクトは作成されない。DirectSound オブジェクトは、それを使用している最後のポートが非アクティブになると自動的に解放される。
DirectSound オブジェクトを自分で作成した場合は、すべてのポートを非アクティブにした後で、このメソッドの pDirectSound パラメータに NULL を設定して呼び出すことによって解放できる (アクティブなポートに対して SetDirectSound を呼び出すことは誤りである)。
hWnd パラメータに NULL を渡すと、現在の前面ウィンドウのハンドルを DirectSound に渡すことができる。ただし、アプリケーション ウィンドウが初期化中に前面にあると想定しないこと。通常、最上位レベルのアプリケーション ウィンドウ ハンドルを DirectMusic および DirectSound に渡さなければならない。IDirectSound8::SetCooperativeLevel の「注意」を参照すること。
ヘッダー : dmusicc.h で宣言。