Author: jimtabor
Date: Tue Jul 8 13:58:07 2008
New Revision: 34370
URL:
http://svn.reactos.org/svn/reactos?rev=34370&view=rev
Log:
Win32k/User32:
- Removed NtUserGetSystemMetric, updated all related.
- Add GetConnected, this is needed, sometimes global pointers are initilized with zeros.
This is normal.
- Fix prototype for NtUserDragDetect, and add the Esc key hit to DragDetect.
Modified:
trunk/reactos/dll/win32/user32/include/user32.h
trunk/reactos/dll/win32/user32/misc/desktop.c
trunk/reactos/dll/win32/user32/misc/dllmain.c
trunk/reactos/dll/win32/user32/windows/input.c
trunk/reactos/include/reactos/win32k/ntuser.h
trunk/reactos/subsystems/win32/win32k/ntuser/input.c
trunk/reactos/subsystems/win32/win32k/ntuser/metric.c
Modified: trunk/reactos/dll/win32/user32/include/user32.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/user32/include/u…
==============================================================================
--- trunk/reactos/dll/win32/user32/include/user32.h [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/user32/include/user32.h [iso-8859-1] Tue Jul 8 13:58:07 2008
@@ -115,3 +115,4 @@
PWINDOW FASTCALL GetThreadDesktopWnd(VOID);
PVOID FASTCALL ValidateHandleNoErr(HANDLE handle, UINT uType);
PWINDOW FASTCALL ValidateHwndNoErr(HWND hwnd);
+VOID FASTCALL GetConnected(VOID);
Modified: trunk/reactos/dll/win32/user32/misc/desktop.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/user32/misc/desk…
==============================================================================
--- trunk/reactos/dll/win32/user32/misc/desktop.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/user32/misc/desktop.c [iso-8859-1] Tue Jul 8 13:58:07 2008
@@ -99,12 +99,10 @@
int STDCALL
GetSystemMetrics(int nIndex)
{
+ GetConnected();
// FIXME("Global Sever Data -> %x\n",g_psi);
if (nIndex < 0 || nIndex >= SM_CMETRICS) return 0;
- if (g_psi)
- return g_psi->SystemMetrics[nIndex];
- else
- return(NtUserGetSystemMetrics(nIndex));
+ return g_psi->SystemMetrics[nIndex];
}
Modified: trunk/reactos/dll/win32/user32/misc/dllmain.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/user32/misc/dllm…
==============================================================================
--- trunk/reactos/dll/win32/user32/misc/dllmain.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/user32/misc/dllmain.c [iso-8859-1] Tue Jul 8 13:58:07 2008
@@ -295,3 +295,25 @@
return TRUE;
}
+
+
+VOID
+FASTCALL
+GetConnected(VOID)
+{
+ PW32PROCESSINFO pi;
+
+ if ((PW32THREADINFO)NtCurrentTeb()->Win32ThreadInfo == NULL)
+ NtUserGetThreadState(THREADSTATE_GETTHREADINFO);
+
+ if (g_pi && g_kpi && g_psi) return;
+
+ pi = GetW32ProcessInfo();
+ if (!g_pi) g_pi = pi;
+ if (!g_kpi) g_kpi = SharedPtrToKernel(pi);
+ if (!g_psi) g_psi = SharedPtrToUser(pi->psi);
+ if (!g_psi) { WARN("Global Share Information has not been initialized!\n");
}
+ if (!gHandleTable) gHandleTable = SharedPtrToUser(pi->UserHandleTable);
+ if (!gHandleEntries) gHandleEntries = SharedPtrToUser(gHandleTable->handles);
+
+}
Modified: trunk/reactos/dll/win32/user32/windows/input.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/user32/windows/i…
==============================================================================
--- trunk/reactos/dll/win32/user32/windows/input.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/user32/windows/input.c [iso-8859-1] Tue Jul 8 13:58:07 2008
@@ -50,13 +50,13 @@
POINT pt)
{
#if 0
- return NtUserDragDetect(hWnd, pt.x, pt.y);
+ return NtUserDragDetect(hWnd, pt);
#else
MSG msg;
RECT rect;
POINT tmp;
- ULONG dx = NtUserGetSystemMetrics(SM_CXDRAG);
- ULONG dy = NtUserGetSystemMetrics(SM_CYDRAG);
+ ULONG dx = GetSystemMetrics(SM_CXDRAG);
+ ULONG dy = GetSystemMetrics(SM_CYDRAG);
rect.left = pt.x - dx;
rect.right = pt.x + dx;
@@ -67,12 +67,15 @@
for (;;)
{
- while (PeekMessageW(&msg, 0, WM_MOUSEFIRST, WM_MOUSELAST, PM_REMOVE))
+ while (
+ PeekMessageW(&msg, 0, WM_MOUSEFIRST, WM_MOUSELAST, PM_REMOVE) ||
+ PeekMessageW(&msg, 0, WM_KEYFIRST, WM_KEYLAST, PM_REMOVE)
+ )
{
if (msg.message == WM_LBUTTONUP)
{
ReleaseCapture();
- return 0;
+ return FALSE;
}
if (msg.message == WM_MOUSEMOVE)
{
@@ -81,8 +84,16 @@
if (!PtInRect(&rect, tmp))
{
ReleaseCapture();
- return 1;
+ return TRUE;
}
+ }
+ if (msg.message == WM_KEYDOWN)
+ {
+ if (msg.wParam == VK_ESCAPE)
+ {
+ ReleaseCapture();
+ return TRUE;
+ }
}
}
WaitMessage();
Modified: trunk/reactos/include/reactos/win32k/ntuser.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/win32k/ntu…
==============================================================================
--- trunk/reactos/include/reactos/win32k/ntuser.h [iso-8859-1] (original)
+++ trunk/reactos/include/reactos/win32k/ntuser.h [iso-8859-1] Tue Jul 8 13:58:07 2008
@@ -1062,8 +1062,7 @@
NTAPI
NtUserDragDetect(
HWND hWnd,
- LONG x,
- LONG y);
+ POINT pt);
DWORD
NTAPI
@@ -2718,10 +2717,6 @@
NTAPI
NtUserGetShellWindow();
-ULONG
-NTAPI
-NtUserGetSystemMetrics(ULONG Index);
-
HWND
NTAPI
NtUserGetWindow(HWND hWnd, UINT Relationship);
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/input.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/nt…
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/ntuser/input.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/ntuser/input.c [iso-8859-1] Tue Jul 8 13:58:07
2008
@@ -885,8 +885,7 @@
STDCALL
NtUserDragDetect(
HWND hWnd,
- LONG x,
- LONG y)
+ POINT pt) // Just like the User call.
{
UNIMPLEMENTED
return 0;
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/metric.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/nt…
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/ntuser/metric.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/ntuser/metric.c [iso-8859-1] Tue Jul 8 13:58:07
2008
@@ -467,21 +467,5 @@
}
}
-ULONG STDCALL
-NtUserGetSystemMetrics(ULONG Index)
-{
- DECLARE_RETURN(ULONG);
-
- DPRINT("Enter NtUserGetSystemMetrics\n");
- UserEnterShared();
-
- RETURN(UserGetSystemMetrics(Index));
-
-CLEANUP:
- DPRINT("Leave NtUserGetSystemMetrics, ret=%i\n",_ret_);
- UserLeave();
- END_CLEANUP;
-}
-
/* EOF */