Jacek Caban : server: Introduce IOCTL_CONDRV_SET_TITLE ioctl.

Alexandre Julliard julliard at winehq.org
Tue Jul 21 15:40:21 CDT 2020


Module: wine
Branch: master
Commit: cb28c2dbb0d92bcddea768bd5d43c5caecba6a0f
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=cb28c2dbb0d92bcddea768bd5d43c5caecba6a0f

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue Jul 21 14:56:42 2020 +0200

server: Introduce IOCTL_CONDRV_SET_TITLE ioctl.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 include/wine/condrv.h |  1 +
 server/console.c      | 21 +++++++++++++++++++++
 2 files changed, 22 insertions(+)

diff --git a/include/wine/condrv.h b/include/wine/condrv.h
index f6888443c9..42ca77d382 100644
--- a/include/wine/condrv.h
+++ b/include/wine/condrv.h
@@ -34,6 +34,7 @@
 #define IOCTL_CONDRV_GET_INPUT_INFO        CTL_CODE(FILE_DEVICE_CONSOLE, 13, METHOD_BUFFERED, FILE_READ_PROPERTIES)
 #define IOCTL_CONDRV_SET_INPUT_INFO        CTL_CODE(FILE_DEVICE_CONSOLE, 14, METHOD_BUFFERED, FILE_WRITE_PROPERTIES)
 #define IOCTL_CONDRV_GET_TITLE             CTL_CODE(FILE_DEVICE_CONSOLE, 15, METHOD_BUFFERED, FILE_READ_PROPERTIES)
+#define IOCTL_CONDRV_SET_TITLE             CTL_CODE(FILE_DEVICE_CONSOLE, 16, METHOD_BUFFERED, FILE_WRITE_PROPERTIES)
 
 /* console output ioctls */
 #define IOCTL_CONDRV_GET_OUTPUT_INFO       CTL_CODE(FILE_DEVICE_CONSOLE, 32, METHOD_BUFFERED, FILE_READ_PROPERTIES)
diff --git a/server/console.c b/server/console.c
index 3a3260645d..df84334448 100644
--- a/server/console.c
+++ b/server/console.c
@@ -1610,6 +1610,27 @@ static int console_input_ioctl( struct fd *fd, ioctl_code_t code, struct async *
         if (!console->title_len) return 1;
         return set_reply_data( console->title, min( console->title_len, get_reply_max_size() )) != NULL;
 
+    case IOCTL_CONDRV_SET_TITLE:
+        {
+            data_size_t len = get_req_data_size();
+            struct condrv_renderer_event evt;
+            WCHAR *title = NULL;
+
+            if (len % sizeof(WCHAR))
+            {
+                set_error( STATUS_INVALID_PARAMETER );
+                return 0;
+            }
+
+            if (len && !(title = memdup( get_req_data(), len ))) return 0;
+            free( console->title );
+            console->title = title;
+            console->title_len = len;
+            evt.event = CONSOLE_RENDERER_TITLE_EVENT;
+            console_input_events_append( console, &evt );
+            return 1;
+        }
+
     default:
         set_error( STATUS_INVALID_HANDLE );
         return 0;




More information about the wine-cvs mailing list