https://git.reactos.org/?p=reactos.git;a=commitdiff;h=9285bd19dedc1331f9eff…
commit 9285bd19dedc1331f9effe9741282e06c629e58f
Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com>
AuthorDate: Tue Jan 15 19:40:34 2019 +0900
Commit: GitHub <noreply(a)github.com>
CommitDate: Tue Jan 15 19:40:34 2019 +0900
[WIN32SS][USER32] Ghost is a hung window (#1244)
IsHungAppWindow(a ghost window) == TRUE. CORE-11944
---
win32ss/user/user32/windows/window.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/win32ss/user/user32/windows/window.c b/win32ss/user/user32/windows/window.c
index 7624c63835..4485c24d82 100644
--- a/win32ss/user/user32/windows/window.c
+++ b/win32ss/user/user32/windows/window.c
@@ -1841,6 +1841,18 @@ InternalGetWindowText(HWND hWnd, LPWSTR lpString, int nMaxCount)
BOOL WINAPI
IsHungAppWindow(HWND hwnd)
{
+ UNICODE_STRING ClassName;
+ WCHAR szClass[16];
+ static const UNICODE_STRING GhostClass = RTL_CONSTANT_STRING(L"Ghost");
+
+ /* Ghost is a hung window */
+ RtlInitEmptyUnicodeString(&ClassName, szClass, sizeof(szClass));
+ if (NtUserGetClassName(hwnd, FALSE, &ClassName) &&
+ RtlEqualUnicodeString(&ClassName, &GhostClass, TRUE))
+ {
+ return TRUE;
+ }
+
return (NtUserQueryWindow(hwnd, QUERY_WINDOW_ISHUNG) != 0);
}