private void DoResetSearch()
        {
            if (m_currentQueryInfo != null)
            {
                m_currentQueryInfo.Cancel();
                m_currentQueryInfo = null;
            }
            if (!m_fResetSearchInProgress)
            {
                return;                 // last reset succeeded, nothing to do.
            }
            m_fResetSearchAborted = false;
            ClearResetTimer();

            if (ShouldAbort())
            {
                return;
            }

            m_currentQueryInfo = new ExtantEntryInfo();
            m_currentQueryInfo.ExtantEntriesCompleted += new EventHandler(m_currentQueryInfo_ExtantEntriesCompleted);
            // This should come before we call StartGetting...because the Completed call
            // can happen DURING the StartGetting call.
            RaiseSearchingChanged();
            m_currentQueryInfo.StartGettingExtantEntries(m_cacheSearch, m_currentID,
                                                         m_wantExactMatch,
                                                         m_vernWs, m_cf, m_uf, m_af,
                                                         m_analWs, m_gl);
        }