[PATCH] ImmReleaseContext() function implementation

Mikhail Gorbunov mikhail.gorbunov at gmail.com
Mon Oct 4 12:47:17 CDT 2010


---
 dlls/imm32/imm.c |   24 ++++++++++++++++++------
 1 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/dlls/imm32/imm.c b/dlls/imm32/imm.c
index 28f482c..87b4c14 100644
--- a/dlls/imm32/imm.c
+++ b/dlls/imm32/imm.c
@@ -2009,13 +2009,25 @@ BOOL WINAPI ImmRegisterWordW(
  */
 BOOL WINAPI ImmReleaseContext(HWND hWnd, HIMC hIMC)
 {
-  static int shown = 0;
+    TRACE("(%p, %p)\n", hWnd, hIMC);

-  if (!shown) {
-     FIXME("(%p, %p): stub\n", hWnd, hIMC);
-     shown = 1;
-  }
-  return TRUE;
+    if (hIMC)
+    {
+        InputContextData *data = hIMC;
+
+        if (data->IMC.hWnd != hWnd)
+        {
+             FIXME("(%p, %p): data->IMC.hWnd = %p :: err\n",
+                   hWnd, hIMC, data->IMC.hWnd);
+             return TRUE;
+        }
+        else
+        {
+            return ImmDestroyContext(hIMC);
+        }
+    }
+    else
+        return TRUE;
 }

 /***********************************************************************
-- 
1.7.2.2



More information about the wine-patches mailing list