Функция LocaleNameToLCID (winnls.h)
Преобразует имя языкового стандарта в идентификатор языкового стандарта.
Синтаксис
LCID LocaleNameToLCID(
[in] LPCWSTR lpName,
[in] DWORD dwFlags
);
Параметры
[in] lpName
Указатель на строку, завершающуюся значением NULL, представляющую имя языкового стандарта или одно из следующих предопределенных значений.
[in] dwFlags
До Windows 7:Защищены; всегда должно быть равно 0.
Начиная с Windows 7: Можно задать значение LOCALE_ALLOW_NEUTRAL_NAMES , чтобы разрешить возврат нейтрального LCID.
Возвращаемое значение
В случае успешного выполнения возвращает идентификатор языкового стандарта, соответствующий имени языкового стандарта.
Если указанное имя языкового стандарта соответствует пользовательскому языковому стандарту по умолчанию, эта функция возвращает LOCALE_CUSTOM_DEFAULT.
Если имя языкового стандарта соответствует пользовательскому языковому стандарту, который не является пользовательским по умолчанию, является временным языковым стандартом или является языковым стандартом CLDR (репозиторий общих языковых стандартов Юникода), функция возвращает LOCALE_CUSTOM_UNSPECIFIED.
Функция возвращает значение 0, если не удалось. Чтобы получить расширенные сведения об ошибке, приложение может вызвать Метод GetLastError, который может возвращать ERROR_INVALID_PARAMETER, если какое-либо из значений параметров является недопустимым.
Комментарии
Для пользовательских языковых стандартов, в том числе созданных корпорацией Майкрософт, приложения должны предпочесть имена языкового стандарта идентификаторам языкового стандарта. Дополнительные сведения см. в статье Прекращение поддержки идентификаторов LCID .
Начиная с Windows 8. Если приложение передает языковые теги в эту функцию из пространства имен Windows.Globalization, оно должно сначала преобразовать теги, вызвав ResolveLocaleName.
Примеры
#include "stdafx.h"
#include "windows.h"
#include "stdio.h"
int _cdecl main(
int argc,
char *argv[])
{
WCHAR strNameBuffer[LOCALE_NAME_MAX_LENGTH];
DWORD error = ERROR_SUCCESS;
LCID lcid;
// Get the name for locale 0x10407 (German (German), with phonebook sort)
if (LCIDToLocaleName(0x10407, strNameBuffer, LOCALE_NAME_MAX_LENGTH, 0) == 0)
{
// There was an error
error = GetLastError();
}
else
{
// Success, display the locale name we found
wprintf(L"Locale Name for 0x10407 is %s\n", strNameBuffer);
}
// Get the LCID for the locale
lcid = LocaleNameToLCID(strNameBuffer, 0);
if (lcid == 0)
{
// There was an error
error = GetLastError();
}
else
{
// Success, print the round trip LCID
wprintf(L"LCID for %s is 0x%x\n", strNameBuffer, lcid);
}
}
/* This code example produces the following output:
Locale Name for 0x10407 is de-DE_phoneb
LCID for de-DE_phoneb is 0x10407
*/
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | winnls.h (включая Windows.h) |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |