我正在将 JS 的侦听器注册到 NPAPI 插件。为了不多次注册同一个侦听器,我需要一种方法来将传递的 NPVariant 对象与列表中已经存在的对象进行比较。
这就是我从 JS 注册监听器的方式:
PluginObject.registerListener("event", listener);
然后在插件源中:
for (l=head; l!=NULL; l=l->next) {
// somehow compare the listeners
// l->listener holds NPVariant object
if (l->listener-> ??? == new_lle->listener-> ???)
{
found = 1;
DBG("listener is a duplicate, not adding.");
NPN_MemFree(new_lle->listener);
free(new_lle);
break;
}
}