Microsoft DirectX 8.0 (C++)

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::SetFormatIDirectSound8::Compact の各メソッドを呼び出せる。
DSSCL_WRITEPRIMARY
これは最上位の優先レベルである。このアプリケーションはプライマリ サウンド バッファへの書き込みアクセスを保持する。セカンダリ サウンド バッファはいずれも再生できない。デバイスが DirectSound ドライバでエミュレートされている場合、つまり IDirectSound8::GetCaps メソッドが DSCAPS 構造体内に DSCAPS_EMULDRIVER フラグを返した場合、このレベルは設定できない。

戻り値

成功した場合は DS_OK を返す。

失敗した場合は、次のいずれかのエラー値を返す。

DSERR_ALLOCATED
DSERR_INVALIDPARAM
DSERR_UNINITIALIZED
DSERR_UNSUPPORTED

注意

アプリケーションはバッファを再生する前に、このメソッドを呼び出して協調レベルを設定しなければならない。推奨される協調レベルは DSSCL_PRIORITY である。詳細については、「協調レベル」を参照すること。

ロックされたバッファがある場合は、このメソッドを使用してはならない。

動作環境

  ヘッダー : dsound.h で宣言。