https://git.reactos.org/?p=reactos.git;a=commitdiff;h=2705abfb077a1826385be5a2e080a84afa77c085

commit 2705abfb077a1826385be5a2e080a84afa77c085
Author:     Katayama Hirofumi MZ <[email protected]>
AuthorDate: Sun Aug 9 22:42:17 2020 +0900
Commit:     GitHub <[email protected]>
CommitDate: Sun Aug 9 22:42:17 2020 +0900

    [IMM32] Add ImmShowSoftKeyboard and ImmDestroySoftKeyboard (#3027)
    
    CORE-11700
---
 dll/win32/imm32/imm.c      | 18 ++++++++++++++++--
 dll/win32/imm32/imm32.spec |  4 ++--
 2 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/dll/win32/imm32/imm.c b/dll/win32/imm32/imm.c
index 5b8468283dc..afa504c4c91 100644
--- a/dll/win32/imm32/imm.c
+++ b/dll/win32/imm32/imm.c
@@ -2676,9 +2676,14 @@ HWND WINAPI ImmCreateSoftKeyboard(UINT uType, UINT 
hOwner, int x, int y)
  */
 BOOL WINAPI ImmDestroySoftKeyboard(HWND hSoftWnd)
 {
+#ifdef __REACTOS__
+    TRACE("(%p)\n", hSoftWnd);
+    return DestroyWindow(hSoftWnd);
+#else
     FIXME("(%p): stub\n", hSoftWnd);
     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
     return FALSE;
+#endif
 }
 
 /***********************************************************************
@@ -2686,8 +2691,14 @@ BOOL WINAPI ImmDestroySoftKeyboard(HWND hSoftWnd)
  */
 BOOL WINAPI ImmShowSoftKeyboard(HWND hSoftWnd, int nCmdShow)
 {
+#ifdef __REACTOS__
+    TRACE("(%p, %d)\n", hSoftWnd, nCmdShow);
+    if (hSoftWnd)
+        return ShowWindow(hSoftWnd, nCmdShow);
+#else
     FIXME("(%p, %d): stub\n", hSoftWnd, nCmdShow);
     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+#endif
     return FALSE;
 }
 
@@ -3203,7 +3214,7 @@ BOOL WINAPI ImmDisableLegacyIME(void)
  */
 BOOL WINAPI ImmSetActiveContext(HWND hwnd, HIMC hIMC, BOOL fFlag)
 {
-    FIXME("stub\n");
+    FIXME("(%p, %p, %d): stub\n", hwnd, hIMC, fFlag);
     return FALSE;
 }
 
@@ -3212,7 +3223,10 @@ BOOL WINAPI ImmSetActiveContext(HWND hwnd, HIMC hIMC, 
BOOL fFlag)
  */
 BOOL WINAPI ImmSetActiveContextConsoleIME(HWND hwnd, BOOL fFlag)
 {
-    HIMC hIMC = ImmGetContext(hwnd);
+    HIMC hIMC;
+    TRACE("(%p, %d)\n", hwnd, fFlag);
+
+    hIMC = ImmGetContext(hwnd);
     if (hIMC)
         return ImmSetActiveContext(hwnd, hIMC, fFlag);
     return FALSE;
diff --git a/dll/win32/imm32/imm32.spec b/dll/win32/imm32/imm32.spec
index 84ddfaca1f7..bfd54c3e579 100644
--- a/dll/win32/imm32/imm32.spec
+++ b/dll/win32/imm32/imm32.spec
@@ -8,7 +8,7 @@
 @ stdcall ImmCreateSoftKeyboard(long long long long)
 @ stdcall ImmDestroyContext(long)
 @ stdcall ImmDestroyIMCC(long)
-@ stdcall ImmDestroySoftKeyboard(long)
+@ stdcall ImmDestroySoftKeyboard(ptr)
 @ stdcall ImmDisableIME(long)
 @ stdcall ImmDisableIme(long) ImmDisableIME
 @ stdcall ImmDisableLegacyIME()
@@ -98,7 +98,7 @@
 #@ stdcall ImmSetHotKey(long long long ptr) user32.CliImmSetHotKey
 @ stdcall ImmSetOpenStatus(long long)
 @ stdcall ImmSetStatusWindowPos(long ptr)
-@ stdcall ImmShowSoftKeyboard(long long)
+@ stdcall ImmShowSoftKeyboard(ptr long)
 @ stdcall ImmSimulateHotKey(long long)
 @ stub ImmSystemHandler
 @ stdcall ImmTranslateMessage(long long long long)

Reply via email to