DrvSetPointerShape (Compact 2013)

3/26/2014

This function requests the driver to take the pointer off the display if the driver has drawn it there, and to attempt to set a new pointer shape, and put the new pointer on the display at a specified position.

Syntax

ULONG DrvSetPointerShape(
  SURFOBJ* pso,
  SURFOBJ* psoMask,
  SURFOBJ* psoColor,
  XLATEOBJ* pxlo,
  LONG xHot,
  LONG yHot,
  LONG x,
  LONG y,
  RECTL* prcl,
  FLONG fl
);

Parameters

  • pso
    [in] Pointer to a SURFOBJ structure that describes the surface on which to draw.
  • psoMask
    [in] Pointer to a SURFOBJ structure that defines the AND-XOR mask. The dimensions of this bitmap determine the size of the pointer. There are no implicit constraints on pointer sizes, but optimal pointer pixel sizes are 32 x 32, 48 x 48, and 64 x 64. Must be NULL if psoColor represents a 32 bits per pixel (bpp) bitmap with alpha channel transparency.
  • psoColor
    [in] Pointer to a SURFOBJ structure that defines the colors for a color pointer. If this parameter is NULL, the pointer is monochrome. The pointer bitmap has the same width as psoMask and half the height. If this represents a 32 bpp bitmap with an alpha channel for transparency information then psoMask must be NULL.
  • pxlo
    [in] Pointer to a XLATEOBJ structure that defines the colors in psoColor.
  • xHot
    [in] X position of the pointer's hot spot relative to its upper-left pixel. The pixel indicated by the hot spot should be positioned at the new pointer position.
  • yHot
    [in] Y position of the pointer's hot spot relative to its upper-left pixel. The pixel indicated by the hot spot should be positioned at the new pointer position.
  • x
    [in] X coordinate of the new pointer position.
  • y
    [in] Y coordinate of the new pointer position.
  • prcl
    [in] Location where the driver should write a rectangle that specifies a tight bound for the visible portion of the pointer.
  • fl
    [in] Ignored, set to NULL.

Return Value

The following table shows the possible return values. The return value can be one of these values.

Value

Description

SPS_ACCEPT_NOEXCLUDE

Driver accepts the shape. There is in-hardware support for the shape, and GDI is not concerned about other drawings overwriting the pointer.

SPS_ERROR

Driver normally supports this shape, but failed for unspecified reasons.

Remarks

The iUniq members of the SURFOBJ structures to which psoMask and psoColor point are unique for unique pointers. The driver can use this information in conjunction with these structures' unique dhsurf handles as cache keys for cursor caching.

Requirements

Header

winddi.h

Library

Ddi_ati_lib.lib,
Ddi_flat_lib.lib,
Ddi_gx_lib.lib,
Ddi_mq200_lib.lib,
Ddi_nop_lib.lib,
Ddi_rflat_lib.lib,
Ddi_rgx_lib.lib,
Ddi_tvia5_lib.lib

See Also

Reference

Display Driver Functions
DrvEnablePDEV
DrvMovePointer
XLATEOBJ