From b09487fb449f510eb0c51f1858c143acc1edaf1f Mon Sep 17 00:00:00 2001 From: Katayama Hirofumi MZ Date: Sat, 1 Dec 2018 20:59:07 +0900 Subject: [PATCH] [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(-) create mode 100644 win32ss/user/ntuser/ghost.c create mode 100644 win32ss/user/ntuser/ghost.h diff --git a/win32ss/CMakeLists.txt b/win32ss/CMakeLists.txt index edb253bb5a8..ced54039fc4 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 00000000000..f7a2235c0a7 --- /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@gmail.com) + */ + +#include + +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 00000000000..c348bf14171 --- /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 3f7bcfb03bd..0de5f3f2602 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 386db09cda0..1bdcf38eddc 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"