private MouseClickLogger()
        {
            _proc = HookCallback;

            // Don't listen to mouse clicks if debugging. It's a pain in the ass.
            if (!Debugger.IsAttached)
            {
                _hookId = SetHook(_proc);
            }
        }
 private static IntPtr SetHook(LowLevelMouseProc proc)
 {
     using (Process curProcess = Process.GetCurrentProcess())
     {
         using (ProcessModule curModule = curProcess.MainModule)
         {
             return(NativeMethods.SetWindowsHookEx(WH_MOUSE_LL, proc,
                                                   NativeMethods.GetModuleHandle(curModule.ModuleName), 0));
         }
     }
 }