Windows 秘話: 消失して忘れ去られたファイル形式の歴史

Windows 95 で検索条件が保存されていた古いファイル形式の消失に関するヒントやサポートは、ほとんど注目されませんでした。

Raymond Chen

Windows 95 では [ファイルの検索] ダイアログ ボックスを使用するときに、検索条件をファイルに保存して、後で再び同じ条件で検索することができました。このような検索条件を保存したファイルの拡張子は .fnd でした。

.fnd ファイルをダブルクリックすると、[ファイルの検索] ダイアログ ボックスが表示され、保存された検索条件で検索が実行されました。Windows 7 では、このような *.fnd ファイルが機能しなくなったことに気付かれた方がいらっしゃるかもしれません。このファイルのサポートも終了しましたが、通常とは異なる方法で終了しました。

マイクロソフトでは、ファイル形式のサポート終了に関する意見が出ると、どれくらいのユーザーが当該形式のファイルをまだ使用しているかについて広範囲に及ぶ調査を行います。この調査は、サポートを打ち切った場合に、どれくらい深刻な問題が発生するかを判断するために行っています。

現在、このプロセスのメカニズムは、形式化されています。サポート終了のプロセスの一環として、消失の危機に追い込まれているファイル形式を、どれくらいのユーザーがまだ使用しているかを判断するため、Windows に計測装置を追加するプロセスが含まれています (ご自分の意見を伝達するには、カスタマー エクスペリエンス向上プログラムに参加してください)。

ファイルの消失

*.fnd ファイル形式の消失は、通常のプロセスを経ませんでした。というのも、ご存じのとおり、10 年前に想定外の試みが行われていたからです。Windows 2000 では、それ以前のバージョンの Windows で作成された検索条件に関する下位互換性が誤って廃止されました。しかし、驚いたことに、マイクロソフト関係者以外は、そのことに気付きませんでした。このことから、検索条件を実際に使用しているユーザーは、ほとんどいないことが明らかになりました。この情報を得るのに望ましい方法ではないのは明らかですが、これは有益な情報です。

Windows Vista では、検索条件を保存する新しい形式のファイルが導入されました。*.fnd ファイルを開くと、自動で新しい形式に変換されました。このファイルを保存し直すと、新しい形式で保存されました。さらに調査をしたところ、.fnd ファイルは使用されていないことが明らかになりました。もちろん、だれひとりというわけではありませんが。

ですが、ご存じのとおり、*.fnd ファイルを使用するプログラムが 1 つ存在します。このプログラムでは *.fnd ファイルを 1 か所でのみ使用し、その使用方法は、ある特定のエラー パスに依存しています。このプログラムでは、[ファイルの検索] ダイアログ ボックスを開く必要があります。ですが、SHFindFiles 関数を呼び出したり、pidlSaveFile 関数に NULL を渡したりするのではなく、ShellExecute 関数を使用して、アプリケーションに含まれる特殊な *.fnd ファイルを検出します。新しい検索ウィンドウを開いて保存すると作成される *.fnd ファイルを使用することもできますが、そんな簡単な話ではありません。このプログラムでは、0 バイトの *.fnd ファイルを ShellExecute 関数に渡します。

*.fnd ファイルのハンドラーは、SHFindFiles 関数に 2 番目のパラメーターとしてファイルを渡します。これは、SHFindFiles 関数を 0 バイトの *.fnd ファイルで呼び出すという回りくどい方法です。[ファイルの検索] ダイアログ ボックスが開くと、プログラムでは、状態の復元に使用するファイルが指定されていると認識します。おわかりのように、0 バイトのファイルは有効な *.fnd ファイルではないので、[ファイルの検索] ダイアログ ボックスは状態を復元しようとしますが、復元できません。

その結果、[ファイルの検索] ダイアログ ボックスは、既定の状態で表示されます。つまり、単純な処理を回りくどい方法で行っています。意図的に無効なデータを渡し、エラーの処理方法を利用することで、この動作を実現しています。

解決策

Windows 7 では、*.fnd ファイルを *.search-ms ファイルに変換するコードが削除されました。これで、SHFindFiles 関数に渡されるすべての *.fnd ファイルは、破損しているファイルとして扱われ、既定の検索ウィンドウが表示されるようになりました。

Windows XP の古い形式の検索条件のファイルが格納されているディレクトリがある場合は、どうすればよいでしょうか。このようなファイルは、Windows Vista に読み込んで保存し直すことで変換できます。保存し直したファイルは、*.search-ms という新しい形式になるので、Window 7 コンピューターで使用できます。

Raymond Chen

Raymond Chen は自分の Web サイト「The Old New Thing」および同じタイトルの書籍 (Addison-Wesley、2007 年) で、Windows の歴史、Win32 プログラミング、そして黒い粘着テープの幻の修復力について触れています。

 

関連コンテンツ