Partially implement:

NtUserCallHwndOpt
NtUserGetThreadState
Implement
GetProgmanWindow
GetTaskmanWindow
This is (kinda)part of bug 1668

svn path=/trunk/; revision=23227
This commit is contained in:
Brandon Turner 2006-07-22 16:50:23 +00:00
parent db04986dce
commit 25b81049eb
3 changed files with 14 additions and 16 deletions

View file

@ -1586,25 +1586,23 @@ SetProgmanWindow(HWND hWnd)
}
/*
* @unimplemented
* @implemented
*/
HWND
STDCALL
GetProgmanWindow(VOID)
{
UNIMPLEMENTED;
return FALSE;
return (HWND)NtUserGetThreadState(THREADSTATE_PROGRAMWINDOW);
}
/*
* @unimplemented
* @implemented
*/
HWND
STDCALL
GetTaskmanWindow(VOID)
{
UNIMPLEMENTED;
return FALSE;
return (HWND)NtUserGetThreadState(THREADSTATE_TASKMANWINDOW);
}
/*

View file

@ -8,6 +8,8 @@ typedef struct _DESKTOP
{
HANDLE hKernelHeap;
WCHAR szDesktopName[1];
HWND hTaskManWindow;
HWND hProgmanWindow;
} DESKTOP, *PDESKTOP;
typedef struct _CALLPROC
@ -1117,6 +1119,8 @@ NtUserGetThreadDesktop(
#define THREADSTATE_GETTHREADINFO (0)
#define THREADSTATE_FOCUSWINDOW (1)
#define THREADSTATE_INSENDMESSAGE (2)
#define THREADSTATE_PROGMANWINDOW (3)
#define THREADSTATE_TASKMANWINDOW (4)
DWORD
NTAPI
NtUserGetThreadState(

View file

@ -856,19 +856,11 @@ NtUserCallHwndOpt(
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 @@ NtUserGetThreadState(
case THREADSTATE_FOCUSWINDOW:
RETURN( (DWORD)IntGetThreadFocusWindow());
case THREADSTATE_PROGMANWINDOW:
RETURN( (DWORD)GetW32ThreadInfo()->Desktop->hProgmanWindow);
case THREADSTATE_TASKMANWINDOW:
RETURN( (DWORD)GetW32ThreadInfo()->Desktop->hTaskManWindow);
}
RETURN( 0);