Module: wine Branch: master Commit: 35e148594e49db6a3f71158cc98c97ecbad28748 URL: http://source.winehq.org/git/wine.git/?a=commit;h=35e148594e49db6a3f71158cc9...
Author: Aric Stewart aric@codeweavers.com Date: Wed Apr 9 09:41:30 2008 -0500
imm32: Semi-stub implement ImmEscape 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 7510187..7bbb489 100644 --- a/dlls/imm32/imm.c +++ b/dlls/imm32/imm.c @@ -629,11 +629,22 @@ LRESULT WINAPI ImmEscapeA( HKL hKL, HIMC hIMC, UINT uEscape, LPVOID lpData) { - FIXME("(%p, %p, %d, %p): stub\n", - hKL, hIMC, uEscape, lpData - ); - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return 0; + ImmHkl *immHkl = IMM_GetImmHkl(hKL); + TRACE("(%p, %p, %d, %p):\n", hKL, hIMC, uEscape, lpData); + + if (immHkl->hIME && immHkl->pImeEscape) + { + if (!is_kbd_ime_unicode(immHkl)) + return immHkl->pImeEscape(hIMC,uEscape,lpData); + else + { + FIXME("A procedure called with W ime back end\n"); + SetLastError(ERROR_CALL_NOT_IMPLEMENTED); + return 0; + } + } + else + return 0; }
/*********************************************************************** @@ -643,11 +654,22 @@ LRESULT WINAPI ImmEscapeW( HKL hKL, HIMC hIMC, UINT uEscape, LPVOID lpData) { - FIXME("(%p, %p, %d, %p): stub\n", - hKL, hIMC, uEscape, lpData - ); - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return 0; + ImmHkl *immHkl = IMM_GetImmHkl(hKL); + TRACE("(%p, %p, %d, %p):\n", hKL, hIMC, uEscape, lpData); + + if (immHkl->hIME && immHkl->pImeEscape) + { + if (is_kbd_ime_unicode(immHkl)) + return immHkl->pImeEscape(hIMC,uEscape,lpData); + else + { + FIXME("W procedure called with A ime back end\n"); + SetLastError(ERROR_CALL_NOT_IMPLEMENTED); + return 0; + } + } + else + return 0; }
/***********************************************************************