Definition

In most cases, we recommend that you obtain pointer info through the pointer event handlers of your chosen Windows 8 language framework (Windows app using JavaScript, UWP app using C++, C#, or Visual Basic, or UWP app using DirectX with C++).

The core of the Microsoft interactive input device architecture is based on the Universal Serial Bus (USB) standard Device Class Definition for Human Interface Device (HID), which is defined by the Implementers Forum, Inc.

The bounding rectangle of the contact area, using client window coordinates in device-independent pixel (DIP).

Remarks

ContactRect contains the bounding rectangle of the contact area as interpreted by the system. Under some circumstances, such as input prediction, this data can be modified by the system to compensate for hardware latency or message latency due to inherent delays in sensing and processing the pointer location on the digitizer.

The bounding rectangle of the raw input, in device-independent pixel (DIP)

Remarks

ContactRectRaw contains the bounding rectangle of the raw input as reported by the input device. Under some circumstances, such as input prediction, this data can be modified by the system to compensate for hardware latency or message latency due to inherent delays in sensing and processing the pointer location on the digitizer.

Gets a value that indicates whether the pointer input was triggered by the primary action mode of an input device.

public : Platform::Boolean IsLeftButtonPressed { get; }

bool IsLeftButtonPressed();

public bool IsLeftButtonPressed { get; }

Public ReadOnly Property IsLeftButtonPressed As bool

var bool = pointerPointProperties.isLeftButtonPressed;

Value

boolboolbool

True if the primary action mode; otherwise false.

Remarks

Examples of primary action modes for various input devices:

A touch pointer when it is in contact with the digitizer surface.

A pen pointer when the pen tip is in contact with the digitizer surface and no modifying buttons, such as a barrel button (see IsBarrelButtonPressed ), are pressed. An eraser tip does not set this property either (see IsEraser ).

Remarks

The primary pointer is a single pointer (touch, mouse, and pen/stylus) in the current interaction.

For mouse, the primary pointer is the only pointer for which mouse events can be generated.

For touch (where there can be multiple concurrent pointers), the primary pointer is the first contact in an interaction. For any interaction after the first PointerPressed event, IsPrimary returns false.

A new primary pointer is only registered when all contacts in that interaction are removed and a new contact is subsequently detected.

A primary pointer can perform actions that are not available to other pointers. For example, when a primary pointer generates a WM_POINTERDOWN message on an inactive window, a WM_POINTERACTIVATE] message is also sent to that window.

Gets a value that indicates whether the pointer input was triggered by the secondary action mode (if supported) of an input device.

public : Platform::Boolean IsRightButtonPressed { get; }

bool IsRightButtonPressed();

public bool IsRightButtonPressed { get; }

Public ReadOnly Property IsRightButtonPressed As bool

var bool = pointerPointProperties.isRightButtonPressed;

Value

boolboolbool

True if the secondary action mode; otherwise false.

Remarks

Examples of secondary action modes for various input devices:

A touch pointer does not set this property.

A pen pointer when the pen tip is in contact with the digitizer surface and a modifying button, such as a barrel button (see IsBarrelButtonPressed ), is pressed. An eraser tip does not set this property (see IsEraser ).

Gets a value (the raw value reported by the device) that indicates the change in wheel button input from the last pointer event.

public : int MouseWheelDelta { get; }

int32_t MouseWheelDelta();

public int MouseWheelDelta { get; }

Public ReadOnly Property MouseWheelDelta As int

var int = pointerPointProperties.mouseWheelDelta;

Value

intintint

The number of notches or distance thresholds crossed since the last pointer event. The default value is 0.

Remarks

The mouse wheel button has discrete, evenly spaced notches or distance thresholds (also called detents). When you rotate or tilt the wheel, a wheel message is sent as each detent is encountered.

The windows constant, WHEEL_DELTA (defined as a value of 120), describes one detent. Each detent marks the threshold for a single increment of an associated action (for example, scrolling a line or page).

