GreQueryWidthTable
Appearance
GreQueryWidthTable stores, at the location addressed by paWidthTable, an array of world coordinates representing the width-table information of the currently selected font.
This function must be supported by the presentation driver. GreQueryWidthTable is called by the function GpiQueryWidthTable.
- Simulation support
- None. This function is mandatory for all drivers.
Syntax
GreQueryWidthTable(hdc, lFirstChar, cWidthTable, paWidthTable, pInstance, lFunction)
Parameters
- hdc (HDC) - input
- Device context handle.
- lFirstChar (LONG) - input
- Code point of the initial character for which width-table information is required.
- cWidthTable (LONG) - input
- Count of widths in the width-table data.
- paWidthTable (PLONG) - input
- Pointer to buffer of width-table data.
- pInstance (PVOID) - input
- Pointer to instance data.
- lFunction (ULONG) - input
- High-order WORD=flags; low-order WORD=NGreQueryWidthTable.
Return Code
- rc (BOOL) - returns
- Return Code.
- On completion, the handling routine must return a BOOLEAN value to indicate success or an error.
- TRUE Successful
- FALSE 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_COORDINATE_OVERFLOW
- PMERR_DEV_FUNC_NOT_INSTALLED
- PMERR_EXCEEDS_MAX_SEG_LENGTH
- PMERR_HDC_BUSY
- PMERR_INSUFFICIENT_MEMORY
- PMERR_INV_CHAR_MODE_ATTR
- PMERR_INV_CODEPAGE
- PMERR_INV_COORD_SPACE
- PMERR_INV_FIRST_CHAR
- PMERR_INV_HDC
- PMERR_INV_LENGTH_OR_COUNT
- PMERR_INV_MATRIX_ELEMENT
- PMERR_INV_SETID
- PMERR_INV_TRANSFORM_TYPE
- Refer to the "Error Explanations" section in the Presentation Manager Programming Reference for further explanation.
Remarks
The handling routine must use GreConvert (see GreConvert) to transform the width-table information from device coordinates to world coordinates.
Sample Code
#define INCL_GRE_STRINGS #include <os2.h> HDC hdc; /* Device context handle. */ LONG lFirstChar; /* Code point of the initial character for which width-table information is required. */ LONG cWidthTable; /* Count of widths in the width-table data. */ PLONG paWidthTable; /* Pointer to buffer of width-table data. */ PVOID pInstance; /* Pointer to instance data. */ ULONG lFunction; /* High-order WORD=flags; low-order WORD=NGreQueryWidthTable. */ BOOL rc; /* Return Code. */ rc = GreQueryWidthTable(hdc, lFirstChar, cWidthTable, paWidthTable, pInstance, lFunction);