The current patch fixes:
1) Dont use an unitialized pointer in RtlMultiByteToUnicodeN which now (should) lead to TranslateAcceleratorA return 0 and no message translated at all.
2) Don't try to translate all the messages to Unicode if they are not char related(WM_KEYDOWN,WM_SYSKDOWN)
3)Now set properly cChar so we can translate it to wChar and set it as the wParam of the message, which wasnt set (anyway, the code never reached this point).
To sum up. A try to fix the whole API.