CDXGraph.h
上传用户:hhs829
上传日期:2022-06-17
资源大小:586k
文件大小:2k
- //
- // CDXGraph.h
- //
- #ifndef __H_CDXGraph__
- #define __H_CDXGraph__
- // Filter graph notification to the specified window
- #define WM_GRAPHNOTIFY (WM_USER+20)
- #include <streams.h>
- class CDXGraph
- {
- private:
- IGraphBuilder * mGraph;
- IMediaControl * mMediaControl;
- IMediaEventEx * mEvent;
- IBasicVideo * mBasicVideo;
- IBasicAudio * mBasicAudio;
- IVideoWindow * mVideoWindow;
- IMediaSeeking * mSeeking;
- DWORD mObjectTableEntry;
- public:
- CDXGraph();
- virtual ~CDXGraph();
- public:
- virtual bool Create(void);
- virtual void Release(void);
- virtual bool Attach(IGraphBuilder * inGraphBuilder);
- IGraphBuilder * GetGraph(void); // Not outstanding reference count
- bool ConnectFilters(IPin * inOutputPin, IPin * inInputPin, const AM_MEDIA_TYPE * inMediaType = 0);
- void DisconnectFilters(IPin * inOutputPin);
- bool SetDisplayWindow(HWND inWindow);
- bool SetNotifyWindow(HWND inWindow);
- void HandleEvent(WPARAM inWParam, LPARAM inLParam);
- bool Run(void); // Control filter graph
- bool Stop(void);
- bool Pause(void);
- bool IsRunning(void); // Filter graph status
- bool IsStopped(void);
- bool IsPaused(void);
- bool SetFullScreen(BOOL inEnabled);
- bool GetFullScreen(void);
- bool SetSyncSource(IBaseFilter * inFilter);
- bool SetDefaultSyncSource(void);
- // IMediaSeeking
- bool GetCurrentPosition(double * outPosition);
- bool SetCurrentPosition(double inPosition);
- bool GetDuration(double * outDuration);
- bool RenderFile(const char * inFile);
- bool WaitForCompletion(void);
- private:
- void AddToObjectTable(void) ;
- void RemoveFromObjectTable(void);
- bool QueryInterfaces(void);
- };
- #endif // __H_CDXGraph__