Namazu-devel-ja(旧)


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

Re: moving OLE filters



From: Ryuji Abe <raeva@xxxxxxxxxxxx> さん曰く
Subject: [namazu-devel-ja] Re: moving OLE filters
Message-ID: <38C3881E.379779EF@xxxxxxxxxxxx>
Date: Mon, 06 Mar 2000 19:27:42 +0900

阿部> > 上記の修正をした後も Windows NT4.0 + ActivePerl Binary build 522 で
阿部> > 
阿部> > % perl /usr/local/bin/mknmz --help
阿部> > Undefined subroutine &excel::mediatype called at (eval 2) line 1.
阿部> > 
阿部> > というエラーになります。filter/win32/ 以下の file名を変えるか、
阿部> > package で file 名を指定するとエラーは無くなるのですが、
阿部> 
阿部> こちらは、フィルター名をoleプレフィックスを
阿部> つけたものに変更しておきました。

ありがとうございます。check out して確かめました。win32 は OLE
方面でいろいろありそうなので、実験してみようとおもいます。

# 私自身も MS-Office ってほとんど使わないのですけど。。。
# 業務からも追放したい。。。;_;

で、もう一点 Win32::OLE 関連なのですが、

(WinNT4.0 上の) mknmz で

% perl /usr/local/bin/mknmz --show-config
読み込んだ設定ファイル: /usr/local/etc/namazu/mknmzrc
システム: MSWin32
Namazu: 2.0.2
Perl: 5.00503
... snip ...
対応メディアタイプ: 
  application/ichitaro4
  application/ichitaro5
  application/ichitaro6
  application/pdf
  application/powerpoint
  application/x-bzip2
  application/x-compress
  application/x-gzip

となります。

WinNT 上では msword.pl や excel.pl で要求されるものは一切持って
いません。msword.pl や excel.pl を msword.plz, excel.plz とちょっ
と名前を変えておくと、

% perl /usr/local/bin/mknmz --show-config
... snip ...
対応メディアタイプ: 
  application/excel        <==
  application/ichitaro4
  application/ichitaro5
  application/ichitaro6
  application/msword       <==
  application/pdf
  application/powerpoint
  application/x-bzip2
  application/x-compress
  application/x-gzip

と msword と excel が win32/ole*.pl の filter で合致するので出て来ます。

sub load_moludes (){
  ... snip ...
    #
    # Windows modules must be loaded first.
    # Because OLE filters have low precedence over normal ones.
    #
    load_win32modules() if $SYSTEM eq "MSWin32";
  ... snip ...
    load_filters(@filters);
}

という順番になっていて、あとから上書きされているからだと思います。
load_win32modules() を最後に書けば OK だったのですが、must be
first ってあるから wvware を OLE で上書きしないようにしているの
でしょうね。

さらにもう一点、今度は MS-Office の入っていない Win95 な PC なの
ですが、

% perl /usr/local/bin/mknmz -C
Win32::OLE(0.1101) error 0x800401f3: "無効なクラス文字列です。" at (eval 9) line 1
Win32::OLE(0.1101) error 0x800401f3: "無効なクラス文字列です。" at (eval 15) line 1
Win32::OLE(0.1101) error 0x800401f3: "無効なクラス文字列です。" at (eval 21) line 1
 ... snip ...

対応メディアタイプ: には、MS-Word や Excel は出ないので幸せです
けど、mknmz を起動するたびに Win32::OLE に叱られます。

# MS 謹製 の MS-Word, excel, powerpoint の各 Viewer は(しょうが
# ないので)いれていますけど。。。これが関係するのかどうかはわか
# りません。

## 各 Viewer が入っているからこうなるのなら問題は無いと思うので
## すが、私の回りではその点を確認できる PC がありません。

しかし、上記2点どうすりゃいいんでしょうねぇ。--ole の復活ぐらい
しか、ちょっと思い付きません。^^;;;

-- 
白井秀行 (mailto:shirai@xxxxxxxxxxxxxxxxxxx)