如何在不使用TSysDevEnum.GetMoniker的情况下使用已知的视频捕获源初始化TFilter?

时间:2012-10-02 17:55:20

标签: delphi directshow dspack

是否可以使用已知的视频捕获源创建/初始化TFilter对象而不使用TSysDevEnum.GetMoniker(...)?

视频捕获源的名称和其他详细信息已知,可通过GraphEdit Filter Browser获取。目的是加快TFilter的初始化并以编程方式将其附加到FilterGraph。

1 个答案:

答案 0 :(得分:1)

不,you need to do it via moniker。它取决于支持视频源过滤器的实际COM类,但几乎总是没有唯一的CLSID,并且不可能通过名字对象来实例化它。

如果您有名字对象显示名称,则可以使用MkParseDisplayName快速获取IMoniker绕过枚举。或者,您可以枚举并比较名字对象的显示名称与您已经拥有的名称。

  

要选择音频或视频捕获设备,请使用系统设备   枚举器,在主题使用系统设备枚举器中描述。   System Device Enumerator返回一组设备标记,   按设备类别选择。名字对象是包含的COM对象   有关另一个对象的信息Monikers使应用程序能够实现   获取有关对象的信息而不实际创建对象。

相关问题