diff options
author | Wesley W. Terpstra <terpstra@users.sourceforge.net> | 2013-04-21 02:15:13 +0400 |
---|---|---|
committer | Kissaki <kissaki@gmx.de> | 2013-06-05 00:37:36 +0400 |
commit | 10b2d000432c8b9741cda4082d5a537bd1143d15 (patch) | |
tree | c9336fc37f77e59b43115f4ffd5c5c398f98146a /overlay/HardHook.h | |
parent | 8b044264f3f47caef785a2d82a499c12b7406d1a (diff) |
Prevent overlay from disappearing on D3D DLL reloading.
This is confirmed to fix the missing overlay in Guild Wars 2.
When D3D was used by a process thus loading the DLL, but then unloaded we did not inject on subsequent loading of the D3D DLL (in the same exe). Guild Wars 2 did un- and reload the DLL when switching from their launcher to the game.
This commit introduces HardHook::reset() and checks for inactive hardhooks for a newly loaded DLL.
The changes were submitted on sourceforge
https://sourceforge.net/p/mumble/bugs/909/#bf9e
Diffstat (limited to 'overlay/HardHook.h')
-rw-r--r-- | overlay/HardHook.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/overlay/HardHook.h b/overlay/HardHook.h index 19b1937d9..8e472f76d 100644 --- a/overlay/HardHook.h +++ b/overlay/HardHook.h @@ -67,6 +67,7 @@ struct HardHook { void *cloneCode(void **orig); void setup(voidFunc func, voidFunc replacement); void setupInterface(IUnknown *intf, LONG funcoffset, voidFunc replacement); + void reset(); void inject(bool force = false); void restore(bool force = false); void print(); |