Module: wine Branch: master Commit: b17aa7813f22d93ecd81bda272f8d3ba52ad9c38 URL: http://source.winehq.org/git/wine.git/?a=commit;h=b17aa7813f22d93ecd81bda272... Author: Aric Stewart <aric(a)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,