/// <summary> /// This method processes the data from the hook and initiates event firing. /// </summary> /// <param name="wParam">The first Windows Messages parameter.</param> /// <param name="lParam">The second Windows Messages parameter.</param> /// <returns> /// True - The hook will be passed along to other applications. /// <para> /// False - The hook will not be given to other applications, effectively blocking input. /// </para> /// </returns> protected override bool ProcessCallback(int wParam, System.IntPtr lParam) { KeyEventArgsExt e = KeyEventArgsExt.FromRawData(wParam, lParam, IsGlobal); m_hksCollection.OnKey(e); //Can bypass the base by setting the 3 Invoke methods to protected, which will reduce having to create KeyEventArgsExt twice. return(base.ProcessCallback(wParam, lParam)); }