TTLoadEmbeddedFont 函数 (t2embapi.h)
从文档流中读取嵌入字体并安装它。 还允许客户端进一步限制字体的嵌入权限。
语法
LONG TTLoadEmbeddedFont(
[out] HANDLE *phFontReference,
[in] ULONG ulFlags,
[out] ULONG *pulPrivStatus,
[in] ULONG ulPrivs,
[out] ULONG *pulStatus,
[in] READEMBEDPROC lpfnReadFromStream,
[in] LPVOID lpvReadStream,
[in, optional] LPWSTR szWinFamilyName,
[in, optional] LPSTR szMacFamilyName,
[in, optional] TTLOADINFO *pTTLoadInfo
);
参数
[out] phFontReference
指向标识已安装嵌入字体的句柄的指针。 此句柄引用内部结构,而不是 Hfont。
[in] ulFlags
指定加载和安装选项的标志。 目前,此标志可以设置为零或以下值:
值 | 含义 |
---|---|
|
加载字体,使其不枚举给用户。 如果字体不可安装,它将保持私密。 |
[out] pulPrivStatus
指向标志的指针,指示字体的嵌入权限。 此标志在完成此函数后编写,可以具有以下值之一。 此函数返回授予的限制最少的许可证。
[in] ulPrivs
一个标志,指示由加载字体的客户端施加的嵌入权限的进一步限制。 此标志必须具有以下值之一。
值 | 含义 |
---|---|
|
预览和打印嵌入。 |
|
可编辑的嵌入。 |
|
可安装嵌入。 |
|
受限许可证嵌入。 |
|
使用默认嵌入级别。 |
[out] pulStatus
指向位字段的指针,其中包含有关 TTLoadEmbeddedFont 请求的状态信息。 此字段在完成此函数后填充,可以具有零个或多个以下值。
值 | 含义 |
---|---|
|
加载的字体是原始字体的子集。 |
|
加载的字体标记为“可安装”,并已添加到注册表中,因此在启动时可以使用该字体。 |
[in] lpfnReadFromStream
指向从文档流读取字体结构的客户端定义的回调函数的指针。
[in] lpvReadStream
指向流 (字体结构的指针) 。
[in, optional] szWinFamilyName
指向字体的新 16 位字符 Unicode Microsoft Windows 系列名称的指针。 设置为 NULL 以使用现有名称。 在加载时更改字体名称时,必须同时提供此参数和 szMacFamilyName 参数。
[in, optional] szMacFamilyName
指向字体的新 8 位字符 Macintosh 系列名称的指针。 设置为 NULL 以使用现有名称。 在加载时更改字体名称时,必须同时提供此参数和 szWinFamilyName 参数。
[in, optional] pTTLoadInfo
指向 TTLOADINFO 结构的指针,该结构包含已从中获取嵌入字体对象的 URL。 如果此值与 TTEMBEDINFO 结构中包含的值之一不匹配,则字体将无法成功加载。
返回值
如果成功,则返回E_NONE。
如果字体加载成功,则使用 szWinFamilyName 和 szMacFamilyName 中引用的名称从字体结构创建 phFontReference 指示的字体。 设置 pulPrivStatus ,指示字体的嵌入权限;和 pulStatus 可以设置为指示有关字体加载操作的状态信息。
否则,返回 嵌入函数错误消息中所述的错误代码。
注解
为了帮助客户端确定系统中是否已安装嵌入字体,字体加载功能将返回一条错误消息,指示系统中存在同名字体 (E_FONTNAMEALREADYEXISTS) ,并且该字体是否与嵌入字体 (E_FONTALREADYEXISTS) 具有相同的校验和。 然后,客户端有两个选项:
- 假设安装的字体实际上与嵌入的字体相同,并且涵盖相同的子集。
- 强制使用其他名称安装嵌入字体,以避免与系统上已有的字体不兼容。
若要使用嵌入字体的现有名称,需要将名称字符串参数设置为 NULL。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | t2embapi.h |
Library | T2embed.lib |
DLL | T2embed.dll |