{
HANDLE hKernelHeap;
WCHAR szDesktopName[1];
+ HWND hTaskManWindow;
+ HWND hProgmanWindow;
} DESKTOP, *PDESKTOP;
typedef struct _CALLPROC
#define THREADSTATE_GETTHREADINFO (0)
#define THREADSTATE_FOCUSWINDOW (1)
#define THREADSTATE_INSENDMESSAGE (2)
+#define THREADSTATE_PROGMANWINDOW (3)
+#define THREADSTATE_TASKMANWINDOW (4)
DWORD
NTAPI
NtUserGetThreadState(
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;
}
case THREADSTATE_FOCUSWINDOW:
RETURN( (DWORD)IntGetThreadFocusWindow());
+ case THREADSTATE_PROGMANWINDOW:
+ RETURN( (DWORD)GetW32ThreadInfo()->Desktop->hProgmanWindow);
+ case THREADSTATE_TASKMANWINDOW:
+ RETURN( (DWORD)GetW32ThreadInfo()->Desktop->hTaskManWindow);
}
RETURN( 0);