[FORMATTING]

Fix indentation and coding style. No code changes!

svn path=/trunk/; revision=63259
This commit is contained in:
Eric Kohl 2014-05-12 16:14:19 +00:00
parent 5da1f1a63b
commit 3def58e0ff
8 changed files with 786 additions and 712 deletions

View file

@ -409,424 +409,424 @@ const MUI_LANGUAGE LanguageList[] =
{
/* Lang ID, ANSI CP, OEM CP, MAC CP, Language Name, GeoID page strgs,error strings, other strings, fonts, kb layouts */
#ifdef LANGUAGE_AF_ZA
{L"00000436", L"1252", L"850", L"10000", L"Afrikaans", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, afZALayouts },
{L"00000436", L"1252", L"850", L"10000", L"Afrikaans", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, afZALayouts },
#endif
#ifdef LANGUAGE_SQ_AL
{L"0000041C", L"1250", L"852", L"10029", L"Albanian (Albania)", L"355", sqALPages, sqALErrorEntries, sqALStrings, LatinFonts, sqALLayouts },
#endif
#ifdef LANGUAGE_AR_SA
{L"00000401", L"1256", L"720", L"10004", L"Arabic (Saudi Arabia)", L"966", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arSALayouts },
{L"00000401", L"1256", L"720", L"10004", L"Arabic (Saudi Arabia)", L"966", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arSALayouts },
#endif
#ifdef LANGUAGE_AR_IQ
{L"00000801", L"1256", L"720", L"10004", L"Arabic (Iraq)", L"964", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arIQLayouts },
{L"00000801", L"1256", L"720", L"10004", L"Arabic (Iraq)", L"964", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arIQLayouts },
#endif
#ifdef LANGUAGE_AR_EG
{L"00000C01", L"1256", L"720", L"10004", L"Arabic (Egypt)", L"20", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arEGLayouts },
{L"00000C01", L"1256", L"720", L"10004", L"Arabic (Egypt)", L"20", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arEGLayouts },
#endif
#ifdef LANGUAGE_AR_LY
{L"00001001", L"1256", L"720", L"10004", L"Arabic (Libya)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arLYLayouts },
{L"00001001", L"1256", L"720", L"10004", L"Arabic (Libya)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arLYLayouts },
#endif
#ifdef LANGUAGE_AR_DZ
{L"00001401", L"1256", L"720", L"10004", L"Arabic (Algeria)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arDZLayouts },
{L"00001401", L"1256", L"720", L"10004", L"Arabic (Algeria)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arDZLayouts },
#endif
#ifdef LANGUAGE_AR_MA
{L"00001801", L"1256", L"720", L"10004", L"Arabic (Morocco)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arMALayouts },
{L"00001801", L"1256", L"720", L"10004", L"Arabic (Morocco)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arMALayouts },
#endif
#ifdef LANGUAGE_AR_TN
{L"00001C01", L"1256", L"720", L"10004", L"Arabic (Tunisia)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arTNLayouts },
{L"00001C01", L"1256", L"720", L"10004", L"Arabic (Tunisia)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arTNLayouts },
#endif
#ifdef LANGUAGE_AR_OM
{L"00002001", L"1256", L"720", L"10004", L"Arabic (Oman)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arOMLayouts },
{L"00002001", L"1256", L"720", L"10004", L"Arabic (Oman)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arOMLayouts },
#endif
#ifdef LANGUAGE_AR_YE
{L"00002401", L"1256", L"720", L"10004", L"Arabic (Yemen)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arYELayouts },
{L"00002401", L"1256", L"720", L"10004", L"Arabic (Yemen)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arYELayouts },
#endif
#ifdef LANGUAGE_AR_SY
{L"00002801", L"1256", L"720", L"10004", L"Arabic (Syria)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arSYLayouts },
{L"00002801", L"1256", L"720", L"10004", L"Arabic (Syria)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arSYLayouts },
#endif
#ifdef LANGUAGE_AR_JO
{L"00002C01", L"1256", L"720", L"10004", L"Arabic (Jordan)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arJOLayouts },
{L"00002C01", L"1256", L"720", L"10004", L"Arabic (Jordan)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arJOLayouts },
#endif
#ifdef LANGUAGE_AR_LB
{L"00003001", L"1256", L"720", L"10004", L"Arabic (Lebanon)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arLBLayouts },
{L"00003001", L"1256", L"720", L"10004", L"Arabic (Lebanon)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arLBLayouts },
#endif
#ifdef LANGUAGE_AR_KW
{L"00003401", L"1256", L"720", L"10004", L"Arabic (Kuwait)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arKWLayouts },
{L"00003401", L"1256", L"720", L"10004", L"Arabic (Kuwait)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arKWLayouts },
#endif
#ifdef LANGUAGE_AR_AE
{L"00003801", L"1256", L"720", L"10004", L"Arabic (U.A.E.)", L"971", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arAELayouts },
{L"00003801", L"1256", L"720", L"10004", L"Arabic (U.A.E.)", L"971", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arAELayouts },
#endif
#ifdef LANGUAGE_AR_BH
{L"00003C01", L"1256", L"720", L"10004", L"Arabic (Bahrain)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arBHLayouts },
{L"00003C01", L"1256", L"720", L"10004", L"Arabic (Bahrain)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arBHLayouts },
#endif
#ifdef LANGUAGE_AR_QA
{L"00004001", L"1256", L"720", L"10004", L"Arabic (Qatar)", L"974", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arQALayouts },
{L"00004001", L"1256", L"720", L"10004", L"Arabic (Qatar)", L"974", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arQALayouts },
#endif
#ifdef LANGUAGE_HY_AM
{L"0000042B", L"0", L"1", L"2", L"Armenian", L"374", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, hyAMLayouts },
{L"0000042B", L"0", L"1", L"2", L"Armenian", L"374", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, hyAMLayouts },
#endif
#ifdef LANGUAGE_AZ_AZ
{L"0000082C", L"1251", L"866", L"10007", L"Azeri (Cyrillic)", L"1", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, azAZLayouts },
{L"0000082C", L"1251", L"866", L"10007", L"Azeri (Cyrillic)", L"1", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, azAZLayouts },
#endif
#ifdef LANGUAGE_AZ_AZ
{L"0000042C", L"1254", L"857", L"10081", L"Azeri (Latin)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, azAZLayouts },
{L"0000042C", L"1254", L"857", L"10081", L"Azeri (Latin)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, azAZLayouts },
#endif
#ifdef LANGUAGE_EU_ES
{L"0000042D", L"1252", L"850", L"10000", L"Basque", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, euESLayouts },
{L"0000042D", L"1252", L"850", L"10000", L"Basque", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, euESLayouts },
#endif
#ifdef LANGUAGE_BE_BY
{L"00000423", L"1251", L"866", L"10007", L"Belarusian", L"1", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, beBYLayouts },
{L"00000423", L"1251", L"866", L"10007", L"Belarusian", L"1", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, beBYLayouts },
#endif
#ifdef LANGUAGE_BG_BG
{L"00000402", L"1251", L"866", L"10007", L"Bulgarian", L"359", bgBGPages, bgBGErrorEntries, bgBGStrings, CyrillicFonts, bgBGLayouts },
{L"00000402", L"1251", L"866", L"10007", L"Bulgarian", L"359", bgBGPages, bgBGErrorEntries, bgBGStrings, CyrillicFonts, bgBGLayouts },
#endif
#ifdef LANGUAGE_MY_MM
{L"00000455", L"0", L"1", L"2", L"Burmese", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, myMMLayouts },
{L"00000455", L"0", L"1", L"2", L"Burmese", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, myMMLayouts },
#endif
#ifdef LANGUAGE_CA_ES
{L"00000403", L"1252", L"850", L"10000", L"Catalan", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, caESLayouts },
{L"00000403", L"1252", L"850", L"10000", L"Catalan", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, caESLayouts },
#endif
#ifdef LANGUAGE_ZH_TW
{L"00000404", L"950", L"950", L"10008", L"Chinese (Taiwan)", L"886", enUSPages, enUSErrorEntries, enUSStrings, CJKFonts, zhTWLayouts },
{L"00000404", L"950", L"950", L"10008", L"Chinese (Taiwan)", L"886", enUSPages, enUSErrorEntries, enUSStrings, CJKFonts, zhTWLayouts },
#endif
#ifdef LANGUAGE_ZH_CN
{L"00000804", L"936", L"936", L"10008", L"Chinese (PRC)", L"86", enUSPages, enUSErrorEntries, enUSStrings, CJKFonts, zhCNLayouts },
{L"00000804", L"936", L"936", L"10008", L"Chinese (PRC)", L"86", enUSPages, enUSErrorEntries, enUSStrings, CJKFonts, zhCNLayouts },
#endif
#ifdef LANGUAGE_ZH_HK
{L"00000C04", L"950", L"950", L"10008", L"Chinese (Hong Kong S.A.R.)", L"1", enUSPages, enUSErrorEntries, enUSStrings, CJKFonts, zhHKLayouts },
{L"00000C04", L"950", L"950", L"10008", L"Chinese (Hong Kong S.A.R.)", L"1", enUSPages, enUSErrorEntries, enUSStrings, CJKFonts, zhHKLayouts },
#endif
#ifdef LANGUAGE_ZH_SG
{L"00001004", L"936", L"936", L"10008", L"Chinese (Singapore)", L"1", enUSPages, enUSErrorEntries, enUSStrings, CJKFonts, zhSGLayouts },
{L"00001004", L"936", L"936", L"10008", L"Chinese (Singapore)", L"1", enUSPages, enUSErrorEntries, enUSStrings, CJKFonts, zhSGLayouts },
#endif
#ifdef LANGUAGE_ZH_MO
{L"00001404", L"950", L"950", L"10002", L"Chinese (Macau S.A.R.)", L"1", enUSPages, enUSErrorEntries, enUSStrings, CJKFonts, zhMOLayouts },
{L"00001404", L"950", L"950", L"10002", L"Chinese (Macau S.A.R.)", L"1", enUSPages, enUSErrorEntries, enUSStrings, CJKFonts, zhMOLayouts },
#endif
#ifdef LANGUAGE_HR_HR
{L"0000041A", L"1250", L"852", L"10029", L"Croatian", L"385", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, hrHRLayouts },
{L"0000041A", L"1250", L"852", L"10029", L"Croatian", L"385", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, hrHRLayouts },
#endif
#ifdef LANGUAGE_CS_CZ
{L"00000405", L"1250", L"852", L"10029", L"Czech", L"420", csCZPages, csCZErrorEntries, csCZStrings, LatinFonts, csCZLayouts },
{L"00000405", L"1250", L"852", L"10029", L"Czech", L"420", csCZPages, csCZErrorEntries, csCZStrings, LatinFonts, csCZLayouts },
#endif
#ifdef LANGUAGE_DA_DK
{L"00000406", L"1252", L"850", L"10000", L"Danish", L"45", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, daDKLayouts },
{L"00000406", L"1252", L"850", L"10000", L"Danish", L"45", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, daDKLayouts },
#endif
#ifdef LANGUAGE_DV_MV
{L"00000465", L"0", L"1", L"2", L"Dhivehi (Maldives)", L"960", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, dvMVLayouts },
{L"00000465", L"0", L"1", L"2", L"Dhivehi (Maldives)", L"960", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, dvMVLayouts },
#endif
#ifdef LANGUAGE_NL_NL
{L"00000413", L"1252", L"850", L"10000", L"Dutch (Netherlands)", L"31", nlNLPages, nlNLErrorEntries, nlNLStrings, LatinFonts, nlNLLayouts },
{L"00000413", L"1252", L"850", L"10000", L"Dutch (Netherlands)", L"31", nlNLPages, nlNLErrorEntries, nlNLStrings, LatinFonts, nlNLLayouts },
#endif
#ifdef LANGUAGE_NL_BE
{L"00000813", L"1252", L"850", L"10000", L"Dutch (Belgium)", L"32", nlNLPages, nlNLErrorEntries, nlNLStrings, LatinFonts, nlBELayouts },
{L"00000813", L"1252", L"850", L"10000", L"Dutch (Belgium)", L"32", nlNLPages, nlNLErrorEntries, nlNLStrings, LatinFonts, nlBELayouts },
#endif
#ifdef LANGUAGE_EN_US
{L"00000409", L"1252", L"437", L"10000", L"English (United States)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enUSLayouts },
{L"00000409", L"1252", L"437", L"10000", L"English (United States)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enUSLayouts },
#endif
#ifdef LANGUAGE_EN_GB
{L"00000809", L"1252", L"850", L"10000", L"English (United Kingdom)", L"44", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enGBLayouts },
{L"00000809", L"1252", L"850", L"10000", L"English (United Kingdom)", L"44", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enGBLayouts },
#endif
#ifdef LANGUAGE_EN_AU
{L"00000C09", L"1252", L"850", L"10000", L"English (Australia)", L"61", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enAULayouts },
{L"00000C09", L"1252", L"850", L"10000", L"English (Australia)", L"61", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enAULayouts },
#endif
#ifdef LANGUAGE_EN_CA
{L"00001009", L"1252", L"850", L"10000", L"English (Canada)", L"107", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enCALayouts },
{L"00001009", L"1252", L"850", L"10000", L"English (Canada)", L"107", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enCALayouts },
#endif
#ifdef LANGUAGE_EN_NZ
{L"00001409", L"1252", L"850", L"10000", L"English (New Zealand)", L"64", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enNZLayouts },
{L"00001409", L"1252", L"850", L"10000", L"English (New Zealand)", L"64", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enNZLayouts },
#endif
#ifdef LANGUAGE_EN_IE
{L"00001809", L"1252", L"850", L"10000", L"English (Ireland)", L"353", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enIELayouts },
{L"00001809", L"1252", L"850", L"10000", L"English (Ireland)", L"353", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enIELayouts },
#endif
#ifdef LANGUAGE_EN_ZA
{L"00001C09", L"1252", L"437", L"10000", L"English (South Africa)", L"27", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enZALayouts },
{L"00001C09", L"1252", L"437", L"10000", L"English (South Africa)", L"27", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enZALayouts },
#endif
#ifdef LANGUAGE_EN_JM
{L"00002009", L"1252", L"850", L"10000", L"English (Jamaica)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enJMLayouts },
{L"00002009", L"1252", L"850", L"10000", L"English (Jamaica)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enJMLayouts },
#endif
#ifdef LANGUAGE_EN_CB
{L"00002409", L"1252", L"850", L"10000", L"English (Caribbean)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enCBLayouts },
{L"00002409", L"1252", L"850", L"10000", L"English (Caribbean)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enCBLayouts },
#endif
#ifdef LANGUAGE_EN_BZ
{L"00002809", L"1252", L"850", L"10000", L"English (Belize)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enBZLayouts },
{L"00002809", L"1252", L"850", L"10000", L"English (Belize)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enBZLayouts },
#endif
#ifdef LANGUAGE_EN_TT
{L"00002C09", L"1252", L"850", L"10000", L"English (Trinidad)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enTTLayouts },
{L"00002C09", L"1252", L"850", L"10000", L"English (Trinidad)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enTTLayouts },
#endif
#ifdef LANGUAGE_EN_ZW
{L"00003009", L"1252", L"437", L"10000", L"English (Zimbabwe)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enZWLayouts },
{L"00003009", L"1252", L"437", L"10000", L"English (Zimbabwe)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enZWLayouts },
#endif
#ifdef LANGUAGE_EN_PH
{L"00003409", L"1252", L"437", L"10000", L"English (Philippines)", L"63", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enPHLayouts },
{L"00003409", L"1252", L"437", L"10000", L"English (Philippines)", L"63", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enPHLayouts },
#endif
#ifdef LANGUAGE_EO_AA
{L"0000048F", L"1252", L"437", L"10000", L"Esperanto", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, eoAALayouts },
{L"0000048F", L"1252", L"437", L"10000", L"Esperanto", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, eoAALayouts },
#endif
#ifdef LANGUAGE_ET_EE
{L"00000425", L"1252", L"775", L"10029", L"Estonian", L"372", etEEPages, etEEErrorEntries, etEEStrings, LatinFonts, etEELayouts },
{L"00000425", L"1252", L"775", L"10029", L"Estonian", L"372", etEEPages, etEEErrorEntries, etEEStrings, LatinFonts, etEELayouts },
#endif
#ifdef LANGUAGE_FO_FO
{L"00000438", L"1252", L"850", L"10079", L"Faeroese", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, foFOLayouts },
{L"00000438", L"1252", L"850", L"10079", L"Faeroese", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, foFOLayouts },
#endif
#ifdef LANGUAGE_FA_IR
{L"00000429", L"1256", L"720", L"10004", L"Farsi", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, faIRLayouts },
{L"00000429", L"1256", L"720", L"10004", L"Farsi", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, faIRLayouts },
#endif
#ifdef LANGUAGE_FI_FI
{L"0000040B", L"1252", L"850", L"10000", L"Finnish", L"358", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, fiFILayouts },
{L"0000040B", L"1252", L"850", L"10000", L"Finnish", L"358", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, fiFILayouts },
#endif
#ifdef LANGUAGE_FR_CA
{L"00000C0C", L"1252", L"850", L"10000", L"French (Canada)", L"107", frFRPages, frFRErrorEntries, frFRStrings, LatinFonts, frCALayouts },
{L"00000C0C", L"1252", L"850", L"10000", L"French (Canada)", L"107", frFRPages, frFRErrorEntries, frFRStrings, LatinFonts, frCALayouts },
#endif
#ifdef LANGUAGE_FR_FR
{L"0000040C", L"1252", L"850", L"10000", L"French (France)", L"33", frFRPages, frFRErrorEntries, frFRStrings, LatinFonts, frFRLayouts },
{L"0000040C", L"1252", L"850", L"10000", L"French (France)", L"33", frFRPages, frFRErrorEntries, frFRStrings, LatinFonts, frFRLayouts },
#endif
#ifdef LANGUAGE_FR_BE
{L"0000080C", L"1252", L"850", L"10000", L"French (Belgium)", L"32", frFRPages, frFRErrorEntries, frFRStrings, LatinFonts, frBELayouts },
{L"0000080C", L"1252", L"850", L"10000", L"French (Belgium)", L"32", frFRPages, frFRErrorEntries, frFRStrings, LatinFonts, frBELayouts },
#endif
#ifdef LANGUAGE_FR_CH
{L"0000100C", L"1252", L"850", L"10000", L"French (Switzerland)", L"41", frFRPages, frFRErrorEntries, frFRStrings, LatinFonts, frCHLayouts },
{L"0000100C", L"1252", L"850", L"10000", L"French (Switzerland)", L"41", frFRPages, frFRErrorEntries, frFRStrings, LatinFonts, frCHLayouts },
#endif
#ifdef LANGUAGE_FR_LU
{L"0000140C", L"1252", L"850", L"10000", L"French (Luxembourg)", L"352", frFRPages, frFRErrorEntries, frFRStrings, LatinFonts, frLULayouts },
{L"0000140C", L"1252", L"850", L"10000", L"French (Luxembourg)", L"352", frFRPages, frFRErrorEntries, frFRStrings, LatinFonts, frLULayouts },
#endif
#ifdef LANGUAGE_FR_MC
{L"0000180C", L"1252", L"850", L"10000", L"French (Monaco)", L"1", frFRPages, frFRErrorEntries, frFRStrings, LatinFonts, frMCLayouts },
{L"0000180C", L"1252", L"850", L"10000", L"French (Monaco)", L"1", frFRPages, frFRErrorEntries, frFRStrings, LatinFonts, frMCLayouts },
#endif
#ifdef LANGUAGE_GL_ES
{L"00000456", L"1252", L"850", L"10000", L"Galician (Spain)", L"34", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, glESLayouts },
{L"00000456", L"1252", L"850", L"10000", L"Galician (Spain)", L"34", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, glESLayouts },
#endif
#ifdef LANGUAGE_KA_GE
{L"00000437", L"0", L"1", L"2", L"Georgian", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, kaGELayouts },
{L"00000437", L"0", L"1", L"2", L"Georgian", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, kaGELayouts },
#endif
#ifdef LANGUAGE_DE_DE
{L"00000407", L"1252", L"850", L"10000", L"German (Germany)", L"49", deDEPages, deDEErrorEntries, deDEStrings, LatinFonts, deDELayouts },
{L"00000407", L"1252", L"850", L"10000", L"German (Germany)", L"49", deDEPages, deDEErrorEntries, deDEStrings, LatinFonts, deDELayouts },
#endif
#ifdef LANGUAGE_DE_CH
{L"00000807", L"1252", L"850", L"10000", L"German (Switzerland)", L"41", deDEPages, deDEErrorEntries, deDEStrings, LatinFonts, deCHLayouts },
{L"00000807", L"1252", L"850", L"10000", L"German (Switzerland)", L"41", deDEPages, deDEErrorEntries, deDEStrings, LatinFonts, deCHLayouts },
#endif
#ifdef LANGUAGE_DE_AT
{L"00000C07", L"1252", L"850", L"10000", L"German (Austria)", L"43", deDEPages, deDEErrorEntries, deDEStrings, LatinFonts, deATLayouts },
{L"00000C07", L"1252", L"850", L"10000", L"German (Austria)", L"43", deDEPages, deDEErrorEntries, deDEStrings, LatinFonts, deATLayouts },
#endif
#ifdef LANGUAGE_DE_LU
{L"00001007", L"1252", L"850", L"10000", L"German (Luxembourg)", L"352", deDEPages, deDEErrorEntries, deDEStrings, LatinFonts, deLULayouts },
{L"00001007", L"1252", L"850", L"10000", L"German (Luxembourg)", L"352", deDEPages, deDEErrorEntries, deDEStrings, LatinFonts, deLULayouts },
#endif
#ifdef LANGUAGE_DE_LI
{L"00001407", L"1252", L"850", L"10000", L"German (Liechtenstein)", L"423", deDEPages, deDEErrorEntries, deDEStrings, LatinFonts, deLILayouts },
{L"00001407", L"1252", L"850", L"10000", L"German (Liechtenstein)", L"423", deDEPages, deDEErrorEntries, deDEStrings, LatinFonts, deLILayouts },
#endif
#ifdef LANGUAGE_EL_GR
{L"00000408", L"1253", L"737", L"10006", L"Greek", L"30", elGRPages, elGRErrorEntries, elGRStrings, GreekFonts, elGRLayouts },
{L"00000408", L"1253", L"737", L"10006", L"Greek", L"30", elGRPages, elGRErrorEntries, elGRStrings, GreekFonts, elGRLayouts },
#endif
#ifdef LANGUAGE_GU_IN
{L"00000447", L"0", L"1", L"2", L"Gujarati (India)", L"91", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, guINLayouts },
{L"00000447", L"0", L"1", L"2", L"Gujarati (India)", L"91", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, guINLayouts },
#endif
#ifdef LANGUAGE_HE_IL
{L"0000040D", L"1255", L"862", L"10005", L"Hebrew", L"1", heILPages, heILErrorEntries, heILStrings, HebrewFonts, heILLayouts },
{L"0000040D", L"1255", L"862", L"10005", L"Hebrew", L"1", heILPages, heILErrorEntries, heILStrings, HebrewFonts, heILLayouts },
#endif
#ifdef LANGUAGE_HI_IN
{L"00000439", L"1252", L"437", L"10000", L"Hindi", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, hiINLayouts },
{L"00000439", L"1252", L"437", L"10000", L"Hindi", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, hiINLayouts },
#endif
#ifdef LANGUAGE_HU_HU
{L"0000040E", L"1250", L"852", L"10029", L"Hungarian", L"36", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, huHULayouts },
{L"0000040E", L"1250", L"852", L"10029", L"Hungarian", L"36", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, huHULayouts },
#endif
#ifdef LANGUAGE_IS_IS
{L"0000040F", L"1252", L"850", L"10079", L"Icelandic", L"354", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, isISLayouts },
{L"0000040F", L"1252", L"850", L"10079", L"Icelandic", L"354", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, isISLayouts },
#endif
#ifdef LANGUAGE_ID_ID
{L"00000421", L"1252", L"850", L"10079", L"Indonesian", L"62", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, idIDLayouts },
{L"00000421", L"1252", L"850", L"10079", L"Indonesian", L"62", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, idIDLayouts },
#endif
#ifdef LANGUAGE_IT_IT
{L"00000410", L"1252", L"850", L"10000", L"Italian (Italy)", L"39", itITPages, itITErrorEntries, itITStrings, LatinFonts, itITLayouts },
{L"00000410", L"1252", L"850", L"10000", L"Italian (Italy)", L"39", itITPages, itITErrorEntries, itITStrings, LatinFonts, itITLayouts },
#endif
#ifdef LANGUAGE_IT_CH
{L"00000810", L"1252", L"850", L"10000", L"Italian (Switzerland)", L"41", itITPages, itITErrorEntries, itITStrings, LatinFonts, itCHLayouts },
{L"00000810", L"1252", L"850", L"10000", L"Italian (Switzerland)", L"41", itITPages, itITErrorEntries, itITStrings, LatinFonts, itCHLayouts },
#endif
#ifdef LANGUAGE_JA_JP
{L"00000411", L"932", L"932", L"10001", L"Japanese", L"81", jaJPPages, jaJPErrorEntries, jaJPStrings, CJKFonts, jaJPLayouts },
{L"00000411", L"932", L"932", L"10001", L"Japanese", L"81", jaJPPages, jaJPErrorEntries, jaJPStrings, CJKFonts, jaJPLayouts },
#endif
#ifdef LANGUAGE_KN_IN
{L"0000044B", L"1252", L"437", L"10079", L"Kannada (India)", L"91", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, knINLayouts },
{L"0000044B", L"1252", L"437", L"10079", L"Kannada (India)", L"91", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, knINLayouts },
#endif
#ifdef LANGUAGE_KK_KZ
{L"0000043F", L"1251", L"866", L"10007", L"Kazakh", L"705", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, kkKZLayouts },
{L"0000043F", L"1251", L"866", L"10007", L"Kazakh", L"705", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, kkKZLayouts },
#endif
#ifdef LANGUAGE_KOK_IN
{L"00000457", L"0", L"437", L"2", L"Konkani", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, kokINLayouts},
{L"00000457", L"0", L"437", L"2", L"Konkani", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, kokINLayouts},
#endif
#ifdef LANGUAGE_KO_KR
{L"00000412", L"949", L"949", L"10003", L"Korean", L"1", enUSPages, enUSErrorEntries, enUSStrings, CJKFonts, koKRLayouts },
{L"00000412", L"949", L"949", L"10003", L"Korean", L"1", enUSPages, enUSErrorEntries, enUSStrings, CJKFonts, koKRLayouts },
#endif
#ifdef LANGUAGE_KY_KG
{L"00000440", L"1251", L"866", L"10007", L"Kyrgyz (Kyrgyzstan)", L"1", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, kyKGLayouts },
{L"00000440", L"1251", L"866", L"10007", L"Kyrgyz (Kyrgyzstan)", L"1", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, kyKGLayouts },
#endif
#ifdef LANGUAGE_LV_LV
{L"00000426", L"1257", L"775", L"10029", L"Latvian", L"371", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, lvLVLayouts },
{L"00000426", L"1257", L"775", L"10029", L"Latvian", L"371", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, lvLVLayouts },
#endif
#ifdef LANGUAGE_LT_LT
{L"00000427", L"1257", L"775", L"10029", L"Lithuanian", L"370", ltLTPages, ltLTErrorEntries, ltLTStrings, LatinFonts, ltLTLayouts },
{L"00000427", L"1257", L"775", L"10029", L"Lithuanian", L"370", ltLTPages, ltLTErrorEntries, ltLTStrings, LatinFonts, ltLTLayouts },
#endif
#ifdef LANGUAGE_MK_MK
{L"0000042F", L"1251", L"866", L"10007", L"FYRO Macedonian", L"1", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, mkMKLayouts },
{L"0000042F", L"1251", L"866", L"10007", L"FYRO Macedonian", L"1", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, mkMKLayouts },
#endif
#ifdef LANGUAGE_MS_BN
{L"0000083E", L"1252", L"850", L"10000", L"Malay (Brunei Darussalam)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, msBNLayouts },
{L"0000083E", L"1252", L"850", L"10000", L"Malay (Brunei Darussalam)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, msBNLayouts },
#endif
#ifdef LANGUAGE_MS_MY
{L"0000043E", L"1252", L"850", L"10000", L"Malay (Malaysia)", L"60", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, msMYLayouts },
{L"0000043E", L"1252", L"850", L"10000", L"Malay (Malaysia)", L"60", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, msMYLayouts },
#endif
#ifdef LANGUAGE_MR_IN
{L"0000044E", L"0", L"1", L"2", L"Marathi", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, mrINLayouts },
{L"0000044E", L"0", L"1", L"2", L"Marathi", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, mrINLayouts },
#endif
#ifdef LANGUAGE_MN_MN
{L"00000450", L"1251", L"866", L"10007", L"Mongolian (Mongolia)", L"976", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, mnMNLayouts },
{L"00000450", L"1251", L"866", L"10007", L"Mongolian (Mongolia)", L"976", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, mnMNLayouts },
#endif
#ifdef LANGUAGE_NB_NO
{L"00000414", L"1252", L"850", L"10000", L"Norwegian (Bokmal)", L"47", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, nbNOLayouts },
{L"00000414", L"1252", L"850", L"10000", L"Norwegian (Bokmal)", L"47", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, nbNOLayouts },
#endif
#ifdef LANGUAGE_NN_NO
{L"00000814", L"1252", L"850", L"10000", L"Norwegian (Nynorsk)", L"47", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, nnNOLayouts },
{L"00000814", L"1252", L"850", L"10000", L"Norwegian (Nynorsk)", L"47", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, nnNOLayouts },
#endif
#ifdef LANGUAGE_PL_PL
{L"00000415", L"1250", L"852", L"10029", L"Polish", L"48", plPLPages, plPLErrorEntries, plPLStrings, LatinFonts, plPLLayouts },
{L"00000415", L"1250", L"852", L"10029", L"Polish", L"48", plPLPages, plPLErrorEntries, plPLStrings, LatinFonts, plPLLayouts },
#endif
#ifdef LANGUAGE_PT_PT
{L"00000816", L"1252", L"850", L"10000", L"Portuguese (Portugal)", L"351", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, ptPTLayouts },
{L"00000816", L"1252", L"850", L"10000", L"Portuguese (Portugal)", L"351", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, ptPTLayouts },
#endif
#ifdef LANGUAGE_PT_BR
{L"00000416", L"1252", L"850", L"10000", L"Portuguese (Brazil)", L"55", ptBRPages, ptBRErrorEntries, ptBRStrings, LatinFonts, ptBRLayouts },
{L"00000416", L"1252", L"850", L"10000", L"Portuguese (Brazil)", L"55", ptBRPages, ptBRErrorEntries, ptBRStrings, LatinFonts, ptBRLayouts },
#endif
#ifdef LANGUAGE_PA_IN
{L"00000446", L"0", L"1", L"2", L"Punjabi (India)", L"91", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, paINLayouts },
{L"00000446", L"0", L"1", L"2", L"Punjabi (India)", L"91", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, paINLayouts },
#endif
#ifdef LANGUAGE_RO_RO
{L"00000418", L"1250", L"852", L"10029", L"Romanian", L"40", roROPages, roROErrorEntries, roROStrings, LatinFonts, roROLayouts },
{L"00000418", L"1250", L"852", L"10029", L"Romanian", L"40", roROPages, roROErrorEntries, roROStrings, LatinFonts, roROLayouts },
#endif
#ifdef LANGUAGE_RM_CH
{L"00000417", L"1252", L"850", L"10000", L"Romansh", L"41", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, rmCHLayouts },
{L"00000417", L"1252", L"850", L"10000", L"Romansh", L"41", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, rmCHLayouts },
#endif
#ifdef LANGUAGE_RU_RU
{L"00000419", L"1251", L"866", L"10007", L"Russian", L"7", ruRUPages, ruRUErrorEntries, ruRUStrings, CyrillicFonts, ruRULayouts },
{L"00000419", L"1251", L"866", L"10007", L"Russian", L"7", ruRUPages, ruRUErrorEntries, ruRUStrings, CyrillicFonts, ruRULayouts },
#endif
#ifdef LANGUAGE_SA_IN
{L"0000044F", L"0", L"1", L"2", L"Sanskrit", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, saINLayouts },
{L"0000044F", L"0", L"1", L"2", L"Sanskrit", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, saINLayouts },
#endif
#ifdef LANGUAGE_SR_SP
{L"00000C1A", L"1251", L"855", L"10007", L"Serbian (Cyrillic)", L"1", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, srSPLayouts },
{L"00000C1A", L"1251", L"855", L"10007", L"Serbian (Cyrillic)", L"1", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, srSPLayouts },
#endif
#ifdef LANGUAGE_SR_SP
{L"0000081A", L"1250", L"852", L"10029", L"Serbian (Latin)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, srSPLayouts },
{L"0000081A", L"1250", L"852", L"10029", L"Serbian (Latin)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, srSPLayouts },
#endif
#ifdef LANGUAGE_SK_SK
{L"0000041B", L"1250", L"852", L"10029", L"Slovak", L"421", skSKPages, skSKErrorEntries, skSKStrings, LatinFonts, skSKLayouts },
{L"0000041B", L"1250", L"852", L"10029", L"Slovak", L"421", skSKPages, skSKErrorEntries, skSKStrings, LatinFonts, skSKLayouts },
#endif
#ifdef LANGUAGE_SL_SI
{L"00000424", L"1250", L"852", L"10029", L"Slovenian", L"386", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, slSILayouts },
{L"00000424", L"1250", L"852", L"10029", L"Slovenian", L"386", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, slSILayouts },
#endif
#ifdef LANGUAGE_ES_ES
{L"0000040A", L"1252", L"850", L"10000", L"Spanish (Traditional Sort)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esESLayouts },
{L"0000040A", L"1252", L"850", L"10000", L"Spanish (Traditional Sort)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esESLayouts },
#endif
#ifdef LANGUAGE_ES_MX
{L"0000080A", L"1252", L"850", L"10000", L"Spanish (Mexico)", L"52", esESPages, esESErrorEntries, esESStrings, LatinFonts, esMXLayouts },
{L"0000080A", L"1252", L"850", L"10000", L"Spanish (Mexico)", L"52", esESPages, esESErrorEntries, esESStrings, LatinFonts, esMXLayouts },
#endif
#ifdef LANGUAGE_ES_ES
{L"00000C0A", L"1252", L"850", L"10000", L"Spanish (International Sort)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esESLayouts },
{L"00000C0A", L"1252", L"850", L"10000", L"Spanish (International Sort)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esESLayouts },
#endif
#ifdef LANGUAGE_ES_GT
{L"0000100A", L"1252", L"850", L"10000", L"Spanish (Guatemala)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esGTLayouts },
{L"0000100A", L"1252", L"850", L"10000", L"Spanish (Guatemala)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esGTLayouts },
#endif
#ifdef LANGUAGE_ES_CR
{L"0000140A", L"1252", L"850", L"10000", L"Spanish (Costa Rica)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esCRLayouts },
{L"0000140A", L"1252", L"850", L"10000", L"Spanish (Costa Rica)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esCRLayouts },
#endif
#ifdef LANGUAGE_ES_PA
{L"0000180A", L"1252", L"850", L"10000", L"Spanish (Panama)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esPALayouts },
{L"0000180A", L"1252", L"850", L"10000", L"Spanish (Panama)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esPALayouts },
#endif
#ifdef LANGUAGE_ES_DO
{L"00001C0A", L"1252", L"850", L"10000", L"Spanish (Dominican Republic)", L"110", esESPages, esESErrorEntries, esESStrings, LatinFonts, esDOLayouts },
{L"00001C0A", L"1252", L"850", L"10000", L"Spanish (Dominican Republic)", L"110", esESPages, esESErrorEntries, esESStrings, LatinFonts, esDOLayouts },
#endif
#ifdef LANGUAGE_ES_VE
{L"0000200A", L"1252", L"850", L"10000", L"Spanish (Venezuela)", L"58", esESPages, esESErrorEntries, esESStrings, LatinFonts, esVELayouts },
{L"0000200A", L"1252", L"850", L"10000", L"Spanish (Venezuela)", L"58", esESPages, esESErrorEntries, esESStrings, LatinFonts, esVELayouts },
#endif
#ifdef LANGUAGE_ES_CO
{L"0000240A", L"1252", L"850", L"10000", L"Spanish (Colombia)", L"57", esESPages, esESErrorEntries, esESStrings, LatinFonts, esCOLayouts },
{L"0000240A", L"1252", L"850", L"10000", L"Spanish (Colombia)", L"57", esESPages, esESErrorEntries, esESStrings, LatinFonts, esCOLayouts },
#endif
#ifdef LANGUAGE_ES_PE
{L"0000280A", L"1252", L"850", L"10000", L"Spanish (Peru)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esPELayouts },
{L"0000280A", L"1252", L"850", L"10000", L"Spanish (Peru)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esPELayouts },
#endif
#ifdef LANGUAGE_ES_AR
{L"00002C0A", L"1252", L"850", L"10000", L"Spanish (Argentina)", L"54", esESPages, esESErrorEntries, esESStrings, LatinFonts, esARLayouts },
{L"00002C0A", L"1252", L"850", L"10000", L"Spanish (Argentina)", L"54", esESPages, esESErrorEntries, esESStrings, LatinFonts, esARLayouts },
#endif
#ifdef LANGUAGE_ES_EC
{L"0000300A", L"1252", L"850", L"10000", L"Spanish (Ecuador)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esECLayouts },
{L"0000300A", L"1252", L"850", L"10000", L"Spanish (Ecuador)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esECLayouts },
#endif
#ifdef LANGUAGE_ES_CL
{L"0000340A", L"1252", L"850", L"10000", L"Spanish (Chile)", L"56", esESPages, esESErrorEntries, esESStrings, LatinFonts, esCLLayouts },
{L"0000340A", L"1252", L"850", L"10000", L"Spanish (Chile)", L"56", esESPages, esESErrorEntries, esESStrings, LatinFonts, esCLLayouts },
#endif
#ifdef LANGUAGE_ES_UY
{L"0000380A", L"1252", L"850", L"10000", L"Spanish (Uruguay)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esUYLayouts },
{L"0000380A", L"1252", L"850", L"10000", L"Spanish (Uruguay)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esUYLayouts },
#endif
#ifdef LANGUAGE_ES_PY
{L"00003C0A", L"1252", L"850", L"10000", L"Spanish (Paraguay)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esPYLayouts },
{L"00003C0A", L"1252", L"850", L"10000", L"Spanish (Paraguay)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esPYLayouts },
#endif
#ifdef LANGUAGE_ES_BO
{L"0000400A", L"1252", L"850", L"10000", L"Spanish (Bolivia)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esBOLayouts },
{L"0000400A", L"1252", L"850", L"10000", L"Spanish (Bolivia)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esBOLayouts },
#endif
#ifdef LANGUAGE_ES_SV
{L"0000440A", L"1252", L"850", L"10000", L"Spanish (El Salvador)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esSVLayouts },
{L"0000440A", L"1252", L"850", L"10000", L"Spanish (El Salvador)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esSVLayouts },
#endif
#ifdef LANGUAGE_ES_HN
{L"0000480A", L"1252", L"850", L"10000", L"Spanish (Honduras)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esHNLayouts },
{L"0000480A", L"1252", L"850", L"10000", L"Spanish (Honduras)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esHNLayouts },
#endif
#ifdef LANGUAGE_ES_NI
{L"00004C0A", L"1252", L"850", L"10000", L"Spanish (Nicaragua)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esNILayouts },
{L"00004C0A", L"1252", L"850", L"10000", L"Spanish (Nicaragua)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esNILayouts },
#endif
#ifdef LANGUAGE_ES_PR
{L"0000500A", L"1252", L"850", L"10000", L"Spanish (Puerto Rico)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esPRLayouts },
{L"0000500A", L"1252", L"850", L"10000", L"Spanish (Puerto Rico)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esPRLayouts },
#endif
#ifdef LANGUAGE_SW_KE
{L"00000441", L"1252", L"437", L"10000", L"Swahili", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, swKELayouts },
{L"00000441", L"1252", L"437", L"10000", L"Swahili", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, swKELayouts },
#endif
#ifdef LANGUAGE_SV_SE
{L"0000041D", L"1252", L"850", L"10000", L"Swedish", L"46", svSEPages, svSEErrorEntries, svSEStrings, LatinFonts, svSELayouts },
{L"0000041D", L"1252", L"850", L"10000", L"Swedish", L"46", svSEPages, svSEErrorEntries, svSEStrings, LatinFonts, svSELayouts },
#endif
#ifdef LANGUAGE_SV_FI
{L"0000081D", L"1252", L"850", L"10000", L"Swedish (Finland)", L"358", svSEPages, svSEErrorEntries, svSEStrings, LatinFonts, svFILayouts },
{L"0000081D", L"1252", L"850", L"10000", L"Swedish (Finland)", L"358", svSEPages, svSEErrorEntries, svSEStrings, LatinFonts, svFILayouts },
#endif
#ifdef LANGUAGE_SYR_SY
{L"0000045A", L"0", L"1", L"2", L"Syriac (Syria)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, syrSYLayouts},
{L"0000045A", L"0", L"1", L"2", L"Syriac (Syria)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, syrSYLayouts},
#endif
#ifdef LANGUAGE_TA_IN
{L"00000449", L"0", L"1", L"2", L"Tamil", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, taINLayouts },
{L"00000449", L"0", L"1", L"2", L"Tamil", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, taINLayouts },
#endif
#ifdef LANGUAGE_TT_TA
{L"00000444", L"1251", L"866", L"10007", L"Tatar", L"1", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, ttTALayouts },
{L"00000444", L"1251", L"866", L"10007", L"Tatar", L"1", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, ttTALayouts },
#endif
#ifdef LANGUAGE_TE_IN
{L"0000044A", L"0", L"1", L"2", L"Telugu (India)", L"91", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, teINLayouts },
{L"0000044A", L"0", L"1", L"2", L"Telugu (India)", L"91", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, teINLayouts },
#endif
#ifdef LANGUAGE_TH_TH
{L"0000041E", L"874", L"874", L"10021", L"Thai", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, thTHLayouts },
{L"0000041E", L"874", L"874", L"10021", L"Thai", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, thTHLayouts },
#endif
#ifdef LANGUAGE_TR_TR
{L"0000041F", L"1254", L"857", L"10081", L"Turkish", L"90", trTRPages, trTRErrorEntries, trTRStrings, LatinFonts, trTRLayouts },
{L"0000041F", L"1254", L"857", L"10081", L"Turkish", L"90", trTRPages, trTRErrorEntries, trTRStrings, LatinFonts, trTRLayouts },
#endif
#ifdef LANGUAGE_UK_UA
{L"00000422", L"1251", L"866", L"10017", L"Ukrainian", L"380", ukUAPages, ukUAErrorEntries, ukUAStrings, CyrillicFonts, ukUALayouts },
{L"00000422", L"1251", L"866", L"10017", L"Ukrainian", L"380", ukUAPages, ukUAErrorEntries, ukUAStrings, CyrillicFonts, ukUALayouts },
#endif
#ifdef LANGUAGE_UR_PK
{L"00000420", L"1256", L"720", L"10004", L"Urdu", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, urPKLayouts },
{L"00000420", L"1256", L"720", L"10004", L"Urdu", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, urPKLayouts },
#endif
#ifdef LANGUAGE_UZ_UZ
{L"00000443", L"1254", L"857", L"10029", L"Uzbek (Latin)", L"998", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, uzUZLayouts },
{L"00000443", L"1254", L"857", L"10029", L"Uzbek (Latin)", L"998", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, uzUZLayouts },
#endif
#ifdef LANGUAGE_UZ_UZ
{L"00000843", L"1251", L"866", L"10007", L"Uzbek (Cyrillic)", L"998", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, uzUZLayouts },
{L"00000843", L"1251", L"866", L"10007", L"Uzbek (Cyrillic)", L"998", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, uzUZLayouts },
#endif
#ifdef LANGUAGE_VI_VN
{L"0000042A", L"1258", L"1258",L"10000", L"Vietnamese", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, viVNLayouts },
{L"0000042A", L"1258", L"1258",L"10000", L"Vietnamese", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, viVNLayouts },
#endif
#ifdef LANGUAGE_WA_BE
{L"00000490", L"1252", L"850", L"10000", L"Walon", L"32", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, waBELayouts },
{L"00000490", L"1252", L"850", L"10000", L"Walon", L"32", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, waBELayouts },
#endif
#ifdef LANGUAGE_ZU_ZU
{L"00000435", L"1252", L"850", L"10000", L"Zulu", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, zuZULayouts },
{L"00000435", L"1252", L"850", L"10000", L"Zulu", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, zuZULayouts },
#endif
{NULL, NULL, NULL, NULL, NULL, NULL}
{NULL, NULL, NULL, NULL, NULL, NULL}
};

View file

@ -9,362 +9,372 @@
/* FUNCTIONS ****************************************************************/
static VOID
DrawBorder(PPROGRESSBAR Bar)
static
VOID
DrawBorder(
PPROGRESSBAR Bar)
{
COORD coPos;
DWORD Written;
SHORT i;
COORD coPos;
DWORD Written;
SHORT i;
/* draw upper left corner */
coPos.X = Bar->Left;
coPos.Y = Bar->Top + 1;
FillConsoleOutputCharacterA(StdOutput,
0xDA, // '+',
1,
coPos,
&Written);
/* draw upper left corner */
coPos.X = Bar->Left;
coPos.Y = Bar->Top + 1;
FillConsoleOutputCharacterA(StdOutput,
0xDA, // '+',
1,
coPos,
&Written);
/* draw upper edge */
coPos.X = Bar->Left + 1;
coPos.Y = Bar->Top + 1;
FillConsoleOutputCharacterA(StdOutput,
0xC4, // '-',
Bar->Right - Bar->Left - 1,
coPos,
&Written);
/* draw upper edge */
coPos.X = Bar->Left + 1;
coPos.Y = Bar->Top + 1;
FillConsoleOutputCharacterA(StdOutput,
0xC4, // '-',
Bar->Right - Bar->Left - 1,
coPos,
&Written);
/* draw upper right corner */
coPos.X = Bar->Right;
coPos.Y = Bar->Top + 1;
FillConsoleOutputCharacterA(StdOutput,
0xBF, // '+',
1,
coPos,
&Written);
/* draw upper right corner */
coPos.X = Bar->Right;
coPos.Y = Bar->Top + 1;
FillConsoleOutputCharacterA(StdOutput,
0xBF, // '+',
1,
coPos,
&Written);
/* draw left and right edge */
for (i = Bar->Top + 2; i < Bar->Bottom; i++)
/* draw left and right edge */
for (i = Bar->Top + 2; i < Bar->Bottom; i++)
{
coPos.X = Bar->Left;
coPos.Y = i;
FillConsoleOutputCharacterA(StdOutput,
0xB3, // '|',
1,
coPos,
&Written);
coPos.X = Bar->Left;
coPos.Y = i;
FillConsoleOutputCharacterA(StdOutput,
0xB3, // '|',
1,
coPos,
&Written);
coPos.X = Bar->Right;
FillConsoleOutputCharacterA(StdOutput,
0xB3, //'|',
1,
coPos,
&Written);
coPos.X = Bar->Right;
FillConsoleOutputCharacterA(StdOutput,
0xB3, //'|',
1,
coPos,
&Written);
}
/* draw lower left corner */
coPos.X = Bar->Left;
coPos.Y = Bar->Bottom;
FillConsoleOutputCharacterA(StdOutput,
0xC0, // '+',
1,
coPos,
&Written);
/* draw lower left corner */
coPos.X = Bar->Left;
coPos.Y = Bar->Bottom;
FillConsoleOutputCharacterA(StdOutput,
0xC0, // '+',
1,
coPos,
&Written);
/* draw lower edge */
coPos.X = Bar->Left + 1;
coPos.Y = Bar->Bottom;
FillConsoleOutputCharacterA(StdOutput,
0xC4, // '-',
Bar->Right - Bar->Left - 1,
coPos,
&Written);
/* draw lower edge */
coPos.X = Bar->Left + 1;
coPos.Y = Bar->Bottom;
FillConsoleOutputCharacterA(StdOutput,
0xC4, // '-',
Bar->Right - Bar->Left - 1,
coPos,
&Written);
/* draw lower right corner */
coPos.X = Bar->Right;
coPos.Y = Bar->Bottom;
FillConsoleOutputCharacterA(StdOutput,
0xD9, // '+',
1,
coPos,
&Written);
/* draw lower right corner */
coPos.X = Bar->Right;
coPos.Y = Bar->Bottom;
FillConsoleOutputCharacterA(StdOutput,
0xD9, // '+',
1,
coPos,
&Written);
}
static VOID
DrawThickBorder(PPROGRESSBAR Bar)
static
VOID
DrawThickBorder(
PPROGRESSBAR Bar)
{
COORD coPos;
DWORD Written;
SHORT i;
COORD coPos;
DWORD Written;
SHORT i;
/* draw upper left corner */
coPos.X = Bar->Left;
coPos.Y = Bar->Top + 1;
FillConsoleOutputCharacterA(StdOutput,
0xC9, // '+',
1,
coPos,
&Written);
/* draw upper left corner */
coPos.X = Bar->Left;
coPos.Y = Bar->Top + 1;
FillConsoleOutputCharacterA(StdOutput,
0xC9, // '+',
1,
coPos,
&Written);
/* draw upper edge */
coPos.X = Bar->Left + 1;
coPos.Y = Bar->Top + 1;
FillConsoleOutputCharacterA(StdOutput,
0xCD, // '-',
Bar->Right - Bar->Left - 1,
coPos,
&Written);
/* draw upper edge */
coPos.X = Bar->Left + 1;
coPos.Y = Bar->Top + 1;
FillConsoleOutputCharacterA(StdOutput,
0xCD, // '-',
Bar->Right - Bar->Left - 1,
coPos,
&Written);
/* draw upper right corner */
coPos.X = Bar->Right;
coPos.Y = Bar->Top + 1;
FillConsoleOutputCharacterA(StdOutput,
0xBB, // '+',
1,
coPos,
&Written);
/* draw upper right corner */
coPos.X = Bar->Right;
coPos.Y = Bar->Top + 1;
FillConsoleOutputCharacterA(StdOutput,
0xBB, // '+',
1,
coPos,
&Written);
/* draw left and right edge */
for (i = Bar->Top + 2; i < Bar->Bottom; i++)
/* draw left and right edge */
for (i = Bar->Top + 2; i < Bar->Bottom; i++)
{
coPos.X = Bar->Left;
coPos.Y = i;
FillConsoleOutputCharacterA(StdOutput,
0xBA, // '|',
1,
coPos,
&Written);
coPos.X = Bar->Left;
coPos.Y = i;
FillConsoleOutputCharacterA(StdOutput,
0xBA, // '|',
1,
coPos,
&Written);
coPos.X = Bar->Right;
FillConsoleOutputCharacterA(StdOutput,
0xBA, //'|',
1,
coPos,
&Written);
coPos.X = Bar->Right;
FillConsoleOutputCharacterA(StdOutput,
0xBA, //'|',
1,
coPos,
&Written);
}
/* draw lower left corner */
coPos.X = Bar->Left;
coPos.Y = Bar->Bottom;
FillConsoleOutputCharacterA(StdOutput,
0xC8, // '+',
1,
coPos,
&Written);
/* draw lower left corner */
coPos.X = Bar->Left;
coPos.Y = Bar->Bottom;
FillConsoleOutputCharacterA(StdOutput,
0xC8, // '+',
1,
coPos,
&Written);
/* draw lower edge */
coPos.X = Bar->Left + 1;
coPos.Y = Bar->Bottom;
FillConsoleOutputCharacterA(StdOutput,
0xCD, // '-',
Bar->Right - Bar->Left - 1,
coPos,
&Written);
/* draw lower edge */
coPos.X = Bar->Left + 1;
coPos.Y = Bar->Bottom;
FillConsoleOutputCharacterA(StdOutput,
0xCD, // '-',
Bar->Right - Bar->Left - 1,
coPos,
&Written);
/* draw lower right corner */
coPos.X = Bar->Right;
coPos.Y = Bar->Bottom;
FillConsoleOutputCharacterA(StdOutput,
0xBC, // '+',
1,
coPos,
&Written);
/* draw lower right corner */
coPos.X = Bar->Right;
coPos.Y = Bar->Bottom;
FillConsoleOutputCharacterA(StdOutput,
0xBC, // '+',
1,
coPos,
&Written);
}
static VOID
DrawProgressBar(PPROGRESSBAR Bar)
static
VOID
DrawProgressBar(
PPROGRESSBAR Bar)
{
CHAR TextBuffer[8];
COORD coPos;
DWORD Written;
PROGRESSBAR BarBorder = *Bar;
CHAR TextBuffer[8];
COORD coPos;
DWORD Written;
PROGRESSBAR BarBorder = *Bar;
/* Print percentage */
sprintf(TextBuffer, "%-3lu%%", Bar->Percent);
/* Print percentage */
sprintf(TextBuffer, "%-3lu%%", Bar->Percent);
coPos.X = Bar->Left + (Bar->Width - 2) / 2;
coPos.Y = Bar->Top;
WriteConsoleOutputCharacterA(StdOutput,
TextBuffer,
4,
coPos,
&Written);
coPos.X = Bar->Left + (Bar->Width - 2) / 2;
coPos.Y = Bar->Top;
WriteConsoleOutputCharacterA(StdOutput,
TextBuffer,
4,
coPos,
&Written);
/* Draw the progress bar border */
DrawBorder(Bar);
/* Draw the progress bar border */
DrawBorder(Bar);
/* Write Text Associated with Bar */
CONSOLE_SetTextXY(Bar->TextTop, Bar->TextRight, Bar->Text);
/* Write Text Associated with Bar */
CONSOLE_SetTextXY(Bar->TextTop, Bar->TextRight, Bar->Text);
/* Draw the progress bar "border" border */
if (Bar->Double)
{
BarBorder.Top -= 5;
BarBorder.Bottom += 2;
BarBorder.Right += 5;
BarBorder.Left -= 5;
DrawThickBorder(&BarBorder);
}
/* Draw the bar */
coPos.X = Bar->Left + 1;
for (coPos.Y = Bar->Top + 2; coPos.Y <= Bar->Bottom - 1; coPos.Y++)
/* Draw the progress bar "border" border */
if (Bar->Double)
{
FillConsoleOutputAttribute(StdOutput,
FOREGROUND_YELLOW | BACKGROUND_BLUE,
Bar->Width - 2,
coPos,
&Written);
FillConsoleOutputCharacterA(StdOutput,
' ',
Bar->Width - 2,
coPos,
&Written);
BarBorder.Top -= 5;
BarBorder.Bottom += 2;
BarBorder.Right += 5;
BarBorder.Left -= 5;
DrawThickBorder(&BarBorder);
}
}
/* Draw the bar */
coPos.X = Bar->Left + 1;
for (coPos.Y = Bar->Top + 2; coPos.Y <= Bar->Bottom - 1; coPos.Y++)
{
FillConsoleOutputAttribute(StdOutput,
FOREGROUND_YELLOW | BACKGROUND_BLUE,
Bar->Width - 2,
coPos,
&Written);
FillConsoleOutputCharacterA(StdOutput,
' ',
Bar->Width - 2,
coPos,
&Written);
}
}
PPROGRESSBAR
CreateProgressBar(SHORT Left,
SHORT Top,
SHORT Right,
SHORT Bottom,
SHORT TextTop,
SHORT TextRight,
IN BOOLEAN DoubleEdge,
char* Text)
CreateProgressBar(
SHORT Left,
SHORT Top,
SHORT Right,
SHORT Bottom,
SHORT TextTop,
SHORT TextRight,
IN BOOLEAN DoubleEdge,
CHAR *Text)
{
PPROGRESSBAR Bar;
PPROGRESSBAR Bar;
Bar = (PPROGRESSBAR)RtlAllocateHeap(ProcessHeap,
0,
sizeof(PROGRESSBAR));
if (Bar == NULL)
return(NULL);
Bar = (PPROGRESSBAR)RtlAllocateHeap(ProcessHeap,
0,
sizeof(PROGRESSBAR));
if (Bar == NULL)
return NULL;
Bar->Left = Left;
Bar->Top = Top;
Bar->Right = Right;
Bar->Bottom = Bottom;
Bar->TextTop = TextTop;
Bar->TextRight = TextRight;
Bar->Double = DoubleEdge;
Bar->Text = Text;
Bar->Left = Left;
Bar->Top = Top;
Bar->Right = Right;
Bar->Bottom = Bottom;
Bar->TextTop = TextTop;
Bar->TextRight = TextRight;
Bar->Double = DoubleEdge;
Bar->Text = Text;
Bar->Width = Bar->Right - Bar->Left + 1;
Bar->Width = Bar->Right - Bar->Left + 1;
Bar->Percent = 0;
Bar->Pos = 0;
Bar->Percent = 0;
Bar->Pos = 0;
Bar->StepCount = 0;
Bar->CurrentStep = 0;
Bar->StepCount = 0;
Bar->CurrentStep = 0;
DrawProgressBar(Bar);
DrawProgressBar(Bar);
return(Bar);
return Bar;
}
VOID
DestroyProgressBar(PPROGRESSBAR Bar)
DestroyProgressBar(
PPROGRESSBAR Bar)
{
RtlFreeHeap(ProcessHeap,
0,
Bar);
}
VOID
ProgressSetStepCount(PPROGRESSBAR Bar,
ULONG StepCount)
{
Bar->CurrentStep = 0;
Bar->StepCount = StepCount;
DrawProgressBar(Bar);
RtlFreeHeap(ProcessHeap, 0, Bar);
}
VOID
ProgressNextStep(PPROGRESSBAR Bar)
ProgressSetStepCount(
PPROGRESSBAR Bar,
ULONG StepCount)
{
ProgressSetStep(Bar, Bar->CurrentStep + 1);
Bar->CurrentStep = 0;
Bar->StepCount = StepCount;
DrawProgressBar(Bar);
}
VOID
ProgressSetStep (PPROGRESSBAR Bar,
ULONG Step)
ProgressNextStep(
PPROGRESSBAR Bar)
{
CHAR TextBuffer[8];
COORD coPos;
DWORD Written;
ULONG NewPercent;
ULONG NewPos;
ProgressSetStep(Bar, Bar->CurrentStep + 1);
}
if (Step > Bar->StepCount)
return;
Bar->CurrentStep = Step;
VOID
ProgressSetStep(
PPROGRESSBAR Bar,
ULONG Step)
{
CHAR TextBuffer[8];
COORD coPos;
DWORD Written;
ULONG NewPercent;
ULONG NewPos;
/* Calculate new percentage */
NewPercent = (ULONG)(((100.0 * (float)Bar->CurrentStep) / (float)Bar->StepCount) + 0.5);
if (Step > Bar->StepCount)
return;
/* Redraw precentage if changed */
if (Bar->Percent != NewPercent)
Bar->CurrentStep = Step;
/* Calculate new percentage */
NewPercent = (ULONG)(((100.0 * (float)Bar->CurrentStep) / (float)Bar->StepCount) + 0.5);
/* Redraw precentage if changed */
if (Bar->Percent != NewPercent)
{
Bar->Percent = NewPercent;
Bar->Percent = NewPercent;
sprintf(TextBuffer, "%-3lu%%", Bar->Percent);
sprintf(TextBuffer, "%-3lu%%", Bar->Percent);
coPos.X = Bar->Left + (Bar->Width - 2) / 2;
coPos.Y = Bar->Top;
WriteConsoleOutputCharacterA(StdOutput,
TextBuffer,
4,
coPos,
&Written);
coPos.X = Bar->Left + (Bar->Width - 2) / 2;
coPos.Y = Bar->Top;
WriteConsoleOutputCharacterA(StdOutput,
TextBuffer,
4,
coPos,
&Written);
}
/* Calculate bar position */
NewPos = (ULONG)((((float)(Bar->Width - 2) * 2.0 * (float)Bar->CurrentStep) / (float)Bar->StepCount) + 0.5);
/* Calculate bar position */
NewPos = (ULONG)((((float)(Bar->Width - 2) * 2.0 * (float)Bar->CurrentStep) / (float)Bar->StepCount) + 0.5);
/* Redraw bar if changed */
if (Bar->Pos != NewPos)
/* Redraw bar if changed */
if (Bar->Pos != NewPos)
{
Bar->Pos = NewPos;
Bar->Pos = NewPos;
for (coPos.Y = Bar->Top + 2; coPos.Y <= Bar->Bottom - 1; coPos.Y++)
{
coPos.X = Bar->Left + 1;
FillConsoleOutputCharacterA(StdOutput,
0xDB,
Bar->Pos / 2,
coPos,
&Written);
coPos.X += Bar->Pos/2;
for (coPos.Y = Bar->Top + 2; coPos.Y <= Bar->Bottom - 1; coPos.Y++)
{
coPos.X = Bar->Left + 1;
FillConsoleOutputCharacterA(StdOutput,
0xDB,
Bar->Pos / 2,
coPos,
&Written);
coPos.X += Bar->Pos/2;
if (NewPos & 1)
{
FillConsoleOutputCharacterA(StdOutput,
0xDD,
1,
coPos,
&Written);
coPos.X++;
}
if (NewPos & 1)
{
FillConsoleOutputCharacterA(StdOutput,
0xDD,
1,
coPos,
&Written);
coPos.X++;
}
if (coPos.X <= Bar->Right - 1)
{
FillConsoleOutputCharacterA(StdOutput,
' ',
Bar->Right - coPos.X,
coPos,
&Written);
}
}
if (coPos.X <= Bar->Right - 1)
{
FillConsoleOutputCharacterA(StdOutput,
' ',
Bar->Right - coPos.X,
coPos,
&Written);
}
}
}
}

View file

@ -28,49 +28,54 @@
typedef struct _PROGRESS
{
SHORT Left;
SHORT Top;
SHORT Right;
SHORT Bottom;
SHORT TextTop;
SHORT TextRight;
SHORT Left;
SHORT Top;
SHORT Right;
SHORT Bottom;
SHORT TextTop;
SHORT TextRight;
SHORT Width;
SHORT Width;
ULONG Percent;
SHORT Pos;
ULONG Percent;
SHORT Pos;
ULONG StepCount;
ULONG CurrentStep;
ULONG StepCount;
ULONG CurrentStep;
BOOLEAN Double;
CHAR *Text;
BOOLEAN Double;
CHAR *Text;
} PROGRESSBAR, *PPROGRESSBAR;
/* FUNCTIONS ****************************************************************/
PPROGRESSBAR
CreateProgressBar(SHORT Left,
SHORT Top,
SHORT Right,
SHORT Bottom,
SHORT TextTop,
SHORT TextRight,
BOOLEAN DoubleEdge,
char* Text);
CreateProgressBar(
SHORT Left,
SHORT Top,
SHORT Right,
SHORT Bottom,
SHORT TextTop,
SHORT TextRight,
BOOLEAN DoubleEdge,
CHAR *Text);
VOID
DestroyProgressBar(PPROGRESSBAR Bar);
DestroyProgressBar(
PPROGRESSBAR Bar);
VOID
ProgressSetStepCount(PPROGRESSBAR Bar,
ULONG StepCount);
ProgressSetStepCount(
PPROGRESSBAR Bar,
ULONG StepCount);
VOID
ProgressNextStep(PPROGRESSBAR Bar);
ProgressNextStep(
PPROGRESSBAR Bar);
VOID
ProgressSetStep (PPROGRESSBAR Bar,
ULONG Step);
ProgressSetStep(
PPROGRESSBAR Bar,
ULONG Step);
/* EOF */

View file

@ -63,47 +63,49 @@
typedef struct _REG_DISK_MOUNT_INFO
{
ULONG Signature;
LARGE_INTEGER StartingOffset;
ULONG Signature;
LARGE_INTEGER StartingOffset;
} REG_DISK_MOUNT_INFO, *PREG_DISK_MOUNT_INFO;
#include <poppack.h>
/* FUNCTIONS ****************************************************************/
static BOOLEAN
GetRootKey (PWCHAR Name)
static
BOOLEAN
GetRootKey(
PWCHAR Name)
{
if (!_wcsicmp (Name, L"HKCR"))
if (!_wcsicmp (Name, L"HKCR"))
{
wcscpy (Name, L"\\Registry\\Machine\\SOFTWARE\\Classes\\");
return TRUE;
wcscpy (Name, L"\\Registry\\Machine\\SOFTWARE\\Classes\\");
return TRUE;
}
if (!_wcsicmp (Name, L"HKCU"))
if (!_wcsicmp (Name, L"HKCU"))
{
wcscpy (Name, L"\\Registry\\User\\.DEFAULT\\");
return TRUE;
wcscpy (Name, L"\\Registry\\User\\.DEFAULT\\");
return TRUE;
}
if (!_wcsicmp (Name, L"HKLM"))
if (!_wcsicmp (Name, L"HKLM"))
{
wcscpy (Name, L"\\Registry\\Machine\\");
return TRUE;
wcscpy (Name, L"\\Registry\\Machine\\");
return TRUE;
}
if (!_wcsicmp (Name, L"HKU"))
if (!_wcsicmp (Name, L"HKU"))
{
wcscpy (Name, L"\\Registry\\User\\");
return TRUE;
wcscpy (Name, L"\\Registry\\User\\");
return TRUE;
}
#if 0
if (!_wcsicmp (Name, L"HKR"))
return FALSE;
if (!_wcsicmp (Name, L"HKR"))
return FALSE;
#endif
return FALSE;
return FALSE;
}
@ -500,7 +502,7 @@ CreateNestedKey (PHANDLE KeyHandle,
* Called once for each AddReg and DelReg entry in a given section.
*/
static BOOLEAN
registry_callback (HINF hInf, PCWSTR Section, BOOLEAN Delete)
registry_callback(HINF hInf, PCWSTR Section, BOOLEAN Delete)
{
OBJECT_ATTRIBUTES ObjectAttributes;
WCHAR Buffer[MAX_INF_STRING_LENGTH];
@ -624,148 +626,154 @@ registry_callback (HINF hInf, PCWSTR Section, BOOLEAN Delete)
BOOLEAN
ImportRegistryFile(PWSTR Filename,
PWSTR Section,
LCID LocaleId,
BOOLEAN Delete)
ImportRegistryFile(
PWSTR Filename,
PWSTR Section,
LCID LocaleId,
BOOLEAN Delete)
{
WCHAR FileNameBuffer[MAX_PATH];
HINF hInf;
UINT ErrorLine;
WCHAR FileNameBuffer[MAX_PATH];
HINF hInf;
UINT ErrorLine;
/* Load inf file from install media. */
wcscpy(FileNameBuffer, SourcePath.Buffer);
wcscat(FileNameBuffer, L"\\");
wcscat(FileNameBuffer, Filename);
/* Load inf file from install media. */
wcscpy(FileNameBuffer, SourcePath.Buffer);
wcscat(FileNameBuffer, L"\\");
wcscat(FileNameBuffer, Filename);
hInf = SetupOpenInfFileW(
FileNameBuffer,
NULL,
INF_STYLE_WIN4,
LocaleId,
&ErrorLine);
if (hInf == INVALID_HANDLE_VALUE)
hInf = SetupOpenInfFileW(FileNameBuffer,
NULL,
INF_STYLE_WIN4,
LocaleId,
&ErrorLine);
if (hInf == INVALID_HANDLE_VALUE)
{
DPRINT1("SetupOpenInfFile() failed\n");
return FALSE;
DPRINT1("SetupOpenInfFile() failed\n");
return FALSE;
}
if (!registry_callback (hInf, L"AddReg", FALSE))
if (!registry_callback(hInf, L"AddReg", FALSE))
{
DPRINT1("registry_callback() failed\n");
DPRINT1("registry_callback() failed\n");
}
if (!registry_callback (hInf, L"AddReg.NT" Architecture, FALSE))
if (!registry_callback(hInf, L"AddReg.NT" Architecture, FALSE))
{
DPRINT1("registry_callback() failed\n");
DPRINT1("registry_callback() failed\n");
}
InfCloseFile (hInf);
InfCloseFile(hInf);
return TRUE;
return TRUE;
}
BOOLEAN
SetInstallPathValue(PUNICODE_STRING InstallPath)
SetInstallPathValue(
PUNICODE_STRING InstallPath)
{
OBJECT_ATTRIBUTES ObjectAttributes;
UNICODE_STRING KeyName = RTL_CONSTANT_STRING(L"\\Registry\\Machine\\HARDWARE");
UNICODE_STRING ValueName = RTL_CONSTANT_STRING(L"InstallPath");
HANDLE KeyHandle;
NTSTATUS Status;
OBJECT_ATTRIBUTES ObjectAttributes;
UNICODE_STRING KeyName = RTL_CONSTANT_STRING(L"\\Registry\\Machine\\HARDWARE");
UNICODE_STRING ValueName = RTL_CONSTANT_STRING(L"InstallPath");
HANDLE KeyHandle;
NTSTATUS Status;
/* Create the 'secret' InstallPath key */
InitializeObjectAttributes (&ObjectAttributes,
&KeyName,
OBJ_CASE_INSENSITIVE,
NULL,
NULL);
Status = NtOpenKey (&KeyHandle,
KEY_ALL_ACCESS,
&ObjectAttributes);
if (!NT_SUCCESS(Status))
/* Create the 'secret' InstallPath key */
InitializeObjectAttributes(&ObjectAttributes,
&KeyName,
OBJ_CASE_INSENSITIVE,
NULL,
NULL);
Status = NtOpenKey(&KeyHandle,
KEY_ALL_ACCESS,
&ObjectAttributes);
if (!NT_SUCCESS(Status))
{
DPRINT1("NtOpenKey() failed (Status %lx)\n", Status);
return FALSE;
DPRINT1("NtOpenKey() failed (Status %lx)\n", Status);
return FALSE;
}
Status = NtSetValueKey (KeyHandle,
&ValueName,
0,
REG_SZ,
(PVOID)InstallPath->Buffer,
InstallPath->Length + sizeof(WCHAR));
NtClose(KeyHandle);
if (!NT_SUCCESS(Status))
{
DPRINT1("NtSetValueKey() failed (Status %lx)\n", Status);
return FALSE;
}
return TRUE;
}
BOOLEAN
SetMountedDeviceValue(CHAR Letter, ULONG Signature, LARGE_INTEGER StartingOffset)
{
OBJECT_ATTRIBUTES ObjectAttributes;
WCHAR ValueNameBuffer[16];
UNICODE_STRING KeyName = RTL_CONSTANT_STRING(L"\\Registry\\Machine\\SYSTEM\\MountedDevices");
UNICODE_STRING ValueName;
REG_DISK_MOUNT_INFO MountInfo;
NTSTATUS Status;
HANDLE KeyHandle;
swprintf(ValueNameBuffer, L"\\DosDevices\\%C:", Letter);
RtlInitUnicodeString(&ValueName, ValueNameBuffer);
InitializeObjectAttributes (&ObjectAttributes,
&KeyName,
OBJ_CASE_INSENSITIVE,
NULL,
NULL);
Status = NtOpenKey (&KeyHandle,
KEY_ALL_ACCESS,
&ObjectAttributes);
if (!NT_SUCCESS(Status))
{
Status = NtCreateKey(&KeyHandle,
KEY_ALL_ACCESS,
&ObjectAttributes,
Status = NtSetValueKey(KeyHandle,
&ValueName,
0,
NULL,
REG_OPTION_NON_VOLATILE,
NULL);
}
if (!NT_SUCCESS(Status))
REG_SZ,
(PVOID)InstallPath->Buffer,
InstallPath->Length + sizeof(WCHAR));
NtClose(KeyHandle);
if (!NT_SUCCESS(Status))
{
DPRINT1("NtCreateKey() failed (Status %lx)\n", Status);
return FALSE;
DPRINT1("NtSetValueKey() failed (Status %lx)\n", Status);
return FALSE;
}
MountInfo.Signature = Signature;
MountInfo.StartingOffset = StartingOffset;
Status = NtSetValueKey (KeyHandle,
&ValueName,
0,
REG_BINARY,
(PVOID)&MountInfo,
sizeof(MountInfo));
NtClose(KeyHandle);
if (!NT_SUCCESS(Status))
return TRUE;
}
BOOLEAN
SetMountedDeviceValue(
CHAR Letter,
ULONG Signature,
LARGE_INTEGER StartingOffset)
{
OBJECT_ATTRIBUTES ObjectAttributes;
WCHAR ValueNameBuffer[16];
UNICODE_STRING KeyName = RTL_CONSTANT_STRING(L"\\Registry\\Machine\\SYSTEM\\MountedDevices");
UNICODE_STRING ValueName;
REG_DISK_MOUNT_INFO MountInfo;
NTSTATUS Status;
HANDLE KeyHandle;
swprintf(ValueNameBuffer, L"\\DosDevices\\%C:", Letter);
RtlInitUnicodeString(&ValueName, ValueNameBuffer);
InitializeObjectAttributes(&ObjectAttributes,
&KeyName,
OBJ_CASE_INSENSITIVE,
NULL,
NULL);
Status = NtOpenKey(&KeyHandle,
KEY_ALL_ACCESS,
&ObjectAttributes);
if (!NT_SUCCESS(Status))
{
DPRINT1("NtSetValueKey() failed (Status %lx)\n", Status);
return FALSE;
Status = NtCreateKey(&KeyHandle,
KEY_ALL_ACCESS,
&ObjectAttributes,
0,
NULL,
REG_OPTION_NON_VOLATILE,
NULL);
}
return TRUE;
if (!NT_SUCCESS(Status))
{
DPRINT1("NtCreateKey() failed (Status %lx)\n", Status);
return FALSE;
}
MountInfo.Signature = Signature;
MountInfo.StartingOffset = StartingOffset;
Status = NtSetValueKey(KeyHandle,
&ValueName,
0,
REG_BINARY,
(PVOID)&MountInfo,
sizeof(MountInfo));
NtClose(KeyHandle);
if (!NT_SUCCESS(Status))
{
DPRINT1("NtSetValueKey() failed (Status %lx)\n", Status);
return FALSE;
}
return TRUE;
}
VOID
SetDefaultPagefile(WCHAR Drive)
SetDefaultPagefile(
WCHAR Drive)
{
OBJECT_ATTRIBUTES ObjectAttributes;
UNICODE_STRING KeyName = RTL_CONSTANT_STRING(L"\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Memory Management");

View file

@ -27,18 +27,24 @@
#pragma once
BOOLEAN
ImportRegistryFile(PWSTR Filename,
PWSTR Section,
LCID LocaleId,
BOOLEAN Delete);
ImportRegistryFile(
PWSTR Filename,
PWSTR Section,
LCID LocaleId,
BOOLEAN Delete);
BOOLEAN
SetInstallPathValue(PUNICODE_STRING InstallPath);
SetInstallPathValue(
PUNICODE_STRING InstallPath);
BOOLEAN
SetMountedDeviceValue(CHAR Letter, ULONG Signature, LARGE_INTEGER StartingOffset);
SetMountedDeviceValue(
CHAR Letter,
ULONG Signature,
LARGE_INTEGER StartingOffset);
VOID
SetDefaultPagefile(WCHAR Drive);
SetDefaultPagefile(
WCHAR Drive);
/* EOF */

View file

@ -31,34 +31,45 @@
#define NDEBUG
#include <debug.h>
/* GLOBALS ******************************************************************/
ULONG DefaultLanguageIndex = 0;
/* FUNCTIONS ****************************************************************/
static BOOLEAN
static
BOOLEAN
IsAcpiComputer(VOID)
{
UNICODE_STRING MultiKeyPathU = RTL_CONSTANT_STRING(L"\\Registry\\Machine\\HARDWARE\\DESCRIPTION\\System\\MultifunctionAdapter");
UNICODE_STRING IdentifierU = RTL_CONSTANT_STRING(L"Identifier");
UNICODE_STRING AcpiBiosIdentifier = RTL_CONSTANT_STRING(L"ACPI BIOS");
OBJECT_ATTRIBUTES ObjectAttributes;
PKEY_BASIC_INFORMATION pDeviceInformation = NULL;
ULONG DeviceInfoLength = sizeof(KEY_BASIC_INFORMATION) + 50 * sizeof(WCHAR);
PKEY_VALUE_PARTIAL_INFORMATION pValueInformation = NULL;
ULONG ValueInfoLength = sizeof(KEY_VALUE_PARTIAL_INFORMATION) + 50 * sizeof(WCHAR);
ULONG RequiredSize;
ULONG IndexDevice = 0;
UNICODE_STRING DeviceName, ValueName;
HANDLE hDevicesKey = NULL;
HANDLE hDeviceKey = NULL;
NTSTATUS Status;
BOOLEAN ret = FALSE;
UNICODE_STRING MultiKeyPathU = RTL_CONSTANT_STRING(L"\\Registry\\Machine\\HARDWARE\\DESCRIPTION\\System\\MultifunctionAdapter");
UNICODE_STRING IdentifierU = RTL_CONSTANT_STRING(L"Identifier");
UNICODE_STRING AcpiBiosIdentifier = RTL_CONSTANT_STRING(L"ACPI BIOS");
OBJECT_ATTRIBUTES ObjectAttributes;
PKEY_BASIC_INFORMATION pDeviceInformation = NULL;
ULONG DeviceInfoLength = sizeof(KEY_BASIC_INFORMATION) + 50 * sizeof(WCHAR);
PKEY_VALUE_PARTIAL_INFORMATION pValueInformation = NULL;
ULONG ValueInfoLength = sizeof(KEY_VALUE_PARTIAL_INFORMATION) + 50 * sizeof(WCHAR);
ULONG RequiredSize;
ULONG IndexDevice = 0;
UNICODE_STRING DeviceName, ValueName;
HANDLE hDevicesKey = NULL;
HANDLE hDeviceKey = NULL;
NTSTATUS Status;
BOOLEAN ret = FALSE;
InitializeObjectAttributes(&ObjectAttributes, &MultiKeyPathU, OBJ_CASE_INSENSITIVE, NULL, NULL);
Status = NtOpenKey(&hDevicesKey, KEY_ENUMERATE_SUB_KEYS, &ObjectAttributes);
if (!NT_SUCCESS(Status))
{
DPRINT("NtOpenKey() failed with status 0x%08lx\n", Status);
goto cleanup;
}
InitializeObjectAttributes(&ObjectAttributes,
&MultiKeyPathU,
OBJ_CASE_INSENSITIVE,
NULL,
NULL);
Status = NtOpenKey(&hDevicesKey,
KEY_ENUMERATE_SUB_KEYS,
&ObjectAttributes);
if (!NT_SUCCESS(Status))
{
DPRINT("NtOpenKey() failed with status 0x%08lx\n", Status);
goto cleanup;
}
pDeviceInformation = RtlAllocateHeap(RtlGetProcessHeap(), 0, DeviceInfoLength);
if (!pDeviceInformation)
@ -170,9 +181,11 @@ cleanup:
}
static BOOLEAN
GetComputerIdentifier(PWSTR Identifier,
ULONG IdentifierLength)
static
BOOLEAN
GetComputerIdentifier(
PWSTR Identifier,
ULONG IdentifierLength)
{
OBJECT_ATTRIBUTES ObjectAttributes;
UNICODE_STRING KeyName;
@ -212,14 +225,12 @@ GetComputerIdentifier(PWSTR Identifier,
}
/* Get number of subkeys */
Status = NtQueryKey(
ProcessorsKey,
KeyFullInformation,
pFullInfo,
Size,
&Size);
Status = NtQueryKey(ProcessorsKey,
KeyFullInformation,
pFullInfo,
Size,
&Size);
NtClose(ProcessorsKey);
if (!NT_SUCCESS(Status) && Status != STATUS_BUFFER_OVERFLOW)
{
DPRINT("NtQueryKey() failed (Status 0x%lx)\n", Status);
@ -276,7 +287,8 @@ GetComputerIdentifier(PWSTR Identifier,
PGENERIC_LIST
CreateComputerTypeList(HINF InfFile)
CreateComputerTypeList(
HINF InfFile)
{
CHAR Buffer[128];
PGENERIC_LIST List;
@ -364,8 +376,10 @@ CreateComputerTypeList(HINF InfFile)
}
static BOOLEAN
GetDisplayIdentifier(PWSTR Identifier,
static
BOOLEAN
GetDisplayIdentifier(
PWSTR Identifier,
ULONG IdentifierLength)
{
OBJECT_ATTRIBUTES ObjectAttributes;
@ -530,7 +544,8 @@ GetDisplayIdentifier(PWSTR Identifier,
PGENERIC_LIST
CreateDisplayDriverList(HINF InfFile)
CreateDisplayDriverList(
HINF InfFile)
{
CHAR Buffer[128];
PGENERIC_LIST List;
@ -630,8 +645,12 @@ CreateDisplayDriverList(HINF InfFile)
return List;
}
BOOLEAN
ProcessComputerFiles(HINF InfFile, PGENERIC_LIST List, PWCHAR* AdditionalSectionName)
ProcessComputerFiles(
HINF InfFile,
PGENERIC_LIST List,
PWCHAR *AdditionalSectionName)
{
PGENERIC_LIST_ENTRY Entry;
static WCHAR SectionName[128];
@ -654,7 +673,9 @@ ProcessComputerFiles(HINF InfFile, PGENERIC_LIST List, PWCHAR* AdditionalSection
BOOLEAN
ProcessDisplayRegistry(HINF InfFile, PGENERIC_LIST List)
ProcessDisplayRegistry(
HINF InfFile,
PGENERIC_LIST List)
{
PGENERIC_LIST_ENTRY Entry;
INFCONTEXT Context;
@ -692,12 +713,11 @@ ProcessDisplayRegistry(HINF InfFile, PGENERIC_LIST List)
StartValue = 1;
Status = RtlWriteRegistryValue(RTL_REGISTRY_SERVICES,
ServiceName,
L"Start",
REG_DWORD,
&StartValue,
sizeof(ULONG));
ServiceName,
L"Start",
REG_DWORD,
&StartValue,
sizeof(ULONG));
if (!NT_SUCCESS(Status))
{
DPRINT("RtlWriteRegistryValue() failed (Status %lx)\n", Status);
@ -715,11 +735,11 @@ ProcessDisplayRegistry(HINF InfFile, PGENERIC_LIST List)
Width = wcstoul(Buffer, NULL, 10);
Status = RtlWriteRegistryValue(RTL_REGISTRY_ABSOLUTE,
RegPath,
L"DefaultSettings.XResolution",
REG_DWORD,
&Width,
sizeof(ULONG));
RegPath,
L"DefaultSettings.XResolution",
REG_DWORD,
&Width,
sizeof(ULONG));
if (!NT_SUCCESS(Status))
{
DPRINT("RtlWriteRegistryValue() failed (Status %lx)\n", Status);
@ -734,11 +754,11 @@ ProcessDisplayRegistry(HINF InfFile, PGENERIC_LIST List)
Height = wcstoul(Buffer, 0, 0);
Status = RtlWriteRegistryValue(RTL_REGISTRY_ABSOLUTE,
RegPath,
L"DefaultSettings.YResolution",
REG_DWORD,
&Height,
sizeof(ULONG));
RegPath,
L"DefaultSettings.YResolution",
REG_DWORD,
&Height,
sizeof(ULONG));
if (!NT_SUCCESS(Status))
{
DPRINT("RtlWriteRegistryValue() failed (Status %lx)\n", Status);
@ -753,11 +773,11 @@ ProcessDisplayRegistry(HINF InfFile, PGENERIC_LIST List)
Bpp = wcstoul(Buffer, 0, 0);
Status = RtlWriteRegistryValue(RTL_REGISTRY_ABSOLUTE,
RegPath,
L"DefaultSettings.BitsPerPel",
REG_DWORD,
&Bpp,
sizeof(ULONG));
RegPath,
L"DefaultSettings.BitsPerPel",
REG_DWORD,
&Bpp,
sizeof(ULONG));
if (!NT_SUCCESS(Status))
{
DPRINT("RtlWriteRegistryValue() failed (Status %lx)\n", Status);
@ -771,7 +791,8 @@ ProcessDisplayRegistry(HINF InfFile, PGENERIC_LIST List)
BOOLEAN
ProcessLocaleRegistry(PGENERIC_LIST List)
ProcessLocaleRegistry(
PGENERIC_LIST List)
{
PGENERIC_LIST_ENTRY Entry;
PWCHAR LanguageId;
@ -807,7 +828,6 @@ ProcessLocaleRegistry(PGENERIC_LIST List)
Status = NtOpenKey(&KeyHandle,
KEY_SET_VALUE,
&ObjectAttributes);
if (!NT_SUCCESS(Status))
{
DPRINT1("NtOpenKey() failed (Status %lx)\n", Status);
@ -851,7 +871,8 @@ ProcessLocaleRegistry(PGENERIC_LIST List)
PGENERIC_LIST
CreateKeyboardDriverList(HINF InfFile)
CreateKeyboardDriverList(
HINF InfFile)
{
CHAR Buffer[128];
PGENERIC_LIST List;
@ -879,9 +900,9 @@ CreateKeyboardDriverList(HINF InfFile)
break;
}
UserData = (WCHAR*) RtlAllocateHeap(ProcessHeap,
0,
(wcslen(KeyName) + 1) * sizeof(WCHAR));
UserData = (WCHAR*)RtlAllocateHeap(ProcessHeap,
0,
(wcslen(KeyName) + 1) * sizeof(WCHAR));
if (UserData == NULL)
{
/* FIXME: Handle error! */
@ -896,7 +917,6 @@ CreateKeyboardDriverList(HINF InfFile)
return List;
}
ULONG DefaultLanguageIndex = 0;
ULONG
GetDefaultLanguageIndex(VOID)
@ -904,8 +924,11 @@ GetDefaultLanguageIndex(VOID)
return DefaultLanguageIndex;
}
PGENERIC_LIST
CreateLanguageList(HINF InfFile, WCHAR * DefaultLanguage)
CreateLanguageList(
HINF InfFile,
WCHAR *DefaultLanguage)
{
CHAR Buffer[128];
PGENERIC_LIST List;
@ -980,8 +1003,11 @@ CreateLanguageList(HINF InfFile, WCHAR * DefaultLanguage)
return List;
}
PGENERIC_LIST
CreateKeyboardLayoutList(HINF InfFile, WCHAR * DefaultKBLayout)
CreateKeyboardLayoutList(
HINF InfFile,
WCHAR *DefaultKBLayout)
{
CHAR Buffer[128];
PGENERIC_LIST List;
@ -1028,10 +1054,9 @@ CreateKeyboardLayoutList(HINF InfFile, WCHAR * DefaultKBLayout)
if (_wcsicmp(LayoutsList[uIndex].LayoutID, KeyName) == 0)
{
UserData = (WCHAR*) RtlAllocateHeap(ProcessHeap,
0,
(wcslen(KeyName) + 1) * sizeof(WCHAR));
UserData = (WCHAR*)RtlAllocateHeap(ProcessHeap,
0,
(wcslen(KeyName) + 1) * sizeof(WCHAR));
if (UserData == NULL)
{
/* FIXME: Handle error! */
@ -1067,8 +1092,10 @@ CreateKeyboardLayoutList(HINF InfFile, WCHAR * DefaultKBLayout)
return List;
}
BOOLEAN
ProcessKeyboardLayoutRegistry(PGENERIC_LIST List)
ProcessKeyboardLayoutRegistry(
PGENERIC_LIST List)
{
PGENERIC_LIST_ENTRY Entry;
PWCHAR LayoutId;
@ -1117,14 +1144,17 @@ ProcessKeyboardLayoutRegistry(PGENERIC_LIST List)
#if 0
BOOLEAN
ProcessKeyboardLayoutFiles(PGENERIC_LIST List)
ProcessKeyboardLayoutFiles(
PGENERIC_LIST List)
{
return TRUE;
}
#endif
BOOLEAN
SetGeoID(PWCHAR Id)
SetGeoID(
PWCHAR Id)
{
OBJECT_ATTRIBUTES ObjectAttributes;
UNICODE_STRING KeyName;
@ -1133,6 +1163,7 @@ SetGeoID(PWCHAR Id)
WCHAR szKeyName[] = L"\\Registry\\User\\.DEFAULT\\Control Panel\\International\\Geo";
WCHAR szValueName[] = L"Nation";
NTSTATUS Status;
RtlInitUnicodeString(&KeyName,
szKeyName);
InitializeObjectAttributes(&ObjectAttributes,
@ -1143,24 +1174,25 @@ SetGeoID(PWCHAR Id)
Status = NtOpenKey(&KeyHandle,
KEY_SET_VALUE,
&ObjectAttributes);
&ObjectAttributes);
if(!NT_SUCCESS(Status))
{
DPRINT1("NtOpenKey() failed (Status %lx)\n", Status);
return FALSE;
}
RtlInitUnicodeString(&ValueName, szValueName);
Status = NtSetValueKey(KeyHandle,
&ValueName,
0,
REG_SZ,
(PVOID)Id,
(wcslen(Id) + 1) * sizeof(WCHAR));
&ValueName,
0,
REG_SZ,
(PVOID)Id,
(wcslen(Id) + 1) * sizeof(WCHAR));
NtClose(KeyHandle);
if (!NT_SUCCESS(Status))
{
DPRINT1("NtSetValueKey() failed (Status = %lx)\n", Status);
return FALSE;
DPRINT1("NtSetValueKey() failed (Status = %lx)\n", Status);
return FALSE;
}
return TRUE;

View file

@ -27,42 +27,55 @@
#pragma once
PGENERIC_LIST
CreateComputerTypeList(HINF InfFile);
CreateComputerTypeList(
HINF InfFile);
PGENERIC_LIST
CreateDisplayDriverList(HINF InfFile);
CreateDisplayDriverList(
HINF InfFile);
BOOLEAN
ProcessComputerFiles(HINF InfFile,
PGENERIC_LIST List,
PWCHAR* AdditionalSectionName);
ProcessComputerFiles(
HINF InfFile,
PGENERIC_LIST List,
PWCHAR *AdditionalSectionName);
BOOLEAN
ProcessDisplayRegistry(HINF InfFile,
PGENERIC_LIST List);
ProcessDisplayRegistry(
HINF InfFile,
PGENERIC_LIST List);
PGENERIC_LIST
CreateKeyboardDriverList(HINF InfFile);
CreateKeyboardDriverList(
HINF InfFile);
PGENERIC_LIST
CreateKeyboardLayoutList(HINF InfFile, WCHAR *DefaultKBLayout);
CreateKeyboardLayoutList(
HINF InfFile,
WCHAR *DefaultKBLayout);
PGENERIC_LIST
CreateLanguageList(HINF InfFile, WCHAR * DefaultLanguage);
PGENERIC_LIST
CreateLanguageList(
HINF InfFile,
WCHAR *DefaultLanguage);
ULONG
GetDefaultLanguageIndex(VOID);
BOOLEAN
ProcessLocaleRegistry(PGENERIC_LIST List);
ProcessLocaleRegistry(
PGENERIC_LIST List);
BOOLEAN
ProcessKeyboardLayoutRegistry(PGENERIC_LIST List);
ProcessKeyboardLayoutRegistry(
PGENERIC_LIST List);
BOOLEAN
ProcessKeyboardLayoutFiles(PGENERIC_LIST List);
ProcessKeyboardLayoutFiles(
PGENERIC_LIST List);
BOOLEAN
SetGeoID(PWCHAR Id);
SetGeoID(
PWCHAR Id);
/* EOF */

View file

@ -113,43 +113,43 @@ extern BOOLEAN InfGetStringField(PINFCONTEXT Context,
#define _PAGE_NUMBER_DEFINED
typedef enum _PAGE_NUMBER
{
START_PAGE,
LANGUAGE_PAGE,
INTRO_PAGE,
LICENSE_PAGE,
INSTALL_INTRO_PAGE,
START_PAGE,
LANGUAGE_PAGE,
INTRO_PAGE,
LICENSE_PAGE,
INSTALL_INTRO_PAGE,
// SCSI_CONTROLLER_PAGE,
// SCSI_CONTROLLER_PAGE,
DEVICE_SETTINGS_PAGE,
COMPUTER_SETTINGS_PAGE,
DISPLAY_SETTINGS_PAGE,
KEYBOARD_SETTINGS_PAGE,
LAYOUT_SETTINGS_PAGE,
DEVICE_SETTINGS_PAGE,
COMPUTER_SETTINGS_PAGE,
DISPLAY_SETTINGS_PAGE,
KEYBOARD_SETTINGS_PAGE,
LAYOUT_SETTINGS_PAGE,
SELECT_PARTITION_PAGE,
CREATE_PARTITION_PAGE,
DELETE_PARTITION_PAGE,
SELECT_PARTITION_PAGE,
CREATE_PARTITION_PAGE,
DELETE_PARTITION_PAGE,
SELECT_FILE_SYSTEM_PAGE,
FORMAT_PARTITION_PAGE,
CHECK_FILE_SYSTEM_PAGE,
SELECT_FILE_SYSTEM_PAGE,
FORMAT_PARTITION_PAGE,
CHECK_FILE_SYSTEM_PAGE,
PREPARE_COPY_PAGE,
INSTALL_DIRECTORY_PAGE,
FILE_COPY_PAGE,
REGISTRY_PAGE,
BOOT_LOADER_PAGE,
BOOT_LOADER_FLOPPY_PAGE,
BOOT_LOADER_HARDDISK_MBR_PAGE,
BOOT_LOADER_HARDDISK_VBR_PAGE,
PREPARE_COPY_PAGE,
INSTALL_DIRECTORY_PAGE,
FILE_COPY_PAGE,
REGISTRY_PAGE,
BOOT_LOADER_PAGE,
BOOT_LOADER_FLOPPY_PAGE,
BOOT_LOADER_HARDDISK_MBR_PAGE,
BOOT_LOADER_HARDDISK_VBR_PAGE,
REPAIR_INTRO_PAGE,
REPAIR_INTRO_PAGE,
SUCCESS_PAGE,
QUIT_PAGE,
FLUSH_PAGE,
REBOOT_PAGE, /* virtual page */
SUCCESS_PAGE,
QUIT_PAGE,
FLUSH_PAGE,
REBOOT_PAGE, /* virtual page */
} PAGE_NUMBER, *PPAGE_NUMBER;
#endif