Example #1
0
        protected virtual void RemoveHooks()
        {
            ArrayList list = new ArrayList();

            foreach (HookInfo h in HookHash.Values)
            {
                list.Add(h);
            }
            HookHash.Clear();
            for (int n = 0; n < list.Count; n++)
            {
                RemoveHook(list[n] as HookInfo, true);
            }
        }
Example #2
0
        internal void RemoveHook(HookInfo hInfo, bool disposing)
        {
            if (hInfo.wndHookHandle != IntPtr.Zero)
            {
                UnhookWindowsHookEx(hInfo.wndHookHandle);
                hInfo.wndHookHandle = IntPtr.Zero;
                hInfo.wndHookProc   = null;

                hInfo.getMessageHookHandle = IntPtr.Zero;
                hInfo.getMessageHookProc   = null;
                UnhookWindowsHookEx(hInfo.mouseHookHandle);
                hInfo.mouseHookHandle = IntPtr.Zero;
                hInfo.mouseHookProc   = null;
                HookHash.Remove(hInfo.ThreadId);
            }
        }