/// <summary>Pres the process message.</summary> /// <param name="m">The m.</param> /// <returns></returns> public override bool PreProcessMessage(ref Message m) { /* * Get the next message in the queue. fResult receives false if WM_QUIT is encountered */ try { var fResult = pMsgPump.PeekMessageW(out var pumpMsg, m_pTSFEditWnd.Handle, (uint)User32.WindowMessage.WM_KEYDOWN, (uint)User32.WindowMessage.WM_KEYUP, User32.PM.M_NOREMOVE); switch (pumpMsg.message) { case (uint)User32.WindowMessage.WM_KEYDOWN: // does an ime want it? if (pKeyMgr.TestKeyDown(pumpMsg.wParam, pumpMsg.lParam) && pKeyMgr.KeyDown(pumpMsg.wParam, pumpMsg.lParam)) { return(true); } break; case (uint)User32.WindowMessage.WM_KEYUP: // does an ime want it? if (pKeyMgr.TestKeyUp(pumpMsg.wParam, pumpMsg.lParam) && pKeyMgr.KeyUp(pumpMsg.wParam, pumpMsg.lParam)) { return(true); } break; } } catch { } return(base.PreProcessMessage(ref m)); }