https://git.reactos.org/?p=reactos.git;a=commitdiff;h=9285bd19dedc1331f9effe9741282e06c629e58f

commit 9285bd19dedc1331f9effe9741282e06c629e58f
Author:     Katayama Hirofumi MZ <[email protected]>
AuthorDate: Tue Jan 15 19:40:34 2019 +0900
Commit:     GitHub <[email protected]>
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);
 }
 

Reply via email to