Aric Stewart : imm32: Update CopyCompOffsetIMEtoClient to handle A-> W and W->A conversions.

Alexandre Julliard julliard at winehq.org
Tue Sep 16 06:54:27 CDT 2008


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

Author: Aric Stewart <aric at codeweavers.com>
Date:   Mon Sep 15 08:50:14 2008 -0500

imm32: Update CopyCompOffsetIMEtoClient to handle A->W and W->A conversions.

---

 dlls/imm32/imm.c |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/dlls/imm32/imm.c b/dlls/imm32/imm.c
index 602aeca..abcff55 100644
--- a/dlls/imm32/imm.c
+++ b/dlls/imm32/imm.c
@@ -1132,7 +1132,20 @@ static INT CopyCompClauseIMEtoClient(InputContextData *data, LPBYTE source, INT
 
 static INT CopyCompOffsetIMEtoClient(InputContextData *data, DWORD offset, LPBYTE ssource, BOOL unicode)
 {
-    return offset;
+    int rc;
+
+    if (is_himc_ime_unicode(data) && !unicode)
+    {
+        rc = WideCharToMultiByte(CP_ACP, 0, (LPWSTR)ssource, offset, NULL, 0, NULL, NULL);
+    }
+    else if (!is_himc_ime_unicode(data) && unicode)
+    {
+        rc = MultiByteToWideChar(CP_ACP, 0, (LPSTR)ssource, offset, NULL, 0);
+    }
+    else
+        rc = offset;
+
+    return rc;
 }
 
 static LONG ImmGetCompositionStringT( HIMC hIMC, DWORD dwIndex, LPVOID lpBuf,




More information about the wine-cvs mailing list