【发布时间】:2020-12-11 16:39:50
【问题描述】:
给定一个过滤器或硬件设备或其名称,我如何找出该过滤器或硬件设备属于哪个 DirectShow 类别? PropertyBag 中的某处是否有某种“类别”属性?
【问题讨论】:
标签: c++ windows winapi directshow
给定一个过滤器或硬件设备或其名称,我如何找出该过滤器或硬件设备属于哪个 DirectShow 类别? PropertyBag 中的某处是否有某种“类别”属性?
【问题讨论】:
标签: c++ windows winapi directshow
DirectShow 类别包含过滤器注册信息,可以根据注册条目创建监视器。创建名字对象后,您还没有过滤器,但此时类别信息已经消失。从名字对象创建过滤器实例显然不会让您恢复类别。
还可以在多个类别中注册一个过滤器,也可以在过滤器根本不知道的情况下将[第三方]过滤器注册到一个类别中。
所以,不,当您有过滤器时,您无法找到过滤器的类别。有时您可以从实例中获取 CLSID 并通过枚举类别将其匹配回来,但即使这样也不适用于每个过滤器。
【讨论】:
CLSID(如果可能):stackoverflow.com/a/10800679/868014