/// <summary> /// Install low level mouse hook /// </summary> /// <param name="mouseHookCallbackFunc">Callback function</param> public void Install() { hookHandler = HookFunc; hookID = SetHook(hookHandler); }
/// <summary> /// Sets hook and assigns its ID for tracking /// </summary> /// <param name="proc">Internal callback function</param> /// <returns>Hook ID</returns> private IntPtr SetHook(WinAPI.MouseHookHandler proc) { using (ProcessModule module = Process.GetCurrentProcess().MainModule) return(WinAPI.SetWindowsHookEx(WinAPI.WH_MOUSE_LL, proc, WinAPI.GetModuleHandle(module.ModuleName), 0)); }