Esempio n. 1
0
        /// <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));
        }