mirror of
https://github.com/reactos/reactos.git
synced 2024-07-02 18:54:25 +00:00
moved SetShellWindowEx() implementation into kernel space
svn path=/trunk/; revision=5494
This commit is contained in:
parent
f3dec73013
commit
6d16724ea7
|
@ -1,6 +1,15 @@
|
|||
2003-08-09 Martin Fuchs <martin-fuchs@gmx.net>
|
||||
|
||||
* subsys/system/explorer implemented explorer and desktop window using shell view
|
||||
* win32k/ntuser/window.c implemented NtUserSetShellWindowEx() and
|
||||
introduced NtUserGetShellWindow().
|
||||
* iface/addsys/w32ksvc.db added new syscall for NtUserGetShellWindow().
|
||||
* lib/user32/misc/desktop.c: moved SetShellWindowEx() implementation
|
||||
in kernal space, see NtUserSetShellWindowEx().
|
||||
|
||||
2003-08-09 Martin Fuchs <martin-fuchs@gmx.net>
|
||||
|
||||
* subsys/system/explorer implemented explorer and desktop window
|
||||
using shell view.
|
||||
|
||||
2003-08-09 Casper S. Hornstrup <chorns@users.sourceforge.net>
|
||||
|
||||
|
|
|
@ -557,3 +557,4 @@ NtUserGetQueueStatus 1
|
|||
NtUserGetParent 1
|
||||
NtUserGetWindow 2
|
||||
NtUserGetLastActivePopup 1
|
||||
NtUserGetShellWindow 0
|
||||
|
|
|
@ -1437,8 +1437,12 @@ NtUserSetScrollInfo(
|
|||
DWORD
|
||||
STDCALL
|
||||
NtUserSetShellWindowEx(
|
||||
DWORD Unknown0,
|
||||
DWORD Unknown1);
|
||||
HWND hwndShell,
|
||||
HWND hwndShellListView);
|
||||
|
||||
HWND
|
||||
STDCALL
|
||||
NtUserGetShellWindow();
|
||||
|
||||
DWORD
|
||||
STDCALL
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: desktop.c,v 1.21 2003/08/09 17:08:14 mf Exp $
|
||||
/* $Id: desktop.c,v 1.22 2003/08/09 18:22:11 mf Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS user32.dll
|
||||
|
@ -307,41 +307,13 @@ SwitchDesktop(
|
|||
}
|
||||
|
||||
|
||||
/* globally stored handles to the shell windows */
|
||||
HWND hwndShellWindow = 0;
|
||||
HWND hwndShellListView = 0;
|
||||
DWORD pidShellWindow = 0;
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
HWND STDCALL
|
||||
GetShellWindow(VOID)
|
||||
{
|
||||
return hwndShellWindow;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
BOOL STDCALL
|
||||
SetShellWindowEx(HWND hwndShell, HWND hwndShellListView)
|
||||
{
|
||||
/* test if we are permitted to change the shell window */
|
||||
if (pidShellWindow && GetCurrentProcessId()!=pidShellWindow)
|
||||
return FALSE;
|
||||
|
||||
hwndShellWindow = hwndShell;
|
||||
hwndShellListView = hwndShellListView;
|
||||
|
||||
if (hwndShell)
|
||||
pidShellWindow = GetCurrentProcessId(); /* request shell window for the calling process */
|
||||
else
|
||||
pidShellWindow = 0; /* shell window is now free for other processes. */
|
||||
|
||||
return TRUE;
|
||||
return NtUserSetShellWindowEx(hwndShell, hwndShellListView);
|
||||
}
|
||||
|
||||
|
||||
|
@ -354,4 +326,15 @@ SetShellWindow(HWND hwndShell)
|
|||
return SetShellWindowEx(hwndShell, hwndShell);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
HWND STDCALL
|
||||
GetShellWindow(VOID)
|
||||
{
|
||||
return NtUserGetShellWindow();
|
||||
}
|
||||
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
/* $Id: window.c,v 1.82 2003/08/09 07:09:57 jimtabor Exp $
|
||||
/* $Id: window.c,v 1.83 2003/08/09 18:22:11 mf Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -1673,15 +1673,39 @@ NtUserSetLogonNotifyWindow(DWORD Unknown0)
|
|||
return 0;
|
||||
}
|
||||
|
||||
DWORD STDCALL
|
||||
NtUserSetShellWindowEx(DWORD Unknown0,
|
||||
DWORD Unknown1)
|
||||
{
|
||||
UNIMPLEMENTED
|
||||
|
||||
return 0;
|
||||
/* globally stored handles to the shell windows */
|
||||
HWND hwndShellWindow = 0;
|
||||
HWND hwndShellListView = 0;
|
||||
DWORD pidShellWindow = 0;
|
||||
|
||||
DWORD STDCALL
|
||||
NtUserSetShellWindowEx(HWND hwndShell, HWND hwndShellListView)
|
||||
{
|
||||
PEPROCESS my_current = IoGetCurrentProcess();
|
||||
|
||||
/* test if we are permitted to change the shell window */
|
||||
if (pidShellWindow && my_current->UniqueProcessId!=pidShellWindow)
|
||||
return FALSE;
|
||||
|
||||
hwndShellWindow = hwndShell;
|
||||
hwndShellListView = hwndShellListView;
|
||||
|
||||
if (hwndShell)
|
||||
pidShellWindow = my_current->UniqueProcessId; /* request shell window for the calling process */
|
||||
else
|
||||
pidShellWindow = 0; /* shell window is now free for other processes. */
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
HWND STDCALL
|
||||
NtUserGetShellWindow()
|
||||
{
|
||||
return hwndShellWindow;
|
||||
}
|
||||
|
||||
|
||||
DWORD STDCALL
|
||||
NtUserSetWindowFNID(DWORD Unknown0,
|
||||
DWORD Unknown1)
|
||||
|
|
Loading…
Reference in a new issue