mirror of
https://gitlab.com/Mr_Goldberg/goldberg_emulator.git
synced 2024-11-14 10:50:13 +01:00
50 lines
No EOL
1.2 KiB
C++
50 lines
No EOL
1.2 KiB
C++
#ifndef __INCLUDED_HOOK_BASE_H__
|
|
#define __INCLUDED_HOOK_BASE_H__
|
|
|
|
#include "Base_Hook.h"
|
|
|
|
#ifdef STEAM_WIN32
|
|
|
|
#include <Windows.h>
|
|
#include <vector>
|
|
|
|
class Hook_Manager
|
|
{
|
|
friend class Base_Hook;
|
|
public:
|
|
using overlayProc_t = void(*)(int,int);
|
|
using hookReady_t = void(*)(void*);
|
|
|
|
protected:
|
|
std::vector<Base_Hook*> _hooks;
|
|
|
|
WNDPROC _gameWndProc; // The game main windows proc
|
|
HWND _gameHWnd; // The game main window
|
|
bool _showOverlay; // Should we render the overlay
|
|
bool _isSet; // Is the renderer hooked ?
|
|
bool _LoadLibraryHooked; // Are the LoadLibrary functions hooked ?
|
|
class Steam_Overlay* overlay;
|
|
|
|
Hook_Manager();
|
|
virtual ~Hook_Manager();
|
|
|
|
void HookLoadLibrary();
|
|
void UnHookLoadLibrary();
|
|
|
|
public:
|
|
static Hook_Manager& Inst();
|
|
|
|
void HookRenderer(Steam_Overlay *overlay);
|
|
|
|
// Set the found hook and free all other hooks
|
|
void FoundHook(Base_Hook *hook);
|
|
|
|
inline void AddHook(Base_Hook* hook) { _hooks.push_back(hook); }
|
|
void ChangeGameWindow(HWND hWnd) const;
|
|
void CallOverlayProc(int width, int height) const;
|
|
Steam_Overlay* GetOverlay() const { return overlay; }
|
|
};
|
|
|
|
#endif//STEAM_WIN32
|
|
|
|
#endif//__INCLUDED_HOOK_BASE_H__
|