public static void AddMessageFilter(IntPtr hwnd, IMessageFilter messageFilter) { lock (MessageFilterHook.RegisteredHooks) { hwnd = MessageFilterHook.GetSafeWindowHandle(hwnd); MessageFilterHook local_0; if (!MessageFilterHook.RegisteredHooks.TryGetValue(hwnd, out local_0)) { local_0 = new MessageFilterHook(hwnd); MessageFilterHook.RegisteredHooks.Add(hwnd, local_0); } local_0.AddMessageMilter(messageFilter); } }
/// <summary> /// Adds a message filter to a window. /// </summary> /// <param name="hwnd">The handle of the window.</param> /// <param name="messageFilter">The message filter.</param> public static void AddMessageFilter(IntPtr hwnd, IMessageFilter messageFilter) { lock (RegisteredHooks) { hwnd = GetSafeWindowHandle(hwnd); MessageFilterHook hook; if (!RegisteredHooks.TryGetValue(hwnd, out hook)) { hook = new MessageFilterHook(hwnd); RegisteredHooks.Add(hwnd, hook); } hook.AddMessageMilter(messageFilter); } }
public static void RemoveMessageFilter(IntPtr hwnd, IMessageFilter messageFilter) { lock (MessageFilterHook.RegisteredHooks) { hwnd = MessageFilterHook.GetSafeWindowHandle(hwnd); MessageFilterHook local_0; if (!MessageFilterHook.RegisteredHooks.TryGetValue(hwnd, out local_0)) { return; } local_0.RemoveMessageFilter(messageFilter); if (!local_0.isDisposed) { return; } MessageFilterHook.RegisteredHooks.Remove(hwnd); local_0.RestoreWndProc(); } }