Platform SDK: DirectX

Checking for Lost Mouse Input

[C++]

Because Windows might force your application to unacquire the mouse when you have set the cooperative level to DISCL_FOREGROUND and the focus switches to another application, or even to the menu in your own application, you should check for the DIERR_INPUTLOST return value from the IDirectInputDevice7::GetDeviceData or the IDirectInputDevice7::GetDeviceState method, and attempt to reacquire the mouse if necessary. (See Acquiring Devices.)

Note  You should not attempt to reacquire the mouse on getting a DIERR_NOTACQUIRED error. If you do, you could get caught in an infinite loop: acquisition would fail, you would get another DIERR_NOTACQUIRED error, and so on.

[Visual Basic]

Because Windows might force your application to unacquire the mouse when you have set the cooperative level to DISCL_FOREGROUND and the focus switches to another application, or even to the menu in your own application, you should check for the DIERR_INPUTLOST return value from the DirectInputDevice.GetDeviceData or the DirectInputDevice.GetDeviceStateMouse method, and attempt to reacquire the mouse if necessary. (See Acquiring Devices.)

Note  You should not attempt to reacquire the mouse on getting a DIERR_NOTACQUIRED error. If you do, you could get caught in an infinite loop: acquisition would fail, you would get another DIERR_NOTACQUIRED error, and so on.