Jacek Caban : conhost: Implement IOCTL_CONDRV_SET_TITLE.
Alexandre Julliard
julliard at winehq.org
Mon Aug 24 15:58:51 CDT 2020
Module: wine
Branch: master
Commit: d2496e2d5c5ea4bde34659ba88cea52e8c27facb
URL: https://source.winehq.org/git/wine.git/?a=commit;h=d2496e2d5c5ea4bde34659ba88cea52e8c27facb
Author: Jacek Caban <jacek at codeweavers.com>
Date: Mon Aug 24 13:21:56 2020 +0200
conhost: Implement IOCTL_CONDRV_SET_TITLE.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/kernel32/tests/console.c | 2 ++
programs/conhost/conhost.c | 21 +++++++++++++++++++++
2 files changed, 23 insertions(+)
diff --git a/dlls/kernel32/tests/console.c b/dlls/kernel32/tests/console.c
index 922a250993..afc91ecfce 100644
--- a/dlls/kernel32/tests/console.c
+++ b/dlls/kernel32/tests/console.c
@@ -3966,6 +3966,8 @@ static void test_pseudo_console_child(HANDLE input)
ret = SetConsoleMode(input, mode | ENABLE_AUTO_POSITION);
ok(ret, "SetConsoleMode failed: %u\n", GetLastError());
+
+ test_console_title();
}
static DWORD WINAPI read_pipe_proc( void *handle )
diff --git a/programs/conhost/conhost.c b/programs/conhost/conhost.c
index 7f1978bffb..c658deb1cf 100644
--- a/programs/conhost/conhost.c
+++ b/programs/conhost/conhost.c
@@ -73,6 +73,23 @@ static void *alloc_ioctl_buffer( size_t size )
return ioctl_buffer;
}
+static NTSTATUS set_console_title( struct console *console, const WCHAR *in_title, size_t size )
+{
+ WCHAR *title = NULL;
+
+ TRACE( "%s\n", debugstr_wn(in_title, size) );
+
+ if (size)
+ {
+ if (!(title = malloc( size ))) return STATUS_NO_MEMORY;
+ memcpy( title, in_title, size );
+ }
+ free( console->title );
+ console->title = title;
+ console->title_len = size;
+ return STATUS_SUCCESS;
+}
+
static NTSTATUS console_input_ioctl( struct console *console, unsigned int code, const void *in_data,
size_t in_size, size_t *out_size )
{
@@ -180,6 +197,10 @@ static NTSTATUS console_input_ioctl( struct console *console, unsigned int code,
return STATUS_SUCCESS;
}
+ case IOCTL_CONDRV_SET_TITLE:
+ if (in_size % sizeof(WCHAR) || *out_size) return STATUS_INVALID_PARAMETER;
+ return set_console_title( console, in_data, in_size );
+
default:
FIXME( "unsupported ioctl %x\n", code );
return STATUS_NOT_SUPPORTED;
More information about the wine-cvs
mailing list