server: Return the data for winevent hooks in the varargs part of the get_message request.
diff --git a/server/queue.c b/server/queue.c
index 90499cc..a7aa5c8 100644
--- a/server/queue.c
+++ b/server/queue.c
@@ -76,8 +76,6 @@
int x; /* x position */
int y; /* y position */
unsigned int time; /* message time */
- user_handle_t hook; /* winevent hook handle */
- void *hook_proc; /* winevent hook proc address */
void *data; /* message data for sent messages */
unsigned int data_size; /* size of message data */
unsigned int unique_id; /* unique id for nested hw message waits */
@@ -550,8 +548,6 @@
callback_msg->x = 0;
callback_msg->y = 0;
callback_msg->info = callback_data;
- callback_msg->hook = 0;
- callback_msg->hook_proc = NULL;
callback_msg->result = NULL;
callback_msg->data = NULL;
callback_msg->data_size = 0;
@@ -596,8 +592,6 @@
reply->y = msg->y;
reply->time = msg->time;
reply->info = msg->info;
- reply->hook = msg->hook;
- reply->hook_proc = msg->hook_proc;
if (msg->data) set_reply_data_ptr( msg->data, msg->data_size );
@@ -1458,8 +1452,6 @@
msg->x = 0;
msg->y = 0;
msg->info = 0;
- msg->hook = 0;
- msg->hook_proc = NULL;
msg->result = NULL;
msg->data = NULL;
msg->data_size = 0;
@@ -1481,6 +1473,8 @@
if (thread->queue && (msg = mem_alloc( sizeof(*msg) )))
{
+ struct winevent_msg_data *data;
+
msg->type = MSG_WINEVENT;
msg->win = get_user_full_handle( win );
msg->msg = event;
@@ -1489,15 +1483,18 @@
msg->time = get_tick_count();
msg->x = 0;
msg->y = 0;
- msg->info = get_thread_id( current );
+ msg->info = 0;
msg->result = NULL;
- msg->hook = hook;
- msg->hook_proc = hook_proc;
- if ((msg->data = malloc( module_size )))
+ if ((data = malloc( sizeof(*data) + module_size )))
{
- msg->data_size = module_size;
- memcpy( msg->data, module, module_size );
+ data->hook = hook;
+ data->tid = get_thread_id( current );
+ data->hook_proc = hook_proc;
+ memcpy( data + 1, module, module_size );
+
+ msg->data = data;
+ msg->data_size = sizeof(*data) + module_size;
if (debug_level > 1)
fprintf( stderr, "post_win_event: tid %04x event %04x win %p object_id %d child_id %d\n",
@@ -1589,8 +1586,6 @@
msg->x = 0;
msg->y = 0;
msg->info = req->info;
- msg->hook = 0;
- msg->hook_proc = NULL;
msg->result = NULL;
msg->data = NULL;
msg->data_size = 0;
@@ -1671,8 +1666,6 @@
msg->x = req->x;
msg->y = req->y;
msg->info = req->info;
- msg->hook = 0;
- msg->hook_proc = NULL;
msg->result = NULL;
msg->data = NULL;
msg->data_size = 0;