IDirectSound8::SetCooperativeLevel
このサウンド デバイスのアプリケーション協調レベルを設定する。
HRESULT SetCooperativeLevel(
HWND hwnd,
DWORD dwLevel
);
パラメータ
- hwnd
- アプリケーション ウインドウへのハンドル。
- dwLevel
- 要求される優先レベル。次の値のいずれかを指定する。
- DSSCL_EXCLUSIVE
- DirectX 8.0 以降のバージョンでは、DSSCL_PRIORITY と同じ効果を持つ。それ以前のバージョンでは、アプリケーションを排他レベルに設定する。つまり、入力フォーカスが置かれているアプリケーションだけが音を出せる (DSBCAPS_GLOBALFOCUS フラグが設定されているアプリケーションのサウンドは無音になる)。このレベルに設定されたアプリケーションは、DSSCL_PRIORITY レベルのすべての特権をも備えている。アプリケーションが入力フォーカスを得ると、DirectSound は前回 IDirectSoundBuffer8::SetFormat メソッドを呼び出したときに指定されたハードウェア フォーマットを復元する
- DSSCL_NORMAL
- アプリケーションを完全に協調可能なステータスに設定する。このレベルでは最もスムーズなマルチタスキングとリソース共有の動作が得られるが、プライマリ バッファのフォーマットの変更は行えず、出力もデフォルトの 8 ビット フォーマットに限定される。
- DSSCL_PRIORITY
- アプリケーションを優先レベルに設定する。この協調レベルに設定されたアプリケーションは IDirectSoundBuffer8::SetFormat と IDirectSound8::Compact の各メソッドを呼び出せる。
- DSSCL_WRITEPRIMARY
- これは最上位の優先レベルである。このアプリケーションはプライマリ サウンド バッファへの書き込みアクセスを保持する。セカンダリ サウンド バッファはいずれも再生できない。デバイスが DirectSound ドライバでエミュレートされている場合、つまり IDirectSound8::GetCaps メソッドが DSCAPS 構造体内に DSCAPS_EMULDRIVER フラグを返した場合、このレベルは設定できない。
戻り値
成功した場合は DS_OK を返す。
失敗した場合は、次のいずれかのエラー値を返す。
注意
アプリケーションはバッファを再生する前に、このメソッドを呼び出して協調レベルを設定しなければならない。推奨される協調レベルは DSSCL_PRIORITY である。詳細については、「協調レベル」を参照すること。
ロックされたバッファがある場合は、このメソッドを使用してはならない。
ヘッダー : dsound.h で宣言。