Microsoft DirectX 8.0 (Visual Basic)

消失したジョイスティック入力の確認

ジョイスティックをフォアグラウンドモードで使用する (「協調レベル」を参照すること) 場合には、フォーカスが他のアプリケーションに切り替わるときに、デバイスを喪失することがある。

DirectInputDevice8.GetDeviceData メソッドまたは DirectInputDevice8.GetDeviceStateKeyboard メソッドからの DIERR_INPUTLOST 戻り値をチェックし、必要に応じてジョイスティックを再取得することができる (「デバイスの取得」を参照すること)。

 :  DIERR_NOTACQUIRED エラーを受け取った場合には、キーボードの再取得を試みないようにする必要がある。そうしないと、無限ループに入るおそれがある。取得は失敗し、DIERR_NOTACQUIRED エラーを受け取るという繰り返しが永遠に続く。

キーボードやマウスとは異なり、Microsoft® Windows® システムはジョイスティックを使用しないので、アプリケーションがバックグラウンドに移行する場合を除き、ジョイスティックへのアクセス権が失われることはない。したがって、どちらのメソッドでも、WM_ACTIVATE メッセージに応えてデバイスを再取得できる。