Пример #1
0
        private void TestLogError()
        {
            int           hr;
            IGraphBuilder fg;
            IRenderEngine ire = new RenderEngine() as IRenderEngine;

            hr = ire.SetTimelineObject(m_pTimeline);
            DESError.ThrowExceptionForHR(hr);

            hr = ire.ConnectFrontEnd();
            DESError.ThrowExceptionForHR(hr);

            hr = ire.RenderOutputPins();
            DESError.ThrowExceptionForHR(hr);

            hr = ire.GetFilterGraph(out fg);
            DESError.ThrowExceptionForHR(hr);

            hr = ((IMediaControl)fg).Run();
            DESError.ThrowExceptionForHR(hr);

            IMediaEvent ime = fg as IMediaEvent;
            EventCode   evCode;
            const int   E_Abort = unchecked ((int)0x80004004);

            do
            {
                System.Windows.Forms.Application.DoEvents();
                System.Threading.Thread.Sleep(100);
                hr = ime.WaitForCompletion(1000, out evCode);
            } while (evCode == (EventCode)E_Abort);

            Debug.Assert(m_Called == true, "LogError");
        }