IDWriteLocalizedStrings::FindLocaleName 方法 (dwrite.h)
获取具有指定区域设置名称的区域设置名称/字符串对的从零开始的索引。
语法
HRESULT FindLocaleName(
[in] WCHAR const *localeName,
[out] UINT32 *index,
[out] BOOL *exists
);
参数
[in] localeName
类型: const WCHAR*
以 null 结尾的字符数组,其中包含要查找的区域设置名称。
[out] index
类型: UINT32*
区域设置名称/字符串对的从零开始的索引。 此方法将 索引 初始化为 UINT_MAX。
[out] exists
类型: BOOL*
此方法返回时,如果区域设置名称存在,则包含 TRUE ;否则为 FALSE。 此方法 初始化为FALSE。
返回值
类型: HRESULT
如果指定的区域设置名称不存在,则返回值S_OK,但索引UINT_MAX且存在为 FALSE。
备注
请注意,如果区域设置名称不存在,则返回值为成功, exists 参数为 FALSE。 如果获取字体的字体系列名称,并且指定的区域设置名称不存在,则一个选项是将索引设置为 0,如下所示。 字体系列始终至少有一个区域设置。
UINT32 index = 0;
BOOL exists = false;
wchar_t localeName[LOCALE_NAME_MAX_LENGTH];
if (SUCCEEDED(hr))
{
// Get the default locale for this user.
int defaultLocaleSuccess = GetUserDefaultLocaleName(localeName, LOCALE_NAME_MAX_LENGTH);
// If the default locale is returned, find that locale name, otherwise use "en-us".
if (defaultLocaleSuccess)
{
hr = pFamilyNames->FindLocaleName(localeName, &index, &exists);
}
if (SUCCEEDED(hr) && !exists) // if the above find did not find a match, retry with US English
{
hr = pFamilyNames->FindLocaleName(L"en-us", &index, &exists);
}
}
// If the specified locale doesn't exist, select the first on the list.
if (!exists)
index = 0;
要求
最低受支持的客户端 | 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 |