如何获取未注册的DirectShow过滤器的默认过滤器名称

时间:2014-11-21 04:14:25

标签: directshow

我正在通过CLSID从DLL手动加载一些未注册的DirectShow过滤器,我想找出过滤器的名称(如GraphEdit中所示)。

我尝试过使用IBaseFilter:QueryFilterInfo方法,但只有在过滤器是图表的一部分时才会显示,即使这样,它也会返回添加过滤器时给过滤器的名称到图表。

我正在寻找过滤器在将其实例添加到GraphEdit中的图形时所具有的默认名称。有可能得到它,以及如何?

1 个答案:

答案 0 :(得分:1)

过滤器图表在过滤器加入图表时为过滤器指定唯一名称。该名称可以由过滤器加法器建议,然后在碰撞过滤器图形的情况下可能会附加一个数字作为后缀。如果加法器没有给出名称,过滤器图形将从QueryFilterInfo或过滤器注册信息中获取“默认”名称,其中友好名称也是注册的一部分。

注册名称由Filter Mapper管理,并可通过编程方式访问。然后它将信息保存在类别键下的注册表中,尤其是。 HKEY_CLASSES_ROOT\CLSID\{083863F1-70DE-11D0-BD40-00A0C911CE86}\Instance密钥。