From 517b2f624d2f10d737b1365c76692f3e2e9ca59c Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Wed, 10 Dec 2008 16:21:32 +0100 Subject: [PATCH] server: Windows properties are actually generic params, not handles. --- dlls/user32/property.c | 22 +++++++++++----------- include/wine/server_protocol.h | 8 ++++---- server/protocol.def | 8 ++++---- server/trace.c | 10 +++++----- server/window.c | 30 +++++++++++++++--------------- 5 files changed, 39 insertions(+), 39 deletions(-) diff --git a/dlls/user32/property.c b/dlls/user32/property.c index c6da0ab385c..d5b1bfdf514 100644 --- a/dlls/user32/property.c +++ b/dlls/user32/property.c @@ -130,17 +130,17 @@ HANDLE WINAPI GetPropA( HWND hwnd, LPCSTR str ) */ HANDLE WINAPI GetPropW( HWND hwnd, LPCWSTR str ) { - HANDLE ret = 0; + ULONG_PTR ret = 0; SERVER_START_REQ( get_window_property ) { req->window = wine_server_user_handle( hwnd ); if (!HIWORD(str)) req->atom = LOWORD(str); else wine_server_add_data( req, str, strlenW(str) * sizeof(WCHAR) ); - if (!wine_server_call_err( req )) ret = wine_server_ptr_handle( reply->handle ); + if (!wine_server_call_err( req )) ret = reply->data; } SERVER_END_REQ; - return ret; + return (HANDLE)ret; } @@ -167,7 +167,7 @@ BOOL WINAPI SetPropW( HWND hwnd, LPCWSTR str, HANDLE handle ) SERVER_START_REQ( set_window_property ) { req->window = wine_server_user_handle( hwnd ); - req->handle = wine_server_obj_handle( handle ); + req->data = (ULONG_PTR)handle; if (!HIWORD(str)) req->atom = LOWORD(str); else wine_server_add_data( req, str, strlenW(str) * sizeof(WCHAR) ); ret = !wine_server_call_err( req ); @@ -195,18 +195,18 @@ HANDLE WINAPI RemovePropA( HWND hwnd, LPCSTR str ) */ HANDLE WINAPI RemovePropW( HWND hwnd, LPCWSTR str ) { - HANDLE ret = 0; + ULONG_PTR ret = 0; SERVER_START_REQ( remove_window_property ) { req->window = wine_server_user_handle( hwnd ); if (!HIWORD(str)) req->atom = LOWORD(str); else wine_server_add_data( req, str, strlenW(str) * sizeof(WCHAR) ); - if (!wine_server_call_err( req )) ret = wine_server_ptr_handle( reply->handle ); + if (!wine_server_call_err( req )) ret = reply->data; } SERVER_END_REQ; - return ret; + return (HANDLE)ret; } @@ -224,7 +224,7 @@ INT WINAPI EnumPropsExA(HWND hwnd, PROPENUMPROCEXA func, LPARAM lParam) { char string[ATOM_BUFFER_SIZE]; if (!GlobalGetAtomNameA( list[i].atom, string, ATOM_BUFFER_SIZE )) continue; - if (!(ret = func( hwnd, string, wine_server_ptr_handle(list[i].handle), lParam ))) break; + if (!(ret = func( hwnd, string, (HANDLE)(ULONG_PTR)list[i].data, lParam ))) break; } HeapFree( GetProcessHeap(), 0, list ); } @@ -246,7 +246,7 @@ INT WINAPI EnumPropsExW(HWND hwnd, PROPENUMPROCEXW func, LPARAM lParam) { WCHAR string[ATOM_BUFFER_SIZE]; if (!GlobalGetAtomNameW( list[i].atom, string, ATOM_BUFFER_SIZE )) continue; - if (!(ret = func( hwnd, string, wine_server_ptr_handle(list[i].handle), lParam ))) break; + if (!(ret = func( hwnd, string, (HANDLE)(ULONG_PTR)list[i].data, lParam ))) break; } HeapFree( GetProcessHeap(), 0, list ); } @@ -277,14 +277,14 @@ INT16 WINAPI EnumProps16( HWND16 hwnd, PROPENUMPROC16 func ) args[3] = hwnd; args[2] = SELECTOROF(segptr); args[1] = OFFSETOF(segptr); - args[0] = LOWORD(wine_server_ptr_handle(list[i].handle)); + args[0] = LOWORD(list[i].data); } else { args[3] = hwnd; args[2] = 0; args[1] = list[i].atom; - args[0] = LOWORD(wine_server_ptr_handle(list[i].handle)); + args[0] = LOWORD(list[i].data); } WOWCallback16Ex( (DWORD)func, WCB16_PASCAL, sizeof(args), args, &result ); if (!(ret = LOWORD(result))) break; diff --git a/include/wine/server_protocol.h b/include/wine/server_protocol.h index 28f8b224d0b..963eaa3ead1 100644 --- a/include/wine/server_protocol.h +++ b/include/wine/server_protocol.h @@ -144,7 +144,7 @@ typedef struct { atom_t atom; short string; - obj_handle_t handle; + lparam_t data; } property_data_t; @@ -3144,7 +3144,7 @@ struct set_window_property_request struct request_header __header; user_handle_t window; atom_t atom; - obj_handle_t handle; + lparam_t data; /* VARARG(name,unicode_str); */ }; struct set_window_property_reply @@ -3164,7 +3164,7 @@ struct remove_window_property_request struct remove_window_property_reply { struct reply_header __header; - obj_handle_t handle; + lparam_t data; }; @@ -3179,7 +3179,7 @@ struct get_window_property_request struct get_window_property_reply { struct reply_header __header; - obj_handle_t handle; + lparam_t data; }; diff --git a/server/protocol.def b/server/protocol.def index 2d69c190ddd..7b345231d66 100644 --- a/server/protocol.def +++ b/server/protocol.def @@ -160,7 +160,7 @@ typedef struct { atom_t atom; /* property atom */ short string; /* was atom a string originally? */ - obj_handle_t handle; /* handle stored in property */ + lparam_t data; /* data stored in property */ } property_data_t; /* structure to specify window rectangles */ @@ -2302,7 +2302,7 @@ enum message_type @REQ(set_window_property) user_handle_t window; /* handle to the window */ atom_t atom; /* property atom (if no name specified) */ - obj_handle_t handle; /* handle to store */ + lparam_t data; /* data to store */ VARARG(name,unicode_str); /* property name */ @END @@ -2313,7 +2313,7 @@ enum message_type atom_t atom; /* property atom (if no name specified) */ VARARG(name,unicode_str); /* property name */ @REPLY - obj_handle_t handle; /* handle stored in property */ + lparam_t data; /* data stored in property */ @END @@ -2323,7 +2323,7 @@ enum message_type atom_t atom; /* property atom (if no name specified) */ VARARG(name,unicode_str); /* property name */ @REPLY - obj_handle_t handle; /* handle stored in property */ + lparam_t data; /* data stored in property */ @END diff --git a/server/trace.c b/server/trace.c index 9f1585516d0..31afbb0b1de 100644 --- a/server/trace.c +++ b/server/trace.c @@ -590,8 +590,8 @@ static void dump_varargs_properties( data_size_t size ) fputc( '{', stderr ); while (len > 0) { - fprintf( stderr, "{atom=%04x,str=%d,handle=%04x}", - prop->atom, prop->string, prop->handle ); + fprintf( stderr, "{atom=%04x,str=%d,data=%lx}", + prop->atom, prop->string, prop->data ); prop++; if (--len) fputc( ',', stderr ); } @@ -2855,7 +2855,7 @@ static void dump_set_window_property_request( const struct set_window_property_r { fprintf( stderr, " window=%08x,", req->window ); fprintf( stderr, " atom=%04x,", req->atom ); - fprintf( stderr, " handle=%04x,", req->handle ); + fprintf( stderr, " data=%lx,", req->data ); fprintf( stderr, " name=" ); dump_varargs_unicode_str( cur_size ); } @@ -2870,7 +2870,7 @@ 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, " handle=%04x", req->handle ); + fprintf( stderr, " data=%lx", req->data ); } static void dump_get_window_property_request( const struct get_window_property_request *req ) @@ -2883,7 +2883,7 @@ 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, " handle=%04x", req->handle ); + fprintf( stderr, " data=%lx", req->data ); } static void dump_get_window_properties_request( const struct get_window_properties_request *req ) diff --git a/server/window.c b/server/window.c index 2fa61647014..8f57a7a84e3 100644 --- a/server/window.c +++ b/server/window.c @@ -44,7 +44,7 @@ struct property { unsigned short type; /* property type (see below) */ atom_t atom; /* property atom */ - obj_handle_t handle; /* property handle (user-defined storage) */ + lparam_t data; /* property data (user-defined storage) */ }; enum property_type @@ -262,7 +262,7 @@ static int add_handle_to_array( struct user_handle_array *array, user_handle_t h } /* set a window property */ -static void set_property( struct window *win, atom_t atom, obj_handle_t handle, enum property_type type ) +static void set_property( struct window *win, atom_t atom, lparam_t data, enum property_type type ) { int i, free = -1; struct property *new_props; @@ -278,7 +278,7 @@ static void set_property( struct window *win, atom_t atom, obj_handle_t handle, if (win->properties[i].atom == atom) { win->properties[i].type = type; - win->properties[i].handle = handle; + win->properties[i].data = data; return; } } @@ -303,13 +303,13 @@ static void set_property( struct window *win, atom_t atom, obj_handle_t handle, } free = win->prop_inuse++; } - win->properties[free].atom = atom; - win->properties[free].type = type; - win->properties[free].handle = handle; + win->properties[free].atom = atom; + win->properties[free].type = type; + win->properties[free].data = data; } /* remove a window property */ -static obj_handle_t remove_property( struct window *win, atom_t atom ) +static lparam_t remove_property( struct window *win, atom_t atom ) { int i; @@ -320,7 +320,7 @@ static obj_handle_t remove_property( struct window *win, atom_t atom ) { release_global_atom( NULL, atom ); win->properties[i].type = PROP_TYPE_FREE; - return win->properties[i].handle; + return win->properties[i].data; } } /* FIXME: last error? */ @@ -328,14 +328,14 @@ static obj_handle_t remove_property( struct window *win, atom_t atom ) } /* find a window property */ -static obj_handle_t get_property( struct window *win, atom_t atom ) +static lparam_t get_property( struct window *win, atom_t atom ) { int i; for (i = 0; i < win->prop_inuse; i++) { if (win->properties[i].type == PROP_TYPE_FREE) continue; - if (win->properties[i].atom == atom) return win->properties[i].handle; + if (win->properties[i].atom == atom) return win->properties[i].data; } /* FIXME: last error? */ return 0; @@ -2358,11 +2358,11 @@ DECL_HANDLER(set_window_property) atom_t atom = add_global_atom( NULL, &name ); if (atom) { - set_property( win, atom, req->handle, PROP_TYPE_STRING ); + set_property( win, atom, req->data, PROP_TYPE_STRING ); release_global_atom( NULL, atom ); } } - else set_property( win, req->atom, req->handle, PROP_TYPE_ATOM ); + else set_property( win, req->atom, req->data, PROP_TYPE_ATOM ); } @@ -2376,7 +2376,7 @@ DECL_HANDLER(remove_window_property) if (win) { atom_t atom = name.len ? find_global_atom( NULL, &name ) : req->atom; - if (atom) reply->handle = remove_property( win, atom ); + if (atom) reply->data = remove_property( win, atom ); } } @@ -2391,7 +2391,7 @@ DECL_HANDLER(get_window_property) if (win) { atom_t atom = name.len ? find_global_atom( NULL, &name ) : req->atom; - if (atom) reply->handle = get_property( win, atom ); + if (atom) reply->data = get_property( win, atom ); } } @@ -2418,7 +2418,7 @@ DECL_HANDLER(get_window_properties) if (win->properties[i].type == PROP_TYPE_FREE) continue; data->atom = win->properties[i].atom; data->string = (win->properties[i].type == PROP_TYPE_STRING); - data->handle = win->properties[i].handle; + data->data = win->properties[i].data; data++; count--; }