Esempio n. 1
0
        private void StartHookMessages()
        {
            GC.KeepAlive(this);
            lock(this)
            {
                if (_mouseHookHandle != IntPtr.Zero)
                    return;

                if (_thisProcessID == 0)
                    Win32Calls.GetWindowThreadProcessId(new HandleRef(_control, _control.Handle), out _thisProcessID);

                MouseHookObject obj = new MouseHookObject(this);
                Win32Calls.HookProc mouseHookProc = new Win32Calls.HookProc(obj.Callback);
                _mouseHookRoot = GCHandle.Alloc(mouseHookProc);

                _mouseHookHandle = Win32Calls.SetWindowsHookEx(Win32Calls.WH_MOUSEPROC, mouseHookProc, (IntPtr)0, Win32Calls.GetCurrentThreadId());
            }
        }
Esempio n. 2
0
        private void StartHookMessages()
        {
            GC.KeepAlive(this);
            lock (this)
            {
                if (_mouseHookHandle != IntPtr.Zero)
                {
                    return;
                }

                if (_thisProcessID == 0)
                {
                    Win32Calls.GetWindowThreadProcessId(new HandleRef(_control, _control.Handle), out _thisProcessID);
                }

                MouseHookObject     obj           = new MouseHookObject(this);
                Win32Calls.HookProc mouseHookProc = new Win32Calls.HookProc(obj.Callback);
                _mouseHookRoot = GCHandle.Alloc(mouseHookProc);

                _mouseHookHandle = Win32Calls.SetWindowsHookEx(Win32Calls.WH_MOUSEPROC, mouseHookProc, (IntPtr)0, Win32Calls.GetCurrentThreadId());
            }
        }
        private void HookMouse()
        {
            lock (this)
            {
                if (_mouseHookHandle != IntPtr.Zero)
                {
                    return;
                }

                if (ThisProcessId == 0)
                {
                    NativeMethods.GetWindowThreadProcessId(new HandleRef(_control, _control.Handle), out ThisProcessId);
                }

                NativeMethods.HookProc hook = new MouseHookObject(this).Callback;
                _mouseHookRoot = GCHandle.Alloc(hook);

                _mouseHookHandle = NativeMethods.SetWindowsHookEx(
                    NativeMethods.WH_MOUSE,
                    hook,
                    NativeMethods.NullHandleRef,
                    NativeMethods.GetCurrentThreadId());
                Debug.Assert(_mouseHookHandle != IntPtr.Zero, "Failed to install mouse hook");
            }
        }
 private void HookMouse()
 {
     GC.KeepAlive(this);
     lock (this)
     {
         if (this.mouseHookHandle == IntPtr.Zero)
         {
             if (this.thisProcessID == 0)
             {
                 System.Windows.Forms.SafeNativeMethods.GetWindowThreadProcessId(new HandleRef(this.control, this.control.Handle), out this.thisProcessID);
             }
             MouseHookObject obj1 = new MouseHookObject(this);
             System.Windows.Forms.NativeMethods.HookProc proc = new System.Windows.Forms.NativeMethods.HookProc(obj1.Callback);
             this.mouseHookRoot = GCHandle.Alloc(proc);
             this.mouseHookHandle = System.Windows.Forms.UnsafeNativeMethods.SetWindowsHookEx(7, proc, System.Windows.Forms.NativeMethods.NullHandleRef, System.Windows.Forms.SafeNativeMethods.GetCurrentThreadId());
         }
     }
 }