IDirectSound8::SetCooperativeLevel
SetCooperativeLevel メソッドはサウンド デバイスに対するアプリケーションの強調レベルを設定します。
HRESULT
SetCooperativeLevel(
HWND hwnd,
DWORD dwLevel
);
パラメータ
- hwnd
アプリケーション ウィンドウへのハンドルです。 - dwLevel
要求するレベルです。次の表に示されている値のいずれかを指定します。
値 | 説明 |
DSSCL_EXCLUSIVE | DirectX 8.0 以降では、DSSCL_PRIORITY と同じ効果があります。それ以前のバージョンでは、アプリケーションを排他レベルに設定します。つまり、入力フォーカスを持っているアプリケーションだけが音を出せます。DSBCAPS_GLOBALFOCUS フラグが設定されているアプリケーションのサウンドは無音になります。このレベルに設定されたアプリケーションは、DSSCL_PRIORITY レベルのすべての特権も備えています。アプリケーションが入力フォーカスを得ると、DirectSound は最後の SetFormat メソッドの呼び出しで指定されたハードウェア フォーマットを復元します。 |
DSSCL_NORMAL | 標準レベルに設定します。このレベルでは最もスムーズなマルチタスキングとリソース共有の動作が得られますが、プライマリ バッファーのフォーマットを変更することはできず、出力はデフォルトの 8 ビット フォーマットに限定されます。 |
DSSCL_PRIORITY | 優先レベルに設定します。この協調レベルに設定されたアプリケーションは、SetFormat メソッドと Compact メソッドを呼び出すことができます。 |
DSSCL_WRITEPRIMARY | 書き込み優先レベルに設定します。このアプリケーションは、プライマリ バッファーへの書き込みアクセスを持ちます。セカンダリ バッファーは再生できません。デバイスに対して DirectSound ドライバーがエミュレートされている場合、つまり GetCaps メソッドが DSCAPS 構造体で DSCAPS_EMULDRIVER フラグを返した場合は、このレベルを設定できません。 |
戻り値
成功した場合は、DS_OK を返します。失敗した場合は、以下の表に示すエラー値のいずれかが戻り値となります。
リターン コード |
DSERR_ALLOCATED |
DSERR_INVALIDPARAM |
DSERR_UNINITIALIZED |
DSERR_UNSUPPORTED |
解説
アプリケーションは、バッファーを再生する前に、このメソッドを呼び出して協調レベルを設定する必要があります。推奨される協調レベルは DSSCL_PRIORITY です。
ロックされたバッファーがある場合は、このメソッドを呼び出さないでください。
要件
ヘッダー: DSound.h 宣言
ライブラリ: Dsound3d.dll 内容