From 7151c30079b741c750dfad23f24eec97e697f249 Mon Sep 17 00:00:00 2001 From: Katayama Hirofumi MZ Date: Wed, 24 Aug 2022 11:10:23 +0900 Subject: [PATCH] [USER32] Get/SetWindowLongPtr about PIMEUI (#4625) In ImeWndProc_common, correctly get/set the PIMEUI value by Get/SetWindowLongPtrW. CORE-11700 --- win32ss/user/user32/misc/imm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/win32ss/user/user32/misc/imm.c b/win32ss/user/user32/misc/imm.c index 0bf16913d54..857ae50ae1f 100644 --- a/win32ss/user/user32/misc/imm.c +++ b/win32ss/user/user32/misc/imm.c @@ -959,6 +959,7 @@ ImeWndProc_common(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, BOOL unicod NtUserSetWindowFNID(hwnd, FNID_IME); pimeui = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IMEUI)); pimeui->spwnd = pWnd; + SetWindowLongPtrW(hwnd, 0, (LONG_PTR)pimeui); } else { @@ -967,7 +968,7 @@ ImeWndProc_common(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, BOOL unicod ERR("Wrong window class for Ime! fnId 0x%x\n",pWnd->fnid); return 0; } - pimeui = ((PIMEWND)pWnd)->pimeui; + pimeui = (PIMEUI)GetWindowLongPtrW(hwnd, 0); if (pimeui == NULL) { ERR("Window is not set to IME!\n");