I found problems in “doKeyDown”, “doKeyUp” implementation on windows platform.
All those methods call “updateKeyModifiers” which reads modifiers with “isKeyDown”. This is incorrect. Modifiers should be read from WPARAM, same way as implemented for mouse.
Because of this it is not possible (ar at least very hard) to implement support for virtual keyboard devices which send only single key message.