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
c8f1d411
Commit
c8f1d411
authored
Dec 09, 2022
by
Jacek Caban
Committed by
Alexandre Julliard
Dec 09, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
win32u: Move NtUserSetShellWindowEx implementation from user32.
parent
67c3fff7
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
58 additions
and
48 deletions
+58
-48
focus.c
dlls/user32/focus.c
+2
-45
user32.spec
dlls/user32/user32.spec
+1
-1
input.c
dlls/win32u/input.c
+42
-0
syscall.c
dlls/win32u/syscall.c
+1
-0
win32u.spec
dlls/win32u/win32u.spec
+1
-1
syscall.h
dlls/wow64win/syscall.h
+1
-0
user.c
dlls/wow64win/user.c
+8
-0
ntuser.h
include/ntuser.h
+2
-1
No files found.
dlls/user32/focus.c
View file @
c8f1d411
...
...
@@ -55,55 +55,12 @@ HWND WINAPI GetFocus(void)
}
/***********************************************************************
* SetShellWindowEx (USER32.@)
* hwndShell = Progman[Program Manager]
* |-> SHELLDLL_DefView
* hwndListView = | |-> SysListView32
* | | |-> tooltips_class32
* | |
* | |-> SysHeader32
* |
* |-> ProxyTarget
*/
BOOL
WINAPI
SetShellWindowEx
(
HWND
hwndShell
,
HWND
hwndListView
)
{
BOOL
ret
;
if
(
GetShellWindow
())
return
FALSE
;
if
(
GetWindowLongW
(
hwndShell
,
GWL_EXSTYLE
)
&
WS_EX_TOPMOST
)
return
FALSE
;
if
(
hwndListView
!=
hwndShell
)
if
(
GetWindowLongW
(
hwndListView
,
GWL_EXSTYLE
)
&
WS_EX_TOPMOST
)
return
FALSE
;
if
(
hwndListView
&&
hwndListView
!=
hwndShell
)
NtUserSetWindowPos
(
hwndListView
,
HWND_BOTTOM
,
0
,
0
,
0
,
0
,
SWP_NOMOVE
|
SWP_NOSIZE
|
SWP_NOACTIVATE
);
NtUserSetWindowPos
(
hwndShell
,
HWND_BOTTOM
,
0
,
0
,
0
,
0
,
SWP_NOMOVE
|
SWP_NOSIZE
|
SWP_NOACTIVATE
);
SERVER_START_REQ
(
set_global_windows
)
{
req
->
flags
=
SET_GLOBAL_SHELL_WINDOWS
;
req
->
shell_window
=
wine_server_user_handle
(
hwndShell
);
req
->
shell_listview
=
wine_server_user_handle
(
hwndListView
);
ret
=
!
wine_server_call_err
(
req
);
}
SERVER_END_REQ
;
return
ret
;
}
/*******************************************************************
* SetShellWindow (USER32.@)
*/
BOOL
WINAPI
SetShellWindow
(
HWND
hwndShell
)
BOOL
WINAPI
SetShellWindow
(
HWND
hwnd
)
{
return
SetShellWindowEx
(
hwndShell
,
hwndShell
);
return
NtUserSetShellWindowEx
(
hwnd
,
hwnd
);
}
...
...
dlls/user32/user32.spec
View file @
c8f1d411
...
...
@@ -708,7 +708,7 @@
@ stdcall SetScrollPos(long long long long)
@ stdcall SetScrollRange(long long long long long)
@ stdcall SetShellWindow(long)
@ stdcall SetShellWindowEx
(long long)
@ stdcall SetShellWindowEx
(long long) NtUserSetShellWindowEx
@ stdcall SetSysColors(long ptr ptr) NtUserSetSysColors
@ stdcall SetSysColorsTemp(ptr ptr long)
@ stdcall SetSystemCursor(long long)
...
...
dlls/win32u/input.c
View file @
c8f1d411
...
...
@@ -2165,3 +2165,45 @@ HWND get_shell_window(void)
return
hwnd
;
}
/***********************************************************************
* NtUserSetShellWindowEx (win32u.@)
*/
BOOL
WINAPI
NtUserSetShellWindowEx
(
HWND
shell
,
HWND
list_view
)
{
BOOL
ret
;
/* shell = Progman[Program Manager]
* |-> SHELLDLL_DefView
* list_view = | |-> SysListView32
* | | |-> tooltips_class32
* | |
* | |-> SysHeader32
* |
* |-> ProxyTarget
*/
if
(
get_shell_window
())
return
FALSE
;
if
(
get_window_long
(
shell
,
GWL_EXSTYLE
)
&
WS_EX_TOPMOST
)
return
FALSE
;
if
(
list_view
!=
shell
&&
(
get_window_long
(
list_view
,
GWL_EXSTYLE
)
&
WS_EX_TOPMOST
))
return
FALSE
;
if
(
list_view
&&
list_view
!=
shell
)
NtUserSetWindowPos
(
list_view
,
HWND_BOTTOM
,
0
,
0
,
0
,
0
,
SWP_NOMOVE
|
SWP_NOSIZE
|
SWP_NOACTIVATE
);
NtUserSetWindowPos
(
shell
,
HWND_BOTTOM
,
0
,
0
,
0
,
0
,
SWP_NOMOVE
|
SWP_NOSIZE
|
SWP_NOACTIVATE
);
SERVER_START_REQ
(
set_global_windows
)
{
req
->
flags
=
SET_GLOBAL_SHELL_WINDOWS
;
req
->
shell_window
=
wine_server_user_handle
(
shell
);
req
->
shell_listview
=
wine_server_user_handle
(
list_view
);
ret
=
!
wine_server_call_err
(
req
);
}
SERVER_END_REQ
;
return
ret
;
}
dlls/win32u/syscall.c
View file @
c8f1d411
...
...
@@ -273,6 +273,7 @@ static void * const syscalls[] =
NtUserSetProcessWindowStation
,
NtUserSetProp
,
NtUserSetScrollInfo
,
NtUserSetShellWindowEx
,
NtUserSetSysColors
,
NtUserSetSystemMenu
,
NtUserSetSystemTimer
,
...
...
dlls/win32u/win32u.spec
View file @
c8f1d411
...
...
@@ -1226,7 +1226,7 @@
@ stdcall -syscall NtUserSetScrollInfo(long long ptr long)
@ stub NtUserSetSensorPresence
@ stub NtUserSetSharedWindowData
@ st
ub NtUserSetShellWindowEx
@ st
dcall -syscall NtUserSetShellWindowEx(long long)
@ stdcall -syscall NtUserSetSysColors(long ptr ptr)
@ stub NtUserSetSystemCursor
@ stdcall -syscall NtUserSetSystemMenu(long long)
...
...
dlls/wow64win/syscall.h
View file @
c8f1d411
...
...
@@ -259,6 +259,7 @@
SYSCALL_ENTRY( NtUserSetProcessWindowStation ) \
SYSCALL_ENTRY( NtUserSetProp ) \
SYSCALL_ENTRY( NtUserSetScrollInfo ) \
SYSCALL_ENTRY( NtUserSetShellWindowEx ) \
SYSCALL_ENTRY( NtUserSetSysColors ) \
SYSCALL_ENTRY( NtUserSetSystemMenu ) \
SYSCALL_ENTRY( NtUserSetSystemTimer ) \
...
...
dlls/wow64win/user.c
View file @
c8f1d411
...
...
@@ -3624,6 +3624,14 @@ NTSTATUS WINAPI wow64_NtUserSetScrollInfo( UINT *args )
return
NtUserSetScrollInfo
(
hwnd
,
bar
,
info
,
redraw
);
}
NTSTATUS
WINAPI
wow64_NtUserSetShellWindowEx
(
UINT
*
args
)
{
HWND
shell
=
get_handle
(
&
args
);
HWND
list_view
=
get_handle
(
&
args
);
return
NtUserSetShellWindowEx
(
shell
,
list_view
);
}
NTSTATUS
WINAPI
wow64_NtUserSetSysColors
(
UINT
*
args
)
{
INT
count
=
get_ulong
(
&
args
);
...
...
include/ntuser.h
View file @
c8f1d411
...
...
@@ -803,7 +803,6 @@ DWORD WINAPI NtUserMsgWaitForMultipleObjectsEx( DWORD count, const HANDLE *han
DWORD
timeout
,
DWORD
mask
,
DWORD
flags
);
void
WINAPI
NtUserNotifyWinEvent
(
DWORD
event
,
HWND
hwnd
,
LONG
object_id
,
LONG
child_id
);
HWINSTA
WINAPI
NtUserOpenWindowStation
(
OBJECT_ATTRIBUTES
*
attr
,
ACCESS_MASK
access
);
BOOL
WINAPI
NtUserSetObjectInformation
(
HANDLE
handle
,
INT
index
,
void
*
info
,
DWORD
len
);
BOOL
WINAPI
NtUserOpenClipboard
(
HWND
hwnd
,
ULONG
unk
);
HDESK
WINAPI
NtUserOpenDesktop
(
OBJECT_ATTRIBUTES
*
attr
,
DWORD
flags
,
ACCESS_MASK
access
);
HDESK
WINAPI
NtUserOpenInputDesktop
(
DWORD
flags
,
BOOL
inherit
,
ACCESS_MASK
access
);
...
...
@@ -849,11 +848,13 @@ BOOL WINAPI NtUserSetLayeredWindowAttributes( HWND hwnd, COLORREF key, BYTE a
BOOL
WINAPI
NtUserSetMenu
(
HWND
hwnd
,
HMENU
menu
);
BOOL
WINAPI
NtUserSetMenuContextHelpId
(
HMENU
handle
,
DWORD
id
);
BOOL
WINAPI
NtUserSetMenuDefaultItem
(
HMENU
handle
,
UINT
item
,
UINT
bypos
);
BOOL
WINAPI
NtUserSetObjectInformation
(
HANDLE
handle
,
INT
index
,
void
*
info
,
DWORD
len
);
HWND
WINAPI
NtUserSetParent
(
HWND
hwnd
,
HWND
parent
);
BOOL
WINAPI
NtUserSetProcessDpiAwarenessContext
(
ULONG
awareness
,
ULONG
unknown
);
BOOL
WINAPI
NtUserSetProcessWindowStation
(
HWINSTA
handle
);
BOOL
WINAPI
NtUserSetProp
(
HWND
hwnd
,
const
WCHAR
*
str
,
HANDLE
handle
);
INT
WINAPI
NtUserSetScrollInfo
(
HWND
hwnd
,
INT
bar
,
const
SCROLLINFO
*
info
,
BOOL
redraw
);
BOOL
WINAPI
NtUserSetShellWindowEx
(
HWND
shell
,
HWND
list_view
);
BOOL
WINAPI
NtUserSetSysColors
(
INT
count
,
const
INT
*
colors
,
const
COLORREF
*
values
);
BOOL
WINAPI
NtUserSetSystemMenu
(
HWND
hwnd
,
HMENU
menu
);
UINT_PTR
WINAPI
NtUserSetSystemTimer
(
HWND
hwnd
,
UINT_PTR
id
,
UINT
timeout
);
...
...
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