我的头文件来自:http://code.google.com/p/npapi-sdk/source/browse/?r=7#svn%2Fwiki
因此,在Initialize方法中,我存储了一个指向所有浏览器NPN方法的指针,如下所示
static NPNetscapeFuncs* browser;
NPError NP_Initialize(NPNetscapeFuncs* browserFuncs)
{
/* Save the browser function table. */
browser = browserFuncs;
return NPERR_NO_ERROR;
}当我创建我的NPClass结构时,我是否应该像这样分配已经存在的浏览器函数:
struct NPClass class;
class.hasMethod = browser-> hasmethod;
etc.或者,我是否需要使用浏览器函数来实现npruntimeheader中的函数,并以这种方式将它们分配给类。示例: class.hasMethod = NPN_HasMethod;
然后实现如下功能:
bool NPN_HasMethod(NPP npp, NPObject *npobj, NPIdentifier methodName)
{
return browser->hasmethod(npp, npobj, methodName);
}或者运行时标头中的NPN函数已经以某种方式实现了?
我需要用c语言来写这篇文章,我不认为在这个特殊的项目中使用firebreath会是一个好主意。提前感谢您的帮助
发布于 2012-07-26 01:47:15
你需要自己为你的NPClasses实现函数,它们定义了你的脚本化对象的行为。出租车的Part three NPAPI教程涵盖了这一点。
通过browser函数表接收的函数用于调用浏览器(并且已经在浏览器中实现),例如使用hasmethod获取有关NPObject的信息等。
但是,如果您想使用像NPN_HasMethod()这样的函数声明,您需要自己实现它们,最简单的方法就是像您在HasMethod()中展示的那样,在browser中调用相应的函数。
https://stackoverflow.com/questions/11655465
复制相似问题