GreQueryWidthTable

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

 * 1) define INCL_GRE_STRINGS
 * 2) include 

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);

