Platform SDK: DirectX

DirectInputDevice.SetCooperativeLevel

DirectInputDevice.SetCooperativeLevel メソッドは、デバイスのインスタンスに協調レベルを設定する。協調レベルは、このインスタンスが、同じデバイスのほかのインスタンス、およびシステムのこれ以外の部分との間で、どのように対話するかを決める。

object.SetCooperativeLevel(hwnd As Long, _
  flags As CONST_DISCLFLAGS)

パラメータ

object
DirectInputDevice オブジェクトを表すオブジェクト式。
hwnd
デバイスに関連付けられているウィンドウ ハンドル。このパラメータは、このプロセスに属する最上位の有効なウィンドウ ハンドルでなければならない。デバイスに関連付けられるウィンドウは、DirectInput デバイスの中でアクティブである間は、破壊してはならない。
flags
デバイスに関連付ける協調レベルを表すフラグ。CONST_DISCLFLAGS 列挙の定数である。

次のフラグの組み合わせが有効である。
フラグ 意味 対象
DISCL_NONEXCLUSIVE Or DISCL_BACKGROUND ほかのアプリケーションは、排他モードまたは非排他モードにあるデバイスを取得できる。このアプリケーションは、データにいつでもアクセスできる。 すべて。
DISCL_NONEXCLUSIVE Or DISCL_FOREGROUND ほかのアプリケーションは、排他モードまたは非排他モードにあるデバイスを取得できる。このアプリケーションは、フォアグラウンドにあるときのみデータにアクセスできる。 すべて。
DISCL_EXCLUSIVE Or DISCL_BACKGROUND ほかのアプリケーションは、非排他モードにあるデバイスを取得できる。このアプリケーションは、データにいつでもアクセスできる。 ジョイスティック。
DISCL_EXCLUSIVE Or DISC_FOREGROUND ほかのアプリケーションは、非排他モードにあるデバイスを取得できる。このアプリケーションは、フォアグラウンドにあるときのみデータにアクセスできる。 すべて。マウスの場合、有効だが Windows はカーソルを表示できない。

エラー コード

失敗すればエラーが発生し、Err.Number に次のいずれかのエラー コードが設定される。

DIERR_INVALIDPARAM
DIERR_INVALIDHANDLE

注意

2 つのアプリケーション (または同一アプリケーションの 2 つのインスタンス) が同時に 1 つのデバイスを排他モードで取得することはできない。これは主にセキュリティ面での機能である。これにより、1 つのアプリケーションからの入力が、同時に実行されている別のアプリケーションに流れることはない。

システム マウスが排他モードで取得されると、マウス ポインタは、デバイスが解放されるまで画面から消去される。

アプリケーションは、DirectInputDevice.Acquire メソッドでデバイスを取得する前に、このメソッドを呼び出す必要がある。

参照

協調レベル