Я только что понял: что MS хочет, чтобы мы сделали для каждого пользователя переопределение самого отображения файла - то есть .foo -> что? НЕ создавайте никаких progID, которые должны быть созданы только установщиком, которые удаляются их деинсталлятором, поэтому никаких «висячих ProgID» - только «висячих файловых сопоставлений», которые отображаются на отсутствующий ProgID, который MS явно заявляет, - ОК.
Перед установкой:
HKCR \ .txt -> HKCR \ txtfile (глобальный)
После установки:
HKCR \ .txt -> HKCR \ MyEditor.text.1 (глобальный)
Пользователь решает, что он хочет сопоставить файлы .txt с TextPad:
HKCU \ Software \ Classes \ .txt -> HKCR \ TextPad.txt (только этот пользователь, все еще в глобальном масштабе .txt-> MyEditor.text.1)
После удаления:
HKCR \ .txt x-> HKCR \ MyEditor.text.1 (глобальный, но ключ HKCR \ MyEditor.txt.1 был удален)
И единственный пользователь, который отвергает свое значение, все еще в порядке, потому что, где бы его индивидуальная копия .txt не была действительной или нет, в любом случае, Microsoft обрабатывает ее.
Я надеюсь, что это помогает другим ...