NPP_Destroy

by 1 contributor:

« Gecko Plugin API Reference « Plug-in Side Plug-in API

概要

プラグインの特定のインスタンスを削除します。

文法

#include <npapi.h>
 
NPError NPP_Destroy(NPP instance, 
                    NPSavedData **save);

パラメータ

この関数は以下のパラメータを取ります:

instance
削除するプラグインのインスタンスへのポインタ。
**save
このプラグインの同じ URL にある新しいインスタンス用に保存する状態や他の情報。NPP_New に渡します。

戻り値

  • 成功すれば、この関数は NPERR_NO_ERROR を返します。
  • 失敗すれば、プラグインは読み込まれず、この関数はエラーコードを返します。返しうる値については、エラーコードを参照してください。

説明

NPP_Destroy はプラグインに結びつけられたインスタンスのデータやリソースを解放します。プラグインのインスタンスが削除されたとき、典型的にはユーザがページを去ったとき、ウィンドウを閉じたとき、プラウザを終了したときに、ブラウザはこの関数を呼びます。このときにプラグインの instance->pdata に保存されているプライベートのインスタンス固有の情報をすべて削除すべきです。

この関数がプラグインの最後のインスタンスを削除することになるならば、続いて NP_Shutdown が呼ばれます。NP_Shutdown を使うことで、NP_Initialize で割り当てられプラグインのすべてのインスタンスで共有することを意図したすべてのデータを削除してください。

状態や他の情報の一部を保存して再利用したければ、オプションの save パラメータを使ってください。ユーザが前のページに戻った際には、この情報はプラグインの新しいインスタンスが NPP_New で作成されたならば、この情報はそのインスタンスに渡されます。

この関数で重要な情報を保存しようとするのは避けてください。 NPP_Destroy が戻ったとき NPSavedData 構造体の buf フィールドの所有はプラグインからプラウザへと渡されます。ブラウザはフィールドのサイズやユーザのページ履歴のような恣意的な基準に基づいてこのデータを保存することができますし、するでしょう。

保存されたデータが捨てられたときにブラウザがクラッシュしたりメモリがリークしないようにするため、NPSavedDatabuf フィールドは NPN_MemAlloc で割り当てられたフラットな構造体(割り当てられたサブ構造体をもたない単純な構造体)であるべきです。

Mac OS

このプラグインが後で再作成されたとき状態情報を元に戻したいならば、NPSavedData 構造体を作成するために NP_MemAlloc を使ってください。

注:インスタンスのウィンドウはもはや有効であると保証されていないので NPP_Destroy 内ではいかなる描画操作も行なうべきではありません。

関連項目

NPP_New, NP_Shutdown, NPP, NPN_MemAlloc, NPSavedData

ドキュメントのタグと貢献者

タグ: 
Contributors to this page: Nog
最終更新者: Nog,