mirror of
https://github.com/Detanup01/gbe_fork.git
synced 2024-12-26 10:24:14 +08:00
Fixed mouse getting stuck in the middle of the overlay in some games.
This commit is contained in:
parent
6dfe11503b
commit
5f8a454e3f
@ -18,13 +18,15 @@ bool Windows_Hook::start_hook()
|
||||
{
|
||||
GetRawInputBuffer = ::GetRawInputBuffer;
|
||||
GetRawInputData = ::GetRawInputData;
|
||||
SetCursorPos = ::SetCursorPos;
|
||||
|
||||
PRINT_DEBUG("Hooked Windows\n");
|
||||
|
||||
BeginHook();
|
||||
HookFuncs(
|
||||
std::make_pair<void**, void*>(&(PVOID&)GetRawInputBuffer, &Windows_Hook::MyGetRawInputBuffer),
|
||||
std::make_pair<void**, void*>(&(PVOID&)GetRawInputData , &Windows_Hook::MyGetRawInputData)
|
||||
std::make_pair<void**, void*>(&(PVOID&)GetRawInputData , &Windows_Hook::MyGetRawInputData),
|
||||
std::make_pair<void**, void*>(&(PVOID&)SetCursorPos , &Windows_Hook::MySetCursorPos)
|
||||
);
|
||||
EndHook();
|
||||
|
||||
@ -169,6 +171,18 @@ UINT WINAPI Windows_Hook::MyGetRawInputData(HRAWINPUT hRawInput, UINT uiCommand,
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
BOOL WINAPI Windows_Hook::MySetCursorPos(int x, int y)
|
||||
{
|
||||
if (get_steam_client()->steam_overlay->ShowOverlay()) {
|
||||
POINT p;
|
||||
GetCursorPos(&p);
|
||||
x = p.x;
|
||||
y = p.y;
|
||||
}
|
||||
|
||||
return Windows_Hook::Inst()->SetCursorPos(x, y);
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
Windows_Hook::Windows_Hook() :
|
||||
|
@ -26,11 +26,13 @@ private:
|
||||
// Hook to Windows window messages
|
||||
decltype(GetRawInputBuffer)* GetRawInputBuffer;
|
||||
decltype(GetRawInputData)* GetRawInputData;
|
||||
decltype(SetCursorPos)* SetCursorPos;
|
||||
|
||||
static LRESULT CALLBACK HookWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
||||
static UINT WINAPI MyGetRawInputBuffer(PRAWINPUT pData, PUINT pcbSize, UINT cbSizeHeader);
|
||||
static UINT WINAPI MyGetRawInputData(HRAWINPUT hRawInput, UINT uiCommand, LPVOID pData, PUINT pcbSize, UINT cbSizeHeader);
|
||||
|
||||
static BOOL WINAPI MySetCursorPos(int x, int y);
|
||||
public:
|
||||
virtual ~Windows_Hook();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user