Programming/Windows API
GetLocaleInfo함수는 현재 Windows에 설정되어 있는 국가/지역에 대한 다양한 정보를 확인할 수 있는 함수입니다.

Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Integer, ByVal LCType As Integer, ByVal lpLCDate As String, ByVal cchData As Integer) As Integer
▶VB.NET 선언

Dim sbuff As String = Space(10)
GetLocaleInfo(locale, type, sbuff, data)
▶VB.NET 호출

[DllImport("kernel32.dll")]
public static extern int GetLocaleInfo(int Locale, int LCType, StringBuilder lpLCDate, int cchData);
▶C# 선언

StringBuilder sbuff = new StringBuilder(10);
GetLocaleInfo(locale, type, str, data);
▶C# 호출

GetLocaleInfo함수의 첫번째 인수는 어떤 국가/지역정보를 기준으로 정보를 조회할지를 지정합니다. 보통 이 인수에는 System설정인가 또는 User설정인가를 지정하는 것으로 해당 상수값은 다음과 같습니다.

 상수  값(VB.NET/C#)16진수  설명
 LOCAL_SYSTEM_DEFAULT  &H800 / 0x800  system 설정을 따름
 LOCAL_USER_DEFAULT  &H400 / 0x400  user 설정을 따름

GetLocaleInfo함수의 두번째 인수는 어떤 정보를 조회할지를 나타냅니다. 이때 사용할 수 있는 상수값은 다음과 같습니다.

 상수  값(16진수)  설명
 LOCALE_ILANGUALE  &H1 / 0x1  언어
 LOCALE_SLANGUAGE  &H2 / 0x2  언어명(설정위치의 언어)
 LOCALE_SENGLANGUAGE  &H1001 / 0x1001  언어명(영어)
 LOCALE_SABBREVLANGNAME  &H3 / 0x3  언어명(짧은이름)
 LOCALE_SNATIVELANGNAME  &H4 / 0x4  언어명(전체이름)
 LOCALE_ICOUNTRY  &H5 / 0x5  국가코드
 LOCALE_SCOUNTRY  &H6 / 0x6  국가명(설정위치의 언어)
 LOCALE_SENGCOUNTRY  &H1002 / 0x1002  국가명(영어)
 LOCALE_SABBREVCTRYNAME  &H7 / 0x7  국가명(짧은이름)
 LOCALE_SNATIVECTRYNAME  &H8 / 0x8  국가명(전체이름)
 LOCALE_IDEFAULTLANGUAGE  &H9 / 0x9  언어명(기본값)
 LOCALE_IDEFAULTCOUNTRY  &HA / 0xA  국가명(기본값)
 LOCALE_IDEFAULTCODEPAGE  &HB / 0xB  코드페이지
 LOCALE_SLIST  &HC / 0xC  리스트구분자
 LOCALE_IMEASURE  &HD / 0xD  IME설정(0:metric/1:US)
 LOCALE_SDECIMAL  &HE / 0xE  소수점 구분
 LOCALE_STHOUSAND  &HF / 0xF  천단위 구분
 LOCALE_SGROUPING  &H10 / 0x10  자리수 그룹핑
 LOCALE_IDIGITS  &H11 / 0x11  통화표시의 소수점 자리수
 LOCALE_ILZERO  &H12 / 0x12  10진법 시작표시
 LOCALE_SNATIVEDIGITS  &H13 / 0x13  0~9의 음수가능 표시
 LOCALE_SCURRENCY  &H14 / 0x14  설정국가통화표시기호
 LOCALE_SINTLSYMBOL  &H15 / 0x15  국제통화표시기호
 LOCALE_SMONDECIMALSEP  &H16 / 0x16  통화소수점이하구분자
 LOCALE_SMOMTHOUSANDSEP  &H17 / 0x17  통화천단위이하구분자
 LOCALE_SMONGROUPING  &H18 / 0x18  통화그룹핑
 LOCALE_ICURRDIGITS  &H19 / 0x19  설정국가소수점자리수
 LOCALE_IINTLCURRDIGITS  &H1A / 0x1A  표준소수점자리수
 LOCALE_ICURRENCY  &H1B / 0x1B  통화표시 양수설정
 LOCALE_INEGCURR  &H1C / 0x1C  통화표시 음수설정

값의 구분은 VB.NET / C# 순입니다.

세번째 인수에는 조회한 정보의 결과값을 담을 문자열변수를 지정하는데 이때 지정한 변수안에 함수의 수행결과가 들어가게 됩니다.

마지막으로 네번째 인수는 버퍼로 지정한 변수의 길이를 지정하는 것입니다. 이 인수에는 문자열변수에 확보된 크기값을 넘겨주도록 합니다.
0 0