Share via


FDGETFONTTABLE (Compact 2013)

3/28/2014

The FDGETFONTTABLE function accesses specific tables in a font description file.

Syntax

LONG  FDGETFONTTABLE (
    ULONG_PTR iFile,
    ULONG ulFont,
        ULONG ulTag,
    PTRDIFF dpStart,
    ULONG cjBuf,
    BYTE *pjBuf,
    PBYTE *ppjTable,
    ULONG *pcjTable
);

Parameters

  • iFile
    [in] Pointer to a driver-defined value that identifies the driver-provided font file. This pointer is obtained from FDLOADFONTFILE.
  • ulFont
    [in] Specifies the one-based index of the driver font.
  • ulTag
    [in] Specifies the table to access. If ulTag is zero, the driver should return access to the whole file.
  • dpStart
    [in] Specifies the offset from the beginning of the tables from which to begin access. If ulTag is zero, dpStart is the offset from the beginning of the file.
  • cjBuf
    [in] Specifies zero, or the size, in bytes, of the buffer to which pjBuf points.
  • pjBuf
    [out] If not NULL, points to the buffer into which the driver should copy the table or font data.
  • ppjTable
    [out] If not NULL, points to the location in which the driver should return the address of the table or font data.
  • pcjTable
    [out] If not NULL, points to the location in which the driver should return the length in bytes of the table or font data to which ppjTable points.

Return Value

If pjBuf is NULL, FDGETFONTTABLE returns the number of bytes required for the buffer to hold the whole table. This is the same as the value returned in pcjTable.

If pjBuf is not NULL, FDGETFONTTABLE returns the number of bytes copied.

If an error occurs, FDGETFONTTABLE returns FD_ERROR.

Remarks

You must implement FDGETFONTTABLE in TrueType font drivers.

There are two ways that you can request FDGETFONTTABLE to return table data or font data:

  • When neither cjBuf nor pjBuf are NULL, the driver should copy the contents of the requested table into the buffer to which pjBuf points. In this situation, ppjTable and pcjTable will be NULL and should be ignored by the driver.
  • When neither ppjTable nor pcjTable are NULL, the driver should include a pointer to the table in ppjTable, and the length, in bytes, of the table in pciTable. In this situation, cjBuf and pjBuf will be NULL and should be ignored by the driver.

Requirements

Header

fontdrv.h

See Also

Reference

Fonts Functions