Метод 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. Этот метод инициализирует existsзначением 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, Windows Vista с пакетом обновления 2 (SP2) и обновлением платформы для Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 R2, Windows Server 2008 с пакетом обновления 2 (SP2) и Обновление платформы для Windows Server 2008 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | dwrite.h |
Библиотека | Dwrite.lib |
DLL | Dwrite.dll |