October 2004アーカイブ

Gecko SDK では引数として const char * などの文字ポインタと、 nsAString などの文字列クラスの両方を使う。 文字ポインタは Delphi では AnsiStringWideString と互換性があるためここでは特にふれず、 クラス型の扱いについて説明する。

mozilla.org によると FirefoxRC1 がリリースされたようだ。 リリースノートを見る限りでは Preview Release 版から新しい機能の追加はないようだ。 mozillazine にももし既に 1.0 PR ("機能面での完成版" プレビュー) をダウンロードしていて、テストやバグの報告にあまり興味を持たないということであれば、あと2週間 1.0 PR を使い続け、我々が公式の Firefox 1.0 をリリースしたときにアップグレードするのがよいだろう。とあるためしばらくは様子見をする事にする。 予定通りならば11月9日に正式版が出るのであわててアップグレードをする事もないだろう。

今回はサービスの使い方について説明をする。 前回のコンポーネントとの違いは、サービスはプロセスの中でただ1つのインスタンスを持つ点だ。 ファイル関連で例に挙げると、 nsIFile は個別のファイルを操作するコンポーネントでファイルごとに違ったインスタンスを持つ必要があるが、 nsIDirectoryService は特殊ディレクトリの位置を得るサービスで、得られる情報はプロセスを通じて共通である。 この nsIDirectoryService を取得するコードは次のようになる。

var
  dirSrv: nsIDirectoryService;
begin
  NS_GetService('@mozilla.org/file/directory-service;1', nsIDirectoryService, dirSrv);
end;

前回は GRE の初期化だけで説明が終わったので、今回は XPCOM のコンポーネントの作成方法、使用方法について。 次のコードでは nsILocalFile インターフェースのインスタンスを作成する。

program GeckoTest002;
uses nsXPCOM, nsXPCOMGlue;
var
  localFile: nsILocalFile;
begin
  GRE_Startup;
  NS_CreateInstance('@mozilla.org/file/local;1', nsILocalFile, localFile);
  localFile := nil;
  GRE_Shutdown;
end.

前回は主なファイルの説明だけだったので今回は使い方を簡単に説明。 初期化して終了するだけの単純なコードは以下のとおり。

program GeckoTest001;
uses nsXPCOMGlue, nsError;
var
  rv: Integer;
begin
  // 初期化
  rv := GRE_Startup;
  if NS_SUCCEEDED(rv) then
  begin
    writeln('GRE の初期化に成功しました。');
    // 終了
    GRE_Shutdown;
  end;
end.

Gecko SDK for Delphi

| コメント(0) | トラックバック(0)

C++ には Gecko SDK が存在しているものの Delphi には当然そんなものはない。 そういうわけで作ってしまいました。

C++ 版 Gecko SDK に含まれる内容から構成されている。 含まれる主なァイルは以下の通り。

about nesitive thinking

| コメント(0) | トラックバック(0)

nesitive thinking は Delphi と Mozilla が大好きな necottie が Mozilla や Delphi をいじくり回して気がついた事をだらだらと書きつづっていくサイトである。 Gecko SDK を使って Mozilla の内部を探索していくのが主な目的。 使用言語はもちろん Delphi。

気が向いたときに思いついただけ更新するのでどうか生暖かく見守ってやってください。

このアーカイブについて

このページには、October 2004に書かれたブログ記事が新しい順に公開されています。

次のアーカイブはNovember 2004です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。