2003-12-11

もう見てらんない

いや、忙しいんだからむしろ見てなくていいわけですが(>自分)。

#include <windows.h>

void main(TX *text)
{
    information(
        "単語選択時の置換で、常に選択語自身も置換の対象になるように修正します。"
        "プラグインに登録してご利用ください。¥n"
        "注意: yfind など、他の置換関連のプラグインよりも下に登録するようにしてください。");
}

HOOKRESULT CALLBACK hookprocText(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    if (message == WM_TXEVENT && wParam == TXEVENT_IDMEXEC && lParam == IDM_UIREPLACE) {
        TX *text = hwndtextGetText(hwnd);
        if (txIsClipInPara(text) && (txGetAddressSelectTop(text) < txGetAddress(text)))
            txSelectJump(text);
    }
    return HOOK_CONTINUE;
}

void __on_txFrameNew(TX *text)
{
    txSetHookWndproctextTxpcode(text, hookprocText);
}

ダウンロードで済ませたい人はこちら。

置換時に選択語も置換対象にするプラグイン(repcur)
http://www.emptypage.jp/download/repcur.zip

2003-12-07

たまっていた宿題をば。

更新情報

[最近使った文字列]拡張 2」1.03を公開しました。仕事で一週間ほど使ってみた限りでは、ペースト時に落ちることはありませんでしたが、さてどうだか(おい)。ペースト時以外には落ちましたけどね(苦笑)。アウトライン操作時に落ちるのは直ってほしいなあ(>WZ5)。あんまりほかのアプリからのペーストはしなかったので、なんともいえないです。ま、おかしければまた書き直せばいいや。それでも落ちるようなら1432行目の「strhistTextOnPaste(text);」をコメントアウトしてください。

Visual Studio .NETのヘルプをWZから検索するvshelp.txcや、ダイアログでIEコントロールを利用するサンプルが付いている、TX-CからCOMインタフェースにアクセスするためのヘッダファイル、「comtxツール」を更新しました(前振りの長い説明だ)。vshelpは、すでに起動しているヘルプがあればそれを利用するようになりました。その他いろいろ更新してますが、詳細はファイルを見てください(笑)。ダウンロードは [2003-12-01] の記事からどうぞ。

Known Bugsはただいま新しい形式への変換作業中です。XSLTの書き方を忘れている……。

追記。PVも書き直してたのに忘れてました。WZ5でプロジェクトのパスを取得できるように対処したものです。

2003-12-01

若様は新しい玩具をお望み

そんなこんなで、しばらくCOMオブジェクトと戯れていたのですが、もう飽きました(笑)。ダイアログにIEのブラウザコンポーネントを埋め込んでWebサイトを表示させたりできたわけですが、どうせまあこの調子で画像やムービーをWZで表示させたりできるのでしょう。そんなことよりstrhist2がペーストでまだ落ちる問題とか、Known Bugsとか、やるべきことはたくさんあるんだった。

とりあえず、今回の成果として、TX-CからCOMするのに必要な定義(といってもさわりだけですが)をまとめたヘッダ、IEのブラウザコンポーネント(IWebBrowser2)を利用するための定義をまとめたヘッダ(これだけはこの先も使うような気がしたので)、さらにそれらを使ってダイアログにブラウザコンポーネントを埋め込んだマクロのサンプル、ついでに前回のbsdef.txcとvshelp.txcもまとめてアーカイブしておきました。よろしければご自由にお使いくださいませ。

comtxツール(comtx.h, shdocvwtx.h, ie.txc, bsdef.txc, bsdef.txt, vshelp.txcのセット)
http://www.emptypage.jp/download/comtx.zip

寄り道をしているわりには、そんなに余裕があるわけでもなかったり。さあ、労働者しなくては。

2003-11-30

[2003-11-23] の「Microsoft Bookshelf Version 3.0 でWZから単語検索」の続き。

見えてきたCOM(遅)

あのような、TX-CでWSHのスクリプトコードをせこせこ生成してそれを実行するという方式が最近では結構増えてきましたが、これはこれで「なんだかなぁ」という気になるのも確か。できればTX-Cのみの力によって実現できたほうが、達成感はあります(換言すれば、純粋に気持ちの問題)。

TX-Cから直接COMオブジェクトをいじれないかと、MSDNの記事等を調べて挑戦してみたところ、なんとか動くところまで持っていけました。

Microsoft Bookshelf Version 3.0 でWZから単語検索 COM 自力解決版
http://www.emptypage.jp/download/bsdef.zip

アーカイブに今回行った手順のメモを同梱しておきました。たぶんネタ的には上級者向けのトピックだと思われるので、意味不明でもご安心ください。あなたは正常です。

とはいえ、前回も書いたとおり、Bookshelfは、アプリを問わずにホットキーで範囲選択中の単語を検索できるので、これは言ってみれば、わざわざもっとも険しい道を通ってゴールにたどり着くようなもの。本命はCOMを介さないとできないと思われる処理、例えば……。

Visual Studio .NET ドキュメントでWZから単語検索

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の使い方が見えてきたことでついに実現可能に! って、あんまりひっぱるのもアレなので、能書きはこのへんで。

Visual Studio .NET ドキュメントでWZから単語検索
http://www.emptypage.jp/download/vshelp.zip

vshelp.mainを実行すると、カーソル位置の単語を取得して、Visual Studio .NETのヘルプでキーワード検索を行います。よろしければご利用くださいませ。

追記

すごいすごい!(←大はしゃぎ)