Поделиться через


Функция DrvQueryTrueTypeTable (winddi.h)

Функция DrvQueryTrueTypeTable обращается к определенным таблицам в файле описания шрифта TrueType.

Синтаксис

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

Параметры

iFile

Указатель на определенное драйвером значение, идентифицирующее предоставленный драйвером файл шрифта TrueType. Этот указатель получен из DrvLoadFontFile.

ulFont

Задает одноуровневый индекс шрифта драйвера.

ulTag

Указывает таблицу для доступа. Если значение ulTag равно нулю, драйвер должен вернуть доступ ко всему файлу.

dpStart

Указывает смещение от начала таблиц, с которых начинается доступ. Если значение ulTag равно нулю, dpStart — это смещение от начала файла.

cjBuf

Указывает размер буфера в байтах, на который указывает pjBuf , или нуль.

pjBuf

Если значение не равно NULL, указывает на буфер, в который драйвер должен скопировать данные таблицы или шрифта.

ppjTable

Если значение не равно NULL, указывает на расположение, в котором драйвер должен возвращать адрес таблицы или данных шрифта.

pcjTable

Если значение не равно NULL, указывает на расположение, в котором драйвер должен возвращать длину в байтах данных таблицы или шрифта, в которые указывает *ppjTable .

Возвращаемое значение

DrvQueryTrueTypeTable возвращает одно из следующих значений:

  • Если pjBuf имеет значение NULL, количество байтов, необходимых буферу для хранения всей таблицы (это будет совпадать со значением, возвращаемым в pcjTable).
  • Если pjBuf не равно NULL, количество скопированных байтов.
  • При возникновении ошибки FD_ERROR.

Комментарии

DrvQueryTrueTypeTable необходимо реализовать в драйверах шрифтов TrueType.

Существует два способа запроса DrvQueryTrueTypeTable на возврат данных таблицы или шрифта.

  1. Если ни cjBuf , ни pjBuf не имеют значения NULL, драйвер должен скопировать содержимое запрошенной таблицы в буфер, на который указывает pjBuf . В этом случае ppjTable и pcjTable будут иметь значение NULL и должны игнорироваться драйвером.
  2. Если ни ppjTable , ни pcjTable не имеют значения NULL, драйвер должен поместить указатель на таблицу в *ppjTable, а длину таблицы в байтах — в *pciTable. В этом случае cjBuf и pjBuf будут иметь значение NULL и должны игнорироваться драйвером.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть winddi.h (включая Winddi.h)

См. также раздел

DrvLoadFontFile