IDirectSound8::SetCooperativeLevel

SetCooperativeLevel メソッドはサウンド デバイスに対するアプリケーションの強調レベルを設定します。

HRESULT 
SetCooperativeLevel(
  HWND hwnd,
  DWORD dwLevel
);

パラメータ

  • hwnd
    アプリケーション ウィンドウへのハンドルです。
  • dwLevel
    要求するレベルです。次の表に示されている値のいずれかを指定します。
説明
DSSCL_EXCLUSIVEDirectX 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 内容

関連項目

IDirectSound8