https://git.reactos.org/?p=reactos.git;a=commitdiff;h=b09487fb449f510eb0c51…
commit b09487fb449f510eb0c51f1858c143acc1edaf1f
Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com>
AuthorDate: Sat Dec 1 20:59:07 2018 +0900
Commit: GitHub <noreply(a)github.com>
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 (katayama.hirofumi.mz(a)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
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"