A positive value indicates that the wheel was rotated forward (away from the user) or tilted to the right; a negative value indicates that the wheel was rotated backward (toward the user) or tilted to the left.

Wheel button input is oriented along the vertical axis (rotate forward or backward) or the horizontal axis (tilt left or right). Check IsHorizontalMouseWheel to identify whether the input is along the horizontal axis.

Note

The delta was set to 120 to enable finer-resolution wheels (such as freely-rotating wheels with no notches) that send more messages per rotation, but with smaller values per message.

OrientationOrientationOrientationOrientationOrientation

Gets the counter-clockwise angle of rotation around the major axis of the pointer device (the z-axis, perpendicular to the surface of the digitizer). A value of 0.0 degrees indicates the device is oriented towards the top of the digitizer.

public : float Orientation { get; }

float Orientation();

public float Orientation { get; }

Public ReadOnly Property Orientation As float

var float = pointerPointProperties.orientation;

Value

floatfloatfloat

A value between 0.0 and 359.0 in degrees of rotation. The default value is 0.0.

Gets a value that indicates whether the pointer device rejected the touch contact.

public : Platform::Boolean TouchConfidence { get; }

bool TouchConfidence();

public bool TouchConfidence { get; }

Public ReadOnly Property TouchConfidence As bool

var bool = pointerPointProperties.touchConfidence;

Value

boolboolbool

True if the touch contact was accepted; otherwise false.

Remarks

A device rejects accidental touches and reports this information through the Human Interface Device (HID) confidence usage (see note above). TouchConfidence is set through the value of this usage.

The confidence usage helps improve the accuracy and reliability of accidental touch rejection. (In addition to confidence, additional heuristics are applied to the touch input stream to improve the accuracy of accidental touch rejection.)

Touch input is most often rejected due to palm detection or through input arbitration (such as when pen/stylus proximity overrides touch input).

XTiltXTiltXTiltXTiltXTilt

Gets the plane angle between the Y-Z plane and the plane that contains the Y axis and the axis of the input device (typically a pen/stylus).

public : float XTilt { get; }

float XTilt();

public float XTilt { get; }

Public ReadOnly Property XTilt As float

var float = pointerPointProperties.xTilt;

Value

floatfloatfloat

The value is 0.0 when the finger or pen is perpendicular to the digitizer surface, between 0.0 and 90.0 when tilted to the right of perpendicular, and between 0.0 and -90.0 when tilted to the left of perpendicular. The default value is 0.0.

Remarks

This property is used in conjunction with YTilt to indicate the tilt away from normal of the input device.

YTiltYTiltYTiltYTiltYTilt

Gets the plane angle between the X-Z plane and the plane that contains the X axis and the axis of the input device (typically a pen/stylus).

public : float YTilt { get; }

float YTilt();

public float YTilt { get; }

Public ReadOnly Property YTilt As float

var float = pointerPointProperties.yTilt;

Value

floatfloatfloat

The value is 0.0 when the finger or pen is perpendicular to the digitizer surface, between 0.0 and 90.0 when tilted towards the user, and between 0.0 and -90.0 when tilted away from the user. The default value is 0.0.

Remarks

This property is used in conjunction with XTilt to indicate the tilt away from normal of the input device.

Indicates a usage in a usage page.Usage ID specify a device or property in the usagePage. For example, for touch digitizers this includes tip switch (0x42) to indicate finger contact or tip pressure (0x30).

Indicates a usage in a usage page.Usage ID specify a device or property in the usagePage. For example, for touch digitizers this includes tip switch (0x42) to indicate finger contact or tip pressure (0x30).

Returns

boolboolbool

True if the input data includes usage information; otherwise false.

Remarks

Use HasUsage to query for additional, custom, and device-specific usages or when you need to verify that a device actually supports a property (where PointerPoint and PointerPointProperties return a default value).