Zebediah Figura : setupapi: Implement SetupDiGetActualSectionToInstallA().
Alexandre Julliard
julliard at winehq.org
Fri May 17 16:10:14 CDT 2019
Module: wine
Branch: master
Commit: 9c714c3b83ce3febb702f233cbb5cf11a017c63e
URL: https://source.winehq.org/git/wine.git/?a=commit;h=9c714c3b83ce3febb702f233cbb5cf11a017c63e
Author: Zebediah Figura <z.figura12 at gmail.com>
Date: Fri May 17 00:21:07 2019 -0500
setupapi: Implement SetupDiGetActualSectionToInstallA().
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/setupapi/devinst.c | 39 +++++++++++++++++++++++++++++----------
1 file changed, 29 insertions(+), 10 deletions(-)
diff --git a/dlls/setupapi/devinst.c b/dlls/setupapi/devinst.c
index 48b6ca3..af91e09 100644
--- a/dlls/setupapi/devinst.c
+++ b/dlls/setupapi/devinst.c
@@ -1798,18 +1798,37 @@ BOOL WINAPI SetupDiGetDeviceInstanceIdW(HDEVINFO devinfo, SP_DEVINFO_DATA *devic
}
/***********************************************************************
- * SetupDiGetActualSectionToInstallA (SETUPAPI.@)
+ * SetupDiGetActualSectionToInstallA (SETUPAPI.@)
*/
-BOOL WINAPI SetupDiGetActualSectionToInstallA(
- HINF InfHandle,
- PCSTR InfSectionName,
- PSTR InfSectionWithExt,
- DWORD InfSectionWithExtSize,
- PDWORD RequiredSize,
- PSTR *Extension)
+BOOL WINAPI SetupDiGetActualSectionToInstallA(HINF hinf, const char *section,
+ char *section_ext, DWORD size, DWORD *needed, char **extptr)
{
- FIXME("\n");
- return FALSE;
+ WCHAR sectionW[LINE_LEN], section_extW[LINE_LEN], *extptrW;
+ BOOL ret;
+
+ MultiByteToWideChar(CP_ACP, 0, section, -1, sectionW, ARRAY_SIZE(sectionW));
+
+ ret = SetupDiGetActualSectionToInstallW(hinf, sectionW, section_extW,
+ ARRAY_SIZE(section_extW), NULL, &extptrW);
+ if (ret)
+ {
+ if (needed)
+ *needed = WideCharToMultiByte(CP_ACP, 0, section_extW, -1, NULL, 0, NULL, NULL);
+
+ if (section_ext)
+ ret = !!WideCharToMultiByte(CP_ACP, 0, section_extW, -1, section_ext, size, NULL, NULL);
+
+ if (extptr)
+ {
+ if (extptrW)
+ *extptr = section_ext + WideCharToMultiByte(CP_ACP, 0, section_extW,
+ extptrW - section_extW, NULL, 0, NULL, NULL);
+ else
+ *extptr = NULL;
+ }
+ }
+
+ return ret;
}
/***********************************************************************
More information about the wine-cvs
mailing list