Пример #1
0
 /// <summary>
 ///     Converts the current <see cref="AppMouseStruct" /> into a <see cref="MouseStruct" />.
 /// </summary>
 /// <returns></returns>
 /// <remarks>
 ///     The AppMouseStruct does not have a timestamp, thus one is generated at the time of this call.
 /// </remarks>
 public MouseStruct ToMouseStruct()
 {
     MouseStruct tmp = new MouseStruct();
     tmp.Point = Point;
     tmp.MouseData = (IntPtr.Size == 4) ? MouseData_x86 : MouseData_x64;
     tmp.Timestamp = Environment.TickCount;
     return tmp;
 }
Пример #2
0
 /// <summary>
 ///     Converts the current <see cref="AppMouseStruct" /> into a <see cref="MouseStruct" />.
 /// </summary>
 /// <returns></returns>
 /// <remarks>
 ///     The AppMouseStruct does not have a timestamp, thus one is generated at the time of this call.
 /// </remarks>
 public MouseStruct ToMouseStruct()
 {
     MouseStruct tmp = new MouseStruct();
     tmp.Point = Point;
     tmp.MouseData = MouseData;
     tmp.Timestamp = Environment.TickCount;
     return tmp;
 }
Пример #3
0
 /// <summary>
 ///     Converts the current <see cref="AppMouseStruct" /> into a <see cref="MouseStruct" />.
 /// </summary>
 /// <returns></returns>
 /// <remarks>
 ///     The AppMouseStruct does not have a timestamp, thus one is generated at the time of this call.
 /// </remarks>
 public MouseStruct ToMouseStruct()
 {
     var tmp = new MouseStruct();
     tmp.Point = Point;
     tmp.MouseData = IntPtr.Size == 4 ? MouseData_x86 : MouseData_x64;
     tmp.Timestamp = Environment.TickCount;
     return tmp;
 }
Пример #4
0
        /// <summary>
        ///     Converts the current <see cref="AppMouseStruct" /> into a <see cref="MouseStruct" />.
        /// </summary>
        /// <returns></returns>
        /// <remarks>
        ///     The AppMouseStruct does not have a timestamp, thus one is generated at the time of this call.
        /// </remarks>
        public MouseStruct ToMouseStruct()
        {
            MouseStruct tmp = new MouseStruct();

            tmp.Point     = Point;
            tmp.MouseData = MouseData;
            tmp.Timestamp = Environment.TickCount;
            return(tmp);
        }
Пример #5
0
        /// <summary>
        ///     Converts the current <see cref="AppMouseStruct" /> into a <see cref="MouseStruct" />.
        /// </summary>
        /// <returns></returns>
        /// <remarks>
        ///     The AppMouseStruct does not have a timestamp, thus one is generated at the time of this call.
        /// </remarks>
        public MouseStruct ToMouseStruct()
        {
            MouseStruct tmp = new MouseStruct();

            tmp.Point     = Point;
            tmp.MouseData = (IntPtr.Size == 4) ? MouseData_x86 : MouseData_x64;
            tmp.Timestamp = Environment.TickCount;
            return(tmp);
        }
        /// <summary>
        ///     Creates <see cref="MouseEventExtArgs" /> from relevant mouse data.
        /// </summary>
        /// <param name="wParam">First Windows Message parameter.</param>
        /// <param name="mouseInfo">A MouseStruct containing information from which to construct MouseEventExtArgs.</param>
        /// <returns>A new MouseEventExtArgs object.</returns>
        private static MouseEventExtArgs FromRawDataUniversal(IntPtr wParam, MouseStruct mouseInfo)
        {
            MouseButtons button = MouseButtons.None;
            short mouseDelta = 0;
            int clickCount = 0;

            bool isMouseButtonDown = false;
            bool isMouseButtonUp = false;


            switch ((long) wParam)
            {
                case Messages.WM_LBUTTONDOWN:
                    isMouseButtonDown = true;
                    button = MouseButtons.Left;
                    clickCount = 1;
                    break;
                case Messages.WM_LBUTTONUP:
                    isMouseButtonUp = true;
                    button = MouseButtons.Left;
                    clickCount = 1;
                    break;
                case Messages.WM_LBUTTONDBLCLK:
                    isMouseButtonDown = true;
                    button = MouseButtons.Left;
                    clickCount = 2;
                    break;
                case Messages.WM_RBUTTONDOWN:
                    isMouseButtonDown = true;
                    button = MouseButtons.Right;
                    clickCount = 1;
                    break;
                case Messages.WM_RBUTTONUP:
                    isMouseButtonUp = true;
                    button = MouseButtons.Right;
                    clickCount = 1;
                    break;
                case Messages.WM_RBUTTONDBLCLK:
                    isMouseButtonDown = true;
                    button = MouseButtons.Right;
                    clickCount = 2;
                    break;
                case Messages.WM_MBUTTONDOWN:
                    isMouseButtonDown = true;
                    button = MouseButtons.Middle;
                    clickCount = 1;
                    break;
                case Messages.WM_MBUTTONUP:
                    isMouseButtonUp = true;
                    button = MouseButtons.Middle;
                    clickCount = 1;
                    break;
                case Messages.WM_MBUTTONDBLCLK:
                    isMouseButtonDown = true;
                    button = MouseButtons.Middle;
                    clickCount = 2;
                    break;
                case Messages.WM_MOUSEWHEEL:
                    mouseDelta = mouseInfo.MouseData;
                    break;
                case Messages.WM_XBUTTONDOWN:
                    button = mouseInfo.MouseData == 1
                        ? MouseButtons.XButton1
                        : MouseButtons.XButton2;
                    isMouseButtonDown = true;
                    clickCount = 1;
                    break;

                case Messages.WM_XBUTTONUP:
                    button = mouseInfo.MouseData == 1
                        ? MouseButtons.XButton1
                        : MouseButtons.XButton2;
                    isMouseButtonUp = true;
                    clickCount = 1;
                    break;

                case Messages.WM_XBUTTONDBLCLK:
                    isMouseButtonDown = true;
                    button = mouseInfo.MouseData == 1
                        ? MouseButtons.XButton1
                        : MouseButtons.XButton2;
                    clickCount = 2;
                    break;

                case Messages.WM_MOUSEHWHEEL:
                    mouseDelta = mouseInfo.MouseData;
                    break;
            }

            var e = new MouseEventExtArgs(
                button,
                clickCount,
                mouseInfo.Point,
                mouseDelta,
                mouseInfo.Timestamp,
                isMouseButtonDown,
                isMouseButtonUp);

            return e;
        }