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;
}
}