public static void UnhookEvents() { lock (ThreadLock) { User32.UnhookWinEvent(_eventHandle); foreach (var info in TrackedWindows.Values) { info.Subclass.FocusChange -= FocusDispatcher; info.Subclass.Dispose(); } VBEEvents.Terminate(); } }
public static void UnhookEvents() { lock (ThreadLock) { SelectionChanged = delegate { }; IntelliSenseChanged = delegate { }; KeyDown = delegate { }; WindowFocusChange = delegate { }; User32.UnhookWinEvent(_eventHandle); Subclasses.Dispose(); VBEEvents.Terminate(); _vbe = null; } }