コード例 #1
0
        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;
            }
        }