Add SetupPromptReboot stub
In SetupInstallServicesFromInfSectionExW, LoadOrderGroup value is
optional. Don't break if it is missing
Modified: trunk/reactos/lib/setupapi/install.c
Modified: trunk/reactos/lib/setupapi/setupapi.spec
Modified: trunk/reactos/lib/setupapi/stubs.c
_____
Modified: trunk/reactos/lib/setupapi/install.c
--- trunk/reactos/lib/setupapi/install.c 2005-10-03 07:22:19 UTC
(rev 18237)
+++ trunk/reactos/lib/setupapi/install.c 2005-10-03 07:26:39 UTC
(rev 18238)
@@ -1087,11 +1087,8 @@
return FALSE;
}
if (!GetLineText(hinf, sectionname, L"LoadOrderGroup",
&LoadOrderGroup))
- {
- CloseServiceHandle(hSCManager);
- HeapFree(GetProcessHeap(), 0, ServiceBinary);
- return FALSE;
- }
+ /* LoadOrderGroup value is optional. Ignore the error */
+ LoadOrderGroup = NULL;
/* Don't check return value, as these fields are optional and
* GetLineText initialize output parameter even on failure */
_____
Modified: trunk/reactos/lib/setupapi/setupapi.spec
--- trunk/reactos/lib/setupapi/setupapi.spec 2005-10-03 07:22:19 UTC
(rev 18237)
+++ trunk/reactos/lib/setupapi/setupapi.spec 2005-10-03 07:26:39 UTC
(rev 18238)
@@ -455,7 +455,7 @@
@ stdcall SetupOpenMasterInf()
@ stub SetupPromptForDiskA
@ stub SetupPromptForDiskW
-@ stub SetupPromptReboot
+@ stdcall SetupPromptReboot(ptr ptr long)
@ stub SetupQueryDrivesInDiskSpaceListA
@ stub SetupQueryDrivesInDiskSpaceListW
@ stub SetupQueryFileLogA
_____
Modified: trunk/reactos/lib/setupapi/stubs.c
--- trunk/reactos/lib/setupapi/stubs.c 2005-10-03 07:22:19 UTC (rev
18237)
+++ trunk/reactos/lib/setupapi/stubs.c 2005-10-03 07:26:39 UTC (rev
18238)
@@ -125,6 +125,57 @@
}
/***********************************************************************
+ * SetupPromptReboot(SETUPAPI.@)
+ */
+INT WINAPI SetupPromptReboot(HSPFILEQ FileQueue, HWND Owner, BOOL
ScanOnly)
+{
+#if 0
+ int ret;
+ TCHAR RebootText[RC_STRING_MAX_SIZE];
+ TCHAR RebootCaption[RC_STRING_MAX_SIZE];
+ INT rc = 0;
+
+ TRACE("%p %p %d\n", FileQueue, Owner, ScanOnly);
+
+ if (ScanOnly && !FileQueue)
+ {
+ SetLastError(ERROR_INVALID_PARAMETER);
+ return -1;
+ }
+
+ if (FileQueue)
+ {
+ FIXME("Case 'FileQueue != NULL' not implemented\n");
+ /* In some cases, do 'rc |= SPFILEQ_FILE_IN_USE' */
+ }
+
+ if (ScanOnly)
+ return rc;
+
+ /* We need to ask the question to the user. */
+ rc |= SPFILEQ_REBOOT_RECOMMENDED;
+ if (0 == LoadString(hInstance, IDS_QUERY_REBOOT_TEXT, RebootText,
RC_STRING_MAX_SIZE))
+ return -1;
+ if (0 == LoadString(hInstance, IDS_QUERY_REBOOT_CAPTION,
RebootCaption, RC_STRING_MAX_SIZE))
+ return -1;
+ ret = MessageBox(Owner, RebootText, RebootCaption, MB_YESNO |
MB_DEFBUTTON1);
+ if (IDNO == ret)
+ return rc;
+ else
+ {
+ if (ExitWindowsEx(EWX_REBOOT, 0))
+ return rc | SPFILEQ_REBOOT_IN_PROGRESS;
+ else
+ return -1;
+ }
+#endif
+ FIXME("Stub %p %p %d\n", FileQueue, Owner, ScanOnly);
+ SetLastError(ERROR_GEN_FAILURE);
+ return -1;
+}
+
+
+/**********************************************************************
*
* SetupTerminateFileLog(SETUPAPI.@)
*/
BOOL WINAPI SetupTerminateFileLog(HANDLE FileLogHandle)