ReactOS  0.4.14-dev-98-gb0d4763
mui.c File Reference
#include "usetup.h"
#include "muilanguages.h"
#include <debug.h>
Include dependency graph for mui.c:

Go to the source code of this file.

Macros

#define NDEBUG
 

Functions

static ULONG FindLanguageIndex (VOID)
 
static const MUI_ENTRYFindMUIEntriesOfPage (IN ULONG PageNumber)
 
static const MUI_ERRORFindMUIErrorEntries (VOID)
 
static const MUI_STRINGFindMUIStringEntries (VOID)
 
VOID MUIClearPage (IN ULONG page)
 
VOID MUIDisplayPage (IN ULONG page)
 
VOID MUIDisplayErrorV (IN ULONG ErrorNum, OUT PINPUT_RECORD Ir, IN ULONG WaitEvent, IN va_list args)
 
VOID __cdecl MUIDisplayError (IN ULONG ErrorNum, OUT PINPUT_RECORD Ir, IN ULONG WaitEvent,...)
 
LPSTR MUIGetString (ULONG Number)
 
VOID SetConsoleCodePage (VOID)
 

Macro Definition Documentation

◆ NDEBUG

#define NDEBUG

Definition at line 30 of file mui.c.

Function Documentation

◆ FindLanguageIndex()

static ULONG FindLanguageIndex ( VOID  )
static

Definition at line 35 of file mui.c.

36 {
37  ULONG lngIndex = 0;
38 
39  if (SelectedLanguageId == NULL)
40  {
41  /* Default to en-US */
42  return 0; // FIXME!!
43  // SelectedLanguageId = L"00000409";
44  }
45 
46  while (ResourceList[lngIndex].MuiPages != NULL)
47  {
48  if (_wcsicmp(ResourceList[lngIndex].LanguageID, SelectedLanguageId) == 0)
49  {
50  return lngIndex;
51  }
52 
53  lngIndex++;
54  }
55 
56  return 0;
57 }
const MUI_LANGUAGE_RESOURCE ResourceList[]
Definition: muilanguages.h:414
smooth NULL
Definition: ftsmooth.c:416
PCWSTR SelectedLanguageId
Definition: usetup.c:66
unsigned int ULONG
Definition: retypes.h:1
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)

Referenced by FindMUIEntriesOfPage(), FindMUIErrorEntries(), FindMUIStringEntries(), and MUIGetString().

◆ FindMUIEntriesOfPage()

static const MUI_ENTRY* FindMUIEntriesOfPage ( IN ULONG  PageNumber)
static

Definition at line 82 of file mui.c.

84 {
85  ULONG muiIndex = 0;
86  ULONG lngIndex;
87  const MUI_PAGE * Pages = NULL;
88 
89  lngIndex = max(FindLanguageIndex(), 0);
90  Pages = ResourceList[lngIndex].MuiPages;
91 
92  while (Pages[muiIndex].MuiEntry != NULL)
93  {
94  if (Pages[muiIndex].Number == PageNumber)
95  return Pages[muiIndex].MuiEntry;
96 
97  muiIndex++;
98  }
99 
100  return NULL;
101 }
#define max(a, b)
Definition: svc.c:63
Definition: mui.h:17
const MUI_LANGUAGE_RESOURCE ResourceList[]
Definition: muilanguages.h:414
const MUI_PAGE * MuiPages
Definition: mui.h:33
smooth NULL
Definition: ftsmooth.c:416
_In_opt_ PENTER_STATE_SYSTEM_HANDLER _In_opt_ PVOID _In_ LONG _In_opt_ LONG volatile * Number
Definition: ntpoapi.h:204
static ULONG FindLanguageIndex(VOID)
Definition: mui.c:35
unsigned int ULONG
Definition: retypes.h:1
MUI_ENTRY * MuiEntry
Definition: mui.h:20

Referenced by MUIClearPage(), and MUIDisplayPage().

◆ FindMUIErrorEntries()

