1 #pragma once 2 3 typedef struct 4 { 5 BYTE X; 6 BYTE Y; 7 LPCSTR Buffer; 8 DWORD Flags; 9 }MUI_ENTRY, *PMUI_ENTRY; 10 11 typedef struct 12 { 13 LPCSTR ErrorText; 14 LPCSTR ErrorStatus; 15 }MUI_ERROR; 16 17 typedef struct 18 { 19 LONG Number; 20 MUI_ENTRY * MuiEntry; 21 } MUI_PAGE; 22 23 typedef struct 24 { 25 LONG Number; 26 LPSTR String; 27 } MUI_STRING; 28 29 typedef struct 30 { 31 PWCHAR FontName; 32 PWCHAR SubFontName; 33 } MUI_SUBFONT; 34 35 typedef struct 36 { 37 PWCHAR LangID; // Language ID (like "0409") 38 PWCHAR LayoutID; // Layout ID (like "00000409") 39 } MUI_LAYOUTS; 40 41 typedef struct 42 { 43 PWCHAR LanguageID; 44 PWCHAR ACPage; 45 PWCHAR OEMCPage; 46 PWCHAR MACCPage; 47 PWCHAR LanguageDescriptor; 48 PWCHAR GeoID; 49 const MUI_PAGE * MuiPages; 50 const MUI_ERROR * MuiErrors; 51 const MUI_STRING * MuiStrings; 52 const MUI_SUBFONT * MuiSubFonts; 53 const MUI_LAYOUTS * MuiLayouts; 54 } MUI_LANGUAGE; 55 56 BOOLEAN 57 IsLanguageAvailable( 58 PWCHAR LanguageId); 59 60 VOID 61 MUIDisplayPage( 62 ULONG PageNumber); 63 64 VOID 65 MUIClearPage( 66 ULONG PageNumber); 67 68 VOID 69 MUIDisplayError( 70 ULONG ErrorNum, 71 PINPUT_RECORD Ir, 72 ULONG WaitEvent, 73 ...); 74 75 LPCWSTR 76 MUIDefaultKeyboardLayout(VOID); 77 78 PWCHAR 79 MUIGetGeoID(VOID); 80 81 const MUI_LAYOUTS * 82 MUIGetLayoutsList(VOID); 83 84 BOOLEAN 85 AddKbLayoutsToRegistry( 86 IN const MUI_LAYOUTS *MuiLayouts); 87 88 BOOLEAN 89 AddCodePage(VOID); 90 91 BOOLEAN 92 AddKeyboardLayouts(VOID); 93 94 VOID 95 SetConsoleCodePage(VOID); 96 97 LPSTR 98 MUIGetString( 99 ULONG Number); 100 101 #define STRING_PLEASEWAIT 1 102 #define STRING_INSTALLCREATEPARTITION 2 103 #define STRING_INSTALLCREATELOGICAL 60 104 #define STRING_INSTALLDELETEPARTITION 3 105 #define STRING_DELETEPARTITION 59 106 #define STRING_PARTITIONSIZE 4 107 #define STRING_CHOOSENEWPARTITION 5 108 #define STRING_CHOOSE_NEW_EXTENDED_PARTITION 57 109 #define STRING_CHOOSE_NEW_LOGICAL_PARTITION 61 110 #define STRING_HDDSIZE 6 111 #define STRING_CREATEPARTITION 7 112 #define STRING_PARTFORMAT 8 113 #define STRING_NONFORMATTEDPART 9 114 #define STRING_NONFORMATTEDSYSTEMPART 62 115 #define STRING_NONFORMATTEDOTHERPART 63 116 #define STRING_INSTALLONPART 10 117 #define STRING_CHECKINGPART 11 118 #define STRING_CONTINUE 12 119 #define STRING_QUITCONTINUE 13 120 #define STRING_REBOOTCOMPUTER 14 121 #define STRING_TXTSETUPFAILED 15 122 #define STRING_COPYING 16 123 #define STRING_SETUPCOPYINGFILES 17 124 #define STRING_REGHIVEUPDATE 20 125 #define STRING_IMPORTFILE 21 126 #define STRING_DISPLAYETTINGSUPDATE 22 127 #define STRING_LOCALESETTINGSUPDATE 23 128 #define STRING_KEYBOARDSETTINGSUPDATE 24 129 #define STRING_CODEPAGEINFOUPDATE 25 130 #define STRING_DONE 26 131 #define STRING_REBOOTCOMPUTER2 27 132 #define STRING_CONSOLEFAIL1 28 133 #define STRING_CONSOLEFAIL2 29 134 #define STRING_CONSOLEFAIL3 30 135 #define STRING_FORMATTINGDISK 31 136 #define STRING_CHECKINGDISK 32 137 #define STRING_FORMATDISK1 33 138 #define STRING_FORMATDISK2 34 139 #define STRING_KEEPFORMAT 35 140 #define STRING_HDINFOPARTCREATE 36 141 #define STRING_HDDINFOUNK1 37 142 #define STRING_HDDINFOUNK2 38 143 #define STRING_HDINFOPARTDELETE 39 144 #define STRING_HDDINFOUNK3 40 145 #define STRING_HDINFOPARTZEROED 41 146 #define STRING_HDDINFOUNK4 42 147 #define STRING_HDINFOPARTEXISTS 43 148 #define STRING_HDDINFOUNK5 44 149 #define STRING_HDINFOPARTSELECT 45 150 #define STRING_HDDINFOUNK6 46 151 #define STRING_NEWPARTITION 47 152 #define STRING_UNPSPACE 48 153 #define STRING_MAXSIZE 49 154 #define STRING_UNFORMATTED 50 155 #define STRING_EXTENDED_PARTITION 58 156 #define STRING_FORMATUNUSED 51 157 #define STRING_FORMATUNKNOWN 52 158 #define STRING_KB 53 159 #define STRING_MB 54 160 #define STRING_GB 55 161 #define STRING_ADDKBLAYOUTS 56 162 #define STRING_REBOOTPROGRESSBAR 64 163