bool IMessageFilter.PreFilterMessage(ref Message m) { if ((m.Msg >= 0x100) && (m.Msg <= 0x109)) { this._lastKeyboardMessage = new WindowsMessage(m); } return false; }
public static void Run(bool filterInput) { WindowsMessage msg = new WindowsMessage(); while (NativeMethods.GetMessage(ref msg, IntPtr.Zero, 0, 0) > 0) { if ((!filterInput || (((msg.Message < 0x100) || (msg.Message > 0x109)) && ((msg.Message < 0x200) || (msg.Message > 0x20d)))) && ((msg.Message < 160) || (msg.Message > 0xad))) { NativeMethods.TranslateMessage(ref msg); NativeMethods.DispatchMessage(ref msg); } } }
public static extern int TranslateMessage(ref WindowsMessage msg);
public static extern int GetMessage(ref WindowsMessage msg, IntPtr hWnd, uint wMsgFilterMin, uint wMsgFilterMax);
public static extern IntPtr DispatchMessage(ref WindowsMessage msg);