https://git.reactos.org/?p=reactos.git;a=commitdiff;h=7cc89e520c3ac4182e9f6db13610e01a5e54efe5

commit 7cc89e520c3ac4182e9f6db13610e01a5e54efe5
Author:     Katayama Hirofumi MZ <[email protected]>
AuthorDate: Thu Nov 17 10:27:12 2022 +0900
Commit:     Katayama Hirofumi MZ <[email protected]>
CommitDate: Thu Nov 17 10:27:12 2022 +0900

    [NTUSER] Implement IntCheckImeShowStatusInThread
    
    CORE-11700
---
 win32ss/user/ntuser/ime.c        | 7 +++++++
 win32ss/user/ntuser/simplecall.c | 2 +-
 win32ss/user/ntuser/window.h     | 1 +
 3 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/win32ss/user/ntuser/ime.c b/win32ss/user/ntuser/ime.c
index 57d2e3f0839..5c15a2375dd 100644
--- a/win32ss/user/ntuser/ime.c
+++ b/win32ss/user/ntuser/ime.c
@@ -2395,4 +2395,11 @@ BOOL FASTCALL IntBroadcastImeShowStatusChange(PWND 
pImeWnd, BOOL bShow)
     return TRUE;
 }
 
+/* Win: xxxCheckImeShowStatusInThread */
+VOID FASTCALL IntCheckImeShowStatusInThread(PWND pImeWnd)
+{
+    if (IS_IMM_MODE() && !(pImeWnd->state2 & WNDS2_INDESTROY))
+        IntCheckImeShowStatus(pImeWnd, pImeWnd->head.pti);
+}
+
 /* EOF */
diff --git a/win32ss/user/ntuser/simplecall.c b/win32ss/user/ntuser/simplecall.c
index a52d184fe20..6cfcf8e9d45 100644
--- a/win32ss/user/ntuser/simplecall.c
+++ b/win32ss/user/ntuser/simplecall.c
@@ -670,7 +670,7 @@ NtUserCallHwndLock(
             break;
 
         case HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD:
-            // TODO:
+            IntCheckImeShowStatusInThread(Window);
             break;
     }
 
diff --git a/win32ss/user/ntuser/window.h b/win32ss/user/ntuser/window.h
index 0efbd4987a3..036cd690954 100644
--- a/win32ss/user/ntuser/window.h
+++ b/win32ss/user/ntuser/window.h
@@ -122,5 +122,6 @@ BOOL FASTCALL IntImeCanDestroyDefIMEforChild(PWND pImeWnd, 
PWND pwndTarget);
 BOOL FASTCALL IntImeCanDestroyDefIME(PWND pImeWnd, PWND pwndTarget);
 BOOL FASTCALL IntBroadcastImeShowStatusChange(PWND pImeWnd, BOOL bShow);
 VOID FASTCALL IntNotifyImeShowStatus(PWND pImeWnd);
+VOID FASTCALL IntCheckImeShowStatusInThread(PWND pImeWnd);
 
 /* EOF */

Reply via email to