Rémi Bernon (@rbernon) commented about dlls/win32u/input.c:
/* * Microsoft Office expects this value to be something specific * for Japanese and Korean Windows with an IME the value is 0xe001 * We should probably check to see if an IME exists and if so then * set this word properly.
*
* On Vista+, the high word is always layout, not 0xe00* even when IME is on.
* Super Robo Wars 30 (SteamID: 898750) depends on it. */
- if (NtCurrentTeb()->Peb->OSMajorVersion <= 5)
- { langid = PRIMARYLANGID( LANGIDFROMLCID( layout ) ); if (langid == LANG_CHINESE || langid == LANG_JAPANESE || langid == LANG_KOREAN) layout = MAKELONG( layout, 0xe001 ); /* IME */
- else
I'm not sure we need to keep this tbh. The 0xe001 high bits is simply very likely coming from imm32, and whatever Office was doing, if that's truly the case, will simply not work anymore in any recent Windows version.