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
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 },
152static const WCHAR iCalendarTypeW[] = {
'i',
'C',
'a',
'l',
'e',
'n',
'd',
'a',
'r',
'T',
'y',
'p',
'e',0};
154static const WCHAR iCurrDigitsW[] = {
'i',
'C',
'u',
'r',
'r',
'D',
'i',
'g',
'i',
't',
's',0};
158static const WCHAR iFirstDayOfWeekW[] = {
'i',
'F',
'i',
'r',
's',
't',
'D',
'a',
'y',
'O',
'f',
'W',
'e',
'e',
'k',0};
159static const WCHAR iFirstWeekOfYearW[] = {
'i',
'F',
'i',
'r',
's',
't',
'W',
'e',
'e',
'k',
'O',
'f',
'Y',
'e',
'a',
'r',0};
164static const WCHAR iNegNumberW[] = {
'i',
'N',
'e',
'g',
'N',
'u',
'm',
'b',
'e',
'r',0};
165static const WCHAR iPaperSizeW[] = {
'i',
'P',
'a',
'p',
'e',
'r',
'S',
'i',
'z',
'e',0};
167static const WCHAR iTimePrefixW[] = {
'i',
'T',
'i',
'm',
'e',
'P',
'r',
'e',
'f',
'i',
'x',0};
179static const WCHAR sMonDecimalSepW[] = {
's',
'M',
'o',
'n',
'D',
'e',
'c',
'i',
'm',
'a',
'l',
'S',
'e',
'p',0};
180static const WCHAR sMonGroupingW[] = {
's',
'M',
'o',
'n',
'G',
'r',
'o',
'u',
'p',
'i',
'n',
'g',0};
181static const WCHAR sMonThousandSepW[] = {
's',
'M',
'o',
'n',
'T',
'h',
'o',
'u',
's',
'a',
'n',
'd',
'S',
'e',
'p',0};
182static const WCHAR sNativeDigitsW[] = {
's',
'N',
'a',
't',
'i',
'v',
'e',
'D',
'i',
'g',
'i',
't',
's',0};
183static const WCHAR sNegativeSignW[] = {
's',
'N',
'e',
'g',
'a',
't',
'i',
'v',
'e',
'S',
'i',
'g',
'n',0};
184static const WCHAR sPositiveSignW[] = {
's',
'P',
'o',
's',
'i',
't',
'i',
'v',
'e',
'S',
'i',
'g',
'n',0};
185static const WCHAR sShortDateW[] = {
's',
'S',
'h',
'o',
'r',
't',
'D',
'a',
't',
'e',0};
187static const WCHAR sTimeFormatW[] = {
's',
'T',
'i',
'm',
'e',
'F',
'o',
'r',
'm',
'a',
't',0};
189static 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)
276static 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));
1289GetUserDefaultLocaleName(
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",
2014 INT convlen = dst_ptr -
dst;
2015 for (dst_ptr =
dst; convlen; --convlen, ++dst_ptr)
2023 WCHAR wch = *dst_ptr;
2024 if ((0x3041 <= wch && wch <= 0x3093) || wch == 0x3095 || wch == 0x309D || wch == 0x309E)
2025 *dst_ptr = wch + 0x60;
2030 INT convlen = dst_ptr -
dst;
2031 for (dst_ptr =
dst; convlen; --convlen, ++dst_ptr)
2039 WCHAR wch = *dst_ptr;
2040 if ((0x30A1 <= wch && wch <= 0x30F3) || wch == 0x30F5 || wch == 0x30FD || wch == 0x30FE)
2041 *dst_ptr = wch - 0x60;
2052 return dst_ptr -
dst;
2063 TRACE(
"(0x%04x,0x%08x,%s,%d,%p,%d)\n",
2091 INT ret = 0, srclenW, dstlenW;
2122 goto map_string_exit;
2129 goto map_string_exit;
2135 goto map_string_exit;
2140 goto map_string_exit;
2146 goto map_string_exit;
2179 INT ret = 0, srclenW = 0;
2195 goto FoldStringA_exit;
2211 goto FoldStringA_exit;
2287 if (
flags & ~(supported_flags|semistub_flags))
2293 if (
flags & semistub_flags)
2296 FIXME(
"semi-stub behavior for flag(s) 0x%x\n",
flags & semistub_flags);
2299 if (len1 < 0) len1 =
strlenW(str1);
2300 if (len2 < 0) len2 =
strlenW(str2);
2342 WCHAR *buf2W = buf1W + 130;
2344 INT len1W = 0, len2W = 0,
ret;
2352 if (len1 < 0) len1 =
strlen(str1);
2353 if (len2 < 0) len2 =
strlen(str2);
2450 info->NameLength > valueNameSize ||
2451 info->DataLength > valueDataSize)
2459 szValueName[
info->NameLength /
sizeof(
WCHAR)] =
'\0';
2461 szValueData[
info->DataLength /
sizeof(
WCHAR)] =
'\0';
2509 ULONG iResourceIndex = lgrpid & 0xf;
2513 for (
i = 0;
i < iResourceIndex;
i++)
2514 lpResEntry += *lpResEntry + 1;
2516 if (*lpResEntry < nameSize)
2519 szName[*lpResEntry] =
'\0';
2541 WCHAR szNumber[10], szValue[4];
2569 FIXME(
"NLS registry key not found. Please apply the default registry file 'wine.inf'\n");
2574 szValue,
sizeof(szValue) ))
2576 BOOL bInstalled = szValue[0] ==
'1';
2580 bInstalled ?
"" :
"not ");
2584 WCHAR szGrpName[48];
2587 szGrpName[0] =
'\0';
2590 bContinue = lpProcs->
procW( lgrpid, szNumber, szGrpName, lpProcs->
dwFlags,
2594 char szNumberA[
sizeof(szNumber)/
sizeof(
WCHAR)];
2595 char szGrpNameA[48];
2604 bContinue = lpProcs->
procA( lgrpid, szNumberA, szGrpNameA, lpProcs->
dwFlags,
2645 procs.
procA = pLangGrpEnumProc;
2666 procs.
procW = pLangGrpEnumProc;
2688 static const WCHAR szFormat[] = {
'%',
'x',
'\0' };
2689 WCHAR szValueName[16], szValue[2];
2701 sprintfW( szValueName, szFormat, lgrpid );
2707 if (szValue[0] ==
'1')
2737 static const WCHAR szAlternateSortsKeyName[] = {
2738 'A',
'l',
't',
'e',
'r',
'n',
'a',
't',
'e',
' ',
'S',
'o',
'r',
't',
's',
'\0'
2740 WCHAR szNumber[10], szValue[4];
2761 WARN(
"NLS registry key not found. Please apply the default registry file 'wine.inf'\n");
2766 szValue,
sizeof(szValue) ))
2771 lgrpid, lgrpid == lpProcs->
lgrpid ?
"" :
"not ");
2773 if (lgrpid == lpProcs->
lgrpid)
2785 bContinue = lpProcs->
procW( lgrpid, lcid, szNumber, lpProcs->
lParam );
2788 char szNumberA[
sizeof(szNumber)/
sizeof(
WCHAR)];
2792 bContinue = lpProcs->
procA( lgrpid, lcid, szNumberA, lpProcs->
lParam );
2838 { 2, {
'A',
'G',0}, {
'A',
'T',
'G',0}, 10039880, 28 },
2839 { 3, {
'A',
'F',0}, {
'A',
'F',
'G',0}, 47614, 4 },
2840 { 4, {
'D',
'Z',0}, {
'D',
'Z',
'A',0}, 42487, 12 },
2841 { 5, {
'A',
'Z',0}, {
'A',
'Z',
'E',0}, 47611, 31 },
2842 { 6, {
'A',
'L',0}, {
'A',
'L',
'B',0}, 47610, 8 },
2843 { 7, {
'A',
'M',0}, {
'A',
'R',
'M',0}, 47611, 51 },
2844 { 8, {
'A',
'D',0}, {
'A',
'N',
'D',0}, 47610, 20 },
2845 { 9, {
'A',
'O',0}, {
'A',
'G',
'O',0}, 42484, 24 },
2846 { 10, {
'A',
'S',0}, {
'A',
'S',
'M',0}, 26286, 16 },
2847 { 11, {
'A',
'R',0}, {
'A',
'R',
'G',0}, 31396, 32 },
2848 { 12, {
'A',
'U',0}, {
'A',
'U',
'S',0}, 10210825, 36 },
2849 { 14, {
'A',
'T',0}, {
'A',
'U',
'T',0}, 10210824, 40 },
2850 { 17, {
'B',
'H',0}, {
'B',
'H',
'R',0}, 47611, 48 },
2851 { 18, {
'B',
'B',0}, {
'B',
'R',
'B',0}, 10039880, 52 },
2852 { 19, {
'B',
'W',0}, {
'B',
'W',
'A',0}, 10039883, 72 },
2853 { 20, {
'B',
'M',0}, {
'B',
'M',
'U',0}, 23581, 60 },
2854 { 21, {
'B',
'E',0}, {
'B',
'E',
'L',0}, 10210824, 56 },
2855 { 22, {
'B',
'S',0}, {
'B',
'H',
'S',0}, 10039880, 44 },
2856 { 23, {
'B',
'D',0}, {
'B',
'G',
'D',0}, 47614, 50 },
2857 { 24, {
'B',
'Z',0}, {
'B',
'L',
'Z',0}, 27082, 84 },
2858 { 25, {
'B',
'A',0}, {
'B',
'I',
'H',0}, 47610, 70 },
2859 { 26, {
'B',
'O',0}, {
'B',
'O',
'L',0}, 31396, 68 },
2860 { 27, {
'M',
'M',0}, {
'M',
'M',
'R',0}, 47599, 104 },
2861 { 28, {
'B',
'J',0}, {
'B',
'E',
'N',0}, 42483, 204 },
2862 { 29, {
'B',
'Y',0}, {
'B',
'L',
'R',0}, 47609, 112 },
2863 { 30, {
'S',
'B',0}, {
'S',
'L',
'B',0}, 20900, 90 },
2864 { 32, {
'B',
'R',0}, {
'B',
'R',
'A',0}, 31396, 76 },
2865 { 34, {
'B',
'T',0}, {
'B',
'T',
'N',0}, 47614, 64 },
2866 { 35, {
'B',
'G',0}, {
'B',
'G',
'R',0}, 47609, 100 },
2867 { 37, {
'B',
'N',0}, {
'B',
'R',
'N',0}, 47599, 96 },
2868 { 38, {
'B',
'I',0}, {
'B',
'D',
'I',0}, 47603, 108 },
2869 { 39, {
'C',
'A',0}, {
'C',
'A',
'N',0}, 23581, 124 },
2870 { 40, {
'K',
'H',0}, {
'K',
'H',
'M',0}, 47599, 116 },
2871 { 41, {
'T',
'D',0}, {
'T',
'C',
'D',0}, 42484, 148 },
2872 { 42, {
'L',
'K',0}, {
'L',
'K',
'A',0}, 47614, 144 },
2873 { 43, {
'C',
'G',0}, {
'C',
'O',
'G',0}, 42484, 178 },
2874 { 44, {
'C',
'D',0}, {
'C',
'O',
'D',0}, 42484, 180 },
2875 { 45, {
'C',
'N',0}, {
'C',
'H',
'N',0}, 47600, 156 },
2876 { 46, {
'C',
'L',0}, {
'C',
'H',
'L',0}, 31396, 152 },
2877 { 49, {
'C',
'M',0}, {
'C',
'M',
'R',0}, 42484, 120 },
2878 { 50, {
'K',
'M',0}, {
'C',
'O',
'M',0}, 47603, 174 },
2879 { 51, {
'C',
'O',0}, {
'C',
'O',
'L',0}, 31396, 170 },
2880 { 54, {
'C',
'R',0}, {
'C',
'R',
'I',0}, 27082, 188 },
2881 { 55, {
'C',
'F',0}, {
'C',
'A',
'F',0}, 42484, 140 },
2882 { 56, {
'C',
'U',0}, {
'C',
'U',
'B',0}, 10039880, 192 },
2883 { 57, {
'C',
'V',0}, {
'C',
'P',
'V',0}, 42483, 132 },
2884 { 59, {
'C',
'Y',0}, {
'C',
'Y',
'P',0}, 47611, 196 },
2885 { 61, {
'D',
'K',0}, {
'D',
'N',
'K',0}, 10039882, 208 },
2886 { 62, {
'D',
'J',0}, {
'D',
'J',
'I',0}, 47603, 262 },
2887 { 63, {
'D',
'M',0}, {
'D',
'M',
'A',0}, 10039880, 212 },
2888 { 65, {
'D',
'O',0}, {
'D',
'O',
'M',0}, 10039880, 214 },
2889 { 66, {
'E',
'C',0}, {
'E',
'C',
'U',0}, 31396, 218 },
2890 { 67, {
'E',
'G',0}, {
'E',
'G',
'Y',0}, 42487, 818 },
2891 { 68, {
'I',
'E',0}, {
'I',
'R',
'L',0}, 10039882, 372 },
2892 { 69, {
'G',
'Q',0}, {
'G',
'N',
'Q',0}, 42484, 226 },
2893 { 70, {
'E',
'E',0}, {
'E',
'S',
'T',0}, 10039882, 233 },
2894 { 71, {
'E',
'R',0}, {
'E',
'R',
'I',0}, 47603, 232 },
2895 { 72, {
'S',
'V',0}, {
'S',
'L',
'V',0}, 27082, 222 },
2896 { 73, {
'E',
'T',0}, {
'E',
'T',
'H',0}, 47603, 231 },
2897 { 75, {
'C',
'Z',0}, {
'C',
'Z',
'E',0}, 47609, 203 },
2898 { 77, {
'F',
'I',0}, {
'F',
'I',
'N',0}, 10039882, 246 },
2899 { 78, {
'F',
'J',0}, {
'F',
'J',
'I',0}, 20900, 242 },
2900 { 80, {
'F',
'M',0}, {
'F',
'S',
'M',0}, 21206, 583 },
2901 { 81, {
'F',
'O',0}, {
'F',
'R',
'O',0}, 10039882, 234 },
2902 { 84, {
'F',
'R',0}, {
'F',
'R',
'A',0}, 10210824, 250 },
2903 { 86, {
'G',
'M',0}, {
'G',
'M',
'B',0}, 42483, 270 },
2904 { 87, {
'G',
'A',0}, {
'G',
'A',
'B',0}, 42484, 266 },
2905 { 88, {
'G',
'E',0}, {
'G',
'E',
'O',0}, 47611, 268 },
2906 { 89, {
'G',
'H',0}, {
'G',
'H',
'A',0}, 42483, 288 },
2907 { 90, {
'G',
'I',0}, {
'G',
'I',
'B',0}, 47610, 292 },
2908 { 91, {
'G',
'D',0}, {
'G',
'R',
'D',0}, 10039880, 308 },
2909 { 93, {
'G',
'L',0}, {
'G',
'R',
'L',0}, 23581, 304 },
2910 { 94, {
'D',
'E',0}, {
'D',
'E',
'U',0}, 10210824, 276 },
2911 { 98, {
'G',
'R',0}, {
'G',
'R',
'C',0}, 47610, 300 },
2912 { 99, {
'G',
'T',0}, {
'G',
'T',
'M',0}, 27082, 320 },
2913 { 100, {
'G',
'N',0}, {
'G',
'I',
'N',0}, 42483, 324 },
2914 { 101, {
'G',
'Y',0}, {
'G',
'U',
'Y',0}, 31396, 328 },
2915 { 103, {
'H',
'T',0}, {
'H',
'T',
'I',0}, 10039880, 332 },
2916 { 104, {
'H',
'K',0}, {
'H',
'K',
'G',0}, 47600, 344 },
2917 { 106, {
'H',
'N',0}, {
'H',
'N',
'D',0}, 27082, 340 },
2918 { 108, {
'H',
'R',0}, {
'H',
'R',
'V',0}, 47610, 191 },
2919 { 109, {
'H',
'U',0}, {
'H',
'U',
'N',0}, 47609, 348 },
2920 { 110, {
'I',
'S',0}, {
'I',
'S',
'L',0}, 10039882, 352 },
2921 { 111, {
'I',
'D',0}, {
'I',
'D',
'N',0}, 47599, 360 },
2922 { 113, {
'I',
'N',0}, {
'I',
'N',
'D',0}, 47614, 356 },
2923 { 114, {
'I',
'O',0}, {
'I',
'O',
'T',0}, 39070, 86 },
2924 { 116, {
'I',
'R',0}, {
'I',
'R',
'N',0}, 47614, 364 },
2925 { 117, {
'I',
'L',0}, {
'I',
'S',
'R',0}, 47611, 376 },
2926 { 118, {
'I',
'T',0}, {
'I',
'T',
'A',0}, 47610, 380 },
2927 { 119, {
'C',
'I',0}, {
'C',
'I',
'V',0}, 42483, 384 },
2928 { 121, {
'I',
'Q',0}, {
'I',
'R',
'Q',0}, 47611, 368 },
2929 { 122, {
'J',
'P',0}, {
'J',
'P',
'N',0}, 47600, 392 },
2930 { 124, {
'J',
'M',0}, {
'J',
'A',
'M',0}, 10039880, 388 },
2931 { 125, {
'S',
'J',0}, {
'S',
'J',
'M',0}, 10039882, 744 },
2932 { 126, {
'J',
'O',0}, {
'J',
'O',
'R',0}, 47611, 400 },
2933 { 127, {
'X',
'X',0}, {
'X',
'X',0}, 161832256 },
2934 { 129, {
'K',
'E',0}, {
'K',
'E',
'N',0}, 47603, 404 },
2935 { 130, {
'K',
'G',0}, {
'K',
'G',
'Z',0}, 47590, 417 },
2936 { 131, {
'K',
'P',0}, {
'P',
'R',
'K',0}, 47600, 408 },
2937 { 133, {
'K',
'I',0}, {
'K',
'I',
'R',0}, 21206, 296 },
2938 { 134, {
'K',
'R',0}, {
'K',
'O',
'R',0}, 47600, 410 },
2939 { 136, {
'K',
'W',0}, {
'K',
'W',
'T',0}, 47611, 414 },
2940 { 137, {
'K',
'Z',0}, {
'K',
'A',
'Z',0}, 47590, 398 },
2941 { 138, {
'L',
'A',0}, {
'L',
'A',
'O',0}, 47599, 418 },
2942 { 139, {
'L',
'B',0}, {
'L',
'B',
'N',0}, 47611, 422 },
2943 { 140, {
'L',
'V',0}, {
'L',
'V',
'A',0}, 10039882, 428 },
2944 { 141, {
'L',
'T',0}, {
'L',
'T',
'U',0}, 10039882, 440 },
2945 { 142, {
'L',
'R',0}, {
'L',
'B',
'R',0}, 42483, 430 },
2946 { 143, {
'S',
'K',0}, {
'S',
'V',
'K',0}, 47609, 703 },
2947 { 145, {
'L',
'I',0}, {
'L',
'I',
'E',0}, 10210824, 438 },
2948 { 146, {
'L',
'S',0}, {
'L',
'S',
'O',0}, 10039883, 426 },
2949 { 147, {
'L',
'U',0}, {
'L',
'U',
'X',0}, 10210824, 442 },
2950 { 148, {
'L',
'Y',0}, {
'L',
'B',
'Y',0}, 42487, 434 },
2951 { 149, {
'M',
'G',0}, {
'M',
'D',
'G',0}, 47603, 450 },
2952 { 151, {
'M',
'O',0}, {
'M',
'A',
'C',0}, 47600, 446 },
2953 { 152, {
'M',
'D',0}, {
'M',
'D',
'A',0}, 47609, 498 },
2954 { 154, {
'M',
'N',0}, {
'M',
'N',
'G',0}, 47600, 496 },
2955 { 156, {
'M',
'W',0}, {
'M',
'W',
'I',0}, 47603, 454 },
2956 { 157, {
'M',
'L',0}, {
'M',
'L',
'I',0}, 42483, 466 },
2957 { 158, {
'M',
'C',0}, {
'M',
'C',
'O',0}, 10210824, 492 },
2958 { 159, {
'M',
'A',0}, {
'M',
'A',
'R',0}, 42487, 504 },
2959 { 160, {
'M',
'U',0}, {
'M',
'U',
'S',0}, 47603, 480 },
2960 { 162, {
'M',
'R',0}, {
'M',
'R',
'T',0}, 42483, 478 },
2961 { 163, {
'M',
'T',0}, {
'M',
'L',
'T',0}, 47610, 470 },
2962 { 164, {
'O',
'M',0}, {
'O',
'M',
'N',0}, 47611, 512 },
2963 { 165, {
'M',
'V',0}, {
'M',
'D',
'V',0}, 47614, 462 },
2964 { 166, {
'M',
'X',0}, {
'M',
'E',
'X',0}, 27082, 484 },
2965 { 167, {
'M',
'Y',0}, {
'M',
'Y',
'S',0}, 47599, 458 },
2966 { 168, {
'M',
'Z',0}, {
'M',
'O',
'Z',0}, 47603, 508 },
2967 { 173, {
'N',
'E',0}, {
'N',
'E',
'R',0}, 42483, 562 },
2968 { 174, {
'V',
'U',0}, {
'V',
'U',
'T',0}, 20900, 548 },
2969 { 175, {
'N',
'G',0}, {
'N',
'G',
'A',0}, 42483, 566 },
2970 { 176, {
'N',
'L',0}, {
'N',
'L',
'D',0}, 10210824, 528 },
2971 { 177, {
'N',
'O',0}, {
'N',
'O',
'R',0}, 10039882, 578 },
2972 { 178, {
'N',
'P',0}, {
'N',
'P',
'L',0}, 47614, 524 },
2973 { 180, {
'N',
'R',0}, {
'N',
'R',
'U',0}, 21206, 520 },
2974 { 181, {
'S',
'R',0}, {
'S',
'U',
'R',0}, 31396, 740 },
2975 { 182, {
'N',
'I',0}, {
'N',
'I',
'C',0}, 27082, 558 },
2976 { 183, {
'N',
'Z',0}, {
'N',
'Z',
'L',0}, 10210825, 554 },
2977 { 184, {
'P',
'S',0}, {
'P',
'S',
'E',0}, 47611, 275 },
2978 { 185, {
'P',
'Y',0}, {
'P',
'R',
'Y',0}, 31396, 600 },
2979 { 187, {
'P',
'E',0}, {
'P',
'E',
'R',0}, 31396, 604 },
2980 { 190, {
'P',
'K',0}, {
'P',
'A',
'K',0}, 47614, 586 },
2981 { 191, {
'P',
'L',0}, {
'P',
'O',
'L',0}, 47609, 616 },
2982 { 192, {
'P',
'A',0}, {
'P',
'A',
'N',0}, 27082, 591 },
2983 { 193, {
'P',
'T',0}, {
'P',
'R',
'T',0}, 47610, 620 },
2984 { 194, {
'P',
'G',0}, {
'P',
'N',
'G',0}, 20900, 598 },
2985 { 195, {
'P',
'W',0}, {
'P',
'L',
'W',0}, 21206, 585 },
2986 { 196, {
'G',
'W',0}, {
'G',
'N',
'B',0}, 42483, 624 },
2987 { 197, {
'Q',
'A',0}, {
'Q',
'A',
'T',0}, 47611, 634 },
2988 { 198, {
'R',
'E',0}, {
'R',
'E',
'U',0}, 47603, 638 },
2989 { 199, {
'M',
'H',0}, {
'M',
'H',
'L',0}, 21206, 584 },
2990 { 200, {
'R',
'O',0}, {
'R',
'O',
'U',0}, 47609, 642 },
2991 { 201, {
'P',
'H',0}, {
'P',
'H',
'L',0}, 47599, 608 },
2992 { 202, {
'P',
'R',0}, {
'P',
'R',
'I',0}, 10039880, 630 },
2993 { 203, {
'R',
'U',0}, {
'R',
'U',
'S',0}, 47609, 643 },
2994 { 204, {
'R',
'W',0}, {
'R',
'W',
'A',0}, 47603, 646 },
2995 { 205, {
'S',
'A',0}, {
'S',
'A',
'U',0}, 47611, 682 },
2996 { 206, {
'P',
'M',0}, {
'S',
'P',
'M',0}, 23581, 666 },
2997 { 207, {
'K',
'N',0}, {
'K',
'N',
'A',0}, 10039880, 659 },
2998 { 208, {
'S',
'C',0}, {
'S',
'Y',
'C',0}, 47603, 690 },
2999 { 209, {
'Z',
'A',0}, {
'Z',
'A',
'F',0}, 10039883, 710 },
3000 { 210, {
'S',
'N',0}, {
'S',
'E',
'N',0}, 42483, 686 },
3001 { 212, {
'S',
'I',0}, {
'S',
'V',
'N',0}, 47610, 705 },
3002 { 213, {
'S',
'L',0}, {
'S',
'L',
'E',0}, 42483, 694 },
3003 { 214, {
'S',
'M',0}, {
'S',
'M',
'R',0}, 47610, 674 },
3004 { 215, {
'S',
'G',0}, {
'S',
'G',
'P',0}, 47599, 702 },
3005 { 216, {
'S',
'O',0}, {
'S',
'O',
'M',0}, 47603, 706 },
3006 { 217, {
'E',
'S',0}, {
'E',
'S',
'P',0}, 47610, 724 },
3007 { 218, {
'L',
'C',0}, {
'L',
'C',
'A',0}, 10039880, 662 },
3008 { 219, {
'S',
'D',0}, {
'S',
'D',
'N',0}, 42487, 736 },
3009 { 220, {
'S',
'J',0}, {
'S',
'J',
'M',0}, 10039882, 744 },
3010 { 221, {
'S',
'E',0}, {
'S',
'W',
'E',0}, 10039882, 752 },
3011 { 222, {
'S',
'Y',0}, {
'S',
'Y',
'R',0}, 47611, 760 },
3012 { 223, {
'C',
'H',0}, {
'C',
'H',
'E',0}, 10210824, 756 },
3013 { 224, {
'A',
'E',0}, {
'A',
'R',
'E',0}, 47611, 784 },
3014 { 225, {
'T',
'T',0}, {
'T',
'T',
'O',0}, 10039880, 780 },
3015 { 227, {
'T',
'H',0}, {
'T',
'H',
'A',0}, 47599, 764 },
3016 { 228, {
'T',
'J',0}, {
'T',
'J',
'K',0}, 47590, 762 },
3017 { 231, {
'T',
'O',0}, {
'T',
'O',
'N',0}, 26286, 776 },
3018 { 232, {
'T',
'G',0}, {
'T',
'G',
'O',0}, 42483, 768 },
3019 { 233, {
'S',
'T',0}, {
'S',
'T',
'P',0}, 42484, 678 },
3020 { 234, {
'T',
'N',0}, {
'T',
'U',
'N',0}, 42487, 788 },
3021 { 235, {
'T',
'R',0}, {
'T',
'U',
'R',0}, 47611, 792 },
3022 { 236, {
'T',
'V',0}, {
'T',
'U',
'V',0}, 26286, 798 },
3023 { 237, {
'T',
'W',0}, {
'T',
'W',
'N',0}, 47600, 158 },
3024 { 238, {
'T',
'M',0}, {
'T',
'K',
'M',0}, 47590, 795 },
3025 { 239, {
'T',
'Z',0}, {
'T',
'Z',
'A',0}, 47603, 834 },
3026 { 240, {
'U',
'G',0}, {
'U',
'G',
'A',0}, 47603, 800 },
3027 { 241, {
'U',
'A',0}, {
'U',
'K',
'R',0}, 47609, 804 },
3028 { 242, {
'G',
'B',0}, {
'G',
'B',
'R',0}, 10039882, 826 },
3029 { 244, {
'U',
'S',0}, {
'U',
'S',
'A',0}, 23581, 840 },
3030 { 245, {
'B',
'F',0}, {
'B',
'F',
'A',0}, 42483, 854 },
3031 { 246, {
'U',
'Y',0}, {
'U',
'R',
'Y',0}, 31396, 858 },
3032 { 247, {
'U',
'Z',0}, {
'U',
'Z',
'B',0}, 47590, 860 },
3033 { 248, {
'V',
'C',0}, {
'V',
'C',
'T',0}, 10039880, 670 },
3034 { 249, {
'V',
'E',0}, {
'V',
'E',
'N',0}, 31396, 862 },
3035 { 251, {
'V',
'N',0}, {
'V',
'N',
'M',0}, 47599, 704 },
3036 { 252, {
'V',
'I',0}, {
'V',
'I',
'R',0}, 10039880, 850 },
3037 { 253, {
'V',
'A',0}, {
'V',
'A',
'T',0}, 47610, 336 },
3038 { 254, {
'N',
'A',0}, {
'N',
'A',
'M',0}, 10039883, 516 },
3039 { 257, {
'E',
'H',0}, {
'E',
'S',
'H',0}, 42487, 732 },
3040 { 258, {
'X',
'X',0}, {
'X',
'X',0}, 161832256 },
3041 { 259, {
'W',
'S',0}, {
'W',
'S',
'M',0}, 26286, 882 },
3042 { 260, {
'S',
'Z',0}, {
'S',
'W',
'Z',0}, 10039883, 748 },
3043 { 261, {
'Y',
'E',0}, {
'Y',
'E',
'M',0}, 47611, 887 },
3044 { 263, {
'Z',
'M',0}, {
'Z',
'M',
'B',0}, 47603, 894 },
3045 { 264, {
'Z',
'W',0}, {
'Z',
'W',
'E',0}, 47603, 716 },
3046 { 269, {
'C',
'S',0}, {
'S',
'C',
'G',0}, 47610, 891 },
3047 { 270, {
'M',
'E',0}, {
'M',
'N',
'E',0}, 47610, 499 },
3048 { 271, {
'R',
'S',0}, {
'S',
'R',
'B',0}, 47610, 688 },
3049 { 273, {
'C',
'W',0}, {
'C',
'U',
'W',0}, 10039880, 531 },
3050 { 276, {
'S',
'S',0}, {
'S',
'S',
'D',0}, 42487, 728 },
3051 { 300, {
'A',
'I',0}, {
'A',
'I',
'A',0}, 10039880, 660 },
3052 { 301, {
'A',
'Q',0}, {
'A',
'T',
'A',0}, 39070, 10 },
3053 { 302, {
'A',
'W',0}, {
'A',
'B',
'W',0}, 10039880, 533 },
3054 { 303, {
'X',
'X',0}, {
'X',
'X',0}, 39070 },
3055 { 304, {
'X',
'X',0}, {
'X',
'X',0}, 10210825 },
3056 { 305, {
'X',
'X',0}, {
'X',
'X',0}, 161832256 },
3057 { 306, {
'B',
'V',0}, {
'B',
'V',
'T',0}, 39070, 74 },
3058 { 307, {
'K',
'Y',0}, {
'C',
'Y',
'M',0}, 10039880, 136 },
3059 { 308, {
'X',
'X',0}, {
'X',
'X',0}, 10210824, 0,
LOCATION_BOTH },
3060 { 309, {
'C',
'X',0}, {
'C',
'X',
'R',0}, 12, 162 },
3061 { 310, {
'X',
'X',0}, {
'X',
'X',0}, 27114 },
3062 { 311, {
'C',
'C',0}, {
'C',
'C',
'K',0}, 10210825, 166 },
3063 { 312, {
'C',
'K',0}, {
'C',
'O',
'K',0}, 26286, 184 },
3064 { 313, {
'X',
'X',0}, {
'X',
'X',0}, 10210825 },
3065 { 314, {
'X',
'X',0}, {
'X',
'X',0}, 114 },
3066 { 315, {
'F',
'K',0}, {
'F',
'L',
'K',0}, 31396, 238 },
3067 { 317, {
'G',
'F',0}, {
'G',
'U',
'F',0}, 31396, 254 },
3068 { 318, {
'P',
'F',0}, {
'P',
'Y',
'F',0}, 26286, 258 },
3069 { 319, {
'T',
'F',0}, {
'A',
'T',
'F',0}, 39070, 260 },
3070 { 321, {
'G',
'P',0}, {
'G',
'L',
'P',0}, 10039880, 312 },
3071 { 322, {
'G',
'U',0}, {
'G',
'U',
'M',0}, 21206, 316 },
3072 { 323, {
'X',
'X',0}, {
'X',
'X',0}, 39070 },
3073 { 324, {
'G',
'G',0}, {
'G',
'G',
'Y',0}, 308, 831 },
3074 { 325, {
'H',
'M',0}, {
'H',
'M',
'D',0}, 39070, 334 },
3075 { 326, {
'X',
'X',0}, {
'X',
'X',0}, 161832256 },
3076 { 327, {
'X',
'X',0}, {
'X',
'X',0}, 161832256 },
3077 { 328, {
'J',
'E',0}, {
'J',
'E',
'Y',0}, 308, 832 },
3078 { 329, {
'X',
'X',0}, {
'X',
'X',0}, 161832256 },
3079 { 330, {
'M',
'Q',0}, {
'M',
'T',
'Q',0}, 10039880, 474 },
3080 { 331, {
'Y',
'T',0}, {
'M',
'Y',
'T',0}, 47603, 175 },
3081 { 332, {
'M',
'S',0}, {
'M',
'S',
'R',0}, 10039880, 500 },
3082 { 333, {
'A',
'N',0}, {
'A',
'N',
'T',0}, 10039880, 530,
LOCATION_BOTH },
3083 { 334, {
'N',
'C',0}, {
'N',
'C',
'L',0}, 20900, 540 },
3084 { 335, {
'N',
'U',0}, {
'N',
'I',
'U',0}, 26286, 570 },
3085 { 336, {
'N',
'F',0}, {
'N',
'F',
'K',0}, 10210825, 574 },
3086 { 337, {
'M',
'P',0}, {
'M',
'N',
'P',0}, 21206, 580 },
3087 { 338, {
'X',
'X',0}, {
'X',
'X',0}, 161832256 },
3088 { 339, {
'P',
'N',0}, {
'P',
'C',
'N',0}, 26286, 612 },
3089 { 340, {
'X',
'X',0}, {
'X',
'X',0}, 337 },
3090 { 341, {
'X',
'X',0}, {
'X',
'X',0}, 337 },
3091 { 342, {
'G',
'S',0}, {
'S',
'G',
'S',0}, 39070, 239 },
3092 { 343, {
'S',
'H',0}, {
'S',
'H',
'N',0}, 42483, 654 },
3093 { 346, {
'X',
'X',0}, {
'X',
'X',0}, 337 },
3094 { 347, {
'T',
'K',0}, {
'T',
'K',
'L',0}, 26286, 772 },
3095 { 348, {
'X',
'X',0}, {
'X',
'X',0}, 39070 },
3096 { 349, {
'T',
'C',0}, {
'T',
'C',
'A',0}, 10039880, 796 },
3097 { 351, {
'V',
'G',0}, {
'V',
'G',
'B',0}, 10039880, 92 },
3098 { 352, {
'W',
'F',0}, {
'W',
'L',
'F',0}, 26286, 876 },
3099 { 742, {
'X',
'X',0}, {
'X',
'X',0}, 39070, 0,
LOCATION_REGION },
3100 { 2129, {
'X',
'X',0}, {
'X',
'X',0}, 39070, 0,
LOCATION_REGION },
3101 { 10541, {
'X',
'X',0}, {
'X',
'X',0}, 39070, 0,
LOCATION_REGION },
3102 { 15126, {
'I',
'M',0}, {
'I',
'M',
'N',0}, 10039882, 833 },
3103 { 19618, {
'M',
'K',0}, {
'M',
'K',
'D',0}, 47610, 807 },
3104 { 20900, {
'X',
'X',0}, {
'X',
'X',0}, 27114, 0,
LOCATION_REGION },
3105 { 21206, {
'X',
'X',0}, {
'X',
'X',0}, 27114, 0,
LOCATION_REGION },
3106 { 21242, {
'X',
'X',0}, {
'X',
'X',0}, 161832256 },
3107 { 23581, {
'X',
'X',0}, {
'X',
'X',0}, 10026358, 0,
LOCATION_REGION },
3108 { 26286, {
'X',
'X',0}, {
'X',
'X',0}, 27114, 0,
LOCATION_REGION },
3109 { 27082, {
'X',
'X',0}, {
'X',
'X',0}, 161832257, 0,
LOCATION_REGION },
3110 { 27114, {
'X',
'X',0}, {
'X',
'X',0}, 39070, 0,
LOCATION_REGION },
3111 { 30967, {
'S',
'X',0}, {
'S',
'X',
'M',0}, 10039880, 534 },
3112 { 31396, {
'X',
'X',0}, {
'X',
'X',0}, 161832257, 0,
LOCATION_REGION },
3113 { 31706, {
'M',
'F',0}, {
'M',
'A',
'F',0}, 10039880, 663 },
3114 { 39070, {
'X',
'X',0}, {
'X',
'X',0}, 39070, 0,
LOCATION_REGION },
3115 { 42483, {
'X',
'X',0}, {
'X',
'X',0}, 742, 0,
LOCATION_REGION },
3116 { 42484, {
'X',
'X',0}, {
'X',
'X',0}, 742, 0,
LOCATION_REGION },
3117 { 42487, {
'X',
'X',0}, {
'X',
'X',0}, 742, 0,
LOCATION_REGION },
3118 { 47590, {
'X',
'X',0}, {
'X',
'X',0}, 2129, 0,
LOCATION_REGION },
3119 { 47599, {
'X',
'X',0}, {
'X',
'X',0}, 2129, 0,
LOCATION_REGION },
3120 { 47600, {
'X',
'X',0}, {
'X',
'X',0}, 2129, 0,
LOCATION_REGION },
3121 { 47603, {
'X',
'X',0}, {
'X',
'X',0}, 742, 0,
LOCATION_REGION },
3122 { 47609, {
'X',
'X',0}, {
'X',
'X',0}, 10541, 0,
LOCATION_REGION },
3123 { 47610, {
'X',
'X',0}, {
'X',
'X',0}, 10541, 0,
LOCATION_REGION },
3124 { 47611, {
'X',
'X',0}, {
'X',
'X',0}, 2129, 0,
LOCATION_REGION },
3125 { 47614, {
'X',
'X',0}, {
'X',
'X',0}, 2129, 0,
LOCATION_REGION },
3126 { 7299303, {
'T',
'L',0}, {
'T',
'L',
'S',0}, 47599, 626 },
3127 { 10026358, {
'X',
'X',0}, {
'X',
'X',0}, 39070, 0,
LOCATION_REGION },
3128 { 10028789, {
'A',
'X',0}, {
'A',
'L',
'A',0}, 10039882, 248 },
3129 { 10039880, {
'X',
'X',0}, {
'X',
'X',0}, 161832257, 0,
LOCATION_REGION },
3130 { 10039882, {
'X',
'X',0}, {
'X',
'X',0}, 10541, 0,
LOCATION_REGION },
3131 { 10039883, {
'X',
'X',0}, {
'X',
'X',0}, 742, 0,
LOCATION_REGION },
3132 { 10210824, {
'X',
'X',0}, {
'X',
'X',0}, 10541, 0,
LOCATION_REGION },
3133 { 10210825, {
'X',
'X',0}, {
'X',
'X',0}, 27114, 0,
LOCATION_REGION },
3134 { 161832015, {
'B',
'L',0}, {
'B',
'L',
'M',0}, 10039880, 652 },
3135 { 161832256, {
'U',
'M',0}, {
'U',
'M',
'I',0}, 27114, 581 },
3136 { 161832257, {
'X',
'X',0}, {
'X',
'X',0}, 10026358, 0,
LOCATION_REGION },
3223 hKey =
NLS_RegOpenKey(0,
L"\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Control\\NLS\\CodePage");
3226 WARN(
"NLS_RegOpenKey() failed\n");
3233 szValue,
sizeof(szValue)))
3240 bContinue = lpProcs->
procW(szNumber);
3244 char szNumberA[
sizeof(szNumber)/
sizeof(
WCHAR)];
3247 bContinue = lpProcs->
procA(szNumberA);
3253 }
else bContinue =
FALSE;
3280 procs.
procW = lpCodePageEnumProc;
3301 procs.
procA = lpCodePageEnumProc;
3326 TRACE(
"(%d, %d, %p)\n", geoclass,
parent, enumproc);
3350 if (!enumproc(
ptr->id))
3386 static const WCHAR geoW[] = {
'G',
'e',
'o',0};
3387 static const WCHAR nationW[] = {
'N',
'a',
't',
'i',
'o',
'n',0};
3390 HANDLE hkey, hSubkey = 0;
3394 count =
sizeof(bufferW);
3408 FIXME(
"GEOCLASS_REGION not handled yet\n");
3413 if (hSubkey)
NtClose(hSubkey);
3422 static const WCHAR geoW[] = {
'G',
'e',
'o',0};
3423 static const WCHAR nationW[] = {
'N',
'a',
't',
'i',
'o',
'n',0};
3424 static const WCHAR formatW[] = {
'%',
'i',0};
3433 attr.RootDirectory = hkey;
3435 attr.Attributes = 0;
3437 attr.SecurityQualityOfService =
NULL;
3479 static const WCHAR formatW[] = {
'%',
'0',
'8',
'x',0};
3496 if(!pUILangEnumProc) {
3505 enum_uilang.
u.
procA = pUILangEnumProc;
3525 if(!pUILangEnumProc) {
3534 enum_uilang.
u.
procW = pUILangEnumProc;
3567 return strlenW(szFriendlyName) + 1;
3584 if (geoid ==
ptr->id)
3588 if (
ptr->id > geoid)
3608 TRACE(
"%d %d %p %d %d\n", geoid, geotype,
data, data_len,
lang);
3646 FIXME(
"type %d is not supported\n", geotype);
3650 WARN(
"unrecognized type %d\n", geotype);
3656 static const WCHAR fmtW[] = {
'%',
'd',0};
3662 if (!
data || !data_len)
3668 return data_len <
len ? 0 :
len;
3679 TRACE(
"%d %d %p %d %d\n", geoid, geotype,
data, data_len,
lang);
3691 if (!
data || !data_len) {
3701 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)
GLuint GLuint GLsizei GLenum type
GLuint GLuint GLsizei count
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum GLuint GLenum GLsizei const GLchar * buf
GLuint GLsizei GLsizei * length
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)