« Gecko Plugin API Reference « Plug-in Side Plug-in API
概要
ウィンドウを作成したり、移動したり、サイズを変えたり、破棄したときにプラグインに告知します。
文法
#include <npapi.h> NPError NPP_SetWindow(NPP instance, NPWindow *window);
パラメータ
この関数は以下のパラメータを取ります:
- instance
- 現在のプラグインのインスタンスへのポインタ。組み込みかフルスクリーンでなければいけません。
- window
- インスタンスの描画するウィンドウへのポインタ。window 構造体はウィンドウハンドルや左上の角の値、幅、高さやクリッピングの長方形を含みます(以下の Unix に関する注を参照してください)。
戻り値
- 成功ならば、この関数は NPERR_NO_ERROR を返します。
- 失敗ならば、プラグインは読み込まれず、この関数はエラーコードを返します。返しうる値については、エラーコードを参照してください。
説明
描画を始められるようにインスタンスの作成の後にブラウザは NPP_SetWindow
を呼びます。後のSubsequent calls to NPP_SetWindow
への呼び出しはサイズや位置の変化を示します; これらの呼び出しでは毎回同じ NPWindow オブジェクトを渡しますが、違う値を持っています。ウィンドウハンドルが null に設定されているならば、ウィンドウは破棄されます。この場合、プラグインはウィンドウに更なる画像処理をどのようなものであっても行ってはならず、すべての関連づけられたリソースを開放すべきです。
NPP_SetWindow
内で渡されるデータ構造体は NPWindow オブジェクトであり、それにはインスタンスの領域の座標や多様なプラットフォーム固有のデータが含まれています。このウィンドウはインスタンスが生きている間か、異なる値で再び NPP_SetWindow
が呼ばれるまで有効です。
Windows や Unix 上でのウィンドウを持つブラグインに対しては、window パラメータはブラウザウィンドウ階層のサブウィンドウへのハンドルを含みます。Mac OS 上では、このフィールドは NP_Port 構造体を指します。ウィンドウを持たないプラグインに対しては、それは描画可能なものへのプラットフォーム 固有のハンドルです。
window パラメータを新しいウィンドウを指すように設定する前に、すべての変化を把握するために新しいウィンドウについての情報を(存在すれば)前のウィンドウと比較するのはいい考えです。
注: NPP_SetWindow はウィンドウ内に描画される組み込み (NP_EMBED) かフルスクリーン (NP_FULL) プラグインに対してのみ役立ちます。表示されないプラグインに対しては無意味です。