Нужно ли самому внедрять функции NPN?
Я получил заголовочные файлы от: http://code.google.com/p/npapi-sdk/source/browse/?r=7
Поэтому в методе 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 было бы отличной идеей для этого конкретного проекта. Заранее спасибо за помощь
1 ответ
Вам нужно реализовать функции для вашего NPClass
Они сами определяют поведение ваших объектов сценариев. Третья часть руководства NPAPI таксистов описывает это.
Функции, которые вы получаете через browser
Таблица функций предназначена для вызова в браузер (и уже реализована там), например, для получения информации о NPObject
с hasmethod
и т.п.
Однако объявления функций, такие как NPN_HasMethod()
должны быть реализованы вами, если вы хотите их использовать, при простейшем вызове соответствующих функций в browser
как вы показали HasMethod()
,