繁体   English   中英

IOverlay接口在DirectShow.Net中可用吗?

[英]Is IOverlay interface available in DirectShow.Net

我对DirectShow还是很陌生,现在真的感觉很周到。 我想在WPF应用程序中托管DirectShow图形的DirectShow渲染器窗口,并且当前正在使用HwndHost类来尝试实现此目的。 但是,对于HwndHost,我需要的是渲染视频的窗口的句柄。 我发现了一个示例,该示例通过枚举IVideoWindow接口的针脚并查询IOverlay来显示获取句柄,因此可以使用GetWindowHandle方法获取句柄。

问题是IOverlay在DirectShow.Net中似乎不可用。 阅读DirectShow.Net 关于页,在表中列出了IOverlay,标题为“这些接口在源代码中,但是已弃用,未记录,打算用于Ole Automation或其他不可测试的方式,这意味着它们不是,并且将不进行测试“

那么,要访问此定义我必须做什么? 是否将它排除在以库形式分发的构建中,所以我应该自己从源代码构建该库吗?

还是有更好的方法来做我想做的事情? 就像我说我对所有这些东西都是新手一样,Anyhelp将不胜感激。

提前致谢。

编辑:那里没有多少DirectShow开发人员? 还是这是一个愚蠢的问题,肯定会让任何窥视的建议开放...

正常的方法是使用IVideoWindow :: put_Owner将视频窗口重新设置为自己窗口的子窗口。 您还将需要设置AutoShow(false),Visible,Width和Height属性,并更改WindowStyle属性使其成为子窗口。

IOverlay接口是在DirectShow的第一个版本(1996)中实现的,以支持某些早已失效的硬件解码器。 我不认为当前的视频渲染器会支持它。

窗口句柄很难获得,因为不良的应用程序编程导致Video for Windows频繁出现死锁,并且开发人员认为DirectShow线程与它们拥有的窗口以及任何应用程序线程之间需要有明显的区别。

G

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM