1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-15 06:04:49 +01:00

tweak hook function

This commit is contained in:
FunkyFr3sh 2024-06-02 22:17:26 +02:00
parent 38d442545d
commit 648fe238ca
5 changed files with 14 additions and 14 deletions

View File

@ -125,7 +125,7 @@ extern SETUNHANDLEDEXCEPTIONFILTERPROC real_SetUnhandledExceptionFilter;
extern BOOL g_hook_active;
extern HOOKLIST g_hook_hooklist[];
void hook_init(BOOL initial_hook);
void hook_init();
void hook_exit();
void hook_patch_iat(HMODULE hmod, BOOL unhook, char* module_name, char* function_name, PROC new_function);
void hook_patch_iat_list(HMODULE hmod, BOOL unhook, HOOKLIST* hooks, BOOL is_local);

View File

@ -1202,7 +1202,7 @@ HRESULT dd_SetCooperativeLevel(HWND hwnd, DWORD dwFlags)
if (!g_ddraw.wndproc)
{
hook_init(FALSE);
hook_init();
g_ddraw.wndproc = (WNDPROC)real_SetWindowLongA(g_ddraw.hwnd, GWL_WNDPROC, (LONG)fake_WndProc);
g_ddraw.gui_thread_id = GetWindowThreadProcessId(g_ddraw.hwnd, NULL);

View File

@ -121,7 +121,7 @@ BOOL WINAPI DllMain(HANDLE hDll, DWORD dwReason, LPVOID lpReserved)
}
timeBeginPeriod(1);
hook_init(TRUE);
hook_init();
break;
}
case DLL_PROCESS_DETACH:

View File

@ -632,9 +632,9 @@ void hook_revert(HOOKLIST* hooks)
}
}
void hook_init(BOOL initial_hook)
void hook_init()
{
if (initial_hook)
if (!g_hook_active)
{
if (g_config.hook == 4 && hook_got_ddraw_import(GetModuleHandleA(NULL), TRUE))
{
@ -646,7 +646,7 @@ void hook_init(BOOL initial_hook)
if (!g_hook_active || g_config.hook == 3 || g_config.hook == 4)
{
#if defined(_DEBUG) && defined(_MSC_VER)
if (initial_hook)
if (!g_hook_active)
{
DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread());
@ -655,12 +655,12 @@ void hook_init(BOOL initial_hook)
}
#endif
if (initial_hook)
if (!g_hook_active)
{
hook_patch_iat(GetModuleHandle("AcGenral"), FALSE, "user32.dll", "SetWindowsHookExA", (PROC)fake_SetWindowsHookExA);
}
hook_create((HOOKLIST*)&g_hook_hooklist, initial_hook);
hook_create((HOOKLIST*)&g_hook_hooklist, !g_hook_active);
g_hook_active = TRUE;
}

View File

@ -1195,7 +1195,7 @@ HMODULE WINAPI fake_LoadLibraryA(LPCSTR lpLibFileName)
if (hmod && hmod != hmod_old)
{
hook_init(FALSE);
hook_init();
}
return hmod;
@ -1223,7 +1223,7 @@ HMODULE WINAPI fake_LoadLibraryW(LPCWSTR lpLibFileName)
if (hmod && hmod != hmod_old)
{
hook_init(FALSE);
hook_init();
}
return hmod;
@ -1251,7 +1251,7 @@ HMODULE WINAPI fake_LoadLibraryExA(LPCSTR lpLibFileName, HANDLE hFile, DWORD dwF
if (hmod && hmod != hmod_old)
{
hook_init(FALSE);
hook_init();
}
return hmod;
@ -1279,7 +1279,7 @@ HMODULE WINAPI fake_LoadLibraryExW(LPCWSTR lpLibFileName, HANDLE hFile, DWORD dw
if (hmod && hmod != hmod_old)
{
hook_init(FALSE);
hook_init();
}
return hmod;
@ -1650,7 +1650,7 @@ HRESULT WINAPI fake_CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD
if ((!quartz_dll && GetModuleHandleA("quartz")) ||
(!msvfw32_dll && GetModuleHandleA("msvfw32")))
{
hook_init(FALSE);
hook_init();
}
return result;
@ -1667,7 +1667,7 @@ MCIERROR WINAPI fake_mciSendCommandA(MCIDEVICEID IDDevice, UINT uMsg, DWORD_PTR
if ((!quartz_dll && GetModuleHandleA("quartz")) ||
(!msvfw32_dll && GetModuleHandleA("msvfw32")))
{
hook_init(FALSE);
hook_init();
}
return result;