Вот решение.
Каждый тип файла (скажем, «.auz» в данном случае) был зарегистрирован с:
- A
DefaultIcon
ключ с путем к значку ресурса и
- Значение для значения
HKEY_CLASSES_ROOT\.auz\(default)
, дающее описание типа файла, например, «Документ Foobar».
В дополнение к этому была запись для типа документа «Документ Foobar», или, более конкретно, ключ для открытия таких документов из оболочки:
HKEY_CLASSES_ROOT\Foobar Document\Shell\command\open\(default) = C:\Path\To\App.exe "%1"
Очевидно, этот ключ заменяет значение, записанное для определенного расширения файла . Поскольку значки являются внешними по отношению к файлу .exe, проводник Windows затем использовал первый значок приложения, чтобы создать значок для всех файлов типа «Документ Foobar» (этот упомянутый значок «белый лист + значок приложения»).
Теперь, что я ошибся, так это то, что само приложение меняет значение
HKEY_CLASSES_ROOT\.auz\(default)
к немного другому значению при запуске, скажем, «Документ Foobar 1.2» (проблема в том, что он не СУХОЙ). Таким образом, ссылка на «Документ Foobar» была утеряна, а файлы .auz получили свои значки после первого запуска.
Итак, я все исправил, просто удалив ключ HKEY_CLASSES_ROOT\Foobar Document
и voilà !