Author: tkreuzer Date: Tue Jan 14 20:12:07 2014 New Revision: 61625
URL: http://svn.reactos.org/svn/reactos?rev=61625&view=rev Log: [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.
Modified: trunk/reactos/boot/freeldr/freeldr/include/ui.h trunk/reactos/boot/freeldr/freeldr/ui/ui.c trunk/reactos/boot/freeldr/freeldr/windows/winldr.c trunk/reactos/boot/freeldr/freeldr/windows/wlregistry.c
Modified: trunk/reactos/boot/freeldr/freeldr/include/ui.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/includ... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/include/ui.h [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/include/ui.h [iso-8859-1] Tue Jan 14 20:12:07 2014 @@ -66,7 +66,7 @@ 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
Modified: trunk/reactos/boot/freeldr/freeldr/ui/ui.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/ui/ui.... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/ui/ui.c [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/ui/ui.c [iso-8859-1] Tue Jan 14 20:12:07 2014 @@ -344,9 +344,15 @@ UiDrawCenteredText(Left, Top, Right, Bottom, MessageText, ATTR(UiTextColor, UiMenuBgColor)); }
-VOID UiMessageBox(PCSTR MessageText) -{ - UiVtbl.MessageBox(MessageText); +VOID UiMessageBox(PCSTR Format, ...) +{ + 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)
Modified: trunk/reactos/boot/freeldr/freeldr/windows/winldr.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/window... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/windows/winldr.c [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/windows/winldr.c [iso-8859-1] Tue Jan 14 20:12:07 2014 @@ -325,7 +325,8 @@ //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; }
Modified: trunk/reactos/boot/freeldr/freeldr/windows/wlregistry.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/window... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/windows/wlregistry.c [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/windows/wlregistry.c [iso-8859-1] Tue Jan 14 20:12:07 2014 @@ -538,9 +538,9 @@ /* Get the Driver's Name */ ValueSize = sizeof(ServiceName); rc = RegEnumKey(hServiceKey, Index, ServiceName, &ValueSize); - //TRACE_CH(REACTOS, "RegEnumKey(): rc %d\n", (int)rc); - - /* Makre sure it's valid, and check if we're done */ + TRACE("RegEnumKey(): rc %d\n", (int)rc); + + /* 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 @@ 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);