mirror of
https://github.com/reactos/wine.git
synced 2025-02-09 05:36:56 +00:00
setupapi: Implement SetupDiGetINFClassA on top of SetupDiGetINFClassW.
This commit is contained in:
parent
803b81c1b7
commit
05a1416c93
@ -3987,6 +3987,37 @@ CONFIGRET WINAPI CM_Get_Device_ID_Size( PULONG pulLen, DEVINST dnDevInst,
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* SetupDiGetINFClassA (SETUPAPI.@)
|
||||
*/
|
||||
BOOL WINAPI SetupDiGetINFClassA(PCSTR inf, LPGUID class_guid, PSTR class_name,
|
||||
DWORD size, PDWORD required_size)
|
||||
{
|
||||
BOOL retval;
|
||||
DWORD required_sizeA, required_sizeW;
|
||||
PWSTR class_nameW = NULL;
|
||||
UNICODE_STRING infW;
|
||||
|
||||
if (inf) RtlCreateUnicodeStringFromAsciiz(&infW, inf);
|
||||
else infW.Buffer = NULL;
|
||||
if (class_name && size)
|
||||
class_nameW = HeapAlloc(GetProcessHeap(), 0, size * sizeof(WCHAR));
|
||||
|
||||
retval = SetupDiGetINFClassW(infW.Buffer, class_guid, class_nameW, size, &required_sizeW);
|
||||
|
||||
if (retval)
|
||||
{
|
||||
required_sizeA = WideCharToMultiByte( CP_ACP, 0, class_nameW, required_sizeW,
|
||||
class_name, size, NULL, NULL);
|
||||
|
||||
if(required_size) *required_size = required_sizeA;
|
||||
}
|
||||
else
|
||||
if(required_size) *required_size = required_sizeW;
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* SetupDiGetINFClassW (SETUPAPI.@)
|
||||
*/
|
||||
|
@ -229,17 +229,6 @@ BOOL WINAPI SetupSetSourceListW(DWORD flags, PCWSTR *list, UINT count)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* SetupDiGetINFClassA (SETUPAPI.@)
|
||||
*/
|
||||
BOOL WINAPI SetupDiGetINFClassA(PCSTR inf, LPGUID class_guid, PSTR class_name,
|
||||
DWORD size, PDWORD required_size)
|
||||
{
|
||||
FIXME("%s %p %p %d %p\n", debugstr_a(inf), class_guid, class_name, size, required_size);
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* SetupDiDestroyClassImageList (SETUPAPI.@)
|
||||
*/
|
||||
|
@ -1509,6 +1509,7 @@ static void testSetupDiGetINFClassA(void)
|
||||
count = 0xdeadbeef;
|
||||
retval = SetupDiGetINFClassA(filename, &guid, cn, MAX_PATH, &count);
|
||||
ok(retval, "expected SetupDiGetINFClassA to succeed! error %u\n", GetLastError());
|
||||
todo_wine
|
||||
ok(count == 4, "expected count==4, got %u(%s)\n", count, cn);
|
||||
|
||||
DeleteFileA(filename);
|
||||
|
Loading…
x
Reference in New Issue
Block a user