static void DefaultIMEComposition(HIMC hIMC, HWND hwnd, LPARAM lParam) { TRACE("IME message WM_IME_COMPOSITION 0x%lx\n", lParam); if (lParam & GCS_RESULTSTR) { LPCOMPOSITIONSTRING compstr; LPBYTE compdata; LPWSTR ResultStr; HIMCC newCompStr; LPINPUTCONTEXT lpIMC; lpIMC = LockRealIMC(hIMC); if (lpIMC == NULL) return; TRACE("Posting result as IME_CHAR\n"); compdata = ImmLockIMCC(lpIMC->hCompStr); compstr = (LPCOMPOSITIONSTRING)compdata; ResultStr = (LPWSTR)(compdata + compstr->dwResultStrOffset); GenerateIMECHARMessages(hIMC, ResultStr, compstr->dwResultStrLen); ImmUnlockIMCC(lpIMC->hCompStr); /* clear the buffer */ newCompStr = updateResultStr(lpIMC->hCompStr, NULL, 0); ImmDestroyIMCC(lpIMC->hCompStr); lpIMC->hCompStr = newCompStr; UnlockRealIMC(hIMC); } else UpdateDefaultIMEWindow(hIMC, hwnd); }
static void DefaultIMEStartComposition(HIMC hIMC, HWND hwnd ) { TRACE("IME message WM_IME_STARTCOMPOSITION\n"); UpdateDefaultIMEWindow(hIMC, hwnd); }
static void DefaultIMEComposition(HIMC hIMC, HWND hwnd, LPARAM lParam) { TRACE("IME message WM_IME_COMPOSITION 0x%lx\n", lParam); if (!(lParam & GCS_RESULTSTR)) UpdateDefaultIMEWindow(hIMC, hwnd); }