bool IMessageFilter.PreFilterMessage(ref Message m)
{
if (m.Msg == (int)Msgs.WM_MOUSEMOVE)
this.OnDragging();
else if (m.Msg == (int)Msgs.WM_LBUTTONUP)
this.EndDrag(false);
else if (m.Msg == (int)Msgs.WM_CAPTURECHANGED)
this.EndDrag(true);
else if (m.Msg == (int)Msgs.WM_KEYDOWN && (int)m.WParam == (int)Keys.Escape)
this.EndDrag(true);
return this.OnPreFilterMessage(ref m);
}