private void StartSession() { object lPtrSourceNode = null; ISourceControl sourceControl = CaptureManager.createSourceControl(); ISessionControl sessionControl = CaptureManager.createSessionControl(); _EVROutputAdapter = new EVROutputAdapter(Instance, _HWND); if (sessionControl != null && sessionControl != null && _EVROutputAdapter.Node != null) { Session = null; sourceControl.createSourceNode(_SymbolicLink, _StreamIndex, _MediaTypeIndex, _EVROutputAdapter.Node, out lPtrSourceNode); Session = sessionControl.createSession(new object[] { lPtrSourceNode }); if (Session != null) { Session.registerUpdateStateDelegate(HandleSessionStateChanged); Session.startSession(0, Guid.Empty); } } }
public ISessionControl createSessionControl() { ISessionControl lresult = null; do { try { if (checkICaptureManagerControl()) { break; } object lUnknown; mICaptureManagerControl.createControl( typeof(CaptureManagerLibrary.ISessionControl).GUID, out lUnknown); if (lUnknown == null) { break; } var lSessionControl = lUnknown as CaptureManagerLibrary.ISessionControl; if (lSessionControl == null) { break; } lresult = new SessionControl(lSessionControl); } catch (Exception exc) { LogManager.getInstance().write(exc.Message); } } while (false); return(lresult); }
private void Window_Loaded(object sender, RoutedEventArgs e) { try { mCaptureManager = new CaptureManager("CaptureManager.dll"); } catch (System.Exception) { try { mCaptureManager = new CaptureManager(); } catch (System.Exception) { } } m_Thumbnail.mChangeState += m_Thumbnail_mChangeState; LogManager.getInstance().WriteDelegateEvent += MainWindow_WriteDelegateEvent; if (mCaptureManager == null) { return; } mSourceControl = mCaptureManager.createSourceControl(); if (mSourceControl == null) { return; } mSinkControl = mCaptureManager.createSinkControl(); if (mSinkControl == null) { return; } mISessionControl = mCaptureManager.createSessionControl(); if (mISessionControl == null) { return; } mStreamControl = mCaptureManager.createStreamControl(); if (mStreamControl == null) { return; } mStreamControl.createStreamControlNodeFactory(ref mSpreaderNodeFactory); if (mSpreaderNodeFactory == null) { return; } mSinkControl.createSinkFactory(Guid.Empty, out mEVRMultiSinkFactory); if (mEVRMultiSinkFactory == null) { return; } mSwitcherControl = mCaptureManager.createSwitcherControl(); if (mSwitcherControl == null) { return; } XmlDataProvider lXmlDataProvider = (XmlDataProvider)this.Resources["XmlSources"]; if (lXmlDataProvider == null) { return; } XmlDocument doc = new XmlDocument(); string lxmldoc = ""; mCaptureManager.getCollectionOfSources(ref lxmldoc); doc.LoadXml(lxmldoc); lXmlDataProvider.Document = doc; lXmlDataProvider = (XmlDataProvider)this.Resources["XmlEncoders"]; if (lXmlDataProvider == null) { return; } doc = new XmlDocument(); mCaptureManager.getCollectionOfEncoders(ref lxmldoc); doc.LoadXml(lxmldoc); lXmlDataProvider.Document = doc; }
private void Window_Loaded(object sender, RoutedEventArgs e) { try { mCaptureManager = new CaptureManager("CaptureManager.dll"); } catch (System.Exception) { try { mCaptureManager = new CaptureManager(); } catch (System.Exception) { } } LogManager.getInstance().WriteDelegateEvent += MainWindow_WriteDelegateEvent; if (mCaptureManager == null) { return; } mSourceControl = mCaptureManager.createSourceControl(); if (mSourceControl == null) { return; } mEncoderControl = mCaptureManager.createEncoderControl(); if (mEncoderControl == null) { return; } mSinkControl = mCaptureManager.createSinkControl(); if (mSinkControl == null) { return; } mISessionControl = mCaptureManager.createSessionControl(); if (mISessionControl == null) { return; } mStreamControl = mCaptureManager.createStreamControl(); if (mStreamControl == null) { return; } mStreamControl.createStreamControlNodeFactory(ref mSpreaderNodeFactory); if (mSpreaderNodeFactory == null) { return; } mSinkControl.createSinkFactory(Guid.Empty, out mEVRMultiSinkFactory); if (mEVRMultiSinkFactory == null) { return; } XmlDataProvider lXmlDataProvider = (XmlDataProvider)this.Resources["XmlSources"]; if (lXmlDataProvider == null) { return; } XmlDocument doc = new XmlDocument(); string lxmldoc = ""; mCaptureManager.getCollectionOfSources(ref lxmldoc); doc.LoadXml(lxmldoc); lXmlDataProvider.Document = doc; lXmlDataProvider = (XmlDataProvider)this.Resources["XmlEncoders"]; if (lXmlDataProvider == null) { return; } doc = new XmlDocument(); mCaptureManager.getCollectionOfEncoders(ref lxmldoc); doc.LoadXml(lxmldoc); lXmlDataProvider.Document = doc; mCaptureManager.getCollectionOfSinks(ref lxmldoc); lXmlDataProvider = (XmlDataProvider)this.Resources["XmlContainerTypeProvider"]; if (lXmlDataProvider == null) { return; } doc = new XmlDocument(); doc.LoadXml(lxmldoc); lXmlDataProvider.Document = doc; ProcessPriorityClass lpriority = Process.GetCurrentProcess().PriorityClass; Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.RealTime; }
public MainWindow() { InitializeComponent(); try { mCaptureManager = new CaptureManager("CaptureManager.dll"); } catch (System.Exception) { try { mCaptureManager = new CaptureManager(); } catch (System.Exception) { } } LogManager.getInstance().WriteDelegateEvent += MainWindow_WriteDelegateEvent; mSourceControl = mCaptureManager.createSourceControl(); mEncoderControl = mCaptureManager.createEncoderControl(); mSinkControl = mCaptureManager.createSinkControl(); mStreamControl = mCaptureManager.createStreamControl(); mISessionControl = mCaptureManager.createSessionControl(); mStreamControl.createStreamControlNodeFactory(ref mSpreaderNodeFactory); if (mSpreaderNodeFactory == null) { return; } XmlDataProvider lXmlDataProvider = (XmlDataProvider)this.Resources["XmlSources"]; if (lXmlDataProvider == null) { return; } XmlDocument doc = new XmlDocument(); string lxmldoc = ""; mCaptureManager.getCollectionOfSources(ref lxmldoc); doc.LoadXml(lxmldoc); lXmlDataProvider.Document = doc; XmlDataProvider lXmlContainerTypeProvider = (XmlDataProvider)this.Resources["XmlContainerTypeProvider"]; if (lXmlDataProvider == null) { return; } doc = new XmlDocument(); lxmldoc = ""; mCaptureManager.getCollectionOfSinks(ref lxmldoc); doc.LoadXml(lxmldoc); lXmlContainerTypeProvider.Document = doc; }
private void init() { string lScreenCaptureSymbolicLink = "CaptureManager///Software///Sources///ScreenCapture///ScreenCapture"; string lAudioLoopBack = "CaptureManager///Software///Sources///AudioEndpointCapture///AudioLoopBack"; // Video Source uint lVideoSourceIndexStream = 0; uint lVideoSourceIndexMediaType = 2; object lVideoSourceOutputMediaType; mSourceControl.getSourceOutputMediaType(lScreenCaptureSymbolicLink, lVideoSourceIndexStream, lVideoSourceIndexMediaType, out lVideoSourceOutputMediaType); Guid lH264Encoder = new Guid("6ca50344-051a-4ded-9779-a43305165e35"); IEncoderNodeFactory lIEncoderNodeFactory; mEncoderControl.createEncoderNodeFactory(lH264Encoder, out lIEncoderNodeFactory); if (lIEncoderNodeFactory == null) { mCtrlBtn.Content = "Error"; mCtrlBtn.IsEnabled = false; mState.Text = "H264 Encoder is not acessable"; return; } object lCompressedMediaType; lIEncoderNodeFactory.createCompressedMediaType( lVideoSourceOutputMediaType, new Guid(0xee8c3745, 0xf45b, 0x42b3, 0xa8, 0xcc, 0xc7, 0xa6, 0x96, 0x44, 0x9, 0x55), 75, 0, out lCompressedMediaType); // Audio Source uint lAudioSourceIndexStream = 0; uint lAudioSourceIndexMediaType = 0; object lAudioSourceOutputMediaType; mSourceControl.getSourceOutputMediaType(lAudioLoopBack, lAudioSourceIndexStream, lAudioSourceIndexMediaType, out lAudioSourceOutputMediaType); Guid lAACEncoder = new Guid("93af0c51-2275-45d2-a35b-f2ba21caed00"); IEncoderNodeFactory lAACIEncoderNodeFactory; mEncoderControl.createEncoderNodeFactory(lAACEncoder, out lAACIEncoderNodeFactory); if (lAACIEncoderNodeFactory == null) { mCtrlBtn.Content = "Error"; mCtrlBtn.IsEnabled = false; mState.Text = "AAC Encoder is not acessable"; return; } object lAACCompressedMediaType; lAACIEncoderNodeFactory.createCompressedMediaType( lAudioSourceOutputMediaType, new Guid(0xca37e2be, 0xbec0, 0x4b17, 0x94, 0x6d, 0x44, 0xfb, 0xc1, 0xb3, 0xdf, 0x55), 0, 0, out lAACCompressedMediaType); IByteStreamSinkFactory lSinkFactory; mSinkControl.createSinkFactory(new Guid("E80A6BFD-D9C2-4A1F-95DC-14685CACEF3E"), out lSinkFactory); if (lSinkFactory == null) { mCtrlBtn.Content = "Error"; mCtrlBtn.IsEnabled = false; mState.Text = "MP4 ByteStream is not acessable"; return; } mNetworkStreamControl = new NetworkStreamControl(lSinkFactory); List <object> lcompressesMediaTypes = new List <object>(); lcompressesMediaTypes.Add(lAACCompressedMediaType); lcompressesMediaTypes.Add(lCompressedMediaType); var lOutputNode = mNetworkStreamControl.getOutputNode( lcompressesMediaTypes, StartSession, StopSession, WriteClientIP); object lVideoEncoderNode; lIEncoderNodeFactory.createEncoderNode(lVideoSourceOutputMediaType, new Guid(0xee8c3745, 0xf45b, 0x42b3, 0xa8, 0xcc, 0xc7, 0xa6, 0x96, 0x44, 0x9, 0x55), 75, 0, lOutputNode[1], out lVideoEncoderNode); object lAudioEncoderNode; lAACIEncoderNodeFactory.createEncoderNode( lAudioSourceOutputMediaType, new Guid(0xca37e2be, 0xbec0, 0x4b17, 0x94, 0x6d, 0x44, 0xfb, 0xc1, 0xb3, 0xdf, 0x55), 75, 0, lOutputNode[0], out lAudioEncoderNode); object lVideoSourceSourceNode; mSourceControl.createSourceNode( lScreenCaptureSymbolicLink, lVideoSourceIndexStream, lVideoSourceIndexMediaType, lVideoEncoderNode, out lVideoSourceSourceNode); object lAudioSourceSourceNode; mSourceControl.createSourceNode( lAudioLoopBack, lAudioSourceIndexStream, lAudioSourceIndexMediaType, lAudioEncoderNode, out lAudioSourceSourceNode); mISessionControl = mCaptureManager.createSessionControl(); object[] lSourceNodes = { lVideoSourceSourceNode, lAudioSourceSourceNode }; mISession = mISessionControl.createSession(lSourceNodes); if (mISession != null) { mState.Text = "Ready for connection"; } }
public Recording() { InitializeComponent(); try { mCaptureManager = new CaptureManager("CaptureManager.dll"); } catch (System.Exception exc) { try { mCaptureManager = new CaptureManager(); } catch (System.Exception exc1) { } } if (mCaptureManager == null) { return; } mSourceControl = mCaptureManager.createSourceControl(); mISessionControl = mCaptureManager.createSessionControl(); mSinkControl = mCaptureManager.createSinkControl(); mEncoderControl = mCaptureManager.createEncoderControl(); System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); string lxmldoc = ""; mCaptureManager.getCollectionOfSources(ref lxmldoc); if (string.IsNullOrEmpty(lxmldoc)) { return; } doc.LoadXml(lxmldoc); var lSourceNodes = doc.DocumentElement.ChildNodes;// .SelectNodes("//*[Source.Attributes/Attribute[@Name='MF_DEVSOURCE_ATTRIBUTE_MEDIA_TYPE']/Value.ValueParts/ValuePart[@Value='MFMediaType_Video']]"); if (lSourceNodes != null) { foreach (var item in lSourceNodes) { var lNode = (XmlNode)item; if (lNode != null) { var lvalueNode = lNode.SelectSingleNode("Source.Attributes/Attribute[@Name='MF_DEVSOURCE_ATTRIBUTE_FRIENDLY_NAME']/SingleValue/@Value"); ContainerItem lSourceItem = new ContainerItem() { mFriendlyName = lvalueNode.Value, mXmlNode = lNode }; sourceComboBox.Items.Add(lSourceItem); } } } }
private void Window_Loaded(object sender, RoutedEventArgs e) { var t = new Thread( delegate() { try { mCaptureManager = Program.mCaptureManager; LogManager.getInstance().WriteDelegateEvent += MainWindow_WriteDelegateEvent; if (mCaptureManager == null) { return; } mSourceControl = mCaptureManager.createSourceControl(); if (mSourceControl == null) { return; } mEncoderControl = mCaptureManager.createEncoderControl(); if (mEncoderControl == null) { return; } mSinkControl = mCaptureManager.createSinkControl(); if (mSinkControl == null) { return; } mISessionControl = mCaptureManager.createSessionControl(); if (mISessionControl == null) { return; } mStreamControl = mCaptureManager.createStreamControl(); if (mStreamControl == null) { return; } mStreamControl.createStreamControlNodeFactory(ref mSpreaderNodeFactory); if (mSpreaderNodeFactory == null) { return; } mSinkControl.createSinkFactory(Guid.Empty, out mEVRMultiSinkFactory); if (mEVRMultiSinkFactory == null) { return; } mSinkControl.createSinkFactory(Guid.Empty, out mEVRSinkFactory); if (mEVRSinkFactory == null) { return; } XmlDataProvider lXmlDataProvider = (XmlDataProvider)this.Resources["XmlSources"]; if (lXmlDataProvider == null) { return; } XmlDocument doc = new XmlDocument(); string lxmldoc = ""; mCaptureManager.getCollectionOfSources(ref lxmldoc); doc.LoadXml(lxmldoc); lXmlDataProvider.Document = doc; lXmlDataProvider = (XmlDataProvider)this.Resources["XmlEncoders"]; if (lXmlDataProvider == null) { return; } doc = new XmlDocument(); mCaptureManager.getCollectionOfEncoders(ref lxmldoc); doc.LoadXml(lxmldoc); lXmlDataProvider.Document = doc; mCaptureManager.getCollectionOfSinks(ref lxmldoc); lXmlDataProvider = (XmlDataProvider)this.Resources["XmlContainerTypeProvider"]; if (lXmlDataProvider == null) { return; } doc = new XmlDocument(); doc.LoadXml(lxmldoc); lXmlDataProvider.Document = doc; } catch (Exception ex) { } finally { } }); t.SetApartmentState(ApartmentState.MTA); t.Start(); }
public MainWindow() { InitializeComponent(); try { mCaptureManager = new CaptureManager("CaptureManager.dll"); } catch (System.Exception) { try { mCaptureManager = new CaptureManager(); } catch (System.Exception) { } } if (mCaptureManager == null) { return; } XmlDataProvider lXmlDataProvider = (XmlDataProvider)this.Resources["XmlLogProvider"]; if (lXmlDataProvider == null) { return; } System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); string lxmldoc = ""; mCaptureManager.getCollectionOfSources(ref lxmldoc); doc.LoadXml(lxmldoc); lXmlDataProvider.Document = doc; mSourceControl = mCaptureManager.createSourceControl(); mCaptureManager.getCollectionOfSinks(ref lxmldoc); lXmlDataProvider = (XmlDataProvider)this.Resources["XmlSinkFactoryCollectionProvider"]; if (lXmlDataProvider == null) { return; } doc = new System.Xml.XmlDocument(); doc.LoadXml(lxmldoc); lXmlDataProvider.Document = doc; mISessionControl = mCaptureManager.createSessionControl(); mSinkControl = mCaptureManager.createSinkControl(); mEncoderControl = mCaptureManager.createEncoderControl(); mEncodersComboBox.SelectionChanged += delegate { do { if (mEncoderControl == null) { break; } var lselectedNode = mEncodersComboBox.SelectedItem as XmlNode; if (lselectedNode == null) { break; } var lEncoderNameAttr = lselectedNode.Attributes["Title"]; if (lEncoderNameAttr == null) { break; } var lCLSIDEncoderAttr = lselectedNode.Attributes["CLSID"]; if (lCLSIDEncoderAttr == null) { break; } Guid lCLSIDEncoder; if (!Guid.TryParse(lCLSIDEncoderAttr.Value, out lCLSIDEncoder)) { break; } var lSourceNode = mSourcesComboBox.SelectedItem as XmlNode; if (lSourceNode == null) { return; } var lNode = lSourceNode.SelectSingleNode( "Source.Attributes/Attribute" + "[@Name='MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK' or @Name='MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_SYMBOLIC_LINK']" + "/SingleValue/@Value"); if (lNode == null) { return; } string lSymbolicLink = lNode.Value; lSourceNode = mStreamsComboBox.SelectedItem as XmlNode; if (lSourceNode == null) { return; } lNode = lSourceNode.SelectSingleNode("@Index"); if (lNode == null) { return; } uint lStreamIndex = 0; if (!uint.TryParse(lNode.Value, out lStreamIndex)) { return; } lSourceNode = mMediaTypesComboBox.SelectedItem as XmlNode; if (lSourceNode == null) { return; } lNode = lSourceNode.SelectSingleNode("@Index"); if (lNode == null) { return; } uint lMediaTypeIndex = 0; if (!uint.TryParse(lNode.Value, out lMediaTypeIndex)) { return; } object lOutputMediaType; if (mSourceControl == null) { return; } mSourceControl.getSourceOutputMediaType( lSymbolicLink, lStreamIndex, lMediaTypeIndex, out lOutputMediaType); string lMediaTypeCollection; if (!mEncoderControl.getMediaTypeCollectionOfEncoder( lOutputMediaType, lCLSIDEncoder, out lMediaTypeCollection)) { break; } XmlDataProvider lXmlEncoderModeDataProvider = (XmlDataProvider)this.Resources["XmlEncoderModeProvider"]; if (lXmlEncoderModeDataProvider == null) { return; } XmlDocument lEncoderModedoc = new XmlDocument(); lEncoderModedoc.LoadXml(lMediaTypeCollection); lXmlEncoderModeDataProvider.Document = lEncoderModedoc; } while (false); }; mEncodingModeComboBox.SelectionChanged += delegate { do { if (mEncoderControl == null) { break; } var lselectedNode = mEncodingModeComboBox.SelectedItem as XmlNode; if (lselectedNode == null) { break; } var lGUIDEncodingModeAttr = lselectedNode.Attributes["GUID"]; if (lGUIDEncodingModeAttr == null) { break; } Guid lGUIDEncodingMode; if (!Guid.TryParse(lGUIDEncodingModeAttr.Value, out lGUIDEncodingMode)) { break; } var lConstantMode = Guid.Parse("{CA37E2BE-BEC0-4B17-946D-44FBC1B3DF55}"); XmlDataProvider lXmlMediaTypeProvider = (XmlDataProvider)this.Resources["XmlMediaTypesCollectionProvider"]; if (lXmlMediaTypeProvider == null) { return; } XmlDocument lMediaTypedoc = new XmlDocument(); var lClonedMediaTypesNode = lMediaTypedoc.ImportNode(lselectedNode, true); lMediaTypedoc.AppendChild(lClonedMediaTypesNode); lXmlMediaTypeProvider.Document = lMediaTypedoc; } while (false); }; mSinkFactoryComboBox.SelectionChanged += delegate { do { if (mEncoderControl == null) { break; } var lselectedNode = mSinkFactoryComboBox.SelectedItem as XmlNode; if (lselectedNode == null) { break; } var lAttr = lselectedNode.Attributes["GUID"]; if (lAttr == null) { throw new System.Exception("GUID is empty"); } mContainerTypeComboBox.IsEnabled = false; mSinkType = SinkType.Node; if (lAttr.Value == "{D6E342E3-7DDD-4858-AB91-4253643864C2}") { mContainerTypeComboBox.IsEnabled = true; mSinkType = SinkType.File; } else if (lAttr.Value == "{2E891049-964A-4D08-8F36-95CE8CB0DE9B}") { mContainerTypeComboBox.IsEnabled = true; mSinkType = SinkType.BitStream; } else if (lAttr.Value == "{759D24FF-C5D6-4B65-8DDF-8A2B2BECDE39}") { } else if (lAttr.Value == "{3D64C48E-EDA4-4EE1-8436-58B64DD7CF13}") { } else if (lAttr.Value == "{2F34AF87-D349-45AA-A5F1-E4104D5C458E}") { } XmlDataProvider lXmlMediaTypeProvider = (XmlDataProvider)this.Resources["XmlContainerTypeProvider"]; if (lXmlMediaTypeProvider == null) { return; } XmlDocument lMediaTypedoc = new XmlDocument(); var lClonedMediaTypesNode = lMediaTypedoc.ImportNode(lselectedNode, true); lMediaTypedoc.AppendChild(lClonedMediaTypesNode); lXmlMediaTypeProvider.Document = lMediaTypedoc; } while (false); }; }
public MainWindow() { InitializeComponent(); try { mCaptureManager = new CaptureManager("CaptureManager.dll"); } catch (Exception) { mCaptureManager = new CaptureManager(); } LogManager.getInstance().WriteDelegateEvent += MainWindow_WriteDelegateEvent; if (mCaptureManager == null) { return; } mSourceControl = mCaptureManager.createSourceControl(); if (mSourceControl == null) { return; } mSinkControl = mCaptureManager.createSinkControl(); if (mSinkControl == null) { return; } mISessionControl = mCaptureManager.createSessionControl(); if (mISessionControl == null) { return; } mISARVolumeControl = mCaptureManager.createSARVolumeControl(); if (mISARVolumeControl == null) { return; } mRVolume.ValueChanged += (s, ev) => { if (mSARSinkOutputNode != null) { mISARVolumeControl.setChannelVolume(mSARSinkOutputNode, 0, (float)ev.NewValue); } }; mLVolume.ValueChanged += (s, ev) => { if (mSARSinkOutputNode != null) { mISARVolumeControl.setChannelVolume(mSARSinkOutputNode, 1, (float)ev.NewValue); } }; XmlDataProvider lXmlDataProvider = (XmlDataProvider)this.Resources["XmlSources"]; if (lXmlDataProvider == null) { return; } XmlDocument doc = new XmlDocument(); string lxmldoc = ""; mCaptureManager.getCollectionOfSources(ref lxmldoc); doc.LoadXml(lxmldoc); lXmlDataProvider.Document = doc; mSinkControl.createSinkFactory(Guid.Empty, out mSARSinkFactory); }
private void Window_Loaded(object sender, RoutedEventArgs e) { try { mCaptureManager = Program.mCaptureManager; App.mHotKeyHost = new HotKeyHost((HwndSource)HwndSource.FromVisual(App.Current.MainWindow)); App.mHotKeyHost.AddHotKey(new CustomHotKey("Record", new Action(() => { App.Current.Dispatcher.BeginInvoke(DispatcherPriority.Background, (ThreadStart) delegate() { mStartStop_Click(null, null); }); } ), Key.P, ModifierKeys.Control | ModifierKeys.Shift, true)); } catch (System.Exception) { try { mCaptureManager = new CaptureManager(); } catch (System.Exception) { } } LogManager.getInstance().WriteDelegateEvent += MainWindow_WriteDelegateEvent; if (mCaptureManager == null) { return; } var t = new Thread( delegate() { try { mSourceControl = mCaptureManager.createSourceControl(); if (mSourceControl == null) { return; } mEncoderControl = mCaptureManager.createEncoderControl(); if (mEncoderControl == null) { return; } mSinkControl = mCaptureManager.createSinkControl(); if (mSinkControl == null) { return; } mISessionControl = mCaptureManager.createSessionControl(); if (mISessionControl == null) { return; } mStreamControl = mCaptureManager.createStreamControl(); if (mStreamControl == null) { return; } mStreamControl.createStreamControlNodeFactory(ref mSpreaderNodeFactory); if (mSpreaderNodeFactory == null) { return; } mSinkControl.createSinkFactory(Guid.Empty, out mEVRMultiSinkFactory); if (mEVRMultiSinkFactory == null) { return; } XmlDataProvider lXmlDataProvider = (XmlDataProvider)this.Resources["XmlSources"]; if (lXmlDataProvider == null) { return; } XmlDocument doc = new XmlDocument(); string lxmldoc = ""; mCaptureManager.getCollectionOfSources(ref lxmldoc); doc.LoadXml(lxmldoc); lXmlDataProvider.Document = doc; lXmlDataProvider = (XmlDataProvider)this.Resources["XmlEncoders"]; if (lXmlDataProvider == null) { return; } doc = new XmlDocument(); mCaptureManager.getCollectionOfEncoders(ref lxmldoc); doc.LoadXml(lxmldoc); lXmlDataProvider.Document = doc; mCaptureManager.getCollectionOfSinks(ref lxmldoc); lXmlDataProvider = (XmlDataProvider)this.Resources["XmlContainerTypeProvider"]; if (lXmlDataProvider == null) { return; } doc = new XmlDocument(); doc.LoadXml(lxmldoc); lXmlDataProvider.Document = doc; } catch (Exception) { } finally { } }); t.SetApartmentState(ApartmentState.MTA); t.Start(); }