Author: turner
Date: Sat Jul 22 20:50:23 2006
New Revision: 23227
URL:
http://svn.reactos.org/svn/reactos?rev=23227&view=rev
Log:
Partially implement:
NtUserCallHwndOpt
NtUserGetThreadState
Implement
GetProgmanWindow
GetTaskmanWindow
This is (kinda)part of bug 1668
Modified:
trunk/reactos/dll/win32/user32/windows/window.c
trunk/reactos/include/reactos/win32k/ntuser.h
trunk/reactos/subsystems/win32/win32k/ntuser/misc.c
Modified: trunk/reactos/dll/win32/user32/windows/window.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/user32/windows/w…
==============================================================================
--- trunk/reactos/dll/win32/user32/windows/window.c (original)
+++ trunk/reactos/dll/win32/user32/windows/window.c Sat Jul 22 20:50:23 2006
@@ -1586,25 +1586,23 @@
}
/*
- * @unimplemented
+ * @implemented
*/
HWND
STDCALL
GetProgmanWindow(VOID)
{
- UNIMPLEMENTED;
- return FALSE;
-}
-
-/*
- * @unimplemented
+ return (HWND)NtUserGetThreadState(THREADSTATE_PROGRAMWINDOW);
+}
+
+/*
+ * @implemented
*/
HWND
STDCALL
GetTaskmanWindow(VOID)
{
- UNIMPLEMENTED;
- return FALSE;
+ return (HWND)NtUserGetThreadState(THREADSTATE_TASKMANWINDOW);
}
/*
Modified: trunk/reactos/include/reactos/win32k/ntuser.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/win32k/ntu…
==============================================================================
--- trunk/reactos/include/reactos/win32k/ntuser.h (original)
+++ trunk/reactos/include/reactos/win32k/ntuser.h Sat Jul 22 20:50:23 2006
@@ -8,6 +8,8 @@
{
HANDLE hKernelHeap;
WCHAR szDesktopName[1];
+ HWND hTaskManWindow;
+ HWND hProgmanWindow;
} DESKTOP, *PDESKTOP;
typedef struct _CALLPROC
@@ -1117,6 +1119,8 @@
#define THREADSTATE_GETTHREADINFO (0)
#define THREADSTATE_FOCUSWINDOW (1)
#define THREADSTATE_INSENDMESSAGE (2)
+#define THREADSTATE_PROGMANWINDOW (3)
+#define THREADSTATE_TASKMANWINDOW (4)
DWORD
NTAPI
NtUserGetThreadState(
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/misc.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/nt…
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/ntuser/misc.c (original)
+++ trunk/reactos/subsystems/win32/win32k/ntuser/misc.c Sat Jul 22 20:50:23 2006
@@ -856,19 +856,11 @@
switch (Routine)
{
case HWNDOPT_ROUTINE_SETPROGMANWINDOW:
- /*
- * FIXME
- * Nothing too hard...validate the hWnd and save it in the Desktop Info
- */
- DPRINT1("HWNDOPT_ROUTINE_SETPROGMANWINDOW UNIMPLEMENTED\n");
+ GetW32ThreadInfo()->Desktop->hProgmanWindow = Param;
break;
case HWNDOPT_ROUTINE_SETTASKMANWINDOW:
- /*
- * FIXME
- * Nothing too hard...validate the hWnd and save it in the Desktop Info
- */
- DPRINT1("HWNDOPT_ROUTINE_SETTASKMANWINDOW UNIMPLEMENTED\n");
+ GetW32ThreadInfo()->Desktop->hTaskManWindow = Param;
break;
}
@@ -902,6 +894,10 @@
case THREADSTATE_FOCUSWINDOW:
RETURN( (DWORD)IntGetThreadFocusWindow());
+ case THREADSTATE_PROGMANWINDOW:
+ RETURN( (DWORD)GetW32ThreadInfo()->Desktop->hProgmanWindow);
+ case THREADSTATE_TASKMANWINDOW:
+ RETURN( (DWORD)GetW32ThreadInfo()->Desktop->hTaskManWindow);
}
RETURN( 0);