Jacek Caban : kernelbase: Use IOCTL_CONDRV_SET_OUTPUT_INFO in SetConsoleScreenBufferInfoEx.
Alexandre Julliard
julliard at winehq.org
Fri Jul 10 16:30:31 CDT 2020
Module: wine
Branch: master
Commit: b21d2e5f58dc5fa713174616de5042e05e13a1fe
URL: https://source.winehq.org/git/wine.git/?a=commit;h=b21d2e5f58dc5fa713174616de5042e05e13a1fe
Author: Jacek Caban <jacek at codeweavers.com>
Date: Fri Jul 10 17:07:24 2020 +0200
kernelbase: Use IOCTL_CONDRV_SET_OUTPUT_INFO in SetConsoleScreenBufferInfoEx.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/kernelbase/console.c | 41 +++++++++++++++++------------------------
1 file changed, 17 insertions(+), 24 deletions(-)
diff --git a/dlls/kernelbase/console.c b/dlls/kernelbase/console.c
index 107c909d57..cf64eff74a 100644
--- a/dlls/kernelbase/console.c
+++ b/dlls/kernelbase/console.c
@@ -1323,7 +1323,10 @@ BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleOutputCP( UINT cp )
BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleScreenBufferInfoEx( HANDLE handle,
CONSOLE_SCREEN_BUFFER_INFOEX *info )
{
- BOOL ret;
+ struct condrv_output_info_params params =
+ { SET_CONSOLE_OUTPUT_INFO_CURSOR_POS | SET_CONSOLE_OUTPUT_INFO_SIZE |
+ SET_CONSOLE_OUTPUT_INFO_ATTR | SET_CONSOLE_OUTPUT_INFO_POPUP_ATTR |
+ SET_CONSOLE_OUTPUT_INFO_DISPLAY_WINDOW | SET_CONSOLE_OUTPUT_INFO_MAX_SIZE };
TRACE("(%p, %p)\n", handle, info);
@@ -1333,29 +1336,19 @@ BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleScreenBufferInfoEx( HANDLE handle,
return FALSE;
}
- SERVER_START_REQ( set_console_output_info )
- {
- req->handle = console_handle_unmap( handle );
- req->mask = SET_CONSOLE_OUTPUT_INFO_CURSOR_POS | SET_CONSOLE_OUTPUT_INFO_SIZE |
- SET_CONSOLE_OUTPUT_INFO_ATTR | SET_CONSOLE_OUTPUT_INFO_POPUP_ATTR |
- SET_CONSOLE_OUTPUT_INFO_DISPLAY_WINDOW | SET_CONSOLE_OUTPUT_INFO_MAX_SIZE;
- req->width = info->dwSize.X;
- req->height = info->dwSize.Y;
- req->cursor_x = info->dwCursorPosition.X;
- req->cursor_y = info->dwCursorPosition.Y;
- req->attr = info->wAttributes;
- req->win_left = info->srWindow.Left;
- req->win_top = info->srWindow.Top;
- req->win_right = info->srWindow.Right;
- req->win_bottom = info->srWindow.Bottom;
- req->popup_attr = info->wPopupAttributes;
- req->max_width = min( info->dwMaximumWindowSize.X, info->dwSize.X );
- req->max_height = min( info->dwMaximumWindowSize.Y, info->dwSize.Y );
- ret = !wine_server_call_err( req );
- }
- SERVER_END_REQ;
-
- return ret;
+ params.info.width = info->dwSize.X;
+ params.info.height = info->dwSize.Y;
+ params.info.cursor_x = info->dwCursorPosition.X;
+ params.info.cursor_y = info->dwCursorPosition.Y;
+ params.info.attr = info->wAttributes;
+ params.info.win_left = info->srWindow.Left;
+ params.info.win_top = info->srWindow.Top;
+ params.info.win_right = info->srWindow.Right;
+ params.info.win_bottom = info->srWindow.Bottom;
+ params.info.popup_attr = info->wPopupAttributes;
+ params.info.max_width = min( info->dwMaximumWindowSize.X, info->dwSize.X );
+ params.info.max_height = min( info->dwMaximumWindowSize.Y, info->dwSize.Y );
+ return console_ioctl( handle, IOCTL_CONDRV_SET_OUTPUT_INFO, ¶ms, sizeof(params), NULL, 0, NULL );
}
More information about the wine-cvs
mailing list