前回は主なファイルの説明だけだったので今回は使い方を簡単に説明。 初期化して終了するだけの単純なコードは以下のとおり。
program GeckoTest001;
uses nsXPCOMGlue, nsError;
var
rv: Integer;
begin
// 初期化
rv := GRE_Startup;
if NS_SUCCEEDED(rv) then
begin
writeln('GRE の初期化に成功しました。');
// 終了
GRE_Shutdown;
end;
end.
GRE_Startup
関数と GRE_Shutdown
関数は nsXPCOMGlue.cpp
に含まれる同名の関数に参照カウントを追加してを Delphi に移植したものである。
ほかにも nsXPCOMGlue.pas
に含まれる関数の多くは Mozilla のソースコードから移植されている。
このコードが正しく処理されるために必要な条件は次のいずれかである。
- 実行ファイルが Mozilla をインストールしたディレクトリ内にある。
- 実行ファイルが GRE をインストールしたディレクトリ内にある。
- 環境変数
USE_LOCAL_GRE
が定義されておらず、かつ GRE のインストール情報がレジストリに記述されている。
GRE_Startup
を使う利点は、 Mozilla のディレクトリに実行ファイルを置く必要がない点だ。
適切なバージョンの GRE さえインストールしてあれば Mozilla のコピーをいくつも作る必要も、 Mozilla のディレクトリを汚すこともなくなる。
オリジナルの GRE_Startup
に含まれるコードは GRE のバージョンを決め打ちしていて、外部から参照する際に特定のバージョンがインストールされていなければ使用できなかったが、
Delphi 移植版はバージョンと日付が新しい GRE が見つかればそれを使用することにしている。
バージョンについては nsConsts.pas
にて記述してある。
逆に本来は gre.config
ファイルなどに適切な設定をすることで外部のものを参照できるはずだが、
Delphi には移植していない。
Windows 環境ではまず使わないだろうし。
初期化編はとりあえず説明終わり。
Plz translate to english... I don`t know english but if you translate, i try to understand (from Russia)