mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-24 17:49:52 +01:00
hook only when a new module was loaded
This commit is contained in:
parent
df52dd869a
commit
8d64f660ec
@ -994,96 +994,112 @@ HFONT WINAPI fake_CreateFontA(
|
|||||||
|
|
||||||
HMODULE WINAPI fake_LoadLibraryA(LPCSTR lpLibFileName)
|
HMODULE WINAPI fake_LoadLibraryA(LPCSTR lpLibFileName)
|
||||||
{
|
{
|
||||||
|
HMODULE hmod_old = GetModuleHandleA(lpLibFileName);
|
||||||
HMODULE hmod = real_LoadLibraryA(lpLibFileName);
|
HMODULE hmod = real_LoadLibraryA(lpLibFileName);
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
char mod_path[MAX_PATH] = { 0 };
|
char mod_path[MAX_PATH] = { 0 };
|
||||||
if (hmod && GetModuleFileNameA(hmod, mod_path, MAX_PATH))
|
if (hmod && hmod != hmod_old && GetModuleFileNameA(hmod, mod_path, MAX_PATH))
|
||||||
{
|
{
|
||||||
TRACE("LoadLibraryA Module %s = %p (%s)\n", mod_path, hmod, lpLibFileName);
|
TRACE("LoadLibraryA Module %s = %p (%s)\n", mod_path, hmod, lpLibFileName);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (hmod && hmod != g_ddraw_module && lpLibFileName &&
|
if (hmod && hmod != hmod_old)
|
||||||
(_strcmpi(lpLibFileName, "dinput.dll") == 0 || _strcmpi(lpLibFileName, "dinput") == 0 ||
|
|
||||||
_strcmpi(lpLibFileName, "dinput8.dll") == 0 || _strcmpi(lpLibFileName, "dinput8") == 0))
|
|
||||||
{
|
{
|
||||||
dinput_hook_init();
|
if (hmod != g_ddraw_module && lpLibFileName &&
|
||||||
}
|
(_strcmpi(lpLibFileName, "dinput.dll") == 0 || _strcmpi(lpLibFileName, "dinput") == 0 ||
|
||||||
|
_strcmpi(lpLibFileName, "dinput8.dll") == 0 || _strcmpi(lpLibFileName, "dinput8") == 0))
|
||||||
|
{
|
||||||
|
dinput_hook_init();
|
||||||
|
}
|
||||||
|
|
||||||
hook_init(FALSE);
|
hook_init(FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
return hmod;
|
return hmod;
|
||||||
}
|
}
|
||||||
|
|
||||||
HMODULE WINAPI fake_LoadLibraryW(LPCWSTR lpLibFileName)
|
HMODULE WINAPI fake_LoadLibraryW(LPCWSTR lpLibFileName)
|
||||||
{
|
{
|
||||||
|
HMODULE hmod_old = GetModuleHandleW(lpLibFileName);
|
||||||
HMODULE hmod = real_LoadLibraryW(lpLibFileName);
|
HMODULE hmod = real_LoadLibraryW(lpLibFileName);
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
char mod_path[MAX_PATH] = { 0 };
|
char mod_path[MAX_PATH] = { 0 };
|
||||||
if (hmod && GetModuleFileNameA(hmod, mod_path, MAX_PATH))
|
if (hmod && hmod != hmod_old && GetModuleFileNameA(hmod, mod_path, MAX_PATH))
|
||||||
{
|
{
|
||||||
TRACE("LoadLibraryW Module %s = %p\n", mod_path, hmod);
|
TRACE("LoadLibraryW Module %s = %p\n", mod_path, hmod);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (hmod && hmod != g_ddraw_module && lpLibFileName &&
|
if (hmod && hmod != hmod_old)
|
||||||
(_wcsicmp(lpLibFileName, L"dinput.dll") == 0 || _wcsicmp(lpLibFileName, L"dinput") == 0 ||
|
|
||||||
_wcsicmp(lpLibFileName, L"dinput8.dll") == 0 || _wcsicmp(lpLibFileName, L"dinput8") == 0))
|
|
||||||
{
|
{
|
||||||
dinput_hook_init();
|
if (hmod != g_ddraw_module && lpLibFileName &&
|
||||||
}
|
(_wcsicmp(lpLibFileName, L"dinput.dll") == 0 || _wcsicmp(lpLibFileName, L"dinput") == 0 ||
|
||||||
|
_wcsicmp(lpLibFileName, L"dinput8.dll") == 0 || _wcsicmp(lpLibFileName, L"dinput8") == 0))
|
||||||
|
{
|
||||||
|
dinput_hook_init();
|
||||||
|
}
|
||||||
|
|
||||||
hook_init(FALSE);
|
hook_init(FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
return hmod;
|
return hmod;
|
||||||
}
|
}
|
||||||
|
|
||||||
HMODULE WINAPI fake_LoadLibraryExA(LPCSTR lpLibFileName, HANDLE hFile, DWORD dwFlags)
|
HMODULE WINAPI fake_LoadLibraryExA(LPCSTR lpLibFileName, HANDLE hFile, DWORD dwFlags)
|
||||||
{
|
{
|
||||||
|
HMODULE hmod_old = GetModuleHandleA(lpLibFileName);
|
||||||
HMODULE hmod = real_LoadLibraryExA(lpLibFileName, hFile, dwFlags);
|
HMODULE hmod = real_LoadLibraryExA(lpLibFileName, hFile, dwFlags);
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
char mod_path[MAX_PATH] = { 0 };
|
char mod_path[MAX_PATH] = { 0 };
|
||||||
if (hmod && GetModuleFileNameA(hmod, mod_path, MAX_PATH))
|
if (hmod && hmod != hmod_old && GetModuleFileNameA(hmod, mod_path, MAX_PATH))
|
||||||
{
|
{
|
||||||
TRACE("LoadLibraryExA Module %s = %p (%s)\n", mod_path, hmod, lpLibFileName);
|
TRACE("LoadLibraryExA Module %s = %p (%s)\n", mod_path, hmod, lpLibFileName);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (hmod && hmod != g_ddraw_module && lpLibFileName &&
|
if (hmod && hmod != hmod_old)
|
||||||
(_strcmpi(lpLibFileName, "dinput.dll") == 0 || _strcmpi(lpLibFileName, "dinput") == 0 ||
|
|
||||||
_strcmpi(lpLibFileName, "dinput8.dll") == 0 || _strcmpi(lpLibFileName, "dinput8") == 0))
|
|
||||||
{
|
{
|
||||||
dinput_hook_init();
|
if (hmod != g_ddraw_module && lpLibFileName &&
|
||||||
}
|
(_strcmpi(lpLibFileName, "dinput.dll") == 0 || _strcmpi(lpLibFileName, "dinput") == 0 ||
|
||||||
|
_strcmpi(lpLibFileName, "dinput8.dll") == 0 || _strcmpi(lpLibFileName, "dinput8") == 0))
|
||||||
|
{
|
||||||
|
dinput_hook_init();
|
||||||
|
}
|
||||||
|
|
||||||
hook_init(FALSE);
|
hook_init(FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
return hmod;
|
return hmod;
|
||||||
}
|
}
|
||||||
|
|
||||||
HMODULE WINAPI fake_LoadLibraryExW(LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFlags)
|
HMODULE WINAPI fake_LoadLibraryExW(LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFlags)
|
||||||
{
|
{
|
||||||
|
HMODULE hmod_old = GetModuleHandleW(lpLibFileName);
|
||||||
HMODULE hmod = real_LoadLibraryExW(lpLibFileName, hFile, dwFlags);
|
HMODULE hmod = real_LoadLibraryExW(lpLibFileName, hFile, dwFlags);
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
char mod_path[MAX_PATH] = { 0 };
|
char mod_path[MAX_PATH] = { 0 };
|
||||||
if (hmod && GetModuleFileNameA(hmod, mod_path, MAX_PATH))
|
if (hmod && hmod != hmod_old && GetModuleFileNameA(hmod, mod_path, MAX_PATH))
|
||||||
{
|
{
|
||||||
TRACE("LoadLibraryExW Module %s = %p\n", mod_path, hmod);
|
TRACE("LoadLibraryExW Module %s = %p\n", mod_path, hmod);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (hmod && hmod != g_ddraw_module && lpLibFileName &&
|
if (hmod && hmod != hmod_old)
|
||||||
(_wcsicmp(lpLibFileName, L"dinput.dll") == 0 || _wcsicmp(lpLibFileName, L"dinput") == 0 ||
|
|
||||||
_wcsicmp(lpLibFileName, L"dinput8.dll") == 0 || _wcsicmp(lpLibFileName, L"dinput8") == 0))
|
|
||||||
{
|
{
|
||||||
dinput_hook_init();
|
if (hmod != g_ddraw_module && lpLibFileName &&
|
||||||
}
|
(_wcsicmp(lpLibFileName, L"dinput.dll") == 0 || _wcsicmp(lpLibFileName, L"dinput") == 0 ||
|
||||||
|
_wcsicmp(lpLibFileName, L"dinput8.dll") == 0 || _wcsicmp(lpLibFileName, L"dinput8") == 0))
|
||||||
|
{
|
||||||
|
dinput_hook_init();
|
||||||
|
}
|
||||||
|
|
||||||
hook_init(FALSE);
|
hook_init(FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
return hmod;
|
return hmod;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user