Jump to content

GreStrokePath

From EDM2
Revision as of 17:05, 31 December 2019 by Martini (talk | contribs) (Created page with "GreStrokePath converts a path to the envelope of a wide line. This function can be hooked by the presentation driver. ;Simulation support: This function is simulated by a ...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

GreStrokePath converts a path to the envelope of a wide line.

This function can be hooked by the presentation driver.

Simulation support
This function is simulated by a handling routine in the graphics engine.

Syntax

GreStrokePath(hdc, idPath, flOptions, pInstance, lFunction);

Parameters

hdc (HDC) - input
Device context handle.
idPath (LONG) - input
Path ID. The only valid value is 1.
flOptions (ULONG) - input
Reserved. Must be 0.
pInstance (PVOID) - input
Pointer to instance data.
lFunction (ULONG) - input
High-order WORD=flags; low-order WORD=NGreStrokePath.

Return Code

rc (LONG) - returns
Return codes.
This function returns 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_BITMAP_NOT_SELECTED
  • PMERR_COORDINATE_OVERFLOW
  • PMERR_DEV_FUNC_NOT_INSTALLED
  • PMERR_HDC_BUSY
  • PMERR_HRGN_BUSY
  • PMERR_INSUFFICIENT_MEMORY
  • PMERR_INV_COLOR_DATA
  • PMERR_INV_COLOR_INDEX
  • PMERR_INV_COORD_SPACE
  • PMERR_INV_COORDINATE
  • PMERR_INV_FILL_PATH_OPTIONS
  • PMERR_INV_HDC
  • PMERR_INV_HRGN
  • PMERR_INV_IN_AREA
  • PMERR_INV_IN_PATH
  • PMERR_INV_LENGTH_OR_COUNT
  • PMERR_INV_MATRIX_ELEMENT
  • PMERR_INV_MODIFY_PATH_MODE
  • PMERR_INV_PATH_ID
  • PMERR_INV_PATTERN_REF_PT_ATTR
  • PMERR_INV_PICK_APERTURE_POSN
  • PMERR_INV_RECT
  • PMERR_INV_REGION_CONTROL
  • PMERR_INV_TRANSFORM_TYPE
  • PMERR_PATH_LIMIT_EXCEEDED
  • PMERR_PATH_UNKNOWN
  • PMERR_REGION_IS_CLIP_REGION
Refer to the "Error Explanations" section in the Presentation Manager Programming Reference for further explanation.

Remarks

This function converts a path to the envelope of a wide line by using the current geometric line attribute (see Line Attributes). The converted path is filled by using winding mode and the current area attributes (see Area (Pattern) Attributes), and is then drawn. When the path has been drawn, it is deleted. Note that GreStrokePath is equivalent to GreModifyPath followed by GreFillPath. It is provided to allow the presentation driver to optimize its storage.

Note
GreModifyPath and GreStrokePath are the only functions that can construct geometric wide lines.

Sample Code

#define INCL_GRE_PATHS
#include <os2.h>

HDC      hdc;        /*  Device context handle. */
LONG     idPath;     /*  Path ID. The only valid value is 1. */
ULONG    flOptions;  /*  Reserved. Must be 0. */
PVOID    pInstance;  /*  Pointer to instance data. */
ULONG    lFunction;  /*  High-order WORD=flags; low-order WORD=NGreStrokePath. */
LONG     rc;         /*  Return codes. */

rc = GreStrokePath(hdc, idPath, flOptions, pInstance, lFunction);