GreArc
GreArc draws an arc through three points. These are the current position and the two points specified in the data structure. Upon completion, the current position is the third point of the arc.
- Simulation support
- This function is simulated by a handling routine in the graphics engine.
Syntax
GreArc(hdc, paptlPoint, pInstance, lFunction);
Parameters
- hdc (HDC) - input
- Device context handle.
- paptlPoint (PPOINTL) - input
- Pointer to ArcData array.
Pointer to an array of POINTL structures giving the mid- and end-points of the arc. If the mid-point is coincident with the start or end point, a straight line is drawn from the start point to the end point. If COM_TRANSFORM is not set, the function expects the array of points to be in screen coordinates.
x X-coordinate of point y Y-coordinate of point
- pInstance (PVOID) - input
- Pointer to instance data.
- lFunction (ULONG) - input
- High-order WORD=flags; low order WORD=NGreArc.
Returns
- rc (LONG) - returns
- On completion, this function returns an integer (cHits) indicating, where appropriate, whether correlation hits were detected.
- GPI_OK : Successful. GPI_HITS Successful with correlation hit (returned by display drivers when the correlation 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_INV_COLOR_DATA PMERR_INV_COLOR_INDEX PMERR_INV_COORD_SPACE PMERR_INV_HDC PMERR_INV_IN_AREA PMERR_INV_IN_PATH PMERR_INV_LENGTH_OR_COUNT PMERR_INV_MATRIX_ELEMENT PMERR_INV_PICK_APERTURE_POSN PMERR_INV_RECT PMERR_PATH_LIMIT_EXCEEDED PMERR_PATH_UNKNOWN
Refer to the "Error Explanations" section for further explanation.
Remarks
If GreArc is used within a path definition or an area definition to continue a figure following a GreBoxxxx or GreFullArcxxx function, the error PMERR_INV_NESTED_FIGURES is posted. This is because the GreBoxxxx and GreFullArcxxx functions generate a closed figure within an area or path definition.
Example Code
This function can be hooked by the presentation driver.
#define INCL_GRE_ARCS #include <os2.h> HDC hdc; /* Device context handle. */ PPOINTL paptlPoint; /* Pointer to ArcData array. */ PVOID pInstance; /* Pointer to instance data. */ ULONG lFunction; /* High-order WORD=flags; low order WORD=NGreArc. */ LONG rc; rc = GreArc(hdc, paptlPoint, pInstance, lFunction);