amextra.h
上传用户:liguizhu
上传日期:2015-11-01
资源大小:2422k
文件大小:2k
源码类别:

P2P编程

开发平台:

Visual C++

  1. //------------------------------------------------------------------------------
  2. // File: AMExtra.h
  3. //
  4. // Desc: DirectShow base classes.
  5. //
  6. // Copyright (c) Microsoft Corporation.  All rights reserved.
  7. //------------------------------------------------------------------------------
  8. #ifndef __AMEXTRA__
  9. #define __AMEXTRA__
  10. // Simple rendered input pin
  11. //
  12. // NOTE if your filter queues stuff before rendering then it may not be
  13. // appropriate to use this class
  14. //
  15. // In that case queue the end of stream condition until the last sample
  16. // is actually rendered and flush the condition appropriately
  17. class CRenderedInputPin : public CBaseInputPin
  18. {
  19. public:
  20.     CRenderedInputPin(TCHAR *pObjectName,
  21.                       CBaseFilter *pFilter,
  22.                       CCritSec *pLock,
  23.                       HRESULT *phr,
  24.                       LPCWSTR pName);
  25. #ifdef UNICODE
  26.     CRenderedInputPin(CHAR *pObjectName,
  27.                       CBaseFilter *pFilter,
  28.                       CCritSec *pLock,
  29.                       HRESULT *phr,
  30.                       LPCWSTR pName);
  31. #endif
  32.     
  33.     // Override methods to track end of stream state
  34.     STDMETHODIMP EndOfStream();
  35.     STDMETHODIMP EndFlush();
  36.     HRESULT Active();
  37.     HRESULT Run(REFERENCE_TIME tStart);
  38. protected:
  39.     // Member variables to track state
  40.     BOOL m_bAtEndOfStream;      // Set by EndOfStream
  41.     BOOL m_bCompleteNotified;   // Set when we notify for EC_COMPLETE
  42. private:
  43.     void DoCompleteHandling();
  44. };
  45. #endif // __AMEXTRA__