Store the global shell, progman and taskman windows in the server
(based on a patch by Martin Fuchs).
diff --git a/server/protocol.def b/server/protocol.def
index c895c26..e05d62b 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -2159,3 +2159,21 @@
@END
#define OPEN_TOKEN_THREAD 1
#define OPEN_TOKEN_AS_SELF 2
+
+
+/* Set/get the global windows */
+@REQ(set_global_windows)
+ unsigned int flags; /* flags for fields to set (see below) */
+ user_handle_t shell_window; /* handle to the new shell window */
+ user_handle_t shell_listview; /* handle to the new shell listview window */
+ user_handle_t progman_window; /* handle to the new program manager window */
+ user_handle_t taskman_window; /* handle to the new task manager window */
+@REPLY
+ user_handle_t old_shell_window; /* handle to the shell window */
+ user_handle_t old_shell_listview; /* handle to the shell listview window */
+ user_handle_t old_progman_window; /* handle to the new program manager window */
+ user_handle_t old_taskman_window; /* handle to the new task manager window */
+@END
+#define SET_GLOBAL_SHELL_WINDOWS 0x01 /* set both main shell and listview windows */
+#define SET_GLOBAL_PROGMAN_WINDOW 0x02
+#define SET_GLOBAL_TASKMAN_WINDOW 0x04