static const MUI_ERROR* FindMUIErrorEntries ( VOID  )
static

Definition at line 105 of file mui.c.

106 {
107  ULONG lngIndex = max(FindLanguageIndex(), 0);
108  return ResourceList[lngIndex].MuiErrors;
109 }
#define max(a, b)
Definition: svc.c:63
const MUI_ERROR * MuiErrors
Definition: mui.h:34
const MUI_LANGUAGE_RESOURCE ResourceList[]
Definition: muilanguages.h:414
static ULONG FindLanguageIndex(VOID)
Definition: mui.c:35
unsigned int ULONG
Definition: retypes.h:1

Referenced by MUIDisplayErrorV().

◆ FindMUIStringEntries()

static const MUI_STRING* FindMUIStringEntries ( VOID  )
static

Definition at line 113 of file mui.c.

114 {
115  ULONG lngIndex = max(FindLanguageIndex(), 0);
116  return ResourceList[lngIndex].MuiStrings;
117 }
#define max(a, b)
Definition: svc.c:63
const MUI_LANGUAGE_RESOURCE ResourceList[]
Definition: muilanguages.h:414
const MUI_STRING * MuiStrings
Definition: mui.h:35
static ULONG FindLanguageIndex(VOID)
Definition: mui.c:35
unsigned int ULONG
Definition: retypes.h:1

Referenced by MUIGetString().

◆ MUIClearPage()

VOID MUIClearPage ( IN ULONG  page)

Definition at line 121 of file mui.c.

