Developの最近のブログ記事

What is mod_setenvdnsbl

The mod_setenvdnsbl is an Apache module that looks up DNSBL requests for target IP address and set those results to environment variables. With this module, you can control access permission of black listed hosts.

Download files

mod_setenvdnsbl-0.1.tgz
4686 Bytes

SimpleDownload downloads the target URI to any folder. Then if the request is http, response headers are shown in list box.

SimpleDownload

Download SimpleDownload.zip

Gecko SDK for Delphi project was registered to SourceForge.net. It contains:

  • Gecko wrapper and utilitiy classes
  • VCL Components
  • command line utilities (xpidlpas)

SDK の説明にもいい加減飽きたので SDK を使って実際に何かをしてみる事にしよう。 わかりやすいのはやはりブラウザだろう。 そういうわけで最小限のコードでブラウザのようなものを作ってみた。 Delphi 版 GeckoSDK の中身をライブラリパスの通ったフォルダに入れておくこと。 最小のブラウザは以下のコードで実現する。

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

今回はサービスの使い方について説明をする。 前回のコンポーネントとの違いは、サービスはプロセスの中でただ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 に含まれる内容から構成されている。 含まれる主なァイルは以下の通り。

このアーカイブについて

このページには、過去に書かれたブログ記事のうちDevelopカテゴリに属しているものが含まれています。

次のカテゴリはGeckoです。

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