void _MouseHookProc(HookData.Mouse x) { bool isMMove = x.Event == HookData.MouseEvent.Move; switch (_block & (BIEvents.MouseClicks | BIEvents.MouseMoving)) { case BIEvents.MouseClicks | BIEvents.MouseMoving: break; case BIEvents.MouseClicks: if (isMMove) { return; } break; case BIEvents.MouseMoving: if (!isMMove) { return; } break; } if (!_DontBlock(x.IsInjected, x.dwExtraInfo, 0, isMMove)) { x.BlockEvent(); } }
internal bool HookProcClickWheel(HookData.Mouse k, TriggerHookContext thc) { //AOutput.Write(k.Event, k.pt); Debug.Assert(!k.IsInjectedByAu); //server must ignore ESubtype subtype; byte data; if (k.IsButton) { if (k.IsButtonUp) { if (k.Event == _upEvent) { _upEvent = 0; if (_upMod == 0 && _upTrigger != null) { thc.args = _upArgs; thc.trigger = _upTrigger; _ResetUp(); } } if (k.Event == _eatUp) { _eatUp = 0; return(true); //To be safer, could return false if AMouse.IsPressed(k.Button), but then can interfere with the trigger action. } return(false); //CONSIDER: _upTimeout. } if (k.Event == _eatUp) { _eatUp = 0; } subtype = ESubtype.Click; TMClick b; switch (k.Event) { case HookData.MouseEvent.LeftButton: b = TMClick.Left; break; case HookData.MouseEvent.RightButton: b = TMClick.Right; break; case HookData.MouseEvent.MiddleButton: b = TMClick.Middle; break; case HookData.MouseEvent.X1Button: b = TMClick.X1; break; default: b = TMClick.X2; break; } data = (byte)b; } else //wheel { subtype = ESubtype.Wheel; TMWheel b; switch (k.Event) { case HookData.MouseEvent.WheelForward: b = TMWheel.Forward; break; case HookData.MouseEvent.WheelBackward: b = TMWheel.Backward; break; case HookData.MouseEvent.WheelLeft: b = TMWheel.Left; break; default: b = TMWheel.Right; break; } data = (byte)b; } return(_HookProc2(thc, false, subtype, k.Event, k.pt, data, 0)); }