UserChoice\Progid
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.EXT\UserChoice というレジストリキーの下にProgidという名前の値があると、その値の内容が拡張子.EXTに対するProgIDとみなされるらしい。HKEY_CLASSES_ROOT\.EXTの@よりも優先して。
ここには、おなじみのEXT_auto_fileというProgIDの他に、Application\program.exeという文字列が設定されることもある様子。こんな\を含んだ文字列は、COMのProgIDとして許されないはずなのだが。
また、このUserChoiceというキーは、ユーザーがエクスプローラーのGUIでデフォルトアプリケーションを変更したときにできるらしいことがわかったが、変更しても常にできるわけでもなさそう。このキーが作られる条件は不明。謎が多い。
MSDNのどこにも、そんなこと書いてない(と思う。ずいぶん探したけど)。googleで探しても、このレジストリキーに関して大勢の人が混乱している様子はわかったが、ちゃんとした説明はみつからない。
ってか、問題になるレジストリキーで探すというのは、答えがわかったからできることで、トラブルの原因を探してるときにはそんな検索は不可能だし。
ってことで、結局、これに起因するバグの解決に2ヶ月以上かかったのでした。
あーあ。
MobiHandlerを試してくれたけど、うまく動いていない人(特に、.azw/.mobiに対応するビューアープログラムを複数種類インストールしていて、デフォルトアプリを切り替えている人)は、いつものSkyDriveのページから、バージョン1.1.1268をダウンロードしてお試しください。上の現象の対策が入っています。
« くださいコピーして登録ウィンドウにキーの下を貼り付けます | トップページ | LINQ »


コメント