kernel32: Get[*]PreferredUILanguages should return buffer size when setting ERROR_INSUFFICIENT_BUFFER.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Dmitry Timoshkov 2020-03-02 14:30:42 +08:00 committed by Alexandre Julliard
parent cac0465163
commit 081737379a
2 changed files with 1 additions and 5 deletions

View File

@ -112,6 +112,7 @@ static BOOL get_dummy_preferred_ui_language( DWORD flags, ULONG *count, WCHAR *b
if (lsize > *size)
{
*size = lsize;
SetLastError(ERROR_INSUFFICIENT_BUFFER);
return FALSE;
}

View File

@ -5477,7 +5477,6 @@ todo_wine
ok(!ret, "Expected GetSystemPreferredUILanguages to fail\n");
ok(ERROR_INSUFFICIENT_BUFFER == GetLastError(),
"Expected error ERROR_INSUFFICIENT_BUFFER, got %d\n", GetLastError());
todo_wine
ok(size == size_id, "expected %u, got %u\n", size_id, size);
size = size_id -1;
@ -5487,7 +5486,6 @@ todo_wine
ok(!ret, "Expected GetSystemPreferredUILanguages to fail\n");
ok(ERROR_INSUFFICIENT_BUFFER == GetLastError(),
"Expected error ERROR_INSUFFICIENT_BUFFER, got %d\n", GetLastError());
todo_wine
ok(size == size_id, "expected %u, got %u\n", size_id, size);
size = size_id -2;
@ -5497,7 +5495,6 @@ todo_wine
ok(!ret, "Expected GetSystemPreferredUILanguages to fail\n");
ok(ERROR_INSUFFICIENT_BUFFER == GetLastError(),
"Expected error ERROR_INSUFFICIENT_BUFFER, got %d\n", GetLastError());
todo_wine
ok(size == size_id + 2 || size == size_id + 1 /* before win10 1809 */, "expected %u, got %u\n", size_id + 2, size);
HeapFree(GetProcessHeap(), 0, buffer);
@ -5550,7 +5547,6 @@ todo_wine
ok(!ret, "Expected GetThreadPreferredUILanguages to fail\n");
ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER,
"Expected error ERROR_INSUFFICIENT_BUFFER, got %d\n", GetLastError());
todo_wine
ok(size == size_id, "expected %u, got %u\n", size_id, size);
size = size_id - 1;
@ -5559,7 +5555,6 @@ todo_wine
ok(!ret, "Expected GetThreadPreferredUILanguages to fail\n");
ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER,
"Expected error ERROR_INSUFFICIENT_BUFFER, got %d\n", GetLastError());
todo_wine
ok(size == size_id, "expected %u, got %u\n", size_id, size);
size = size_id - 2;