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
b550f34f
Commit
b550f34f
authored
Aug 04, 2006
by
Robert Shearman
Committed by
Alexandre Julliard
Aug 08, 2006
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
user: Make ExitWindowsEx asynchronous by deferring the real work to the explorer process.
parent
5678ec4d
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
19 additions
and
1 deletion
+19
-1
user_main.c
dlls/user/user_main.c
+12
-1
desktop.c
programs/explorer/desktop.c
+7
-0
No files found.
dlls/user/user_main.c
View file @
b550f34f
...
...
@@ -411,6 +411,18 @@ BOOL WINAPI ExitWindowsEx( UINT flags, DWORD reason )
{
TRACE
(
"(%x,%lx)
\n
"
,
flags
,
reason
);
if
(
!
WIN_IsCurrentThread
(
GetDesktopWindow
()
))
{
BOOL
ret
=
PostMessageW
(
GetDesktopWindow
(),
WM_USER
+
666
,
MAKEWPARAM
(
flags
,
0xbabe
),
reason
);
if
(
ret
)
return
TRUE
;
/* this can happen if explorer hasn't been started or created the
* desktop window yet */
WARN
(
"PostMessage failed with error %ld
\n
"
,
GetLastError
());
/* fall through to doing it in the same process */
}
if
((
flags
&
EWX_FORCE
)
==
0
)
{
HWND
*
list
;
...
...
@@ -468,6 +480,5 @@ BOOL WINAPI ExitWindowsEx( UINT flags, DWORD reason )
MESSAGE
(
"wine: Failed to start wineboot
\n
"
);
}
ExitProcess
(
0
);
return
TRUE
;
}
programs/explorer/desktop.c
View file @
b550f34f
...
...
@@ -62,6 +62,13 @@ static LRESULT WINAPI desktop_wnd_proc( HWND hwnd, UINT message, WPARAM wp, LPAR
}
return
0
;
/* simple check to prevent applications accidentally triggering the
* ExitWindowsEx code if they send random messages to the desktop window */
case
WM_USER
+
666
:
if
(
HIWORD
(
wp
)
==
0xbabe
)
return
ExitWindowsEx
(
LOWORD
(
wp
),
lp
);
return
DefWindowProcW
(
hwnd
,
message
,
wp
,
lp
);
default:
return
DefWindowProcW
(
hwnd
,
message
,
wp
,
lp
);
}
...
...
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