123 {
124  const MUI_ENTRY * entry;
125  ULONG index;
126 
128  if (!entry)
129  {
130  PopupError("Error: Failed to find translated page",
131  NULL,
132  NULL,
134  return;
135  }
136 
137  index = 0;
138  while (entry[index].Buffer != NULL)
139  {
141  entry[index].Y,
142  entry[index].Flags,
144  index++;
145  }
146 }
#define POPUP_WAIT_NONE
Definition: usetup.h:124
#define Y(I)
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
VOID PopupError(PCCH Text, PCCH Status, PINPUT_RECORD Ir, ULONG WaitEvent)
Definition: usetup.c:203
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
smooth NULL
Definition: ftsmooth.c:416
Definition: module.h:566
Definition: bufpool.h:45
GLuint index
Definition: glext.h:6031
#define index(s, c)
Definition: various.h:29
uint32_t entry
Definition: isohybrid.c:63
Definition: mui.h:3
unsigned int ULONG
Definition: retypes.h:1
VOID CONSOLE_ClearStyledText(IN SHORT x, IN SHORT y, IN INT Flags, IN SHORT Length)
Definition: consup.c:755
static const MUI_ENTRY * FindMUIEntriesOfPage(IN ULONG PageNumber)
Definition: mui.c:82

Referenced by LanguagePage().

◆ MUIDisplayError()

VOID __cdecl MUIDisplayError ( IN ULONG  ErrorNum,
OUT PINPUT_RECORD  Ir,
IN ULONG  WaitEvent,
  ... 
)

Definition at line 216 of file mui.c.

221 {
222  va_list arg_ptr;
223 
224  va_start(arg_ptr, WaitEvent);
225  MUIDisplayErrorV(ErrorNum, Ir, WaitEvent, arg_ptr);
226  va_end(arg_ptr);
227 }
#define va_end(ap)
Definition: acmsvcex.h:90
char * va_list
Definition: acmsvcex.h:78
#define va_start(ap, A)
Definition: acmsvcex.h:91
VOID MUIDisplayErrorV(IN ULONG ErrorNum, OUT PINPUT_RECORD Ir, IN ULONG WaitEvent, IN va_list args)
Definition: mui.c:178

Referenced by BootLoaderFloppyPage(), BootLoaderHarddiskMbrPage(), BootLoaderHarddiskVbrPage(), ConfirmQuit(), DeviceSettingsPage(), FormatPartitionPage(), InstallDirectoryPage(), RegistryPage(), SelectFileSystemPage(), SelectPartitionPage(), SetupStartPage(), and UpgradeRepairPage().

◆ MUIDisplayErrorV()

VOID MUIDisplayErrorV ( IN ULONG  ErrorNum,
OUT PINPUT_RECORD  Ir,
IN ULONG  WaitEvent,
IN va_list  args 
)

Definition at line 178 of file mui.c.

183 {
184  const MUI_ERROR* entry;
185  CHAR Buffer[2048];
186 
187  if (ErrorNum >= ERROR_LAST_ERROR_CODE)
188  {
189  PopupError("Invalid error number provided",
190  "Press ENTER to continue",
191  Ir,
193  return;
194  }
195 
197  if (!entry)
198  {
199  PopupError("Error: Failed to find translated error message",
200  NULL,
201  NULL,
203  return;
204  }
205 
206  vsprintf(Buffer, entry[ErrorNum].ErrorText, args);
207 
209  entry[ErrorNum].ErrorStatus,
210  Ir,
211  WaitEvent);
212 }
#define POPUP_WAIT_NONE
Definition: usetup.h:124
char CHAR
Definition: xmlstorage.h:175
VOID PopupError(PCCH Text, PCCH Status, PINPUT_RECORD Ir, ULONG WaitEvent)
Definition: usetup.c:203
Definition: match.c:390
smooth NULL
Definition: ftsmooth.c:416
Definition: bufpool.h:45
static const MUI_ERROR * FindMUIErrorEntries(VOID)
Definition: mui.c:105
uint32_t entry
Definition: isohybrid.c:63
#define POPUP_WAIT_ENTER
Definition: usetup.h:126
Definition: mui.h:11
int __cdecl vsprintf(char *_Dest, const char *_Format, va_list _Args)
Definition: sprintf.c:733

Referenced by MUIDisplayError(), and USetupErrorRoutine().

◆ MUIDisplayPage()

VOID MUIDisplayPage ( IN ULONG  page)

Definition at line 149 of file mui.c.

151 {
152  const MUI_ENTRY * entry;
153  ULONG index;
154 
156  if (!entry)
157  {
158  PopupError("Error: Failed to find translated page",
159  NULL,
160  NULL,
162  return;
163  }
164 
165  index = 0;
166  while (entry[index].Buffer != NULL)
167  {
169  entry[index].Y,
170  entry[index].Flags,
171  entry[index].Buffer);
172 
173  index++;
174  }
175 }
#define POPUP_WAIT_NONE
Definition: usetup.h:124
#define Y(I)
VOID PopupError(PCCH Text, PCCH Status, PINPUT_RECORD Ir, ULONG WaitEvent)
Definition: usetup.c:203
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
smooth NULL
Definition: ftsmooth.c:416
Definition: module.h:566
Definition: bufpool.h:45
GLuint index
Definition: glext.h:6031
VOID CONSOLE_SetStyledText(IN SHORT x, IN SHORT y, IN INT Flags, IN LPCSTR Text)
Definition: consup.c:670
#define index(s, c)
Definition: various.h:29
uint32_t entry
Definition: isohybrid.c:63
Definition: mui.h:3
unsigned int ULONG
Definition: retypes.h:1
static const MUI_ENTRY * FindMUIEntriesOfPage(IN ULONG PageNumber)
Definition: mui.c:82

Referenced by BootLoaderFloppyPage(), BootLoaderPage(), ComputerSettingsPage(), ConfirmDeleteSystemPartitionPage(), DeletePartitionPage(), DeviceSettingsPage(), DisplaySettingsPage(), FileCopyPage(), FlushPage(), FormatPartitionPage(), InstallDirectoryPage(), InstallIntroPage(), KeyboardSettingsPage(), LanguagePage(), LayoutSettingsPage(), LicensePage(), PrepareCopyPage(), QuitPage(), RegistryPage(), RepairIntroPage(), SelectFileSystemPage(), SelectPartitionPage(), SetupStartPage(), SuccessPage(), UpgradeRepairPage(), and WelcomePage().

◆ MUIGetString()

LPSTR MUIGetString ( ULONG  Number)

Definition at line 230 of file mui.c.

232 {
233  ULONG i;
234  const MUI_STRING * entry;
235  CHAR szErr[128];
236 
238  if (entry)
239  {
240  for (i = 0; entry[i].Number != 0; i++)
241  {
242  if (entry[i].Number == Number)
243  {
244  return entry[i].String;
245  }
246  }
247  }
248 
249  sprintf(szErr, "Error: failed find string id %lu for language index %lu\n", Number, FindLanguageIndex());
250 
252  NULL,
253  NULL,
255 
256  return "<nostring>";
257 }
#define POPUP_WAIT_NONE
Definition: usetup.h:124
char CHAR
Definition: xmlstorage.h:175
VOID PopupError(PCCH Text, PCCH Status, PINPUT_RECORD Ir, ULONG WaitEvent)
Definition: usetup.c:203
static const MUI_STRING * FindMUIStringEntries(VOID)
Definition: mui.c:113
#define sprintf(buf, format,...)
Definition: sprintf.c:55
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
smooth NULL
Definition: ftsmooth.c:416
Definition: mui.h:23
uint32_t entry
Definition: isohybrid.c:63
_In_opt_ PENTER_STATE_SYSTEM_HANDLER _In_opt_ PVOID _In_ LONG _In_opt_ LONG volatile * Number
Definition: ntpoapi.h:204
static ULONG FindLanguageIndex(VOID)
Definition: mui.c:35
TCHAR szErr[256]
Definition: service.c:38
unsigned int ULONG
Definition: retypes.h:1

Referenced by BootLoaderPage(), CheckFileSystemPage(), ChkdskPartition(), CreateExtendedPartitionPage(), CreateLogicalPartitionPage(), CreatePrimaryPartitionPage(), DeletePartitionPage(), DrawFileSystemList(), FileCopyCallback(), FileCopyPage(), FormatPartition(), FormatPartitionPage(), GetPartTypeStringFromPartitionType(), PrintDiskData(), PrintPartitionData(), ProgressCountdown(), QuitPage(), RegistryPage(), RegistryStatus(), RunUSetup(), SelectFileSystemPage(), SelectPartitionPage(), and ShowPartitionSizeInputBox().

◆ SetConsoleCodePage()

VOID SetConsoleCodePage ( VOID  )

Definition at line 260 of file mui.c.

261 {
262  UINT wCodePage;
263 
264 #if 0
265  ULONG lngIndex = 0;
266 
267  while (ResourceList[lngIndex].MuiPages != NULL)
268  {
269  if (_wcsicmp(ResourceList[lngIndex].LanguageID, SelectedLanguageId) == 0)
270  {
271  wCodePage = (UINT) wcstoul(ResourceList[lngIndex].OEMCPage, NULL, 10);
272  SetConsoleOutputCP(wCodePage);
273  return;
274  }
275 
276  lngIndex++;
277  }
278 #else
280  SetConsoleOutputCP(wCodePage);
281 #endif
282 }
BOOL WINAPI SetConsoleOutputCP(IN UINT wCodepage)
Definition: console.c:644
_Check_return_ unsigned long __cdecl wcstoul(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, _In_ int _Radix)
const MUI_LANGUAGE_RESOURCE ResourceList[]
Definition: muilanguages.h:414
PCWSTR MUIGetOEMCodePage(IN PCWSTR LanguageId)
Definition: mui.c:95
smooth NULL
Definition: ftsmooth.c:416
PCWSTR SelectedLanguageId
Definition: usetup.c:66
unsigned int UINT
Definition: ndis.h:50
unsigned int ULONG
Definition: retypes.h:1
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)

Referenced by LanguagePage(), and SetupStartPage().