查找过滤器的DirectShow类别 [英] Finding a filter's DirectShow category
问题描述
鉴于过滤器或硬件设备或其名称,我如何找出该过滤器或硬件设备所属的DirectShow类别?是否存在某种类别"?在PropertyBag中的某处找到物业?
Given a filter or a hardware device or its moniker, how can I find out what DirectShow category that filter or hardware device belongs to? Is there some kind of a "Category" property somewhere in the PropertyBag?
推荐答案
DirectShow类别包含过滤器注册信息,表示可以从注册条目中创建监视器.创建别名后,您将没有过滤器,但此时类别信息已经消失了.从绰号创建过滤器实例显然不会使您归类.
DirectShow categories contain filter registration information in terms that it is possible to create a monitor out of registration entry. Once moniker is created you don't yet have a filter but category information is already gone at this point. Creating an instance of filter from moniker obviously does not get you category back.
还可以在多个类别中注册一个过滤器,并且还可以将[第三方]过滤器注册到一个类别中,而过滤器根本不知道它.
Also it is possible to have one filter regisered in multiple categories, and it is also possible to register a [third party] filter into a category without filter being aware of it at all.
因此,不,拥有过滤器后,您将无法找到过滤器的类别.有时,您可以从实例中获取CLSID并通过枚举类别将其匹配,但即使这样对每个过滤器也无效.
So, no, you cannot find out filter's category when you have a filter. Sometimes you can get CLSID from instance and match it back by enumerating a categories, but even this would not work for every filter.
这篇关于查找过滤器的DirectShow类别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!