@@ -97,6 +97,18 @@ namespace SourceHook
9797
9898 int CSourceHookImpl::AddHook (Plugin plug, AddHookMode mode, void *iface, int thisptr_offs, HookManagerPubFunc myHookMan,
9999 ISHDelegate *handler, bool post )
100+ {
101+ return AddHook (plug, mode, iface, thisptr_offs, HookManagerPubFuncHandler (myHookMan), handler, post );
102+ }
103+
104+ int CSourceHookImpl::AddHook (Plugin plug, AddHookMode mode, void *iface, int thisptr_offs, IHookManagerMemberFunc* myHookMan,
105+ ISHDelegate *handler, bool post )
106+ {
107+ return AddHook (plug, mode, iface, thisptr_offs, HookManagerPubFuncHandler (myHookMan), handler, post );
108+ }
109+
110+ int CSourceHookImpl::AddHook (Plugin plug, AddHookMode mode, void *iface, int thisptr_offs, const HookManagerPubFuncHandler &myHookMan,
111+ ISHDelegate *handler, bool post )
100112 {
101113 if (mode != Hook_Normal && mode != Hook_VP && mode != Hook_DVP)
102114 return 0 ;
@@ -172,6 +184,18 @@ namespace SourceHook
172184
173185 bool CSourceHookImpl::RemoveHook (Plugin plug, void *iface, int thisptr_offs, HookManagerPubFunc myHookMan,
174186 ISHDelegate *handler, bool post )
187+ {
188+ return RemoveHook (plug, iface, thisptr_offs, HookManagerPubFuncHandler (myHookMan), handler, post );
189+ }
190+
191+ bool CSourceHookImpl::RemoveHook (Plugin plug, void *iface, int thisptr_offs, IHookManagerMemberFunc* myHookMan,
192+ ISHDelegate *handler, bool post )
193+ {
194+ return RemoveHook (plug, iface, thisptr_offs, HookManagerPubFuncHandler (myHookMan), handler, post );
195+ }
196+
197+ bool CSourceHookImpl::RemoveHook (Plugin plug, void *iface, int thisptr_offs, const HookManagerPubFuncHandler &myHookMan,
198+ ISHDelegate *handler, bool post )
175199 {
176200 // Get info about hook manager and compute adjustediface
177201 CHookManager tmpHookMan (plug, myHookMan);
@@ -417,6 +441,18 @@ namespace SourceHook
417441 }
418442
419443 void CSourceHookImpl::RemoveHookManager (Plugin plug, HookManagerPubFunc pubFunc)
444+ {
445+ // Find the hook manager
446+ RemoveHookManager (plug, HookManagerPubFuncHandler (pubFunc));
447+ }
448+
449+ void CSourceHookImpl::RemoveHookManager (Plugin plug, IHookManagerMemberFunc* pubFunc)
450+ {
451+ // Find the hook manager
452+ RemoveHookManager (plug, HookManagerPubFuncHandler (pubFunc));
453+ }
454+
455+ void CSourceHookImpl::RemoveHookManager (Plugin plug, const HookManagerPubFuncHandler &pubFunc)
420456 {
421457 // Find the hook manager
422458 CHookManList::iterator hookman_iter = m_HookManList.find (CHookManager::Descriptor (plug, pubFunc));
0 commit comments