コード例 #1
0
        public unsafe void WndProc_XMB2(IntPtr msg)
        {
            var             m = (MSG *)msg;
            MSLLHOOKSTRUCT *p = (MSLLHOOKSTRUCT *)m->lParam;

            switch ((WM)m->message)
            {
            case WM.WM_XBUTTONDOWN:
                switch (p->mouseData)
                {
                case XBUTTON2:
                    INLINE_TryStart();
                    break;
                }
                break;

            case WM.WM_MBUTTONUP:
                switch (p->mouseData)
                {
                case XBUTTON2:
                    INLINE_TryStop();
                    break;
                }
                break;
            }
        }
コード例 #2
0
        public static IntPtr MouseCB(int nCode, IntPtr wParam, IntPtr LParam)
        {
            unsafe
            {
                MouseMsg mm = new MouseMsg();

                MSLLHOOKSTRUCT *mp = (MSLLHOOKSTRUCT *)LParam.ToPointer();

                mm.Dx        = (mp->dx) - m_pos.X;
                mm.Dy        = (mp->dy) - m_pos.Y;
                mm.MouseData = (mp->mouseData) >> 16;

                switch (wParam.ToInt32())
                {
                case (int)MouseEvent.WM_LBUTTONDOWN:
                    mm.Flags = (uint)MouseEventFlags.LeftButtonDown;
                    break;

                case (int)MouseEvent.WM_LBUTTONUP:
                    mm.Flags = (uint)MouseEventFlags.LeftButtonUp;
                    break;

                case (int)MouseEvent.WM_MOUSEMOVE:
                    mm.Flags = (uint)MouseEventFlags.MouseMoved;
                    break;

                case (int)MouseEvent.WM_MOUSEWHEEL:
                    mm.Flags = (uint)MouseEventFlags.Wheel;
                    break;

                case (int)MouseEvent.WM_MOUSEHWHEEL:
                    mm.Flags = (uint)MouseEventFlags.HWheel;
                    break;

                case (int)MouseEvent.WM_RBUTTONDOWN:
                    mm.Flags = (uint)MouseEventFlags.RightButtonDown;
                    break;

                case (int)MouseEvent.WM_RBUTTONUP:
                    mm.Flags = (uint)MouseEventFlags.RightButtonUp;
                    break;
                }

                _Host.EnqueueEventMsg(mm);
            }

            return(new IntPtr(1));
        }
コード例 #3
0
        unsafe void WndProc(IntPtr MSG)
        {
            var m  = (MSG *)MSG;
            var sb = new StringBuilder();

            sb.AppendLine($"msg={((WM)m->message).ToString()}");
            switch ((WM)m->message)
            {
            case WM.WM_LBUTTONDOWN:
            case WM.WM_LBUTTONUP:
            case WM.WM_RBUTTONDOWN:
            case WM.WM_RBUTTONUP:
            case WM.WM_MBUTTONDOWN:
            case WM.WM_MBUTTONUP:
            case WM.WM_XBUTTONDOWN:
            case WM.WM_XBUTTONUP:
            case WM.WM_MOUSEMOVE:
            {
                MSLLHOOKSTRUCT *p = (MSLLHOOKSTRUCT *)m->lParam;
                sb.AppendLine($"mdata={(p->mouseData).ToString()}");
            }
            break;

            case WM.WM_KEYDOWN:
            case WM.WM_KEYUP:
            case WM.WM_SYSKEYDOWN:
            case WM.WM_SYSKEYUP:
            {
                KBDLLHOOKSTRUCT *p = (KBDLLHOOKSTRUCT *)m->lParam;
                sb.AppendLine($"vkCode={((Keys)p->vkCode).ToString()}");
            }
            break;

            default:
                break;
            }
            this.textBox1.Text = sb.ToString();
        }