hook GetForegroundWindow
This commit is contained in:
parent
876160cbb6
commit
24d66d8a30
6 changed files with 19 additions and 4 deletions
2
src/dd.c
2
src/dd.c
|
@ -781,7 +781,7 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl
|
|||
}
|
||||
}
|
||||
|
||||
if (lock_mouse || (g_ddraw->fullscreen && GetForegroundWindow() == g_ddraw->hwnd))
|
||||
if (lock_mouse || (g_ddraw->fullscreen && real_GetForegroundWindow() == g_ddraw->hwnd))
|
||||
mouse_lock();
|
||||
}
|
||||
else
|
||||
|
|
|
@ -41,6 +41,7 @@ DESTROYWINDOWPROC real_DestroyWindow = DestroyWindow;
|
|||
MAPWINDOWPOINTSPROC real_MapWindowPoints = MapWindowPoints;
|
||||
SHOWWINDOWPROC real_ShowWindow = ShowWindow;
|
||||
GETTOPWINDOWPROC real_GetTopWindow = GetTopWindow;
|
||||
GETFOREGROUNDWINDOWPROC real_GetForegroundWindow = GetForegroundWindow;
|
||||
STRETCHBLTPROC real_StretchBlt = StretchBlt;
|
||||
SETDIBITSTODEVICEPROC real_SetDIBitsToDevice = SetDIBitsToDevice;
|
||||
STRETCHDIBITSPROC real_StretchDIBits = StretchDIBits;
|
||||
|
@ -82,6 +83,7 @@ static HOOKLIST g_hooks[] =
|
|||
{ "MapWindowPoints", (PROC)fake_MapWindowPoints, (PROC*)&real_MapWindowPoints, 0 },
|
||||
{ "ShowWindow", (PROC)fake_ShowWindow, (PROC*)&real_ShowWindow, 0 },
|
||||
{ "GetTopWindow", (PROC)fake_GetTopWindow, (PROC*)&real_GetTopWindow, 0 },
|
||||
{ "GetForegroundWindow", (PROC)fake_GetForegroundWindow, (PROC*)&real_GetForegroundWindow, 0 },
|
||||
{ "", NULL, NULL, 0 }
|
||||
}
|
||||
},
|
||||
|
|
|
@ -527,6 +527,16 @@ HWND WINAPI fake_GetTopWindow(HWND hWnd)
|
|||
return real_GetTopWindow(hWnd);
|
||||
}
|
||||
|
||||
HWND WINAPI fake_GetForegroundWindow()
|
||||
{
|
||||
if (g_ddraw && g_ddraw->windowed && g_ddraw->hwnd)
|
||||
{
|
||||
return g_ddraw->hwnd;
|
||||
}
|
||||
|
||||
return real_GetForegroundWindow();
|
||||
}
|
||||
|
||||
HHOOK WINAPI fake_SetWindowsHookExA(int idHook, HOOKPROC lpfn, HINSTANCE hmod, DWORD dwThreadId)
|
||||
{
|
||||
if (idHook == WH_KEYBOARD_LL && hmod && GetModuleHandle("AcGenral") == hmod)
|
||||
|
|
|
@ -486,7 +486,7 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam
|
|||
{
|
||||
mouse_unlock();
|
||||
|
||||
if (GetForegroundWindow() == g_ddraw->hwnd)
|
||||
if (real_GetForegroundWindow() == g_ddraw->hwnd)
|
||||
mouse_lock();
|
||||
}
|
||||
}
|
||||
|
@ -525,7 +525,7 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam
|
|||
mouse_lock();
|
||||
}
|
||||
}
|
||||
else if (g_ddraw->fullscreen && GetForegroundWindow() == g_ddraw->hwnd)
|
||||
else if (g_ddraw->fullscreen && real_GetForegroundWindow() == g_ddraw->hwnd)
|
||||
{
|
||||
mouse_lock();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue