Jump to content

GrePolyMarker

From EDM2
Revision as of 15:04, 31 December 2019 by Martini (talk | contribs) (Created page with "GrePolyMarker draws a sequence of one or more markers. The first marker is drawn at the current (X,Y) position. Subsequent markers are drawn at the specified (X,Y) positions t...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

GrePolyMarker draws a sequence of one or more markers. The first marker is drawn at the current (X,Y) position. Subsequent markers are drawn at the specified (X,Y) positions that indicate the centers of the markers. Upon completion, the current (X,Y) position is the center of the last marker.

This function must be supported by the presentation driver. GrePolyMarker is called by GpiPolyMarker and GpiMarker. GrePolyMarker is used to render one or more markers. The first marker is drawn at the current position and the positions of any subsequent markers must be specified.

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

Syntax

GrePolyMarker(hdc, paptlPoint, cPoints, pInstance, lFunction);

Parameters

hdc (HDC) - input
Device context handle.
paptlPoint (PPOINTL) - input
Pointer to points array.
An array of (cPoints) (X,Y) pairs that contain the (X,Y) coordinates of the markers.
cPoints (LONG) - input
Number of markers to be drawn.
When this is passed as NULL, the handling routine takes no action except to return Successful.
pInstance (PVOID) - input
Pointer to instance data.
lFunction (ULONG) - input
High-order WORD=flags; low-order WORD=NGrePolyMarker.

Return Code

rc (LONG) - returns
Return Code.
On completion, the handling routine must return an integer (cHits) indicating, where appropriate, whether correlation hits were detected:
  • GPI_OK Successful
  • GPI_HITS Successful with correlate hit (returned by display drivers 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_BASE_ERROR
  • PMERR_COORDINATE_OVERFLOW
  • PMERR_EXCEEDS_MAX_SEG_LENGTH
  • PMERR_HDC_BUSY
  • PMERR_HRGN_BUSY
  • PMERR_HUGE_FONTS_NOT_SUPPORTED
  • PMERR_INSUFFICIENT_MEMORY
  • PMERR_INV_IN_AREA
  • PMERR_INV_MARKER_SYMBOL_ATTR
  • PMERR_PATH_LIMIT_EXCEEDED
  • PMERR_UNSUPPORTED_ATTR
  • PMERR_UNSUPPORTED_ATTR_VALUE
Refer to the "Error Explanations" section in the Presentation Manager Programming Reference for further explanation.


Remarks

When COM_TRANSFORM is not set, the function expects the array of points to be in screen coordinates.

Note
GrePolyMarker has no related functions.

Sample Code

#define INCL_GRE_MARKERS
#include <os2.h>

HDC        hdc;         /*  Device context handle. */
PPOINTL    paptlPoint;  /*  Pointer to points array. */
LONG       cPoints;     /*  Number of markers to be drawn. */
PVOID      pInstance;   /*  Pointer to instance data. */
ULONG      lFunction;   /*  High-order WORD=flags; low-order WORD=NGrePolyMarker. */
LONG       rc;          /*  Return Code. */

rc = GrePolyMarker(hdc, paptlPoint, cPoints, pInstance, lFunction);