/// <summary> /// Removes the first occurance of the specified handler from the /// invocation list of the PreprocessMessage event. /// <summary> public void RemoveThreadPreprocessMessageHandlerFirst(ThreadMessageEventHandler handler) { if (_threadPreprocessMessage != null) { ThreadMessageEventHandler newHandler = null; foreach (ThreadMessageEventHandler testHandler in _threadPreprocessMessage.GetInvocationList()) { if (testHandler == handler) { // This is the handler to remove. We should not check // for any more occurances. handler = null; } else { newHandler += testHandler; } } _threadPreprocessMessage = newHandler; } }
internal static void CriticalRemoveThreadPreprocessMessageHandlerFirst(ThreadMessageEventHandler handler) { ComponentDispatcher.CurrentThreadData.RemoveThreadPreprocessMessageHandlerFirst(handler); }
/// <summary> /// Removes the first occurance of the specified handler from the /// invocation list of the PreprocessMessage event. /// <summary> internal static void CriticalRemoveThreadPreprocessMessageHandlerFirst(ThreadMessageEventHandler handler) { ComponentDispatcher.CurrentThreadData.RemoveThreadPreprocessMessageHandlerFirst(handler); }
public WeakEventPreprocessMessage(HwndSource source, bool addToFront): base(source) { _addToFront = addToFront; _handler = new ThreadMessageEventHandler(this.OnPreprocessMessage); if(addToFront) { ComponentDispatcher.CriticalAddThreadPreprocessMessageHandlerFirst(_handler); } else { ComponentDispatcher.ThreadPreprocessMessage += _handler; } }
public void RemoveThreadPreprocessMessageHandlerFirst(ThreadMessageEventHandler handler) { if (_threadPreprocessMessage != null) { ThreadMessageEventHandler newHandler = null; foreach (ThreadMessageEventHandler testHandler in _threadPreprocessMessage.GetInvocationList()) { if (testHandler == handler) { // This is the handler to remove. We should not check // for any more occurances. handler = null; } else { newHandler += testHandler; } } _threadPreprocessMessage = newHandler; } }
public void AddThreadPreprocessMessageHandlerFirst(ThreadMessageEventHandler handler) { _threadPreprocessMessage = (ThreadMessageEventHandler)Delegate.Combine(handler, _threadPreprocessMessage); }
/// <summary> /// Adds the specified handler to the front of the invocation list /// of the PreprocessMessage event. /// <summary> public void AddThreadPreprocessMessageHandlerFirst(ThreadMessageEventHandler handler) { _threadPreprocessMessage = (ThreadMessageEventHandler)Delegate.Combine(handler, _threadPreprocessMessage); }