user32: Return Unicode length instead of ANSI in GetUserObjectInformationA.
This commit is contained in:
parent
83f67ff998
commit
fecde1ead8
|
@ -397,7 +397,7 @@ static void test_getuserobjectinformation(void)
|
|||
|
||||
ok(!ret, "GetUserObjectInformationA returned %x", ret);
|
||||
ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER, "LastError is set to %08x\n", GetLastError());
|
||||
todo_wine ok(size == 22, "size is set to %d\n", size); /* Windows returns Unicode length (11*2) */
|
||||
ok(size == 22, "size is set to %d\n", size); /* Windows returns Unicode length (11*2) */
|
||||
|
||||
/* Get string */
|
||||
SetLastError(0xdeadbeef);
|
||||
|
@ -439,7 +439,7 @@ static void test_getuserobjectinformation(void)
|
|||
|
||||
ok(!ret, "GetUserObjectInformationA returned %x", ret);
|
||||
ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER, "LastError is set to %08x\n", GetLastError());
|
||||
todo_wine ok(size == 16, "size is set to %d\n", size); /* Windows returns Unicode length (8*2) */
|
||||
ok(size == 16, "size is set to %d\n", size); /* Windows returns Unicode length (8*2) */
|
||||
|
||||
/* Get string */
|
||||
SetLastError(0xdeadbeef);
|
||||
|
|
|
@ -477,13 +477,17 @@ BOOL WINAPI GetUserObjectInformationA( HANDLE handle, INT index, LPVOID info, DW
|
|||
if (index == UOI_TYPE || index == UOI_NAME)
|
||||
{
|
||||
WCHAR buffer[MAX_PATH];
|
||||
DWORD lenA;
|
||||
DWORD lenA, lenW;
|
||||
|
||||
if (!GetUserObjectInformationW( handle, index, buffer, sizeof(buffer), NULL )) return FALSE;
|
||||
if (!GetUserObjectInformationW( handle, index, buffer, sizeof(buffer), &lenW )) return FALSE;
|
||||
lenA = WideCharToMultiByte( CP_ACP, 0, buffer, -1, NULL, 0, NULL, NULL );
|
||||
if (needed) *needed = lenA;
|
||||
if (lenA > len)
|
||||
{
|
||||
/* If the buffer length supplied by the caller is insufficient, Windows returns a
|
||||
'needed' length based upon the Unicode byte length, so we should do similarly. */
|
||||
if (needed) *needed = lenW;
|
||||
|
||||
SetLastError( ERROR_INSUFFICIENT_BUFFER );
|
||||
return FALSE;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue