MacOs中的NPAPI在NPWindow结构中给我CGrafPtr,我需要一个WindowRef。 有没有办法从CGrafPtr获取WindowRef?
谢谢!
答案 0 :(得分:2)
如果您使用的是非常弃用的QuickDraw绘图模型(使用Carbon事件模型),NPAPI只会为您提供CGrafPtr。使用QuickDraw模型编写一个新的插件将是一个糟糕的想法:Firefox 64位不支持它,Safari 64位不支持它,Chrome并不真正支持它(很快就不会支持它) )。您的插件不适用于大多数用户。
相反,您应该使用Core Animation(绘图)+ Cocoa(事件)或CoreGraphics + Cocoa。在Cocoa事件模型中,故意无法获得对浏览器窗口的引用。现代浏览器几乎都在一个单独的进程中运行插件,并且您无法跨进程引用窗口。
简而言之,如果您要创建一个需要访问浏览器窗口的新NPAPI插件,那么您的设计是错误的。