LocaleNameToLCID 関数 (winnls.h)
構文
LCID LocaleNameToLCID(
[in] LPCWSTR lpName,
[in] DWORD dwFlags
);
パラメーター
[in] lpName
ロケール名を表す null で終わる文字列へのポインター、または次の定義済み値のいずれか。
[in] dwFlags
Windows 7 より前:予約;は常に 0 である必要があります。
Windows 7 以降: ニュートラル LCID を返せるように 、LOCALE_ALLOW_NEUTRAL_NAMES に設定できます。
戻り値
成功した場合は、ロケール名に対応するロケール識別子を返します。
指定されたロケール名がユーザーの既定値であるカスタム ロケールに対応する場合、この関数は LOCALE_CUSTOM_DEFAULTを返します。
ロケール名が、ユーザーの既定値ではないカスタム ロケール、一時的なロケール、または CLDR (Unicode 共通ロケール データ リポジトリ) ロケールである場合、関数は LOCALE_CUSTOM_UNSPECIFIEDを返します。
成功しなかった場合、関数は 0 を返します。 拡張エラー情報を取得するために、アプリケーションは GetLastError を呼び出すことができます。これは、パラメーター値のいずれかが無効な場合にERROR_INVALID_PARAMETERを返すことができます。
注釈
Microsoft によって作成されたものを含むカスタム ロケールの場合、アプリケーションではロケール識別子よりもロケール名を優先する必要があります。 詳細 については、「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 |
ヘッダー | winnls.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |