Jump to content

GreFullArcBoundary

From EDM2
Revision as of 17:16, 31 December 2019 by Martini (talk | contribs) (Created page with "GreFullArcBoundary draws a line by using the current line attributes around the edge of a full arc centered on the current (X,Y) position. The dimensions of the arc are define...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

GreFullArcBoundary draws a line by using the current line attributes around the edge of a full arc centered on the current (X,Y) position. The dimensions of the arc are defined as a multiplier that is applied to the current arc parameters. GreFullArcxxx functions do not affect the current position.

When correlating, the handling routine must return a hit when the pick aperture intersects the boundary. See Mix Modes.

This function can be hooked by the presentation driver.

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

Syntax

GreFullArcBoundary(hdc, fxMultiplier, pInstance, lFunction);

Parameters

hdc (HDC) - input
Device context handle.
fxMultiplier (FIXED) - input
Multiplier.
The value of this parameter defines the size of the required arc in relation to an arc drawn with the current arc parameters. The multiplier is a fixed-point value. The high-order WORD contains the integer portion; the low-order WORD contains the fractional portion. A value of 64KB gives a multiplier of 1. The implementation limit of the multiplier is 255. This value must not be negative.
pInstance (PVOID) - input
Pointer to instance data.
lFunction (ULONG) - input
High-order WORD=flags; low-order WORD=NGreFullArcBoundary.

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_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_MULTIPLIER
  • PMERR_INV_NESTED_FIGURES
  • PMERR_INV_PICK_APERTURE_POSN
  • PMERR_INV_RECT
  • PMERR_NOT_IN_PATH
  • PMERR_PATH_LIMIT_EXCEEDED
  • PMERR_PATH_UNKNOWN
Refer to the "Error Explanations" section in the Presentation Manager Programming Reference for further explanation.

Sample Code

#define INCL_GRE_ARCS
#include <os2.h>

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

rc = GreFullArcBoundary(hdc, fxMultiplier,
       pInstance, lFunction);