private IntPtr KeyboardHookProc(int nCode, IntPtr wParam, IntPtr lParam) { GC.KeepAlive(this); if (nCode == 0) // HC_ACTION { if (ProcessMessage(wParam, lParam)) { return((IntPtr)1); } } return(Win32Calls.CallNextHookEx(new HandleRef(this, _keyboardHookHandle), nCode, wParam, lParam)); }
private IntPtr MouseHookProc(int nCode, IntPtr wParam, IntPtr lParam) { GC.KeepAlive(this); if (nCode == 0) // HC_ACTION { Win32Calls.CMHSTRUCT mouseHookStruct = (Win32Calls.CMHSTRUCT)Marshal.PtrToStructure(lParam, typeof(Win32Calls.CMHSTRUCT)); if (ProcessMessage(mouseHookStruct.hwnd, (uint)wParam, mouseHookStruct.pt, mouseHookStruct.wHitTestCode)) { return((IntPtr)1); } } return(Win32Calls.CallNextHookEx(new HandleRef(this, _mouseHookHandle), nCode, wParam, lParam)); }
private IntPtr MessageHookProc(int nCode, IntPtr wParam, IntPtr lParam) { GC.KeepAlive(this); if (nCode >= 0) { Win32Calls.CWPSTRUCT msgHookStruct = (Win32Calls.CWPSTRUCT)Marshal.PtrToStructure(lParam, typeof(Win32Calls.CWPSTRUCT)); if (ProcessMessage(msgHookStruct.hwnd, msgHookStruct.message, msgHookStruct.wParam, msgHookStruct.lParam)) { return((IntPtr)1); } } return(Win32Calls.CallNextHookEx(new HandleRef(this, _messageHookHandle), nCode, wParam, lParam)); }