mirror of
https://github.com/reactos/reactos.git
synced 2024-07-01 02:10:07 +00:00
[win32k]
- load gpsi->dtCaretBlink and g_PaintDesktopVersion in sysparams.c - Rename IntGdiGetLanguageID to UserGetLanguageID - Remove some unused functions and definitions svn path=/trunk/; revision=55439
This commit is contained in:
parent
440561287c
commit
a423f34284
|
@ -43,7 +43,6 @@ extern PDESKTOP InputDesktop;
|
||||||
extern HDESK InputDesktopHandle;
|
extern HDESK InputDesktopHandle;
|
||||||
extern PCLS DesktopWindowClass;
|
extern PCLS DesktopWindowClass;
|
||||||
extern HDC ScreenDeviceContext;
|
extern HDC ScreenDeviceContext;
|
||||||
extern BOOL g_PaintDesktopVersion;
|
|
||||||
|
|
||||||
typedef struct _SHELL_HOOK_WINDOW
|
typedef struct _SHELL_HOOK_WINDOW
|
||||||
{
|
{
|
||||||
|
@ -56,9 +55,6 @@ NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
InitDesktopImpl(VOID);
|
InitDesktopImpl(VOID);
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
|
||||||
CleanupDesktopImpl(VOID);
|
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
APIENTRY
|
APIENTRY
|
||||||
IntDesktopObjectParse(IN PVOID ParseObject,
|
IntDesktopObjectParse(IN PVOID ParseObject,
|
||||||
|
@ -121,7 +117,6 @@ IntParseDesktopPath(PEPROCESS Process,
|
||||||
HWINSTA *hWinSta,
|
HWINSTA *hWinSta,
|
||||||
HDESK *hDesktop);
|
HDESK *hDesktop);
|
||||||
|
|
||||||
BOOL FASTCALL IntDesktopUpdatePerUserSettings(BOOL bEnable);
|
|
||||||
VOID APIENTRY UserRedrawDesktop(VOID);
|
VOID APIENTRY UserRedrawDesktop(VOID);
|
||||||
BOOL IntRegisterShellHookWindow(HWND hWnd);
|
BOOL IntRegisterShellHookWindow(HWND hWnd);
|
||||||
BOOL IntDeRegisterShellHookWindow(HWND hWnd);
|
BOOL IntDeRegisterShellHookWindow(HWND hWnd);
|
||||||
|
|
|
@ -16,8 +16,6 @@ typedef struct _HOT_KEY
|
||||||
#define IDHK_WINKEY -7
|
#define IDHK_WINKEY -7
|
||||||
#define IDHK_REACTOS -8
|
#define IDHK_REACTOS -8
|
||||||
|
|
||||||
INIT_FUNCTION NTSTATUS NTAPI InitHotkeyImpl(VOID);
|
|
||||||
|
|
||||||
VOID FASTCALL UnregisterWindowHotKeys(PWND Window);
|
VOID FASTCALL UnregisterWindowHotKeys(PWND Window);
|
||||||
VOID FASTCALL UnregisterThreadHotKeys(struct _ETHREAD *pThread);
|
VOID FASTCALL UnregisterThreadHotKeys(struct _ETHREAD *pThread);
|
||||||
BOOL NTAPI co_UserProcessHotKeys(WORD wVk, BOOL bIsDown);
|
BOOL NTAPI co_UserProcessHotKeys(WORD wVk, BOOL bIsDown);
|
||||||
|
|
|
@ -23,7 +23,7 @@ extern BOOL APIENTRY IntEngLeave(PINTENG_ENTER_LEAVE EnterLeave);
|
||||||
extern HGDIOBJ StockObjects[];
|
extern HGDIOBJ StockObjects[];
|
||||||
extern SHORT gusLanguageID;
|
extern SHORT gusLanguageID;
|
||||||
|
|
||||||
SHORT FASTCALL IntGdiGetLanguageID(VOID);
|
SHORT FASTCALL UserGetLanguageID(VOID);
|
||||||
VOID FASTCALL IntUserManualGuiCheck(LONG Check);
|
VOID FASTCALL IntUserManualGuiCheck(LONG Check);
|
||||||
PVOID APIENTRY HackSecureVirtualMemory(IN PVOID,IN SIZE_T,IN ULONG,OUT PVOID *);
|
PVOID APIENTRY HackSecureVirtualMemory(IN PVOID,IN SIZE_T,IN ULONG,OUT PVOID *);
|
||||||
VOID APIENTRY HackUnsecureVirtualMemory(IN PVOID);
|
VOID APIENTRY HackUnsecureVirtualMemory(IN PVOID);
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
|
|
||||||
extern PSERVERINFO gpsi;
|
extern PSERVERINFO gpsi;
|
||||||
extern PTHREADINFO gptiCurrent;
|
extern PTHREADINFO gptiCurrent;
|
||||||
|
extern PPROCESSINFO ppiScrnSaver;
|
||||||
|
|
||||||
INIT_FUNCTION NTSTATUS NTAPI InitUserImpl(VOID);
|
INIT_FUNCTION NTSTATUS NTAPI InitUserImpl(VOID);
|
||||||
VOID FASTCALL CleanupUserImpl(VOID);
|
VOID FASTCALL CleanupUserImpl(VOID);
|
||||||
|
|
|
@ -175,6 +175,7 @@ typedef union _SPIBUFFER
|
||||||
} SPIBUFFER;
|
} SPIBUFFER;
|
||||||
|
|
||||||
extern SPIVALUES gspv;
|
extern SPIVALUES gspv;
|
||||||
|
extern BOOL g_PaintDesktopVersion;
|
||||||
|
|
||||||
BOOL InitSysParams();
|
BOOL InitSysParams();
|
||||||
|
|
||||||
|
|
|
@ -74,13 +74,6 @@ NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
InitWindowStationImpl(VOID);
|
InitWindowStationImpl(VOID);
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
|
||||||
CleanupWindowStationImpl(VOID);
|
|
||||||
|
|
||||||
NTSTATUS
|
|
||||||
APIENTRY
|
|
||||||
IntWinStaObjectOpen(PWIN32_OPENMETHOD_PARAMETERS Parameters);
|
|
||||||
|
|
||||||
VOID APIENTRY
|
VOID APIENTRY
|
||||||
IntWinStaObjectDelete(PWIN32_DELETEMETHOD_PARAMETERS Parameters);
|
IntWinStaObjectDelete(PWIN32_DELETEMETHOD_PARAMETERS Parameters);
|
||||||
|
|
||||||
|
|
|
@ -454,41 +454,6 @@ leave:
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
|
||||||
Win32kInitWin32Thread(PETHREAD Thread)
|
|
||||||
{
|
|
||||||
PEPROCESS Process;
|
|
||||||
|
|
||||||
Process = Thread->ThreadsProcess;
|
|
||||||
|
|
||||||
if (Process->Win32Process == NULL)
|
|
||||||
{
|
|
||||||
/* FIXME: Lock the process */
|
|
||||||
Process->Win32Process = ExAllocatePoolWithTag(NonPagedPool, sizeof(PROCESSINFO), USERTAG_PROCESSINFO);
|
|
||||||
|
|
||||||
if (Process->Win32Process == NULL)
|
|
||||||
return STATUS_NO_MEMORY;
|
|
||||||
|
|
||||||
RtlZeroMemory(Process->Win32Process, sizeof(PROCESSINFO));
|
|
||||||
/* FIXME: Unlock the process */
|
|
||||||
|
|
||||||
Win32kProcessCallback(Process, TRUE);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Thread->Tcb.Win32Thread == NULL)
|
|
||||||
{
|
|
||||||
Thread->Tcb.Win32Thread = ExAllocatePoolWithTag(NonPagedPool, sizeof(THREADINFO), USERTAG_THREADINFO);
|
|
||||||
if (Thread->Tcb.Win32Thread == NULL)
|
|
||||||
return STATUS_NO_MEMORY;
|
|
||||||
|
|
||||||
RtlZeroMemory(Thread->Tcb.Win32Thread, sizeof(THREADINFO));
|
|
||||||
|
|
||||||
Win32kThreadCallback(Thread, PsW32ThreadCalloutInitialize);
|
|
||||||
}
|
|
||||||
|
|
||||||
return(STATUS_SUCCESS);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef _M_IX86
|
#ifdef _M_IX86
|
||||||
C_ASSERT(sizeof(SERVERINFO) <= PAGE_SIZE);
|
C_ASSERT(sizeof(SERVERINFO) <= PAGE_SIZE);
|
||||||
#endif
|
#endif
|
||||||
|
@ -588,7 +553,6 @@ DriverEntry(
|
||||||
NT_ROF(InitDeviceImpl());
|
NT_ROF(InitDeviceImpl());
|
||||||
NT_ROF(InitDcImpl());
|
NT_ROF(InitDcImpl());
|
||||||
NT_ROF(InitUserImpl());
|
NT_ROF(InitUserImpl());
|
||||||
NT_ROF(InitHotkeyImpl());
|
|
||||||
NT_ROF(InitWindowStationImpl());
|
NT_ROF(InitWindowStationImpl());
|
||||||
NT_ROF(InitDesktopImpl());
|
NT_ROF(InitDesktopImpl());
|
||||||
NT_ROF(InitInputImpl());
|
NT_ROF(InitInputImpl());
|
||||||
|
@ -603,7 +567,7 @@ DriverEntry(
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
gusLanguageID = IntGdiGetLanguageID();
|
gusLanguageID = UserGetLanguageID();
|
||||||
|
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,9 +13,6 @@ DBG_DEFAULT_CHANNEL(UserCaret);
|
||||||
|
|
||||||
#define MIN_CARETBLINKRATE 100
|
#define MIN_CARETBLINKRATE 100
|
||||||
#define MAX_CARETBLINKRATE 10000
|
#define MAX_CARETBLINKRATE 10000
|
||||||
#define DEFAULT_CARETBLINKRATE 530
|
|
||||||
#define CARET_REGKEY L"\\Registry\\User\\.Default\\Control Panel\\Desktop"
|
|
||||||
#define CARET_VALUENAME L"CursorBlinkRate"
|
|
||||||
|
|
||||||
/* FUNCTIONS *****************************************************************/
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
|
@ -60,117 +57,19 @@ BOOL FASTCALL
|
||||||
IntSetCaretBlinkTime(UINT uMSeconds)
|
IntSetCaretBlinkTime(UINT uMSeconds)
|
||||||
{
|
{
|
||||||
/* Don't save the new value to the registry! */
|
/* Don't save the new value to the registry! */
|
||||||
PTHREADINFO pti = PsGetCurrentThreadWin32Thread();
|
|
||||||
PWINSTATION_OBJECT WinStaObject = pti->rpdesk->rpwinstaParent;
|
|
||||||
|
|
||||||
/* Windows doesn't do this check */
|
/* Windows doesn't do this check */
|
||||||
if((uMSeconds < MIN_CARETBLINKRATE) || (uMSeconds > MAX_CARETBLINKRATE))
|
if((uMSeconds < MIN_CARETBLINKRATE) || (uMSeconds > MAX_CARETBLINKRATE))
|
||||||
{
|
{
|
||||||
EngSetLastError(ERROR_INVALID_PARAMETER);
|
EngSetLastError(ERROR_INVALID_PARAMETER);
|
||||||
ObDereferenceObject(WinStaObject);
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
WinStaObject->CaretBlinkRate = uMSeconds;
|
|
||||||
gpsi->dtCaretBlink = uMSeconds;
|
gpsi->dtCaretBlink = uMSeconds;
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static
|
|
||||||
UINT FASTCALL
|
|
||||||
IntQueryCaretBlinkRate(VOID)
|
|
||||||
{
|
|
||||||
UNICODE_STRING KeyName = RTL_CONSTANT_STRING(CARET_REGKEY);
|
|
||||||
UNICODE_STRING ValueName = RTL_CONSTANT_STRING(CARET_VALUENAME);
|
|
||||||
NTSTATUS Status;
|
|
||||||
HANDLE KeyHandle = NULL;
|
|
||||||
OBJECT_ATTRIBUTES KeyAttributes;
|
|
||||||
PKEY_VALUE_PARTIAL_INFORMATION KeyValuePartialInfo;
|
|
||||||
ULONG Length = 0;
|
|
||||||
ULONG ResLength = 0;
|
|
||||||
ULONG Val = 0;
|
|
||||||
|
|
||||||
InitializeObjectAttributes(&KeyAttributes, &KeyName, OBJ_CASE_INSENSITIVE,
|
|
||||||
NULL, NULL);
|
|
||||||
|
|
||||||
Status = ZwOpenKey(&KeyHandle, KEY_READ, &KeyAttributes);
|
|
||||||
if(!NT_SUCCESS(Status))
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
Status = ZwQueryValueKey(KeyHandle, &ValueName, KeyValuePartialInformation,
|
|
||||||
0, 0, &ResLength);
|
|
||||||
if((Status != STATUS_BUFFER_TOO_SMALL))
|
|
||||||
{
|
|
||||||
NtClose(KeyHandle);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
ResLength += sizeof(KEY_VALUE_PARTIAL_INFORMATION);
|
|
||||||
KeyValuePartialInfo = ExAllocatePoolWithTag(PagedPool, ResLength, TAG_STRING);
|
|
||||||
Length = ResLength;
|
|
||||||
|
|
||||||
if(!KeyValuePartialInfo)
|
|
||||||
{
|
|
||||||
NtClose(KeyHandle);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
Status = ZwQueryValueKey(KeyHandle, &ValueName, KeyValuePartialInformation,
|
|
||||||
(PVOID)KeyValuePartialInfo, Length, &ResLength);
|
|
||||||
if(!NT_SUCCESS(Status) || (KeyValuePartialInfo->Type != REG_SZ))
|
|
||||||
{
|
|
||||||
NtClose(KeyHandle);
|
|
||||||
ExFreePoolWithTag(KeyValuePartialInfo, TAG_STRING);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
ValueName.Length = KeyValuePartialInfo->DataLength;
|
|
||||||
ValueName.MaximumLength = KeyValuePartialInfo->DataLength;
|
|
||||||
ValueName.Buffer = (PWSTR)KeyValuePartialInfo->Data;
|
|
||||||
|
|
||||||
Status = RtlUnicodeStringToInteger(&ValueName, 0, &Val);
|
|
||||||
if(!NT_SUCCESS(Status))
|
|
||||||
{
|
|
||||||
Val = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
ExFreePoolWithTag(KeyValuePartialInfo, TAG_STRING);
|
|
||||||
NtClose(KeyHandle);
|
|
||||||
|
|
||||||
return (UINT)Val;
|
|
||||||
}
|
|
||||||
|
|
||||||
static
|
|
||||||
UINT FASTCALL
|
|
||||||
IntGetCaretBlinkTime(VOID)
|
|
||||||
{
|
|
||||||
PTHREADINFO pti;
|
|
||||||
PWINSTATION_OBJECT WinStaObject;
|
|
||||||
UINT Ret;
|
|
||||||
|
|
||||||
pti = PsGetCurrentThreadWin32Thread();
|
|
||||||
WinStaObject = pti->rpdesk->rpwinstaParent;
|
|
||||||
|
|
||||||
Ret = WinStaObject->CaretBlinkRate;
|
|
||||||
if(!Ret)
|
|
||||||
{
|
|
||||||
/* Load it from the registry the first call only! */
|
|
||||||
Ret = WinStaObject->CaretBlinkRate = IntQueryCaretBlinkRate();
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Windows doesn't do this check */
|
|
||||||
if((Ret < MIN_CARETBLINKRATE) || (Ret > MAX_CARETBLINKRATE))
|
|
||||||
{
|
|
||||||
Ret = DEFAULT_CARETBLINKRATE;
|
|
||||||
}
|
|
||||||
|
|
||||||
return Ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
BOOL FASTCALL
|
BOOL FASTCALL
|
||||||
co_IntSetCaretPos(int X, int Y)
|
co_IntSetCaretPos(int X, int Y)
|
||||||
{
|
{
|
||||||
|
@ -191,7 +90,7 @@ co_IntSetCaretPos(int X, int Y)
|
||||||
ThreadQueue->CaretInfo->Pos.x = X;
|
ThreadQueue->CaretInfo->Pos.x = X;
|
||||||
ThreadQueue->CaretInfo->Pos.y = Y;
|
ThreadQueue->CaretInfo->Pos.y = Y;
|
||||||
co_IntSendMessage(ThreadQueue->CaretInfo->hWnd, WM_SYSTIMER, IDCARETTIMER, 0);
|
co_IntSendMessage(ThreadQueue->CaretInfo->hWnd, WM_SYSTIMER, IDCARETTIMER, 0);
|
||||||
IntSetTimer(UserGetWindowObject(ThreadQueue->CaretInfo->hWnd), IDCARETTIMER, IntGetCaretBlinkTime(), NULL, TMRF_SYSTEM);
|
IntSetTimer(UserGetWindowObject(ThreadQueue->CaretInfo->hWnd), IDCARETTIMER, gpsi->dtCaretBlink, NULL, TMRF_SYSTEM);
|
||||||
IntNotifyWinEvent(EVENT_OBJECT_LOCATIONCHANGE, pWnd, OBJID_CARET, CHILDID_SELF, 0);
|
IntNotifyWinEvent(EVENT_OBJECT_LOCATIONCHANGE, pWnd, OBJID_CARET, CHILDID_SELF, 0);
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -308,7 +207,7 @@ BOOL FASTCALL co_UserShowCaret(PWND Window OPTIONAL)
|
||||||
co_IntSendMessage(ThreadQueue->CaretInfo->hWnd, WM_SYSTIMER, IDCARETTIMER, 0);
|
co_IntSendMessage(ThreadQueue->CaretInfo->hWnd, WM_SYSTIMER, IDCARETTIMER, 0);
|
||||||
IntNotifyWinEvent(EVENT_OBJECT_SHOW, pWnd, OBJID_CARET, OBJID_CARET, 0);
|
IntNotifyWinEvent(EVENT_OBJECT_SHOW, pWnd, OBJID_CARET, OBJID_CARET, 0);
|
||||||
}
|
}
|
||||||
IntSetTimer(UserGetWindowObject(ThreadQueue->CaretInfo->hWnd), IDCARETTIMER, IntGetCaretBlinkTime(), NULL, TMRF_SYSTEM);
|
IntSetTimer(UserGetWindowObject(ThreadQueue->CaretInfo->hWnd), IDCARETTIMER, gpsi->dtCaretBlink, NULL, TMRF_SYSTEM);
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -387,17 +286,15 @@ UINT
|
||||||
APIENTRY
|
APIENTRY
|
||||||
NtUserGetCaretBlinkTime(VOID)
|
NtUserGetCaretBlinkTime(VOID)
|
||||||
{
|
{
|
||||||
DECLARE_RETURN(UINT);
|
UINT ret;
|
||||||
|
|
||||||
TRACE("Enter NtUserGetCaretBlinkTime\n");
|
|
||||||
UserEnterShared();
|
UserEnterShared();
|
||||||
|
|
||||||
RETURN(IntGetCaretBlinkTime());
|
ret = gpsi->dtCaretBlink;
|
||||||
|
|
||||||
CLEANUP:
|
|
||||||
TRACE("Leave NtUserGetCaretBlinkTime, ret=%i\n",_ret_);
|
|
||||||
UserLeave();
|
UserLeave();
|
||||||
END_CLEANUP;
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL
|
BOOL
|
||||||
|
|
|
@ -23,7 +23,6 @@ IntFreeDesktopHeap(
|
||||||
PDESKTOP InputDesktop = NULL;
|
PDESKTOP InputDesktop = NULL;
|
||||||
HDESK InputDesktopHandle = NULL;
|
HDESK InputDesktopHandle = NULL;
|
||||||
HDC ScreenDeviceContext = NULL;
|
HDC ScreenDeviceContext = NULL;
|
||||||
BOOL g_PaintDesktopVersion = FALSE;
|
|
||||||
|
|
||||||
GENERIC_MAPPING IntDesktopMapping =
|
GENERIC_MAPPING IntDesktopMapping =
|
||||||
{
|
{
|
||||||
|
@ -197,13 +196,6 @@ InitDesktopImpl(VOID)
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
|
||||||
FASTCALL
|
|
||||||
CleanupDesktopImpl(VOID)
|
|
||||||
{
|
|
||||||
return STATUS_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int GetSystemVersionString(LPWSTR buffer)
|
static int GetSystemVersionString(LPWSTR buffer)
|
||||||
{
|
{
|
||||||
RTL_OSVERSIONINFOEXW versionInfo;
|
RTL_OSVERSIONINFOEXW versionInfo;
|
||||||
|
@ -569,42 +561,6 @@ HWND FASTCALL IntGetCurrentThreadDesktopWindow(VOID)
|
||||||
return pdo->DesktopWindow;
|
return pdo->DesktopWindow;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL FASTCALL IntDesktopUpdatePerUserSettings(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))
|
|
||||||
{
|
|
||||||
TRACE("RtlQueryRegistryValues failed for PaintDesktopVersion (%x)\n",
|
|
||||||
Status);
|
|
||||||
g_PaintDesktopVersion = FALSE;
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
TRACE("PaintDesktopVersion = %d\n", g_PaintDesktopVersion);
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
g_PaintDesktopVersion = FALSE;
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* PUBLIC FUNCTIONS ***********************************************************/
|
/* PUBLIC FUNCTIONS ***********************************************************/
|
||||||
|
|
||||||
HDC FASTCALL
|
HDC FASTCALL
|
||||||
|
|
|
@ -28,20 +28,6 @@ PHOT_KEY gphkFirst = &hkWinKey;
|
||||||
|
|
||||||
/* FUNCTIONS *****************************************************************/
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
INIT_FUNCTION
|
|
||||||
NTSTATUS
|
|
||||||
NTAPI
|
|
||||||
InitHotkeyImpl(VOID)
|
|
||||||
{
|
|
||||||
return STATUS_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*NTSTATUS FASTCALL
|
|
||||||
CleanupHotKeys(VOID)
|
|
||||||
{
|
|
||||||
return STATUS_SUCCESS;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* IntGetModifiers
|
* IntGetModifiers
|
||||||
*
|
*
|
||||||
|
|
|
@ -10,9 +10,6 @@
|
||||||
#include <win32k.h>
|
#include <win32k.h>
|
||||||
DBG_DEFAULT_CHANNEL(UserInput);
|
DBG_DEFAULT_CHANNEL(UserInput);
|
||||||
|
|
||||||
extern NTSTATUS Win32kInitWin32Thread(PETHREAD Thread);
|
|
||||||
extern PPROCESSINFO ppiScrnSaver;
|
|
||||||
|
|
||||||
/* GLOBALS *******************************************************************/
|
/* GLOBALS *******************************************************************/
|
||||||
|
|
||||||
PTHREADINFO ptiRawInput;
|
PTHREADINFO ptiRawInput;
|
||||||
|
|
|
@ -11,7 +11,7 @@ DBG_DEFAULT_CHANNEL(UserMisc);
|
||||||
|
|
||||||
SHORT
|
SHORT
|
||||||
FASTCALL
|
FASTCALL
|
||||||
IntGdiGetLanguageID(VOID)
|
UserGetLanguageID(VOID)
|
||||||
{
|
{
|
||||||
HANDLE KeyHandle;
|
HANDLE KeyHandle;
|
||||||
OBJECT_ATTRIBUTES ObAttr;
|
OBJECT_ATTRIBUTES ObAttr;
|
||||||
|
|
|
@ -178,7 +178,7 @@ NtUserInitialize(
|
||||||
// InitializeGreCSRSS();
|
// InitializeGreCSRSS();
|
||||||
// {
|
// {
|
||||||
// Startup DxGraphics.
|
// Startup DxGraphics.
|
||||||
// calls ** IntGdiGetLanguageID() and sets it **.
|
// calls ** UserGetLanguageID() and sets it **.
|
||||||
// Enables Fonts drivers, Initialize Font table & Stock Fonts.
|
// Enables Fonts drivers, Initialize Font table & Stock Fonts.
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,7 @@ DBG_DEFAULT_CHANNEL(UserSysparams);
|
||||||
SPIVALUES gspv;
|
SPIVALUES gspv;
|
||||||
BOOL gbSpiInitialized = FALSE;
|
BOOL gbSpiInitialized = FALSE;
|
||||||
PWINSTATION_OBJECT gpwinstaCurrent = NULL;
|
PWINSTATION_OBJECT gpwinstaCurrent = NULL;
|
||||||
|
BOOL g_PaintDesktopVersion = FALSE;
|
||||||
|
|
||||||
// HACK! We initialize SPI before we have a proper surface to get this from.
|
// HACK! We initialize SPI before we have a proper surface to get this from.
|
||||||
#define dpi 96
|
#define dpi 96
|
||||||
|
@ -58,6 +59,8 @@ static const WCHAR* VAL_DRAGWIDTH = L"DragWidth";
|
||||||
static const WCHAR* VAL_FNTSMOOTH = L"FontSmoothing";
|
static const WCHAR* VAL_FNTSMOOTH = L"FontSmoothing";
|
||||||
static const WCHAR* VAL_SCRLLLINES = L"WheelScrollLines";
|
static const WCHAR* VAL_SCRLLLINES = L"WheelScrollLines";
|
||||||
static const WCHAR* VAL_CLICKLOCKTIME = L"ClickLockTime";
|
static const WCHAR* VAL_CLICKLOCKTIME = L"ClickLockTime";
|
||||||
|
static const WCHAR* VAL_PAINTDESKVER = L"PaintDesktopVersion";
|
||||||
|
static const WCHAR* VAL_CARETRATE = L"CursorBlinkRate";
|
||||||
#if (_WIN32_WINNT >= 0x0600)
|
#if (_WIN32_WINNT >= 0x0600)
|
||||||
static const WCHAR* VAL_SCRLLCHARS = L"WheelScrollChars";
|
static const WCHAR* VAL_SCRLLCHARS = L"WheelScrollChars";
|
||||||
#endif
|
#endif
|
||||||
|
@ -267,6 +270,7 @@ SpiUpdatePerUserSystemParameters()
|
||||||
gspv.bDragFullWindows = SpiLoadInt(KEY_DESKTOP, VAL_DRAG, 0);
|
gspv.bDragFullWindows = SpiLoadInt(KEY_DESKTOP, VAL_DRAG, 0);
|
||||||
gspv.iWheelScrollLines = SpiLoadInt(KEY_DESKTOP, VAL_SCRLLLINES, 3);
|
gspv.iWheelScrollLines = SpiLoadInt(KEY_DESKTOP, VAL_SCRLLLINES, 3);
|
||||||
gspv.dwMouseClickLockTime = SpiLoadDWord(KEY_DESKTOP, VAL_CLICKLOCKTIME, 1200);
|
gspv.dwMouseClickLockTime = SpiLoadDWord(KEY_DESKTOP, VAL_CLICKLOCKTIME, 1200);
|
||||||
|
gpsi->dtCaretBlink = SpiLoadInt(KEY_DESKTOP, VAL_CARETRATE, 530);
|
||||||
gspv.dwUserPrefMask = SpiLoadUserPrefMask(UPM_DEFAULT);
|
gspv.dwUserPrefMask = SpiLoadUserPrefMask(UPM_DEFAULT);
|
||||||
gspv.bMouseClickLock = (gspv.dwUserPrefMask & UPM_CLICKLOCK) != 0;
|
gspv.bMouseClickLock = (gspv.dwUserPrefMask & UPM_CLICKLOCK) != 0;
|
||||||
gspv.bMouseCursorShadow = (gspv.dwUserPrefMask & UPM_CURSORSHADOW) != 0;
|
gspv.bMouseCursorShadow = (gspv.dwUserPrefMask & UPM_CURSORSHADOW) != 0;
|
||||||
|
@ -320,7 +324,10 @@ NtUserUpdatePerUserSystemParameters(
|
||||||
UserEnterExclusive();
|
UserEnterExclusive();
|
||||||
|
|
||||||
SpiUpdatePerUserSystemParameters();
|
SpiUpdatePerUserSystemParameters();
|
||||||
bResult = IntDesktopUpdatePerUserSettings(bEnable);
|
if(bEnable)
|
||||||
|
g_PaintDesktopVersion = SpiLoadDWord(KEY_DESKTOP, VAL_PAINTDESKVER, 0);
|
||||||
|
else
|
||||||
|
g_PaintDesktopVersion = FALSE;
|
||||||
|
|
||||||
TRACE("Leave NtUserUpdatePerUserSystemParameters, returning %d\n", bResult);
|
TRACE("Leave NtUserUpdatePerUserSystemParameters, returning %d\n", bResult);
|
||||||
UserLeave();
|
UserLeave();
|
||||||
|
|
|
@ -66,12 +66,6 @@ InitWindowStationImpl(VOID)
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
|
||||||
CleanupWindowStationImpl(VOID)
|
|
||||||
{
|
|
||||||
return STATUS_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* OBJECT CALLBACKS **********************************************************/
|
/* OBJECT CALLBACKS **********************************************************/
|
||||||
|
|
||||||
VOID APIENTRY
|
VOID APIENTRY
|
||||||
|
|
Loading…
Reference in a new issue