https://bugs.winehq.org/show_bug.cgi?id=13683
--- Comment #48 from Christopher Thielen cthielen@gmail.com --- Sorry about the missing include file. There is no code in it fortunately.
I re-performed my test and drew a couple of lines to confirm that the missing WM_CAPTURECHANGED is not the result of closing the window but is actually the result of the SetCapture() call on line 194.
If you comment out that unnecessary SetCapture(), Wine and Windows match in their WM_CAPTURECHANGED messages. With that SetCapture() call however, Windows will immediately send a WM_CAPTURECHANGED call where the lParam argument equals the hWnd of the demo application's window. Wine sends nothing.
u9.exe seems to be repeatedly calling SetCapture() in order to get such a message back from the environment, but as Wine is currently not sending this message, it fails to enable the in-game mouse cursor.
It appears that the MSDN documentation for WM_CAPTURECHANGED is incomplete (https://msdn.microsoft.com/en-us/library/windows/desktop/ms645605%28v=vs.85%...) and that WM_CAPTURECHANGED is not only sent to windows losing focus but can be sent to a window which already has focus if that application calls SetCapture() on its own window.
If this sounds like the appropriate behavior, I'd be glad to submit a patch.