Поделиться через


Метод 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

См. также раздел

IDWriteLocalizedStrings