0

ヘッダー ファイルはhttp://code.google.com/p/npapi-sdk/source/browse/?r=7#svn%2Fwikiから入手しました。

したがって、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 を使用することはこの特定のプロジェクトにとって素晴らしいアイデアだとは思いません。よろしくお願いいたします。

4

1 に答える 1

1

NPClassesの関数を自分で実装する必要があります。それらは、スクリプト可能なオブジェクトの動作を定義します。Taxlians NPAPI チュートリアルのパート 3でこれについて説明しています。

関数テーブルを介して受け取る関数は、ブラウザーを呼び出すためのものです (既に実装されています)。たとえば、 sbrowserに関する情報を取得するためなど です。NPObjecthasmethod

ただし、 のような関数宣言NPN_HasMethod()を使用したい場合は、実装する必要がありbrowserますHasMethod()

于 2012-07-25T17:47:14.867 に答える