kernelbase: Implement GetConsoleOriginalTitleA().

This commit is contained in:
Hugh McMaster 2023-03-29 21:49:14 +11:00 committed by Alexandre Julliard
parent 887aa70e08
commit 30f1c1be74
2 changed files with 17 additions and 9 deletions

View file

@ -4238,17 +4238,17 @@ static void test_GetConsoleOriginalTitleA(void)
ok(!ret, "Unexpected string length; error %lu\n", GetLastError());
ret = GetConsoleOriginalTitleA(buf, ARRAY_SIZE(buf));
todo_wine ok(ret, "GetConsoleOriginalTitleA failed: %lu\n", GetLastError());
todo_wine ok(!strcmp(buf, title), "got %s, expected %s\n", wine_dbgstr_a(buf), wine_dbgstr_a(title));
todo_wine ok(ret == title_len, "got %lu, expected %lu\n", ret, title_len);
ok(ret, "GetConsoleOriginalTitleA failed: %lu\n", GetLastError());
ok(!strcmp(buf, title), "got %s, expected %s\n", wine_dbgstr_a(buf), wine_dbgstr_a(title));
ok(ret == title_len, "got %lu, expected %lu\n", ret, title_len);
ret = SetConsoleTitleA("test");
ok(ret, "SetConsoleTitleA failed: %lu\n", GetLastError());
ret = GetConsoleOriginalTitleA(buf, ARRAY_SIZE(buf));
todo_wine ok(ret, "GetConsoleOriginalTitleA failed: %lu\n", GetLastError());
todo_wine ok(!strcmp(buf, title), "got %s, expected %s\n", wine_dbgstr_a(buf), wine_dbgstr_a(title));
todo_wine ok(ret == title_len, "got %lu, expected %lu\n", ret, title_len);
ok(ret, "GetConsoleOriginalTitleA failed: %lu\n", GetLastError());
ok(!strcmp(buf, title), "got %s, expected %s\n", wine_dbgstr_a(buf), wine_dbgstr_a(title));
ok(ret == title_len, "got %lu, expected %lu\n", ret, title_len);
}
static void test_GetConsoleOriginalTitleW(void)

View file

@ -914,9 +914,17 @@ BOOL WINAPI DECLSPEC_HOTPATCH GetConsoleMode( HANDLE handle, DWORD *mode )
*/
DWORD WINAPI DECLSPEC_HOTPATCH GetConsoleOriginalTitleA( LPSTR title, DWORD size )
{
FIXME( ": (%p, %lu) stub!\n", title, size );
SetLastError( ERROR_CALL_NOT_IMPLEMENTED );
return 0;
WCHAR *ptr = HeapAlloc( GetProcessHeap(), 0, size * sizeof(WCHAR) );
DWORD ret;
if (!ptr) return 0;
ret = GetConsoleOriginalTitleW( ptr, size );
if (ret)
WideCharToMultiByte( GetConsoleOutputCP(), 0, ptr, -1, title, size, NULL, NULL);
HeapFree( GetProcessHeap(), 0, ptr );
return ret;
}