44 #define NLSRC_OFFSET 5000 48 #define LOCALE_LOCALEINFOFLAGSMASK (LOCALE_NOUSEROVERRIDE|LOCALE_USE_CP_ACP|\ 49 LOCALE_RETURN_NUMBER|LOCALE_RETURN_GENITIVE_NAMES) 52 '\\',
'R',
'e',
'g',
'i',
's',
't',
'r',
'y',
'\\',
53 'M',
'a',
'c',
'h',
'i',
'n',
'e',
'\\',
'S',
'y',
's',
't',
'e',
'm',
'\\',
54 'C',
'u',
'r',
'r',
'e',
'n',
't',
'C',
'o',
'n',
't',
'r',
'o',
'l',
'S',
'e',
't',
'\\',
55 'C',
'o',
'n',
't',
'r',
'o',
'l',
'\\',
'N',
'l',
's',
'\\',
'L',
'o',
'c',
'a',
'l',
'e',0
59 '\\',
'R',
'e',
'g',
'i',
's',
't',
'r',
'y',
'\\',
60 'M',
'a',
'c',
'h',
'i',
'n',
'e',
'\\',
'S',
'y',
's',
't',
'e',
'm',
'\\',
61 'C',
'u',
'r',
'r',
'e',
'n',
't',
'C',
'o',
'n',
't',
'r',
'o',
'l',
'S',
'e',
't',
'\\',
62 'C',
'o',
'n',
't',
'r',
'o',
'l',
'\\',
'N',
'l',
's',
'\\',
63 'L',
'a',
'n',
'g',
'u',
'a',
'g',
'e',
' ',
'G',
'r',
'o',
'u',
'p',
's',0
66 #if (WINVER >= 0x0600) 70 const char *charset_name;
109 {
"ISO88591", 28591 },
110 {
"ISO885910", 28600 },
111 {
"ISO885913", 28603 },
112 {
"ISO885914", 28604 },
113 {
"ISO885915", 28605 },
114 {
"ISO885916", 28606 },
115 {
"ISO88592", 28592 },
116 {
"ISO88593", 28593 },
117 {
"ISO88594", 28594 },
118 {
"ISO88595", 28595 },
119 {
"ISO88596", 28596 },
120 {
"ISO88597", 28597 },
121 {
"ISO88598", 28598 },
122 {
"ISO88599", 28599 },
152 static const WCHAR iCalendarTypeW[] = {
'i',
'C',
'a',
'l',
'e',
'n',
'd',
'a',
'r',
'T',
'y',
'p',
'e',0};
154 static const WCHAR iCurrDigitsW[] = {
'i',
'C',
'u',
'r',
'r',
'D',
'i',
'g',
'i',
't',
's',0};
158 static const WCHAR iFirstDayOfWeekW[] = {
'i',
'F',
'i',
'r',
's',
't',
'D',
'a',
'y',
'O',
'f',
'W',
'e',
'e',
'k',0};
159 static const WCHAR iFirstWeekOfYearW[] = {
'i',
'F',
'i',
'r',
's',
't',
'W',
'e',
'e',
'k',
'O',
'f',
'Y',
'e',
'a',
'r',0};
164 static const WCHAR iNegNumberW[] = {
'i',
'N',
'e',
'g',
'N',
'u',
'm',
'b',
'e',
'r',0};
165 static const WCHAR iPaperSizeW[] = {
'i',
'P',
'a',
'p',
'e',
'r',
'S',
'i',
'z',
'e',0};
167 static const WCHAR iTimePrefixW[] = {
'i',
'T',
'i',
'm',
'e',
'P',
'r',
'e',
'f',
'i',
'x',0};
179 static const WCHAR sMonDecimalSepW[] = {
's',
'M',
'o',
'n',
'D',
'e',
'c',
'i',
'm',
'a',
'l',
'S',
'e',
'p',0};
180 static const WCHAR sMonGroupingW[] = {
's',
'M',
'o',
'n',
'G',
'r',
'o',
'u',
'p',
'i',
'n',
'g',0};
181 static const WCHAR sMonThousandSepW[] = {
's',
'M',
'o',
'n',
'T',
'h',
'o',
'u',
's',
'a',
'n',
'd',
'S',
'e',
'p',0};
182 static const WCHAR sNativeDigitsW[] = {
's',
'N',
'a',
't',
'i',
'v',
'e',
'D',
'i',
'g',
'i',
't',
's',0};
183 static const WCHAR sNegativeSignW[] = {
's',
'N',
'e',
'g',
'a',
't',
'i',
'v',
'e',
'S',
'i',
'g',
'n',0};
184 static const WCHAR sPositiveSignW[] = {
's',
'P',
'o',
's',
'i',
't',
'i',
'v',
'e',
'S',
'i',
'g',
'n',0};
185 static const WCHAR sShortDateW[] = {
's',
'S',
'h',
'o',
'r',
't',
'D',
'a',
't',
'e',0};
187 static const WCHAR sTimeFormatW[] = {
's',
'T',
'i',
'm',
'e',
'F',
'o',
'r',
'm',
'a',
't',0};
189 static const WCHAR sYearMonthW[] = {
's',
'Y',
'e',
'a',
'r',
'M',
'o',
'n',
't',
'h',0};
239 { LOCALE_IDIGITSUBSTITUTION,
NumShapeW },
250 while (
n > 1 && *
src)
272 #if (WINVER >= 0x0600) 276 static int charset_cmp(
const void *
name,
const void *
entry )
288 char charset_name[16];
292 for (
i =
j = 0;
name[
i] &&
j <
sizeof(charset_name)-1;
i++)
297 sizeof(charset_names[0]), charset_cmp );
334 if (
data->win_name[0] &&
380 if (
lang == get_default_sublang( def_lang ))
matches++;
401 return (
data->matches < 4);
414 static const WCHAR sepW[] = {
'-',
'_',
'.',
'@',0};
415 static const WCHAR winsepW[] = {
'-',
'_',0};
416 static const WCHAR posixW[] = {
'P',
'O',
'S',
'I',
'X',0};
417 static const WCHAR cW[] = {
'C',0};
418 static const WCHAR latinW[] = {
'l',
'a',
't',
'i',
'n',0};
419 static const WCHAR latnW[] = {
'-',
'L',
'a',
't',
'n',0};
428 name->win_name[0] = 0;
492 name->codepage = find_charset(
name->charset );
496 if (
name->charset)
goto done;
527 switch(lctype & 0xffff)
529 case LOCALE_SSORTNAME:
536 case LOCALE_IDEFAULTEBCDICCODEPAGE:
557 case LOCALE_SNATIVECURRNAME:
562 case LOCALE_IDIGITSUBSTITUTION:
644 case LOCALE_SYEARMONTH:
648 case LOCALE_IPAPERSIZE:
660 if (default_id)
lcid = default_id;
672 switch(lctype & 0xffff)
700 static const WCHAR cplW[] = {
'C',
'o',
'n',
't',
'r',
'o',
'l',
' ',
'P',
'a',
'n',
'e',
'l',0};
701 static const WCHAR intlW[] = {
'I',
'n',
't',
'e',
'r',
'n',
'a',
't',
'i',
'o',
'n',
'a',
'l',0};
709 attr.RootDirectory = hkey;
713 attr.SecurityQualityOfService =
NULL;
719 attr.RootDirectory = cpl_key;
837 #if (WINVER >= 0x0600) 846 if (
flags && !once++)
849 if (
name == LOCALE_NAME_USER_DEFAULT)
855 TRACE(
"found lcid %x for %s, matches %d\n",
865 WARN(
"locale %s not recognized, defaulting to %s\n",
955 cached_value[
length-1] = 0;
1052 if ((lctype & LOCALE_RETURN_NUMBER) ||
1143 if (lcflags & LOCALE_RETURN_NUMBER)
1168 if (
ret != -1)
return ret;
1202 for (
i = 0;
i < (
lctype & 0x0f);
i++)
p += *
p + 1;
1205 if (lcflags & LOCALE_RETURN_NUMBER)
ret =
sizeof(
UINT)/
sizeof(
WCHAR);
1209 for (
i = 1;
i <= *
p;
i++)
if (!
p[
i])
break;
1231 if (lcflags & LOCALE_RETURN_NUMBER)
1248 TRACE(
"(lcid=0x%x,lctype=0x%x,%p,%d) returning number %d\n",
1257 TRACE(
"(lcid=0x%x,lctype=0x%x,%p,%d) returning %d %s\n",
1263 #if (WINVER >= 0x0600) 1273 TRACE(
"GetLocaleInfoEx not implemented (lcid=%s,lctype=0x%x,%s,%d)\n",
debugstr_w(lpLocaleName), LCType,
debugstr_w(lpLCData), cchData );
1283 TRACE(
"IsValidLocaleName not implemented (lpLocaleName=%s)\n",
debugstr_w(lpLocaleName));
1289 GetUserDefaultLocaleName(
1294 TRACE(
"GetUserDefaultLocaleName not implemented (lpLocaleName=%s, cchLocaleName=%d)\n",
debugstr_w(lpLocaleName), cchLocaleName);
1358 static const WCHAR intlW[] = {
'i',
'n',
't',
'l',0 };
1397 WCHAR *lpD, *lpM, *lpY;
1474 TRACE(
"(0x%04X)\n", lcid);
1567 return lpfnLocaleEnum(
buf );
1573 static const WCHAR formatW[] = {
'%',
'0',
'8',
'x',0};
1577 return lpfnLocaleEnum(
buf );
1637 (
LPWSTR)&neutral,
sizeof(neutral) /
sizeof(
WCHAR) ))
1705 static const unsigned char type2_map[16] =
1742 WARN(
"CT_CTYPE3: semi-stub.\n");
1746 WORD type1, type3 = 0;
1765 if ((
c>=0xFF21)&&(
c<=0xFF3A)) type3 |=
C3_ALPHA;
1766 if ((
c>=0xFF41)&&(
c<=0xFF5A)) type3 |=
C3_ALPHA;
1773 if ((
c>=0xFF65)&&(
c<=0xFF9F)) type3 |=
C3_ALPHA;
1776 *chartype++ = type3;
1828 FIXME(
"For locale %04x using current ANSI code page\n",
locale);
1899 if (!once++)
FIXME(
"unsupported lparam %lx\n",
lparam);
1931 TRACE(
"(%s,0x%08x,%s,%d,%p,%d)\n",
1951 TRACE(
"(%s,0x%08x,%s,%d,%p,%d)\n",
2017 return dst_ptr -
dst;
2028 TRACE(
"(0x%04x,0x%08x,%s,%d,%p,%d)\n",
2056 INT ret = 0, srclenW, dstlenW;
2087 goto map_string_exit;
2094 goto map_string_exit;
2100 goto map_string_exit;
2105 goto map_string_exit;
2111 goto map_string_exit;
2144 INT ret = 0, srclenW = 0;
2160 goto FoldStringA_exit;
2176 goto FoldStringA_exit;
2252 if (
flags & ~(supported_flags|semistub_flags))
2258 if (
flags & semistub_flags)
2261 FIXME(
"semi-stub behavior for flag(s) 0x%x\n",
flags & semistub_flags);
2264 if (len1 < 0) len1 =
strlenW(str1);
2265 if (len2 < 0) len2 =
strlenW(str2);
2307 WCHAR *buf2W = buf1W + 130;
2309 INT len1W = 0, len2W = 0,
ret;
2317 if (len1 < 0) len1 =
strlen(str1);
2318 if (len2 < 0) len2 =
strlen(str2);
2415 info->NameLength > valueNameSize ||
2416 info->DataLength > valueDataSize)
2424 szValueName[
info->NameLength /
sizeof(
WCHAR)] =
'\0';
2426 szValueData[
info->DataLength /
sizeof(
WCHAR)] =
'\0';
2474 ULONG iResourceIndex = lgrpid & 0xf;
2478 for (
i = 0;
i < iResourceIndex;
i++)
2479 lpResEntry += *lpResEntry + 1;
2481 if (*lpResEntry < nameSize)
2484 szName[*lpResEntry] =
'\0';
2506 WCHAR szNumber[10], szValue[4];
2534 FIXME(
"NLS registry key not found. Please apply the default registry file 'wine.inf'\n");
2539 szValue,
sizeof(szValue) ))
2541 BOOL bInstalled = szValue[0] ==
'1';
2545 bInstalled ?
"" :
"not ");
2549 WCHAR szGrpName[48];
2552 szGrpName[0] =
'\0';
2555 bContinue = lpProcs->
procW( lgrpid, szNumber, szGrpName, lpProcs->
dwFlags,
2559 char szNumberA[
sizeof(szNumber)/
sizeof(
WCHAR)];
2560 char szGrpNameA[48];
2569 bContinue = lpProcs->
procA( lgrpid, szNumberA, szGrpNameA, lpProcs->
dwFlags,
2610 procs.
procA = pLangGrpEnumProc;
2631 procs.
procW = pLangGrpEnumProc;
2653 static const WCHAR szFormat[] = {
'%',
'x',
'\0' };
2654 WCHAR szValueName[16], szValue[2];
2666 sprintfW( szValueName, szFormat, lgrpid );
2672 if (szValue[0] ==
'1')
2702 static const WCHAR szAlternateSortsKeyName[] = {
2703 'A',
'l',
't',
'e',
'r',
'n',
'a',
't',
'e',
' ',
'S',
'o',
'r',
't',
's',
'\0' 2705 WCHAR szNumber[10], szValue[4];
2726 WARN(
"NLS registry key not found. Please apply the default registry file 'wine.inf'\n");
2731 szValue,
sizeof(szValue) ))
2736 lgrpid, lgrpid == lpProcs->
lgrpid ?
"" :
"not ");
2738 if (lgrpid == lpProcs->
lgrpid)
2750 bContinue = lpProcs->
procW( lgrpid, lcid, szNumber, lpProcs->
lParam );
2753 char szNumberA[
sizeof(szNumber)/
sizeof(
WCHAR)];
2757 bContinue = lpProcs->
procA( lgrpid, lcid, szNumberA, lpProcs->
lParam );
2803 { 2, {
'A',
'G',0}, {
'A',
'T',
'G',0}, 10039880, 28 },
2804 { 3, {
'A',
'F',0}, {
'A',
'F',
'G',0}, 47614, 4 },
2805 { 4, {
'D',
'Z',0}, {
'D',
'Z',
'A',0}, 42487, 12 },
2806 { 5, {
'A',
'Z',0}, {
'A',
'Z',
'E',0}, 47611, 31 },
2807 { 6, {
'A',
'L',0}, {
'A',
'L',
'B',0}, 47610, 8 },
2808 { 7, {
'A',
'M',0}, {
'A',
'R',
'M',0}, 47611, 51 },
2809 { 8, {
'A',
'D',0}, {
'A',
'N',
'D',0}, 47610, 20 },
2810 { 9, {
'A',
'O',0}, {
'A',
'G',
'O',0}, 42484, 24 },
2811 { 10, {
'A',
'S',0}, {
'A',
'S',
'M',0}, 26286, 16 },
2812 { 11, {
'A',
'R',0}, {
'A',
'R',
'G',0}, 31396, 32 },
2813 { 12, {
'A',
'U',0}, {
'A',
'U',
'S',0}, 10210825, 36 },
2814 { 14, {
'A',
'T',0}, {
'A',
'U',
'T',0}, 10210824, 40 },
2815 { 17, {
'B',
'H',0}, {
'B',
'H',
'R',0}, 47611, 48 },
2816 { 18, {
'B',
'B',0}, {
'B',
'R',
'B',0}, 10039880, 52 },
2817 { 19, {
'B',
'W',0}, {
'B',
'W',
'A',0}, 10039883, 72 },
2818 { 20, {
'B',
'M',0}, {
'B',
'M',
'U',0}, 23581, 60 },
2819 { 21, {
'B',
'E',0}, {
'B',
'E',
'L',0}, 10210824, 56 },
2820 { 22, {
'B',
'S',0}, {
'B',
'H',
'S',0}, 10039880, 44 },
2821 { 23, {
'B',
'D',0}, {
'B',
'G',
'D',0}, 47614, 50 },
2822 { 24, {
'B',
'Z',0}, {
'B',
'L',
'Z',0}, 27082, 84 },
2823 { 25, {
'B',
'A',0}, {
'B',
'I',
'H',0}, 47610, 70 },
2824 { 26, {
'B',
'O',0}, {
'B',
'O',
'L',0}, 31396, 68 },
2825 { 27, {
'M',
'M',0}, {
'M',
'M',
'R',0}, 47599, 104 },
2826 { 28, {
'B',
'J',0}, {
'B',
'E',
'N',0}, 42483, 204 },
2827 { 29, {
'B',
'Y',0}, {
'B',
'L',
'R',0}, 47609, 112 },
2828 { 30, {
'S',
'B',0}, {
'S',
'L',
'B',0}, 20900, 90 },
2829 { 32, {
'B',
'R',0}, {
'B',
'R',
'A',0}, 31396, 76 },
2830 { 34, {
'B',
'T',0}, {
'B',
'T',
'N',0}, 47614, 64 },
2831 { 35, {
'B',
'G',0}, {
'B',
'G',
'R',0}, 47609, 100 },
2832 { 37, {
'B',
'N',0}, {
'B',
'R',
'N',0}, 47599, 96 },
2833 { 38, {
'B',
'I',0}, {
'B',
'D',
'I',0}, 47603, 108 },
2834 { 39, {
'C',
'A',0}, {
'C',
'A',
'N',0}, 23581, 124 },
2835 { 40, {
'K',
'H',0}, {
'K',
'H',
'M',0}, 47599, 116 },
2836 { 41, {
'T',
'D',0}, {
'T',
'C',
'D',0}, 42484, 148 },
2837 { 42, {
'L',
'K',0}, {
'L',
'K',
'A',0}, 47614, 144 },
2838 { 43, {
'C',
'G',0}, {
'C',
'O',
'G',0}, 42484, 178 },
2839 { 44, {
'C',
'D',0}, {
'C',
'O',
'D',0}, 42484, 180 },
2840 { 45, {
'C',
'N',0}, {
'C',
'H',
'N',0}, 47600, 156 },
2841 { 46, {
'C',
'L',0}, {
'C',
'H',
'L',0}, 31396, 152 },
2842 { 49, {
'C',
'M',0}, {
'C',
'M',
'R',0}, 42484, 120 },
2843 { 50, {
'K',
'M',0}, {
'C',
'O',
'M',0}, 47603, 174 },
2844 { 51, {
'C',
'O',0}, {
'C',
'O',
'L',0}, 31396, 170 },
2845 { 54, {
'C',
'R',0}, {
'C',
'R',
'I',0}, 27082, 188 },
2846 { 55, {
'C',
'F',0}, {
'C',
'A',
'F',0}, 42484, 140 },
2847 { 56, {
'C',
'U',0}, {
'C',
'U',
'B',0}, 10039880, 192 },
2848 { 57, {
'C',
'V',0}, {
'C',
'P',
'V',0}, 42483, 132 },
2849 { 59, {
'C',
'Y',0}, {
'C',
'Y',
'P',0}, 47611, 196 },
2850 { 61, {
'D',
'K',0}, {
'D',
'N',
'K',0}, 10039882, 208 },
2851 { 62, {
'D',
'J',0}, {
'D',
'J',
'I',0}, 47603, 262 },
2852 { 63, {
'D',
'M',0}, {
'D',
'M',
'A',0}, 10039880, 212 },
2853 { 65, {
'D',
'O',0}, {
'D',
'O',
'M',0}, 10039880, 214 },
2854 { 66, {
'E',
'C',0}, {
'E',
'C',
'U',0}, 31396, 218 },
2855 { 67, {
'E',
'G',0}, {
'E',
'G',
'Y',0}, 42487, 818 },
2856 { 68, {
'I',
'E',0}, {
'I',
'R',
'L',0}, 10039882, 372 },
2857 { 69, {
'G',
'Q',0}, {
'G',
'N',
'Q',0}, 42484, 226 },
2858 { 70, {
'E',
'E',0}, {
'E',
'S',
'T',0}, 10039882, 233 },
2859 { 71, {
'E',
'R',0}, {
'E',
'R',
'I',0}, 47603, 232 },
2860 { 72, {
'S',
'V',0}, {
'S',
'L',
'V',0}, 27082, 222 },
2861 { 73, {
'E',
'T',0}, {
'E',
'T',
'H',0}, 47603, 231 },
2862 { 75, {
'C',
'Z',0}, {
'C',
'Z',
'E',0}, 47609, 203 },
2863 { 77, {
'F',
'I',0}, {
'F',
'I',
'N',0}, 10039882, 246 },
2864 { 78, {
'F',
'J',0}, {
'F',
'J',
'I',0}, 20900, 242 },
2865 { 80, {
'F',
'M',0}, {
'F',
'S',
'M',0}, 21206, 583 },
2866 { 81, {
'F',
'O',0}, {
'F',
'R',
'O',0}, 10039882, 234 },
2867 { 84, {
'F',
'R',0}, {
'F',
'R',
'A',0}, 10210824, 250 },
2868 { 86, {
'G',
'M',0}, {
'G',
'M',
'B',0}, 42483, 270 },
2869 { 87, {
'G',
'A',0}, {
'G',
'A',
'B',0}, 42484, 266 },
2870 { 88, {
'G',
'E',0}, {
'G',
'E',
'O',0}, 47611, 268 },
2871 { 89, {
'G',
'H',0}, {
'G',
'H',
'A',0}, 42483, 288 },
2872 { 90, {
'G',
'I',0}, {
'G',
'I',
'B',0}, 47610, 292 },
2873 { 91, {
'G',
'D',0}, {
'G',
'R',
'D',0}, 10039880, 308 },
2874 { 93, {
'G',
'L',0}, {
'G',
'R',
'L',0}, 23581, 304 },
2875 { 94, {
'D',
'E',0}, {
'D',
'E',
'U',0}, 10210824, 276 },
2876 { 98, {
'G',
'R',0}, {
'G',
'R',
'C',0}, 47610, 300 },
2877 { 99, {
'G',
'T',0}, {
'G',
'T',
'M',0}, 27082, 320 },
2878 { 100, {
'G',
'N',0}, {
'G',
'I',
'N',0}, 42483, 324 },
2879 { 101, {
'G',
'Y',0}, {
'G',
'U',
'Y',0}, 31396, 328 },
2880 { 103, {
'H',
'T',0}, {
'H',
'T',
'I',0}, 10039880, 332 },
2881 { 104, {
'H',
'K',0}, {
'H',
'K',
'G',0}, 47600, 344 },
2882 { 106, {
'H',
'N',0}, {
'H',
'N',
'D',0}, 27082, 340 },
2883 { 108, {
'H',
'R',0}, {
'H',
'R',
'V',0}, 47610, 191 },
2884 { 109, {
'H',
'U',0}, {
'H',
'U',
'N',0}, 47609, 348 },
2885 { 110, {
'I',
'S',0}, {
'I',
'S',
'L',0}, 10039882, 352 },
2886 { 111, {
'I',
'D',0}, {
'I',
'D',
'N',0}, 47599, 360 },
2887 { 113, {
'I',
'N',0}, {
'I',
'N',
'D',0}, 47614, 356 },
2888 { 114, {
'I',
'O',0}, {
'I',
'O',
'T',0}, 39070, 86 },
2889 { 116, {
'I',
'R',0}, {
'I',
'R',
'N',0}, 47614, 364 },
2890 { 117, {
'I',
'L',0}, {
'I',
'S',
'R',0}, 47611, 376 },
2891 { 118, {
'I',
'T',0}, {
'I',
'T',
'A',0}, 47610, 380 },
2892 { 119, {
'C',
'I',0}, {
'C',
'I',
'V',0}, 42483, 384 },
2893 { 121, {
'I',
'Q',0}, {
'I',
'R',
'Q',0}, 47611, 368 },
2894 { 122, {
'J',
'P',0}, {
'J',
'P',
'N',0}, 47600, 392 },
2895 { 124, {
'J',
'M',0}, {
'J',
'A',
'M',0}, 10039880, 388 },
2896 { 125, {
'S',
'J',0}, {
'S',
'J',
'M',0}, 10039882, 744 },
2897 { 126, {
'J',
'O',0}, {
'J',
'O',
'R',0}, 47611, 400 },
2898 { 127, {
'X',
'X',0}, {
'X',
'X',0}, 161832256 },
2899 { 129, {
'K',
'E',0}, {
'K',
'E',
'N',0}, 47603, 404 },
2900 { 130, {
'K',
'G',0}, {
'K',
'G',
'Z',0}, 47590, 417 },
2901 { 131, {
'K',
'P',0}, {
'P',
'R',
'K',0}, 47600, 408 },
2902 { 133, {
'K',
'I',0}, {
'K',
'I',
'R',0}, 21206, 296 },
2903 { 134, {
'K',
'R',0}, {
'K',
'O',
'R',0}, 47600, 410 },
2904 { 136, {
'K',
'W',0}, {
'K',
'W',
'T',0}, 47611, 414 },
2905 { 137, {
'K',
'Z',0}, {
'K',
'A',
'Z',0}, 47590, 398 },
2906 { 138, {
'L',
'A',0}, {
'L',
'A',
'O',0}, 47599, 418 },
2907 { 139, {
'L',
'B',0}, {
'L',
'B',
'N',0}, 47611, 422 },
2908 { 140, {
'L',
'V',0}, {
'L',
'V',
'A',0}, 10039882, 428 },
2909 { 141, {
'L',
'T',0}, {
'L',
'T',
'U',0}, 10039882, 440 },
2910 { 142, {
'L',
'R',0}, {
'L',
'B',
'R',0}, 42483, 430 },
2911 { 143, {
'S',
'K',0}, {
'S',
'V',
'K',0}, 47609, 703 },
2912 { 145, {
'L',
'I',0}, {
'L',
'I',
'E',0}, 10210824, 438 },
2913 { 146, {
'L',
'S',0}, {
'L',
'S',
'O',0}, 10039883, 426 },
2914 { 147, {
'L',
'U',0}, {
'L',
'U',
'X',0}, 10210824, 442 },
2915 { 148, {
'L',
'Y',0}, {
'L',
'B',
'Y',0}, 42487, 434 },
2916 { 149, {
'M',
'G',0}, {
'M',
'D',
'G',0}, 47603, 450 },
2917 { 151, {
'M',
'O',0}, {
'M',
'A',
'C',0}, 47600, 446 },
2918 { 152, {
'M',
'D',0}, {
'M',
'D',
'A',0}, 47609, 498 },
2919 { 154, {
'M',
'N',0}, {
'M',
'N',
'G',0}, 47600, 496 },
2920 { 156, {
'M',
'W',0}, {
'M',
'W',
'I',0}, 47603, 454 },
2921 { 157, {
'M',
'L',0}, {
'M',
'L',
'I',0}, 42483, 466 },
2922 { 158, {
'M',
'C',0}, {
'M',
'C',
'O',0}, 10210824, 492 },
2923 { 159, {
'M',
'A',0}, {
'M',
'A',
'R',0}, 42487, 504 },
2924 { 160, {
'M',
'U',0}, {
'M',
'U',
'S',0}, 47603, 480 },
2925 { 162, {
'M',
'R',0}, {
'M',
'R',
'T',0}, 42483, 478 },
2926 { 163, {
'M',
'T',0}, {
'M',
'L',
'T',0}, 47610, 470 },
2927 { 164, {
'O',
'M',0}, {
'O',
'M',
'N',0}, 47611, 512 },
2928 { 165, {
'M',
'V',0}, {
'M',
'D',
'V',0}, 47614, 462 },
2929 { 166, {
'M',
'X',0}, {
'M',
'E',
'X',0}, 27082, 484 },
2930 { 167, {
'M',
'Y',0}, {
'M',
'Y',
'S',0}, 47599, 458 },
2931 { 168, {
'M',
'Z',0}, {
'M',
'O',
'Z',0}, 47603, 508 },
2932 { 173, {
'N',
'E',0}, {
'N',
'E',
'R',0}, 42483, 562 },
2933 { 174, {
'V',
'U',0}, {
'V',
'U',
'T',0}, 20900, 548 },
2934 { 175, {
'N',
'G',0}, {
'N',
'G',
'A',0}, 42483, 566 },
2935 { 176, {
'N',
'L',0}, {
'N',
'L',
'D',0}, 10210824, 528 },
2936 { 177, {
'N',
'O',0}, {
'N',
'O',
'R',0}, 10039882, 578 },
2937 { 178, {
'N',
'P',0}, {
'N',
'P',
'L',0}, 47614, 524 },
2938 { 180, {
'N',
'R',0}, {
'N',
'R',
'U',0}, 21206, 520 },
2939 { 181, {
'S',
'R',0}, {
'S',
'U',
'R',0}, 31396, 740 },
2940 { 182, {
'N',
'I',0}, {
'N',
'I',
'C',0}, 27082, 558 },
2941 { 183, {
'N',
'Z',0}, {
'N',
'Z',
'L',0}, 10210825, 554 },
2942 { 184, {
'P',
'S',0}, {
'P',
'S',
'E',0}, 47611, 275 },
2943 { 185, {
'P',
'Y',0}, {
'P',
'R',
'Y',0}, 31396, 600 },
2944 { 187, {
'P',
'E',0}, {
'P',
'E',
'R',0}, 31396, 604 },
2945 { 190, {
'P',
'K',0}, {
'P',
'A',
'K',0}, 47614, 586 },
2946 { 191, {
'P',
'L',0}, {
'P',
'O',
'L',0}, 47609, 616 },
2947 { 192, {
'P',
'A',0}, {
'P',
'A',
'N',0}, 27082, 591 },
2948 { 193, {
'P',
'T',0}, {
'P',
'R',
'T',0}, 47610, 620 },
2949 { 194, {
'P',
'G',0}, {
'P',
'N',
'G',0}, 20900, 598 },
2950 { 195, {
'P',
'W',0}, {
'P',
'L',
'W',0}, 21206, 585 },
2951 { 196, {
'G',
'W',0}, {
'G',
'N',
'B',0}, 42483, 624 },
2952 { 197, {
'Q',
'A',0}, {
'Q',
'A',
'T',0}, 47611, 634 },
2953 { 198, {
'R',
'E',0}, {
'R',
'E',
'U',0}, 47603, 638 },
2954 { 199, {
'M',
'H',0}, {
'M',
'H',
'L',0}, 21206, 584 },
2955 { 200, {
'R',
'O',0}, {
'R',
'O',
'U',0}, 47609, 642 },
2956 { 201, {
'P',
'H',0}, {
'P',
'H',
'L',0}, 47599, 608 },
2957 { 202, {
'P',
'R',0}, {
'P',
'R',
'I',0}, 10039880, 630 },
2958 { 203, {
'R',
'U',0}, {
'R',
'U',
'S',0}, 47609, 643 },
2959 { 204, {
'R',
'W',0}, {
'R',
'W',
'A',0}, 47603, 646 },
2960 { 205, {
'S',
'A',0}, {
'S',
'A',
'U',0}, 47611, 682 },
2961 { 206, {
'P',
'M',0}, {
'S',
'P',
'M',0}, 23581, 666 },
2962 { 207, {
'K',
'N',0}, {
'K',
'N',
'A',0}, 10039880, 659 },
2963 { 208, {
'S',
'C',0}, {
'S',
'Y',
'C',0}, 47603, 690 },
2964 { 209, {
'Z',
'A',0}, {
'Z',
'A',
'F',0}, 10039883, 710 },
2965 { 210, {
'S',
'N',0}, {
'S',
'E',
'N',0}, 42483, 686 },
2966 { 212, {
'S',
'I',0}, {
'S',
'V',
'N',0}, 47610, 705 },
2967 { 213, {
'S',
'L',0}, {
'S',
'L',
'E',0}, 42483, 694 },
2968 { 214, {
'S',
'M',0}, {
'S',
'M',
'R',0}, 47610, 674 },
2969 { 215, {
'S',
'G',0}, {
'S',
'G',
'P',0}, 47599, 702 },
2970 { 216, {
'S',
'O',0}, {
'S',
'O',
'M',0}, 47603, 706 },
2971 { 217, {
'E',
'S',0}, {
'E',
'S',
'P',0}, 47610, 724 },
2972 { 218, {
'L',
'C',0}, {
'L',
'C',
'A',0}, 10039880, 662 },
2973 { 219, {
'S',
'D',0}, {
'S',
'D',
'N',0}, 42487, 736 },
2974 { 220, {
'S',
'J',0}, {
'S',
'J',
'M',0}, 10039882, 744 },
2975 { 221, {
'S',
'E',0}, {
'S',
'W',
'E',0}, 10039882, 752 },
2976 { 222, {
'S',
'Y',0}, {
'S',
'Y',
'R',0}, 47611, 760 },
2977 { 223, {
'C',
'H',0}, {
'C',
'H',
'E',0}, 10210824, 756 },
2978 { 224, {
'A',
'E',0}, {
'A',
'R',
'E',0}, 47611, 784 },
2979 { 225, {
'T',
'T',0}, {
'T',
'T',
'O',0}, 10039880, 780 },
2980 { 227, {
'T',
'H',0}, {
'T',
'H',
'A',0}, 47599, 764 },
2981 { 228, {
'T',
'J',0}, {
'T',
'J',
'K',0}, 47590, 762 },
2982 { 231, {
'T',
'O',0}, {
'T',
'O',
'N',0}, 26286, 776 },
2983 { 232, {
'T',
'G',0}, {
'T',
'G',
'O',0}, 42483, 768 },
2984 { 233, {
'S',
'T',0}, {
'S',
'T',
'P',0}, 42484, 678 },
2985 { 234, {
'T',
'N',0}, {
'T',
'U',
'N',0}, 42487, 788 },
2986 { 235, {
'T',
'R',0}, {
'T',
'U',
'R',0}, 47611, 792 },
2987 { 236, {
'T',
'V',0}, {
'T',
'U',
'V',0}, 26286, 798 },
2988 { 237, {
'T',
'W',0}, {
'T',
'W',
'N',0}, 47600, 158 },
2989 { 238, {
'T',
'M',0}, {
'T',
'K',
'M',0}, 47590, 795 },
2990 { 239, {
'T',
'Z',0}, {
'T',
'Z',
'A',0}, 47603, 834 },
2991 { 240, {
'U',
'G',0}, {
'U',
'G',
'A',0}, 47603, 800 },
2992 { 241, {
'U',
'A',0}, {
'U',
'K',
'R',0}, 47609, 804 },
2993 { 242, {
'G',
'B',0}, {
'G',
'B',
'R',0}, 10039882, 826 },
2994 { 244, {
'U',
'S',0}, {
'U',
'S',
'A',0}, 23581, 840 },
2995 { 245, {
'B',
'F',0}, {
'B',
'F',
'A',0}, 42483, 854 },
2996 { 246, {
'U',
'Y',0}, {
'U',
'R',
'Y',0}, 31396, 858 },
2997 { 247, {
'U',
'Z',0}, {
'U',
'Z',
'B',0}, 47590, 860 },
2998 { 248, {
'V',
'C',0}, {
'V',
'C',
'T',0}, 10039880, 670 },
2999 { 249, {
'V',
'E',0}, {
'V',
'E',
'N',0}, 31396, 862 },
3000 { 251, {
'V',
'N',0}, {
'V',
'N',
'M',0}, 47599, 704 },
3001 { 252, {
'V',
'I',0}, {
'V',
'I',
'R',0}, 10039880, 850 },
3002 { 253, {
'V',
'A',0}, {
'V',
'A',
'T',0}, 47610, 336 },
3003 { 254, {
'N',
'A',0}, {
'N',
'A',
'M',0}, 10039883, 516 },
3004 { 257, {
'E',
'H',0}, {
'E',
'S',
'H',0}, 42487, 732 },
3005 { 258, {
'X',
'X',0}, {
'X',
'X',0}, 161832256 },
3006 { 259, {
'W',
'S',0}, {
'W',
'S',
'M',0}, 26286, 882 },
3007 { 260, {
'S',
'Z',0}, {
'S',
'W',
'Z',0}, 10039883, 748 },
3008 { 261, {
'Y',
'E',0}, {
'Y',
'E',
'M',0}, 47611, 887 },
3009 { 263, {
'Z',
'M',0}, {
'Z',
'M',
'B',0}, 47603, 894 },
3010 { 264, {
'Z',
'W',0}, {
'Z',
'W',
'E',0}, 47603, 716 },
3011 { 269, {
'C',
'S',0}, {
'S',
'C',
'G',0}, 47610, 891 },
3012 { 270, {
'M',
'E',0}, {
'M',
'N',
'E',0}, 47610, 499 },
3013 { 271, {
'R',
'S',0}, {
'S',
'R',
'B',0}, 47610, 688 },
3014 { 273, {
'C',
'W',0}, {
'C',
'U',
'W',0}, 10039880, 531 },
3015 { 276, {
'S',
'S',0}, {
'S',
'S',
'D',0}, 42487, 728 },
3016 { 300, {
'A',
'I',0}, {
'A',
'I',
'A',0}, 10039880, 660 },
3017 { 301, {
'A',
'Q',0}, {
'A',
'T',
'A',0}, 39070, 10 },
3018 { 302, {
'A',
'W',0}, {
'A',
'B',
'W',0}, 10039880, 533 },
3019 { 303, {
'X',
'X',0}, {
'X',
'X',0}, 39070 },
3020 { 304, {
'X',
'X',0}, {
'X',
'X',0}, 10210825 },
3021 { 305, {
'X',
'X',0}, {
'X',
'X',0}, 161832256 },
3022 { 306, {
'B',
'V',0}, {
'B',
'V',
'T',0}, 39070, 74 },
3023 { 307, {
'K',
'Y',0}, {
'C',
'Y',
'M',0}, 10039880, 136 },
3024 { 308, {
'X',
'X',0}, {
'X',
'X',0}, 10210824, 0,
LOCATION_BOTH },
3025 { 309, {
'C',
'X',0}, {
'C',
'X',
'R',0}, 12, 162 },
3026 { 310, {
'X',
'X',0}, {
'X',
'X',0}, 27114 },
3027 { 311, {
'C',
'C',0}, {
'C',
'C',
'K',0}, 10210825, 166 },
3028 { 312, {
'C',
'K',0}, {
'C',
'O',
'K',0}, 26286, 184 },
3029 { 313, {
'X',
'X',0}, {
'X',
'X',0}, 10210825 },
3030 { 314, {
'X',
'X',0}, {
'X',
'X',0}, 114 },
3031 { 315, {
'F',
'K',0}, {
'F',
'L',
'K',0}, 31396, 238 },
3032 { 317, {
'G',
'F',0}, {
'G',
'U',
'F',0}, 31396, 254 },
3033 { 318, {
'P',
'F',0}, {
'P',
'Y',
'F',0}, 26286, 258 },
3034 { 319, {
'T',
'F',0}, {
'A',
'T',
'F',0}, 39070, 260 },
3035 { 321, {
'G',
'P',0}, {
'G',
'L',
'P',0}, 10039880, 312 },
3036 { 322, {
'G',
'U',0}, {
'G',
'U',
'M',0}, 21206, 316 },
3037 { 323, {
'X',
'X',0}, {
'X',
'X',0}, 39070 },
3038 { 324, {
'G',
'G',0}, {
'G',
'G',
'Y',0}, 308, 831 },
3039 { 325, {
'H',
'M',0}, {
'H',
'M',
'D',0}, 39070, 334 },
3040 { 326, {
'X',
'X',0}, {
'X',
'X',0}, 161832256 },
3041 { 327, {
'X',
'X',0}, {
'X',
'X',0}, 161832256 },
3042 { 328, {
'J',
'E',0}, {
'J',
'E',
'Y',0}, 308, 832 },
3043 { 329, {
'X',
'X',0}, {
'X',
'X',0}, 161832256 },
3044 { 330, {
'M',
'Q',0}, {
'M',
'T',
'Q',0}, 10039880, 474 },
3045 { 331, {
'Y',
'T',0}, {
'M',
'Y',
'T',0}, 47603, 175 },
3046 { 332, {
'M',
'S',0}, {
'M',
'S',
'R',0}, 10039880, 500 },
3047 { 333, {
'A',
'N',0}, {
'A',
'N',
'T',0}, 10039880, 530,
LOCATION_BOTH },
3048 { 334, {
'N',
'C',0}, {
'N',
'C',
'L',0}, 20900, 540 },
3049 { 335, {
'N',
'U',0}, {
'N',
'I',
'U',0}, 26286, 570 },
3050 { 336, {
'N',
'F',0}, {
'N',
'F',
'K',0}, 10210825, 574 },
3051 { 337, {
'M',
'P',0}, {
'M',
'N',
'P',0}, 21206, 580 },
3052 { 338, {
'X',
'X',0}, {
'X',
'X',0}, 161832256 },
3053 { 339, {
'P',
'N',0}, {
'P',
'C',
'N',0}, 26286, 612 },
3054 { 340, {
'X',
'X',0}, {
'X',
'X',0}, 337 },
3055 { 341, {
'X',
'X',0}, {
'X',
'X',0}, 337 },
3056 { 342, {
'G',
'S',0}, {
'S',
'G',
'S',0}, 39070, 239 },
3057 { 343, {
'S',
'H',0}, {
'S',
'H',
'N',0}, 42483, 654 },
3058 { 346, {
'X',
'X',0}, {
'X',
'X',0}, 337 },
3059 { 347, {
'T',
'K',0}, {
'T',
'K',
'L',0}, 26286, 772 },
3060 { 348, {
'X',
'X',0}, {
'X',
'X',0}, 39070 },
3061 { 349, {
'T',
'C',0}, {
'T',
'C',
'A',0}, 10039880, 796 },
3062 { 351, {
'V',
'G',0}, {
'V',
'G',
'B',0}, 10039880, 92 },
3063 { 352, {
'W',
'F',0}, {
'W',
'L',
'F',0}, 26286, 876 },
3064 { 742, {
'X',
'X',0}, {
'X',
'X',0}, 39070, 0,
LOCATION_REGION },
3065 { 2129, {
'X',
'X',0}, {
'X',
'X',0}, 39070, 0,
LOCATION_REGION },
3066 { 10541, {
'X',
'X',0}, {
'X',
'X',0}, 39070, 0,
LOCATION_REGION },
3067 { 15126, {
'I',
'M',0}, {
'I',
'M',
'N',0}, 10039882, 833 },
3068 { 19618, {
'M',
'K',0}, {
'M',
'K',
'D',0}, 47610, 807 },
3069 { 20900, {
'X',
'X',0}, {
'X',
'X',0}, 27114, 0,
LOCATION_REGION },
3070 { 21206, {
'X',
'X',0}, {
'X',
'X',0}, 27114, 0,
LOCATION_REGION },
3071 { 21242, {
'X',
'X',0}, {
'X',
'X',0}, 161832256 },
3072 { 23581, {
'X',
'X',0}, {
'X',
'X',0}, 10026358, 0,
LOCATION_REGION },
3073 { 26286, {
'X',
'X',0}, {
'X',
'X',0}, 27114, 0,
LOCATION_REGION },
3074 { 27082, {
'X',
'X',0}, {
'X',
'X',0}, 161832257, 0,
LOCATION_REGION },
3075 { 27114, {
'X',
'X',0}, {
'X',
'X',0}, 39070, 0,
LOCATION_REGION },
3076 { 30967, {
'S',
'X',0}, {
'S',
'X',
'M',0}, 10039880, 534 },
3077 { 31396, {
'X',
'X',0}, {
'X',
'X',0}, 161832257, 0,
LOCATION_REGION },
3078 { 31706, {
'M',
'F',0}, {
'M',
'A',
'F',0}, 10039880, 663 },
3079 { 39070, {
'X',
'X',0}, {
'X',
'X',0}, 39070, 0,
LOCATION_REGION },
3080 { 42483, {
'X',
'X',0}, {
'X',
'X',0}, 742, 0,
LOCATION_REGION },
3081 { 42484, {
'X',
'X',0}, {
'X',
'X',0}, 742, 0,
LOCATION_REGION },
3082 { 42487, {
'X',
'X',0}, {
'X',
'X',0}, 742, 0,
LOCATION_REGION },
3083 { 47590, {
'X',
'X',0}, {
'X',
'X',0}, 2129, 0,
LOCATION_REGION },
3084 { 47599, {
'X',
'X',0}, {
'X',
'X',0}, 2129, 0,
LOCATION_REGION },
3085 { 47600, {
'X',
'X',0}, {
'X',
'X',0}, 2129, 0,
LOCATION_REGION },
3086 { 47603, {
'X',
'X',0}, {
'X',
'X',0}, 742, 0,
LOCATION_REGION },
3087 { 47609, {
'X',
'X',0}, {
'X',
'X',0}, 10541, 0,
LOCATION_REGION },
3088 { 47610, {
'X',
'X',0}, {
'X',
'X',0}, 10541, 0,
LOCATION_REGION },
3089 { 47611, {
'X',
'X',0}, {
'X',
'X',0}, 2129, 0,
LOCATION_REGION },
3090 { 47614, {
'X',
'X',0}, {
'X',
'X',0}, 2129, 0,
LOCATION_REGION },
3091 { 7299303, {
'T',
'L',0}, {
'T',
'L',
'S',0}, 47599, 626 },
3092 { 10026358, {
'X',
'X',0}, {
'X',
'X',0}, 39070, 0,
LOCATION_REGION },
3093 { 10028789, {
'A',
'X',0}, {
'A',
'L',
'A',0}, 10039882, 248 },
3094 { 10039880, {
'X',
'X',0}, {
'X',
'X',0}, 161832257, 0,
LOCATION_REGION },
3095 { 10039882, {
'X',
'X',0}, {
'X',
'X',0}, 10541, 0,
LOCATION_REGION },
3096 { 10039883, {
'X',
'X',0}, {
'X',
'X',0}, 742, 0,
LOCATION_REGION },
3097 { 10210824, {
'X',
'X',0}, {
'X',
'X',0}, 10541, 0,
LOCATION_REGION },
3098 { 10210825, {
'X',
'X',0}, {
'X',
'X',0}, 27114, 0,
LOCATION_REGION },
3099 { 161832015, {
'B',
'L',0}, {
'B',
'L',
'M',0}, 10039880, 652 },
3100 { 161832256, {
'U',
'M',0}, {
'U',
'M',
'I',0}, 27114, 581 },
3101 { 161832257, {
'X',
'X',0}, {
'X',
'X',0}, 10026358, 0,
LOCATION_REGION },
3188 hKey =
NLS_RegOpenKey(0,
L"\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Control\\NLS\\CodePage");
3191 WARN(
"NLS_RegOpenKey() failed\n");
3198 szValue,
sizeof(szValue)))
3205 bContinue = lpProcs->
procW(szNumber);
3209 char szNumberA[
sizeof(szNumber)/
sizeof(
WCHAR)];
3212 bContinue = lpProcs->
procA(szNumberA);
3218 }
else bContinue =
FALSE;
3245 procs.
procW = lpCodePageEnumProc;
3266 procs.
procA = lpCodePageEnumProc;
3291 TRACE(
"(%d, %d, %p)\n", geoclass,
parent, enumproc);
3315 if (!enumproc(
ptr->id))
3351 static const WCHAR geoW[] = {
'G',
'e',
'o',0};
3352 static const WCHAR nationW[] = {
'N',
'a',
't',
'i',
'o',
'n',0};
3355 HANDLE hkey, hSubkey = 0;
3359 count =
sizeof(bufferW);
3373 FIXME(
"GEOCLASS_REGION not handled yet\n");
3378 if (hSubkey)
NtClose(hSubkey);
3387 static const WCHAR geoW[] = {
'G',
'e',
'o',0};
3388 static const WCHAR nationW[] = {
'N',
'a',
't',
'i',
'o',
'n',0};
3389 static const WCHAR formatW[] = {
'%',
'i',0};
3398 attr.RootDirectory = hkey;
3400 attr.Attributes = 0;
3402 attr.SecurityQualityOfService =
NULL;
3444 static const WCHAR formatW[] = {
'%',
'0',
'8',
'x',0};
3461 if(!pUILangEnumProc) {
3470 enum_uilang.
u.
procA = pUILangEnumProc;
3490 if(!pUILangEnumProc) {
3499 enum_uilang.
u.
procW = pUILangEnumProc;
3532 return strlenW(szFriendlyName) + 1;
3549 if (geoid ==
ptr->id)
3553 if (
ptr->id > geoid)
3573 TRACE(
"%d %d %p %d %d\n", geoid, geotype,
data, data_len,
lang);
3611 FIXME(
"type %d is not supported\n", geotype);
3615 WARN(
"unrecognized type %d\n", geotype);
3621 static const WCHAR fmtW[] = {
'%',
'd',0};
3627 if (!
data || !data_len)
3633 return data_len <
len ? 0 :
len;
3644 TRACE(
"%d %d %p %d %d\n", geoid, geotype,
data, data_len,
lang);
3656 if (!
data || !data_len) {
3666 return data_len <
len ? 0 :
len;
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
BOOL WINAPI EnumSystemCodePagesW(CODEPAGE_ENUMPROCW lpCodePageEnumProc, DWORD dwFlags)
#define LCMAP_SIMPLIFIED_CHINESE
#define ERROR_INVALID_PARAMETER
LANGGROUPLOCALE_ENUMPROCW procW
static struct registry_value * get_locale_registry_value(DWORD lctype)
static BOOL NLS_RegGetDword(HANDLE hKey, LPCWSTR szValueName, DWORD *lpVal)
INT WINAPI FoldStringA(DWORD dwFlags, LPCSTR src, INT srclen, LPSTR dst, INT dstlen)
#define LINGUISTIC_IGNORECASE
#define LOCALE_IDEFAULTANSICODEPAGE
static const WCHAR sPositiveSignW[]
static const WCHAR szName[]
#define MAKELCID(lgid, srtid)
LANGID WINAPI GetUserDefaultUILanguage(void)
#define LOCALE_SABBREVMONTHNAME12
#define SUBLANG_CHINESE_TRADITIONAL
DWORD WINAPI VerLanguageNameW(DWORD wLang, LPWSTR szLang, DWORD nSize)
#define LOCALE_LOCALEINFOFLAGSMASK
#define LOCALE_SMONGROUPING
void JapaneseEra_ClearCache(void)
BOOL(CALLBACK * LOCALE_ENUMPROCEX)(LPWSTR, DWORD, LPARAM)
static LCID lcid_LC_TELEPHONE
union ENUM_UILANG_CALLBACK::@448 u
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)
static int get_value_base_by_lctype(LCTYPE lctype)
#define CSTR_GREATER_THAN
WINE_UNICODE_INLINE unsigned int strlenW(const WCHAR *str)
static LCID lcid_LC_NUMERIC
#define LOCALE_SABBREVDAYNAME2
#define LOCALE_SABBREVMONTHNAME1
#define LOCALE_SISO639LANGNAME
#define LOCALE_SMONTHNAME5
#define WideCharToMultiByte
static const WCHAR iNegNumberW[]
#define OBJ_CASE_INSENSITIVE
#define LOCALE_SENGLANGUAGE
INT WINAPI GetGeoInfoA(GEOID geoid, GEOTYPE geotype, LPSTR data, int data_len, LANGID lang)
#define LOCALE_IPOSSYMPRECEDES
#define LOCALE_SABBREVMONTHNAME6
LANGID WINAPI GetSystemDefaultUILanguage(void)
ACPI_SIZE strlen(const char *String)
#define LOCALE_SMONTHNAME2
static const WCHAR iCurrDigitsW[]
static LCID lcid_LC_MEASUREMENT
static const WCHAR sNativeDigitsW[]
#define C2_BLOCKSEPARATOR
#define LOCALE_SABBREVDAYNAME4
WINE_UNICODE_INLINE WCHAR * strchrW(const WCHAR *str, WCHAR ch)
BOOL WINAPI WriteProfileStringW(LPCWSTR section, LPCWSTR entry, LPCWSTR string)
INT WINAPI GetLocaleInfoA(LCID lcid, LCTYPE lctype, LPSTR buffer, INT len)
#define LOCALE_SABBREVDAYNAME7
#define LOCALE_SABBREVDAYNAME1
#define LOCALE_USER_DEFAULT
INT WINAPI FoldStringW(DWORD dwFlags, LPCWSTR src, INT srclen, LPWSTR dst, INT dstlen)
GLuint GLuint GLsizei count
#define LOCALE_INEGSYMPRECEDES
*nSize LPSTR _Inout_ LPDWORD nSize
LANGGROUPLOCALE_ENUMPROCA procA
#define LOCALE_SMONTHNAME13
static const WCHAR sListW[]
#define LOCALE_IDEFAULTMACCODEPAGE
#define SUBLANG_SPANISH_MODERN
#define LOCALE_SMONTHNAME6
#define LOCALE_ICALENDARTYPE
static const WCHAR szLangGroupsKeyName[]
static HANDLE create_registry_key(void)
NTSYSAPI NTSTATUS NTAPI RtlEnterCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
#define NORM_IGNORESYMBOLS
#define ERROR_NOT_ENOUGH_MEMORY
static INT get_registry_locale_info(struct registry_value *registry_value, LPWSTR buffer, INT len)
static BOOL CALLBACK enum_uilang_proc_w(HMODULE hModule, LPCWSTR type, LPCWSTR name, WORD LangID, LONG_PTR lParam)
LPVOID WINAPI LockResource(HGLOBAL handle)
#define SUBLANG_CHINESE_HONGKONG
#define LOCALE_SABBREVMONTHNAME7
static void strcpynAtoW(WCHAR *dst, const char *src, size_t n)
BOOL WINAPI EnumUILanguagesA(UILANGUAGE_ENUMPROCA pUILangEnumProc, DWORD dwFlags, LONG_PTR lParam)
BOOL(CALLBACK * LANGUAGEGROUP_ENUMPROCA)(LGRPID, LPSTR, LPSTR, DWORD, LONG_PTR)
static const WCHAR sLongDateW[]
LCID WINAPI GetUserDefaultLCID(void)
#define strncmpiW(s1, s2, n)
#define SUBLANG_CHINESE_SINGAPORE
_Check_return_ _CRTIMP int __cdecl isalnum(_In_ int _C)
static const WCHAR sCurrencyW[]
int wine_fold_string(int flags, const WCHAR *src, int srclen, WCHAR *dst, int dstlen)
BOOL WINAPI IsValidLanguageGroup(LGRPID lgrpid, DWORD dwFlags)
static const WCHAR iPaperSizeW[]
#define NORM_IGNOREKANATYPE
BOOL(CALLBACK * LANGUAGEGROUP_ENUMPROCW)(LGRPID, LPWSTR, LPWSTR, DWORD, LONG_PTR)
static RTL_CRITICAL_SECTION cache_section
#define LOCALE_SABBREVMONTHNAME3
static BOOL NLS_EnumLanguageGroupLocales(ENUMLANGUAGEGROUPLOCALE_CALLBACKS *lpProcs)
#define C2_EUROPESEPARATOR
BOOL(CALLBACK * CODEPAGE_ENUMPROCW)(LPWSTR)
static const WCHAR sNegativeSignW[]
#define LOCALE_SMONTHNAME8
#define LOCALE_IPOSSEPBYSPACE
#define LOCALE_IDEFAULTLANGUAGE
#define LOCALE_RETURN_GENITIVE_NAMES
static const WCHAR iCalendarTypeW[]
#define LOCALE_SABBREVMONTHNAME8
static LCID lcid_LC_CTYPE
#define LOCALE_INEGNUMBER
INT WINAPI LCMapStringEx(LPCWSTR name, DWORD flags, LPCWSTR src, INT srclen, LPWSTR dst, INT dstlen, LPNLSVERSIONINFO version, LPVOID reserved, LPARAM lparam)
static const WCHAR iTLZeroW[]
INT WINAPI GetLocaleInfoW(LCID lcid, LCTYPE lctype, LPWSTR buffer, INT len)
static const WCHAR iFirstDayOfWeekW[]
BOOL WINAPI EnumSystemGeoID(GEOCLASS geoclass, GEOID parent, GEO_ENUMPROC enumproc)
#define sprintf(buf, format,...)
static BOOL CALLBACK enum_locale_ex_proc(HMODULE module, LPCWSTR type, LPCWSTR name, WORD lang, LONG_PTR lparam)
GLenum GLuint GLenum GLsizei const GLchar * buf
#define LOCALE_SABBREVDAYNAME3
static BOOL NLS_EnumSystemCodePages(ENUMSYSTEMCODEPAGES_CALLBACKS *lpProcs)
#define NORM_LINGUISTIC_CASING
#define LOCALE_SABBREVMONTHNAME5
#define LOCALE_SMONTHNAME1
NTSYSAPI ULONG WINAPI RtlNtStatusToDosError(NTSTATUS)
BOOL WINAPI SetThreadLocale(LCID lcid)
#define LOCALE_NOUSEROVERRIDE
BOOL(CALLBACK * UILANGUAGE_ENUMPROCA)(LPSTR, LONG_PTR)
BOOL WINAPI EnumSystemLanguageGroupsW(LANGUAGEGROUP_ENUMPROCW pLangGrpEnumProc, DWORD dwFlags, LONG_PTR lParam)
LCID WINAPI ConvertDefaultLocale(LCID lcid)
BOOL WINAPI GetStringTypeA(LCID locale, DWORD type, LPCSTR src, INT count, LPWORD chartype)
NTSYSAPI NTSTATUS NTAPI RtlLeaveCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
#define LOCALE_SABBREVMONTHNAME10
static const struct geoinfo_t geoinfodata[]
static size_t double number
#define LOCALE_SINTLSYMBOL
static const WCHAR iCurrencyW[]
static UINT WPARAM LPARAM lparam
static struct _test_info info[]
#define LOCALE_SABBREVDAYNAME6
INT WINAPI LCMapStringW(LCID lcid, DWORD flags, LPCWSTR src, INT srclen, LPWSTR dst, INT dstlen)
BOOL WINAPI EnumLanguageGroupLocalesW(LANGGROUPLOCALE_ENUMPROCW pLangGrpLcEnumProc, LGRPID lgrpid, DWORD dwFlags, LONG_PTR lParam)
GLenum GLuint GLenum GLsizei length
BOOL WINAPI FreeResource(HGLOBAL handle)
BOOL WINAPI EnumSystemCodePagesA(CODEPAGE_ENUMPROCA lpCodePageEnumProc, DWORD dwFlags)
#define LOCALE_ITIMEMARKPOSN
static const WCHAR s1159W[]
HGLOBAL WINAPI LoadResource(HINSTANCE hModule, HRSRC hRsrc)
static BOOL NLS_RegEnumValue(HANDLE hKey, UINT ulIndex, LPWSTR szValueName, ULONG valueNameSize, LPWSTR szValueData, ULONG valueDataSize)
int wine_get_sortkey(int flags, const WCHAR *src, int srclen, char *dst, int dstlen)
static int NLS_GetGeoFriendlyName(GEOID Location, LPWSTR szFriendlyName, int cchData)
static const WCHAR sMonThousandSepW[]
BOOL WINAPI GetStringTypeExW(LCID locale, DWORD type, LPCWSTR src, INT count, LPWORD chartype)
static const WCHAR iTimeW[]
#define LOCALE_SABBREVMONTHNAME4
static const WCHAR version[]
static const WCHAR iDateW[]
#define LOCALE_SMONTHNAME4
LCID WINAPI GetSystemDefaultLCID(void)
#define LOCALE_SABBREVMONTHNAME13
static const WCHAR sDateW[]
BOOL(CALLBACK * LANGGROUPLOCALE_ENUMPROCA)(LGRPID, LCID, LPSTR, LONG_PTR)
static const WCHAR valueW[]
BOOL WINAPI EnumResourceLanguagesW(HMODULE hmod, LPCWSTR type, LPCWSTR name, ENUMRESLANGPROCW lpfun, LONG_PTR lparam)
#define LOCALE_NEUTRALDATA
BOOL WINAPI EnumSystemLocalesW(LOCALE_ENUMPROCW lpfnLocaleEnum, DWORD dwFlags)
static const WCHAR s2359W[]
static LCID lcid_LC_COLLATE
static const WCHAR sGroupingW[]
BOOL(CALLBACK * LOCALE_ENUMPROCA)(LPSTR)
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 GL