public void HandleMessage(PipeMessageEx msg) { if (msg.msg == signal.WMC_SETFOCUS) { if (msg.wParam > 0) { var hwnd = new IntPtr((long)msg.wParam); SignalAllListenersExcept(false, hwnd); SignalListeners(hwnd, true); } } else if (msg.msg == signal.WMC_ACTIVATEAPP) { // If the current hwnd is the one receiving focus if (msg.lParam != 0) { var hwnd = new IntPtr((long)msg.wParam); var node = windowTracker.GetNodes(hwnd); // And if we got a node handler for this window if (node != null) { SignalAllListenersExcept(false, hwnd); SignalListeners(hwnd, true); } } } }