Microsoft DirectX 8.0 (Visual Basic) |
デバイスのインスタンスに協調レベルを設定する。協調レベルは、このインスタンスが、同じデバイスのほかのインスタンス、およびシステムのこれ以外の部分との間で、どのように対話するかを決める。
object.SetCooperativeLevel(hwnd As Long, _ flags As CONST_DISCLFLAGS)
次のフラグの組み合わせが有効である。
フラグ | 意味 | 対象 |
---|---|---|
DISCL_NONEXCLUSIVE Or DISCL_BACKGROUND | ほかのアプリケーションは、排他モードまたは非排他モードにあるデバイスを取得できる。このアプリケーションは、データにいつでもアクセスできる。 | すべて。 |
DISCL_NONEXCLUSIVE Or DISCL_FOREGROUND | ほかのアプリケーションは、排他モードまたは非排他モードにあるデバイスを取得できる。このアプリケーションは、フォアグラウンドにあるときのみデータにアクセスできる。 | すべて。 |
DISCL_EXCLUSIVE Or DISCL_BACKGROUND | ほかのアプリケーションは、非排他モードにあるデバイスを取得できる。このアプリケーションは、データにいつでもアクセスできる。 | ジョイスティック。 |
DISCL_EXCLUSIVE Or DISC_FOREGROUND | ほかのアプリケーションは、非排他モードにあるデバイスを取得できる。このアプリケーションは、フォアグラウンドにあるときのみデータにアクセスできる。 | すべて。マウスの場合、有効だが Microsoft® Windows® はカーソルを表示できない。 |
キーボードの場合、Windows キーを無効にするには DISCL_NONEXCLUSIVE と共に DISCL_NOWINKEY も含める必要がある。DISCL_EXCLUSIVE が指定される場合、Windows キーは常に無効である。ただし、デフォルトのアクション マッピング UI が表示されている間は DISCL_NOWINKEY フラグは無効であり、また、デフォルトのアクション マッピング UI が存在している間は Windows キーは通常どおり機能する。
失敗した場合はエラーが発生し、Err.Number に次のいずれかのエラー コードが設定される。
DIERR_INVALIDPARAM |
DIERR_INVALIDHANDLE |
2 つのアプリケーション (または同一アプリケーションの 2 つのインスタンス) が同時に 1 つのデバイスを排他モードで取得することはできない。これは主にセキュリティ面での機能である。これにより、1 つのアプリケーションからの入力が、同時に実行されている別のアプリケーションに流れることはない。
システム マウスが排他モードで取得されると、マウス ポインタは、デバイスが解放されるまで画面から消去される。
アプリケーションは、DirectInputDevice8.Acquire メソッドでデバイスを取得する前に、このメソッドを呼び出す必要がある。
「協調レベル」