Jump to content

GreSetPel

From EDM2

GreSetPel sets a pel to the current line attribute, color, and mix.

This function must be supported by the presentation driver. GreSetPel is called by the function GpiSetPel, and is used to set the value of a pel at a specified (X,Y) coordinate within a device context. This function can be handled by bit map-simulation.

Simulation support
None. This function is mandatory for all drivers.

Syntax

GreSetPel(hdc, pptlPel, pInstance, lFunction);

Parameters

hdc (HDC) - input
Device context handle.
pptlPel (PPOINTL) - input
Pointer.

Pointer to pel position in world or screen coordinates.

pInstance (PVOID) - input
Pointer to instance data.
lFunction (ULONG) - input
High-order WORD=flags; low-order WORD=NGreSetPel.

Returns

rc (LONG) - returns
Return codes.

On completion, the handling routine must return a LONG integer (cHits) indicating, where appropriate, whether correlation hits were detected:

  • GPI_OK Successful
  • GPI_HITS Successful with correlate hit (returned by the display driver when the correlate flag is ON, and a hit is detected)
  • GPI_ERROR 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_BITMAP_NOT_SELECTED
  • PMERR_COORDINATE_OVERFLOW
  • PMERR_DEV_FUNC_NOT_INSTALLED
  • PMERR_HDC_BUSY
  • PMERR_INV_COLOR_DATA
  • PMERR_INV_COLOR_INDEX
  • PMERR_INV_COORD_SPACE
  • PMERR_INV_COORDINATE
  • PMERR_INV_HDC
  • PMERR_INV_IN_AREA
  • PMERR_INV_IN_PATH
  • PMERR_INV_LENGTH_OR_COUNT
  • PMERR_INV_PICK_APERTURE_POSN
  • PMERR_INV_RECT

Refer to the "Error Explanations" section in the Presentation Manager Programming Reference for further explanation.

Sample

#define INCL_GRE_BITMAPS
#include <os2.h>

HDC        hdc;        /*  Device context handle. */
PPOINTL    pptlPel;    /*  Pointer. */
PVOID      pInstance;  /*  Pointer to instance data. */
ULONG      lFunction;  /*  High-order WORD=flags; low-order WORD=NGreSetPel. */
LONG       rc;         /*  Return codes. */

rc = GreSetPel(hdc, pptlPel, pInstance, lFunction);

Remarks

If COM_TRANSFORM is set, the pel position is expected in world coordinates. If COM_TRANSFORM is not set, the pel position is expected in screen coordinates. This function is subject to all usual clipping. No error is returned when the point is clipped.