Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
7a45d2fa
Commit
7a45d2fa
authored
Jun 13, 2018
by
Nikolay Sivov
Committed by
Alexandre Julliard
Jun 13, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
user32: Fix returned class name for other process windows.
Signed-off-by:
Nikolay Sivov
<
nsivov@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
6dd9b838
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
32 additions
and
14 deletions
+32
-14
class.c
dlls/user32/class.c
+13
-1
server_protocol.h
include/wine/server_protocol.h
+5
-3
class.c
server/class.c
+1
-0
protocol.def
server/protocol.def
+3
-2
request.h
server/request.h
+7
-6
trace.c
server/trace.c
+3
-2
No files found.
dlls/user32/class.c
View file @
7a45d2fa
...
...
@@ -1194,8 +1194,20 @@ INT WINAPI GetClassNameW( HWND hwnd, LPWSTR buffer, INT count )
if
(
class
==
CLASS_OTHER_PROCESS
)
{
WCHAR
tmpbuf
[
MAX_ATOM_LEN
+
1
];
ATOM
atom
=
0
;
ret
=
GlobalGetAtomNameW
(
GetClassLongW
(
hwnd
,
GCW_ATOM
),
tmpbuf
,
MAX_ATOM_LEN
+
1
);
SERVER_START_REQ
(
set_class_info
)
{
req
->
window
=
wine_server_user_handle
(
hwnd
);
req
->
flags
=
0
;
req
->
extra_offset
=
-
1
;
req
->
extra_size
=
0
;
if
(
!
wine_server_call_err
(
req
))
atom
=
reply
->
base_atom
;
}
SERVER_END_REQ
;
ret
=
GlobalGetAtomNameW
(
atom
,
tmpbuf
,
MAX_ATOM_LEN
+
1
);
if
(
ret
)
{
ret
=
min
(
count
-
1
,
ret
);
...
...
include/wine/server_protocol.h
View file @
7a45d2fa
...
...
@@ -4525,11 +4525,13 @@ struct set_class_info_reply
{
struct
reply_header
__header
;
atom_t
old_atom
;
atom_t
base_atom
;
mod_handle_t
old_instance
;
lparam_t
old_extra_value
;
unsigned
int
old_style
;
int
old_extra
;
int
old_win_extra
;
mod_handle_t
old_instance
;
lparam_t
old_extra_value
;
char
__pad_44
[
4
];
};
#define SET_CLASS_ATOM 0x0001
#define SET_CLASS_STYLE 0x0002
...
...
@@ -6512,6 +6514,6 @@ union generic_reply
struct
terminate_job_reply
terminate_job_reply
;
};
#define SERVER_PROTOCOL_VERSION 55
4
#define SERVER_PROTOCOL_VERSION 55
5
#endif
/* __WINE_WINE_SERVER_PROTOCOL_H */
server/class.c
View file @
7a45d2fa
...
...
@@ -276,6 +276,7 @@ DECL_HANDLER(set_class_info)
reply
->
old_extra
=
class
->
nb_extra_bytes
;
reply
->
old_win_extra
=
class
->
win_extra
;
reply
->
old_instance
=
class
->
instance
;
reply
->
base_atom
=
class
->
base_atom
;
if
(
req
->
flags
&
SET_CLASS_ATOM
)
{
...
...
server/protocol.def
View file @
7a45d2fa
...
...
@@ -3179,11 +3179,12 @@ enum caret_state
lparam_t extra_value; /* value to set in extra bytes */
@REPLY
atom_t old_atom; /* previous class atom */
atom_t base_atom; /* base class atom */
mod_handle_t old_instance; /* previous module instance */
lparam_t old_extra_value; /* old value in extra bytes */
unsigned int old_style; /* previous class style */
int old_extra; /* previous number of class extra bytes */
int old_win_extra; /* previous number of window extra bytes */
mod_handle_t old_instance; /* previous module instance */
lparam_t old_extra_value; /* old value in extra bytes */
@END
#define SET_CLASS_ATOM 0x0001
#define SET_CLASS_STYLE 0x0002
...
...
server/request.h
View file @
7a45d2fa
...
...
@@ -2056,12 +2056,13 @@ C_ASSERT( FIELD_OFFSET(struct set_class_info_request, extra_size) == 44 );
C_ASSERT
(
FIELD_OFFSET
(
struct
set_class_info_request
,
extra_value
)
==
48
);
C_ASSERT
(
sizeof
(
struct
set_class_info_request
)
==
56
);
C_ASSERT
(
FIELD_OFFSET
(
struct
set_class_info_reply
,
old_atom
)
==
8
);
C_ASSERT
(
FIELD_OFFSET
(
struct
set_class_info_reply
,
old_style
)
==
12
);
C_ASSERT
(
FIELD_OFFSET
(
struct
set_class_info_reply
,
old_extra
)
==
16
);
C_ASSERT
(
FIELD_OFFSET
(
struct
set_class_info_reply
,
old_win_extra
)
==
20
);
C_ASSERT
(
FIELD_OFFSET
(
struct
set_class_info_reply
,
old_instance
)
==
24
);
C_ASSERT
(
FIELD_OFFSET
(
struct
set_class_info_reply
,
old_extra_value
)
==
32
);
C_ASSERT
(
sizeof
(
struct
set_class_info_reply
)
==
40
);
C_ASSERT
(
FIELD_OFFSET
(
struct
set_class_info_reply
,
base_atom
)
==
12
);
C_ASSERT
(
FIELD_OFFSET
(
struct
set_class_info_reply
,
old_instance
)
==
16
);
C_ASSERT
(
FIELD_OFFSET
(
struct
set_class_info_reply
,
old_extra_value
)
==
24
);
C_ASSERT
(
FIELD_OFFSET
(
struct
set_class_info_reply
,
old_style
)
==
32
);
C_ASSERT
(
FIELD_OFFSET
(
struct
set_class_info_reply
,
old_extra
)
==
36
);
C_ASSERT
(
FIELD_OFFSET
(
struct
set_class_info_reply
,
old_win_extra
)
==
40
);
C_ASSERT
(
sizeof
(
struct
set_class_info_reply
)
==
48
);
C_ASSERT
(
FIELD_OFFSET
(
struct
open_clipboard_request
,
window
)
==
12
);
C_ASSERT
(
sizeof
(
struct
open_clipboard_request
)
==
16
);
C_ASSERT
(
FIELD_OFFSET
(
struct
open_clipboard_reply
,
owner
)
==
8
);
...
...
server/trace.c
View file @
7a45d2fa
...
...
@@ -3795,11 +3795,12 @@ static void dump_set_class_info_request( const struct set_class_info_request *re
static
void
dump_set_class_info_reply
(
const
struct
set_class_info_reply
*
req
)
{
fprintf
(
stderr
,
" old_atom=%04x"
,
req
->
old_atom
);
fprintf
(
stderr
,
", base_atom=%04x"
,
req
->
base_atom
);
dump_uint64
(
", old_instance="
,
&
req
->
old_instance
);
dump_uint64
(
", old_extra_value="
,
&
req
->
old_extra_value
);
fprintf
(
stderr
,
", old_style=%08x"
,
req
->
old_style
);
fprintf
(
stderr
,
", old_extra=%d"
,
req
->
old_extra
);
fprintf
(
stderr
,
", old_win_extra=%d"
,
req
->
old_win_extra
);
dump_uint64
(
", old_instance="
,
&
req
->
old_instance
);
dump_uint64
(
", old_extra_value="
,
&
req
->
old_extra_value
);
}
static
void
dump_open_clipboard_request
(
const
struct
open_clipboard_request
*
req
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment