CGrafPtr到WindowRef

时间:2012-05-23 04:57:28

标签: macos macos-carbon npapi

MacOs中的NPAPI在NPWindow结构中给我CGrafPtr,我需要一个WindowRef。 有没有办法从CGrafPtr获取WindowRef?

谢谢!

1 个答案:

答案 0 :(得分:2)

如果您使用的是非常弃用的QuickDraw绘图模型(使用Carbon事件模型),NPAPI只会为您提供CGrafPtr。使用QuickDraw模型编写一个新的插件将是一个糟糕的想法:Firefox 64位不支持它,Safari 64位不支持它,Chrome并不真正支持它(很快就不会支持它) )。您的插件不适用于大多数用户。

相反,您应该使用Core Animation(绘图)+ Cocoa(事件)或CoreGraphics + Cocoa。在Cocoa事件模型中,故意无法获得对浏览器窗口的引用。现代浏览器几乎都在一个单独的进程中运行插件,并且您无法跨进程引用窗口。

简而言之,如果您要创建一个需要访问浏览器窗口的新NPAPI插件,那么您的设计是错误的。