36#define WINVER DLL_EXPORT_VERSION
39#define LOCALE_NAME_USER_DEFAULT NULL
50#define NLSRC_OFFSET 5000
54#define LOCALE_LOCALEINFOFLAGSMASK (LOCALE_NOUSEROVERRIDE|LOCALE_USE_CP_ACP|\
55 LOCALE_RETURN_NUMBER|LOCALE_RETURN_GENITIVE_NAMES)
58 '\\',
'R',
'e',
'g',
'i',
's',
't',
'r',
'y',
'\\',
59 'M',
'a',
'c',
'h',
'i',
'n',
'e',
'\\',
'S',
'y',
's',
't',
'e',
'm',
'\\',
60 'C',
'u',
'r',
'r',
'e',
'n',
't',
'C',
'o',
'n',
't',
'r',
'o',
'l',
'S',
'e',
't',
'\\',
61 'C',
'o',
'n',
't',
'r',
'o',
'l',
'\\',
'N',
'l',
's',
'\\',
'L',
'o',
'c',
'a',
'l',
'e',0
65 '\\',
'R',
'e',
'g',
'i',
's',
't',
'r',
'y',
'\\',
66 'M',
'a',
'c',
'h',
'i',
'n',
'e',
'\\',
'S',
'y',
's',
't',
'e',
'm',
'\\',
67 'C',
'u',
'r',
'r',
'e',
'n',
't',
'C',
'o',
'n',
't',
'r',
'o',
'l',
'S',
'e',
't',
'\\',
68 'C',
'o',
'n',
't',
'r',
'o',
'l',
'\\',
'N',
'l',
's',
'\\',
69 'L',
'a',
'n',
'g',
'u',
'a',
'g',
'e',
' ',
'G',
'r',
'o',
'u',
'p',
's',0
76 const char *charset_name;
115 {
"ISO88591", 28591 },
116 {
"ISO885910", 28600 },
117 {
"ISO885913", 28603 },
118 {
"ISO885914", 28604 },
119 {
"ISO885915", 28605 },
120 {
"ISO885916", 28606 },
121 {
"ISO88592", 28592 },
122 {
"ISO88593", 28593 },
123 {
"ISO88594", 28594 },
124 {
"ISO88595", 28595 },
125 {
"ISO88596", 28596 },
126 {
"ISO88597", 28597 },
127 {
"ISO88598", 28598 },
128 {
"ISO88599", 28599 },
158static const WCHAR iCalendarTypeW[] = {
'i',
'C',
'a',
'l',
'e',
'n',
'd',
'a',
'r',
'T',
'y',
'p',
'e',0};
160static const WCHAR iCurrDigitsW[] = {
'i',
'C',
'u',
'r',
'r',
'D',
'i',
'g',
'i',
't',
's',0};
164static const WCHAR iFirstDayOfWeekW[] = {
'i',
'F',
'i',
'r',
's',
't',
'D',
'a',
'y',
'O',
'f',
'W',
'e',
'e',
'k',0};
165static const WCHAR iFirstWeekOfYearW[] = {
'i',
'F',
'i',
'r',
's',
't',
'W',
'e',
'e',
'k',
'O',
'f',
'Y',
'e',
'a',
'r',0};
170static const WCHAR iNegNumberW[] = {
'i',
'N',
'e',
'g',
'N',
'u',
'm',
'b',
'e',
'r',0};
171static const WCHAR iPaperSizeW[] = {
'i',
'P',
'a',
'p',
'e',
'r',
'S',
'i',
'z',
'e',0};
173static const WCHAR iTimePrefixW[] = {
'i',
'T',
'i',
'm',
'e',
'P',
'r',
'e',
'f',
'i',
'x',0};
185static const WCHAR sMonDecimalSepW[] = {
's',
'M',
'o',
'n',
'D',
'e',
'c',
'i',
'm',
'a',
'l',
'S',
'e',
'p',0};
186static const WCHAR sMonGroupingW[] = {
's',
'M',
'o',
'n',
'G',
'r',
'o',
'u',
'p',
'i',
'n',
'g',0};
187static const WCHAR sMonThousandSepW[] = {
's',
'M',
'o',
'n',
'T',
'h',
'o',
'u',
's',
'a',
'n',
'd',
'S',
'e',
'p',0};
188static const WCHAR sNativeDigitsW[] = {
's',
'N',
'a',
't',
'i',
'v',
'e',
'D',
'i',
'g',
'i',
't',
's',0};
189static const WCHAR sNegativeSignW[] = {
's',
'N',
'e',
'g',
'a',
't',
'i',
'v',
'e',
'S',
'i',
'g',
'n',0};
190static const WCHAR sPositiveSignW[] = {
's',
'P',
'o',
's',
'i',
't',
'i',
'v',
'e',
'S',
'i',
'g',
'n',0};
191static const WCHAR sShortDateW[] = {
's',
'S',
'h',
'o',
'r',
't',
'D',
'a',
't',
'e',0};
193static const WCHAR sTimeFormatW[] = {
's',
'T',
'i',
'm',
'e',
'F',
'o',
'r',
'm',
'a',
't',0};
195static const WCHAR sYearMonthW[] = {
's',
'Y',
'e',
'a',
'r',
'M',
'o',
'n',
't',
'h',0};
245 { LOCALE_IDIGITSUBSTITUTION,
NumShapeW },
256 while (
n > 1 && *
src)
278#if (WINVER >= 0x0600)
282static int charset_cmp(
const void *
name,
const void *
entry )
294 char charset_name[16];
298 for (
i =
j = 0;
name[
i] &&
j <
sizeof(charset_name)-1;
i++)
303 sizeof(charset_names[0]), charset_cmp );
340 if (
data->win_name[0] &&
386 if (
lang == get_default_sublang( def_lang ))
matches++;
407 return (
data->matches < 4);
420 static const WCHAR sepW[] = {
'-',
'_',
'.',
'@',0};
421 static const WCHAR winsepW[] = {
'-',
'_',0};
422 static const WCHAR posixW[] = {
'P',
'O',
'S',
'I',
'X',0};
423 static const WCHAR cW[] = {
'C',0};
424 static const WCHAR latinW[] = {
'l',
'a',
't',
'i',
'n',0};
425 static const WCHAR latnW[] = {
'-',
'L',
'a',
't',
'n',0};
434 name->win_name[0] = 0;
498 name->codepage = find_charset(
name->charset );
502 if (
name->charset)
goto done;
533 switch(lctype & 0xffff)
535 case LOCALE_SSORTNAME:
542 case LOCALE_IDEFAULTEBCDICCODEPAGE:
563 case LOCALE_SNATIVECURRNAME:
568 case LOCALE_IDIGITSUBSTITUTION:
650 case LOCALE_SYEARMONTH:
654 case LOCALE_IPAPERSIZE:
666 if (default_id)
lcid = default_id;
678 switch(lctype & 0xffff)
706 static const WCHAR cplW[] = {
'C',
'o',
'n',
't',
'r',
'o',
'l',
' ',
'P',
'a',
'n',
'e',
'l',0};
707 static const WCHAR intlW[] = {
'I',
'n',
't',
'e',
'r',
'n',
'a',
't',
'i',
'o',
'n',
'a',
'l',0};
715 attr.RootDirectory = hkey;
719 attr.SecurityQualityOfService =
NULL;
725 attr.RootDirectory = cpl_key;
843#if (WINVER >= 0x0600)
852 if (
flags && !once++)
861 TRACE(
"found lcid %x for %s, matches %d\n",
871 WARN(
"locale %s not recognized, defaulting to %s\n",
961 cached_value[
length-1] = 0;
1058 if ((lctype & LOCALE_RETURN_NUMBER) ||
1149 if (lcflags & LOCALE_RETURN_NUMBER)
1174 if (
ret != -1)
return ret;
1208 for (
i = 0;
i < (
lctype & 0x0f);
i++)
p += *
p + 1;
1211 if (lcflags & LOCALE_RETURN_NUMBER)
ret =
sizeof(
UINT)/
sizeof(
WCHAR);
1215 for (
i = 1;
i <= *
p;
i++)
if (!
p[
i])
break;
1237 if (lcflags & LOCALE_RETURN_NUMBER)
1254 TRACE(
"(lcid=0x%x,lctype=0x%x,%p,%d) returning number %d\n",
1263 TRACE(
"(lcid=0x%x,lctype=0x%x,%p,%d) returning %d %s\n",
1269#if (WINVER >= 0x0600)
1279 TRACE(
"GetLocaleInfoEx not implemented (lcid=%s,lctype=0x%x,%s,%d)\n",
debugstr_w(lpLocaleName), LCType,
debugstr_w(lpLCData), cchData );
1289 TRACE(
"IsValidLocaleName not implemented (lpLocaleName=%s)\n",
debugstr_w(lpLocaleName));
1295GetUserDefaultLocaleName(
1300 TRACE(
"GetUserDefaultLocaleName not implemented (lpLocaleName=%s, cchLocaleName=%d)\n",
debugstr_w(lpLocaleName), cchLocaleName);
1364 static const WCHAR intlW[] = {
'i',
'n',
't',
'l',0 };
1403 WCHAR *lpD, *lpM, *lpY;
1480 TRACE(
"(0x%04X)\n", lcid);
1573 return lpfnLocaleEnum(
buf );
1579 static const WCHAR formatW[] = {
'%',
'0',
'8',
'x',0};
1583 return lpfnLocaleEnum(
buf );
1643 (
LPWSTR)&neutral,
sizeof(neutral) /
sizeof(
WCHAR) ))
1711 static const unsigned char type2_map[16] =
1748 WARN(
"CT_CTYPE3: semi-stub.\n");
1752 WORD type1, type3 = 0;
1771 if ((
c>=0xFF21)&&(
c<=0xFF3A)) type3 |=
C3_ALPHA;
1772 if ((
c>=0xFF41)&&(
c<=0xFF5A)) type3 |=
C3_ALPHA;
1779 if ((
c>=0xFF65)&&(
c<=0xFF9F)) type3 |=
C3_ALPHA;
1782 *chartype++ = type3;
1834 FIXME(
"For locale %04x using current ANSI code page\n",
locale);
1894 if ((0x30A1 <= wch && wch <= 0x30F3) ||
1895 wch == 0x30F4 || wch == 0x30F5 || wch == 0x30FD || wch == 0x30FE)
1918 if ((0x3041 <= wch && wch <= 0x3093) ||
1919 wch == 3094 || wch == 0x3095 || wch == 0x309D || wch == 0x309E)
1933#define DEFINE_FULL2HALF(full, half1, half2) { full, half1, half2 },
1935#undef DEFINE_FULL2HALF
1937#define GET_FULL(table, index) ((table)[index][0])
1938#define GET_HALF1(table, index) ((table)[index][1])
1939#define GET_HALF2(table, index) ((table)[index][2])
1945#define DEFINE_DAKUTEN(voiced, single1, single2, half1, half2) { voiced, single1, single2 },
1947#undef DEFINE_DAKUTEN
1949#define GET_VOICED(table, index) ((table)[index][0])
1950#define GET_SINGLE1(table, index) ((table)[index][1])
1951#define GET_SINGLE2(table, index) ((table)[index][2])
1975 if (0xFF01 <= ch && ch <= 0xFF5E)
1983 for (
i = count1 - 1;
i >= 0; --
i)
2038 if (0x21 <= ch && ch <= 0x7E)
2053 for (
i = count1 - 1;
i >= 0; --
i)
2080 for (
i = count2 - 1;
i >= 0; --
i)
2144#define DEFINE_SIM2TRA(from, to) { from, to },
2146#undef DEFINE_SIM2TRA
2152#define DEFINE_TRA2SIM(from, to) { from, to },
2154#undef DEFINE_TRA2SIM
2162 if (
a->from <
b->from)
2164 if (
a->from >
b->from)
2290 flags &= ~LCMAP_LOWERCASE;
2296 flags &= ~LCMAP_UPPERCASE;
2363 if (!once++)
FIXME(
"unsupported lparam %Ix\n",
handle);
2374 TRACE(
"(%s,0x%08lx,%s,%d,%p,%d)\n",
2377 flags &= ~LOCALE_USE_CP_ACP;
2420 TRACE(
"(0x%04x,0x%08x,%s,%d,%p,%d)\n",
2448 INT ret = 0, srclenW, dstlenW;
2479 goto map_string_exit;
2486 goto map_string_exit;
2492 goto map_string_exit;
2497 goto map_string_exit;
2503 goto map_string_exit;
2536 INT ret = 0, srclenW = 0;
2552 goto FoldStringA_exit;
2568 goto FoldStringA_exit;
2644 if (
flags & ~(supported_flags|semistub_flags))
2650 if (
flags & semistub_flags)
2653 FIXME(
"semi-stub behavior for flag(s) 0x%x\n",
flags & semistub_flags);
2656 if (len1 < 0) len1 =
strlenW(str1);
2657 if (len2 < 0) len2 =
strlenW(str2);
2699 WCHAR *buf2W = buf1W + 130;
2701 INT len1W = 0, len2W = 0,
ret;
2709 if (len1 < 0) len1 =
strlen(str1);
2710 if (len2 < 0) len2 =
strlen(str2);
2768#if (WINVER >= 0x0600)
2781 if (len1 < 0) len1 =
strlenW(str1);
2782 if (len2 < 0) len2 =
strlenW(str2);
2830 info->NameLength > valueNameSize ||
2831 info->DataLength > valueDataSize)
2839 szValueName[
info->NameLength /
sizeof(
WCHAR)] =
'\0';
2841 szValueData[
info->DataLength /
sizeof(
WCHAR)] =
'\0';
2889 ULONG iResourceIndex = lgrpid & 0xf;
2893 for (
i = 0;
i < iResourceIndex;
i++)
2894 lpResEntry += *lpResEntry + 1;
2896 if (*lpResEntry < nameSize)
2899 szName[*lpResEntry] =
'\0';
2921 WCHAR szNumber[10], szValue[4];
2949 FIXME(
"NLS registry key not found. Please apply the default registry file 'wine.inf'\n");
2954 szValue,
sizeof(szValue) ))
2956 BOOL bInstalled = szValue[0] ==
'1';
2960 bInstalled ?
"" :
"not ");
2964 WCHAR szGrpName[48];
2967 szGrpName[0] =
'\0';
2970 bContinue = lpProcs->
procW( lgrpid, szNumber, szGrpName, lpProcs->
dwFlags,
2974 char szNumberA[
sizeof(szNumber)/
sizeof(
WCHAR)];
2975 char szGrpNameA[48];
2984 bContinue = lpProcs->
procA( lgrpid, szNumberA, szGrpNameA, lpProcs->
dwFlags,
3025 procs.
procA = pLangGrpEnumProc;
3046 procs.
procW = pLangGrpEnumProc;
3068 static const WCHAR szFormat[] = {
'%',
'x',
'\0' };
3069 WCHAR szValueName[16], szValue[2];
3081 sprintfW( szValueName, szFormat, lgrpid );
3087 if (szValue[0] ==
'1')
3117 static const WCHAR szAlternateSortsKeyName[] = {
3118 'A',
'l',
't',
'e',
'r',
'n',
'a',
't',
'e',
' ',
'S',
'o',
'r',
't',
's',
'\0'
3120 WCHAR szNumber[10], szValue[4];
3141 WARN(
"NLS registry key not found. Please apply the default registry file 'wine.inf'\n");
3146 szValue,
sizeof(szValue) ))
3151 lgrpid, lgrpid == lpProcs->
lgrpid ?
"" :
"not ");
3153 if (lgrpid == lpProcs->
lgrpid)
3165 bContinue = lpProcs->
procW( lgrpid, lcid, szNumber, lpProcs->
lParam );
3168 char szNumberA[
sizeof(szNumber)/
sizeof(
WCHAR)];
3172 bContinue = lpProcs->
procA( lgrpid, lcid, szNumberA, lpProcs->
lParam );
3218 { 2, {
'A',
'G',0}, {
'A',
'T',
'G',0}, 10039880, 28 },
3219 { 3, {
'A',
'F',0}, {
'A',
'F',
'G',0}, 47614, 4 },
3220 { 4, {
'D',
'Z',0}, {
'D',
'Z',
'A',0}, 42487, 12 },
3221 { 5, {
'A',
'Z',0}, {
'A',
'Z',
'E',0}, 47611, 31 },
3222 { 6, {
'A',
'L',0}, {
'A',
'L',
'B',0}, 47610, 8 },
3223 { 7, {
'A',
'M',0}, {
'A',
'R',
'M',0}, 47611, 51 },
3224 { 8, {
'A',
'D',0}, {
'A',
'N',
'D',0}, 47610, 20 },
3225 { 9, {
'A',
'O',0}, {
'A',
'G',
'O',0}, 42484, 24 },
3226 { 10, {
'A',
'S',0}, {
'A',
'S',
'M',0}, 26286, 16 },
3227 { 11, {
'A',
'R',0}, {
'A',
'R',
'G',0}, 31396, 32 },
3228 { 12, {
'A',
'U',0}, {
'A',
'U',
'S',0}, 10210825, 36 },
3229 { 14, {
'A',
'T',0}, {
'A',
'U',
'T',0}, 10210824, 40 },
3230 { 17, {
'B',
'H',0}, {
'B',
'H',
'R',0}, 47611, 48 },
3231 { 18, {
'B',
'B',0}, {
'B',
'R',
'B',0}, 10039880, 52 },
3232 { 19, {
'B',
'W',0}, {
'B',
'W',
'A',0}, 10039883, 72 },
3233 { 20, {
'B',
'M',0}, {
'B',
'M',
'U',0}, 23581, 60 },
3234 { 21, {
'B',
'E',0}, {
'B',
'E',
'L',0}, 10210824, 56 },
3235 { 22, {
'B',
'S',0}, {
'B',
'H',
'S',0}, 10039880, 44 },
3236 { 23, {
'B',
'D',0}, {
'B',
'G',
'D',0}, 47614, 50 },
3237 { 24, {
'B',
'Z',0}, {
'B',
'L',
'Z',0}, 27082, 84 },
3238 { 25, {
'B',
'A',0}, {
'B',
'I',
'H',0}, 47610, 70 },
3239 { 26, {
'B',
'O',0}, {
'B',
'O',
'L',0}, 31396, 68 },
3240 { 27, {
'M',
'M',0}, {
'M',
'M',
'R',0}, 47599, 104 },
3241 { 28, {
'B',
'J',0}, {
'B',
'E',
'N',0}, 42483, 204 },
3242 { 29, {
'B',
'Y',0}, {
'B',
'L',
'R',0}, 47609, 112 },
3243 { 30, {
'S',
'B',0}, {
'S',
'L',
'B',0}, 20900, 90 },
3244 { 32, {
'B',
'R',0}, {
'B',
'R',
'A',0}, 31396, 76 },
3245 { 34, {
'B',
'T',0}, {
'B',
'T',
'N',0}, 47614, 64 },
3246 { 35, {
'B',
'G',0}, {
'B',
'G',
'R',0}, 47609, 100 },
3247 { 37, {
'B',
'N',0}, {
'B',
'R',
'N',0}, 47599, 96 },
3248 { 38, {
'B',
'I',0}, {
'B',
'D',
'I',0}, 47603, 108 },
3249 { 39, {
'C',
'A',0}, {
'C',
'A',
'N',0}, 23581, 124 },
3250 { 40, {
'K',
'H',0}, {
'K',
'H',
'M',0}, 47599, 116 },
3251 { 41, {
'T',
'D',0}, {
'T',
'C',
'D',0}, 42484, 148 },
3252 { 42, {
'L',
'K',0}, {
'L',
'K',
'A',0}, 47614, 144 },
3253 { 43, {
'C',
'G',0}, {
'C',
'O',
'G',0}, 42484, 178 },
3254 { 44, {
'C',
'D',0}, {
'C',
'O',
'D',0}, 42484, 180 },
3255 { 45, {
'C',
'N',0}, {
'C',
'H',
'N',0}, 47600, 156 },
3256 { 46, {
'C',
'L',0}, {
'C',
'H',
'L',0}, 31396, 152 },
3257 { 49, {
'C',
'M',0}, {
'C',
'M',
'R',0}, 42484, 120 },
3258 { 50, {
'K',
'M',0}, {
'C',
'O',
'M',0}, 47603, 174 },
3259 { 51, {
'C',
'O',0}, {
'C',
'O',
'L',0}, 31396, 170 },
3260 { 54, {
'C',
'R',0}, {
'C',
'R',
'I',0}, 27082, 188 },
3261 { 55, {
'C',
'F',0}, {
'C',
'A',
'F',0}, 42484, 140 },
3262 { 56, {
'C',
'U',0}, {
'C',
'U',
'B',0}, 10039880, 192 },
3263 { 57, {
'C',
'V',0}, {
'C',
'P',
'V',0}, 42483, 132 },
3264 { 59, {
'C',
'Y',0}, {
'C',
'Y',
'P',0}, 47611, 196 },
3265 { 61, {
'D',
'K',0}, {
'D',
'N',
'K',0}, 10039882, 208 },
3266 { 62, {
'D',
'J',0}, {
'D',
'J',
'I',0}, 47603, 262 },
3267 { 63, {
'D',
'M',0}, {
'D',
'M',
'A',0}, 10039880, 212 },
3268 { 65, {
'D',
'O',0}, {
'D',
'O',
'M',0}, 10039880, 214 },
3269 { 66, {
'E',
'C',0}, {
'E',
'C',
'U',0}, 31396, 218 },
3270 { 67, {
'E',
'G',0}, {
'E',
'G',
'Y',0}, 42487, 818 },
3271 { 68, {
'I',
'E',0}, {
'I',
'R',
'L',0}, 10039882, 372 },
3272 { 69, {
'G',
'Q',0}, {
'G',
'N',
'Q',0}, 42484, 226 },
3273 { 70, {
'E',
'E',0}, {
'E',
'S',
'T',0}, 10039882, 233 },
3274 { 71, {
'E',
'R',0}, {
'E',
'R',
'I',0}, 47603, 232 },
3275 { 72, {
'S',
'V',0}, {
'S',
'L',
'V',0}, 27082, 222 },
3276 { 73, {
'E',
'T',0}, {
'E',
'T',
'H',0}, 47603, 231 },
3277 { 75, {
'C',
'Z',0}, {
'C',
'Z',
'E',0}, 47609, 203 },
3278 { 77, {
'F',
'I',0}, {
'F',
'I',
'N',0}, 10039882, 246 },
3279 { 78, {
'F',
'J',0}, {
'F',
'J',
'I',0}, 20900, 242 },
3280 { 80, {
'F',
'M',0}, {
'F',
'S',
'M',0}, 21206, 583 },
3281 { 81, {
'F',
'O',0}, {
'F',
'R',
'O',0}, 10039882, 234 },
3282 { 84, {
'F',
'R',0}, {
'F',
'R',
'A',0}, 10210824, 250 },
3283 { 86, {
'G',
'M',0}, {
'G',
'M',
'B',0}, 42483, 270 },
3284 { 87, {
'G',
'A',0}, {
'G',
'A',
'B',0}, 42484, 266 },
3285 { 88, {
'G',
'E',0}, {
'G',
'E',
'O',0}, 47611, 268 },
3286 { 89, {
'G',
'H',0}, {
'G',
'H',
'A',0}, 42483, 288 },
3287 { 90, {
'G',
'I',0}, {
'G',
'I',
'B',0}, 47610, 292 },
3288 { 91, {
'G',
'D',0}, {
'G',
'R',
'D',0}, 10039880, 308 },
3289 { 93, {
'G',
'L',0}, {
'G',
'R',
'L',0}, 23581, 304 },
3290 { 94, {
'D',
'E',0}, {
'D',
'E',
'U',0}, 10210824, 276 },
3291 { 98, {
'G',
'R',0}, {
'G',
'R',
'C',0}, 47610, 300 },
3292 { 99, {
'G',
'T',0}, {
'G',
'T',
'M',0}, 27082, 320 },
3293 { 100, {
'G',
'N',0}, {
'G',
'I',
'N',0}, 42483, 324 },
3294 { 101, {
'G',
'Y',0}, {
'G',
'U',
'Y',0}, 31396, 328 },
3295 { 103, {
'H',
'T',0}, {
'H',
'T',
'I',0}, 10039880, 332 },
3296 { 104, {
'H',
'K',0}, {
'H',
'K',
'G',0}, 47600, 344 },
3297 { 106, {
'H',
'N',0}, {
'H',
'N',
'D',0}, 27082, 340 },
3298 { 108, {
'H',
'R',0}, {
'H',
'R',
'V',0}, 47610, 191 },
3299 { 109, {
'H',
'U',0}, {
'H',
'U',
'N',0}, 47609, 348 },
3300 { 110, {
'I',
'S',0}, {
'I',
'S',
'L',0}, 10039882, 352 },
3301 { 111, {
'I',
'D',0}, {
'I',
'D',
'N',0}, 47599, 360 },
3302 { 113, {
'I',
'N',0}, {
'I',
'N',
'D',0}, 47614, 356 },
3303 { 114, {
'I',
'O',0}, {
'I',
'O',
'T',0}, 39070, 86 },
3304 { 116, {
'I',
'R',0}, {
'I',
'R',
'N',0}, 47614, 364 },
3305 { 117, {
'I',
'L',0}, {
'I',
'S',
'R',0}, 47611, 376 },
3306 { 118, {
'I',
'T',0}, {
'I',
'T',
'A',0}, 47610, 380 },
3307 { 119, {
'C',
'I',0}, {
'C',
'I',
'V',0}, 42483, 384 },
3308 { 121, {
'I',
'Q',0}, {
'I',
'R',
'Q',0}, 47611, 368 },
3309 { 122, {
'J',
'P',0}, {
'J',
'P',
'N',0}, 47600, 392 },
3310 { 124, {
'J',
'M',0}, {
'J',
'A',
'M',0}, 10039880, 388 },
3311 { 125, {
'S',
'J',0}, {
'S',
'J',
'M',0}, 10039882, 744 },
3312 { 126, {
'J',
'O',0}, {
'J',
'O',
'R',0}, 47611, 400 },
3313 { 127, {
'X',
'X',0}, {
'X',
'X',0}, 161832256 },
3314 { 129, {
'K',
'E',0}, {
'K',
'E',
'N',0}, 47603, 404 },
3315 { 130, {
'K',
'G',0}, {
'K',
'G',
'Z',0}, 47590, 417 },
3316 { 131, {
'K',
'P',0}, {
'P',
'R',
'K',0}, 47600, 408 },
3317 { 133, {
'K',
'I',0}, {
'K',
'I',
'R',0}, 21206, 296 },
3318 { 134, {
'K',
'R',0}, {
'K',
'O',
'R',0}, 47600, 410 },
3319 { 136, {
'K',
'W',0}, {
'K',
'W',
'T',0}, 47611, 414 },
3320 { 137, {
'K',
'Z',0}, {
'K',
'A',
'Z',0}, 47590, 398 },
3321 { 138, {
'L',
'A',0}, {
'L',
'A',
'O',0}, 47599, 418 },
3322 { 139, {
'L',
'B',0}, {
'L',
'B',
'N',0}, 47611, 422 },
3323 { 140, {
'L',
'V',0}, {
'L',
'V',
'A',0}, 10039882, 428 },
3324 { 141, {
'L',
'T',0}, {
'L',
'T',
'U',0}, 10039882, 440 },
3325 { 142, {
'L',
'R',0}, {
'L',
'B',
'R',0}, 42483, 430 },
3326 { 143, {
'S',
'K',0}, {
'S',
'V',
'K',0}, 47609, 703 },
3327 { 145, {
'L',
'I',0}, {
'L',
'I',
'E',0}, 10210824, 438 },
3328 { 146, {
'L',
'S',0}, {
'L',
'S',
'O',0}, 10039883, 426 },
3329 { 147, {
'L',
'U',0}, {
'L',
'U',
'X',0}, 10210824, 442 },
3330 { 148, {
'L',
'Y',0}, {
'L',
'B',
'Y',0}, 42487, 434 },
3331 { 149, {
'M',
'G',0}, {
'M',
'D',
'G',0}, 47603, 450 },
3332 { 151, {
'M',
'O',0}, {
'M',
'A',
'C',0}, 47600, 446 },
3333 { 152, {
'M',
'D',0}, {
'M',
'D',
'A',0}, 47609, 498 },
3334 { 154, {
'M',
'N',0}, {
'M',
'N',
'G',0}, 47600, 496 },
3335 { 156, {
'M',
'W',0}, {
'M',
'W',
'I',0}, 47603, 454 },
3336 { 157, {
'M',
'L',0}, {
'M',
'L',
'I',0}, 42483, 466 },
3337 { 158, {
'M',
'C',0}, {
'M',
'C',
'O',0}, 10210824, 492 },
3338 { 159, {
'M',
'A',0}, {
'M',
'A',
'R',0}, 42487, 504 },
3339 { 160, {
'M',
'U',0}, {
'M',
'U',
'S',0}, 47603, 480 },
3340 { 162, {
'M',
'R',0}, {
'M',
'R',
'T',0}, 42483, 478 },
3341 { 163, {
'M',
'T',0}, {
'M',
'L',
'T',0}, 47610, 470 },
3342 { 164, {
'O',
'M',0}, {
'O',
'M',
'N',0}, 47611, 512 },
3343 { 165, {
'M',
'V',0}, {
'M',
'D',
'V',0}, 47614, 462 },
3344 { 166, {
'M',
'X',0}, {
'M',
'E',
'X',0}, 27082, 484 },
3345 { 167, {
'M',
'Y',0}, {
'M',
'Y',
'S',0}, 47599, 458 },
3346 { 168, {
'M',
'Z',0}, {
'M',
'O',
'Z',0}, 47603, 508 },
3347 { 173, {
'N',
'E',0}, {
'N',
'E',
'R',0}, 42483, 562 },
3348 { 174, {
'V',
'U',0}, {
'V',
'U',
'T',0}, 20900, 548 },
3349 { 175, {
'N',
'G',0}, {
'N',
'G',
'A',0}, 42483, 566 },
3350 { 176, {
'N',
'L',0}, {
'N',
'L',
'D',0}, 10210824, 528 },
3351 { 177, {
'N',
'O',0}, {
'N',
'O',
'R',0}, 10039882, 578 },
3352 { 178, {
'N',
'P',0}, {
'N',
'P',
'L',0}, 47614, 524 },
3353 { 180, {
'N',
'R',0}, {
'N',
'R',
'U',0}, 21206, 520 },
3354 { 181, {
'S',
'R',0}, {
'S',
'U',
'R',0}, 31396, 740 },
3355 { 182, {
'N',
'I',0}, {
'N',
'I',
'C',0}, 27082, 558 },
3356 { 183, {
'N',
'Z',0}, {
'N',
'Z',
'L',0}, 10210825, 554 },
3357 { 184, {
'P',
'S',0}, {
'P',
'S',
'E',0}, 47611, 275 },
3358 { 185, {
'P',
'Y',0}, {
'P',
'R',
'Y',0}, 31396, 600 },
3359 { 187, {
'P',
'E',0}, {
'P',
'E',
'R',0}, 31396, 604 },
3360 { 190, {
'P',
'K',0}, {
'P',
'A',
'K',0}, 47614, 586 },
3361 { 191, {
'P',
'L',0}, {
'P',
'O',
'L',0}, 47609, 616 },
3362 { 192, {
'P',
'A',0}, {
'P',
'A',
'N',0}, 27082, 591 },
3363 { 193, {
'P',
'T',0}, {
'P',
'R',
'T',0}, 47610, 620 },
3364 { 194, {
'P',
'G',0}, {
'P',
'N',
'G',0}, 20900, 598 },
3365 { 195, {
'P',
'W',0}, {
'P',
'L',
'W',0}, 21206, 585 },
3366 { 196, {
'G',
'W',0}, {
'G',
'N',
'B',0}, 42483, 624 },
3367 { 197, {
'Q',
'A',0}, {
'Q',
'A',
'T',0}, 47611, 634 },
3368 { 198, {
'R',
'E',0}, {
'R',
'E',
'U',0}, 47603, 638 },
3369 { 199, {
'M',
'H',0}, {
'M',
'H',
'L',0}, 21206, 584 },
3370 { 200, {
'R',
'O',0}, {
'R',
'O',
'U',0}, 47609, 642 },
3371 { 201, {
'P',
'H',0}, {
'P',
'H',
'L',0}, 47599, 608 },
3372 { 202, {
'P',
'R',0}, {
'P',
'R',
'I',0}, 10039880, 630 },
3373 { 203, {
'R',
'U',0}, {
'R',
'U',
'S',0}, 47609, 643 },
3374 { 204, {
'R',
'W',0}, {
'R',
'W',
'A',0}, 47603, 646 },
3375 { 205, {
'S',
'A',0}, {
'S',
'A',
'U',0}, 47611, 682 },
3376 { 206, {
'P',
'M',0}, {
'S',
'P',
'M',0}, 23581, 666 },
3377 { 207, {
'K',
'N',0}, {
'K',
'N',
'A',0}, 10039880, 659 },
3378 { 208, {
'S',
'C',0}, {
'S',
'Y',
'C',0}, 47603, 690 },
3379 { 209, {
'Z',
'A',0}, {
'Z',
'A',
'F',0}, 10039883, 710 },
3380 { 210, {
'S',
'N',0}, {
'S',
'E',
'N',0}, 42483, 686 },
3381 { 212, {
'S',
'I',0}, {
'S',
'V',
'N',0}, 47610, 705 },
3382 { 213, {
'S',
'L',0}, {
'S',
'L',
'E',0}, 42483, 694 },
3383 { 214, {
'S',
'M',0}, {
'S',
'M',
'R',0}, 47610, 674 },
3384 { 215, {
'S',
'G',0}, {
'S',
'G',
'P',0}, 47599, 702 },
3385 { 216, {
'S',
'O',0}, {
'S',
'O',
'M',0}, 47603, 706 },
3386 { 217, {
'E',
'S',0}, {
'E',
'S',
'P',0}, 47610, 724 },
3387 { 218, {
'L',
'C',0}, {
'L',
'C',
'A',0}, 10039880, 662 },
3388 { 219, {
'S',
'D',0}, {
'S',
'D',
'N',0}, 42487, 736 },
3389 { 220, {
'S',
'J',0}, {
'S',
'J',
'M',0}, 10039882, 744 },
3390 { 221, {
'S',
'E',0}, {
'S',
'W',
'E',0}, 10039882, 752 },
3391 { 222, {
'S',
'Y',0}, {
'S',
'Y',
'R',0}, 47611, 760 },
3392 { 223, {
'C',
'H',0}, {
'C',
'H',
'E',0}, 10210824, 756 },
3393 { 224, {
'A',
'E',0}, {
'A',
'R',
'E',0}, 47611, 784 },
3394 { 225, {
'T',
'T',0}, {
'T',
'T',
'O',0}, 10039880, 780 },
3395 { 227, {
'T',
'H',0}, {
'T',
'H',
'A',0}, 47599, 764 },
3396 { 228, {
'T',
'J',0}, {
'T',
'J',
'K',0}, 47590, 762 },
3397 { 231, {
'T',
'O',0}, {
'T',
'O',
'N',0}, 26286, 776 },
3398 { 232, {
'T',
'G',0}, {
'T',
'G',
'O',0}, 42483, 768 },
3399 { 233, {
'S',
'T',0}, {
'S',
'T',
'P',0}, 42484, 678 },
3400 { 234, {
'T',
'N',0}, {
'T',
'U',
'N',0}, 42487, 788 },
3401 { 235, {
'T',
'R',0}, {
'T',
'U',
'R',0}, 47611, 792 },
3402 { 236, {
'T',
'V',0}, {
'T',
'U',
'V',0}, 26286, 798 },
3403 { 237, {
'T',
'W',0}, {
'T',
'W',
'N',0}, 47600, 158 },
3404 { 238, {
'T',
'M',0}, {
'T',
'K',
'M',0}, 47590, 795 },
3405 { 239, {
'T',
'Z',0}, {
'T',
'Z',
'A',0}, 47603, 834 },
3406 { 240, {
'U',
'G',0}, {
'U',
'G',
'A',0}, 47603, 800 },
3407 { 241, {
'U',
'A',0}, {
'U',
'K',
'R',0}, 47609, 804 },
3408 { 242, {
'G',
'B',0}, {
'G',
'B',
'R',0}, 10039882, 826 },
3409 { 244, {
'U',
'S',0}, {
'U',
'S',
'A',0}, 23581, 840 },
3410 { 245, {
'B',
'F',0}, {
'B',
'F',
'A',0}, 42483, 854 },
3411 { 246, {
'U',
'Y',0}, {
'U',
'R',
'Y',0}, 31396, 858 },
3412 { 247, {
'U',
'Z',0}, {
'U',
'Z',
'B',0}, 47590, 860 },
3413 { 248, {
'V',
'C',0}, {
'V',
'C',
'T',0}, 10039880, 670 },
3414 { 249, {
'V',
'E',0}, {
'V',
'E',
'N',0}, 31396, 862 },
3415 { 251, {
'V',
'N',0}, {
'V',
'N',
'M',0}, 47599, 704 },
3416 { 252, {
'V',
'I',0}, {
'V',
'I',
'R',0}, 10039880, 850 },
3417 { 253, {
'V',
'A',0}, {
'V',
'A',
'T',0}, 47610, 336 },
3418 { 254, {
'N',
'A',0}, {
'N',
'A',
'M',0}, 10039883, 516 },
3419 { 257, {
'E',
'H',0}, {
'E',
'S',
'H',0}, 42487, 732 },
3420 { 258, {
'X',
'X',0}, {
'X',
'X',0}, 161832256 },
3421 { 259, {
'W',
'S',0}, {
'W',
'S',
'M',0}, 26286, 882 },
3422 { 260, {
'S',
'Z',0}, {
'S',
'W',
'Z',0}, 10039883, 748 },
3423 { 261, {
'Y',
'E',0}, {
'Y',
'E',
'M',0}, 47611, 887 },
3424 { 263, {
'Z',
'M',0}, {
'Z',
'M',
'B',0}, 47603, 894 },
3425 { 264, {
'Z',
'W',0}, {
'Z',
'W',
'E',0}, 47603, 716 },
3426 { 269, {
'C',
'S',0}, {
'S',
'C',
'G',0}, 47610, 891 },
3427 { 270, {
'M',
'E',0}, {
'M',
'N',
'E',0}, 47610, 499 },
3428 { 271, {
'R',
'S',0}, {
'S',
'R',
'B',0}, 47610, 688 },
3429 { 273, {
'C',
'W',0}, {
'C',
'U',
'W',0}, 10039880, 531 },
3430 { 276, {
'S',
'S',0}, {
'S',
'S',
'D',0}, 42487, 728 },
3431 { 300, {
'A',
'I',0}, {
'A',
'I',
'A',0}, 10039880, 660 },
3432 { 301, {
'A',
'Q',0}, {
'A',
'T',
'A',0}, 39070, 10 },
3433 { 302, {
'A',
'W',0}, {
'A',
'B',
'W',0}, 10039880, 533 },
3434 { 303, {
'X',
'X',0}, {
'X',
'X',0}, 39070 },
3435 { 304, {
'X',
'X',0}, {
'X',
'X',0}, 10210825 },
3436 { 305, {
'X',
'X',0}, {
'X',
'X',0}, 161832256 },
3437 { 306, {
'B',
'V',0}, {
'B',
'V',
'T',0}, 39070, 74 },
3438 { 307, {
'K',
'Y',0}, {
'C',
'Y',
'M',0}, 10039880, 136 },
3439 { 308, {
'X',
'X',0}, {
'X',
'X',0}, 10210824, 0,
LOCATION_BOTH },
3440 { 309, {
'C',
'X',0}, {
'C',
'X',
'R',0}, 12, 162 },
3441 { 310, {
'X',
'X',0}, {
'X',
'X',0}, 27114 },
3442 { 311, {
'C',
'C',0}, {
'C',
'C',
'K',0}, 10210825, 166 },
3443 { 312, {
'C',
'K',0}, {
'C',
'O',
'K',0}, 26286, 184 },
3444 { 313, {
'X',
'X',0}, {
'X',
'X',0}, 10210825 },
3445 { 314, {
'X',
'X',0}, {
'X',
'X',0}, 114 },
3446 { 315, {
'F',
'K',0}, {
'F',
'L',
'K',0}, 31396, 238 },
3447 { 317, {
'G',
'F',0}, {
'G',
'U',
'F',0}, 31396, 254 },
3448 { 318, {
'P',
'F',0}, {
'P',
'Y',
'F',0}, 26286, 258 },
3449 { 319, {
'T',
'F',0}, {
'A',
'T',
'F',0}, 39070, 260 },
3450 { 321, {
'G',
'P',0}, {
'G',
'L',
'P',0}, 10039880, 312 },
3451 { 322, {
'G',
'U',0}, {
'G',
'U',
'M',0}, 21206, 316 },
3452 { 323, {
'X',
'X',0}, {
'X',
'X',0}, 39070 },
3453 { 324, {
'G',
'G',0}, {
'G',
'G',
'Y',0}, 308, 831 },
3454 { 325, {
'H',
'M',0}, {
'H',
'M',
'D',0}, 39070, 334 },
3455 { 326, {
'X',
'X',0}, {
'X',
'X',0}, 161832256 },
3456 { 327, {
'X',
'X',0}, {
'X',
'X',0}, 161832256 },
3457 { 328, {
'J',
'E',0}, {
'J',
'E',
'Y',0}, 308, 832 },
3458 { 329, {
'X',
'X',0}, {
'X',
'X',0}, 161832256 },
3459 { 330, {
'M',
'Q',0}, {
'M',
'T',
'Q',0}, 10039880, 474 },
3460 { 331, {
'Y',
'T',0}, {
'M',
'Y',
'T',0}, 47603, 175 },
3461 { 332, {
'M',
'S',0}, {
'M',
'S',
'R',0}, 10039880, 500 },
3462 { 333, {
'A',
'N',0}, {
'A',
'N',
'T',0}, 10039880, 530,
LOCATION_BOTH },
3463 { 334, {
'N',
'C',0}, {
'N',
'C',
'L',0}, 20900, 540 },
3464 { 335, {
'N',
'U',0}, {
'N',
'I',
'U',0}, 26286, 570 },
3465 { 336, {
'N',
'F',0}, {
'N',
'F',
'K',0}, 10210825, 574 },
3466 { 337, {
'M',
'P',0}, {
'M',
'N',
'P',0}, 21206, 580 },
3467 { 338, {
'X',
'X',0}, {
'X',
'X',0}, 161832256 },
3468 { 339, {
'P',
'N',0}, {
'P',
'C',
'N',0}, 26286, 612 },
3469 { 340, {
'X',
'X',0}, {
'X',
'X',0}, 337 },
3470 { 341, {
'X',
'X',0}, {
'X',
'X',0}, 337 },
3471 { 342, {
'G',
'S',0}, {
'S',
'G',
'S',0}, 39070, 239 },
3472 { 343, {
'S',
'H',0}, {
'S',
'H',
'N',0}, 42483, 654 },
3473 { 346, {
'X',
'X',0}, {
'X',
'X',0}, 337 },
3474 { 347, {
'T',
'K',0}, {
'T',
'K',
'L',0}, 26286, 772 },
3475 { 348, {
'X',
'X',0}, {
'X',
'X',0}, 39070 },
3476 { 349, {
'T',
'C',0}, {
'T',
'C',
'A',0}, 10039880, 796 },
3477 { 351, {
'V',
'G',0}, {
'V',
'G',
'B',0}, 10039880, 92 },
3478 { 352, {
'W',
'F',0}, {
'W',
'L',
'F',0}, 26286, 876 },
3479 { 742, {
'X',
'X',0}, {
'X',
'X',0}, 39070, 0,
LOCATION_REGION },
3480 { 2129, {
'X',
'X',0}, {
'X',
'X',0}, 39070, 0,
LOCATION_REGION },
3481 { 10541, {
'X',
'X',0}, {
'X',
'X',0}, 39070, 0,
LOCATION_REGION },
3482 { 15126, {
'I',
'M',0}, {
'I',
'M',
'N',0}, 10039882, 833 },
3483 { 19618, {
'M',
'K',0}, {
'M',
'K',
'D',0}, 47610, 807 },
3484 { 20900, {
'X',
'X',0}, {
'X',
'X',0}, 27114, 0,
LOCATION_REGION },
3485 { 21206, {
'X',
'X',0}, {
'X',
'X',0}, 27114, 0,
LOCATION_REGION },
3486 { 21242, {
'X',
'X',0}, {
'X',
'X',0}, 161832256 },
3487 { 23581, {
'X',
'X',0}, {
'X',
'X',0}, 10026358, 0,
LOCATION_REGION },
3488 { 26286, {
'X',
'X',0}, {
'X',
'X',0}, 27114, 0,
LOCATION_REGION },
3489 { 27082, {
'X',
'X',0}, {
'X',
'X',0}, 161832257, 0,
LOCATION_REGION },
3490 { 27114, {
'X',
'X',0}, {
'X',
'X',0}, 39070, 0,
LOCATION_REGION },
3491 { 30967, {
'S',
'X',0}, {
'S',
'X',
'M',0}, 10039880, 534 },
3492 { 31396, {
'X',
'X',0}, {
'X',
'X',0}, 161832257, 0,
LOCATION_REGION },
3493 { 31706, {
'M',
'F',0}, {
'M',
'A',
'F',0}, 10039880, 663 },
3494 { 39070, {
'X',
'X',0}, {
'X',
'X',0}, 39070, 0,
LOCATION_REGION },
3495 { 42483, {
'X',
'X',0}, {
'X',
'X',0}, 742, 0,
LOCATION_REGION },
3496 { 42484, {
'X',
'X',0}, {
'X',
'X',0}, 742, 0,
LOCATION_REGION },
3497 { 42487, {
'X',
'X',0}, {
'X',
'X',0}, 742, 0,
LOCATION_REGION },
3498 { 47590, {
'X',
'X',0}, {
'X',
'X',0}, 2129, 0,
LOCATION_REGION },
3499 { 47599, {
'X',
'X',0}, {
'X',
'X',0}, 2129, 0,
LOCATION_REGION },
3500 { 47600, {
'X',
'X',0}, {
'X',
'X',0}, 2129, 0,
LOCATION_REGION },
3501 { 47603, {
'X',
'X',0}, {
'X',
'X',0}, 742, 0,
LOCATION_REGION },
3502 { 47609, {
'X',
'X',0}, {
'X',
'X',0}, 10541, 0,
LOCATION_REGION },
3503 { 47610, {
'X',
'X',0}, {
'X',
'X',0}, 10541, 0,
LOCATION_REGION },
3504 { 47611, {
'X',
'X',0}, {
'X',
'X',0}, 2129, 0,
LOCATION_REGION },
3505 { 47614, {
'X',
'X',0}, {
'X',
'X',0}, 2129, 0,
LOCATION_REGION },
3506 { 7299303, {
'T',
'L',0}, {
'T',
'L',
'S',0}, 47599, 626 },
3507 { 10026358, {
'X',
'X',0}, {
'X',
'X',0}, 39070, 0,
LOCATION_REGION },
3508 { 10028789, {
'A',
'X',0}, {
'A',
'L',
'A',0}, 10039882, 248 },
3509 { 10039880, {
'X',
'X',0}, {
'X',
'X',0}, 161832257, 0,
LOCATION_REGION },
3510 { 10039882, {
'X',
'X',0}, {
'X',
'X',0}, 10541, 0,
LOCATION_REGION },
3511 { 10039883, {
'X',
'X',0}, {
'X',
'X',0}, 742, 0,
LOCATION_REGION },
3512 { 10210824, {
'X',
'X',0}, {
'X',
'X',0}, 10541, 0,
LOCATION_REGION },
3513 { 10210825, {
'X',
'X',0}, {
'X',
'X',0}, 27114, 0,
LOCATION_REGION },
3514 { 161832015, {
'B',
'L',0}, {
'B',
'L',
'M',0}, 10039880, 652 },
3515 { 161832256, {
'U',
'M',0}, {
'U',
'M',
'I',0}, 27114, 581 },
3516 { 161832257, {
'X',
'X',0}, {
'X',
'X',0}, 10026358, 0,
LOCATION_REGION },
3603 hKey =
NLS_RegOpenKey(0,
L"\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Control\\NLS\\CodePage");
3606 WARN(
"NLS_RegOpenKey() failed\n");
3613 szValue,
sizeof(szValue)))
3620 bContinue = lpProcs->
procW(szNumber);
3624 char szNumberA[
sizeof(szNumber)/
sizeof(
WCHAR)];
3627 bContinue = lpProcs->
procA(szNumberA);
3633 }
else bContinue =
FALSE;
3660 procs.
procW = lpCodePageEnumProc;
3681 procs.
procA = lpCodePageEnumProc;
3706 TRACE(
"(%d, %d, %p)\n", geoclass,
parent, enumproc);
3730 if (!enumproc(
ptr->id))
3766 static const WCHAR geoW[] = {
'G',
'e',
'o',0};
3767 static const WCHAR nationW[] = {
'N',
'a',
't',
'i',
'o',
'n',0};
3770 HANDLE hkey, hSubkey = 0;
3774 count =
sizeof(bufferW);
3788 FIXME(
"GEOCLASS_REGION not handled yet\n");
3793 if (hSubkey)
NtClose(hSubkey);
3802 static const WCHAR geoW[] = {
'G',
'e',
'o',0};
3803 static const WCHAR nationW[] = {
'N',
'a',
't',
'i',
'o',
'n',0};
3804 static const WCHAR formatW[] = {
'%',
'i',0};
3813 attr.RootDirectory = hkey;
3815 attr.Attributes = 0;
3817 attr.SecurityQualityOfService =
NULL;
3859 static const WCHAR formatW[] = {
'%',
'0',
'8',
'x',0};
3876 if(!pUILangEnumProc) {
3885 enum_uilang.
u.
procA = pUILangEnumProc;
3905 if(!pUILangEnumProc) {
3914 enum_uilang.
u.
procW = pUILangEnumProc;
3947 return strlenW(szFriendlyName) + 1;
3964 if (geoid ==
ptr->id)
3968 if (
ptr->id > geoid)
3988 TRACE(
"%d %d %p %d %d\n", geoid, geotype,
data, data_len,
lang);
4026 FIXME(
"type %d is not supported\n", geotype);
4030 WARN(
"unrecognized type %d\n", geotype);
4036 static const WCHAR fmtW[] = {
'%',
'd',0};
4042 if (!
data || !data_len)
4048 return data_len <
len ? 0 :
len;
4059 TRACE(
"%d %d %p %d %d\n", geoid, geotype,
data, data_len,
lang);
4071 if (!
data || !data_len) {
4081 return data_len <
len ? 0 :
len;
ACPI_SIZE strlen(const char *String)
static const WCHAR nameW[]
#define DEBUG_CHANNEL(args)
#define ERROR_NOT_ENOUGH_MEMORY
#define ERROR_INSUFFICIENT_BUFFER
#define ERROR_CALL_NOT_IMPLEMENTED
#define ERROR_INVALID_PARAMETER
#define HeapFree(x, y, z)
#define WideCharToMultiByte
#define MultiByteToWideChar
static const WCHAR version[]
static const WCHAR valueW[]
BOOL WINAPI WriteProfileStringW(LPCWSTR section, LPCWSTR entry, LPCWSTR string)
BOOL WINAPI FreeResource(HGLOBAL handle)
DWORD WINAPI SizeofResource(HINSTANCE hModule, HRSRC hRsrc)
BOOL WINAPI EnumResourceLanguagesA(HMODULE hmod, LPCSTR type, LPCSTR name, ENUMRESLANGPROCA lpfun, LONG_PTR lparam)
LPVOID WINAPI LockResource(HGLOBAL handle)
HRSRC WINAPI FindResourceExW(HMODULE hModule, LPCWSTR type, LPCWSTR name, WORD lang)
HGLOBAL WINAPI LoadResource(HINSTANCE hModule, HRSRC hRsrc)
BOOL WINAPI EnumResourceLanguagesW(HMODULE hmod, LPCWSTR type, LPCWSTR name, ENUMRESLANGPROCW lpfun, LONG_PTR lparam)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei GLenum type
GLint GLint GLint GLint GLint GLint y
GLuint GLuint GLsizei count
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLboolean GLboolean GLboolean b
GLenum GLuint GLenum GLsizei const GLchar * buf
GLuint GLsizei GLsizei * length
GLboolean GLboolean GLboolean GLboolean a
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
WINE_UNICODE_INLINE unsigned short get_char_typeW(WCHAR ch)
_Check_return_ _CRTIMP int __cdecl isalnum(_In_ int _C)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define OBJ_CASE_INSENSITIVE
NTSYSAPI ULONG WINAPI RtlNtStatusToDosError(NTSTATUS)
void JapaneseEra_ClearCache(void)
GEOID WINAPI GetUserGeoID(GEOCLASS GeoClass)
static int map_to_simplified_chinese(DWORD flags, const WCHAR *src, int srclen, WCHAR *dst, int dstlen)
#define LOCALE_NAME_USER_DEFAULT
static int map_to_traditional_chinese(DWORD flags, const WCHAR *src, int srclen, WCHAR *dst, int dstlen)
LCID WINAPI GetThreadLocale(void)
static WCHAR find_wchar_pair(const WCHAR_PAIR *pairs, size_t count, WCHAR ch)
BOOL WINAPI SetThreadLocale(LCID lcid)
static const WCHAR iLZeroW[]
static const WCHAR sLanguageW[]
static const WCHAR iDateW[]
static const WCHAR iMeasureW[]
static void strcpynAtoW(WCHAR *dst, const char *src, size_t n)
static BOOL NLS_EnumSystemLanguageGroups(ENUMLANGUAGEGROUP_CALLBACKS *lpProcs)
static const WCHAR sLongDateW[]
BOOL WINAPI EnumSystemLocalesW(LOCALE_ENUMPROCW lpfnLocaleEnum, DWORD dwFlags)
static BOOL CALLBACK enum_lang_proc_w(HMODULE hModule, LPCWSTR type, LPCWSTR name, WORD LangID, LONG_PTR lParam)
static const struct geoinfo_t geoinfodata[]
INT WINAPI LCMapStringA(LCID lcid, DWORD flags, LPCSTR src, INT srclen, LPSTR dst, INT dstlen)
static int map_to_lowercase(DWORD flags, const WCHAR *src, int srclen, WCHAR *dst, int dstlen)
static int map_to_uppercase(DWORD flags, const WCHAR *src, int srclen, WCHAR *dst, int dstlen)
static struct registry_value * get_locale_registry_value(DWORD lctype)
static const WCHAR iDigitsW[]
static const WCHAR iFirstDayOfWeekW[]
static UINT get_lcid_codepage(LCID lcid)
static const WCHAR sMonDecimalSepW[]
static const WCHAR sNegativeSignW[]
struct tagWCHAR_PAIR * PWCHAR_PAIR
static LCID lcid_LC_MONETARY
static int map_to_fullwidth(const WCHAR *src, int srclen, WCHAR *dst, int dstlen)
BOOL WINAPI GetStringTypeA(LCID locale, DWORD type, LPCSTR src, INT count, LPWORD chartype)
static BOOL CALLBACK enum_lang_proc_a(HMODULE hModule, LPCSTR type, LPCSTR name, WORD LangID, LONG_PTR lParam)
BOOL WINAPI EnumSystemLanguageGroupsW(LANGUAGEGROUP_ENUMPROCW pLangGrpEnumProc, DWORD dwFlags, LONG_PTR lParam)
static INT get_registry_locale_info(struct registry_value *registry_value, LPWSTR buffer, INT len)
static LCID convert_default_lcid(LCID lcid, LCTYPE lctype)
static const WCHAR szLocaleKeyName[]
static const WCHAR sThousandW[]
BOOL WINAPI IsValidLanguageGroup(LGRPID lgrpid, DWORD dwFlags)
static BOOL CALLBACK enum_locale_ex_proc(HMODULE module, LPCWSTR type, LPCWSTR name, WORD lang, LONG_PTR lparam)
static const WCHAR iFirstWeekOfYearW[]
static const WCHAR szLangGroupsKeyName[]
static BOOL is_genitive_name_supported(LCTYPE lctype)
UINT GetLocalisedText(IN UINT uID, IN LPWSTR lpszDest, IN UINT cchDest)
INT WINAPI FoldStringA(DWORD dwFlags, LPCSTR src, INT srclen, LPSTR dst, INT dstlen)
#define LOCALE_LOCALEINFOFLAGSMASK
#define GET_SINGLE1(table, index)
static const WCHAR sMonGroupingW[]
static const WCHAR sTimeW[]
static RTL_CRITICAL_SECTION cache_section
LANGID WINAPI GetSystemDefaultLangID(void)
static BOOL NLS_EnumLanguageGroupLocales(ENUMLANGUAGEGROUPLOCALE_CALLBACKS *lpProcs)
INT WINAPI CompareStringA(LCID lcid, DWORD flags, LPCSTR str1, INT len1, LPCSTR str2, INT len2)
#define GET_HALF2(table, index)
int wine_get_sortkey(int flags, const WCHAR *src, int srclen, char *dst, int dstlen)
static const WCHAR iPaperSizeW[]
static const WCHAR iCurrencyW[]
static int map_remove_ignored(DWORD flags, const WCHAR *src, int srclen, WCHAR *dst, int dstlen)
static const WCHAR iCountryW[]
static BOOL NLS_EnumSystemCodePages(ENUMSYSTEMCODEPAGES_CALLBACKS *lpProcs)
static LCID lcid_LC_NUMERIC
static const struct geoinfo_t * get_geoinfo_dataptr(GEOID geoid)
static const WCHAR s2359W[]
INT WINAPI CompareStringW(LCID lcid, DWORD flags, LPCWSTR str1, INT len1, LPCWSTR str2, INT len2)
int wine_fold_string(int flags, const WCHAR *src, int srclen, WCHAR *dst, int dstlen)
BOOL WINAPI SetUserGeoID(GEOID GeoID)
LANGID WINAPI GetUserDefaultUILanguage(void)
static const WCHAR s1159W[]
BOOL WINAPI GetStringTypeExA(LCID locale, DWORD type, LPCSTR src, INT count, LPWORD chartype)
static const WCHAR NumShapeW[]
static const WCHAR sCurrencyW[]
DWORD WINAPI VerLanguageNameW(DWORD wLang, LPWSTR szLang, DWORD nSize)
static const WCHAR iNegNumberW[]
static const WCHAR iCalendarTypeW[]
static const WCHAR_PAIR s_sim2tra[]
static BOOL NLS_RegEnumValue(HANDLE hKey, UINT ulIndex, LPWSTR szValueName, ULONG valueNameSize, LPWSTR szValueData, ULONG valueDataSize)
static BOOL NLS_GetLanguageGroupName(LGRPID lgrpid, LPWSTR szName, ULONG nameSize)
static const WCHAR iTLZeroW[]
#define GET_VOICED(table, index)
static const WCHAR iLDateW[]
static LCID lcid_LC_COLLATE
INT WINAPI GetLocaleInfoA(LCID lcid, LCTYPE lctype, LPSTR buffer, INT len)
struct tagWCHAR_PAIR WCHAR_PAIR
static int map_to_katakana(const WCHAR *src, int srclen, WCHAR *dst, int dstlen)
static int get_value_base_by_lctype(LCTYPE lctype)
static const WCHAR iCurrDigitsW[]
static struct registry_value registry_values[]
static const WCHAR sCountryW[]
static BOOL CALLBACK enum_uilang_proc_a(HMODULE hModule, LPCSTR type, LPCSTR name, WORD LangID, LONG_PTR lParam)
INT WINAPI GetGeoInfoW(GEOID geoid, GEOTYPE geotype, LPWSTR data, int data_len, LANGID lang)
BOOL WINAPI EnumUILanguagesW(UILANGUAGE_ENUMPROCW pUILangEnumProc, DWORD dwFlags, LONG_PTR lParam)
static const WCHAR sGroupingW[]
#define GET_SINGLE2(table, index)
BOOL WINAPI EnumSystemLocalesA(LOCALE_ENUMPROCA lpfnLocaleEnum, DWORD dwFlags)
static const WCHAR sTimeFormatW[]
static LCID lcid_LC_CTYPE
static HANDLE create_registry_key(void)
DWORD WINAPI VerLanguageNameA(DWORD wLang, LPSTR szLang, DWORD nSize)
static void map_byterev(const WCHAR *src, int len, WCHAR *dst)
INT WINAPI LCMapStringEx(LPCWSTR locale, DWORD flags, LPCWSTR src, INT srclen, LPWSTR dst, INT dstlen, LPNLSVERSIONINFO version, LPVOID reserved, LPARAM handle)
static BOOL NLS_RegGetDword(HANDLE hKey, LPCWSTR szValueName, DWORD *lpVal)
BOOL WINAPI EnumSystemCodePagesA(CODEPAGE_ENUMPROCA lpCodePageEnumProc, DWORD dwFlags)
LANGID WINAPI GetSystemDefaultUILanguage(void)
static LCID lcid_LC_MEASUREMENT
BOOL WINAPI GetStringTypeW(DWORD type, LPCWSTR src, INT count, LPWORD chartype)
static const FULL2HALF_ENTRY full2half_table[]
static const WCHAR iTimePrefixW[]
BOOL WINAPI IsValidLocale(LCID lcid, DWORD flags)
static int map_to_halfwidth(DWORD flags, const WCHAR *src, int srclen, WCHAR *dst, int dstlen)
INT WINAPI FoldStringW(DWORD dwFlags, LPCWSTR src, INT srclen, LPWSTR dst, INT dstlen)
static HANDLE NLS_RegOpenKey(HANDLE hRootKey, LPCWSTR szKeyName)
static const WCHAR sShortDateW[]
LCID WINAPI GetUserDefaultLCID(void)
#define GET_HALF1(table, index)
INT WINAPI CompareStringEx(LPCWSTR locale, DWORD flags, LPCWSTR str1, INT len1, LPCWSTR str2, INT len2, LPNLSVERSIONINFO version, LPVOID reserved, LPARAM lParam)
#define GET_FULL(table, index)
int wine_compare_string(int flags, const WCHAR *str1, int len1, const WCHAR *str2, int len2)
static int compare_wchar_pair(const void *x, const void *y)
static const WCHAR sMonThousandSepW[]
BOOL WINAPI EnumLanguageGroupLocalesW(LANGGROUPLOCALE_ENUMPROCW pLangGrpLcEnumProc, LGRPID lgrpid, DWORD dwFlags, LONG_PTR lParam)
static LCID lcid_LC_TELEPHONE
LANGID WINAPI GetUserDefaultLangID(void)
LCID WINAPI GetSystemDefaultLCID(void)
static const WCHAR iNegCurrW[]
static const WCHAR_PAIR s_tra2sim[]
BOOL WINAPI EnumUILanguagesA(UILANGUAGE_ENUMPROCA pUILangEnumProc, DWORD dwFlags, LONG_PTR lParam)
BOOL WINAPI GetStringTypeExW(LCID locale, DWORD type, LPCWSTR src, INT count, LPWORD chartype)
INT WINAPI LCMapStringW(LCID lcid, DWORD flags, LPCWSTR src, INT srclen, LPWSTR dst, INT dstlen)
BOOL WINAPI EnumSystemGeoID(GEOCLASS geoclass, GEOID parent, GEO_ENUMPROC enumproc)
BOOL WINAPI InvalidateNLSCache(void)
static BOOL CALLBACK enum_uilang_proc_w(HMODULE hModule, LPCWSTR type, LPCWSTR name, WORD LangID, LONG_PTR lParam)
static const WCHAR sDateW[]
BOOL WINAPI EnumLanguageGroupLocalesA(LANGGROUPLOCALE_ENUMPROCA pLangGrpLcEnumProc, LGRPID lgrpid, DWORD dwFlags, LONG_PTR lParam)
static const WCHAR sPositiveSignW[]
static const WCHAR sListW[]
BOOL WINAPI EnumSystemCodePagesW(CODEPAGE_ENUMPROCW lpCodePageEnumProc, DWORD dwFlags)
BOOL WINAPI EnumSystemLanguageGroupsA(LANGUAGEGROUP_ENUMPROCA pLangGrpEnumProc, DWORD dwFlags, LONG_PTR lParam)
INT WINAPI GetLocaleInfoW(LCID lcid, LCTYPE lctype, LPWSTR buffer, INT len)
BOOL WINAPI SetLocaleInfoA(LCID lcid, LCTYPE lctype, LPCSTR data)
static const WCHAR sYearMonthW[]
static const WCHAR sNativeDigitsW[]
INT WINAPI GetGeoInfoA(GEOID geoid, GEOTYPE geotype, LPSTR data, int data_len, LANGID lang)
static int lcmap_string(DWORD flags, const WCHAR *src, int srclen, WCHAR *dst, int dstlen)
static const WCHAR iTimeW[]
static const WCHAR sDecimalW[]
static LCID lcid_LC_PAPER
LCID WINAPI ConvertDefaultLocale(LCID lcid)
BOOL WINAPI SetLocaleInfoW(LCID lcid, LCTYPE lctype, LPCWSTR data)
BOOL WINAPI EnumSystemLocalesEx(LOCALE_ENUMPROCEX proc, DWORD flags, LPARAM lparam, LPVOID reserved)
static int NLS_GetGeoFriendlyName(GEOID Location, LPWSTR szFriendlyName, int cchData)
static const DAKUTEN_ENTRY dakuten_table[]
static int map_to_hiragana(const WCHAR *src, int srclen, WCHAR *dst, int dstlen)
#define memcpy(s1, s2, n)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
#define sprintf(buf, format,...)
static unsigned int number
static DWORD LPDWORD LPCSTR DWORD srclen
#define InitializeObjectAttributes(p, n, a, r, s)
#define _Out_writes_opt_(size)
NTSYSAPI NTSTATUS NTAPI RtlOpenCurrentUser(_In_ ACCESS_MASK DesiredAccess, _Out_ PHANDLE KeyHandle)
_Must_inspect_result_ NTSYSAPI LONG NTAPI RtlCompareUnicodeStrings(_In_reads_(String1Length) PCWCH String1, _In_ SIZE_T String1Length, _In_reads_(String2Length) PCWCH String2, _In_ SIZE_T String2Length, _In_ BOOLEAN CaseInSensitive)
NTSYSAPI NTSTATUS NTAPI RtlEnterCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
NTSYSAPI NTSTATUS NTAPI RtlLeaveCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
NTSYSAPI NTSTATUS NTAPI NtOpenKey(OUT PHANDLE KeyHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes)
NTSYSAPI NTSTATUS NTAPI NtSetValueKey(IN HANDLE KeyHandle, IN PUNICODE_STRING ValueName, IN ULONG TitleIndex OPTIONAL, IN ULONG Type, IN PVOID Data, IN ULONG DataSize)
@ KeyValuePartialInformation
@ KeyValueFullInformation
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
NTSYSAPI NTSTATUS NTAPI NtQueryValueKey(IN HANDLE KeyHandle, IN PUNICODE_STRING ValueName, IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, IN PVOID KeyValueInformation, IN ULONG Length, IN PULONG ResultLength)
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
NTSTATUS NTAPI NtCreateKey(OUT PHANDLE KeyHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN ULONG TitleIndex, IN PUNICODE_STRING Class OPTIONAL, IN ULONG CreateOptions, OUT PULONG Disposition OPTIONAL)
NTSTATUS NTAPI NtEnumerateValueKey(IN HANDLE KeyHandle, IN ULONG Index, IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, OUT PVOID KeyValueInformation, IN ULONG Length, OUT PULONG ResultLength)
#define LOCALE_USER_DEFAULT
#define SORTIDFROMLCID(lcid)
#define LOCALE_SYSTEM_DEFAULT
#define MAKELCID(lgid, srtid)
NTSTATUS NTAPI NtQueryInstallUILanguage(OUT LANGID *LanguageId)
NTSTATUS NTAPI NtQueryDefaultLocale(IN BOOLEAN UserProfile, OUT PLCID DefaultLocaleId)
NTSTATUS NTAPI NtQueryDefaultUILanguage(OUT LANGID *LanguageId)
static const WCHAR szName[]
#define strncmpiW(s1, s2, n)
#define strtoulW(s1, s2, b)
#define strpbrkW(str, accept)
#define SUBLANG_CHINESE_SINGAPORE
#define SUBLANG_CHINESE_MACAU
#define LANGIDFROMLCID(l)
#define SUBLANG_CHINESE_TRADITIONAL
#define SUBLANG_CHINESE_SIMPLIFIED
#define SUBLANG_CHINESE_HONGKONG
#define SUBLANG_SPANISH_MODERN
#define STATUS_BUFFER_OVERFLOW
LANGGROUPLOCALE_ENUMPROCW procW
LANGGROUPLOCALE_ENUMPROCA procA
LANGUAGEGROUP_ENUMPROCW procW
LANGUAGEGROUP_ENUMPROCA procA
UILANGUAGE_ENUMPROCA procA
union ENUM_UILANG_CALLBACK::@463 u
UILANGUAGE_ENUMPROCW procW
#define FIELD_OFFSET(t, f)
#define RtlCopyMemory(Destination, Source, Length)
#define STATUS_OBJECT_NAME_NOT_FOUND
static const WCHAR lang[]
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_writes_opt_ NumCharacters PUSHORT _Inout_ PUSHORT _In_ UCHAR _In_opt_ USHORT LangID
*nSize LPSTR _Inout_ LPDWORD nSize
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
#define ERROR_INVALID_FLAGS
#define LOCALE_USE_CP_ACP
#define LCMAP_LINGUISTIC_CASING
#define LOCALE_SABBREVMONTHNAME10
#define LOCALE_SMONTHNAME12
#define LOCALE_ICURRDIGITS
#define LOCALE_IDEFAULTCODEPAGE
#define LOCALE_SMONTHNAME5
#define LOCALE_SABBREVMONTHNAME9
BOOL(CALLBACK * LOCALE_ENUMPROCEX)(LPWSTR, DWORD, LPARAM)
BOOL(CALLBACK * LANGGROUPLOCALE_ENUMPROCA)(LGRPID, LCID, LPSTR, LONG_PTR)
#define LOCALE_NEUTRALDATA
#define LOCALE_SABBREVMONTHNAME11
#define LOCALE_SABBREVDAYNAME5
#define LOCALE_SABBREVDAYNAME2
#define LOCALE_INEGSEPBYSPACE
#define LOCALE_SABBREVMONTHNAME2
#define LOCALE_INEGSIGNPOSN
#define LOCALE_IDEFAULTUNIXCODEPAGE
#define LOCALE_SMONTHNAME13
#define LOCALE_SMONTHNAME3
#define LOCALE_SSHORTTIME
#define LINGUISTIC_IGNORECASE
#define LCMAP_SIMPLIFIED_CHINESE
#define LOCALE_SMONTHNAME11
#define LOCALE_SMONTHNAME8
#define LCMAP_TRADITIONAL_CHINESE
#define LOCALE_SMONTHNAME4
#define LOCALE_FONTSIGNATURE
BOOL(CALLBACK * UILANGUAGE_ENUMPROCW)(LPWSTR, LONG_PTR)
#define LOCALE_SENGLANGUAGE
#define LOCALE_SABBREVMONTHNAME13
#define LOCALE_IFIRSTWEEKOFYEAR
#define LOCALE_SMONTHNAME7
#define NORM_IGNOREKANATYPE
#define NORM_LINGUISTIC_CASING
#define LOCALE_IINTLCURRDIGITS
#define C2_COMMONSEPARATOR
#define LOCALE_SSHORTDATE
#define GEOID_NOT_AVAILABLE
BOOL(CALLBACK * GEO_ENUMPROC)(GEOID)
BOOL(CALLBACK * LANGGROUPLOCALE_ENUMPROCW)(LGRPID, LCID, LPWSTR, LONG_PTR)
#define NORM_IGNORENONSPACE
BOOL(CALLBACK * CODEPAGE_ENUMPROCA)(LPSTR)
#define LOCALE_SPECIFICDATA
#define LOCALE_IPOSSYMPRECEDES
#define C2_EUROPESEPARATOR
#define LOCALE_SABBREVMONTHNAME4
#define LOCALE_SPOSITIVESIGN
BOOL(CALLBACK * LANGUAGEGROUP_ENUMPROCW)(LGRPID, LPWSTR, LPWSTR, DWORD, LONG_PTR)
#define NORM_IGNORESYMBOLS
#define LOCALE_IDEFAULTLANGUAGE
#define C2_EUROPETERMINATOR
#define LOCALE_SABBREVDAYNAME4
#define LOCALE_SMONDECIMALSEP
#define LOCALE_SISO639LANGNAME
#define C2_SEGMENTSEPARATOR
#define LOCALE_SMONTHNAME1
#define LOCALE_SABBREVMONTHNAME3
#define LOCALE_INEGSYMPRECEDES
BOOL(CALLBACK * LOCALE_ENUMPROCA)(LPSTR)
#define LOCALE_SMONTHOUSANDSEP
#define LOCALE_IPOSSIGNPOSN
#define LOCALE_SABBREVMONTHNAME1
#define LOCALE_NOUSEROVERRIDE
#define LOCALE_IOPTIONALCALENDAR
#define LOCALE_IDEFAULTANSICODEPAGE
#define LOCALE_SISO3166CTRYNAME
#define LOCALE_SABBREVDAYNAME6
#define LOCALE_SMONTHNAME2
#define LOCALE_STIMEFORMAT
BOOL(CALLBACK * LANGUAGEGROUP_ENUMPROCA)(LGRPID, LPSTR, LPSTR, DWORD, LONG_PTR)
#define LOCALE_SABBREVDAYNAME1
#define LOCALE_IFIRSTDAYOFWEEK
#define LOCALE_SABBREVMONTHNAME6
#define LOCALE_SMONTHNAME6
#define LOCALE_SABBREVLANGNAME
BOOL(CALLBACK * UILANGUAGE_ENUMPROCA)(LPSTR, LONG_PTR)
#define LOCALE_INEGNUMBER
#define LOCALE_SNEGATIVESIGN
#define LOCALE_SNATIVEDIGITS
#define LOCALE_SABBREVDAYNAME3
#define LOCALE_SABBREVMONTHNAME5
#define LOCALE_SABBREVMONTHNAME7
#define LOCALE_ICALENDARTYPE
#define LOCALE_SINTLSYMBOL
BOOL(CALLBACK * LOCALE_ENUMPROCW)(LPWSTR)
#define LOCALE_SABBREVMONTHNAME8
#define CSTR_GREATER_THAN
#define LOCALE_SMONGROUPING
#define LOCALE_SMONTHNAME10
#define LOCALE_SMONTHNAME9
BOOL(CALLBACK * CODEPAGE_ENUMPROCW)(LPWSTR)
#define LOCALE_IPOSSEPBYSPACE
#define C2_BLOCKSEPARATOR
#define LOCALE_SABBREVMONTHNAME12
#define LOCALE_IDEFAULTMACCODEPAGE
#define LOCALE_ITIMEMARKPOSN
#define LOCALE_RETURN_GENITIVE_NAMES
#define LOCALE_SABBREVDAYNAME7
#define MAKEINTRESOURCEW(i)
#define RtlUshortByteSwap(_x)