From: Hugh McMaster hugh.mcmaster@outlook.com
--- dlls/kernel32/tests/console.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-)
diff --git a/dlls/kernel32/tests/console.c b/dlls/kernel32/tests/console.c index 3327e74b3cc..09ac8250e4f 100644 --- a/dlls/kernel32/tests/console.c +++ b/dlls/kernel32/tests/console.c @@ -34,6 +34,7 @@ static BOOL (WINAPI *pGetConsoleInputExeNameA)(DWORD, LPSTR); static DWORD (WINAPI *pGetConsoleOriginalTitleA)(LPSTR, DWORD); static DWORD (WINAPI *pGetConsoleOriginalTitleW)(LPWSTR, DWORD); static DWORD (WINAPI *pGetConsoleProcessList)(LPDWORD, DWORD); +static BOOL (WINAPI *pGetConsoleScreenBufferInfoEx)(HANDLE, CONSOLE_SCREEN_BUFFER_INFOEX *); static BOOL (WINAPI *pGetCurrentConsoleFontEx)(HANDLE, BOOL, CONSOLE_FONT_INFOEX *); static HANDLE (WINAPI *pOpenConsoleW)(LPCWSTR,DWORD,BOOL,DWORD); static BOOL (WINAPI *pSetConsoleInputExeNameA)(LPCSTR); @@ -84,6 +85,7 @@ static void init_function_pointers(void) KERNEL32_GET_PROC(GetConsoleOriginalTitleA); KERNEL32_GET_PROC(GetConsoleOriginalTitleW); KERNEL32_GET_PROC(GetConsoleProcessList); + KERNEL32_GET_PROC(GetConsoleScreenBufferInfoEx); KERNEL32_GET_PROC(GetCurrentConsoleFontEx); KERNEL32_GET_PROC(OpenConsoleW); KERNEL32_GET_PROC(SetConsoleInputExeNameA); @@ -1070,9 +1072,15 @@ static void test_new_screen_buffer_color_attributes(HANDLE hConOut) HANDLE hConOut2; WORD orig_attr, orig_popup, attr;
+ if (!pGetConsoleScreenBufferInfoEx) + { + win_skip("GetConsoleScreenBufferInfoEx not available.\n"); + return; + } + csbi.cbSize = csbi2.cbSize = sizeof(CONSOLE_SCREEN_BUFFER_INFOEX);
- ret = GetConsoleScreenBufferInfoEx(hConOut, &csbi); + ret = pGetConsoleScreenBufferInfoEx(hConOut, &csbi); ok(ret, "GetConsoleScreenBufferInfoEx failed: error %lu\n", GetLastError()); orig_attr = csbi.wAttributes; orig_popup = csbi.wPopupAttributes; @@ -1081,7 +1089,7 @@ static void test_new_screen_buffer_color_attributes(HANDLE hConOut) CONSOLE_TEXTMODE_BUFFER, NULL); ok(hConOut2 != INVALID_HANDLE_VALUE, "CreateConsoleScreenBuffer failed: error %lu\n", GetLastError());
- ret = GetConsoleScreenBufferInfoEx(hConOut2, &csbi2); + ret = pGetConsoleScreenBufferInfoEx(hConOut2, &csbi2); ok(ret, "GetConsoleScreenBufferInfoEx failed: error %lu\n", GetLastError()); CloseHandle(hConOut2);
@@ -1102,7 +1110,7 @@ static void test_new_screen_buffer_color_attributes(HANDLE hConOut) memset(&csbi2, 0, sizeof(CONSOLE_SCREEN_BUFFER_INFOEX)); csbi2.cbSize = sizeof(CONSOLE_SCREEN_BUFFER_INFOEX);
- ret = GetConsoleScreenBufferInfoEx(hConOut2, &csbi2); + ret = pGetConsoleScreenBufferInfoEx(hConOut2, &csbi2); ok(ret, "GetConsoleScreenBufferInfoEx failed: error %lu\n", GetLastError()); CloseHandle(hConOut2);
@@ -1126,7 +1134,7 @@ static void test_new_screen_buffer_color_attributes(HANDLE hConOut) memset(&csbi2, 0, sizeof(CONSOLE_SCREEN_BUFFER_INFOEX)); csbi2.cbSize = sizeof(CONSOLE_SCREEN_BUFFER_INFOEX);
- ret = GetConsoleScreenBufferInfoEx(hConOut2, &csbi2); + ret = pGetConsoleScreenBufferInfoEx(hConOut2, &csbi2); ok(ret, "GetConsoleScreenBufferInfoEx failed: error %lu\n", GetLastError()); CloseHandle(hConOut2);
@@ -4008,18 +4016,14 @@ static void test_SetConsoleFont(HANDLE std_output)
static void test_GetConsoleScreenBufferInfoEx(HANDLE std_output) { - HANDLE hmod; - BOOL (WINAPI *pGetConsoleScreenBufferInfoEx)(HANDLE, CONSOLE_SCREEN_BUFFER_INFOEX *); CONSOLE_SCREEN_BUFFER_INFOEX csbix; HANDLE pipe1, pipe2; BOOL ret; HANDLE std_input = GetStdHandle(STD_INPUT_HANDLE);
- hmod = GetModuleHandleA("kernel32.dll"); - pGetConsoleScreenBufferInfoEx = (void *)GetProcAddress(hmod, "GetConsoleScreenBufferInfoEx"); if (!pGetConsoleScreenBufferInfoEx) { - win_skip("GetConsoleScreenBufferInfoEx is not available\n"); + win_skip("GetConsoleScreenBufferInfoEx not available.\n"); return; }
@@ -4200,15 +4204,13 @@ static void test_SetConsoleScreenBufferInfoEx(HANDLE std_output) HANDLE hmod; HANDLE std_input = CreateFileA("CONIN$", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, 0); BOOL (WINAPI *pSetConsoleScreenBufferInfoEx)(HANDLE, CONSOLE_SCREEN_BUFFER_INFOEX *); - BOOL (WINAPI *pGetConsoleScreenBufferInfoEx)(HANDLE, CONSOLE_SCREEN_BUFFER_INFOEX *); CONSOLE_SCREEN_BUFFER_INFOEX info;
hmod = GetModuleHandleA("kernel32.dll"); pSetConsoleScreenBufferInfoEx = (void *)GetProcAddress(hmod, "SetConsoleScreenBufferInfoEx"); - pGetConsoleScreenBufferInfoEx = (void *)GetProcAddress(hmod, "GetConsoleScreenBufferInfoEx"); - if (!pSetConsoleScreenBufferInfoEx || !pGetConsoleScreenBufferInfoEx) + if (!pGetConsoleScreenBufferInfoEx || !pSetConsoleScreenBufferInfoEx) { - win_skip("SetConsoleScreenBufferInfoEx is not available\n"); + win_skip("GetConsoleScreenBufferInfoEx or SetConsoleScreenBufferInfoEx not available.\n"); return; }