private void DoIndex(IndexerType it, bool b) { IWMIndexer pIndex; WMUtils.WMCreateIndexer(out pIndex); IWMIndexer2 pIndex2 = pIndex as IWMIndexer2; pIndex2.Configure(0, it, null, null); m_IndexComplete = false; m_MaxIndex = 0; m_IndexError = 0; pIndex2.StartIndexing(sFileName, this, IntPtr.Zero); while (!m_IndexComplete) { if (b) { pIndex.Cancel(); } else { System.Threading.Thread.Sleep(0); } } if (m_IndexError != 0) { throw new COMException("Indexing error", m_IndexError); } }
private void Config() { IWMIndexer pIndex; WMUtils.WMCreateIndexer(out pIndex); IWMIndexer2 pIndex2 = pIndex as IWMIndexer2; pIndex2.Configure(0, IndexerType.FrameNumbers, null, null); pIndex2.StartIndexing(sFileName, this, IntPtr.Zero); while (!m_IndexComplete) { System.Threading.Thread.Sleep(0); } WMUtils.WMCreateSyncReader(IntPtr.Zero, Rights.Playback, out m_read); }
private void TestMisc() { IWMIndexer2 wi2 = m_read as IWMIndexer2; m_read.SetRange(100, 200); m_read.SetRangeByFrame(1, 1, 0); int on; short sn; m_read.GetOutputNumberForStream(2, out on); m_read.GetStreamNumberForOutput(on, out sn); Debug.Assert(sn == 2); m_read.OpenStream(this); Debug.WriteLine("here"); }