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 PCLS DesktopWindowClass;
|
||||
extern HDC ScreenDeviceContext;
|
||||
extern BOOL g_PaintDesktopVersion;
|
||||
|
||||
typedef struct _SHELL_HOOK_WINDOW
|
||||
{
|
||||
|
@ -56,9 +55,6 @@ NTSTATUS
|
|||
NTAPI
|
||||
InitDesktopImpl(VOID);
|
||||
|
||||
NTSTATUS FASTCALL
|
||||
CleanupDesktopImpl(VOID);
|
||||
|
||||
NTSTATUS
|
||||
APIENTRY
|
||||
IntDesktopObjectParse(IN PVOID ParseObject,
|
||||
|
@ -121,7 +117,6 @@ IntParseDesktopPath(PEPROCESS Process,
|
|||
HWINSTA *hWinSta,
|
||||
HDESK *hDesktop);
|
||||
|
||||
BOOL FASTCALL IntDesktopUpdatePerUserSettings(BOOL bEnable);
|
||||
VOID APIENTRY UserRedrawDesktop(VOID);
|
||||
BOOL IntRegisterShellHookWindow(HWND hWnd);
|
||||
BOOL IntDeRegisterShellHookWindow(HWND hWnd);
|
||||
|
|
|
@ -16,8 +16,6 @@ typedef struct _HOT_KEY
|
|||
#define IDHK_WINKEY -7
|
||||
#define IDHK_REACTOS -8
|
||||
|
||||
INIT_FUNCTION NTSTATUS NTAPI InitHotkeyImpl(VOID);
|
||||
|
||||
VOID FASTCALL UnregisterWindowHotKeys(PWND Window);
|
||||
VOID FASTCALL UnregisterThreadHotKeys(struct _ETHREAD *pThread);
|
||||
BOOL NTAPI co_UserProcessHotKeys(WORD wVk, BOOL bIsDown);
|
||||
|
|
|
@ -23,7 +23,7 @@ extern BOOL APIENTRY IntEngLeave(PINTENG_ENTER_LEAVE EnterLeave);
|
|||
extern HGDIOBJ StockObjects[];
|
||||
extern SHORT gusLanguageID;
|
||||
|
||||
SHORT FASTCALL IntGdiGetLanguageID(VOID);
|
||||
SHORT FASTCALL UserGetLanguageID(VOID);
|
||||
VOID FASTCALL IntUserManualGuiCheck(LONG Check);
|
||||
PVOID APIENTRY HackSecureVirtualMemory(IN PVOID,IN SIZE_T,IN ULONG,OUT PVOID *);
|
||||
VOID APIENTRY HackUnsecureVirtualMemory(IN PVOID);
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
|
||||
extern PSERVERINFO gpsi;
|
||||
extern PTHREADINFO gptiCurrent;
|
||||
extern PPROCESSINFO ppiScrnSaver;
|
||||
|
||||
INIT_FUNCTION NTSTATUS NTAPI InitUserImpl(VOID);
|
||||
VOID FASTCALL CleanupUserImpl(VOID);
|
||||
|
|
|
@ -175,6 +175,7 @@ typedef union _SPIBUFFER
|
|||
} SPIBUFFER;
|
||||
|
||||
extern SPIVALUES gspv;
|
||||
extern BOOL g_PaintDesktopVersion;
|
||||
|
||||
BOOL InitSysParams();
|
||||
|
||||
|
|
|
@ -74,13 +74,6 @@ NTSTATUS
|
|||
NTAPI
|
||||
InitWindowStationImpl(VOID);
|
||||
|
||||
NTSTATUS FASTCALL
|
||||
CleanupWindowStationImpl(VOID);
|
||||
|
||||
NTSTATUS
|
||||
APIENTRY
|
||||
IntWinStaObjectOpen(PWIN32_OPENMETHOD_PARAMETERS Parameters);
|
||||
|
||||
VOID APIENTRY
|
||||
IntWinStaObjectDelete(PWIN32_DELETEMETHOD_PARAMETERS Parameters);
|
||||
|
||||
|
|
|
@ -454,41 +454,6 @@ leave:
|
|||
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
|
||||
C_ASSERT(sizeof(SERVERINFO) <= PAGE_SIZE);
|
||||
#endif
|
||||
|
@ -588,7 +553,6 @@ DriverEntry(
|
|||
NT_ROF(InitDeviceImpl());
|
||||
NT_ROF(InitDcImpl());
|
||||
NT_ROF(InitUserImpl());
|
||||
NT_ROF(InitHotkeyImpl());
|
||||
NT_ROF(InitWindowStationImpl());
|
||||
NT_ROF(InitDesktopImpl());
|
||||
NT_ROF(InitInputImpl());
|
||||
|
@ -603,7 +567,7 @@ DriverEntry(
|
|||
return Status;
|
||||
}
|
||||
|
||||
gusLanguageID = IntGdiGetLanguageID();
|
||||
gusLanguageID = UserGetLanguageID();
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
|
|
@ -13,9 +13,6 @@ DBG_DEFAULT_CHANNEL(UserCaret);
|
|||
|
||||
#define MIN_CARETBLINKRATE 100
|
||||
#define MAX_CARETBLINKRATE 10000
|
||||
#define DEFAULT_CARETBLINKRATE 530
|
||||
#define CARET_REGKEY L"\\Registry\\User\\.Default\\Control Panel\\Desktop"
|
||||
#define CARET_VALUENAME L"CursorBlinkRate"
|
||||
|
||||
/* FUNCTIONS *****************************************************************/
|
||||
|
||||
|
@ -60,117 +57,19 @@ BOOL FASTCALL
|
|||
IntSetCaretBlinkTime(UINT uMSeconds)
|
||||
{
|
||||
/* Don't save the new value to the registry! */
|
||||
PTHREADINFO pti = PsGetCurrentThreadWin32Thread();
|
||||
PWINSTATION_OBJECT WinStaObject = pti->rpdesk->rpwinstaParent;
|
||||
|
||||
/* Windows doesn't do this check */
|
||||
if((uMSeconds < MIN_CARETBLINKRATE) || (uMSeconds > MAX_CARETBLINKRATE))
|
||||
{
|
||||
EngSetLastError(ERROR_INVALID_PARAMETER);
|
||||
ObDereferenceObject(WinStaObject);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
WinStaObject->CaretBlinkRate = uMSeconds;
|
||||
gpsi->dtCaretBlink = uMSeconds;
|
||||
|
||||
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
|
||||
co_IntSetCaretPos(int X, int Y)
|
||||
{
|
||||
|
@ -191,7 +90,7 @@ co_IntSetCaretPos(int X, int Y)
|
|||
ThreadQueue->CaretInfo->Pos.x = X;
|
||||
ThreadQueue->CaretInfo->Pos.y = Y;
|
||||
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);
|
||||
}
|
||||
return TRUE;
|
||||
|
@ -308,7 +207,7 @@ BOOL FASTCALL co_UserShowCaret(PWND Window OPTIONAL)
|
|||
co_IntSendMessage(ThreadQueue->CaretInfo->hWnd, WM_SYSTIMER, IDCARETTIMER, 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;
|
||||
}
|
||||
|
@ -387,17 +286,15 @@ UINT
|
|||
APIENTRY
|
||||
NtUserGetCaretBlinkTime(VOID)
|
||||
{
|
||||
DECLARE_RETURN(UINT);
|
||||
UINT ret;
|
||||
|
||||
TRACE("Enter NtUserGetCaretBlinkTime\n");
|
||||
UserEnterShared();
|
||||
|
||||
RETURN(IntGetCaretBlinkTime());
|
||||
ret = gpsi->dtCaretBlink;
|
||||
|
||||
CLEANUP:
|
||||
TRACE("Leave NtUserGetCaretBlinkTime, ret=%i\n",_ret_);
|
||||
UserLeave();
|
||||
END_CLEANUP;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
BOOL
|
||||
|
|
|
@ -23,7 +23,6 @@ IntFreeDesktopHeap(
|
|||
PDESKTOP InputDesktop = NULL;
|
||||
HDESK InputDesktopHandle = NULL;
|
||||
HDC ScreenDeviceContext = NULL;
|
||||
BOOL g_PaintDesktopVersion = FALSE;
|
||||
|
||||
GENERIC_MAPPING IntDesktopMapping =
|
||||
{
|
||||
|
@ -197,13 +196,6 @@ InitDesktopImpl(VOID)
|
|||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
NTSTATUS
|
||||
FASTCALL
|
||||
CleanupDesktopImpl(VOID)
|
||||
{
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static int GetSystemVersionString(LPWSTR buffer)
|
||||
{
|
||||
RTL_OSVERSIONINFOEXW versionInfo;
|
||||
|
@ -569,42 +561,6 @@ HWND FASTCALL IntGetCurrentThreadDesktopWindow(VOID)
|
|||
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 ***********************************************************/
|
||||
|
||||
HDC FASTCALL
|
||||
|
|
|
@ -28,20 +28,6 @@ PHOT_KEY gphkFirst = &hkWinKey;
|
|||
|
||||
/* FUNCTIONS *****************************************************************/
|
||||
|
||||
INIT_FUNCTION
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
InitHotkeyImpl(VOID)
|
||||
{
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/*NTSTATUS FASTCALL
|
||||
CleanupHotKeys(VOID)
|
||||
{
|
||||
return STATUS_SUCCESS;
|
||||
}*/
|
||||
|
||||
/*
|
||||
* IntGetModifiers
|
||||
*
|
||||
|
|
|
@ -10,9 +10,6 @@
|
|||
#include <win32k.h>
|
||||
DBG_DEFAULT_CHANNEL(UserInput);
|
||||
|
||||
extern NTSTATUS Win32kInitWin32Thread(PETHREAD Thread);
|
||||
extern PPROCESSINFO ppiScrnSaver;
|
||||
|
||||
/* GLOBALS *******************************************************************/
|
||||
|
||||
PTHREADINFO ptiRawInput;
|
||||
|
|
|
@ -11,7 +11,7 @@ DBG_DEFAULT_CHANNEL(UserMisc);
|
|||
|
||||
SHORT
|
||||
FASTCALL
|
||||
IntGdiGetLanguageID(VOID)
|
||||
UserGetLanguageID(VOID)
|
||||
{
|
||||
HANDLE KeyHandle;
|
||||
OBJECT_ATTRIBUTES ObAttr;
|
||||
|
|
|
@ -178,7 +178,7 @@ NtUserInitialize(
|
|||
// InitializeGreCSRSS();
|
||||
// {
|
||||
// Startup DxGraphics.
|
||||
// calls ** IntGdiGetLanguageID() and sets it **.
|
||||
// calls ** UserGetLanguageID() and sets it **.
|
||||
// Enables Fonts drivers, Initialize Font table & Stock Fonts.
|
||||
// }
|
||||
|
||||
|
|
|
@ -17,6 +17,7 @@ DBG_DEFAULT_CHANNEL(UserSysparams);
|
|||
SPIVALUES gspv;
|
||||
BOOL gbSpiInitialized = FALSE;
|
||||
PWINSTATION_OBJECT gpwinstaCurrent = NULL;
|
||||
BOOL g_PaintDesktopVersion = FALSE;
|
||||
|
||||
// HACK! We initialize SPI before we have a proper surface to get this from.
|
||||
#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_SCRLLLINES = L"WheelScrollLines";
|
||||
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)
|
||||
static const WCHAR* VAL_SCRLLCHARS = L"WheelScrollChars";
|
||||
#endif
|
||||
|
@ -267,6 +270,7 @@ SpiUpdatePerUserSystemParameters()
|
|||
gspv.bDragFullWindows = SpiLoadInt(KEY_DESKTOP, VAL_DRAG, 0);
|
||||
gspv.iWheelScrollLines = SpiLoadInt(KEY_DESKTOP, VAL_SCRLLLINES, 3);
|
||||
gspv.dwMouseClickLockTime = SpiLoadDWord(KEY_DESKTOP, VAL_CLICKLOCKTIME, 1200);
|
||||
gpsi->dtCaretBlink = SpiLoadInt(KEY_DESKTOP, VAL_CARETRATE, 530);
|
||||
gspv.dwUserPrefMask = SpiLoadUserPrefMask(UPM_DEFAULT);
|
||||
gspv.bMouseClickLock = (gspv.dwUserPrefMask & UPM_CLICKLOCK) != 0;
|
||||
gspv.bMouseCursorShadow = (gspv.dwUserPrefMask & UPM_CURSORSHADOW) != 0;
|
||||
|
@ -320,7 +324,10 @@ NtUserUpdatePerUserSystemParameters(
|
|||
UserEnterExclusive();
|
||||
|
||||
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);
|
||||
UserLeave();
|
||||
|
|
|
@ -66,12 +66,6 @@ InitWindowStationImpl(VOID)
|
|||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
NTSTATUS FASTCALL
|
||||
CleanupWindowStationImpl(VOID)
|
||||
{
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/* OBJECT CALLBACKS **********************************************************/
|
||||
|
||||
VOID APIENTRY
|
||||
|
|
Loading…
Reference in a new issue