気になって仕事が手につかない
X40出た!
Masaaki Shibata blog
X40出た!
そんなこんなで、しばらくCOMオブジェクトと戯れていたのですが、もう飽きました(笑)。ダイアログにIEのブラウザコンポーネントを埋め込んでWebサイトを表示させたりできたわけですが、どうせまあこの調子で画像やムービーをWZで表示させたりできるのでしょう。そんなことよりstrhist2がペーストでまだ落ちる問題とか、Known Bugsとか、やるべきことはたくさんあるんだった。
とりあえず、今回の成果として、TX-CからCOMするのに必要な定義(といってもさわりだけですが)をまとめたヘッダ、IEのブラウザコンポーネント(IWebBrowser2)を利用するための定義をまとめたヘッダ(これだけはこの先も使うような気がしたので)、さらにそれらを使ってダイアログにブラウザコンポーネントを埋め込んだマクロのサンプル、ついでに前回のbsdef.txcとvshelp.txcもまとめてアーカイブしておきました。よろしければご自由にお使いくださいませ。
寄り道をしているわりには、そんなに余裕があるわけでもなかったり。さあ、労働者しなくては。
[2003-11-23] の「Microsoft Bookshelf Version 3.0 でWZから単語検索」の続き。
あのような、TX-CでWSHのスクリプトコードをせこせこ生成してそれを実行するという方式が最近では結構増えてきましたが、これはこれで「なんだかなぁ」という気になるのも確か。できればTX-Cのみの力によって実現できたほうが、達成感はあります(換言すれば、純粋に気持ちの問題)。
TX-Cから直接COMオブジェクトをいじれないかと、MSDNの記事等を調べて挑戦してみたところ、なんとか動くところまで持っていけました。
アーカイブに今回行った手順のメモを同梱しておきました。たぶんネタ的には上級者向けのトピックだと思われるので、意味不明でもご安心ください。あなたは正常です。
とはいえ、前回も書いたとおり、Bookshelfは、アプリを問わずにホットキーで範囲選択中の単語を検索できるので、これは言ってみれば、わざわざもっとも険しい道を通ってゴールにたどり着くようなもの。本命はCOMを介さないとできないと思われる処理、例えば……。
Visual Studio .NETのヘルプ、「Visual Studio .NET 連結ヘルプ コレクション」は、Microsoft Document Explorer (dexplore.exe)というアプリケーションを介した新しい形式のものになっています。これまでのWinHelpやHTML Help形式ではWin32 APIを使えば呼び出せたのですが、dexplore.exeにはそれらしきAPIはない模様。すでにCOMインタフェースが用意されていることは知っていたのですが(cf. DExplore COM Interface)、こいつはBookshelfの場合と違って、呼び出し元のインスタンスが終了すると自動的にウィンドウも破棄されてしまうので、WSHのスクリプトを書いてそれを走らせるという方法が使えなかったのです(単語を検索させることはできるが、スクリプトが最後まで実行された瞬間にwscript.exeとともに消えてしまう)。
それが、今回COMの使い方が見えてきたことでついに実現可能に! って、あんまりひっぱるのもアレなので、能書きはこのへんで。
vshelp.mainを実行すると、カーソル位置の単語を取得して、Visual Studio .NETのヘルプでキーワード検索を行います。よろしければご利用くださいませ。
すごいすごい!(←大はしゃぎ)
アナウンスだけはしておかねば。(←コピペ)
まだペースト時に落ちることがあるようだったので、気になるところに手を入れてみた(弱気)「[最近使った文字列]拡張 2(strhist2)」1.02を公開しました。