GetUILanguageInfo 함수(winnls.h)
설치된 UI 언어에 대한 다양한 정보를 검색합니다.
- 언어가 설치되어 있나요?
- 현재 사용자에게 언어 사용이 허가되어 있나요?
- 언어가 완전히 지역화되어 있나요? 부분적으로 지역화되어 있나요? LIP(언어 설치 팩)의 일부인가요?
- 부분적으로 지역화되거나 LIP의 일부인 경우:
- 대체 언어란?
- 대체 언어가 부분적으로 지역화된 언어인 경우 해당 기본 언어는 무엇인가요?
- 기본 대체 언어란?
구문
BOOL GetUILanguageInfo(
[in] DWORD dwFlags,
[in] PCZZWSTR pwmszLanguage,
[out, optional] PZZWSTR pwszFallbackLanguages,
[in, out, optional] PDWORD pcchFallbackLanguages,
[out] PDWORD pAttributes
);
매개 변수
[in] dwFlags
지정된 언어의 형식을 정의하는 플래그입니다. 플래그는 함께 사용할 수 없으며 기본값은 MUI_LANGUAGE_NAME.
값 | 의미 |
---|---|
|
언어 식별자 형식으로 언어 문자열을 검색합니다. |
|
언어 이름 형식으로 언어 문자열을 검색합니다. |
[in] pwmszLanguage
함수가 정보를 검색할 언어에 대한 포인터입니다. 이 매개 변수는 플래그 설정에 따라 정렬된 null로 구분된 언어 식별자 또는 언어 이름 목록을 나타냅니다. 이 매개 변수의 사용에 대한 자세한 내용은 설명 섹션을 참조하세요.
[out, optional] pwszFallbackLanguages
이 함수가 dwFlags에 대한 설정으로 정의된 형식으로 정렬된 null로 구분된 대체 언어 목록을 검색하는 버퍼에 대한 포인터입니다. 이 목록은 두 개의 null 문자로 끝납니다.
또는 이 매개 변수가 NULL 로 설정되고 pcchLanguagesBuffer 가 0으로 설정된 경우 함수는 pcchLanguagesBuffer에서 필요한 언어 버퍼 크기를 검색합니다. 필요한 크기에는 두 개의 null 문자가 포함됩니다.
[in, out, optional] pcchFallbackLanguages
pwszFallbackLanguages로 표시된 언어 버퍼의 크기(문자)에 대한 포인터입니다. 함수에서 성공적으로 반환되면 매개 변수에 검색된 언어 버퍼의 크기가 포함됩니다.
또는 이 매개 변수가 0으로 설정되고 pwszLanguagesBuffer 가 NULL로 설정된 경우 함수는 pcchLanguagesBuffer에서 필요한 언어 버퍼 크기를 검색합니다.
[out] pAttributes
입력 언어 목록의 특성을 나타내는 플래그에 대한 포인터입니다. 함수는 항상 나열된 마지막 언어의 특징을 나타내는 플래그를 검색합니다.
값 | 의미 |
---|---|
|
언어는 완전히 지역화됩니다. |
|
언어는 부분적으로 지역화됩니다. |
|
언어는 LIP 언어입니다. |
또한 pdwAttributes 에는 다음 플래그 중 하나 또는 둘 다를 적절하게 포함합니다.
값 | 의미 |
---|---|
|
언어가 이 컴퓨터에 설치됩니다. |
|
언어는 현재 사용자에 대해 적절하게 라이선스가 부여됩니다. |
반환 값
성공하면 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다. 확장된 오류 정보를 가져오기 위해 애플리케이션은 GetLastError를 호출할 수 있으며, 다음 오류 코드를 반환할 수 있습니다.
- ERROR_INSUFFICIENT_BUFFER. 제공된 버퍼 크기가 충분히 크지 않거나 NULL로 잘못 설정되었습니다.
- ERROR_INVALID_PARAMETER. 매개 변수 값이 잘못되었습니다. 자세한 내용은 설명 부분을 참조하세요.
- ERROR_OBJECT_NAME_NOT_FOUND. 지정한 개체 이름을 찾을 수 없거나 유효하지 않거나 입력 목록의 첫 번째 언어가 설치된 언어가 아닙니다. 자세한 내용은 설명 부분을 참조하세요.
설명
MUI_LANGUAGE_NAME 함수가 미리 정의된 로캘에 해당하지 않고 추가 로캘에 해당하는 LIP 언어를 더 잘 처리할 수 있도록 하기 때문에 MUI_LANGUAGE_ID 권장됩니다. 미리 정의된 로캘에 해당하는 LIP 언어는 비 LIP 언어처럼 처리됩니다.
MUI_LANGUAGE_ID 플래그를 지정하는 경우 제공된 언어 문자열은
앞에 오는 0x를 포함하지 않고 길이가 4자인 16진수 언어 식별자를 사용합니다.
예를 들어 en-US는 "0409"로, en은 "0009"로 전달되어야 합니다. 반환된 언어 문자열은
동일한 형식입니다.
MUI_LANGUAGE_ID 지정하고 사용자가 선호하는 UI 언어 목록에 이러한 언어가 있는 경우 목록에 이러한 언어가 하나만 있을 수 있습니다. 해당 언어는 pwmszLanguage에서 LOCALE_CUSTOM_UI_DEFAULT 16진수 값에 해당하는 "1400"으로 지정할 수 있습니다. 다른 언어는 MUI_LANGUAGE_ID 사용하여 지정할 수 없습니다. pwmszLanguage로 표시된 문자열에서 LOCALE_CUSTOM_UNSPECIFIED 16진수 값에 해당하는 "1000"을 사용하면 ERROR_INVALID_PARAMETER 코드가 생성됩니다.
부분적으로 지역화된 언어는 부분적으로 지역화된 대체 언어를 가질 수 있으며, 전체 정보를 얻기 위해 GetUILanguageInfo 를 반복적으로 호출해야 합니다. 세 가지 대체 언어 중에서 선택할 수 있는 부분적으로 지역화된 언어 Lang1의 경우를 고려해 보세요. Lang3 대체 언어는 부분적으로 지역화되며 두 가지 대체 언어 중에서 선택할 수 있습니다. 종속성은 다음과 같습니다. 기본 대체 항목이 먼저 나열됩니다.
- Lang1
- Lang2
- Lang3
- Lang5
- Lang6
- Lang4
Lang1과 관련하여 Lang3의 대체 언어를 가져오기 위해 애플리케이션은 pwmszLanguage 를 "lang1\0\lang3\0\0\0"으로 전달합니다. 함수에서 반환되면 pwszFallbackLanguages 가 "Lang5\0Lang6\0\0"으로 설정됩니다.
이 함수는 다음 중 ERROR_INVALID_PARAMETER 반환합니다.
- pwmszLanguage 가 NULL 이거나 비어 있습니다.
- MUI_LANGUAGE_ID 및 MUI_LANGUAGE_NAME 모두 설정됩니다.
- MUI_LANGUAGE_ID 또는 MUI_LANGUAGE_NAME 이외의 모든 플래그가 설정됩니다.
- pcchFallbackLanguages 는 0보다 크지만 pwszFallbackLanguages 는 NULL입니다.
- pwmszLanguage 는 플래그 설정에 따라 언어 식별자 또는 언어 이름의 다중 문자열 버퍼로 구문 분석할 수 없습니다.
C# 서명
[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
static extern System.Boolean GetUILanguageInfo(
System.UInt32 dwFlags,
System.String pwmszLanguage,
System.IntPtr pwszFallbackLanguages,
ref System.UInt32 pcchFallbackLanguages,
ref System.UInt32 pdwAttributes
);
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | winnls.h(Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |