Platform SDK: DirectX

IDirectMusic::SetDirectSound

IDirectMusic::SetDirectSound メソッドは、ウェーブ出力用に、DirectMusic を DirectSound オブジェクトに接続する。

HRESULT SetDirectSound(
  LPDIRECTSOUND pDirectSound,
  HWND hWnd
);

パラメータ

pDirectSound
出力用に使う IDirectSound インターフェイスのアドレス。このパラメータが NULL の場合、DirectSound オブジェクトが作成され、協調レベルが設定される (「注意」を参照すること)。このパラメータに IDirectSound ポインタが含まれる場合は、アプリケーションが協調レベルを設定しなければならない。
hWnd
この呼び出しによって作成される、DirectSound オブジェクトのウィンドウ ハンドル。この値が NULL の場合、現在の前面ウィンドウがフォーカス ウィンドウとして設定される。「注意」を参照すること。

pDirectSound が有効なインターフェイスの場合、このパラメータは無視される。IDirectSound::SetCooperativeLevel の呼び出しでは、アプリケーションが有効なウィンドウ ハンドルを提供する必要があるためである。

戻り値

成功すれば S_OK を返す。

失敗すれば DMUS_E_DSOUND_ALREADY_SET を返す。

注意

指定した DirectSound オブジェクトは、すべてのポート上でオーディオをレンダリングする際に使われるオブジェクトである。このデフォルト値は、IDirectMusicPort::SetDirectSound メソッドを使って上書きできる。

IDirectMusic::SetDirectSound メソッドを呼び出すたびに、既存の DirectSound オブジェクトは解放される。

pDirectSound が NULL の場合、DirectSound を使うポートがアクティブ化されるまで新しい DirectSound オブジェクトは作成されない。DirectSound オブジェクトは、それを使用している最後のポートが非アクティブ化されると自動的に解放される。

DirectSound オブジェクトを自分で作成した場合は、すべてのポートを非アクティブ化した後で、このメソッドの pDirectSound パラメータに NULL を設定して呼び出すことによって解放できる (アクティブなポート対して SetDirectSound を呼び出すことは誤りである)。

hWnd パラメータに NULL を渡して、現在の前面ウィンドウ ハンドルを DirectSound に渡すことができる。ただし、初期化中にアプリケーション ウィンドウが前面にあると想定しないこと。通常、最上レベルのアプリケーション ウィンドウ ハンドルは、DirectMusic、DirectSound、および DirectDraw に渡さなければならない。「IDirectSound::SetCooperativeLevel」の「注意」を参照すること。

動作環境

  Windows NT/2000 : Windows 2000 が必要。
  Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
  ヘッダー : dmusicc.h で宣言。

参照

DirectMusic と DirectSound の統合