ハングアップの日々

2009年 08月分

2009/08/31

Programming URL memo

URL memo

2009/08/29

CLCL

 CLCL を改造中。まれに通知アイコンが追加されない場合があるので、リトライ処理を入れてみた。また、エクスプローラが再起動したときにも、通知アイコンを再登録するようにしてみた。せっかく作ったので、作者にメールを送ってみた。

 よく考えると、Unicode ビルドだと、既存のプラグインが使えないかも。

2009/08/28

URL memo

2009/08/27

CLCL

 CLCL を改造中。Unicode ビルド時には、デフォルトで UNICODE TEXT を履歴に保存するように変更し、さらにサロゲートペアにも対応させてみた。

2009/08/25

CLCL

 最近、クリップボード履歴ツールの CLCL を試している。Unicode テキストがどういう扱いになっているのか、少し気になったので調べてみた。

  1. 標準状態では、Unicode テキストは履歴に保存されない。
  2. フィルタに "UNICODE TEXT" を追加すると履歴に保存されるようになる。
  3. さらに形式に "UNICODE TEXT" を追加し、関数ヘッダを text_ にすると、ビューワで文字が表示されるようになる。しかし、CLCL は Unicode アプリではないため、Unicode 固有の文字は、表示や編集ができない。
  4. fmt_unicode プラグインを追加すると、ビューワで Unicode 固有の文字も表示・編集できるようになる。しかし、メニューでは正しく表示されない。また、サロゲートペアは正しく扱えない。

 ソースコードを見たところ、Unicode ビルドにも対応したコードになっていたため、自分で Unicode ビルドしてみたところ、Unicode 固有の文字もメニューで表示できるようになった。
 グローバルフック用の DLL のサイズが無駄に大きいのが気になった。ロードアドレスもデフォルトの 0x10000000 のままだったので、適当なアドレスに変更してみた。

URL memo

2009/08/23

TClock Light 派生図

 TClock Light の派生図を作ってみた。SVG 形式なので、表示するには対応したブラウザが必要。

TClock Light 派生図

ベクトル画像

 ベクトル画像を作成するには、何を使うのがよいのだろう。Web ブラウザで直接開ける形式には SVG があるが。OOo をインストールしてあったので、OOo Draw で図を描いて、SVG でエクスポートして、Firefox で開いてみたところ、まともに表示されなかった。一方、Wikipedia で使っている SVG 画像は Firefox でまともに表示される。作成には Inkscape を使っているようなので、Inkscape を試してみることにした。Inkscape で SVG で出力したところ、Firefox で問題なく表示できた。本当は .svgz にすれば、容量が大幅に減るのだが、サーバーが HTTP ヘッダを適切に返さないと Firefox では正しく表示できない上に、ローカルファイルでも同様に表示できないのが困ったところ。
 Inkscape で図を描いてみたが、フォントの設定がよく分からない。フォントサイズを変更したつもりなのに、変更されないということが頻発。こういう図ならば PowerPoint で作るのが一番楽かもしれない。(図の出力方法が問題だが。)

URL memo

2009/08/20

URL memo

2009/08/17

CRT

 VS2005 SP1 に ATL のセキュリティアップデートを適用したときのバージョンを調べてみた。コンパイラバージョンは 14.00.50727.762 で SP1 から変更はないが、CRT のバージョンは 8.0.50727.4053 になっていた。ATL の変更のはずなのに、CRT のバージョンまで変更になるのは不思議だが、SxS の関係で関連する DLL のバージョンは同時に変更してしまう方が都合がよいのかもしれない。

2009/08/12

cl.exe

 cl.exe のバージョンをまとめてみた。

環境バージョン
Visual Studio 6.0 SP612.00.8804
Visual Studio .NET 200313.10.6030
WDK 6000.1638614.00.50727.215
WDK 6001.1800114.00.50727.278
WDK 6001.1800214.00.50727.278
Windows SDK 6.0 (6000.16384)14.00.50727.762
Visual Studio 2005 SP114.00.50727.762
Windows SDK 6.1 (6001.18000)15.00.21022.08
Visual Studio 2008 SP115.00.30729.01
Windows SDK 7.015.00.30729.01
WDK 7600.16385.015.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

 WDK 7.0.0 付属の ATL 7.1 を少し調べてみた。CComVariant::ReadFromStream() の引数が増えていたり、PROP_ENTRY_TYPE, PROP_ENTRY_TYPE_EX が追加されていることから、どうやら先日の ATL の脆弱性は修正済みのように見えるが、確信が持てない。スタティックリンクなら問題ないが、動的リンクだと問題ありということがありそう。SxS でどのバージョンにリンクされているか確認が必要だ。

2009/08/11

Windows SDK

 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 は必要なさそうだ。

WDK

 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 だった。

2009/08/09

IE, WSH

 WSH を使って IE で新しいページを開くには、Navigate を使えばよいが、IE7 以降でも今までと同じように新しいウィンドウが開いてしまう。ウィンドウではなくタブを開くには、Navigate2 を使い、

IE.Navigate2(url, 0x0800);

とすればよいようだ。

2009/08/07

URL memo

FastFile

 久しぶりに、FastFile を改良できないかと少し考えてみた。Windows では、ファイル一覧を取得すると同時にファイルの属性も取得できるため、それをキャッシュしておけば属性の取得が大幅に高速化される。一方、Unix 系では、ファイル一覧は readdir を使うが、属性の取得は lstat などを使うため、同じ方法で高速化は期待できない。ただ、シンボリックリンクなどごく一部の属性は readdir で取得できるようだ。FastFile もシンボリックリンクへの対応を考えてみるか?

2009/08/04

URL memo

2009/08/01

spam

 先月の spam メールの集計結果。着信拒否にならなかった spam が少なくとも 2059通。そのうち、@nifty の迷惑メールフォルダーでも Spam Mail Killer でも spam として認識できなかったものが 2通(0.1%)。

メール受信状況 2009/07


Copyright (C) 2009 K.Takata