This is as far as I can get (new to wine) - any ideas anyone? I threw a test case app that illustrates the problem
Could you make that available? either C source with Makefile or compiled EXE is fine.
(btw, the WH_KEYBOARD_LL hook has the note 'should use SendMessage instead', but I don't get what this means or know if using SendMessage instead would have anything to do with fixing this problem)
It might do, poking around in the windows/input.c file reveals the hook is called using HOOK_CallHooks() rather than sending a message. MSDN says Windows internally uses messages to implement this one for some reason, but on the other hand presumably DirectInput knows how Wine does it.
Being able to play with the test app would make it easier to debug this problem.
Also, if any Wine/Win32 gurus could point to some docs on how callback routines are invoked, that'd be useful.
One other possibility is that DirectInput should not be using keyboard event hooks in this way. GetDeviceState() implies reading the keyboard device directly, or reading an internal map of key states - NOT waiting for keyboard events. But, I haven't seen that code and didn't implement it, so I might be talking rubbish.
thanks -mike (TD on irc)