IFilterGraph interface
这个 IFilterGraph 接口为建立一个过滤器图表提供了方法,一个应用程序可以通过它增加一个过滤器到图表,连接或者不连接,删除过滤器,执行一些其他基本操作,无论怎么样,我们都应该使用IGraphBuilder 这个类,因为IGraphBuilder是从IFilterGraph这个类继承过来的,拥有IFilterGraph提供的所有方法,并且增加了更加细致的操作。
而IFilterGraph 接口从IUnknown 这个接口继承
HRESULT AddFilter 增加一个过滤器到图表
(
[in] IBaseFilter* pFilter, // 一个基础的过滤器指针
[in]LPCWSTR pName // 一个宽字节的字符串,这个字符串包含的是该过滤器的名字
)
HRESULT ConnectDirect 立刻连接两个插脚,如果没有将会对过滤器进行干扰
(
[in] IPin *ppinOut, // 一个输出插脚指针
[in] IPin* ppinIn, // 一个输入插脚指针
[in] const AM_MEDIA_TYPE* pmt // 一个媒体类型指针,可以是NULL
)
HRESULT Disconnect 从一个指定的插脚断开链接
(
[in] IPin* ppin // 一个要断开连接的插脚
)
HRESULT EnumFilters 为整个在图表中的过滤器提供一个枚举图表过滤器的一种方法
(
[OUT] IEnumFilters ** ppEnum; // 接受一个指向枚举器的接口的指针,
// 使用这个接口去枚举过滤器,这个调用者必须去释放这个接口
)
HRESULT FindFilterByName 根据指定的名称去查找一个已经存在的过滤器
(
[in] LPCWSTR pName , // 指向一个字符串,该字符串包含着要从IBaseFilter里搜索的过滤器名称
[out] IBaseFilter **ppFilter // 收到一个指向IBaseFilter的指针,使用完后,必须释放
)
HRESULT Reconnect 断开已经链接了的插脚并重新再次连接该插脚
(
[in] IPin *ppin 指向一个插脚的指针
)
HRESULT RemoveFilter 从一个图表中移除过滤器
(
[in] IBaseFilter* pFilter 指向一个要删除的过滤器
)
HRESULT SetDefaultSyncSource() 设置这个用到的记录到默认的记录
有些微不足道的小人物,突然的某一天,或许会以令你惊艳的姿态出现。每个人都有优势,在某方面输给你,不等于在每方面都输给你。别瞧不起任何人,他们只是在以你不了解的方式存在着。—— 苏芩