mirror of
https://github.com/reactos/reactos.git
synced 2024-07-31 00:28:56 +00:00
- Replaced fix pi and enabled test for window processes with the proper signing. Yes regedit works.
svn path=/trunk/; revision=40340
This commit is contained in:
parent
9f2a6c263e
commit
15c0d86086
|
@ -48,6 +48,7 @@ BOOL WINAPI NtGdiPatBlt(HDC hdcDst, INT x, INT y, INT cx, INT cy, DWORD rop4);
|
||||||
LONG WINAPI GdiGetCharDimensions(HDC, LPTEXTMETRICW, LONG *);
|
LONG WINAPI GdiGetCharDimensions(HDC, LPTEXTMETRICW, LONG *);
|
||||||
BOOL FASTCALL IsMetaFile(HDC);
|
BOOL FASTCALL IsMetaFile(HDC);
|
||||||
|
|
||||||
|
extern PPROCESSINFO g_ppi;
|
||||||
extern ULONG_PTR g_ulSharedDelta;
|
extern ULONG_PTR g_ulSharedDelta;
|
||||||
extern PSERVERINFO g_psi;
|
extern PSERVERINFO g_psi;
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(user32);
|
||||||
static ULONG User32TlsIndex;
|
static ULONG User32TlsIndex;
|
||||||
HINSTANCE User32Instance;
|
HINSTANCE User32Instance;
|
||||||
|
|
||||||
|
PPROCESSINFO g_ppi = NULL;
|
||||||
PUSER_HANDLE_TABLE gHandleTable = NULL;
|
PUSER_HANDLE_TABLE gHandleTable = NULL;
|
||||||
PUSER_HANDLE_ENTRY gHandleEntries = NULL;
|
PUSER_HANDLE_ENTRY gHandleEntries = NULL;
|
||||||
PSERVERINFO g_psi = NULL;
|
PSERVERINFO g_psi = NULL;
|
||||||
|
@ -234,6 +235,7 @@ Init(VOID)
|
||||||
&UserCon,
|
&UserCon,
|
||||||
sizeof(USERCONNECT));
|
sizeof(USERCONNECT));
|
||||||
|
|
||||||
|
g_ppi = GetWin32ClientInfo()->ppi; // Snapshot PI, used as pointer only!
|
||||||
g_ulSharedDelta = UserCon.siClient.ulSharedDelta;
|
g_ulSharedDelta = UserCon.siClient.ulSharedDelta;
|
||||||
g_psi = SharedPtrToUser(UserCon.siClient.psi);
|
g_psi = SharedPtrToUser(UserCon.siClient.psi);
|
||||||
gHandleTable = SharedPtrToUser(UserCon.siClient.aheList);
|
gHandleTable = SharedPtrToUser(UserCon.siClient.aheList);
|
||||||
|
@ -333,12 +335,13 @@ GetConnected(VOID)
|
||||||
if ((PW32THREADINFO)NtCurrentTeb()->Win32ThreadInfo == NULL)
|
if ((PW32THREADINFO)NtCurrentTeb()->Win32ThreadInfo == NULL)
|
||||||
NtUserGetThreadState(THREADSTATE_GETTHREADINFO);
|
NtUserGetThreadState(THREADSTATE_GETTHREADINFO);
|
||||||
|
|
||||||
if (g_psi) return;
|
if (g_psi && g_ppi) return;
|
||||||
|
|
||||||
NtUserProcessConnect( NtCurrentProcess(),
|
NtUserProcessConnect( NtCurrentProcess(),
|
||||||
&UserCon,
|
&UserCon,
|
||||||
sizeof(USERCONNECT));
|
sizeof(USERCONNECT));
|
||||||
|
|
||||||
|
g_ppi = GetWin32ClientInfo()->ppi;
|
||||||
g_ulSharedDelta = UserCon.siClient.ulSharedDelta;
|
g_ulSharedDelta = UserCon.siClient.ulSharedDelta;
|
||||||
g_psi = SharedPtrToUser(UserCon.siClient.psi);
|
g_psi = SharedPtrToUser(UserCon.siClient.psi);
|
||||||
gHandleTable = SharedPtrToUser(UserCon.siClient.aheList);
|
gHandleTable = SharedPtrToUser(UserCon.siClient.aheList);
|
||||||
|
|
|
@ -431,7 +431,7 @@ FASTCALL
|
||||||
ValidateCallProc(HANDLE hCallProc)
|
ValidateCallProc(HANDLE hCallProc)
|
||||||
{
|
{
|
||||||
PCALLPROC CallProc = ValidateHandle(hCallProc, VALIDATE_TYPE_CALLPROC);
|
PCALLPROC CallProc = ValidateHandle(hCallProc, VALIDATE_TYPE_CALLPROC);
|
||||||
if (CallProc != NULL && CallProc->pi == GetWin32ClientInfo()->ppi)
|
if (CallProc != NULL && CallProc->pi == g_ppi)
|
||||||
return CallProc;
|
return CallProc;
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
@ -1126,8 +1126,7 @@ GetWindowTextA(HWND hWnd, LPSTR lpString, int nMaxCount)
|
||||||
|
|
||||||
_SEH2_TRY
|
_SEH2_TRY
|
||||||
{
|
{
|
||||||
// if (TestWindowProcess( Wnd))
|
if (!TestWindowProcess( Wnd))
|
||||||
if (Wnd->pi != GetWin32ClientInfo()->ppi)
|
|
||||||
{
|
{
|
||||||
if (nMaxCount > 0)
|
if (nMaxCount > 0)
|
||||||
{
|
{
|
||||||
|
@ -1217,8 +1216,7 @@ GetWindowTextW(HWND hWnd, LPWSTR lpString, int nMaxCount)
|
||||||
|
|
||||||
_SEH2_TRY
|
_SEH2_TRY
|
||||||
{
|
{
|
||||||
// if (TestWindowProcess( Wnd))
|
if (!TestWindowProcess( Wnd))
|
||||||
if (Wnd->pi != GetWin32ClientInfo()->ppi)
|
|
||||||
{
|
{
|
||||||
if (nMaxCount > 0)
|
if (nMaxCount > 0)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue