IDWriteFontFace::TryGetFontTable 方法 (dwrite.h)

查找指定的 OpenType 字体表(如果存在)并返回指向它的指针。 该函数通过字体文件加载程序实现的 IDWriteFontFileStream 接口访问基础字体数据。

语法

HRESULT TryGetFontTable(
  [in]  UINT32     openTypeTableTag,
  [out] const void **tableData,
  [out] UINT32     *tableSize,
  [out] void       **tableContext,
  [out] BOOL       *exists
);

参数

[in] openTypeTableTag

类型:UINT32

要查找的 OpenType 字体表的四个字符标记。 使用 DWRITE_MAKE_OPENTYPE_TAG 宏将其创建为 UINT32。 与 GDI 不同,它不支持特殊的 TTCF 和 null 标记来访问整个字体。

[out] tableData

类型:const void**

此方法返回时,包含指向内存中表基的指针的地址。 只要用于获取字体表的字体人脸仍然存在,指针才有效:(不是任何其他字体,即使它实际上指的是相同的物理字体)。 此参数未初始化传递。

[out] tableSize

类型:UINT32*

此方法返回时,包含指向字体表的大小(以字节为单位)的指针。

[out] tableContext

类型:void**

此方法返回时,指向不透明上下文的指针的地址,该地址必须通过调用 ReleaseFontTable释放。 上下文实际上来自较低级别的 IDWriteFontFileStream,应用程序或 DWrite 本身可能实现。 可以返回 NULLtableContext,尤其是在实现对整个文件执行直接内存映射时。 不过,请稍后始终释放它,不要将其用作函数成功的测试。 可以多次查询同一个表,但由于每个返回的上下文可能不同,因此必须单独释放每个上下文。

[out] exists

类型:BOOL*

此方法返回时,如果字体表存在,TRUE;否则,FALSE

返回值

类型:HRESULT

如果此方法成功,则返回 S_OK。 否则,它将返回 HRESULT 错误代码。

言论

对于每个调用,同一标记的上下文可能有所不同,因此必须单独保存和释放每个标记。

要求

要求 价值
最低支持的客户端 适用于 Windows Vista 的 Windows 7、带有 SP2 和平台更新的 Windows Vista [桌面应用 |UWP 应用]
支持的最低服务器 Windows Server 2008 R2、Windows Server 2008 SP2 和 Platform Update for Windows Server 2008 [桌面应用 |UWP 应用]
目标平台 窗户
标头 dwrite.h
Dwrite.lib
DLL Dwrite.dll

另请参阅

IDWriteFontFace