protected void HandleEvents(UPnPStateVariable sender, object EventValue) { if (this.InvokeRequired) { this.Invoke(new UPnPStateVariable.ModifiedHandler(HandleEvents), new object[2] { sender, EventValue }); return; } string eventSource = sender.OwningService.ParentDevice.FriendlyName + "/" + sender.OwningService.ServiceID; string eventValue = UPnPService.SerializeObjectInstance(EventValue); if (eventValue == "") eventValue = "(Empty)"; DateTime now = DateTime.Now; ListViewItem l = new ListViewItem(new string[] { now.ToShortTimeString(), eventSource, sender.Name, eventValue }); l.Tag = now; eventListView.Items.Insert(0, l); if (deviceTree.SelectedNode != null) { if (deviceTree.SelectedNode.Tag.GetType() == typeof(OpenSource.UPnP.UPnPStateVariable)) { if (((UPnPStateVariable)deviceTree.SelectedNode.Tag).SendEvent == true) { if (deviceTree.SelectedNode.Tag.GetHashCode() == sender.GetHashCode()) { SetListInfo(deviceTree.SelectedNode.Tag); } } } } TreeNode fNode = deviceTree.Nodes[0].FirstNode; while (fNode != null) { ScanDeviceNode(fNode, sender.OwningService); fNode = fNode.NextNode; } }