- Basic implementation of (NtUser)UpdatePerUserSystemParameters.

- Move code querying for "PaintDesktopVersion" to NtUserUpdatePerUserSystemParameters.

svn path=/trunk/; revision=11954
This commit is contained in:
Filip Navara 2004-12-06 02:23:05 +00:00
parent 3bfcecdd7d
commit fc08e5303b
8 changed files with 62 additions and 59 deletions

View file

@ -1677,11 +1677,11 @@ NtUserUpdateLayeredWindow(
DWORD Unknown7, DWORD Unknown7,
DWORD Unknown8); DWORD Unknown8);
DWORD BOOL
STDCALL STDCALL
NtUserUpdatePerUserSystemParameters( NtUserUpdatePerUserSystemParameters(
DWORD Unknown0, DWORD dwReserved,
DWORD Unknown1); BOOL bEnable);
DWORD DWORD
STDCALL STDCALL

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/ */
/* $Id: misc.c,v 1.9 2004/11/20 15:51:14 ekohl Exp $ /* $Id: misc.c,v 1.10 2004/12/06 02:23:05 navaraf Exp $
* *
* PROJECT: ReactOS user32.dll * PROJECT: ReactOS user32.dll
* FILE: lib/user32/misc/misc.c * FILE: lib/user32/misc/misc.c
@ -106,12 +106,12 @@ SetLogonNotifyWindow (HWND Wnd, HWINSTA WinSta)
} }
/* /*
* @unimplemented * @implemented
*/ */
BOOL WINAPI BOOL WINAPI
UpdatePerUserSystemParameters(DWORD dwUnknown, UpdatePerUserSystemParameters(
BOOL bEnable) DWORD dwReserved,
BOOL bEnable)
{ {
return NtUserUpdatePerUserSystemParameters(dwUnknown, dwReserved);
return TRUE;
} }

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/ */
/* $Id: winlogon.h,v 1.4 2004/07/12 20:09:35 gvg Exp $ /* $Id: winlogon.h,v 1.5 2004/12/06 02:23:05 navaraf Exp $
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS winlogon * PROJECT: ReactOS winlogon
* FILE: subsys/system/winlogon/winlogon.h * FILE: subsys/system/winlogon/winlogon.h
@ -163,6 +163,11 @@ DispatchSAS(PWLSESSION Session, DWORD dwSasType);
#define DisplaySASNotice(Session) \ #define DisplaySASNotice(Session) \
Session->MsGina.Functions.WlxDisplaySASNotice(Session->MsGina.Context); Session->MsGina.Functions.WlxDisplaySASNotice(Session->MsGina.Context);
/* user32 */
BOOL WINAPI
UpdatePerUserSystemParameters(DWORD dwUnknown,
DWORD dwReserved);
#endif /* __WINLOGON_MAIN_H__ */ #endif /* __WINLOGON_MAIN_H__ */
/* EOF */ /* EOF */

View file

