public bool isFlag(MouseState.Flags flags, WPARAM wParam, uint code1, uint code2) { if ((listener.Handler & flags) != 0 && (SysMessages.EqOr(wParam, code1, code2))) { return(true); } return(false); }
protected bool isLMR(WPARAM wParam) { if (SysMessages.EqOr(wParam, SysMessages.WM_LBUTTONDOWN, SysMessages.WM_LBUTTONUP, SysMessages.WM_MBUTTONDOWN, SysMessages.WM_MBUTTONUP, SysMessages.WM_RBUTTONDOWN, SysMessages.WM_RBUTTONUP)) { return(true); } return(false); }
/// <param name="nCode">A code that uses to determine how to process the message.</param> /// <param name="wParam">The identifier of the mouse message.</param> /// <param name="lParam">A pointer to an MSLLHOOKSTRUCT structure.</param> /// <returns></returns> public override FilterResult msg(int nCode, WPARAM wParam, LPARAM lParam) { if (Data == null || !SysMessages.EqOr(wParam, SysMessages.WM_MOUSEWHEEL)) { //TODO: SysMessages.WM_MOUSEHWHEEL return(FilterResult.Continue); } var llhook = getMSLLHOOKSTRUCT(lParam); uint delta = llhook.time - prevStamp; var v = (TData)Data; if (delta > v.limit) { count = 0; } else { ++count; } if (count > v.capacity) { LSender.Send(this, $"Scroll has been filtered {wParam}/{count} = {v.capacity}:{v.limit}", Message.Level.Info); ((IMouseListenerSvc)this).trigger(); return(FilterResult.Abort); } //if(delta < v.acceleration && count > v.capacity) { // ++accelerationCount; //} LSender.Send(this, $"MouseData: count {count} - delta {delta}", Message.Level.Trace); prevStamp = llhook.time; return(FilterResult.Continue); }