Microsoft DirectX 8.0 (Visual Basic) |
ジョイスティックをフォアグラウンドモードで使用する (「協調レベル」を参照すること) 場合には、フォーカスが他のアプリケーションに切り替わるときに、デバイスを喪失することがある。
DirectInputDevice8.GetDeviceData メソッドまたは DirectInputDevice8.GetDeviceStateKeyboard メソッドからの DIERR_INPUTLOST 戻り値をチェックし、必要に応じてジョイスティックを再取得することができる (「デバイスの取得」を参照すること)。
注 : DIERR_NOTACQUIRED エラーを受け取った場合には、キーボードの再取得を試みないようにする必要がある。そうしないと、無限ループに入るおそれがある。取得は失敗し、DIERR_NOTACQUIRED エラーを受け取るという繰り返しが永遠に続く。
キーボードやマウスとは異なり、Microsoft® Windows® システムはジョイスティックを使用しないので、アプリケーションがバックグラウンドに移行する場合を除き、ジョイスティックへのアクセス権が失われることはない。したがって、どちらのメソッドでも、WM_ACTIVATE メッセージに応えてデバイスを再取得できる。