CallNPN_ForceRedrawProc(gNetscapeFuncs.forceredraw, instance);
}
+NPIdentifier NPN_GetStringIdentifier(const NPUTF8 *name)
+{
+ int navMinorVers = gNetscapeFuncs.version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return CallNPN_GetStringIdentifierProc( gNetscapeFuncs.getstringidentifier, name);
+ }
+ return NULL;
+}
+
+void NPN_GetStringIdentifiers(const NPUTF8 **names, int32_t nameCount, NPIdentifier *identifiers)
+{
+ int navMinorVers = gNetscapeFuncs.version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ CallNPN_GetStringIdentifiersProc( gNetscapeFuncs.getstringidentifiers, names, nameCount, identifiers);
+ }
+}
+
+NPIdentifier NPN_GetIntIdentifier(int32_t intid)
+{
+ int navMinorVers = gNetscapeFuncs.version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return CallNPN_GetIntIdentifierProc( gNetscapeFuncs.getintidentifier, intid);
+ }
+ return NULL;
+}
+
+bool NPN_IdentifierIsString(NPIdentifier identifier)
+{
+ int navMinorVers = gNetscapeFuncs.version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return CallNPN_IdentifierIsStringProc( gNetscapeFuncs.identifierisstring, identifier);
+ }
+ return false;
+}
+
+NPUTF8 *NPN_UTF8FromIdentifier(NPIdentifier identifier)
+{
+ int navMinorVers = gNetscapeFuncs.version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return CallNPN_UTF8FromIdentifierProc( gNetscapeFuncs.utf8fromidentifier, identifier);
+ }
+ return NULL;
+}
+
+int32_t NPN_IntFromIdentifier(NPIdentifier identifier)
+{
+ int navMinorVers = gNetscapeFuncs.version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return CallNPN_IntFromIdentifierProc( gNetscapeFuncs.intfromidentifier, identifier);
+ }
+ return 0;
+}
+
+NPObject *NPN_CreateObject(NPP instance, NPClass *aClass)
+{
+ int navMinorVers = gNetscapeFuncs.version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return CallNPN_CreateObjectProc( gNetscapeFuncs.createobject, instance, aClass);
+ }
+ return NULL;
+}
+
+NPObject *NPN_RetainObject(NPObject *npobj)
+{
+ int navMinorVers = gNetscapeFuncs.version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return CallNPN_RetainObjectProc( gNetscapeFuncs.retainobject, npobj);
+ }
+ return NULL;
+}
+
+void NPN_ReleaseObject(NPObject *npobj)
+{
+ int navMinorVers = gNetscapeFuncs.version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ CallNPN_ReleaseObjectProc( gNetscapeFuncs.releaseobject, npobj);
+ }
+}
+
+bool NPN_Invoke(NPP instance, NPObject *npobj, NPIdentifier methodName, const NPVariant *args, uint32_t argCount, NPVariant *result)
+{
+ int navMinorVers = gNetscapeFuncs.version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return CallNPN_InvokeProc( gNetscapeFuncs.invoke, instance, npobj, methodName, args, argCount, result);
+ }
+ return false;
+}
+
+bool NPN_InvokeDefault(NPP instance, NPObject *npobj, const NPVariant *args, uint32_t argCount, NPVariant *result)
+{
+ int navMinorVers = gNetscapeFuncs.version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return CallNPN_InvokeDefaultProc( gNetscapeFuncs.invokeDefault, instance, npobj, args, argCount, result);
+ }
+ return false;
+}
+
+bool NPN_Evaluate(NPP instance, NPObject *npobj, NPString *script, NPVariant *result)
+{
+ int navMinorVers = gNetscapeFuncs.version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return CallNPN_EvaluateProc( gNetscapeFuncs.evaluate, instance, npobj, script, result);
+ }
+ return false;
+}
+
+bool NPN_GetProperty(NPP instance, NPObject *npobj, NPIdentifier propertyName, NPVariant *result)
+{
+ int navMinorVers = gNetscapeFuncs.version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return CallNPN_GetPropertyProc( gNetscapeFuncs.getproperty, instance, npobj, propertyName, result);
+ }
+ return false;
+}
+
+bool NPN_SetProperty(NPP instance, NPObject *npobj, NPIdentifier propertyName, const NPVariant *value)
+{
+ int navMinorVers = gNetscapeFuncs.version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return CallNPN_SetPropertyProc( gNetscapeFuncs.setproperty, instance, npobj, propertyName, value);
+ }
+ return false;
+}
+
+bool NPN_RemoveProperty(NPP instance, NPObject *npobj, NPIdentifier propertyName)
+{
+ int navMinorVers = gNetscapeFuncs.version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return CallNPN_RemovePropertyProc( gNetscapeFuncs.removeproperty, instance, npobj, propertyName);
+ }
+ return false;
+}
+
+bool NPN_HasProperty(NPP instance, NPObject *npobj, NPIdentifier propertyName)
+{
+ int navMinorVers = gNetscapeFuncs.version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return CallNPN_HasPropertyProc( gNetscapeFuncs.hasproperty, instance, npobj, propertyName);
+ }
+ return false;
+}
+
+bool NPN_HasMethod(NPP instance, NPObject *npobj, NPIdentifier methodName)
+{
+ int navMinorVers = gNetscapeFuncs.version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return CallNPN_HasMethodProc( gNetscapeFuncs.hasmethod, instance, npobj, methodName);
+ }
+ return false;
+}
+
+void NPN_ReleaseVariantValue(NPVariant *variant)
+{
+ int navMinorVers = gNetscapeFuncs.version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ CallNPN_ReleaseVariantValueProc( gNetscapeFuncs.releasevariantvalue, variant);
+ }
+}
+
+void NPN_SetException(NPObject *npobj, const NPUTF8 *message)
+{
+ int navMinorVers = gNetscapeFuncs.version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ CallNPN_SetExceptionProc( gNetscapeFuncs.setexception, npobj, message);
+ }
+}
/***********************************************************************
return NPP_GetValue(instance, variable, r_value);
}
+NPError
+Private_SetValue(NPP instance, NPPVariable variable, void *r_value)
+{
+ PLUGINDEBUGSTR("SetValue");
+ return NPERR_NO_ERROR; //NPP_SetValue(instance, variable, r_value);
+}
+
JRIGlobalRef
Private_GetJavaClass(void)
{
if (pluginFuncs->size < sizeof(NPPluginFuncs))
err = NPERR_INVALID_FUNCTABLE_ERROR;
}
-
if (err == NPERR_NO_ERROR) {
/*
* the whole structure, because the Netscape function table
* could actually be bigger than what we expect.
*/
+ int navMinorVers = nsTable->version & 0xFF;
+
gNetscapeFuncs.version = nsTable->version;
gNetscapeFuncs.size = nsTable->size;
gNetscapeFuncs.posturl = nsTable->posturl;
gNetscapeFuncs.geturl = nsTable->geturl;
- gNetscapeFuncs.geturlnotify = nsTable->geturlnotify;
gNetscapeFuncs.requestread = nsTable->requestread;
gNetscapeFuncs.newstream = nsTable->newstream;
gNetscapeFuncs.write = nsTable->write;
gNetscapeFuncs.memfree = nsTable->memfree;
gNetscapeFuncs.memflush = nsTable->memflush;
gNetscapeFuncs.reloadplugins = nsTable->reloadplugins;
- gNetscapeFuncs.getJavaEnv = nsTable->getJavaEnv;
- gNetscapeFuncs.getJavaPeer = nsTable->getJavaPeer;
- gNetscapeFuncs.getvalue = nsTable->getvalue;
+ if( navMinorVers >= NPVERS_HAS_LIVECONNECT )
+ {
+ gNetscapeFuncs.getJavaEnv = nsTable->getJavaEnv;
+ gNetscapeFuncs.getJavaPeer = nsTable->getJavaPeer;
+ }
+ if( navMinorVers >= NPVERS_HAS_NOTIFICATION )
+ {
+ gNetscapeFuncs.geturlnotify = nsTable->geturlnotify;
+ gNetscapeFuncs.posturlnotify = nsTable->posturlnotify;
+ }
+ gNetscapeFuncs.getvalue = nsTable->getvalue;
+ gNetscapeFuncs.setvalue = nsTable->setvalue;
+ gNetscapeFuncs.invalidaterect = nsTable->invalidaterect;
+ gNetscapeFuncs.invalidateregion = nsTable->invalidateregion;
+ gNetscapeFuncs.forceredraw = nsTable->forceredraw;
+ if( navMinorVers >= 14 )
+ {
+ // NPRuntime support
+ gNetscapeFuncs.getstringidentifier = nsTable->getstringidentifier;
+ gNetscapeFuncs.getstringidentifiers = nsTable->getstringidentifiers;
+ gNetscapeFuncs.getintidentifier = nsTable->getintidentifier;
+ gNetscapeFuncs.identifierisstring = nsTable->identifierisstring;
+ gNetscapeFuncs.utf8fromidentifier = nsTable->utf8fromidentifier;
+ gNetscapeFuncs.intfromidentifier = nsTable->intfromidentifier;
+ gNetscapeFuncs.createobject = nsTable->createobject;
+ gNetscapeFuncs.retainobject = nsTable->retainobject;
+ gNetscapeFuncs.releaseobject = nsTable->releaseobject;
+ gNetscapeFuncs.invoke = nsTable->invoke;
+ gNetscapeFuncs.invokeDefault = nsTable->invokeDefault;
+ gNetscapeFuncs.evaluate = nsTable->evaluate;
+ gNetscapeFuncs.getproperty = nsTable->getproperty;
+ gNetscapeFuncs.setproperty = nsTable->setproperty;
+ gNetscapeFuncs.removeproperty = nsTable->removeproperty;
+ gNetscapeFuncs.hasproperty = nsTable->hasproperty;
+ gNetscapeFuncs.hasmethod = nsTable->hasmethod;
+ gNetscapeFuncs.releasevariantvalue = nsTable->releasevariantvalue;
+ gNetscapeFuncs.setexception = nsTable->setexception;
+ }
/*
* Set up the plugin function table that Netscape will use to
pluginFuncs->writeready = NewNPP_WriteReadyProc(Private_WriteReady);
pluginFuncs->write = NewNPP_WriteProc(Private_Write);
pluginFuncs->print = NewNPP_PrintProc(Private_Print);
- pluginFuncs->urlnotify = NewNPP_URLNotifyProc(Private_URLNotify);
pluginFuncs->event = NULL;
- pluginFuncs->javaClass = Private_GetJavaClass();
pluginFuncs->getvalue = NewNPP_GetValueProc(Private_GetValue);
+ if( navMinorVers >= NPVERS_HAS_NOTIFICATION )
+ {
+ pluginFuncs->urlnotify = NewNPP_URLNotifyProc(PLUGIN_TO_HOST_GLUE(urlnotify, Private_URLNotify));
+ }
+#ifdef OJI
+ if( navMinorVers >= NPVERS_HAS_LIVECONNECT )
+ {
+ pluginFuncs->javaClass = (JRIGlobalRef) Private_GetJavaClass();
+ }
+#else
+ pluginFuncs->javaClass = NULL;
+#endif
err = NPP_Initialize();
}
pFuncs->writeready = NPP_WriteReady;
pFuncs->write = NPP_Write;
pFuncs->print = NPP_Print;
- pFuncs->getvalue = NPP_GetValue;
pFuncs->event = 0; /// reserved
+ pFuncs->getvalue = NPP_GetValue;
+ //pFuncs->setvalue = NPP_SetValue;
g_pluginFuncs = pFuncs;
*netscape_minor = LOBYTE(g_pNavigatorFuncs->version);
}
-NPError NPN_GetValue(NPP instance, NPNVariable variable, void *result)
-{
- return g_pNavigatorFuncs->getvalue(instance, variable, result);
-}
-
-
/* causes the specified URL to be fetched and streamed in
*/
NPError NPN_GetURLNotify(NPP instance, const char *url, const char *target, void* notifyData)
return g_pNavigatorFuncs->getJavaPeer(instance);
}
+NPError NPN_GetValue(NPP instance, NPNVariable variable, void *result)
+{
+ return g_pNavigatorFuncs->getvalue(instance, variable, result);
+}
+
+NPError NPN_SetValue(NPP instance, NPPVariable variable, void *value)
+{
+ return g_pNavigatorFuncs->setvalue(instance, variable, value);
+}
+
+void NPN_InvalidateRect(NPP instance, NPRect *rect)
+{
+ g_pNavigatorFuncs->invalidaterect(instance, rect);
+}
+
+void NPN_InvalidateRegion(NPP instance, NPRegion region)
+{
+ g_pNavigatorFuncs->invalidateregion(instance, region);
+}
+
+void NPN_ForceRedraw(NPP instance)
+{
+ g_pNavigatorFuncs->forceredraw(instance);
+}
+
+NPIdentifier NPN_GetStringIdentifier(const NPUTF8 *name)
+{
+ int navMinorVers = g_pNavigatorFuncs->version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return g_pNavigatorFuncs->getstringidentifier(name);
+ }
+ return NULL;
+}
+
+void NPN_GetStringIdentifiers(const NPUTF8 **names, int32_t nameCount, NPIdentifier *identifiers)
+{
+ int navMinorVers = g_pNavigatorFuncs->version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ g_pNavigatorFuncs->getstringidentifiers(names, nameCount, identifiers);
+ }
+}
+
+NPIdentifier NPN_GetIntIdentifier(int32_t intid)
+{
+ int navMinorVers = g_pNavigatorFuncs->version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return g_pNavigatorFuncs->getintidentifier(intid);
+ }
+ return NULL;
+}
+
+bool NPN_IdentifierIsString(NPIdentifier identifier)
+{
+ int navMinorVers = g_pNavigatorFuncs->version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return g_pNavigatorFuncs->identifierisstring(identifier);
+ }
+ return false;
+}
+
+NPUTF8 *NPN_UTF8FromIdentifier(NPIdentifier identifier)
+{
+ int navMinorVers = g_pNavigatorFuncs->version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return g_pNavigatorFuncs->utf8fromidentifier(identifier);
+ }
+ return NULL;
+}
+
+int32_t NPN_IntFromIdentifier(NPIdentifier identifier)
+{
+ int navMinorVers = g_pNavigatorFuncs->version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return g_pNavigatorFuncs->intfromidentifier(identifier);
+ }
+ return 0;
+}
+
+NPObject *NPN_CreateObject(NPP instance, NPClass *aClass)
+{
+ int navMinorVers = g_pNavigatorFuncs->version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return g_pNavigatorFuncs->createobject(instance, aClass);
+ }
+ return NULL;
+}
+
+NPObject *NPN_RetainObject(NPObject *npobj)
+{
+ int navMinorVers = g_pNavigatorFuncs->version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return g_pNavigatorFuncs->retainobject(npobj);
+ }
+ return NULL;
+}
+
+void NPN_ReleaseObject(NPObject *npobj)
+{
+ int navMinorVers = g_pNavigatorFuncs->version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ g_pNavigatorFuncs->releaseobject(npobj);
+ }
+}
+
+bool NPN_Invoke(NPP instance, NPObject *npobj, NPIdentifier methodName, const NPVariant *args, uint32_t argCount, NPVariant *result)
+{
+ int navMinorVers = g_pNavigatorFuncs->version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return g_pNavigatorFuncs->invoke(instance, npobj, methodName, args, argCount, result);
+ }
+ return false;
+}
+
+bool NPN_InvokeDefault(NPP instance, NPObject *npobj, const NPVariant *args, uint32_t argCount, NPVariant *result)
+{
+ int navMinorVers = g_pNavigatorFuncs->version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return g_pNavigatorFuncs->invokeDefault(instance, npobj, args, argCount, result);
+ }
+ return false;
+}
+
+bool NPN_Evaluate(NPP instance, NPObject *npobj, NPString *script, NPVariant *result)
+{
+ int navMinorVers = g_pNavigatorFuncs->version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return g_pNavigatorFuncs->evaluate(instance, npobj, script, result);
+ }
+ return false;
+}
+
+bool NPN_GetProperty(NPP instance, NPObject *npobj, NPIdentifier propertyName, NPVariant *result)
+{
+ int navMinorVers = g_pNavigatorFuncs->version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return g_pNavigatorFuncs->getproperty(instance, npobj, propertyName, result);
+ }
+ return false;
+}
+
+bool NPN_SetProperty(NPP instance, NPObject *npobj, NPIdentifier propertyName, const NPVariant *value)
+{
+ int navMinorVers = g_pNavigatorFuncs->version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return g_pNavigatorFuncs->setproperty(instance, npobj, propertyName, value);
+ }
+ return false;
+}
+
+bool NPN_RemoveProperty(NPP instance, NPObject *npobj, NPIdentifier propertyName)
+{
+ int navMinorVers = g_pNavigatorFuncs->version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return g_pNavigatorFuncs->removeproperty(instance, npobj, propertyName);
+ }
+ return false;
+}
+
+bool NPN_HasProperty(NPP instance, NPObject *npobj, NPIdentifier propertyName)
+{
+ int navMinorVers = g_pNavigatorFuncs->version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return g_pNavigatorFuncs->hasproperty(instance, npobj, propertyName);
+ }
+ return false;
+}
+
+bool NPN_HasMethod(NPP instance, NPObject *npobj, NPIdentifier methodName)
+{
+ int navMinorVers = g_pNavigatorFuncs->version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ return g_pNavigatorFuncs->hasmethod(instance, npobj, methodName);
+ }
+ return false;
+}
+
+void NPN_ReleaseVariantValue(NPVariant *variant)
+{
+ int navMinorVers = g_pNavigatorFuncs->version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ g_pNavigatorFuncs->releasevariantvalue(variant);
+ }
+}
+
+void NPN_SetException(NPObject *npobj, const NPUTF8 *message)
+{
+ int navMinorVers = g_pNavigatorFuncs->version & 0xFF;
+ if( navMinorVers >= 14 )
+ {
+ g_pNavigatorFuncs->setexception(npobj, message);
+ }
+}
+