0

我的头文件来自: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 对这个特定项目来说不是一个好主意。在此先感谢您的帮助

4

1 回答 1

1

您需要NPClass自己为您的 es 实现这些功能,它们定义了可编写脚本的对象的行为。出租车司机 NPAPI 教程的第三部分涵盖了这一点。

您通过browser函数表接收到的函数用于调用浏览器(并且已经在浏览器中实现),例如获取有关NPObjects 的信息hasmethod等。

但是,NPN_HasMethod()如果您想使用这些函数声明,您需要自己实现它们,最简单的方法是调用相应的函数,browserHasMethod().

于 2012-07-25T17:47:14.867 回答