C++ DirectShow示例过滤器:如何使用?

C++ DirectShow示例过滤器:如何使用?,c++,winapi,com,directshow,C++,Winapi,Com,Directshow,我正在尝试编写一个自定义DS渲染过滤器。我决定从SDK提供的示例过滤器开始,即“Dump”。我可以成功构建DUMP.DLL和相关文件,但我不知道如何在我的应用程序中使用它 它看起来像IFilterMapper2->RegisterFilter可以做到这一点,但是(IMHO)它是一个怪物,文档是极简的。此外,我看不到任何地方可以将DLL指定为InProcServer,我认为这是一项要求 我还尝试了regsvr32 DUMP.DLL,但我不确定这是否有帮助 我相信答案一定很简单,但我就是看不出来。任

我正在尝试编写一个自定义DS渲染过滤器。我决定从SDK提供的示例过滤器开始,即“Dump”。我可以成功构建DUMP.DLL和相关文件,但我不知道如何在我的应用程序中使用它

它看起来像IFilterMapper2->RegisterFilter可以做到这一点,但是(IMHO)它是一个怪物,文档是极简的。此外,我看不到任何地方可以将DLL指定为InProcServer,我认为这是一项要求

我还尝试了regsvr32 DUMP.DLL,但我不确定这是否有帮助

我相信答案一定很简单,但我就是看不出来。任何帮助都将不胜感激,尤其是代码剪贴画(学术文章没有太大帮助)。此外,最好的解决方案应该是直C++(没有第三方包或.NET的东西)。 提前感谢,

-John

过滤器不是单独使用的-它们是管道的一部分,它们与其他过滤器和过滤器图形管理器通信

过滤器确实是使用
IFilterMapper2::RegisterFilter
调用注册的。请注意,由于这涉及HKLM下的注册表写入,因此必须以本地管理员的提升权限进行注册

在大多数情况下,即使不需要完全以这种方式进行,此注册也是通用COM注册的一部分,由regsvr32或等效调用完成。DLL注册代码通常对其发布的筛选器执行
IFilterMapper2::RegisterFilter

在Dump sample中,在同一文件中的帮助下处理它

注册筛选器后,应用程序就可以对其进行枚举。您首先要尝试的是SDK GraphEdit工具或其更新、更强大的开源替代品

Ctrl+F打开过滤器列表,您可以在其中找到自己的过滤器,并将其插入正在交互构建的过滤器图中。然后连接tpo其他过滤器并运行


请参见MSDN上的。

过滤器不是单独使用的-它们是管道的一部分,它们与其他过滤器以及过滤器图形管理器进行通信

过滤器确实是使用
IFilterMapper2::RegisterFilter
调用注册的。请注意,由于这涉及HKLM下的注册表写入,因此必须以本地管理员的提升权限进行注册

在大多数情况下,即使不需要完全以这种方式进行,此注册也是通用COM注册的一部分,由regsvr32或等效调用完成。DLL注册代码通常对其发布的筛选器执行
IFilterMapper2::RegisterFilter

在Dump sample中,在同一文件中的帮助下处理它

注册筛选器后,应用程序就可以对其进行枚举。您首先要尝试的是SDK GraphEdit工具或其更新、更强大的开源替代品

Ctrl+F打开过滤器列表,您可以在其中找到自己的过滤器,并将其插入正在交互构建的过滤器图中。然后连接tpo其他过滤器并运行


请参见MSDN。

是的,我理解,但我的问题是如何准确地“注册过滤器”(并使用它将过滤器添加到图表中)?太好了!这正是我所需要的。是的,我明白,但我的问题是如何“注册一个过滤器”(并使用它将过滤器添加到图形中)?太好了!正是我需要的。