diff --git a/base/setup/lib/mui.c b/base/setup/lib/mui.c index 9d677f8d307..48af986e908 100644 --- a/base/setup/lib/mui.c +++ b/base/setup/lib/mui.c @@ -100,7 +100,7 @@ MUIGetOEMCodePage( return MUILanguageList[lngIndex].OEMCPage; } -PCWSTR +GEOID MUIGetGeoID( IN PCWSTR LanguageId) { diff --git a/base/setup/lib/mui.h b/base/setup/lib/mui.h index fe2f206f659..219f69e551a 100644 --- a/base/setup/lib/mui.h +++ b/base/setup/lib/mui.h @@ -25,6 +25,8 @@ typedef struct KLID LayoutID; // Layout ID (like 0x00000409) } MUI_LAYOUTS; +typedef ULONG GEOID; // See winnls.h + typedef struct { PCWSTR LanguageID; @@ -32,7 +34,7 @@ typedef struct UINT OEMCPage; UINT MACCPage; PCWSTR LanguageDescriptor; - PCWSTR GeoID; + GEOID GeoID; const MUI_SUBFONT* MuiSubFonts; const MUI_LAYOUTS* MuiLayouts; } MUI_LANGUAGE; @@ -50,7 +52,7 @@ UINT MUIGetOEMCodePage( IN PCWSTR LanguageId); -PCWSTR +GEOID MUIGetGeoID( IN PCWSTR LanguageId); diff --git a/base/setup/lib/muilanguages.h b/base/setup/lib/muilanguages.h index f4871f0c7e8..636c8468f34 100644 --- a/base/setup/lib/muilanguages.h +++ b/base/setup/lib/muilanguages.h @@ -411,432 +411,432 @@ const MUI_LANGUAGE MUILanguageList[] = { - /* Lang ID, ANSI CP, OEM CP, MAC CP, Language Name, GeoID, Fonts, KB Layouts */ + /* Lang ID, ANSI CP, OEM CP, MAC CP, Language Name, GeoID, Fonts, KB Layouts */ #ifdef LANGUAGE_AF_ZA - {L"00000436", 1252, 850, 10000, L"Afrikaans", L"209", LatinFonts, afZALayouts}, + {L"00000436", 1252, 850, 10000, L"Afrikaans", 209, LatinFonts, afZALayouts}, #endif #ifdef LANGUAGE_SQ_AL - {L"0000041C", 1250, 852, 10029, L"Albanian (Albania)", L"6", LatinFonts, sqALLayouts}, + {L"0000041C", 1250, 852, 10029, L"Albanian (Albania)", 6, LatinFonts, sqALLayouts}, #endif #ifdef LANGUAGE_AR_SA - {L"00000401", 1256, 720, 10004, L"Arabic (Saudi Arabia)", L"205", UnicodeFonts, arSALayouts}, + {L"00000401", 1256, 720, 10004, L"Arabic (Saudi Arabia)", 205, UnicodeFonts, arSALayouts}, #endif #ifdef LANGUAGE_AR_IQ - {L"00000801", 1256, 720, 10004, L"Arabic (Iraq)", L"121", UnicodeFonts, arIQLayouts}, + {L"00000801", 1256, 720, 10004, L"Arabic (Iraq)", 121, UnicodeFonts, arIQLayouts}, #endif #ifdef LANGUAGE_AR_EG - {L"00000C01", 1256, 720, 10004, L"Arabic (Egypt)", L"67", UnicodeFonts, arEGLayouts}, + {L"00000C01", 1256, 720, 10004, L"Arabic (Egypt)", 67, UnicodeFonts, arEGLayouts}, #endif #ifdef LANGUAGE_AR_LY - {L"00001001", 1256, 720, 10004, L"Arabic (Libya)", L"148", UnicodeFonts, arLYLayouts}, + {L"00001001", 1256, 720, 10004, L"Arabic (Libya)", 148, UnicodeFonts, arLYLayouts}, #endif #ifdef LANGUAGE_AR_DZ - {L"00001401", 1256, 720, 10004, L"Arabic (Algeria)", L"4", UnicodeFonts, arDZLayouts}, + {L"00001401", 1256, 720, 10004, L"Arabic (Algeria)", 4, UnicodeFonts, arDZLayouts}, #endif #ifdef LANGUAGE_AR_MA - {L"00001801", 1256, 720, 10004, L"Arabic (Morocco)", L"149", UnicodeFonts, arMALayouts}, + {L"00001801", 1256, 720, 10004, L"Arabic (Morocco)", 149, UnicodeFonts, arMALayouts}, #endif #ifdef LANGUAGE_AR_TN - {L"00001C01", 1256, 720, 10004, L"Arabic (Tunisia)", L"234", UnicodeFonts, arTNLayouts}, + {L"00001C01", 1256, 720, 10004, L"Arabic (Tunisia)", 234, UnicodeFonts, arTNLayouts}, #endif #ifdef LANGUAGE_AR_OM - {L"00002001", 1256, 720, 10004, L"Arabic (Oman)", L"164", UnicodeFonts, arOMLayouts}, + {L"00002001", 1256, 720, 10004, L"Arabic (Oman)", 164, UnicodeFonts, arOMLayouts}, #endif #ifdef LANGUAGE_AR_YE - {L"00002401", 1256, 720, 10004, L"Arabic (Yemen)", L"261", UnicodeFonts, arYELayouts}, + {L"00002401", 1256, 720, 10004, L"Arabic (Yemen)", 261, UnicodeFonts, arYELayouts}, #endif #ifdef LANGUAGE_AR_SY - {L"00002801", 1256, 720, 10004, L"Arabic (Syria)", L"222", UnicodeFonts, arSYLayouts}, + {L"00002801", 1256, 720, 10004, L"Arabic (Syria)", 222, UnicodeFonts, arSYLayouts}, #endif #ifdef LANGUAGE_AR_JO - {L"00002C01", 1256, 720, 10004, L"Arabic (Jordan)", L"126", UnicodeFonts, arJOLayouts}, + {L"00002C01", 1256, 720, 10004, L"Arabic (Jordan)", 126, UnicodeFonts, arJOLayouts}, #endif #ifdef LANGUAGE_AR_LB - {L"00003001", 1256, 720, 10004, L"Arabic (Lebanon)", L"139", UnicodeFonts, arLBLayouts}, + {L"00003001", 1256, 720, 10004, L"Arabic (Lebanon)", 139, UnicodeFonts, arLBLayouts}, #endif #ifdef LANGUAGE_AR_KW - {L"00003401", 1256, 720, 10004, L"Arabic (Kuwait)", L"136", UnicodeFonts, arKWLayouts}, + {L"00003401", 1256, 720, 10004, L"Arabic (Kuwait)", 136, UnicodeFonts, arKWLayouts}, #endif #ifdef LANGUAGE_AR_AE - {L"00003801", 1256, 720, 10004, L"Arabic (U.A.E.)", L"224", UnicodeFonts, arAELayouts}, + {L"00003801", 1256, 720, 10004, L"Arabic (U.A.E.)", 224, UnicodeFonts, arAELayouts}, #endif #ifdef LANGUAGE_AR_BH - {L"00003C01", 1256, 720, 10004, L"Arabic (Bahrain)", L"17", UnicodeFonts, arBHLayouts}, + {L"00003C01", 1256, 720, 10004, L"Arabic (Bahrain)", 17, UnicodeFonts, arBHLayouts}, #endif #ifdef LANGUAGE_AR_QA - {L"00004001", 1256, 720, 10004, L"Arabic (Qatar)", L"197", UnicodeFonts, arQALayouts}, + {L"00004001", 1256, 720, 10004, L"Arabic (Qatar)", 197, UnicodeFonts, arQALayouts}, #endif #ifdef LANGUAGE_HY_AM - {L"0000042B", 0, 1, 2, L"Armenian", L"7", UnicodeFonts, hyAMLayouts}, + {L"0000042B", 0, 1, 2, L"Armenian", 7, UnicodeFonts, hyAMLayouts}, #endif #ifdef LANGUAGE_AZ_AZ - {L"0000082C", 1251, 866, 10007, L"Azeri (Cyrillic)", L"5", CyrillicFonts, azAZLayouts}, + {L"0000082C", 1251, 866, 10007, L"Azeri (Cyrillic)", 5, CyrillicFonts, azAZLayouts}, #endif #ifdef LANGUAGE_AZ_AZ - {L"0000042C", 1254, 857, 10081, L"Azeri (Latin)", L"5", LatinFonts, azAZLayouts}, + {L"0000042C", 1254, 857, 10081, L"Azeri (Latin)", 5, LatinFonts, azAZLayouts}, #endif #ifdef LANGUAGE_EU_ES - {L"0000042D", 1252, 850, 10000, L"Basque", L"217", LatinFonts, euESLayouts}, + {L"0000042D", 1252, 850, 10000, L"Basque", 217, LatinFonts, euESLayouts}, #endif #ifdef LANGUAGE_BE_BY - {L"00000423", 1251, 866, 10007, L"Belarusian", L"29", CyrillicFonts, beBYLayouts}, + {L"00000423", 1251, 866, 10007, L"Belarusian", 29, CyrillicFonts, beBYLayouts}, #endif #ifdef LANGUAGE_BN_BD - {L"00000845", 0, 1, 2, L"Bengali (Bangladesh)", L"23", UnicodeFonts, bnBDLayouts}, + {L"00000845", 0, 1, 2, L"Bengali (Bangladesh)", 23, UnicodeFonts, bnBDLayouts}, #endif #ifdef LANGUAGE_BN_IN - {L"00000445", 0, 1, 2, L"Bengali (India)", L"113", UnicodeFonts, bnINLayouts}, + {L"00000445", 0, 1, 2, L"Bengali (India)", 113, UnicodeFonts, bnINLayouts}, #endif #ifdef LANGUAGE_BG_BG - {L"00000402", 1251, 866, 10007, L"Bulgarian", L"35", CyrillicFonts, bgBGLayouts}, + {L"00000402", 1251, 866, 10007, L"Bulgarian", 35, CyrillicFonts, bgBGLayouts}, #endif #ifdef LANGUAGE_MY_MM - {L"00000455", 0, 1, 2, L"Burmese", L"1", UnicodeFonts, myMMLayouts}, + {L"00000455", 0, 1, 2, L"Burmese", 1, UnicodeFonts, myMMLayouts}, #endif #ifdef LANGUAGE_CA_ES - {L"00000403", 1252, 850, 10000, L"Catalan", L"217", LatinFonts, caESLayouts}, + {L"00000403", 1252, 850, 10000, L"Catalan", 217, LatinFonts, caESLayouts}, #endif #ifdef LANGUAGE_ZH_TW - {L"00000404", 950, 950, 10008, L"Chinese (Taiwan)", L"237", ChineseTraditionalFonts, zhTWLayouts}, + {L"00000404", 950, 950, 10008, L"Chinese (Taiwan)", 237, ChineseTraditionalFonts, zhTWLayouts}, #endif #ifdef LANGUAGE_ZH_CN - {L"00000804", 936, 936, 10008, L"Chinese (PRC)", L"45", ChineseSimplifiedFonts, zhCNLayouts}, + {L"00000804", 936, 936, 10008, L"Chinese (PRC)", 45, ChineseSimplifiedFonts, zhCNLayouts}, #endif #ifdef LANGUAGE_ZH_HK - {L"00000C04", 950, 950, 10008, L"Chinese (Hong Kong S.A.R.)", L"104", ChineseTraditionalFonts, zhHKLayouts}, + {L"00000C04", 950, 950, 10008, L"Chinese (Hong Kong S.A.R.)", 104, ChineseTraditionalFonts, zhHKLayouts}, #endif #ifdef LANGUAGE_ZH_SG - {L"00001004", 936, 936, 10008, L"Chinese (Singapore)", L"215", ChineseSimplifiedFonts, zhSGLayouts}, + {L"00001004", 936, 936, 10008, L"Chinese (Singapore)", 215, ChineseSimplifiedFonts, zhSGLayouts}, #endif #ifdef LANGUAGE_ZH_MO - {L"00001404", 950, 950, 10002, L"Chinese (Macau S.A.R.)", L"151", ChineseTraditionalFonts, zhMOLayouts}, + {L"00001404", 950, 950, 10002, L"Chinese (Macau S.A.R.)", 151, ChineseTraditionalFonts, zhMOLayouts}, #endif #ifdef LANGUAGE_HR_HR - {L"0000041A", 1250, 852, 10029, L"Croatian", L"108", LatinFonts, hrHRLayouts}, + {L"0000041A", 1250, 852, 10029, L"Croatian", 108, LatinFonts, hrHRLayouts}, #endif #ifdef LANGUAGE_CS_CZ - {L"00000405", 1250, 852, 10029, L"Czech", L"75", LatinFonts, csCZLayouts}, + {L"00000405", 1250, 852, 10029, L"Czech", 75, LatinFonts, csCZLayouts}, #endif #ifdef LANGUAGE_DA_DK - {L"00000406", 1252, 850, 10000, L"Danish", L"61", LatinFonts, daDKLayouts}, + {L"00000406", 1252, 850, 10000, L"Danish", 61, LatinFonts, daDKLayouts}, #endif #ifdef LANGUAGE_DV_MV - {L"00000465", 0, 1, 2, L"Dhivehi (Maldives)", L"165", UnicodeFonts, dvMVLayouts}, + {L"00000465", 0, 1, 2, L"Dhivehi (Maldives)", 165, UnicodeFonts, dvMVLayouts}, #endif #ifdef LANGUAGE_NL_NL - {L"00000413", 1252, 850, 10000, L"Dutch (Netherlands)", L"176", LatinFonts, nlNLLayouts}, + {L"00000413", 1252, 850, 10000, L"Dutch (Netherlands)", 176, LatinFonts, nlNLLayouts}, #endif #ifdef LANGUAGE_NL_BE - {L"00000813", 1252, 850, 10000, L"Dutch (Belgium)", L"21", LatinFonts, nlBELayouts}, + {L"00000813", 1252, 850, 10000, L"Dutch (Belgium)", 21, LatinFonts, nlBELayouts}, #endif #ifdef LANGUAGE_EN_US - {L"00000409", 1252, 437, 10000, L"English (United States)", L"244", LatinFonts, enUSLayouts}, + {L"00000409", 1252, 437, 10000, L"English (United States)", 244, LatinFonts, enUSLayouts}, #endif #ifdef LANGUAGE_EN_GB - {L"00000809", 1252, 850, 10000, L"English (United Kingdom)", L"242", LatinFonts, enGBLayouts}, + {L"00000809", 1252, 850, 10000, L"English (United Kingdom)", 242, LatinFonts, enGBLayouts}, #endif #ifdef LANGUAGE_EN_AU - {L"00000C09", 1252, 850, 10000, L"English (Australia)", L"12", LatinFonts, enAULayouts}, + {L"00000C09", 1252, 850, 10000, L"English (Australia)", 12, LatinFonts, enAULayouts}, #endif #ifdef LANGUAGE_EN_CA - {L"00001009", 1252, 850, 10000, L"English (Canada)", L"39", LatinFonts, enCALayouts}, + {L"00001009", 1252, 850, 10000, L"English (Canada)", 39, LatinFonts, enCALayouts}, #endif #ifdef LANGUAGE_EN_NZ - {L"00001409", 1252, 850, 10000, L"English (New Zealand)", L"183", LatinFonts, enNZLayouts}, + {L"00001409", 1252, 850, 10000, L"English (New Zealand)", 183, LatinFonts, enNZLayouts}, #endif #ifdef LANGUAGE_EN_IE - {L"00001809", 1252, 850, 10000, L"English (Ireland)", L"68", LatinFonts, enIELayouts}, + {L"00001809", 1252, 850, 10000, L"English (Ireland)", 68, LatinFonts, enIELayouts}, #endif #ifdef LANGUAGE_EN_ZA - {L"00001C09", 1252, 437, 10000, L"English (South Africa)", L"209", LatinFonts, enZALayouts}, + {L"00001C09", 1252, 437, 10000, L"English (South Africa)", 209, LatinFonts, enZALayouts}, #endif #ifdef LANGUAGE_EN_JM - {L"00002009", 1252, 850, 10000, L"English (Jamaica)", L"124", LatinFonts, enJMLayouts}, + {L"00002009", 1252, 850, 10000, L"English (Jamaica)", 124, LatinFonts, enJMLayouts}, #endif #ifdef LANGUAGE_EN_CB - {L"00002409", 1252, 850, 10000, L"English (Caribbean)", L"1", LatinFonts, enCBLayouts}, + {L"00002409", 1252, 850, 10000, L"English (Caribbean)", 1, LatinFonts, enCBLayouts}, #endif #ifdef LANGUAGE_EN_BZ - {L"00002809", 1252, 850, 10000, L"English (Belize)", L"24", LatinFonts, enBZLayouts}, + {L"00002809", 1252, 850, 10000, L"English (Belize)", 24, LatinFonts, enBZLayouts}, #endif #ifdef LANGUAGE_EN_TT - {L"00002C09", 1252, 850, 10000, L"English (Trinidad)", L"225", LatinFonts, enTTLayouts}, + {L"00002C09", 1252, 850, 10000, L"English (Trinidad)", 225, LatinFonts, enTTLayouts}, #endif #ifdef LANGUAGE_EN_ZW - {L"00003009", 1252, 437, 10000, L"English (Zimbabwe)", L"264", LatinFonts, enZWLayouts}, + {L"00003009", 1252, 437, 10000, L"English (Zimbabwe)", 264, LatinFonts, enZWLayouts}, #endif #ifdef LANGUAGE_EN_PH - {L"00003409", 1252, 437, 10000, L"English (Philippines)", L"201", LatinFonts, enPHLayouts}, + {L"00003409", 1252, 437, 10000, L"English (Philippines)", 201, LatinFonts, enPHLayouts}, #endif #ifdef LANGUAGE_EO_AA - {L"0000048F", 1252, 437, 10000, L"Esperanto", L"1", LatinFonts, eoAALayouts}, + {L"0000048F", 1252, 437, 10000, L"Esperanto", 1, LatinFonts, eoAALayouts}, #endif #ifdef LANGUAGE_ET_EE - {L"00000425", 1252, 775, 10029, L"Estonian", L"70", LatinFonts, etEELayouts}, + {L"00000425", 1252, 775, 10029, L"Estonian", 70, LatinFonts, etEELayouts}, #endif #ifdef LANGUAGE_FO_FO - {L"00000438", 1252, 850, 10079, L"Faeroese", L"81", LatinFonts, foFOLayouts}, + {L"00000438", 1252, 850, 10079, L"Faeroese", 81, LatinFonts, foFOLayouts}, #endif #ifdef LANGUAGE_FA_IR - {L"00000429", 1256, 720, 10004, L"Farsi", L"116", UnicodeFonts, faIRLayouts}, + {L"00000429", 1256, 720, 10004, L"Farsi", 116, UnicodeFonts, faIRLayouts}, #endif #ifdef LANGUAGE_FI_FI - {L"0000040B", 1252, 850, 10000, L"Finnish", L"77", LatinFonts, fiFILayouts}, + {L"0000040B", 1252, 850, 10000, L"Finnish", 77, LatinFonts, fiFILayouts}, #endif #ifdef LANGUAGE_FR_CA - {L"00000C0C", 1252, 850, 10000, L"French (Canada)", L"39", LatinFonts, frCALayouts}, + {L"00000C0C", 1252, 850, 10000, L"French (Canada)", 39, LatinFonts, frCALayouts}, #endif #ifdef LANGUAGE_FR_FR - {L"0000040C", 1252, 850, 10000, L"French (France)", L"84", LatinFonts, frFRLayouts}, + {L"0000040C", 1252, 850, 10000, L"French (France)", 84, LatinFonts, frFRLayouts}, #endif #ifdef LANGUAGE_FR_BE - {L"0000080C", 1252, 850, 10000, L"French (Belgium)", L"21", LatinFonts, frBELayouts}, + {L"0000080C", 1252, 850, 10000, L"French (Belgium)", 21, LatinFonts, frBELayouts}, #endif #ifdef LANGUAGE_FR_CH - {L"0000100C", 1252, 850, 10000, L"French (Switzerland)", L"223", LatinFonts, frCHLayouts}, + {L"0000100C", 1252, 850, 10000, L"French (Switzerland)", 223, LatinFonts, frCHLayouts}, #endif #ifdef LANGUAGE_FR_LU - {L"0000140C", 1252, 850, 10000, L"French (Luxembourg)", L"147", LatinFonts, frLULayouts}, + {L"0000140C", 1252, 850, 10000, L"French (Luxembourg)", 147, LatinFonts, frLULayouts}, #endif #ifdef LANGUAGE_FR_MC - {L"0000180C", 1252, 850, 10000, L"French (Monaco)", L"158", LatinFonts, frMCLayouts}, + {L"0000180C", 1252, 850, 10000, L"French (Monaco)", 158, LatinFonts, frMCLayouts}, #endif #ifdef LANGUAGE_GL_ES - {L"00000456", 1252, 850, 10000, L"Galician (Spain)", L"217", LatinFonts, glESLayouts}, + {L"00000456", 1252, 850, 10000, L"Galician (Spain)", 217, LatinFonts, glESLayouts}, #endif #ifdef LANGUAGE_KA_GE - {L"00000437", 0, 1, 2, L"Georgian", L"88", UnicodeFonts, kaGELayouts}, + {L"00000437", 0, 1, 2, L"Georgian", 88, UnicodeFonts, kaGELayouts}, #endif #ifdef LANGUAGE_DE_DE - {L"00000407", 1252, 850, 10000, L"German (Germany)", L"94", LatinFonts, deDELayouts}, + {L"00000407", 1252, 850, 10000, L"German (Germany)", 94, LatinFonts, deDELayouts}, #endif #ifdef LANGUAGE_DE_CH - {L"00000807", 1252, 850, 10000, L"German (Switzerland)", L"223", LatinFonts, deCHLayouts}, + {L"00000807", 1252, 850, 10000, L"German (Switzerland)", 223, LatinFonts, deCHLayouts}, #endif #ifdef LANGUAGE_DE_AT - {L"00000C07", 1252, 850, 10000, L"German (Austria)", L"14", LatinFonts, deATLayouts}, + {L"00000C07", 1252, 850, 10000, L"German (Austria)", 14, LatinFonts, deATLayouts}, #endif #ifdef LANGUAGE_DE_LU - {L"00001007", 1252, 850, 10000, L"German (Luxembourg)", L"147", LatinFonts, deLULayouts}, + {L"00001007", 1252, 850, 10000, L"German (Luxembourg)", 147, LatinFonts, deLULayouts}, #endif #ifdef LANGUAGE_DE_LI - {L"00001407", 1252, 850, 10000, L"German (Liechtenstein)", L"145", LatinFonts, deLILayouts}, + {L"00001407", 1252, 850, 10000, L"German (Liechtenstein)", 145, LatinFonts, deLILayouts}, #endif #ifdef LANGUAGE_EL_GR - {L"00000408", 1253, 737, 10006, L"Greek", L"98", GreekFonts, elGRLayouts}, + {L"00000408", 1253, 737, 10006, L"Greek", 98, GreekFonts, elGRLayouts}, #endif #ifdef LANGUAGE_GU_IN - {L"00000447", 0, 1, 2, L"Gujarati (India)", L"113", UnicodeFonts, guINLayouts}, + {L"00000447", 0, 1, 2, L"Gujarati (India)", 113, UnicodeFonts, guINLayouts}, #endif #ifdef LANGUAGE_HE_IL - {L"0000040D", 1255, 862, 10005, L"Hebrew", L"117", HebrewFonts, heILLayouts}, + {L"0000040D", 1255, 862, 10005, L"Hebrew", 117, HebrewFonts, heILLayouts}, #endif #ifdef LANGUAGE_HI_IN - {L"00000439", 1252, 437, 10000, L"Hindi", L"113", HindiFonts, hiINLayouts }, + {L"00000439", 1252, 437, 10000, L"Hindi", 113, HindiFonts, hiINLayouts }, #endif #ifdef LANGUAGE_HU_HU - {L"0000040E", 1250, 852, 10029, L"Hungarian", L"109", LatinFonts, huHULayouts}, + {L"0000040E", 1250, 852, 10029, L"Hungarian", 109, LatinFonts, huHULayouts}, #endif #ifdef LANGUAGE_IS_IS - {L"0000040F", 1252, 850, 10079, L"Icelandic", L"110", LatinFonts, isISLayouts}, + {L"0000040F", 1252, 850, 10079, L"Icelandic", 110, LatinFonts, isISLayouts}, #endif #ifdef LANGUAGE_ID_ID - {L"00000421", 1252, 850, 10079, L"Indonesian", L"111", LatinFonts, idIDLayouts}, + {L"00000421", 1252, 850, 10079, L"Indonesian", 111, LatinFonts, idIDLayouts}, #endif #ifdef LANGUAGE_IT_IT - {L"00000410", 1252, 850, 10000, L"Italian (Italy)", L"118", LatinFonts, itITLayouts}, + {L"00000410", 1252, 850, 10000, L"Italian (Italy)", 118, LatinFonts, itITLayouts}, #endif #ifdef LANGUAGE_IT_CH - {L"00000810", 1252, 850, 10000, L"Italian (Switzerland)", L"223", LatinFonts, itCHLayouts}, + {L"00000810", 1252, 850, 10000, L"Italian (Switzerland)", 223, LatinFonts, itCHLayouts}, #endif #ifdef LANGUAGE_JA_JP - {L"00000411", 932, 932, 10001, L"Japanese", L"122", JapaneseFonts, jaJPLayouts}, + {L"00000411", 932, 932, 10001, L"Japanese", 122, JapaneseFonts, jaJPLayouts}, #endif #ifdef LANGUAGE_KN_IN - {L"0000044B", 1252, 437, 10079, L"Kannada (India)", L"113", LatinFonts, knINLayouts}, + {L"0000044B", 1252, 437, 10079, L"Kannada (India)", 113, LatinFonts, knINLayouts}, #endif #ifdef LANGUAGE_KK_KZ - {L"0000043F", 1251, 866, 10007, L"Kazakh", L"137", CyrillicFonts, kkKZLayouts}, + {L"0000043F", 1251, 866, 10007, L"Kazakh", 137, CyrillicFonts, kkKZLayouts}, #endif #ifdef LANGUAGE_KOK_IN - {L"00000457", 0, 437, 2, L"Konkani", L"113", UnicodeFonts, kokINLayouts}, + {L"00000457", 0, 437, 2, L"Konkani", 113, UnicodeFonts, kokINLayouts}, #endif #ifdef LANGUAGE_KO_KR - {L"00000412", 949, 949, 10003, L"Korean", L"134", KoreanFonts, koKRLayouts}, + {L"00000412", 949, 949, 10003, L"Korean", 134, KoreanFonts, koKRLayouts}, #endif #ifdef LANGUAGE_KY_KG - {L"00000440", 1251, 866, 10007, L"Kyrgyz (Kyrgyzstan)", L"130", CyrillicFonts, kyKGLayouts}, + {L"00000440", 1251, 866, 10007, L"Kyrgyz (Kyrgyzstan)", 130, CyrillicFonts, kyKGLayouts}, #endif #ifdef LANGUAGE_LV_LV - {L"00000426", 1257, 775, 10029, L"Latvian", L"140", LatinFonts, lvLVLayouts}, + {L"00000426", 1257, 775, 10029, L"Latvian", 140, LatinFonts, lvLVLayouts}, #endif #ifdef LANGUAGE_LT_LT - {L"00000427", 1257, 775, 10029, L"Lithuanian", L"141", LatinFonts, ltLTLayouts}, + {L"00000427", 1257, 775, 10029, L"Lithuanian", 141, LatinFonts, ltLTLayouts}, #endif #ifdef LANGUAGE_MK_MK - {L"0000042F", 1251, 866, 10007, L"FYRO Macedonian", L"19618", CyrillicFonts, mkMKLayouts}, + {L"0000042F", 1251, 866, 10007, L"FYRO Macedonian", 19618, CyrillicFonts, mkMKLayouts}, #endif #ifdef LANGUAGE_MS_BN - {L"0000083E", 1252, 850, 10000, L"Malay (Brunei Darussalam)", L"37", LatinFonts, msBNLayouts}, + {L"0000083E", 1252, 850, 10000, L"Malay (Brunei Darussalam)", 37, LatinFonts, msBNLayouts}, #endif #ifdef LANGUAGE_MS_MY - {L"0000043E", 1252, 850, 10000, L"Malay (Malaysia)", L"167", LatinFonts, msMYLayouts}, + {L"0000043E", 1252, 850, 10000, L"Malay (Malaysia)", 167, LatinFonts, msMYLayouts}, #endif #ifdef LANGUAGE_MR_IN - {L"0000044E", 0, 1, 2, L"Marathi", L"113", UnicodeFonts, mrINLayouts}, + {L"0000044E", 0, 1, 2, L"Marathi", 113, UnicodeFonts, mrINLayouts}, #endif #ifdef LANGUAGE_MN_MN - {L"00000450", 1251, 866, 10007, L"Mongolian (Mongolia)", L"154", CyrillicFonts, mnMNLayouts}, + {L"00000450", 1251, 866, 10007, L"Mongolian (Mongolia)", 154, CyrillicFonts, mnMNLayouts}, #endif #ifdef LANGUAGE_NB_NO - {L"00000414", 1252, 850, 10000, L"Norwegian (Bokmal)", L"177", LatinFonts, nbNOLayouts}, + {L"00000414", 1252, 850, 10000, L"Norwegian (Bokmal)", 177, LatinFonts, nbNOLayouts}, #endif #ifdef LANGUAGE_NN_NO - {L"00000814", 1252, 850, 10000, L"Norwegian (Nynorsk)", L"177", LatinFonts, nnNOLayouts}, + {L"00000814", 1252, 850, 10000, L"Norwegian (Nynorsk)", 177, LatinFonts, nnNOLayouts}, #endif #ifdef LANGUAGE_PL_PL - {L"00000415", 1250, 852, 10029, L"Polish", L"191", LatinFonts, plPLLayouts}, + {L"00000415", 1250, 852, 10029, L"Polish", 191, LatinFonts, plPLLayouts}, #endif #ifdef LANGUAGE_PT_PT - {L"00000816", 1252, 850, 10000, L"Portuguese (Portugal)", L"193", LatinFonts, ptPTLayouts}, + {L"00000816", 1252, 850, 10000, L"Portuguese (Portugal)", 193, LatinFonts, ptPTLayouts}, #endif #ifdef LANGUAGE_PT_BR - {L"00000416", 1252, 850, 10000, L"Portuguese (Brazil)", L"32", LatinFonts, ptBRLayouts}, + {L"00000416", 1252, 850, 10000, L"Portuguese (Brazil)", 32, LatinFonts, ptBRLayouts}, #endif #ifdef LANGUAGE_PA_IN - {L"00000446", 0, 1, 2, L"Punjabi (India)", L"113", UnicodeFonts, paINLayouts}, + {L"00000446", 0, 1, 2, L"Punjabi (India)", 113, UnicodeFonts, paINLayouts}, #endif #ifdef LANGUAGE_RO_RO - {L"00000418", 28606, 28606, 10029, L"Romanian", L"200", LatinFonts, roROLayouts}, + {L"00000418", 28606, 28606, 10029, L"Romanian", 200, LatinFonts, roROLayouts}, #endif #ifdef LANGUAGE_RM_CH - {L"00000417", 1252, 850, 10000, L"Romansh", L"223", LatinFonts, rmCHLayouts}, + {L"00000417", 1252, 850, 10000, L"Romansh", 223, LatinFonts, rmCHLayouts}, #endif #ifdef LANGUAGE_RU_RU - {L"00000419", 1251, 866, 10007, L"Russian", L"203", CyrillicFonts, ruRULayouts}, + {L"00000419", 1251, 866, 10007, L"Russian", 203, CyrillicFonts, ruRULayouts}, #endif #ifdef LANGUAGE_SA_IN - {L"0000044F", 0, 1, 2, L"Sanskrit", L"113", UnicodeFonts, saINLayouts}, + {L"0000044F", 0, 1, 2, L"Sanskrit", 113, UnicodeFonts, saINLayouts}, #endif #ifdef LANGUAGE_SR_SP - {L"00000C1A", 1251, 855, 10007, L"Serbian (Cyrillic)", L"271", CyrillicFonts, srSPLayouts}, + {L"00000C1A", 1251, 855, 10007, L"Serbian (Cyrillic)", 271, CyrillicFonts, srSPLayouts}, #endif #ifdef LANGUAGE_SR_SP - {L"0000081A", 1250, 852, 10029, L"Serbian (Latin)", L"271", LatinFonts, srSPLayouts}, + {L"0000081A", 1250, 852, 10029, L"Serbian (Latin)", 271, LatinFonts, srSPLayouts}, #endif #ifdef LANGUAGE_SK_SK - {L"0000041B", 1250, 852, 10029, L"Slovak", L"143", LatinFonts, skSKLayouts}, + {L"0000041B", 1250, 852, 10029, L"Slovak", 143, LatinFonts, skSKLayouts}, #endif #ifdef LANGUAGE_SL_SI - {L"00000424", 1250, 852, 10029, L"Slovenian", L"212", LatinFonts, slSILayouts}, + {L"00000424", 1250, 852, 10029, L"Slovenian", 212, LatinFonts, slSILayouts}, #endif #ifdef LANGUAGE_ES_ES - {L"0000040A", 1252, 850, 10000, L"Spanish (Traditional Sort)", L"217", LatinFonts, esESLayouts}, + {L"0000040A", 1252, 850, 10000, L"Spanish (Traditional Sort)", 217, LatinFonts, esESLayouts}, #endif #ifdef LANGUAGE_ES_MX - {L"0000080A", 1252, 850, 10000, L"Spanish (Mexico)", L"166", LatinFonts, esMXLayouts}, + {L"0000080A", 1252, 850, 10000, L"Spanish (Mexico)", 166, LatinFonts, esMXLayouts}, #endif #ifdef LANGUAGE_ES_ES - {L"00000C0A", 1252, 850, 10000, L"Spanish (International Sort)", L"217", LatinFonts, esESLayouts}, + {L"00000C0A", 1252, 850, 10000, L"Spanish (International Sort)", 217, LatinFonts, esESLayouts}, #endif #ifdef LANGUAGE_ES_GT - {L"0000100A", 1252, 850, 10000, L"Spanish (Guatemala)", L"99", LatinFonts, esGTLayouts}, + {L"0000100A", 1252, 850, 10000, L"Spanish (Guatemala)", 99, LatinFonts, esGTLayouts}, #endif #ifdef LANGUAGE_ES_CR - {L"0000140A", 1252, 850, 10000, L"Spanish (Costa Rica)", L"54", LatinFonts, esCRLayouts}, + {L"0000140A", 1252, 850, 10000, L"Spanish (Costa Rica)", 54, LatinFonts, esCRLayouts}, #endif #ifdef LANGUAGE_ES_PA - {L"0000180A", 1252, 850, 10000, L"Spanish (Panama)", L"192", LatinFonts, esPALayouts}, + {L"0000180A", 1252, 850, 10000, L"Spanish (Panama)", 192, LatinFonts, esPALayouts}, #endif #ifdef LANGUAGE_ES_DO - {L"00001C0A", 1252, 850, 10000, L"Spanish (Dominican Republic)", L"65", LatinFonts, esDOLayouts}, + {L"00001C0A", 1252, 850, 10000, L"Spanish (Dominican Republic)", 65, LatinFonts, esDOLayouts}, #endif #ifdef LANGUAGE_ES_VE - {L"0000200A", 1252, 850, 10000, L"Spanish (Venezuela)", L"249", LatinFonts, esVELayouts}, + {L"0000200A", 1252, 850, 10000, L"Spanish (Venezuela)", 249, LatinFonts, esVELayouts}, #endif #ifdef LANGUAGE_ES_CO - {L"0000240A", 1252, 850, 10000, L"Spanish (Colombia)", L"51", LatinFonts, esCOLayouts}, + {L"0000240A", 1252, 850, 10000, L"Spanish (Colombia)", 51, LatinFonts, esCOLayouts}, #endif #ifdef LANGUAGE_ES_PE - {L"0000280A", 1252, 850, 10000, L"Spanish (Peru)", L"187", LatinFonts, esPELayouts}, + {L"0000280A", 1252, 850, 10000, L"Spanish (Peru)", 187, LatinFonts, esPELayouts}, #endif #ifdef LANGUAGE_ES_AR - {L"00002C0A", 1252, 850, 10000, L"Spanish (Argentina)", L"11", LatinFonts, esARLayouts}, + {L"00002C0A", 1252, 850, 10000, L"Spanish (Argentina)", 11, LatinFonts, esARLayouts}, #endif #ifdef LANGUAGE_ES_EC - {L"0000300A", 1252, 850, 10000, L"Spanish (Ecuador)", L"66", LatinFonts, esECLayouts}, + {L"0000300A", 1252, 850, 10000, L"Spanish (Ecuador)", 66, LatinFonts, esECLayouts}, #endif #ifdef LANGUAGE_ES_CL - {L"0000340A", 1252, 850, 10000, L"Spanish (Chile)", L"46", LatinFonts, esCLLayouts}, + {L"0000340A", 1252, 850, 10000, L"Spanish (Chile)", 46, LatinFonts, esCLLayouts}, #endif #ifdef LANGUAGE_ES_UY - {L"0000380A", 1252, 850, 10000, L"Spanish (Uruguay)", L"246", LatinFonts, esUYLayouts}, + {L"0000380A", 1252, 850, 10000, L"Spanish (Uruguay)", 246, LatinFonts, esUYLayouts}, #endif #ifdef LANGUAGE_ES_PY - {L"00003C0A", 1252, 850, 10000, L"Spanish (Paraguay)", L"185", LatinFonts, esPYLayouts}, + {L"00003C0A", 1252, 850, 10000, L"Spanish (Paraguay)", 185, LatinFonts, esPYLayouts}, #endif #ifdef LANGUAGE_ES_BO - {L"0000400A", 1252, 850, 10000, L"Spanish (Bolivia)", L"26", LatinFonts, esBOLayouts}, + {L"0000400A", 1252, 850, 10000, L"Spanish (Bolivia)", 26, LatinFonts, esBOLayouts}, #endif #ifdef LANGUAGE_ES_SV - {L"0000440A", 1252, 850, 10000, L"Spanish (El Salvador)", L"72", LatinFonts, esSVLayouts}, + {L"0000440A", 1252, 850, 10000, L"Spanish (El Salvador)", 72, LatinFonts, esSVLayouts}, #endif #ifdef LANGUAGE_ES_HN - {L"0000480A", 1252, 850, 10000, L"Spanish (Honduras)", L"106", LatinFonts, esHNLayouts}, + {L"0000480A", 1252, 850, 10000, L"Spanish (Honduras)", 106, LatinFonts, esHNLayouts}, #endif #ifdef LANGUAGE_ES_NI - {L"00004C0A", 1252, 850, 10000, L"Spanish (Nicaragua)", L"182", LatinFonts, esNILayouts}, + {L"00004C0A", 1252, 850, 10000, L"Spanish (Nicaragua)", 182, LatinFonts, esNILayouts}, #endif #ifdef LANGUAGE_ES_PR - {L"0000500A", 1252, 850, 10000, L"Spanish (Puerto Rico)", L"202", LatinFonts, esPRLayouts}, + {L"0000500A", 1252, 850, 10000, L"Spanish (Puerto Rico)", 202, LatinFonts, esPRLayouts}, #endif #ifdef LANGUAGE_SW_KE - {L"00000441", 1252, 437, 10000, L"Swahili", L"129", LatinFonts, swKELayouts}, + {L"00000441", 1252, 437, 10000, L"Swahili", 129, LatinFonts, swKELayouts}, #endif #ifdef LANGUAGE_SV_SE - {L"0000041D", 1252, 850, 10000, L"Swedish", L"221", LatinFonts, svSELayouts}, + {L"0000041D", 1252, 850, 10000, L"Swedish", 221, LatinFonts, svSELayouts}, #endif #ifdef LANGUAGE_SV_FI - {L"0000081D", 1252, 850, 10000, L"Swedish (Finland)", L"77", LatinFonts, svFILayouts}, + {L"0000081D", 1252, 850, 10000, L"Swedish (Finland)", 77, LatinFonts, svFILayouts}, #endif #ifdef LANGUAGE_SYR_SY - {L"0000045A", 0, 1, 2, L"Syriac (Syria)", L"222", UnicodeFonts, syrSYLayouts}, + {L"0000045A", 0, 1, 2, L"Syriac (Syria)", 222, UnicodeFonts, syrSYLayouts}, #endif #ifdef LANGUAGE_TA_IN - {L"00000449", 0, 1, 2, L"Tamil", L"113", UnicodeFonts, taINLayouts}, + {L"00000449", 0, 1, 2, L"Tamil", 113, UnicodeFonts, taINLayouts}, #endif #ifdef LANGUAGE_TT_TA - {L"00000444", 1251, 866, 10007, L"Tatar", L"1", CyrillicFonts, ttTALayouts}, + {L"00000444", 1251, 866, 10007, L"Tatar", 1, CyrillicFonts, ttTALayouts}, #endif #ifdef LANGUAGE_TE_IN - {L"0000044A", 0, 1, 2, L"Telugu (India)", L"113", UnicodeFonts, teINLayouts}, + {L"0000044A", 0, 1, 2, L"Telugu (India)", 113, UnicodeFonts, teINLayouts}, #endif #ifdef LANGUAGE_TH_TH - {L"0000041E", 874, 874, 10021, L"Thai", L"227", UnicodeFonts, thTHLayouts}, + {L"0000041E", 874, 874, 10021, L"Thai", 227, UnicodeFonts, thTHLayouts}, #endif #ifdef LANGUAGE_TR_TR - {L"0000041F", 1254, 857, 10081, L"Turkish", L"235", LatinFonts, trTRLayouts}, + {L"0000041F", 1254, 857, 10081, L"Turkish", 235, LatinFonts, trTRLayouts}, #endif #ifdef LANGUAGE_UK_UA - {L"00000422", 1251, 866, 10017, L"Ukrainian", L"241", CyrillicFonts, ukUALayouts}, + {L"00000422", 1251, 866, 10017, L"Ukrainian", 241, CyrillicFonts, ukUALayouts}, #endif #ifdef LANGUAGE_UR_PK - {L"00000420", 1256, 720, 10004, L"Urdu", L"190", UnicodeFonts, urPKLayouts}, + {L"00000420", 1256, 720, 10004, L"Urdu", 190, UnicodeFonts, urPKLayouts}, #endif #ifdef LANGUAGE_UZ_UZ - {L"00000443", 1254, 857, 10029, L"Uzbek (Latin)", L"247", LatinFonts, uzUZLayouts}, + {L"00000443", 1254, 857, 10029, L"Uzbek (Latin)", 247, LatinFonts, uzUZLayouts}, #endif #ifdef LANGUAGE_UZ_UZ - {L"00000843", 1251, 866, 10007, L"Uzbek (Cyrillic)", L"247", CyrillicFonts, uzUZLayouts}, + {L"00000843", 1251, 866, 10007, L"Uzbek (Cyrillic)", 247, CyrillicFonts, uzUZLayouts}, #endif #ifdef LANGUAGE_VI_VN - {L"0000042A", 1258, 1258, 10000, L"Vietnamese", L"251", UnicodeFonts, viVNLayouts}, + {L"0000042A", 1258, 1258, 10000, L"Vietnamese", 251, UnicodeFonts, viVNLayouts}, #endif #ifdef LANGUAGE_WA_BE - {L"00000490", 1252, 850, 10000, L"Walon", L"21", LatinFonts, waBELayouts}, + {L"00000490", 1252, 850, 10000, L"Walon", 21, LatinFonts, waBELayouts}, #endif #ifdef LANGUAGE_ZU_ZU - {L"00000435", 1252, 850, 10000, L"Zulu", L"1", LatinFonts, zuZULayouts}, + {L"00000435", 1252, 850, 10000, L"Zulu", 1, LatinFonts, zuZULayouts}, #endif - {NULL, 0, 0, 0, NULL, NULL, NULL, NULL} + {NULL, 0, 0, 0, NULL, 0, NULL, NULL} }; diff --git a/base/setup/lib/settings.c b/base/setup/lib/settings.c index 92670a12e7e..09d3c240fb4 100644 --- a/base/setup/lib/settings.c +++ b/base/setup/lib/settings.c @@ -1346,12 +1346,20 @@ ProcessKeyboardLayoutFiles( BOOLEAN SetGeoID( - IN PCWSTR Id) + _In_ GEOID GeoId) { NTSTATUS Status; OBJECT_ATTRIBUTES ObjectAttributes; UNICODE_STRING Name; HANDLE KeyHandle; + /* + * Buffer big enough to hold the NULL-terminated string L"4294967295", + * corresponding to the literal 0xFFFFFFFF (MAXULONG) in decimal. + */ + WCHAR Value[sizeof("4294967295")]; + + Status = RtlStringCchPrintfW(Value, _countof(Value), L"%lu", GeoId); + ASSERT(NT_SUCCESS(Status)); RtlInitUnicodeString(&Name, L".DEFAULT\\Control Panel\\International\\Geo"); @@ -1360,9 +1368,9 @@ SetGeoID( OBJ_CASE_INSENSITIVE, GetRootKeyByPredefKey(HKEY_USERS, NULL), NULL); - Status = NtOpenKey(&KeyHandle, - KEY_SET_VALUE, - &ObjectAttributes); + Status = NtOpenKey(&KeyHandle, + KEY_SET_VALUE, + &ObjectAttributes); if (!NT_SUCCESS(Status)) { DPRINT1("NtOpenKey() failed (Status %lx)\n", Status); @@ -1374,12 +1382,12 @@ SetGeoID( &Name, 0, REG_SZ, - (PVOID)Id, - (wcslen(Id) + 1) * sizeof(WCHAR)); + (PVOID)Value, + (wcslen(Value) + 1) * sizeof(WCHAR)); NtClose(KeyHandle); if (!NT_SUCCESS(Status)) { - DPRINT1("NtSetValueKey() failed (Status = %lx)\n", Status); + DPRINT1("NtSetValueKey() failed (Status %lx)\n", Status); return FALSE; } diff --git a/base/setup/lib/settings.h b/base/setup/lib/settings.h index 9c46123e434..e77f15684c0 100644 --- a/base/setup/lib/settings.h +++ b/base/setup/lib/settings.h @@ -85,7 +85,7 @@ ProcessLocaleRegistry( BOOLEAN SetGeoID( - IN PCWSTR Id); + _In_ GEOID GeoId); BOOLEAN SetDefaultPagefile(