与窗口对象删除同步



我有一个插件,它有一个从外部服务推送到它的内容流,然后我把它绘制到PluginWindowlessWin.

我维护了一个对PluginWindowlessWin对象的引用,以便在新内容到达时调用Invalidate()。然而,在某些情况下(例如,插件对象从页面中删除),PluginWindowlessWin对象被删除而不通知我的插件。因此,我最终在一个错误的指针上调用Invalidate()并崩溃。

我如何继续通知浏览器更新,以便它将继续发送刷新事件-通过Invalidate()调用或其他方式-而不依赖于可能被静默删除的对象?

使用无窗口插件时,除非浏览器请求,否则无法绘制。听起来你有那部分。你可以通过调用PluginWindowlessWin上的InvalidateWindow来请求浏览器进行绘制。

一旦AttachedEvent在你的插件上被调用,PluginWindowlessWin将可用;如果需要,您甚至可以保存引用。但是,您需要在调用DetachedEvent时释放它。

最新更新