9 modified files
reactos/include/napi
diff -u -r1.15 -r1.16
--- win32.h 5 May 2004 22:47:06 -0000 1.15
+++ win32.h 21 May 2004 10:09:31 -0000 1.16
@@ -31,6 +31,7 @@
struct _KBDTABLES* KeyboardLayout;
struct _WINSTATION_OBJECT* WindowStation;
HANDLE hWindowStation;
+ ULONG Flags;
WORD GDIObjects;
WORD UserObjects;
BOOLEAN CreatedWindowOrDC;
reactos/include/win32k
diff -u -r1.8 -r1.9
--- misc.h 7 Dec 2003 23:02:57 -0000 1.8
+++ misc.h 21 May 2004 10:09:31 -0000 1.9
@@ -1,6 +1,11 @@
#ifndef __WIN32K_MISC_H
#define __WIN32K_MISC_H
+/* W32PROCESS flags */
+#define W32PF_NOWINDOWGHOSTING (0x0001)
+#define W32PF_MANUALGUICHECK (0x0002)
+#define W32PF_CREATEDWINORDC (0x0004)
+
VOID
FASTCALL
DestroyThreadWindows(struct _ETHREAD *Thread);
reactos/include/win32k
diff -u -r1.134 -r1.135
--- ntuser.h 16 May 2004 19:31:06 -0000 1.134
+++ ntuser.h 21 May 2004 10:09:31 -0000 1.135
@@ -180,6 +180,7 @@
#define ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO 0x0a
#define ONEPARAM_ROUTINE_GETCURSORPOSITION 0x0b
#define ONEPARAM_ROUTINE_ISWINDOWINDESTROY 0x0c
+#define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0x0d
DWORD
STDCALL
NtUserCallOneParam(
reactos/lib/user32/include
diff -u -r1.27 -r1.28
--- user32.h 16 May 2004 19:31:06 -0000 1.27
+++ user32.h 21 May 2004 10:09:31 -0000 1.28
@@ -95,6 +95,9 @@
#define NtUserIsWindowInDestroy(hWnd) \
(BOOL)NtUserCallOneParam((DWORD)hWnd, ONEPARAM_ROUTINE_ISWINDOWINDESTROY)
+#define NtUserEnableProcessWindowGhosting(bEnable) \
+ NtUserCallOneParam((DWORD)bEnable, ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING)
+
LONG WINAPI RegCloseKey(HKEY);
LONG WINAPI RegOpenKeyExW(HKEY,LPCWSTR,DWORD,REGSAM,PHKEY);
LONG WINAPI RegQueryValueExW(HKEY,LPCWSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
reactos/lib/user32/misc
diff -u -r1.62 -r1.63
--- stubs.c 2 May 2004 17:25:20 -0000 1.62
+++ stubs.c 21 May 2004 10:09:31 -0000 1.63
@@ -1,4 +1,4 @@
-/* $Id: stubs.c,v 1.62 2004/05/02 17:25:20 weiden Exp $
+/* $Id: stubs.c,v 1.63 2004/05/21 10:09:31 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS user32.dll
@@ -651,16 +651,6 @@
/*
* @unimplemented
*/
-VOID
-STDCALL
-DisableProcessWindowsGhosting(VOID)
-{
- UNIMPLEMENTED;
-}
-
-/*
- * @unimplemented
- */
BOOL
STDCALL
GetLayeredWindowAttributes(
reactos/lib/user32/windows
diff -u -r1.117 -r1.118
--- window.c 20 May 2004 04:10:01 -0000 1.117
+++ window.c 21 May 2004 10:09:31 -0000 1.118
@@ -1,4 +1,4 @@
-/* $Id: window.c,v 1.117 2004/05/20 04:10:01 royce Exp $
+/* $Id: window.c,v 1.118 2004/05/21 10:09:31 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS user32.dll
@@ -1569,5 +1569,15 @@
return NtUserIsWindowInDestroy(hWnd);
}
+/*
+ * @implemented
+ */
+VOID
+STDCALL
+DisableProcessWindowsGhosting(VOID)
+{
+ NtUserEnableProcessWindowGhosting(FALSE);
+}
+
/* EOF */
reactos/subsys/win32k/main
diff -u -r1.73 -r1.74
--- dllmain.c 13 May 2004 19:29:47 -0000 1.73
+++ dllmain.c 21 May 2004 10:09:31 -0000 1.74
@@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-/* $Id: dllmain.c,v 1.73 2004/05/13 19:29:47 jfilby Exp $
+/* $Id: dllmain.c,v 1.74 2004/05/21 10:09:31 weiden Exp $
*
* Entry Point for win32k.sys
*/
@@ -91,9 +91,9 @@
"process.\n");
}
}
-
- Win32Process->CreatedWindowOrDC = FALSE;
- Win32Process->ManualGuiCheck = FALSE;
+
+ /* setup process flags */
+ Win32Process->Flags = 0;
}
else
{
reactos/subsys/win32k/ntuser
diff -u -r1.18 -r1.19
--- guicheck.c 10 May 2004 17:07:18 -0000 1.18
+++ guicheck.c 21 May 2004 10:09:31 -0000 1.19
@@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-/* $Id: guicheck.c,v 1.18 2004/05/10 17:07:18 weiden Exp $
+/* $Id: guicheck.c,v 1.19 2004/05/21 10:09:31 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@@ -47,12 +47,12 @@
static BOOL FASTCALL
AddGuiApp(PW32PROCESS W32Data)
{
- W32Data->CreatedWindowOrDC = TRUE;
+ W32Data->Flags |= W32PF_CREATEDWINORDC;
if (0 == NrGuiApplicationsRunning++)
{
if (! IntInitializeDesktopGraphics())
{
- W32Data->CreatedWindowOrDC = FALSE;
+ W32Data->Flags &= ~W32PF_CREATEDWINORDC;
NrGuiApplicationsRunning--;
return FALSE;
}
@@ -64,7 +64,7 @@
static void FASTCALL
RemoveGuiApp(PW32PROCESS W32Data)
{
- W32Data->CreatedWindowOrDC = FALSE;
+ W32Data->Flags &= ~W32PF_CREATEDWINORDC;
if (0 < NrGuiApplicationsRunning)
{
NrGuiApplicationsRunning--;
@@ -83,14 +83,14 @@
W32Data = PsGetWin32Process();
if (Create)
{
- if (! W32Data->CreatedWindowOrDC && ! W32Data->ManualGuiCheck)
+ if (! (W32Data->Flags & W32PF_CREATEDWINORDC) && ! (W32Data->Flags & W32PF_MANUALGUICHECK))
{
return AddGuiApp(W32Data);
}
}
else
{
- if (W32Data->CreatedWindowOrDC && ! W32Data->ManualGuiCheck)
+ if ((W32Data->Flags & W32PF_CREATEDWINORDC) && ! (W32Data->Flags & W32PF_MANUALGUICHECK))
{
RemoveGuiApp(W32Data);
}
@@ -107,18 +107,18 @@
W32Data = PsGetWin32Process();
if (0 == Check)
{
- W32Data->ManualGuiCheck = TRUE;
+ W32Data->Flags |= W32PF_MANUALGUICHECK;
}
else if (0 < Check)
{
- if (! W32Data->CreatedWindowOrDC)
+ if (! (W32Data->Flags & W32PF_CREATEDWINORDC))
{
AddGuiApp(W32Data);
}
}
else
{
- if (W32Data->CreatedWindowOrDC)
+ if (W32Data->Flags & W32PF_CREATEDWINORDC)
{
RemoveGuiApp(W32Data);
}
reactos/subsys/win32k/ntuser
diff -u -r1.74 -r1.75
--- misc.c 19 May 2004 19:09:20 -0000 1.74
+++ misc.c 21 May 2004 10:09:31 -0000 1.75
@@ -1,4 +1,4 @@
-/* $Id: misc.c,v 1.74 2004/05/19 19:09:20 weiden Exp $
+/* $Id: misc.c,v 1.75 2004/05/21 10:09:31 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@@ -287,6 +287,30 @@
IntReleaseWindowObject(WindowObject);
return Result;
}
+
+ case ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING:
+ {
+ BOOL Enable;
+ PW32PROCESS Process = PsGetWin32Process();
+
+ if(Process != NULL)
+ {
+ Enable = (BOOL)(Param != 0);
+
+ if(Enable)
+ {
+ Process->Flags &= ~W32PF_NOWINDOWGHOSTING;
+ }
+ else
+ {
+ Process->Flags |= W32PF_NOWINDOWGHOSTING;
+ }
+
+ return TRUE;
+ }
+
+ return FALSE;
+ }
}
DPRINT1("Calling invalid routine number 0x%x in NtUserCallOneParam(), Param=0x%x\n",
Routine, Param);
CVSspam 0.2.8