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/wi... ============================================================================== --- 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/ntus... ============================================================================== --- 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/ntu... ============================================================================== --- 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);