CLCL を改造中。まれに通知アイコンが追加されない場合があるので、リトライ処理を入れてみた。また、エクスプローラが再起動したときにも、通知アイコンを再登録するようにしてみた。せっかく作ったので、作者にメールを送ってみた。
よく考えると、Unicode ビルドだと、既存のプラグインが使えないかも。
CLCL を改造中。Unicode ビルド時には、デフォルトで UNICODE TEXT を履歴に保存するように変更し、さらにサロゲートペアにも対応させてみた。
最近、クリップボード履歴ツールの CLCL を試している。Unicode テキストがどういう扱いになっているのか、少し気になったので調べてみた。
ソースコードを見たところ、Unicode ビルドにも対応したコードになっていたため、自分で Unicode ビルドしてみたところ、Unicode 固有の文字もメニューで表示できるようになった。
グローバルフック用の DLL のサイズが無駄に大きいのが気になった。ロードアドレスもデフォルトの 0x10000000 のままだったので、適当なアドレスに変更してみた。
TClock Light の派生図を作ってみた。SVG 形式なので、表示するには対応したブラウザが必要。
ベクトル画像を作成するには、何を使うのがよいのだろう。Web ブラウザで直接開ける形式には SVG があるが。OOo をインストールしてあったので、OOo Draw で図を描いて、SVG でエクスポートして、Firefox で開いてみたところ、まともに表示されなかった。一方、Wikipedia で使っている SVG 画像は Firefox でまともに表示される。作成には Inkscape を使っているようなので、Inkscape を試してみることにした。Inkscape で SVG で出力したところ、Firefox で問題なく表示できた。本当は .svgz にすれば、容量が大幅に減るのだが、サーバーが HTTP ヘッダを適切に返さないと Firefox では正しく表示できない上に、ローカルファイルでも同様に表示できないのが困ったところ。
Inkscape で図を描いてみたが、フォントの設定がよく分からない。フォントサイズを変更したつもりなのに、変更されないということが頻発。こういう図ならば PowerPoint で作るのが一番楽かもしれない。(図の出力方法が問題だが。)
VS2005 SP1 に ATL のセキュリティアップデートを適用したときのバージョンを調べてみた。コンパイラバージョンは 14.00.50727.762 で SP1 から変更はないが、CRT のバージョンは 8.0.50727.4053 になっていた。ATL の変更のはずなのに、CRT のバージョンまで変更になるのは不思議だが、SxS の関係で関連する DLL のバージョンは同時に変更してしまう方が都合がよいのかもしれない。
cl.exe のバージョンをまとめてみた。
環境 | バージョン |
---|---|
Visual Studio 6.0 SP6 | 12.00.8804 |
Visual Studio .NET 2003 | 13.10.6030 |
WDK 6000.16386 | 14.00.50727.215 |
WDK 6001.18001 | 14.00.50727.278 |
WDK 6001.18002 | 14.00.50727.278 |
Windows SDK 6.0 (6000.16384) | 14.00.50727.762 |
Visual Studio 2005 SP1 | 14.00.50727.762 |
Windows SDK 6.1 (6001.18000) | 15.00.21022.08 |
Visual Studio 2008 SP1 | 15.00.30729.01 |
Windows SDK 7.0 | 15.00.30729.01 |
WDK 7600.16385.0 | 15.00.30729.207 |
VS2008 SP1 に、この前のセキュリティアップデートを適用したときのバージョンは未確認。
ちなみに現在開発用 PC にインストールしてあるコンパイル環境は、VS6 SP6, VS2003 SP1, WSDK 6.0, WSDK 6.1, WSDK 7.0, WDK 6001.18002, WDK 7600.16385.0。さすがに多くなりすぎた。WSDK 6.1 と WSDK 7.0 は同じコンパイラを共有しているので、WSDK 6.1 を削除してしまおうと思ったのだが、アンインストール時にインストールディスクが必要なようだ。現在、手元にないため保留。
WDK 7.0.0 付属の ATL 7.1 を少し調べてみた。CComVariant::ReadFromStream() の引数が増えていたり、PROP_ENTRY_TYPE, PROP_ENTRY_TYPE_EX が追加されていることから、どうやら先日の ATL の脆弱性は修正済みのように見えるが、確信が持てない。スタティックリンクなら問題ないが、動的リンクだと問題ありということがありそう。SxS でどのバージョンにリンクされているか確認が必要だ。
Windows 7 対応の Windows SDK をインストールしてみた。インストール中に、VC2008 と Debugging Tools for Windows の旧バージョンがインストールされているがどうするかと聞かれた。そのままインストールを続行すると旧バージョンがそのまま使われるとのことだったので、一旦アンインストールしてから再度 Windows SDK を入れ直した。
cl.exe のバージョンを確認したところ、15.00.30729.01 となっており、VC2008 SP1 と同じだった。
Windows SDK v7.0 があれば、v6.1 は必要なさそうだ。
Windows 7 対応の WDK (WDK 7.0.0) が Microsoft Connect で公開されていたことに気付いた。早速ダウンロードしてインストールした。ビルド番号は、7600.16385.0。
ついに Win2k が開発対象 OS から外されてしまったようだ。ヘルプファイルの冒頭には、Win2k 向けのドライバも開発できるようなことが書かれているが、更新が追いついていないだけだと思われる。
同梱の ATL は 3.0 から 7.1 に上がっていた。一方 MFC は 6.0 のままのようだ。この前の ATL の脆弱性が修正済みかどうかは確認していない。cl.exe のバージョンは 15.00.30729.207 だった。
WSH を使って IE で新しいページを開くには、Navigate を使えばよいが、IE7 以降でも今までと同じように新しいウィンドウが開いてしまう。ウィンドウではなくタブを開くには、Navigate2 を使い、
IE.Navigate2(url, 0x0800);
とすればよいようだ。
久しぶりに、FastFile を改良できないかと少し考えてみた。Windows では、ファイル一覧を取得すると同時にファイルの属性も取得できるため、それをキャッシュしておけば属性の取得が大幅に高速化される。一方、Unix 系では、ファイル一覧は readdir を使うが、属性の取得は lstat などを使うため、同じ方法で高速化は期待できない。ただ、シンボリックリンクなどごく一部の属性は readdir で取得できるようだ。FastFile もシンボリックリンクへの対応を考えてみるか?
先月の spam メールの集計結果。着信拒否にならなかった spam が少なくとも 2059通。そのうち、@nifty の迷惑メールフォルダーでも Spam Mail Killer でも spam として認識できなかったものが 2通(0.1%)。