Microsoft DirectX 8.0 (C++)

IDirectMusic8::SetDirectSound

シンセサイザからの出力用に、DirectMusic を DirectSound オブジェクトに接続する。

ほとんどのアプリケーションはこのメソッドを使用しない。通常、DirectSound オブジェクトの作成とパフォーマンスへの接続は、IDirectMusicPerformance8::InitAudio によって行われる。

HRESULT SetDirectSound(
  LPDIRECTSOUND pDirectSound,
  HWND hWnd
);

パラメータ

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

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 で宣言。