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

StackOverflow https://stackoverflow.com//questions/12695617

  •  12-12-2019
  •  | 
  •  

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

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

有帮助吗?

解决方案

不, 你需要通过昵称来做到这一点. 。它取决于支持视频源过滤器的实际 COM 类,但几乎总是没有唯一的 CLSID 并且不通过名字就不可能实例化它。

如果您有昵称显示名称,则可以使用 MkParseDisplayName 绕过枚举快速获取IMoniker。或者,您可以枚举昵称的显示名称并将其与您已有的显示名称进行比较。

要选择音频或视频捕获设备,请使用系统设备枚举器中描述的系统设备枚举器。系统设备枚举器返回按设备类别选择的设备绰号的集合。绰号是包含有关另一个对象的信息的com对象。绰号使应用程序能够获取有关对象的信息,而无需实际创建对象。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top