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 返回以下值之一:
- 如果 pjBuf 为 NULL,则缓冲区保存整个表 (所需的字节数与 pcjTable) 中返回的值相同。
- 如果 pjBuf 不为 NULL,则复制的字节数。
- 如果发生错误,FD_ERROR。
注解
DrvQueryTrueTypeTable 必须在 TrueType 字体驱动程序中实现。
可通过两种方式请求 DrvQueryTrueTypeTable 返回表或字体数据:
- 当 cjBuf 和 pjBuf 都不为 NULL 时,驱动程序应将请求表的内容复制到 pjBuf 指向的缓冲区中。 在这种情况下, ppjTable 和 pcjTable 将为 NULL ,驱动程序应忽略。
- 当 ppjTable 和 pcjTable 都不为 NULL 时,驱动程序应在 *ppjTable 中放置指向表的指针,并将该表的长度(以字节为单位)放在 *pciTable 中。 在这种情况下, cjBuf 和 pjBuf 将为 NULL ,驱动程序应忽略。
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | winddi.h (包括 Winddi.h) |