我从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对于这个特定项目来说是一个好主意。在此先感谢您的帮助
答案 0 :(得分:1)
您需要自己实现NPClass
es的功能,它们定义了可编写脚本的对象的行为。 Part three的紫杉醇类NPAPI教程涵盖了这一点。
您通过browser
功能表收到的功能用于调用浏览器(并已在那里实现),例如:通过NPObject
等获取有关hasmethod
的信息
然而,如果您想要使用NPN_HasMethod()
这样的函数声明需要由它实现,最简单的就是调用browser
中的相应函数,如您在HasMethod()
中所示