setupapi: Implement SetupDiGetActualSectionToInstallA().

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Zebediah Figura 2019-05-17 00:21:07 -05:00 committed by Alexandre Julliard
parent 6d0f7b4b75
commit 9c714c3b83
1 changed files with 29 additions and 10 deletions

View File

@ -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;
}
/***********************************************************************