https://git.reactos.org/?p=reactos.git;a=commitdiff;h=192981a1feb30e6f7e9dcde7a8b55e8e544e0cf7

commit 192981a1feb30e6f7e9dcde7a8b55e8e544e0cf7
Author:     Katayama Hirofumi MZ <[email protected]>
AuthorDate: Tue Jul 13 21:13:39 2021 +0900
Commit:     GitHub <[email protected]>
CommitDate: Tue Jul 13 21:13:39 2021 +0900

    [IMM32] Rewrite ImmGetCompositionWindow (#3820)
    
    Rewrite ImmGetCompositionWindow function. CORE-11700
---
 dll/win32/imm32/imm.c | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/dll/win32/imm32/imm.c b/dll/win32/imm32/imm.c
index 5030f593461..e68f59c35a1 100644
--- a/dll/win32/imm32/imm.c
+++ b/dll/win32/imm32/imm.c
@@ -1849,15 +1849,23 @@ LONG WINAPI ImmGetCompositionStringW(
  */
 BOOL WINAPI ImmGetCompositionWindow(HIMC hIMC, LPCOMPOSITIONFORM lpCompForm)
 {
-    InputContextData *data = get_imc_data(hIMC);
+    LPINPUTCONTEXT pIC;
+    BOOL ret = FALSE;
 
-    TRACE("(%p, %p)\n", hIMC, lpCompForm);
+    TRACE("ImmGetCompositionWindow(%p, %p)\n", hIMC, lpCompForm);
 
-    if (!data)
+    pIC = ImmLockIMC(hIMC);
+    if (!pIC)
         return FALSE;
 
-    *lpCompForm = data->IMC.cfCompForm;
-    return TRUE;
+    if (pIC->fdwInit & INIT_COMPFORM)
+    {
+        *lpCompForm = pIC->cfCompForm;
+        ret = TRUE;
+    }
+
+    ImmUnlockIMC(hIMC);
+    return ret;
 }
 
 /***********************************************************************

Reply via email to