示例#1
0
        public override int Inactive()
        {
#if HAMED_LOG_METHOD_INFO
            MethodBase method = new StackTrace().GetFrame(0).GetMethod();
            Console.WriteLine(this.GetType().FullName + " - " + method.Name + " - " + method.ToString());
#endif

            HRESULT hr = (HRESULT)base.Inactive();
            if (m_pClock != null)
            {
                if (m_dwAdviseToken != 0)
                {
                    m_pClock.Unadvise(m_dwAdviseToken);
                    m_dwAdviseToken = 0;
                }
                m_pClock._Release();
                m_pClock = null;
                if (m_hSemaphore != null)
                {
                    m_hSemaphore.Close();
                    m_hSemaphore = null;
                }
            }
            return(hr);
        }
 public override int Active()
 {
     m_rtStart        = 0;
     m_bStartNotified = false;
     m_bStopNotified  = false;
     {
         lock (m_Filter.FilterLock)
         {
             m_pClock = m_Filter.Clock;
             if (m_pClock.IsValid)
             {
                 m_pClock._AddRef();
                 m_hSemaphore = new Semaphore(0, 0x7FFFFFFF);
             }
         }
     }
     return(base.Active());
 }
        public override int Inactive()
        {
            HRESULT hr = (HRESULT)base.Inactive();

            if (m_pClock != null)
            {
                if (m_dwAdviseToken != 0)
                {
                    m_pClock.Unadvise(m_dwAdviseToken);
                    m_dwAdviseToken = 0;
                }
                m_pClock._Release();
                m_pClock = null;
                if (m_hSemaphore != null)
                {
                    m_hSemaphore.Close();
                    m_hSemaphore = null;
                }
            }
            return(hr);
        }
示例#4
0
        public override int Active()
        {
#if HAMED_LOG_METHOD_INFO
            MethodBase method = new StackTrace().GetFrame(0).GetMethod();
            Console.WriteLine(this.GetType().FullName + " - " + method.Name + " - " + method.ToString());
#endif

            m_rtStart        = 0;
            m_bStartNotified = false;
            m_bStopNotified  = false;
            {
                lock (m_Filter.FilterLock)
                {
                    m_pClock = m_Filter.Clock;
                    if (m_pClock.IsValid)
                    {
                        m_pClock._AddRef();
                        m_hSemaphore = new Semaphore(0, 0x7FFFFFFF);
                    }
                }
            }
            return(base.Active());
        }