Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
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-winehq
Commits
79d2e0a9
Commit
79d2e0a9
authored
Aug 23, 2016
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
server: Add a request to return clipboard information.
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
b4991f20
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
74 additions
and
12 deletions
+74
-12
clipboard.c
dlls/user32/clipboard.c
+7
-11
server_protocol.h
include/wine/server_protocol.h
+20
-1
clipboard.c
server/clipboard.c
+14
-0
protocol.def
server/protocol.def
+10
-0
request.h
server/request.h
+8
-0
trace.c
server/trace.c
+15
-0
No files found.
dlls/user32/clipboard.c
View file @
79d2e0a9
...
...
@@ -227,10 +227,9 @@ HWND WINAPI GetClipboardOwner(void)
{
HWND
hWndOwner
=
0
;
SERVER_START_REQ
(
s
et_clipboard_info
)
SERVER_START_REQ
(
g
et_clipboard_info
)
{
req
->
flags
=
0
;
if
(
!
wine_server_call_err
(
req
))
hWndOwner
=
wine_server_ptr_handle
(
reply
->
old_owner
);
if
(
!
wine_server_call_err
(
req
))
hWndOwner
=
wine_server_ptr_handle
(
reply
->
owner
);
}
SERVER_END_REQ
;
...
...
@@ -247,10 +246,9 @@ HWND WINAPI GetOpenClipboardWindow(void)
{
HWND
hWndOpen
=
0
;
SERVER_START_REQ
(
s
et_clipboard_info
)
SERVER_START_REQ
(
g
et_clipboard_info
)
{
req
->
flags
=
0
;
if
(
!
wine_server_call_err
(
req
))
hWndOpen
=
wine_server_ptr_handle
(
reply
->
old_clipboard
);
if
(
!
wine_server_call_err
(
req
))
hWndOpen
=
wine_server_ptr_handle
(
reply
->
window
);
}
SERVER_END_REQ
;
...
...
@@ -292,10 +290,9 @@ HWND WINAPI GetClipboardViewer(void)
{
HWND
hWndViewer
=
0
;
SERVER_START_REQ
(
s
et_clipboard_info
)
SERVER_START_REQ
(
g
et_clipboard_info
)
{
req
->
flags
=
0
;
if
(
!
wine_server_call_err
(
req
))
hWndViewer
=
wine_server_ptr_handle
(
reply
->
old_viewer
);
if
(
!
wine_server_call_err
(
req
))
hWndViewer
=
wine_server_ptr_handle
(
reply
->
viewer
);
}
SERVER_END_REQ
;
...
...
@@ -461,9 +458,8 @@ DWORD WINAPI GetClipboardSequenceNumber(VOID)
{
DWORD
seqno
=
0
;
SERVER_START_REQ
(
s
et_clipboard_info
)
SERVER_START_REQ
(
g
et_clipboard_info
)
{
req
->
flags
=
0
;
if
(
!
wine_server_call_err
(
req
))
seqno
=
reply
->
seqno
;
}
SERVER_END_REQ
;
...
...
include/wine/server_protocol.h
View file @
79d2e0a9
...
...
@@ -4526,6 +4526,22 @@ struct empty_clipboard_reply
struct
get_clipboard_info_request
{
struct
request_header
__header
;
char
__pad_12
[
4
];
};
struct
get_clipboard_info_reply
{
struct
reply_header
__header
;
user_handle_t
window
;
user_handle_t
owner
;
user_handle_t
viewer
;
unsigned
int
seqno
;
};
struct
set_clipboard_viewer_request
{
struct
request_header
__header
;
...
...
@@ -5674,6 +5690,7 @@ enum request
REQ_close_clipboard
,
REQ_set_clipboard_info
,
REQ_empty_clipboard
,
REQ_get_clipboard_info
,
REQ_set_clipboard_viewer
,
REQ_open_token
,
REQ_set_global_windows
,
...
...
@@ -5957,6 +5974,7 @@ union generic_request
struct
close_clipboard_request
close_clipboard_request
;
struct
set_clipboard_info_request
set_clipboard_info_request
;
struct
empty_clipboard_request
empty_clipboard_request
;
struct
get_clipboard_info_request
get_clipboard_info_request
;
struct
set_clipboard_viewer_request
set_clipboard_viewer_request
;
struct
open_token_request
open_token_request
;
struct
set_global_windows_request
set_global_windows_request
;
...
...
@@ -6238,6 +6256,7 @@ union generic_reply
struct
close_clipboard_reply
close_clipboard_reply
;
struct
set_clipboard_info_reply
set_clipboard_info_reply
;
struct
empty_clipboard_reply
empty_clipboard_reply
;
struct
get_clipboard_info_reply
get_clipboard_info_reply
;
struct
set_clipboard_viewer_reply
set_clipboard_viewer_reply
;
struct
open_token_reply
open_token_reply
;
struct
set_global_windows_reply
set_global_windows_reply
;
...
...
@@ -6298,6 +6317,6 @@ union generic_reply
struct
terminate_job_reply
terminate_job_reply
;
};
#define SERVER_PROTOCOL_VERSION 51
1
#define SERVER_PROTOCOL_VERSION 51
2
#endif
/* __WINE_WINE_SERVER_PROTOCOL_H */
server/clipboard.c
View file @
79d2e0a9
...
...
@@ -248,6 +248,20 @@ DECL_HANDLER(empty_clipboard)
}
/* Get clipboard information */
DECL_HANDLER
(
get_clipboard_info
)
{
struct
clipboard
*
clipboard
=
get_process_clipboard
();
if
(
!
clipboard
)
return
;
reply
->
window
=
clipboard
->
open_win
;
reply
->
owner
=
clipboard
->
owner_win
;
reply
->
viewer
=
clipboard
->
viewer
;
reply
->
seqno
=
get_seqno
(
clipboard
);
}
/* set the clipboard viewer window */
DECL_HANDLER
(
set_clipboard_viewer
)
{
...
...
server/protocol.def
View file @
79d2e0a9
...
...
@@ -3199,6 +3199,16 @@ enum caret_state
@END
/* Get clipboard information */
@REQ(get_clipboard_info)
@REPLY
user_handle_t window; /* clipboard window */
user_handle_t owner; /* clipboard owner */
user_handle_t viewer; /* clipboard viewer */
unsigned int seqno; /* current sequence number */
@END
/* Set the clipboard viewer window */
@REQ(set_clipboard_viewer)
user_handle_t viewer; /* clipboard viewer */
...
...
server/request.h
View file @
79d2e0a9
...
...
@@ -330,6 +330,7 @@ DECL_HANDLER(open_clipboard);
DECL_HANDLER
(
close_clipboard
);
DECL_HANDLER
(
set_clipboard_info
);
DECL_HANDLER
(
empty_clipboard
);
DECL_HANDLER
(
get_clipboard_info
);
DECL_HANDLER
(
set_clipboard_viewer
);
DECL_HANDLER
(
open_token
);
DECL_HANDLER
(
set_global_windows
);
...
...
@@ -612,6 +613,7 @@ static const req_handler req_handlers[REQ_NB_REQUESTS] =
(
req_handler
)
req_close_clipboard
,
(
req_handler
)
req_set_clipboard_info
,
(
req_handler
)
req_empty_clipboard
,
(
req_handler
)
req_get_clipboard_info
,
(
req_handler
)
req_set_clipboard_viewer
,
(
req_handler
)
req_open_token
,
(
req_handler
)
req_set_global_windows
,
...
...
@@ -2035,6 +2037,12 @@ C_ASSERT( FIELD_OFFSET(struct set_clipboard_info_reply, old_viewer) == 20 );
C_ASSERT
(
FIELD_OFFSET
(
struct
set_clipboard_info_reply
,
seqno
)
==
24
);
C_ASSERT
(
sizeof
(
struct
set_clipboard_info_reply
)
==
32
);
C_ASSERT
(
sizeof
(
struct
empty_clipboard_request
)
==
16
);
C_ASSERT
(
sizeof
(
struct
get_clipboard_info_request
)
==
16
);
C_ASSERT
(
FIELD_OFFSET
(
struct
get_clipboard_info_reply
,
window
)
==
8
);
C_ASSERT
(
FIELD_OFFSET
(
struct
get_clipboard_info_reply
,
owner
)
==
12
);
C_ASSERT
(
FIELD_OFFSET
(
struct
get_clipboard_info_reply
,
viewer
)
==
16
);
C_ASSERT
(
FIELD_OFFSET
(
struct
get_clipboard_info_reply
,
seqno
)
==
20
);
C_ASSERT
(
sizeof
(
struct
get_clipboard_info_reply
)
==
24
);
C_ASSERT
(
FIELD_OFFSET
(
struct
set_clipboard_viewer_request
,
viewer
)
==
12
);
C_ASSERT
(
FIELD_OFFSET
(
struct
set_clipboard_viewer_request
,
previous
)
==
16
);
C_ASSERT
(
sizeof
(
struct
set_clipboard_viewer_request
)
==
24
);
...
...
server/trace.c
View file @
79d2e0a9
...
...
@@ -3774,6 +3774,18 @@ static void dump_empty_clipboard_request( const struct empty_clipboard_request *
{
}
static
void
dump_get_clipboard_info_request
(
const
struct
get_clipboard_info_request
*
req
)
{
}
static
void
dump_get_clipboard_info_reply
(
const
struct
get_clipboard_info_reply
*
req
)
{
fprintf
(
stderr
,
" window=%08x"
,
req
->
window
);
fprintf
(
stderr
,
", owner=%08x"
,
req
->
owner
);
fprintf
(
stderr
,
", viewer=%08x"
,
req
->
viewer
);
fprintf
(
stderr
,
", seqno=%08x"
,
req
->
seqno
);
}
static
void
dump_set_clipboard_viewer_request
(
const
struct
set_clipboard_viewer_request
*
req
)
{
fprintf
(
stderr
,
" viewer=%08x"
,
req
->
viewer
);
...
...
@@ -4613,6 +4625,7 @@ static const dump_func req_dumpers[REQ_NB_REQUESTS] = {
(
dump_func
)
dump_close_clipboard_request
,
(
dump_func
)
dump_set_clipboard_info_request
,
(
dump_func
)
dump_empty_clipboard_request
,
(
dump_func
)
dump_get_clipboard_info_request
,
(
dump_func
)
dump_set_clipboard_viewer_request
,
(
dump_func
)
dump_open_token_request
,
(
dump_func
)
dump_set_global_windows_request
,
...
...
@@ -4892,6 +4905,7 @@ static const dump_func reply_dumpers[REQ_NB_REQUESTS] = {
(
dump_func
)
dump_close_clipboard_reply
,
(
dump_func
)
dump_set_clipboard_info_reply
,
NULL
,
(
dump_func
)
dump_get_clipboard_info_reply
,
(
dump_func
)
dump_set_clipboard_viewer_reply
,
(
dump_func
)
dump_open_token_reply
,
(
dump_func
)
dump_set_global_windows_reply
,
...
...
@@ -5171,6 +5185,7 @@ static const char * const req_names[REQ_NB_REQUESTS] = {
"close_clipboard"
,
"set_clipboard_info"
,
"empty_clipboard"
,
"get_clipboard_info"
,
"set_clipboard_viewer"
,
"open_token"
,
"set_global_windows"
,
...
...
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