IGraphBuilder interface
Intermidmate 中间媒介
这个接口提供一种方法,enable(使什么有效),使一个应用程序建立一个图标过滤器有效,
这个接口是The Filter Graph Manager 的容器
The IGraphBuilder 接口 从 IFilterGraph 继承(inherits), iFilterGraph 这个类提供一个基本的操作,比如增加一个过滤器到一个图标 或者链接两个插脚,而IGraphBuilder
进一步增加了从一些部分信息构造图表,例如,RenderFile成员为了回放建立了一个图表,
得到这个文件的名字,RenderFile通过链接新的过滤器到这个插脚以此从一个输出插脚渲染(Renders)数据
对于使用这些函数,一个应用程序不需要在图表中对将指定(specify)的每个过滤器和插脚链接,另外,这个图表过滤器管理者会选择合适的过滤器在你的系统上注册,并且会增加他们到相应的图表,并且使它们链接
HRESULT Abort(); 请求图表建立着尽可能的返回当前的任务
HRESULT AddSourceFilter( // 为一个指定的文件增加一个源过滤器到过滤器图表
[in] LPCWSTR lpwstrFileName, 指定这个要加载的文件名称
[in] LPCWSTR lpwstrFilterName, 指定这个源过滤器(filter)的名称
[out] IBaseFilter** ppFilter 收到一个指向IBaseFilter过滤器的指针
)
HRESULT Connect ( // 链接两个插脚,但是,如果他们不是立刻链接,用这个函数连接他们
会在转换时进行干预
[in] IPin* ppinOut, 一个IPin类型的指针,此指针的作用是输出插脚
[in] IPin*ppinIn 输入插脚
);
HRESULT Render 增加过滤器的一条链用来与指定的输出脚本相链接并且渲染它(即输出插脚的数据)
(
[in]IPin *ppinOut
);
HRESULT RenderFile(
[in] LPCWSTR lpwstrFile, // 宽字节类型的字符串包含一个媒体文件的名称
[in]LPCWSTR lpwstrPlayList // 必须为NULL.预留
);
HRESULT SetLogFile(DWORD_PTR hFile // 指向一个登陆文件的句柄
//当尝试去执行登陆行为操作时,设置一个文件
);
HRESULT ShouldOperatorContinue() 循环当前操作是否继续,一个过滤器在执行一些图表请求操作时,可以调用这个函数去决定当前的操作是否执行,应用程序将不正常