/// <summary>
        /// BufferCB callback
        /// </summary>
        /// <remarks>COULD BE EXECUTED FROM FOREIGN THREAD.</remarks>
        int ISampleGrabberCB.BufferCB(double SampleTime, IntPtr pBuffer, int BufferLen)
        {
            try
            {
                // Note that we depend on only being called once per call to Click.  Otherwise
                // a second call can overwrite the previous image.
                if (BufferLen == Math.Abs(m_videoBitCount / 8 * m_videoWidth) * m_videoHeight)
                {
                }

                if (m_bWantOneFrame)
                {
                    m_bWantOneFrame = false;
                    if (m_ipBuffer != IntPtr.Zero)
                    {
                    }

                    // Save the buffer
                    NativeMethodes.CopyMemory(m_ipBuffer, pBuffer, BufferLen);

                    // Picture is ready.
                    m_PictureReady.Set();
                }
            }
            catch { }

            return(0);
        }
 int ISampleGrabberCB.BufferCB(double SampleTime, IntPtr pBuffer, int BufferLen)
 {
     if (this.m_bWantOneFrame)
     {
         this.m_bWantOneFrame = false;
         NativeMethodes.CopyMemory(this.m_ipBuffer, pBuffer, BufferLen);
         this.m_PictureReady.Set();
     }
     return(0);
 }
        /// <summary>
        /// BufferCB callback
        /// </summary>
        /// <remarks>COULD BE EXECUTED FROM FOREIGN THREAD.</remarks>
        int ISampleGrabberCB.BufferCB(double SampleTime, IntPtr pBuffer, int BufferLen)
        {
            // Note that we depend on only being called once per call to Click.  Otherwise
            // a second call can overwrite the previous image.
            Debug.Assert(BufferLen == Math.Abs(m_videoBitCount / 8 * m_videoWidth) * m_videoHeight, "Incorrect buffer length");

            if (m_bWantOneFrame)
            {
                m_bWantOneFrame = false;
                Debug.Assert(m_ipBuffer != IntPtr.Zero, "Unitialized buffer");

                // Save the buffer
                NativeMethodes.CopyMemory(m_ipBuffer, pBuffer, BufferLen);

                // Picture is ready.
                m_PictureReady.Set();
            }

            return(0);
        }