2002-03-29

ずっと時間が取れなくて、この一週間ぜんぜんTX-Cは触ってません。今週末で、マクロ導入サポートプラグインと、要望をいただいていたので「ビューモード拡張」とを更新できればと思ってます。

ついでですがドラッグ&ドロップって、別にプラグインのウィンドウにでなくて、WZに直接出来たほうが便利だと思う。

というのさださんのご意見(独り言 2002年 3月19日 – 奈良県奈良市某所)。以前、「インターネットショートカットがドロップされたらカーソル位置にそのURLを挿入」というプラグインを作ろうとし(て挫折し)たことがあります。ウィンドウにドロップされたファイル名を取得するのがどうもできなくて……。ベースウィンドウにフックをかけてWM_DROPFILESをつかまえるだけだと思ってたら、テキスト部分にはそもそもそのメッセージが来てないようでした。

あまり優雅じゃない」というご意見もありますが、コンテキストがはっきりしてるので、できてもいいかな、と思ってたんですけど……。

2002-03-21

アーカイブ展開用のDLLを同梱するかしないかの問題を整理。

  1. DLL同梱はなし、ユーザーに自分でインストールしてもらう
    利点
    「統合アーカイバプロジェクト」のunzip32.dllが使えるなら、install.dllも不要になると思われるので、配布するファイルがマクロのソースコード(とドキュメント)のみですむ
    欠点
    そのままでは書庫から直接インストールができない。けっきょく別のアーカイバは必須ということに。
  2. Info-ZIPのDLL(など)をマクロに同梱
    利点
    (うまくマクロをインストールさせることができたとして、)インストールしてしまえばとりあえずZIPファイルのアーカイブは利用可能になる。
    欠点
    マクロ自体の配布ファイルが多くなるのでメンテナンスが面倒。

最近のWindowsはZIPファイルを「圧縮フォルダ」としてエクスプローラからオープンできるので、ZIPだけに対応しててもあんまり意味がないような気もします。(自分のマクロの圧縮形式をZIPにしたのもそれが理由)。それを考えると、「1.」の欠点と「2.」の利点は重大性という点ではやや目減りするかと。つまり、気持ちとしてはDLLを同梱しない方向に傾いてます。unlha32.dll同梱まで示唆していただいたY.Nakamuraさんには申し訳ないですが。

ここのところ「暇さえあればコーディング」状態で、頭の中が(あと部屋の中も)だいぶ混乱してきてます(笑)。ちょっと整頓しなくては。

2002-03-20

LHAおよびCAB形式のアーカイブに対応。ただしこれらについては「統合アーカイバプロジェクト」のアーカイブ展開用DLL(unlha32.dllcab32.dll)の最新版がインストールされている必要があります。

うーん、やっとここまで来たというか……。これで、いまTX-Cライブラリで公開されているマクロのほとんどはウィザードにアーカイブをドロップするだけでインストールできるんではないでしょうか。くせのあるXHTMLプラグインの自動展開書庫も大丈夫(のはず)です。

あとはこのマクロじたいをどうやってインストールさせるか、なんですが……。

追記。unzip32.dllについて、のさださんから、

お仕事で使うのにはライセンス契約が必要なので、なるべくなら使わないほうがいいと思います。

とのご注意をいただいてます(unzip32.dllって – 独り言)が、同梱しているのはInfo-ZIPが公開しているもので、DLLの名前はおんなじですがshoda T.さんが公開されている「統合アーカイバプロジェクト」のunzip32.dllとは別物です。Info-ZIPのものにはライセンス契約はいらないはずです。……ってこれが勘違いだったらえらいことですが。Info-ZIPのライセンスは以下のページで読むことができます。

というか、再配布するためにInfo-ZIPのを使ってるんですが、こちらは「統合アーカイバプロジェクト」のAPIがないのでちょっと使うのが面倒です。わざわざDLLを呼ぶDLLを作ったのにはこの辺の事情もあったりします。

更なる追記。その後、のさださんの「独り言」も追記されてました。

上で書いたのはいらぬ心配だった模様。つっこみ返されていまった(爆)

ところが、いまInfo-ZIPのunzip32.dllREADMEをよく読んでみたら、やはりバイナリのみぽんと再配布するのはまずそうです。READMEにしたがって、UnZip関連のドキュメントも同梱しておきました。

これでとりあえずは大丈夫かな……。配布ファイルが多くなりますね。あるいは、ユーザーに「DLLは統合アーカイバプロジェクトで入手して自分でインストールしてね」といってしまっても(マクロの趣旨的に)大丈夫でしょうかね……。うーん。

……今日は長すぎですね(笑)。これにてひとまず。

2002-03-18

アーカイブの展開には、再配布可能なInfo-ZIPのDLL(unzip32.dll)を同梱するということにしました。そしてこれを呼び出すDLL(install.dll……こんな名前使うとまずいかな)も自作して同梱。これで、うちで配布しているようなZIP形式の書庫については、とりあえずウィザードから直接インストールできるようになりました。install.dllをバージョンアップしていけば、他の形式のアーカイブにも順次対応していけるのではないでしょうか。というか、LHAには是が非でも対応しないとだめですかね……。

今回からファイル数が増えてますので、同梱のinstall.txtを読んで導入・お試しください。作ったDLLが動くか自信ないので(!)、Windowsのバージョンとあわせて動作報告いただけるとすごくありがたいです。

2002-03-13

マクロ導入サポートプラグイン計画についてY.Nakamuraさんから的確なご意見をいただいてます(マウス野郎、吠える – 2002/03/10(Sun) – 更新履歴 – Final β Laboratory)。どうもです。ソースのまっただなかのコメントまで目を通されてたのでびっくりしました(笑)。

ここだ! ここに追加ファイルをドラッグ&ドロップだ! とかまた無茶を言う。

じつはこれは予定していました。ダイアログのウィンドウ・プロシージャ内でDragAcceptFiles(hwnd, TRUE);としてWM_DROPFILESをつかまえて……はい、できあがり♪ 問題は……

無茶ついで。検討事項アーカイブの採用という形で解決されるのなら、ウィザードの1番目に書庫をドロップするとあとは全自動、なんてのができたらすんごいことになりそうです。

これがやはり最高ですよね……。外部DLLの力を借りて実装するのが現実的でしょうが、マクロのソースファイルひとつで動くものにしたいという気持ちが強くあったりします。とはいえ、やはりTX-Cオンリーで書庫操作というのはむちゃくちゃ厳しいです……。

要は、このマクロ自身のインストールをできるだけ簡単なものにしたいわけなのですが、どうしたらいいんでしょう……。どなたか妙案がございましたら、Visitor’s Voiceメールなどからぜひともお教えください。