Compare commits
2 Commits
5873398790
...
5f8a454e3f
Author | SHA1 | Date |
---|---|---|
Mr_Goldberg | 5f8a454e3f | |
Mr_Goldberg | 6dfe11503b |
|
@ -649,6 +649,13 @@ static void load_dlls()
|
||||||
std::vector<std::string> paths = Local_Storage::get_filenames_path(path);
|
std::vector<std::string> paths = Local_Storage::get_filenames_path(path);
|
||||||
for (auto & p: paths) {
|
for (auto & p: paths) {
|
||||||
std::string full_path = path + p;
|
std::string full_path = path + p;
|
||||||
|
size_t length = full_path.length();
|
||||||
|
if (length < 4) continue;
|
||||||
|
if (std::toupper(full_path[length - 1]) != 'L') continue;
|
||||||
|
if (std::toupper(full_path[length - 2]) != 'L') continue;
|
||||||
|
if (std::toupper(full_path[length - 3]) != 'D') continue;
|
||||||
|
if (full_path[length - 4] != '.') continue;
|
||||||
|
|
||||||
PRINT_DEBUG("Trying to load %s\n", full_path.c_str());
|
PRINT_DEBUG("Trying to load %s\n", full_path.c_str());
|
||||||
if (LoadLibraryA(full_path.c_str())) {
|
if (LoadLibraryA(full_path.c_str())) {
|
||||||
PRINT_DEBUG("LOADED %s\n", full_path.c_str());
|
PRINT_DEBUG("LOADED %s\n", full_path.c_str());
|
||||||
|
|
|
@ -18,13 +18,15 @@ bool Windows_Hook::start_hook()
|
||||||
{
|
{
|
||||||
GetRawInputBuffer = ::GetRawInputBuffer;
|
GetRawInputBuffer = ::GetRawInputBuffer;
|
||||||
GetRawInputData = ::GetRawInputData;
|
GetRawInputData = ::GetRawInputData;
|
||||||
|
SetCursorPos = ::SetCursorPos;
|
||||||
|
|
||||||
PRINT_DEBUG("Hooked Windows\n");
|
PRINT_DEBUG("Hooked Windows\n");
|
||||||
|
|
||||||
BeginHook();
|
BeginHook();
|
||||||
HookFuncs(
|
HookFuncs(
|
||||||
std::make_pair<void**, void*>(&(PVOID&)GetRawInputBuffer, &Windows_Hook::MyGetRawInputBuffer),
|
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();
|
EndHook();
|
||||||
|
|
||||||
|
@ -169,6 +171,18 @@ UINT WINAPI Windows_Hook::MyGetRawInputData(HRAWINPUT hRawInput, UINT uiCommand,
|
||||||
|
|
||||||
return 0;
|
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() :
|
Windows_Hook::Windows_Hook() :
|
||||||
|
|
|
@ -26,11 +26,13 @@ private:
|
||||||
// Hook to Windows window messages
|
// Hook to Windows window messages
|
||||||
decltype(GetRawInputBuffer)* GetRawInputBuffer;
|
decltype(GetRawInputBuffer)* GetRawInputBuffer;
|
||||||
decltype(GetRawInputData)* GetRawInputData;
|
decltype(GetRawInputData)* GetRawInputData;
|
||||||
|
decltype(SetCursorPos)* SetCursorPos;
|
||||||
|
|
||||||
static LRESULT CALLBACK HookWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
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 MyGetRawInputBuffer(PRAWINPUT pData, PUINT pcbSize, UINT cbSizeHeader);
|
||||||
static UINT WINAPI MyGetRawInputData(HRAWINPUT hRawInput, UINT uiCommand, LPVOID 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:
|
public:
|
||||||
virtual ~Windows_Hook();
|
virtual ~Windows_Hook();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue