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 7、带 SP2 的 Windows Vista 和适用于 Windows Vista 的平台更新 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 R2、Windows Server 2008 SP2 和适用于 Windows Server 2008 的平台更新 [桌面应用 |UWP 应用]
目标平台 Windows
标头 dwrite.h
Library Dwrite.lib
DLL Dwrite.dll

另请参阅

IDWriteFontFace