@ -12,6 +12,7 @@ extern PDESKTOP_OBJECT InputDesktop;
extern HDESK InputDesktopHandle; extern HDESK InputDesktopHandle;
extern PWNDCLASS_OBJECT DesktopWindowClass; extern PWNDCLASS_OBJECT DesktopWindowClass;
extern HDC ScreenDeviceContext; extern HDC ScreenDeviceContext;
extern BOOL g_PaintDesktopVersion;
NTSTATUS FASTCALL NTSTATUS FASTCALL
InitDesktopImpl(VOID); InitDesktopImpl(VOID);

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* *
* $Id: desktop.c,v 1.25 2004/12/05 00:20:41 navaraf Exp $ * $Id: desktop.c,v 1.26 2004/12/06 02:23:05 navaraf Exp $
* *
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel * PROJECT: ReactOS kernel
@ -50,6 +50,8 @@ PDESKTOP_OBJECT InputDesktop = NULL;
HDESK InputDesktopHandle = NULL; HDESK InputDesktopHandle = NULL;
HDC ScreenDeviceContext = NULL; HDC ScreenDeviceContext = NULL;
BOOL g_PaintDesktopVersion = FALSE;
/* INITALIZATION FUNCTIONS ****************************************************/ /* INITALIZATION FUNCTIONS ****************************************************/
NTSTATUS FASTCALL NTSTATUS FASTCALL
@ -880,20 +882,6 @@ static int GetSystemVersionString(LPWSTR buffer)
return len; return len;
} }
static NTSTATUS STDCALL PaintDesktopVersionCallback(
IN PWSTR ValueName, IN ULONG ValueType,
IN PVOID ValueData, IN ULONG ValueLength,
IN PVOID Context, IN PVOID EntryContext
)
{
DPRINT("PaintDesktopVersionCallback ValueType=%d ValueLength=%d\n", ValueType, ValueLength);
if (ValueType==REG_DWORD && ValueLength==sizeof(DWORD))
*((DWORD*)EntryContext) = *(DWORD*)ValueData;
return STATUS_SUCCESS;
}
/* /*
* NtUserPaintDesktop * NtUserPaintDesktop
* *
@ -916,10 +904,6 @@ NtUserPaintDesktop(HDC hDC)
HBRUSH DesktopBrush, PreviousBrush; HBRUSH DesktopBrush, PreviousBrush;
HWND hWndDesktop; HWND hWndDesktop;
BOOL doPatBlt = TRUE; BOOL doPatBlt = TRUE;
RTL_QUERY_REGISTRY_TABLE queryTable[2];
DWORD displayVersion;
NTSTATUS status;
int len; int len;
PWINSTATION_OBJECT WinSta = PsGetWin32Thread()->Desktop->WindowStation; PWINSTATION_OBJECT WinSta = PsGetWin32Thread()->Desktop->WindowStation;
@ -984,22 +968,7 @@ NtUserPaintDesktop(HDC hDC)
* Display system version on the desktop background * Display system version on the desktop background
*/ */
RtlZeroMemory(queryTable, sizeof(queryTable)); if (g_PaintDesktopVersion) {
queryTable[0].QueryRoutine = PaintDesktopVersionCallback;
queryTable[0].Name = L"PaintDesktopVersion";
queryTable[0].EntryContext = &displayVersion;
/* query the "PaintDesktopVersion" flag in the "Control Panel\Desktop" key */
status = RtlQueryRegistryValues(RTL_REGISTRY_USER, L"Control Panel\\Desktop", queryTable, NULL, NULL);
if (!NT_SUCCESS(status)) {
DPRINT1("RtlQueryRegistryValues failed for PaintDesktopVersion: status=%x\n", status);
displayVersion = 0;
}
DPRINT("PaintDesktopVersion=%d\n", displayVersion);
if (displayVersion) {
static WCHAR s_wszVersion[256] = {0}; static WCHAR s_wszVersion[256] = {0};
RECT rect; RECT rect;

View file

@ -1,4 +1,4 @@
/* $Id: misc.c,v 1.88 2004/11/20 16:46:06 weiden Exp $ /* $Id: misc.c,v 1.89 2004/12/06 02:23:05 navaraf Exp $
* *
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel * PROJECT: ReactOS kernel
@ -1330,4 +1330,44 @@ IntFreeNULLTerminatedFromUnicodeString(PWSTR NullTerminated, PUNICODE_STRING Uni
} }
} }
BOOL STDCALL
NtUserUpdatePerUserSystemParameters(
DWORD dwUnknown,
BOOL bEnable)
{
if (bEnable)
{
RTL_QUERY_REGISTRY_TABLE QueryTable[2];
NTSTATUS Status;
RtlZeroMemory(QueryTable, sizeof(QueryTable));
QueryTable[0].Flags = RTL_QUERY_REGISTRY_DIRECT;
QueryTable[0].Name = L"PaintDesktopVersion";
QueryTable[0].EntryContext = &g_PaintDesktopVersion;
/* Query the "PaintDesktopVersion" flag in the "Control Panel\Desktop" key */
Status = RtlQueryRegistryValues(RTL_REGISTRY_USER,
L"Control Panel\\Desktop",
QueryTable, NULL, NULL);
if (!NT_SUCCESS(Status))
{
DPRINT1("RtlQueryRegistryValues failed for PaintDesktopVersion (%x)\n",
Status);
g_PaintDesktopVersion = FALSE;
return FALSE;
}
DPRINT1("PaintDesktopVersion = %d\n", g_PaintDesktopVersion);
return TRUE;
}
else
{
g_PaintDesktopVersion = FALSE;
return TRUE;
}
}
/* EOF */ /* EOF */

View file

@ -1,4 +1,4 @@
/* $Id: stubs.c,v 1.47 2004/11/16 16:27:49 blight Exp $ /* $Id: stubs.c,v 1.48 2004/12/06 02:23:05 navaraf Exp $
* *
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel * PROJECT: ReactOS kernel
@ -688,17 +688,6 @@ NtUserUpdateInstance(
return 0; return 0;
} }
DWORD
STDCALL
NtUserUpdatePerUserSystemParameters(
DWORD Unknown0,
DWORD Unknown1)
{
UNIMPLEMENTED
return 0;
}
DWORD DWORD
STDCALL STDCALL
NtUserUserHandleGrantAccess( NtUserUserHandleGrantAccess(

View file

@ -3841,7 +3841,6 @@ BOOL WINAPI UnloadKeyboardLayout(HKL);
BOOL WINAPI UnregisterClassA(LPCSTR,HINSTANCE); BOOL WINAPI UnregisterClassA(LPCSTR,HINSTANCE);
BOOL WINAPI UnregisterClassW(LPCWSTR,HINSTANCE); BOOL WINAPI UnregisterClassW(LPCWSTR,HINSTANCE);
BOOL WINAPI UnregisterHotKey(HWND,int); BOOL WINAPI UnregisterHotKey(HWND,int);
BOOL WINAPI UpdatePerUserSystemParameters(DWORD,BOOL);
BOOL WINAPI UpdateWindow(HWND); BOOL WINAPI UpdateWindow(HWND);
#if (_WIN32_WINNT >= 0x0500) #if (_WIN32_WINNT >= 0x0500)
BOOL WINAPI UserHandleGrantAccess(HANDLE,HANDLE,BOOL); BOOL WINAPI UserHandleGrantAccess(HANDLE,HANDLE,BOOL);