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

指定驱动程序字体的从 1 开始的索引。

ulTag

指定要访问的表。 如果 ulTag 为零,驱动程序应返回对整个文件的访问权限。

dpStart

指定要从中开始访问的表开头的偏移量。 如果 ulTag 为零, 则 dpStart 是文件开头的偏移量。

cjBuf

指定 pjBuf 指向的缓冲区的大小(以字节为单位),或零。

pjBuf

如果不是 NULL,则指向驱动程序应将表或字体数据复制到其中的缓冲区。

ppjTable

如果不是 NULL,则指向驱动程序应返回表或字体数据的地址的位置。

pcjTable

如果不是 NULL,则指向驱动程序应返回 *ppjTable 指向的表或字体数据的长度(以字节为单位)的位置。

返回值

DrvQueryTrueTypeTable 返回以下值之一:

  • 如果 pjBufNULL,则缓冲区保存整个表 (所需的字节数与 pcjTable) 中返回的值相同。
  • 如果 pjBuf 不为 NULL,则复制的字节数。
  • 如果发生错误,FD_ERROR。

注解

DrvQueryTrueTypeTable 必须在 TrueType 字体驱动程序中实现。

可通过两种方式请求 DrvQueryTrueTypeTable 返回表或字体数据:

  1. cjBufpjBuf 都不为 NULL 时,驱动程序应将请求表的内容复制到 pjBuf 指向的缓冲区中。 在这种情况下, ppjTablepcjTable 将为 NULL ,驱动程序应忽略。
  2. ppjTablepcjTable 都不为 NULL 时,驱动程序应在 *ppjTable 中放置指向表的指针,并将该表的长度(以字节为单位)放在 *pciTable 中。 在这种情况下, cjBufpjBuf 将为 NULL ,驱动程序应忽略。

要求

要求
目标平台 桌面
标头 winddi.h (包括 Winddi.h)

另请参阅

DrvLoadFontFile