[WIN32SS] Add IntGoGhost function (stub) (#1081)
authorKatayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
Sat, 1 Dec 2018 11:59:07 +0000 (20:59 +0900)
committerGitHub <noreply@github.com>
Sat, 1 Dec 2018 11:59:07 +0000 (20:59 +0900)
CORE-11944

win32ss/CMakeLists.txt
win32ss/user/ntuser/ghost.c [new file with mode: 0644]
win32ss/user/ntuser/ghost.h [new file with mode: 0644]
win32ss/user/ntuser/message.c
win32ss/win32kp.h

index edb253b..ced5403 100644 (file)
@@ -118,6 +118,7 @@ list(APPEND SOURCE
     user/ntuser/draw.c
     user/ntuser/event.c
     user/ntuser/focus.c
     user/ntuser/draw.c
     user/ntuser/event.c
     user/ntuser/focus.c
+    user/ntuser/ghost.c
     user/ntuser/guicheck.c
     user/ntuser/hook.c
     user/ntuser/hotkey.c
     user/ntuser/guicheck.c
     user/ntuser/hook.c
     user/ntuser/hotkey.c
diff --git a/win32ss/user/ntuser/ghost.c b/win32ss/user/ntuser/ghost.c
new file mode 100644 (file)
index 0000000..f7a2235
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+ * PROJECT:     ReactOS user32.dll
+ * LICENSE:     GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
+ * PURPOSE:     Ghost window handling
+ * COPYRIGHT:   Copyright 2018 Katayama Hirofumi MZ (katayama.hirofumi.mz@gmail.com)
+ */
+
+#include <win32k.h>
+
+BOOL FASTCALL IntGoGhost(PWND Window, BOOL bGo)
+{
+    // TODO:
+    // 1. Create a thread.
+    // 2. Create a ghost window in the thread.
+    // 3. Do message loop in the thread
+    STUB;
+    return FALSE;
+}
diff --git a/win32ss/user/ntuser/ghost.h b/win32ss/user/ntuser/ghost.h
new file mode 100644 (file)
index 0000000..c348bf1
--- /dev/null
@@ -0,0 +1 @@
+BOOL FASTCALL IntGoGhost(PWND Window, BOOL bGo);
index 3f7bcfb..0de5f3f 100644 (file)
@@ -1433,11 +1433,17 @@ co_IntSendMessageTimeoutSingle( HWND hWnd,
         RETURN( TRUE);
     }
 
         RETURN( TRUE);
     }
 
-    if (uFlags & SMTO_ABORTIFHUNG && MsqIsHung(ptiSendTo))
+    if (MsqIsHung(ptiSendTo))
     {
     {
-        // FIXME: Set window hung and add to a list.
-        /* FIXME: Set a LastError? */
-        RETURN( FALSE);
+        if (uFlags & SMTO_ABORTIFHUNG)
+        {
+            // FIXME: Set window hung and add to a list.
+            /* FIXME: Set a LastError? */
+            RETURN( FALSE);
+        }
+
+        TRACE("Let's go Ghost!\n");
+        IntGoGhost(Window, TRUE);
     }
 
     if (Window->state & WNDS_DESTROYED)
     }
 
     if (Window->state & WNDS_DESTROYED)
index 386db09..1bdcf38 100644 (file)
@@ -99,6 +99,7 @@ typedef struct _DC *PDC;
 #include "user/ntuser/winpos.h"
 #include "user/ntuser/callback.h"
 #include "user/ntuser/mmcopy.h"
 #include "user/ntuser/winpos.h"
 #include "user/ntuser/callback.h"
 #include "user/ntuser/mmcopy.h"
+#include "user/ntuser/ghost.h"
 
 /* CSRSS Interface */
 #include "user/ntuser/csr.h"
 
 /* CSRSS Interface */
 #include "user/ntuser/csr.h"