private void AddHookEventHandler(HookType type, Type classType, Delegate value)
{
BaseHook key = GetHookObjectForType(type);
if (key == null)
{
key = (BaseHook)Activator.CreateInstance(classType, true);
if (threadID != 0)
{
key.SetHook(this, IntPtr.Zero, threadID);
}
hooks.Add(key);
}
Events.AddHandler(key, value);
}