Aric Stewart : imm32: Semi-stub implement ImmGetConversionList using loaded IME.

Alexandre Julliard julliard at winehq.org
Wed Apr 9 14:31:31 CDT 2008


Module: wine
Branch: master
Commit: f9414028cae05fdbd6abae02a57290b7ced81dfe
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=f9414028cae05fdbd6abae02a57290b7ced81dfe

Author: Aric Stewart <aric at codeweavers.com>
Date:   Wed Apr  9 09:41:43 2008 -0500

imm32: Semi-stub implement ImmGetConversionList using loaded IME.

---

 dlls/imm32/imm.c |   42 ++++++++++++++++++++++++++++++++----------
 1 files changed, 32 insertions(+), 10 deletions(-)

diff --git a/dlls/imm32/imm.c b/dlls/imm32/imm.c
index 7bbb489..7f17b6f 100644
--- a/dlls/imm32/imm.c
+++ b/dlls/imm32/imm.c
@@ -1027,11 +1027,22 @@ DWORD WINAPI ImmGetConversionListA(
   LPCSTR pSrc, LPCANDIDATELIST lpDst,
   DWORD dwBufLen, UINT uFlag)
 {
-  FIXME("(%p, %p, %s, %p, %d, %d): stub\n",
-    hKL, hIMC, debugstr_a(pSrc), lpDst, dwBufLen, uFlag
-  );
-  SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-  return 0;
+    ImmHkl *immHkl = IMM_GetImmHkl(hKL);
+    TRACE("(%p, %p, %s, %p, %d, %d):\n", hKL, hIMC, debugstr_a(pSrc), lpDst,
+                dwBufLen, uFlag);
+    if (immHkl->hIME && immHkl->pImeConversionList)
+    {
+        if (!is_kbd_ime_unicode(immHkl))
+            return immHkl->pImeConversionList(hIMC,(LPCWSTR)pSrc,lpDst,dwBufLen,uFlag);
+        else
+        {
+            FIXME("A procedure called with W ime back end\n");
+            SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+            return 0;
+        }
+    }
+    else
+        return 0;
 }
 
 /***********************************************************************
@@ -1042,11 +1053,22 @@ DWORD WINAPI ImmGetConversionListW(
   LPCWSTR pSrc, LPCANDIDATELIST lpDst,
   DWORD dwBufLen, UINT uFlag)
 {
-  FIXME("(%p, %p, %s, %p, %d, %d): stub\n",
-    hKL, hIMC, debugstr_w(pSrc), lpDst, dwBufLen, uFlag
-  );
-  SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-  return 0;
+    ImmHkl *immHkl = IMM_GetImmHkl(hKL);
+    TRACE("(%p, %p, %s, %p, %d, %d):\n", hKL, hIMC, debugstr_w(pSrc), lpDst,
+                dwBufLen, uFlag);
+    if (immHkl->hIME && immHkl->pImeConversionList)
+    {
+        if (is_kbd_ime_unicode(immHkl))
+            return immHkl->pImeConversionList(hIMC,pSrc,lpDst,dwBufLen,uFlag);
+        else
+        {
+            FIXME("W procedure called with A ime back end\n");
+            SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+            return 0;
+        }
+    }
+    else
+        return 0;
 }
 
 /***********************************************************************




More information about the wine-cvs mailing list