[FREELDR] Modify UiMessageBox so that it allows to pass a format string and parameters. Make use of it in WinLdrLoadBootDrivers to show the file that couldn't be loaded.

svn path=/trunk/; revision=61625
This commit is contained in:
Timo Kreuzer 2014-01-14 20:12:07 +00:00
parent 0caf2dda61
commit 1ae9a47dbe
4 changed files with 14 additions and 7 deletions

View file

@ -66,7 +66,7 @@ VOID UiDrawCenteredText(ULONG Left, ULONG Top, ULONG Right, ULONG Bottom, PCS
VOID UiDrawStatusText(PCSTR StatusText); // Draws text at the very bottom line on the screen
VOID UiUpdateDateTime(VOID); // Updates the date and time
VOID UiInfoBox(PCSTR MessageText); // Displays a info box on the screen
VOID UiMessageBox(PCSTR MessageText); // Displays a message box on the screen with an ok button
VOID UiMessageBox(PCSTR Format, ...); // Displays a message box on the screen with an ok button
VOID UiMessageBoxCritical(PCSTR MessageText); // Displays a message box on the screen with an ok button using no system resources
VOID UiDrawProgressBarCenter(ULONG Position, ULONG Range, PCHAR ProgressText); // Draws the progress bar showing nPos percent filled
VOID UiDrawProgressBar(ULONG Left, ULONG Top, ULONG Right, ULONG Bottom, ULONG Position, ULONG Range, PCHAR ProgressText); // Draws the progress bar showing nPos percent filled

View file

@ -344,9 +344,15 @@ VOID UiInfoBox(PCSTR MessageText)
UiDrawCenteredText(Left, Top, Right, Bottom, MessageText, ATTR(UiTextColor, UiMenuBgColor));
}
VOID UiMessageBox(PCSTR MessageText)
VOID UiMessageBox(PCSTR Format, ...)
{
UiVtbl.MessageBox(MessageText);
CHAR Buffer[256];
va_list ap;
va_start(ap, Format);
vsnprintf(Buffer, sizeof(Buffer) - sizeof(CHAR), Format, ap);
UiVtbl.MessageBox(Buffer);
va_end(ap);
}
VOID UiMessageBoxCritical(PCSTR MessageText)

View file

@ -325,7 +325,8 @@ WinLdrLoadBootDrivers(PLOADER_PARAMETER_BLOCK LoaderBlock,
//FIXME: Maybe remove it from the list and try to continue?
if (!Status)
{
UiMessageBox("Can't load boot driver!");
ERR("Can't load boot driver '%wZ'!", &BootDriver->FilePath);
UiMessageBox("Can't load boot driver '%wZ'!", &BootDriver->FilePath);
return FALSE;
}

View file

@ -538,9 +538,9 @@ WinLdrScanRegistry(IN OUT PLIST_ENTRY BootDriverListHead,
/* Get the Driver's Name */
ValueSize = sizeof(ServiceName);
rc = RegEnumKey(hServiceKey, Index, ServiceName, &ValueSize);
//TRACE_CH(REACTOS, "RegEnumKey(): rc %d\n", (int)rc);
TRACE("RegEnumKey(): rc %d\n", (int)rc);
/* Makre sure it's valid, and check if we're done */
/* Make sure it's valid, and check if we're done */
if (rc == ERROR_NO_MORE_ITEMS)
break;
if (rc != ERROR_SUCCESS)
@ -627,7 +627,7 @@ WinLdrScanRegistry(IN OUT PLIST_ENTRY BootDriverListHead,
FrLdrHeapFree(GroupNameBuffer, TAG_WLDR_NAME);
return;
}
//TRACE_CH(REACTOS, "Service %d: '%S'\n", (int)Index, ServiceName);
TRACE("Service %d: '%S'\n", (int)Index, ServiceName);
/* open driver Key */
rc = RegOpenKey(hServiceKey, ServiceName, &hDriverKey);