implemented ansi stubs: SetupGetInfFileListA and SetupDiGetINFClassA
Modified: trunk/reactos/lib/setupapi/parser.c
Modified: trunk/reactos/lib/setupapi/setupapi.spec

Modified: trunk/reactos/lib/setupapi/parser.c
--- trunk/reactos/lib/setupapi/parser.c	2005-10-21 10:13:26 UTC (rev 18650)
+++ trunk/reactos/lib/setupapi/parser.c	2005-10-21 12:31:19 UTC (rev 18651)
@@ -2075,6 +2075,52 @@
 }
 
 /***********************************************************************
+ *		SetupGetInfFileListA    (SETUPAPI.@)
+ */
+BOOL WINAPI
+SetupGetInfFileListA(
+    IN PCSTR DirectoryPath OPTIONAL,
+    IN DWORD InfStyle,
+    IN OUT PSTR ReturnBuffer OPTIONAL,
+    IN DWORD ReturnBufferSize OPTIONAL,
+    OUT PDWORD RequiredSize OPTIONAL)
+{
+    PWSTR DirectoryPathW = NULL;
+    PWSTR ReturnBufferW = NULL;
+    BOOL ret = FALSE;
+
+    TRACE("%s %lx %p %ld %p\n", debugstr_a(DirectoryPath), InfStyle,
+        ReturnBuffer, ReturnBufferSize, RequiredSize);
+
+    if (DirectoryPath != NULL)
+    {
+        DirectoryPathW = MultiByteToUnicode(DirectoryPath, CP_ACP);
+        if (DirectoryPathW == NULL) goto Cleanup;
+    }
+
+    if (ReturnBuffer != NULL && ReturnBufferSize != 0)
+    {
+        ReturnBufferW = MyMalloc(ReturnBufferSize * sizeof(WCHAR));
+        if (ReturnBufferW == NULL) goto Cleanup;
+    }
+
+    ret = SetupGetInfFileListW(DirectoryPathW, InfStyle, ReturnBufferW, ReturnBufferSize, RequiredSize);
+
+    if (ret && ReturnBufferW != NULL)
+    {
+        ret = WideCharToMultiByte(CP_ACP, 0, ReturnBufferW, -1, ReturnBuffer, ReturnBufferSize, NULL, NULL) != 0;
+    }
+
+Cleanup:
+    if (DirectoryPathW != NULL)
+        MyFree(DirectoryPathW);
+    if (ReturnBufferW != NULL)
+        MyFree(ReturnBufferW);
+
+    return ret;
+}
+
+/***********************************************************************
  *		SetupDiGetINFClassW    (SETUPAPI.@)
  */
 BOOL WINAPI
@@ -2153,3 +2199,48 @@
     TRACE("Returning %d\n", ret);
     return ret;
 }
+
+/***********************************************************************
+ *      SetupDiGetINFClassA    (SETUPAPI.@)
+ */
+BOOL WINAPI SetupDiGetINFClassA(
+    IN PCSTR InfName,
+    OUT LPGUID ClassGuid,
+    OUT PSTR ClassName,
+    IN DWORD ClassNameSize,
+    OUT PDWORD RequiredSize OPTIONAL)
+{
+    PWSTR InfNameW = NULL;
+    PWSTR ClassNameW = NULL;
+    BOOL ret = FALSE;
+
+    TRACE("%s %p %p %ld %p\n", debugstr_a(InfName), ClassGuid,
+        ClassName, ClassNameSize, RequiredSize);
+
+    if (InfName != NULL)
+    {
+        InfNameW = MultiByteToUnicode(InfName, CP_ACP);
+        if (InfNameW == NULL) goto Cleanup;
+    }
+
+    if (ClassName != NULL && ClassNameSize != 0)
+    {
+        ClassNameW = MyMalloc(ClassNameSize * sizeof(WCHAR));
+        if (ClassNameW == NULL) goto Cleanup;
+    }
+
+    ret = SetupDiGetINFClassW(InfNameW, ClassGuid, ClassNameW, ClassNameSize, RequiredSize);
+
+    if (ret && ClassNameW != NULL)
+    {
+        ret = WideCharToMultiByte(CP_ACP, 0, ClassNameW, -1, ClassName, ClassNameSize, NULL, NULL) != 0;
+    }
+
+Cleanup:
+    if (InfNameW != NULL)
+        MyFree(InfNameW);
+    if (ClassNameW != NULL)
+        MyFree(ClassNameW);
+
+    return ret;
+}

Modified: trunk/reactos/lib/setupapi/setupapi.spec
--- trunk/reactos/lib/setupapi/setupapi.spec	2005-10-21 10:13:26 UTC (rev 18650)
+++ trunk/reactos/lib/setupapi/setupapi.spec	2005-10-21 12:31:19 UTC (rev 18651)
@@ -341,7 +341,7 @@
 @ stub SetupDiGetHwProfileList
 @ stub SetupDiGetHwProfileListExA
 @ stub SetupDiGetHwProfileListExW
-@ stub SetupDiGetINFClassA
+@ stdcall SetupDiGetINFClassA(str ptr ptr long ptr)
 @ stdcall SetupDiGetINFClassW(wstr ptr ptr long ptr)
 @ stub SetupDiGetSelectedDevice
 @ stub SetupDiGetSelectedDriverA
@@ -401,7 +401,7 @@
 @ stub SetupGetFileCompressionInfoW
 @ stdcall SetupGetFileQueueCount(long long ptr)
 @ stdcall SetupGetFileQueueFlags(long ptr)
-@ stub SetupGetInfFileListA
+@ stdcall SetupGetInfFileListA(str long str long ptr)
 @ stdcall SetupGetInfFileListW(wstr long wstr long ptr)
 @ stdcall SetupGetInfInformationA(ptr long ptr long ptr)
 @ stdcall SetupGetInfInformationW(ptr long ptr long ptr)