Frage

Ich habe meine Header-Dateien von: http://code.google.com/p/npapi-sdk/source/browse/?r=7#svn%2Fwiki

Daher habe ich in der Initialize-Methode einen Zeiger auf alle NPN-Methoden des Browsers gespeichert

static NPNetscapeFuncs* browser;

NPError NP_Initialize(NPNetscapeFuncs* browserFuncs)
{  
  /* Save the browser function table. */
  browser = browserFuncs;

  return NPERR_NO_ERROR;
}

Wenn ich meine NPClass-Struktur erstelle, sollte ich ihr einfach die bereits vorhandenen Browserfunktionen wie folgt zuweisen:

struct NPClass class;
class.hasMethod = browser-> hasmethod;
etc.

Oder muss ich die Funktionen im npruntimeheader mithilfe der Browserfunktionen implementieren und sie auf diese Weise der Klasse zuweisen?Beispiel:class.hasMethod = NPN_HasMethod;

Und implementieren Sie dann die folgende Funktion:

bool NPN_HasMethod(NPP npp, NPObject *npobj, NPIdentifier methodName)
{
   return browser->hasmethod(npp, npobj, methodName);
}

Oder sind die NPN-Funktionen im Runtime-Header schon irgendwie implementiert?

Ich muss das in C schreiben, und ich glaube nicht, dass die Verwendung von Firebreath für dieses spezielle Projekt eine gute Idee wäre.Vielen Dank im Voraus für Ihre Hilfe

War es hilfreich?

Lösung

Sie müssen die Funktionen für Sie implementieren NPClassWenn Sie es selbst tun, definieren sie das Verhalten Ihrer skriptfähigen Objekte. Teil drei Das NPAPI-Tutorial von Taxilians behandelt dies.

Die Funktionen, die Sie über die erhalten browser Funktionstabellen dienen zum Aufruf in den Browser (und sind dort bereits implementiert), z.B.um Informationen darüber zu erhalten NPObjects mit hasmethod usw.

Allerdings mögen die Funktionsdeklarationen NPN_HasMethod() müssen von Ihnen implementiert werden, wenn Sie sie verwenden möchten. Im einfachsten Fall rufen Sie einfach die entsprechenden Funktionen auf browser wie du mit gezeigt hast HasMethod().

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top