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

commit b09487fb449f510eb0c51f1858c143acc1edaf1f
Author:     Katayama Hirofumi MZ <[email protected]>
AuthorDate: Sat Dec 1 20:59:07 2018 +0900
Commit:     GitHub <[email protected]>
CommitDate: Sat Dec 1 20:59:07 2018 +0900

    [WIN32SS] Add IntGoGhost function (stub) (#1081)
    
    CORE-11944
---
 win32ss/CMakeLists.txt        |  1 +
 win32ss/user/ntuser/ghost.c   | 18 ++++++++++++++++++
 win32ss/user/ntuser/ghost.h   |  1 +
 win32ss/user/ntuser/message.c | 14 ++++++++++----
 win32ss/win32kp.h             |  1 +
 5 files changed, 31 insertions(+), 4 deletions(-)

diff --git a/win32ss/CMakeLists.txt b/win32ss/CMakeLists.txt
index edb253bb5a..ced54039fc 100644
--- a/win32ss/CMakeLists.txt
+++ b/win32ss/CMakeLists.txt
@@ -118,6 +118,7 @@ list(APPEND SOURCE
     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
diff --git a/win32ss/user/ntuser/ghost.c b/win32ss/user/ntuser/ghost.c
new file mode 100644
index 0000000000..f7a2235c0a
--- /dev/null
+++ b/win32ss/user/ntuser/ghost.c
@@ -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 
([email protected])
+ */
+
+#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
index 0000000000..c348bf1417
--- /dev/null
+++ b/win32ss/user/ntuser/ghost.h
@@ -0,0 +1 @@
+BOOL FASTCALL IntGoGhost(PWND Window, BOOL bGo);
diff --git a/win32ss/user/ntuser/message.c b/win32ss/user/ntuser/message.c
index 3f7bcfb03b..0de5f3f260 100644
--- a/win32ss/user/ntuser/message.c
+++ b/win32ss/user/ntuser/message.c
@@ -1433,11 +1433,17 @@ co_IntSendMessageTimeoutSingle( HWND hWnd,
         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)
diff --git a/win32ss/win32kp.h b/win32ss/win32kp.h
index 386db09cda..1bdcf38edd 100644
--- a/win32ss/win32kp.h
+++ b/win32ss/win32kp.h
@@ -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/ghost.h"
 
 /* CSRSS Interface */
 #include "user/ntuser/csr.h"

Reply via email to