如何在不使用 TSysDevEnum.GetMoniker 的情况下使用已知视频捕获源初始化 TFilter?
-
12-12-2019 - |
题
是否可以在不使用 TSysDevEnum.GetMoniker(...) 的情况下使用已知的视频捕获源创建/初始化 TFilter 对象?
视频捕获源的名称和其他详细信息已知,并且可以通过 GraphEdit Filter Browser 获取。目的是加速 TFilter 的初始化并以编程方式将其附加到 FilterGraph。
解决方案
不, 你需要通过昵称来做到这一点. 。它取决于支持视频源过滤器的实际 COM 类,但几乎总是没有唯一的 CLSID
并且不通过名字就不可能实例化它。
如果您有昵称显示名称,则可以使用 MkParseDisplayName
绕过枚举快速获取IMoniker。或者,您可以枚举昵称的显示名称并将其与您已有的显示名称进行比较。
要选择音频或视频捕获设备,请使用系统设备枚举器中描述的系统设备枚举器。系统设备枚举器返回按设备类别选择的设备绰号的集合。绰号是包含有关另一个对象的信息的com对象。绰号使应用程序能够获取有关对象的信息,而无需实际创建对象。
不隶属于 StackOverflow