private void NewDeviceSink(ProxyDeviceFactory sender, UPnPRelayDevice d)
        {
            ProxyFactoryTable.Remove(sender);
            lock (ProxyTable)
            {
                ProxyTable[d.UDN] = d;
                d.DV      = Root.UniqueDeviceName;
                d.Creator = this;
                d.InitStateTableThenStart();
            }

            if (this.OnUPnPRelayDevice != null)
            {
                OnUPnPRelayDevice(this, d);
            }
        }
        private void CPGetDocumentSink(CpGateKeeper sender, System.String DeviceUDN, System.String ServiceID, System.Byte[] Document, UPnPInvokeException e, object _Tag)
        {
            if (e != null)
            {
                return;
            }
            UTF8Encoding U = new UTF8Encoding();

            string    XML       = U.GetString(Document);
            Uri       SourceUri = new Uri("http://127.0.0.1");
            IPAddress Intfce    = null;

            UPnPDevice d = (UPnPDevice)(new UPnPDebugObject(typeof(OpenSource.UPnP.UPnPDevice))).InvokeStaticMethod("Parse", new object[3]
            {
                XML, SourceUri, Intfce
            });

            ProxyDeviceFactory df = new ProxyDeviceFactory(sender, d, new ProxyDeviceFactory.OnDeviceHandler(NewDeviceSink));

            ProxyFactoryTable[df] = df;
        }
        private void NewDeviceSink(ProxyDeviceFactory sender, UPnPRelayDevice d)
        {
            ProxyFactoryTable.Remove(sender);
            lock(ProxyTable)
            {
                ProxyTable[d.UDN] = d;
                d.DV = Root.UniqueDeviceName;
                d.Creator = this;
                d.InitStateTableThenStart();
            }

            if(this.OnUPnPRelayDevice!=null) OnUPnPRelayDevice(this,d);
        }
        private void CPGetDocumentSink(CpGateKeeper sender, System.String DeviceUDN, System.String ServiceID, System.Byte[] Document, UPnPInvokeException e, object _Tag)
        {
            if(e!=null) return;
            UTF8Encoding U = new UTF8Encoding();

            string XML = U.GetString(Document);
            Uri SourceUri = new Uri("http://127.0.0.1");
            IPAddress Intfce = null;

            UPnPDevice d = (UPnPDevice)(new UPnPDebugObject(typeof(OpenSource.UPnP.UPnPDevice))).InvokeStaticMethod("Parse",new object[3]
                {XML,SourceUri,Intfce});

            ProxyDeviceFactory df = new ProxyDeviceFactory(sender,d,new ProxyDeviceFactory.OnDeviceHandler(NewDeviceSink));
            ProxyFactoryTable[df] = df;
        }