エクスプローラーの右側には、ファイル情報の「ウィンドウ」(ペイン)があり、ファイルのプレビューなどを表示できる。ここに何を表示するかは、表示メニューの「詳細ウィンドウ」、「プレビューウィンドウ」で切り替える。または、キーボードショートカットを使って、Alt+P(プレビューウィンドウ)、Alt+Shift+P(詳細ウィンドウ)で表示/非表示を切り替えることができる。なお、表示メニューを切り替えておけば、エクスプローラーのウィンドウ右端に選択した項目の表示/非表示を切り替えるボタンが表示される。
さて、このプレビューだが、エクスプローラー用に「プレビュー・ハンドラ」と呼ばれるプログラムを組み込むことで表示可能となる。特定のアプリケーション用のプログラムなので、著名なファイル形式(たとえばテキストやJPEGなど)以外は、アプリケーションの開発者が作る必要がある。
プレビューハンドラは、ファイルの拡張子でどのハンドラを使うのかが決まる。ハンドラは、レジストリに登録されている。拡張子に対応するハンドラプログラムが登録されているが、1つの拡張子ハンドラ登録に対応付けできるハンドラは1つだけである。
ただし、複数の拡張子登録に同一のハンドラを登録することが可能なため、ファイルフォーマットが同じ、異なる拡張子を持つ場合にも対応できる。例えば、JPEGとJPGファイル、のような場合にも、異なる拡張子に同じハンドラを登録する。
プレビューハンドラは、COMコンポーネントとして開発する必要がある。開発は困難というほどではないが、COMの理解が必要など、少しハードルが高い。かつては、Windowsの開発といえば、COMコンポーネントの開発を意味することが多かった。しかし、最近では.NETの利用が進み、COMコンポーネントの開発も下火になりつつある。
レジスタの登録は2カ所に分かれており、拡張子ごとの動作を決めるHKEY_CLASS_ROOTとHKEY_LOCAL_MACHINEにある。それぞれ役割が異なる。HKEY_LOCAL_MACHINEは、
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PreviewHandlers
にプレビューハンドラの登録があり、GUIDをキーとしてAppIDプロパティに、COMコンポーネントのID(Class ID)が登録されている。HKEY_CLASS_ROOTの拡張子には、HKEY_LOCAL_MACHINE側のキーを登録する。2段階でCOMコンポーネントを指定するのは、Class IDの変更を想定してのことだ。
HKEY_CLASS_ROOTには、以下のキーにプレビューハンドラが登録されている。Windows 11 Ver.25H2では、
HKEY_CLASSES_ROOT\“.”<拡張子>\ShellEx\
に「PerceivedType」というプロパティを作り、テキスト値として「text」を値として指定する。これで、その拡張子は、テキストファイルとして認識され、プレビューが表示されるようになる。
ただし、該当の拡張子に、すでに別のプレビューハンドラが定義されていることがある。たとえば、PowerToysの「File Explorer add-ons」は、プログラムソースコードをシンタックスハイライト表示するため、独自のプレビューハンドラを割り当てる。このような場合に、手作業でレジストリを操作すると、表示ができないなどのトラブルになりやすい。もともと、手作業で行うことを想定していない機能なので、作業には十分注意が必要だ。
今回のタイトルネタは、眉村卓の「司政官」シリーズの1編「扉のあくとき」である。同シリーズ、人類が宇宙に進出、さまざまな惑星を植民星として司政官を派遣した。補佐役のロボットを同伴させたが、時代が進むにつれ、補佐役のロボットの役割が増え、さまざまなロボットが作られた。こうしてロボットの階層は複雑になり、どんどん専用化していく。Windowsのレジストリも長年使われている間に複雑化して手動での編集が難しくなっていく。司政官とは、古代ローマの執政官などの官僚機構をモデルにしたものと考えられる。執政官はローマの元首にあたり、2人組で政治と軍務を担当した。
