GreDeviceSetCursor

GreDeviceSetCursor sets the cursor bit map that defines the cursor shape.


 * Simulation support: This function is mandatory for display drivers. For other drivers, it is simulated by a handling routine in the graphics engine.

Syntax
GreDeviceSetCursor(hdc, pptlHotSpot, hbm, pInstance, lFunction);

Parameters

 * hdc (HDC) - input
 * The device context handle.


 * pptlHotSpot (PPOINTL) - input
 * A pointer to hot spot coordinates.


 * x
 * X-position of the hotspot within the cursor bit map
 * y
 * Y-position of the hotspot within the cursor bit map.


 * hbm (ULONG) - input
 * Bit-map handle used for the cursor image.


 * pInstance (PVOID) - input
 * A pointer to instance data.


 * lFunction (ULONG) - input
 * High-order WORD=flags; low-order WORD=NGreDeviceSetCursor.

Return Code

 * fSuccess (BOOL) - returns
 * Return codes.


 * On completion, the handling routine must return BOOLEAN (fSuccess).


 * TRUE Successful
 * FALSE Error


 * Possible Errors Detected: When an error is detected, the handling routine must call WinSetErrorInfo to post the condition. Error codes for conditions that the handling routine is expected to check include:
 * PMERR_DEV_FUNC_NOT_INSTALLED
 * PMERR_INV_COORDINATE
 * PMERR_INV_CURSOR_BITMAP
 * PMERR_INV_HDC

Remarks
GreDeviceSetCursor is subject to all clipping.

The handling routine takes the previous cursor bit map and replaces it with the one indicated by hbm. If hbm is NULL, the cursor has no shape and its image is removed from the display screen.

Sample Code

 * 1) define INCL_GRE_BITMAPS
 * 2) include 

HDC       hdc;          /*  The device context handle. */ PPOINTL   pptlHotSpot;  /*  A pointer to hot spot coordinates. */ ULONG     hbm;          /*  Bit-map handle used for the cursor image. */ PVOID     pInstance;    /*  A pointer to instance data. */ ULONG     lFunction;    /*  High-order WORD=flags; low-order WORD=NGreDeviceSetCursor. */ BOOL      fSuccess;     /*  Return codes. */

fSuccess = GreDeviceSetCursor(hdc, pptlHotSpot, hbm, pInstance, lFunction); 