From 3cd817b53eb99c135dde7dc0f240b71e8219a12b Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Wed, 24 Dec 2008 12:06:18 +0100 Subject: [PATCH] server: Make lparam_t always 64-bit. --- dlls/user32/message.c | 4 +- include/wine/server_protocol.h | 12 ++--- server/protocol.def | 10 ++-- server/trace.c | 91 ++++++++++++++++++++++++---------- tools/make_requests | 2 +- 5 files changed, 78 insertions(+), 41 deletions(-) diff --git a/dlls/user32/message.c b/dlls/user32/message.c index c5c11bacf35..c97b1de6fb1 100644 --- a/dlls/user32/message.c +++ b/dlls/user32/message.c @@ -3584,7 +3584,7 @@ UINT_PTR WINAPI SetTimer( HWND hwnd, UINT_PTR id, UINT timeout, TIMERPROC proc ) req->msg = WM_TIMER; req->id = id; req->rate = max( timeout, SYS_TIMER_RATE ); - req->lparam = (unsigned long)winproc; + req->lparam = (ULONG_PTR)winproc; if (!wine_server_call_err( req )) { ret = reply->id; @@ -3615,7 +3615,7 @@ UINT_PTR WINAPI SetSystemTimer( HWND hwnd, UINT_PTR id, UINT timeout, TIMERPROC req->msg = WM_SYSTIMER; req->id = id; req->rate = max( timeout, SYS_TIMER_RATE ); - req->lparam = (unsigned long)winproc; + req->lparam = (ULONG_PTR)winproc; if (!wine_server_call_err( req )) { ret = reply->id; diff --git a/include/wine/server_protocol.h b/include/wine/server_protocol.h index f059490e7d9..5ff2cf72a57 100644 --- a/include/wine/server_protocol.h +++ b/include/wine/server_protocol.h @@ -22,7 +22,7 @@ typedef unsigned int process_id_t; typedef unsigned int thread_id_t; typedef unsigned int data_size_t; typedef unsigned int ioctl_code_t; -typedef unsigned long lparam_t; +typedef unsigned __int64 lparam_t; typedef unsigned __int64 apc_param_t; typedef unsigned __int64 mem_size_t; typedef unsigned __int64 file_pos_t; @@ -2502,12 +2502,12 @@ struct send_hardware_message_request thread_id_t id; user_handle_t win; unsigned int msg; - unsigned int time; lparam_t wparam; lparam_t lparam; lparam_t info; int x; int y; + unsigned int time; }; struct send_hardware_message_reply { @@ -2546,8 +2546,8 @@ struct get_message_reply struct reply_message_request { struct request_header __header; - lparam_t result; int remove; + lparam_t result; /* VARARG(data,bytes); */ }; struct reply_message_reply @@ -2606,8 +2606,8 @@ struct kill_win_timer_request { struct request_header __header; user_handle_t win; - unsigned int msg; lparam_t id; + unsigned int msg; }; struct kill_win_timer_reply { @@ -3149,8 +3149,8 @@ struct set_window_property_request { struct request_header __header; user_handle_t window; - atom_t atom; lparam_t data; + atom_t atom; /* VARARG(name,unicode_str); */ }; struct set_window_property_reply @@ -5053,6 +5053,6 @@ union generic_reply struct set_window_layered_info_reply set_window_layered_info_reply; }; -#define SERVER_PROTOCOL_VERSION 352 +#define SERVER_PROTOCOL_VERSION 353 #endif /* __WINE_WINE_SERVER_PROTOCOL_H */ diff --git a/server/protocol.def b/server/protocol.def index 5cf8b0403cd..475ae513b95 100644 --- a/server/protocol.def +++ b/server/protocol.def @@ -38,7 +38,7 @@ typedef unsigned int process_id_t; typedef unsigned int thread_id_t; typedef unsigned int data_size_t; typedef unsigned int ioctl_code_t; -typedef unsigned long lparam_t; +typedef unsigned __int64 lparam_t; typedef unsigned __int64 apc_param_t; typedef unsigned __int64 mem_size_t; typedef unsigned __int64 file_pos_t; @@ -1862,12 +1862,12 @@ enum message_type thread_id_t id; /* thread id */ user_handle_t win; /* window handle */ unsigned int msg; /* message code */ - unsigned int time; /* message time */ lparam_t wparam; /* parameters */ lparam_t lparam; /* parameters */ lparam_t info; /* extra info */ int x; /* x position */ int y; /* y position */ + unsigned int time; /* message time */ @END @@ -1895,8 +1895,8 @@ enum message_type /* Reply to a sent message */ @REQ(reply_message) - lparam_t result; /* message result */ int remove; /* should we remove the message? */ + lparam_t result; /* message result */ VARARG(data,bytes); /* message data for sent messages */ @END @@ -1933,8 +1933,8 @@ enum message_type /* Kill a window timer */ @REQ(kill_win_timer) user_handle_t win; /* window handle */ - unsigned int msg; /* message to post */ lparam_t id; /* timer id */ + unsigned int msg; /* message to post */ @END @@ -2307,8 +2307,8 @@ enum message_type /* Set a window property */ @REQ(set_window_property) user_handle_t window; /* handle to the window */ - atom_t atom; /* property atom (if no name specified) */ lparam_t data; /* data to store */ + atom_t atom; /* property atom (if no name specified) */ VARARG(name,unicode_str); /* property name */ @END diff --git a/server/trace.c b/server/trace.c index 27b12ac0b7b..462709efc3f 100644 --- a/server/trace.c +++ b/server/trace.c @@ -605,8 +605,9 @@ static void dump_varargs_properties( data_size_t size ) fputc( '{', stderr ); while (len > 0) { - fprintf( stderr, "{atom=%04x,str=%d,data=%lx}", - prop->atom, prop->string, prop->data ); + fprintf( stderr, "{atom=%04x,str=%d,data=", prop->atom, prop->string ); + dump_uint64( &prop->data ); + fputc( '}', stderr ); prop++; if (--len) fputc( ',', stderr ); } @@ -2344,8 +2345,12 @@ static void dump_send_message_request( const struct send_message_request *req ) fprintf( stderr, " flags=%d,", req->flags ); fprintf( stderr, " win=%08x,", req->win ); fprintf( stderr, " msg=%08x,", req->msg ); - fprintf( stderr, " wparam=%lx,", req->wparam ); - fprintf( stderr, " lparam=%lx,", req->lparam ); + fprintf( stderr, " wparam=" ); + dump_uint64( &req->wparam ); + fprintf( stderr, "," ); + fprintf( stderr, " lparam=" ); + dump_uint64( &req->lparam ); + fprintf( stderr, "," ); fprintf( stderr, " timeout=" ); dump_timeout( &req->timeout ); fprintf( stderr, "," ); @@ -2363,12 +2368,18 @@ static void dump_send_hardware_message_request( const struct send_hardware_messa fprintf( stderr, " id=%04x,", req->id ); fprintf( stderr, " win=%08x,", req->win ); fprintf( stderr, " msg=%08x,", req->msg ); - fprintf( stderr, " time=%08x,", req->time ); - fprintf( stderr, " wparam=%lx,", req->wparam ); - fprintf( stderr, " lparam=%lx,", req->lparam ); - fprintf( stderr, " info=%lx,", req->info ); + fprintf( stderr, " wparam=" ); + dump_uint64( &req->wparam ); + fprintf( stderr, "," ); + fprintf( stderr, " lparam=" ); + dump_uint64( &req->lparam ); + fprintf( stderr, "," ); + fprintf( stderr, " info=" ); + dump_uint64( &req->info ); + fprintf( stderr, "," ); fprintf( stderr, " x=%d,", req->x ); - fprintf( stderr, " y=%d", req->y ); + fprintf( stderr, " y=%d,", req->y ); + fprintf( stderr, " time=%08x", req->time ); } static void dump_get_message_request( const struct get_message_request *req ) @@ -2386,8 +2397,12 @@ static void dump_get_message_reply( const struct get_message_reply *req ) { fprintf( stderr, " win=%08x,", req->win ); fprintf( stderr, " msg=%08x,", req->msg ); - fprintf( stderr, " wparam=%lx,", req->wparam ); - fprintf( stderr, " lparam=%lx,", req->lparam ); + fprintf( stderr, " wparam=" ); + dump_uint64( &req->wparam ); + fprintf( stderr, "," ); + fprintf( stderr, " lparam=" ); + dump_uint64( &req->lparam ); + fprintf( stderr, "," ); fprintf( stderr, " type=%d,", req->type ); fprintf( stderr, " time=%08x,", req->time ); fprintf( stderr, " active_hooks=%08x,", req->active_hooks ); @@ -2398,8 +2413,10 @@ static void dump_get_message_reply( const struct get_message_reply *req ) static void dump_reply_message_request( const struct reply_message_request *req ) { - fprintf( stderr, " result=%lx,", req->result ); fprintf( stderr, " remove=%d,", req->remove ); + fprintf( stderr, " result=" ); + dump_uint64( &req->result ); + fprintf( stderr, "," ); fprintf( stderr, " data=" ); dump_varargs_bytes( cur_size ); } @@ -2418,7 +2435,9 @@ static void dump_get_message_reply_request( const struct get_message_reply_reque static void dump_get_message_reply_reply( const struct get_message_reply_reply *req ) { - fprintf( stderr, " result=%lx,", req->result ); + fprintf( stderr, " result=" ); + dump_uint64( &req->result ); + fprintf( stderr, "," ); fprintf( stderr, " data=" ); dump_varargs_bytes( cur_size ); } @@ -2428,20 +2447,26 @@ static void dump_set_win_timer_request( const struct set_win_timer_request *req fprintf( stderr, " win=%08x,", req->win ); fprintf( stderr, " msg=%08x,", req->msg ); fprintf( stderr, " rate=%08x,", req->rate ); - fprintf( stderr, " id=%lx,", req->id ); - fprintf( stderr, " lparam=%lx", req->lparam ); + fprintf( stderr, " id=" ); + dump_uint64( &req->id ); + fprintf( stderr, "," ); + fprintf( stderr, " lparam=" ); + dump_uint64( &req->lparam ); } static void dump_set_win_timer_reply( const struct set_win_timer_reply *req ) { - fprintf( stderr, " id=%lx", req->id ); + fprintf( stderr, " id=" ); + dump_uint64( &req->id ); } static void dump_kill_win_timer_request( const struct kill_win_timer_request *req ) { fprintf( stderr, " win=%08x,", req->win ); - fprintf( stderr, " msg=%08x,", req->msg ); - fprintf( stderr, " id=%lx", req->id ); + fprintf( stderr, " id=" ); + dump_uint64( &req->id ); + fprintf( stderr, "," ); + fprintf( stderr, " msg=%08x", req->msg ); } static void dump_is_window_hung_request( const struct is_window_hung_request *req ) @@ -2635,10 +2660,13 @@ static void dump_set_window_info_request( const struct set_window_info_request * fprintf( stderr, " id=%08x,", req->id ); fprintf( stderr, " is_unicode=%d,", req->is_unicode ); fprintf( stderr, " instance=%p,", req->instance ); - fprintf( stderr, " user_data=%lx,", req->user_data ); + fprintf( stderr, " user_data=" ); + dump_uint64( &req->user_data ); + fprintf( stderr, "," ); fprintf( stderr, " extra_offset=%d,", req->extra_offset ); fprintf( stderr, " extra_size=%u,", req->extra_size ); - fprintf( stderr, " extra_value=%lx", req->extra_value ); + fprintf( stderr, " extra_value=" ); + dump_uint64( &req->extra_value ); } static void dump_set_window_info_reply( const struct set_window_info_reply *req ) @@ -2647,8 +2675,11 @@ static void dump_set_window_info_reply( const struct set_window_info_reply *req fprintf( stderr, " old_ex_style=%08x,", req->old_ex_style ); fprintf( stderr, " old_id=%08x,", req->old_id ); fprintf( stderr, " old_instance=%p,", req->old_instance ); - fprintf( stderr, " old_user_data=%lx,", req->old_user_data ); - fprintf( stderr, " old_extra_value=%lx", req->old_extra_value ); + fprintf( stderr, " old_user_data=" ); + dump_uint64( &req->old_user_data ); + fprintf( stderr, "," ); + fprintf( stderr, " old_extra_value=" ); + dump_uint64( &req->old_extra_value ); } static void dump_set_parent_request( const struct set_parent_request *req ) @@ -2865,8 +2896,10 @@ static void dump_redraw_window_request( const struct redraw_window_request *req static void dump_set_window_property_request( const struct set_window_property_request *req ) { fprintf( stderr, " window=%08x,", req->window ); + fprintf( stderr, " data=" ); + dump_uint64( &req->data ); + fprintf( stderr, "," ); fprintf( stderr, " atom=%04x,", req->atom ); - fprintf( stderr, " data=%lx,", req->data ); fprintf( stderr, " name=" ); dump_varargs_unicode_str( cur_size ); } @@ -2881,7 +2914,8 @@ static void dump_remove_window_property_request( const struct remove_window_prop static void dump_remove_window_property_reply( const struct remove_window_property_reply *req ) { - fprintf( stderr, " data=%lx", req->data ); + fprintf( stderr, " data=" ); + dump_uint64( &req->data ); } static void dump_get_window_property_request( const struct get_window_property_request *req ) @@ -2894,7 +2928,8 @@ static void dump_get_window_property_request( const struct get_window_property_r static void dump_get_window_property_reply( const struct get_window_property_reply *req ) { - fprintf( stderr, " data=%lx", req->data ); + fprintf( stderr, " data=" ); + dump_uint64( &req->data ); } static void dump_get_window_properties_request( const struct get_window_properties_request *req ) @@ -3300,7 +3335,8 @@ static void dump_set_class_info_request( const struct set_class_info_request *re fprintf( stderr, " instance=%p,", req->instance ); fprintf( stderr, " extra_offset=%d,", req->extra_offset ); fprintf( stderr, " extra_size=%u,", req->extra_size ); - fprintf( stderr, " extra_value=%lx", req->extra_value ); + fprintf( stderr, " extra_value=" ); + dump_uint64( &req->extra_value ); } static void dump_set_class_info_reply( const struct set_class_info_reply *req ) @@ -3310,7 +3346,8 @@ static void dump_set_class_info_reply( const struct set_class_info_reply *req ) fprintf( stderr, " old_extra=%d,", req->old_extra ); fprintf( stderr, " old_win_extra=%d,", req->old_win_extra ); fprintf( stderr, " old_instance=%p,", req->old_instance ); - fprintf( stderr, " old_extra_value=%lx", req->old_extra_value ); + fprintf( stderr, " old_extra_value=" ); + dump_uint64( &req->old_extra_value ); } static void dump_set_clipboard_info_request( const struct set_clipboard_info_request *req ) diff --git a/tools/make_requests b/tools/make_requests index d21d79df837..a2eb1e9055b 100755 --- a/tools/make_requests +++ b/tools/make_requests @@ -36,7 +36,7 @@ my %formats = "user_handle_t" => [ 4, 4, "%08x" ], "process_id_t" => [ 4, 4, "%04x" ], "thread_id_t" => [ 4, 4, "%04x" ], - "lparam_t" => [ 4, 4, "%lx" ], + "lparam_t" => [ 8, 8, "&dump_uint64" ], "apc_param_t" => [ 8, 8, "&dump_uint64" ], "file_pos_t" => [ 8, 8, "&dump_uint64" ], "mem_size_t" => [ 8, 8, "&dump_uint64" ],