Implement SetupInstallServicesFromInfSectionA/W, SetupInstallServicesFromInfSectionExW
Add stub for SetupInstallServicesFromInfSectionExW
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-09-26 11:35:23 UTC (rev 18087)
+++ trunk/reactos/lib/setupapi/install.c	2005-09-26 11:37:32 UTC (rev 18088)
@@ -953,3 +953,43 @@
         RtlFreeUnicodeString( &cmdlineW );
     }
 }
+
+
+/***********************************************************************
+ *		SetupInstallServicesFromInfSectionA  (SETUPAPI.@)
+ */
+BOOL WINAPI SetupInstallServicesFromInfSectionA( HINF hinf, PCSTR sectionname, DWORD flags )
+{
+    return SetupInstallServicesFromInfSectionExA( hinf, sectionname, flags,
+                                                  NULL, NULL, NULL, NULL );
+}
+
+
+/***********************************************************************
+ *		SetupInstallServicesFromInfSectionW  (SETUPAPI.@)
+ */
+BOOL WINAPI SetupInstallServicesFromInfSectionW( HINF hinf, PCWSTR sectionname, DWORD flags )
+{
+    return SetupInstallServicesFromInfSectionExW( hinf, sectionname, flags,
+                                                  NULL, NULL, NULL, NULL );
+}
+
+
+/***********************************************************************
+ *		SetupInstallServicesFromInfSectionExA  (SETUPAPI.@)
+ */
+BOOL WINAPI SetupInstallServicesFromInfSectionExA( HINF hinf, PCSTR sectionname, DWORD flags, HDEVINFO devinfo, PSP_DEVINFO_DATA devinfo_data, PVOID reserved1, PVOID reserved2 )
+{
+    UNICODE_STRING sectionnameW;
+    BOOL ret = FALSE;
+
+    if (RtlCreateUnicodeStringFromAsciiz( &sectionnameW, sectionname ))
+    {
+        ret = SetupInstallServicesFromInfSectionExW( hinf, sectionnameW.Buffer, flags, devinfo, devinfo_data, reserved1, reserved2 );
+        RtlFreeUnicodeString( &sectionnameW );
+    }
+    else
+        SetLastError( ERROR_NOT_ENOUGH_MEMORY );
+
+    return ret;
+}

Modified: trunk/reactos/lib/setupapi/setupapi.spec
--- trunk/reactos/lib/setupapi/setupapi.spec	2005-09-26 11:35:23 UTC (rev 18087)
+++ trunk/reactos/lib/setupapi/setupapi.spec	2005-09-26 11:37:32 UTC (rev 18088)
@@ -437,10 +437,10 @@
 @ stdcall SetupInstallFilesFromInfSectionW(long long long wstr wstr long)
 @ stdcall SetupInstallFromInfSectionA(long long str long long str long ptr ptr long ptr)
 @ stdcall SetupInstallFromInfSectionW(long long wstr long long wstr long ptr ptr long ptr)
-@ stub SetupInstallServicesFromInfSectionA
-@ stub SetupInstallServicesFromInfSectionExA
-@ stub SetupInstallServicesFromInfSectionExW
-@ stub SetupInstallServicesFromInfSectionW
+@ stdcall SetupInstallServicesFromInfSectionA(long str long)
+@ stdcall SetupInstallServicesFromInfSectionExA(long str long ptr ptr ptr ptr)
+@ stdcall SetupInstallServicesFromInfSectionExW(long wstr long ptr ptr ptr ptr)
+@ stdcall SetupInstallServicesFromInfSectionW(long wstr long)
 @ stdcall SetupIterateCabinetA(str long ptr ptr)
 @ stdcall SetupIterateCabinetW(wstr long ptr ptr)
 @ stub SetupLogErrorA

Modified: trunk/reactos/lib/setupapi/stubs.c
--- trunk/reactos/lib/setupapi/stubs.c	2005-09-26 11:35:23 UTC (rev 18087)
+++ trunk/reactos/lib/setupapi/stubs.c	2005-09-26 11:37:32 UTC (rev 18088)
@@ -125,6 +125,15 @@
 }
 
 /***********************************************************************
+ *		SetupInstallServicesFromInfSectionExW  (SETUPAPI.@)
+ */
+BOOL WINAPI SetupInstallServicesFromInfSectionExW( HINF hinf, PCWSTR sectionname, DWORD flags, HDEVINFO devinfo, PSP_DEVINFO_DATA devinfo_data, PVOID reserved1, PVOID reserved2 )
+{
+    FIXME("Stub %p, %s, 0x%lx, %p, %p, %p, %p\n", hinf, debugstr_w(sectionname), flags, devinfo, devinfo_data, reserved1, reserved2);
+    return TRUE;
+}
+
+/***********************************************************************
  *		SetupTerminateFileLog(SETUPAPI.@)
  */
 BOOL WINAPI SetupTerminateFileLog(HANDLE FileLogHandle)