Ejemplo n.º 1
0
        private static IntPtr MsLLHookCallback(int nCode, HOOKPROC wParam, TagMSLLHOOKSTRUCT lParam)
        {
            MouseEventArgs MsEventArgs = new MouseEventArgs();

            MsEventArgs.LowLevelMsInfo.dwExtraInfo = lParam.dwExtraInfo;
            MsEventArgs.LowLevelMsInfo.flags       = lParam.flags;
            MsEventArgs.LowLevelMsInfo.mouseData   = lParam.mouseData;
            MsEventArgs.LowLevelMsInfo.pt          = lParam.pt;
            MsEventArgs.LowLevelMsInfo.time        = lParam.time;
            switch (wParam)
            {
            case HOOKPROC.WM_LBUTTONDOWN:
                OnMouseLBtnDownEvent?.Invoke(nCode, MsEventArgs);
                break;

            case HOOKPROC.WM_LBUTTONUP:
                OnMouseLBtnUpEvent?.Invoke(nCode, MsEventArgs);
                break;

            case HOOKPROC.WM_RBUTTONDOWN:
                OnMouseRBtnDownEvent?.Invoke(nCode, MsEventArgs);
                break;

            case HOOKPROC.WM_RBUTTONUP:
                OnMouseRBtnUpEvent?.Invoke(nCode, MsEventArgs);
                break;
            }
            return(CallNextHookEx(_LowLevelMsHookID, nCode, wParam, lParam));
        }
Ejemplo n.º 2
0
 private static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode, HOOKPROC wParam, [In] TagMSLLHOOKSTRUCT lParam);