是否可以使用已知的视频捕获源创建/初始化TFilter对象而不使用TSysDevEnum.GetMoniker(...)?
视频捕获源的名称和其他详细信息已知,可通过GraphEdit Filter Browser获取。目的是加快TFilter的初始化并以编程方式将其附加到FilterGraph。
答案 0 :(得分:1)
不,you need to do it via moniker。它取决于支持视频源过滤器的实际COM类,但几乎总是没有唯一的CLSID
,并且不可能通过名字对象来实例化它。
如果您有名字对象显示名称,则可以使用MkParseDisplayName
快速获取IMoniker绕过枚举。或者,您可以枚举并比较名字对象的显示名称与您已经拥有的名称。
要选择音频或视频捕获设备,请使用系统设备 枚举器,在主题使用系统设备枚举器中描述。 System Device Enumerator返回一组设备标记, 按设备类别选择。名字对象是包含的COM对象 有关另一个对象的信息Monikers使应用程序能够实现 获取有关对象的信息而不实际创建对象。