IGraphBuilder接口:
这个接口允许应用程序利用filter graph manager来构建一个完整的filter graph,或者是部分只提供了部分信息的filter graph,例如只是一个文件的名字,或是两个分开的pin的接口。Filter的映射程序用一种有效的方式,通过查找注册表来配置filter graph。
IGraphBuilder是从IFilterGraph接口继承而来,并且列出了其所有的方法。因此,通常不会直接用到IFilterGraph。
什么时候用?应用程序用这个接口新建一个filter graph,在其中添加、删除filter,或列举一个filter graph中所有的filter,当添加filter时候,构建连接(MSDN原句:force connections when adding a filter)。在Filter连接,和构建一个filter graph的过程中,filter通常用接口来再连接pin。
IFilterGraph方法:
AddFilter:添加一个filter进graph,并且给它一个名字。
RemoveFilter:从graph中删除一个graph。
EnumFilters:为graph中所有的filter提供一个枚举器。
FindFilterByName:利用名字,找出被添加进graph的filter。
ConnectDirect:直接连接两个IPin对象(没有其它的filter介入这两个对象之间,MSDN原句:without intervening filters)。
Reconnect:断开已存在的pin连接,并且重新连接到同一个pin。
Disconnect:如果pin已经连接,则断开它。
SetDefaultSyncSource:设置默认的同步源(a clock, 一个时间)。
IGraphBuilder方法:
Connect:连接两个IPin对象。如果它们没有直接相连,这个方法将通过介入的transforms过滤器(MSDN原句:this method connects them with intervening transforms)来连接它们。
Render:添加一条filter链到这个输出pin上,并且渲染它们(render it)。
RenderFile:建立一个渲染某个特定的文件的filter graph。
AddSourceFilter:为一个特定的文件添加一个source filter到filter graph。利用IGraphBuiler::RenderFile方法,调用这个AddSourceFilter去找到source filter(MSDN原句:The IGraphBuilder::RenderFile method calls this to find the source filter)。
SetLogFile:设置日志文件到一个行为操作,当要企图去记录某个操作的时候。