## Presentation Device Driver Reference for OS/2

[prev][next][parent][TOC]

### GreCharStringPos - Parameters

hdc (HDC) - input Device context handle.

pptlStart (PPOINTL) - input Pointer to (X,Y) coordinates of start position.

prclRect (PRECTL) - input Pointer to an opaque or clip rectangle.

The clipping rectangle pointed to by this parameter is defined as a RECTL structure:

xLeft Minimum X-coordinate of rectangle
yBottom Minimum Y-coordinate
xRight Maximum X-coordinate of rectangle
yTop Maximum Y-coordinate

This rectangle, which is in world coordinates, is used as the clipping rectangle or as the background for the string, or both, depending on the value of flOptions. When the CHS_OPAQUE flag is set, normal background mix attributes are ignored and the rectangle is drawn using overpaint and the character background color attribute. When the CHS_OPAQUE is not set, the background is drawn using the normal method. When neither CHS_OPAQUE nor CHS_CLIP are specified, this parameter is ignored. Notice that points on the boundary of this rectangle are considered to be inside the rectangle.

flOptions (ULONG) - input Options flag.

The following flags can be used in combination:

CHS_OPAQUE Background of characters is defined by the rectangle prclRect. The rectangle is to be shaded (with background color and overpaint) before drawing.

CHS_VECTOR Increment vector supplied (pAdx). If 0, pAdx is ignored.

CHS_LEAVEPOS Leave current position at the start of the string.

CHS_CLIP Clip string to rectangle.

CHS_START_XY Start position of the string. When set, the handling routine must draw the string from the position indicated by pptlStart. If this flag is not set, the current position is used.

CHS_ATTR_INFO Attributes to be used. When this flag is set, pAttrs indicates the foreground and background colors. Current attributes are unchanged. If the flag is not set, the string is drawn using the current character attributes. See Character Attributes.

CHS_UNDERSCORE Underscore the characters. See the FATTRS structure in GreCreateLogicalFont.

CHS_STRIKEOUT Overstrike the characters.

cChars (LONG) - input Number of characters in the string.

pchString (PCH) - input Pointer to the character string.

pAdx (PLONG) - input Pointer to Increment array.

Pointer to an array of LONG integers, one element for each character in the string. When CHS_VECTOR is set, this array is used to set the spacing between characters. Each element is the distance in world coordinates from the bottom-left corner of the corresponding character in the string to the bottom-left corner of the next. The distance is measured along the baseline for left-to-right and right-to-left character directions, and along the shear line for top-to-bottom and bottom-to-top character directions. The final element is used to reposition the current position, when necessary.

pAttrs (PCSP_INFO) - input Pointer to attributes.

Pointer to a CSP_INFO structure. This structure contains the attributes to be used to draw the string when the CHS_ATTR_INFO flag is set. These do not alter the current character attributes (see Character Attributes). The CSP_ INFO structure is defined as:

cSize Number of bytes in structure
lColor Use foreground color
lBackColor Use background color

pInstance (PVOID) - input Pointer to instance data.

lFunction (ULONG) - input High-order WORD=flags; low-order WORD= NGreCharStringPos.

rc (LONG) - returns Return Codes.

On completion, the handling routine must return a LONG value (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_COORDINATE_OVERFLOW
PMERR_DEV_FUNC_NOT_INSTALLED
PMERR_EXCEEDS_MAX_SEG_LENGTH
PMERR_FONT_AND_MODE_MISMATCH
PMERR_HDC_BUSY
PMERR_HRGN_BUSY
PMERR_HUGE_FONTS_NOT_SUPPORTED
PMERR_INSUFFICIENT_MEMORY
PMERR_INV_HDC
PMERR_INV_IN_AREA
PMERR_INV_LENGTH_OR_COUNT
PMERR_PATH_LIMIT_EXCEEDED

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