private static IntPtr SetHook(LowLevelMouseProc proc) { using (Process curProcess = Process.GetCurrentProcess()) using (ProcessModule curModule = curProcess.MainModule) { return(SetWindowsHookEx(WH_MOUSE_LL, proc, WinApiFunctions.GetModuleHandle(curModule.ModuleName), 0)); } }
private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam) { if (nCode >= 0) { MOUSEHOOKSTRUCT pMouseStruct = (MOUSEHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(MOUSEHOOKSTRUCT)); CallMouseEvent((MouseEvents)wParam, pMouseStruct, NativeMethods.GET_WHEEL_DELTA_WPARAM(wParam)); } return(WinApiFunctions.CallNextHookEx(_hookID, nCode, wParam, lParam)); }
public void Stop() { WinApiFunctions.UnhookWindowsHookEx(_hookID); }