Commit 2c229968 authored by Alexandre Julliard's avatar Alexandre Julliard

user: Implementation of Get/SetWindowLongPtr for 64-bit platforms.

Also use the same code for Get/SetWindowWord. Based on a patch by Ge van Geldorp.
parent b73dca23
......@@ -1183,7 +1183,7 @@ static LRESULT handle_internal_message( HWND hwnd, UINT msg, WPARAM wparam, LPAR
if (hwnd == GetDesktopWindow()) return 0;
return (LRESULT)SetParent( hwnd, (HWND)wparam );
case WM_WINE_SETWINDOWLONG:
return (LRESULT)SetWindowLongW( hwnd, wparam, lparam );
return WIN_SetWindowLong( hwnd, (short)LOWORD(wparam), HIWORD(wparam), lparam, TRUE );
case WM_WINE_ENABLEWINDOW:
if (hwnd == GetDesktopWindow()) return 0;
return EnableWindow( hwnd, wparam );
......
......@@ -83,6 +83,7 @@ extern LRESULT WIN_DestroyWindow( HWND hwnd );
extern void WIN_DestroyThreadWindows( HWND hwnd );
extern BOOL WIN_IsWindowDrawable( HWND hwnd, BOOL );
extern HWND *WIN_ListChildren( HWND hwnd );
extern LONG_PTR WIN_SetWindowLong( HWND hwnd, INT offset, UINT size, LONG_PTR newval, BOOL unicode );
extern void MDI_CalcDefaultChildPos( HWND hwndClient, INT total, LPPOINT lpPos, INT delta, UINT *id );
/* user lock */
......
......@@ -2608,7 +2608,7 @@ struct set_window_info_request
void* user_data;
int extra_offset;
data_size_t extra_size;
unsigned int extra_value;
unsigned long extra_value;
};
struct set_window_info_reply
{
......@@ -2618,7 +2618,7 @@ struct set_window_info_reply
unsigned int old_id;
void* old_instance;
void* old_user_data;
unsigned int old_extra_value;
unsigned long old_extra_value;
};
#define SET_WIN_STYLE 0x01
#define SET_WIN_EXSTYLE 0x02
......@@ -4385,6 +4385,6 @@ union generic_reply
struct query_symlink_reply query_symlink_reply;
};
#define SERVER_PROTOCOL_VERSION 243
#define SERVER_PROTOCOL_VERSION 244
#endif /* __WINE_WINE_SERVER_PROTOCOL_H */
......@@ -1854,14 +1854,14 @@ enum message_type
void* user_data; /* user-specific data */
int extra_offset; /* offset to set in extra bytes */
data_size_t extra_size; /* size to set in extra bytes */
unsigned int extra_value; /* value to set in extra bytes */
unsigned long extra_value; /* value to set in extra bytes */
@REPLY
unsigned int old_style; /* old window style */
unsigned int old_ex_style; /* old window extended style */
unsigned int old_id; /* old window id */
void* old_instance; /* old creator instance */
void* old_user_data; /* old user-specific data */
unsigned int old_extra_value; /* old value in extra bytes */
unsigned long old_extra_value; /* old value in extra bytes */
@END
#define SET_WIN_STYLE 0x01
#define SET_WIN_EXSTYLE 0x02
......
......@@ -2372,7 +2372,7 @@ static void dump_set_window_info_request( const struct set_window_info_request *
fprintf( stderr, " user_data=%p,", req->user_data );
fprintf( stderr, " extra_offset=%d,", req->extra_offset );
fprintf( stderr, " extra_size=%u,", req->extra_size );
fprintf( stderr, " extra_value=%08x", req->extra_value );
fprintf( stderr, " extra_value=%lx", req->extra_value );
}
static void dump_set_window_info_reply( const struct set_window_info_reply *req )
......@@ -2382,7 +2382,7 @@ static void dump_set_window_info_reply( const struct set_window_info_reply *req
fprintf( stderr, " old_id=%08x,", req->old_id );
fprintf( stderr, " old_instance=%p,", req->old_instance );
fprintf( stderr, " old_user_data=%p,", req->old_user_data );
fprintf( stderr, " old_extra_value=%08x", req->old_extra_value );
fprintf( stderr, " old_extra_value=%lx", req->old_extra_value );
}
static void dump_set_parent_request( const struct set_parent_request *req )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment