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 HWND
STDCALL STDCALL
GetProgmanWindow(VOID) GetProgmanWindow(VOID)
{ {
UNIMPLEMENTED; return (HWND)NtUserGetThreadState(THREADSTATE_PROGRAMWINDOW);
return FALSE;
} }
/* /*
* @unimplemented * @implemented
*/ */
HWND HWND
STDCALL STDCALL
GetTaskmanWindow(VOID) GetTaskmanWindow(VOID)
{ {
UNIMPLEMENTED; return (HWND)NtUserGetThreadState(THREADSTATE_TASKMANWINDOW);
return FALSE;
} }
/* /*

View file

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

View file

@ -856,19 +856,11 @@ NtUserCallHwndOpt(
switch (Routine) switch (Routine)
{ {
case HWNDOPT_ROUTINE_SETPROGMANWINDOW: case HWNDOPT_ROUTINE_SETPROGMANWINDOW:
/* GetW32ThreadInfo()->Desktop->hProgmanWindow = Param;
* FIXME
* Nothing too hard...validate the hWnd and save it in the Desktop Info
*/
DPRINT1("HWNDOPT_ROUTINE_SETPROGMANWINDOW UNIMPLEMENTED\n");
break; break;
case HWNDOPT_ROUTINE_SETTASKMANWINDOW: case HWNDOPT_ROUTINE_SETTASKMANWINDOW:
/* GetW32ThreadInfo()->Desktop->hTaskManWindow = Param;
* FIXME
* Nothing too hard...validate the hWnd and save it in the Desktop Info
*/
DPRINT1("HWNDOPT_ROUTINE_SETTASKMANWINDOW UNIMPLEMENTED\n");
break; break;
} }
@ -902,6 +894,10 @@ NtUserGetThreadState(
case THREADSTATE_FOCUSWINDOW: case THREADSTATE_FOCUSWINDOW:
RETURN( (DWORD)IntGetThreadFocusWindow()); RETURN( (DWORD)IntGetThreadFocusWindow());
case THREADSTATE_PROGMANWINDOW:
RETURN( (DWORD)GetW32ThreadInfo()->Desktop->hProgmanWindow);
case THREADSTATE_TASKMANWINDOW:
RETURN( (DWORD)GetW32ThreadInfo()->Desktop->hTaskManWindow);
} }
RETURN( 0); RETURN( 0);