ScriptRecordDigitSubstitution 函数 (usp10.h)

读取国家语言支持 (NLS) 本机数字和数字替换设置,并将其记录在 SCRIPT_DIGITSUBSTITUTE 结构中。 有关详细信息,请参阅 数字形状

语法

HRESULT ScriptRecordDigitSubstitution(
  [in]  LCID                   Locale,
  [out] SCRIPT_DIGITSUBSTITUTE *psds
);

参数

[in] Locale

要查询的区域设置的区域设置标识符。 通常,应用程序应将此参数设置为 LOCALE_USER_DEFAULT。 或者,该设置可以指示与 LOCALE_NOUSEROVERRIDE 组合的特定区域设置,以获取默认设置。

[out] psds

指向 SCRIPT_DIGITSUBSTITUTE 结构的指针。 此结构稍后可以传递给 ScriptApplyDigitSubstitution

返回值

如果成功,则返回S_OK。 如果函数不成功,则返回非零 HRESULT 值。

错误返回包括:

  • E_INVALIDARG。 Locale 参数指示无效或未安装的区域设置。
  • E_POINTER。 psds 参数设置为 NULL

注解

有关通常调用此函数的上下文的讨论,请参阅 使用 Uniscribe 显示文本

此函数仅支持阿拉伯语和波斯语区域设置的上下文数字替换。 对于其他区域设置,上下文数字替换将映射到不替换。

以下示例演示调用此函数的典型方法。

SCRIPT_DIGITSUBSTITUTE sds;
ScriptRecordDigitSubstitution(LOCALE_USER_DEFAULT, &sds);

每次分项时,应用程序都可以使用结果,如下一个示例所示。

SCRIPT_CONTROL sc = {0};
SCRIPT_STATE   ss = {0};
ScriptApplyDigitSubstitution(&sds, &sc, &ss);

出于性能原因,应用程序不应经常调用 ScriptRecordDigitSubstitution 。 每次调用 ScriptItemizeScriptStringAnalyse 时,函数都需要相当大的开销来调用它。 相反,应用程序可以保存 SCRIPT_DIGITSUBSTITUTE 结构,并仅在收到 WM_SETTINGCHANGE 消息时更新它。 或者,当专用线程中的 RegNotifyChangeKeyValue 调用指示 HKCU\控制面板\International 下的注册表发生更改时,应用程序可以更新结构。

重要 从 Windows 8 开始:若要保持在 Windows 7 上运行的能力,使用 Uniscribe 的模块必须在其库列表中指定 gdi32.lib 之前的 Usp10.lib。
 

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 usp10.h
Library Usp10.lib
DLL Usp10.dll

另请参阅

使用 Uniscribe 显示文本

SCRIPT_DIGITSUBSTITUTE

ScriptApplyDigitSubstitution

ScriptItemize

ScriptStringAnalyse

Uniscribe

Uniscribe 函数