remove early hook function

This commit is contained in:
FunkyFr3sh 2023-08-02 15:15:44 +02:00
parent 8fe772d385
commit 1452bbe598
7 changed files with 154 additions and 95 deletions

View file

@ -195,7 +195,7 @@ HRESULT WINAPI fake_DirectInputCreateA(
HRESULT result = real_DirectInputCreateA(hinst, dwVersion, lplpDirectInput, punkOuter);
if (SUCCEEDED(result) && !real_di_CreateDevice)
if (SUCCEEDED(result) && !real_di_CreateDevice && !cfg_get_bool("no_dinput_hook", FALSE))
{
real_di_CreateDevice =
(DICREATEDEVICEPROC)hook_func((PROC*)&(*lplpDirectInput)->lpVtbl->CreateDevice, (PROC)fake_di_CreateDevice);
@ -229,7 +229,7 @@ HRESULT WINAPI fake_DirectInputCreateW(
HRESULT result = real_DirectInputCreateW(hinst, dwVersion, lplpDirectInput, punkOuter);
if (SUCCEEDED(result) && !real_di_CreateDevice)
if (SUCCEEDED(result) && !real_di_CreateDevice && !cfg_get_bool("no_dinput_hook", FALSE))
{
real_di_CreateDevice =
(DICREATEDEVICEPROC)hook_func((PROC*)&(*lplpDirectInput)->lpVtbl->CreateDevice, (PROC)fake_di_CreateDevice);
@ -264,7 +264,7 @@ HRESULT WINAPI fake_DirectInputCreateEx(
HRESULT result = real_DirectInputCreateEx(hinst, dwVersion, riidltf, ppvOut, punkOuter);
if (SUCCEEDED(result) && !real_di_CreateDevice)
if (SUCCEEDED(result) && !real_di_CreateDevice && !cfg_get_bool("no_dinput_hook", FALSE))
{
real_di_CreateDevice =
(DICREATEDEVICEPROC)hook_func((PROC*)&(*ppvOut)->lpVtbl->CreateDevice, (PROC)fake_di_CreateDevice);
@ -273,7 +273,8 @@ HRESULT WINAPI fake_DirectInputCreateEx(
if (SUCCEEDED(result) &&
!real_di_CreateDeviceEx &&
riidltf &&
(IsEqualGUID(&IID_IDirectInput7A, riidltf) || IsEqualGUID(&IID_IDirectInput7W, riidltf)))
(IsEqualGUID(&IID_IDirectInput7A, riidltf) || IsEqualGUID(&IID_IDirectInput7W, riidltf))
&& !cfg_get_bool("no_dinput_hook", FALSE))
{
real_di_CreateDeviceEx =
(DICREATEDEVICEEXPROC)hook_func((PROC*)&(*ppvOut)->lpVtbl->CreateDeviceEx, (PROC)fake_di_CreateDeviceEx);
@ -308,7 +309,7 @@ HRESULT WINAPI fake_DirectInput8Create(
HRESULT result = real_DirectInput8Create(hinst, dwVersion, riidltf, ppvOut, punkOuter);
if (SUCCEEDED(result) && !real_di_CreateDevice)
if (SUCCEEDED(result) && !real_di_CreateDevice && !cfg_get_bool("no_dinput_hook", FALSE))
{
real_di_CreateDevice =
(DICREATEDEVICEPROC)hook_func((PROC*)&(*ppvOut)->lpVtbl->CreateDevice, (PROC)fake_di_CreateDevice);