Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: win32_ole_filter



寺西です。

Yukio USUDA wrote:
>  
> Yukio USUDA wrote:
> > > >
> > > > 下記にms-officeなしでエラー終了をしなくなったものの
> > > > HEADからのdiffをつけておきます。これでms-officeありでも正常ならcommitします。
> 
> MS-Office97環境では従来どおりの動作をしているようなので今夜にでもcommitします。

手元の環境では(他にも修正したので)うまく動かないこともあったりで、
おや? ってことになっています。
# この修正が問題ということではないとは思うのですが...。

> Tadamasa Teranishi wrote:
> 
> > ところで、use Win32::OLE を eval '' で囲むと UNIX 環境でも
> > (eval '' に囲まれた内容に関係しない他の部分の)文法チェックぐらいは
> > できるので、便利かなとふと思いました。
> > --
> 私もそう思ったのですが
> ほとんどがWin32::OLEで作成したオブジェクトの操作なので
> Perlの文法をチェックしてもなんだかわかりません。

手元の開発環境の都合に依存している話なので、あまり突っ込まれると
返しようがないのですが、Win32::OLE オブジェクトの操作以外のちょっと
したところを直すのに便利かなぐらいの軽い気持ちです。
eval '' があっても、邪魔になることはないと思ったもので。

# まぁ、最終的には Windows で動作確認しないといけないわけなんですけど。
 
> ole*.plフィルタが MS-Officeを操作して動作しているということであれば、

OLE ってそういうものです。

> バージョン違いなどを考慮しつつ動作を制御していくのは至難の業かとおもいます。

Namazu の場合は、対応メディアぐらいしか制御を変えていないです。

また、ソフトのバージョン違いを考慮しつつ動作を制御するという意味で
は、wvWare や xpdf の方が泥沼化しています。
ある時点で、ユーティリティソフトの古いバージョンの対応は切り捨て
ないといけませんね。

> MS-Officeを普通に使っていてもたまに不具合があるのに Perlから頻繁に
> 呼び出してうまく動いているのは奇跡のように思えます。

まぁそうかもしれませんが、建前上 OLE はそうやって操作できる仕組み
(Perl からという意味ではないが)なので、全く考慮されていない
アプリケーションを操作するよりは随分とマシなつくりとなっています。

# DDE とか、マウス操作を記憶して制御するとかよりは。

また、OLE で操作するアプリケーションというのは世の中に沢山あるので、
別に Namazu が特異ということでもありません。(バッチ処理で大量に
処理を行うという意味では特異かもしれません。またそのために起こる
問題があるのは事実ですが。)

さらに OLE 対応アプリケーションなら似たようなフィルタを作ることで
Namazu に対応させることも簡単です。(本当は苦労しそうだけど)
ファイルフォーマットが公開されていないようなものとかの場合は特に。

と、OLE フィルタをここまで持ち上げておいて何ですが、私は OLE 
フィルタは使っていなかったりします。(Windows 版 Namazu もそうは
使っていないのだが) いろいろ問題があるのも事実ですから。
 
個人的には Namazu 2.0.13 は主に UNIX に関するバグ修正を行ってまして、
2.0.14 でやっと Win32 版のバグ修正をやろうかと思っています。
2.0.13 ではほとんど手をつけていない filter/win32/ に対して、
他のフィルタ程度にまでは手を加えたいと思っています。

その上で、以下のような OLE 以外のフィルタについても考えようか
と思っていました。(2.0.15 以降でという感じですね。)
# あくまでも、私の予定なので他の方が 2.0.14 で対応していただいて
# も何ら問題ありません。

最低限 OLE フィルタぐらいは用意しておく必要はあるだろう、その上で
他のフィルタを使うという選択肢があればよいだろうという考えです。

> 将来的には Win32ネイティブ版のサポートでは
> * UNIX系ツールのうち再配布可能なものは同梱してしまう

こういうのは良いかもしれません。ライセンス的に大丈夫なのはどれ
でしょうね。

> * xdoc2txt利用のフィルタをきちんとメンテナンスしていく

GPL ならもらうという手はあるかと思います。(他にもフィルタってもらった
ものがあるはずなので、そちらの対応が先でしょうけど。)

xdoc2txt はライセンスが特別で、商用利用(といっても、制限はかなり
緩かったはず)の際、気をつけないといけないので、別のフィルタを
使うという選択肢も用意しておく必要があるかとは思います。

> * IndexService が使用している IFilter のdllをPerlから利用(できるのかな)
> といった別のアプローチに注力していった方が生産的ではないかと思います。

実装する技術的問題はないですよ。(DLL を Perl から使うのは GPL 
に引っかかるかどうかはわかりませんが。)

GPL で公開予定はありませんが、手元の環境では IFilter を利用する
フィルタが快適に動いていたりします。
(Windows 9X 系で動くかどうかわからない。)

ただ、IFilter 自体がもう寿命という気もします。
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns@xxxxxxxxxxxxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E