Rémi Bernon (@rbernon) commented about dlls/win32u/imm.c:
- case WINE_IME_PROCESS_KEY: + case WINE_IME_TO_ASCII_EX_USER: { struct imm_thread_data *data = get_imm_thread_data();
- data->ime_process_scan = HIWORD(lparam); + data->ime_process_scan = LOWORD(lparam); data->ime_process_vkey = LOWORD(wparam); - res = user_driver->pImeProcessKey( params->himc, wparam, lparam, params->state ); + res = user_driver->pImeToAsciiEx( wparam, lparam, (BYTE *)params->state, params->himc ); data->ime_process_vkey = data->ime_process_scan = 0;
if (data->update) { - data->update->key_consumed = res; + data->update->key_consumed = NT_SUCCESS(res); I don't think we use NT_SUCCESS much, lets just use !res like everywhere else.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/9992#note_136046