CDXGraph.h
上传用户:tuheem
上传日期:2007-05-01
资源大小:21889k
文件大小:2k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. //
  2. // CDXGraph.h
  3. //
  4. #ifndef __H_CDXGraph__
  5. #define __H_CDXGraph__
  6. // Filter graph notification to the specified window
  7. #define WM_GRAPHNOTIFY  (WM_USER+20)
  8. class CDXGraph
  9. {
  10. private:
  11. IGraphBuilder *     mGraph;  
  12. IMediaControl * mMediaControl;
  13. IMediaEventEx * mEvent;
  14. IBasicVideo * mBasicVideo;
  15. IBasicAudio * mBasicAudio;
  16. IVideoWindow  * mVideoWindow;
  17. IMediaSeeking * mSeeking;
  18. DWORD mObjectTableEntry; 
  19. public:
  20. CDXGraph();
  21. virtual ~CDXGraph();
  22. public:
  23. virtual bool Create(void);
  24. virtual void Release(void);
  25. virtual bool Attach(IGraphBuilder * inGraphBuilder);
  26. HRESULT QueryInterface(REFIID inIID, void ** ppvObject);
  27. IGraphBuilder * GetGraph(void); // Not outstanding reference count
  28. IMediaEventEx * GetEventHandle(void);
  29. bool ConnectFilters(IPin * inOutputPin, IPin * inInputPin, const AM_MEDIA_TYPE * inMediaType = 0);
  30. void DisconnectFilters(IPin * inOutputPin);
  31. bool SetDisplayWindow(HWND inWindow);
  32. bool SetNotifyWindow(HWND inWindow);
  33. bool ResizeVideoWindow(long inLeft, long inTop, long inWidth, long inHeight);
  34. void HandleEvent(WPARAM inWParam, LPARAM inLParam);
  35. bool Run(void);        // Control filter graph
  36. bool Stop(void);
  37. bool Pause(void);
  38. bool IsRunning(void);  // Filter graph status
  39. bool IsStopped(void);
  40. bool IsPaused(void);
  41. bool SetFullScreen(BOOL inEnabled);
  42. bool GetFullScreen(void);
  43. // IMediaSeeking
  44. bool GetCurrentPosition(double * outPosition);
  45. bool GetStopPosition(double * outPosition);
  46. bool SetCurrentPosition(double inPosition);
  47. bool SetStartStopPosition(double inStart, double inStop);
  48. bool GetDuration(double * outDuration);
  49. bool SetPlaybackRate(double inRate);
  50. bool RenderFile(const char * inFile);
  51. private:
  52. void AddToObjectTable(void) ;
  53. void RemoveFromObjectTable(void);
  54. bool QueryInterfaces(void);
  55. };
  56. #endif // __H_CDXGraph__