Ejemplo n.º 1
0
        /// <summary>
        /// The callback for the mouse hook
        /// </summary>
        /// <param name="code">The hook code, if it isn't >= 0, the function shouldn't do anyting</param>
        /// <param name="wParam">The event type</param>
        /// <param name="lParam">The keyhook event information</param>
        /// <returns></returns>
        public int hookProc(int code, IntPtr wParam, IntPtr lParam)
        {
            mouseHookStruct MyMouseHookStruct = (mouseHookStruct)Marshal.PtrToStructure(lParam, typeof(mouseHookStruct));

            if (code >= 0)
            {
                MouseEventArgs mea = new MouseEventArgs(MouseButtons.None, MyMouseHookStruct.dwExtraInfo, MyMouseHookStruct.pt.x, MyMouseHookStruct.pt.y, wParam.ToInt32());
                if (MouseEvent != null)
                {
                    MouseEvent(this, mea);
                }
                return(code);
            }
            Thread.Sleep(10);
            return(CallNextHookEx(hhook, code, wParam, lParam));
        }
Ejemplo n.º 2
0
 IntPtr mouseHookProc(int code, IntPtr wParam, ref mouseHookStruct lParam)
 {
     if (code >= 0)
     {
         if (0 == (lParam.flags & LLKHF_INJECTED))
         {
             llMouseEventArgs mea = new llMouseEventArgs(lParam.point);
             MouseMove(this, mea);
             if (mea.Handled)
             {
                 return((IntPtr)1);
             }
         }
         else
         {
             lParam.flags ^= LLKHF_INJECTED;
         }
     }
     return(NativeMethods.CallNextHook(mouseHook, code, wParam, ref lParam));
 }
Ejemplo n.º 3
0
 static extern int CallNextHookEx(IntPtr hhk, int code, int wParam, ref mouseHookStruct lParam);
Ejemplo n.º 4
0
    public int mouseHookProc(int Code, int wParam, ref mouseHookStruct lParam)
    {
        if (Code >= 0)
        {
            switch (wParam)
            {
            case WM_MBUTTONDOWN:
            {
                if (MouseDown != null)
                {
                    MouseEventArgs mArg = new MouseEventArgs(MouseButtons.Middle, 1, lParam.pt.x, lParam.pt.y, 0);
                    MouseDown(this, mArg);
                }
                break;
            }

            case WM_LBUTTONDOWN:
            {
                if (MouseDown != null)
                {
                    MouseEventArgs mArg = new MouseEventArgs(MouseButtons.Left, 1, lParam.pt.x, lParam.pt.y, 0);
                    MouseDown(this, mArg);
                }
                break;
            }

            case WM_RBUTTONDOWN:
            {
                if (MouseDown != null)
                {
                    MouseEventArgs mArg = new MouseEventArgs(MouseButtons.Right, 1, lParam.pt.x, lParam.pt.y, 0);
                    MouseDown(this, mArg);
                }
                break;
            }

            case WM_MBUTTONUP:
            {
                if (MouseUp != null)
                {
                    MouseEventArgs mArg = new MouseEventArgs(MouseButtons.Middle, 1, lParam.pt.x, lParam.pt.y, 0);
                    MouseUp(this, mArg);
                }
                break;
            }

            case WM_LBUTTONUP:
            {
                if (MouseUp != null)
                {
                    MouseEventArgs mArg = new MouseEventArgs(MouseButtons.Left, 1, lParam.pt.x, lParam.pt.y, 0);
                    MouseUp(this, mArg);
                }
                break;
            }

            case WM_RBUTTONUP:
            {
                if (MouseUp != null)
                {
                    MouseEventArgs mArg = new MouseEventArgs(MouseButtons.Right, 1, lParam.pt.x, lParam.pt.y, 0);
                    MouseUp(this, mArg);
                }
                break;
            }

            case WM_MOUSEMOVE:
            {
                if (MouseMove != null)
                {
                    MouseEventArgs mArg = new MouseEventArgs(MouseButtons.None, 0, lParam.pt.x, lParam.pt.y, 0);
                    MouseMove(this, mArg);
                }
                break;
            }

            case WM_MOUSEWHEEL:
            {
                if (MouseWheel != null)
                {
                    MouseEventArgs mArg = new MouseEventArgs(MouseButtons.None, 0, lParam.pt.x, lParam.pt.y, lParam.mouseData / 0xFFFF);
                    MouseWheel(this, mArg);
                }
                break;
            }

            case WM_MBUTTONDBLCLK:
            {
                if (MouseDown != null)
                {
                    MouseEventArgs mArg = new MouseEventArgs(MouseButtons.Middle, 2, lParam.pt.x, lParam.pt.y, 0);
                    MouseDouble(this, mArg);
                }
                break;
            }

            case WM_LBUTTONDBLCLK:
            {
                if (MouseDown != null)
                {
                    MouseEventArgs mArg = new MouseEventArgs(MouseButtons.Left, 2, lParam.pt.x, lParam.pt.y, 0);
                    MouseDouble(this, mArg);
                }
                break;
            }

            case WM_RBUTTONDBLCLK:
            {
                if (MouseDown != null)
                {
                    MouseEventArgs mArg = new MouseEventArgs(MouseButtons.Right, 2, lParam.pt.x, lParam.pt.y, 0);
                    MouseDouble(this, mArg);
                }
                break;
            }
            }
        }
        return(CallNextHookEx(Hook, Code, wParam, ref lParam));
    }