Example #1
0
 internal static extern bool GetPointerType(int pointerID, out POINTER_INPUT_TYPE pointerType);
 internal static extern bool GetPointerType(int pointerID, out POINTER_INPUT_TYPE pointerType);
Example #3
0
 private static extern bool InjectTouch(int x, int y, POINTER_INPUT_TYPE pt_input, int pressure, int orientation, int id, int rcContactTop, int rcContactBottom, int rcContactLeft, int rcContactRight, POINTER_FLAGS pointerFlags, TOUCH_MASK touchMask);
        protected PointerTypeInfo TransformPointer(
            PointerData pointerData,
            POINTER_INPUT_TYPE inputType)
        {
            var pointerTypeInfo = new PointerTypeInfo();

            pointerTypeInfo.type = inputType;
            var pointerInfo = new PointerInfo();

            pointerInfo.pointerType   = inputType;
            pointerInfo.pointerId     = pointerData.pointerId;
            pointerInfo.pointerFlags  = pointerData.flags;
            pointerInfo.pixelLocation = pointerData.location;
            switch (inputType)
            {
            case POINTER_INPUT_TYPE.TOUCH:
                pointerTypeInfo.data.touchInfo.pointerInfo = pointerInfo;
                pointerTypeInfo.data.touchInfo.touchMask   = TOUCH_MASK.NONE;
                pointerTypeInfo.data.touchInfo.touchFlags  = (TOUCH_FLAGS)pointerData.pressedButton;
                if (pointerData.width.HasValue && pointerData.height.HasValue)
                {
                    pointerTypeInfo.data.touchInfo.contact = new Rect {
                        left   = pointerTypeInfo.data.touchInfo.pointerInfo.pixelLocation.X - pointerData.width.Value / 2,
                        right  = pointerTypeInfo.data.touchInfo.pointerInfo.pixelLocation.X + pointerData.width.Value / 2,
                        top    = pointerTypeInfo.data.touchInfo.pointerInfo.pixelLocation.Y - pointerData.height.Value / 2,
                        bottom = pointerTypeInfo.data.touchInfo.pointerInfo.pixelLocation.Y + pointerData.height.Value / 2
                    };
                    pointerTypeInfo.data.touchInfo.touchMask |= TOUCH_MASK.CONTACTAREA;
                }

                if (pointerData.pressure.HasValue)
                {
                    pointerTypeInfo.data.touchInfo.pressure   = pointerData.pressure.Value;
                    pointerTypeInfo.data.touchInfo.touchMask |= TOUCH_MASK.PRESSURE;
                }

                if (pointerData.twist.HasValue)
                {
                    pointerTypeInfo.data.touchInfo.orientation = pointerData.twist.Value;
                    pointerTypeInfo.data.touchInfo.touchMask  |= TOUCH_MASK.ORIENTATION;
                }

                break;

            case POINTER_INPUT_TYPE.PEN:
                pointerTypeInfo.data.penInfo.pointerInfo = pointerInfo;
                pointerTypeInfo.data.penInfo.penMask     = PEN_MASK.NONE;
                pointerTypeInfo.data.penInfo.penFlags    = (PEN_FLAGS)pointerData.pressedButton;
                if (pointerData.tiltX.HasValue)
                {
                    pointerTypeInfo.data.penInfo.tiltX    = pointerData.tiltX.Value;
                    pointerTypeInfo.data.penInfo.penMask |= PEN_MASK.TILT_X;
                }

                if (pointerData.tiltY.HasValue)
                {
                    pointerTypeInfo.data.penInfo.tiltY    = pointerData.tiltY.Value;
                    pointerTypeInfo.data.penInfo.penMask |= PEN_MASK.TILT_Y;
                }

                if (pointerData.pressure.HasValue)
                {
                    pointerTypeInfo.data.penInfo.pressure = pointerData.pressure.Value;
                    pointerTypeInfo.data.penInfo.penMask |= PEN_MASK.PRESSURE;
                }

                if (pointerData.twist.HasValue)
                {
                    pointerTypeInfo.data.penInfo.rotation = pointerData.twist.Value;
                    pointerTypeInfo.data.penInfo.penMask |= PEN_MASK.ROTATION;
                }

                break;

            default:
                pointerTypeInfo.data.touchInfo.pointerInfo = pointerInfo;
                pointerTypeInfo.data.touchInfo.touchMask   = TOUCH_MASK.NONE;
                break;
            }

            return(pointerTypeInfo);
        }
Example #5
0
 private static extern bool InjectTouch(int x, int y, POINTER_INPUT_TYPE pt_input, int pressure, int orientation, int id, int rcContactTop, int rcContactBottom, int rcContactLeft, int rcContactRight, POINTER_FLAGS pointerFlags, TOUCH_MASK touchMask);
Example #6
0
 internal static extern bool UnregisterPointerInputTarget(IntPtr hwnd, POINTER_INPUT_TYPE pointerType);
 public static extern bool InitializePointerDeviceInjection(
     [In] POINTER_INPUT_TYPE type,
     [In] uint contactCount,
     [In] IntPtr monitor,
     [In] TOUCH_FEEDBACK visualMode,
     out IntPtr device);
Example #8
0
 internal static extern bool RegisterPointerInputTarget(IntPtr handle, POINTER_INPUT_TYPE pointerType);
Example #9
0
 internal static extern bool UnregisterPointerInputTarget(IntPtr hwnd, POINTER_INPUT_TYPE pointerType);
Example #10
0
 internal static extern bool RegisterPointerInputTarget(IntPtr handle, POINTER_INPUT_TYPE pointerType);
Example #11
0
 public static extern bool GetPointerType(uint pPointerID, out POINTER_INPUT_TYPE pPointerType);
Example #12
0
 public static extern IntPtr CreateSyntheticPointerDevice(POINTER_INPUT_TYPE pointerType,
                                                          ulong maxCount, POINTER_FEEDBACK_MODE mode);