protected bool BeginDrag(Control c)
        {
            // Avoid re-entrance;
            if (m_dragControl != null)
            {
                return(false);
            }

            m_startMousePosition = Control.MousePosition;

            if (!User32.DragDetect(c.Handle, StartMousePosition))
            {
                return(false);
            }

            m_dragControl = c;
            c.FindForm().Capture = true;
            AssignHandle(c.FindForm().Handle);
            Application.AddMessageFilter(this);
            return(true);
        }