C ++: Как правильно зарегистрировать и отменить регистрацию типов файлов для нашего приложения (программно)

Время было, когда вы устанавливали ассоциации файлов в:

HEY_CLASSES_ROOT \ <. Внутр>

Тем не менее, это кажется возможным, но неполное решение больше. В реестре есть дополнительные ассоциации. Например:

HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ KindMap HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Расширения

И все вышеперечисленное, но HKEY_USERS \ И Microsoft добавила апплет панели управления Set Default Association, который контролирует ... что?

Я ищу белую книгу или обсуждения:

«Каким образом современное совместимое с Windows XP-Windows 7 приложение, написанное на C / C ++, должно регистрировать и манипулировать своими файловыми ассоциациями, не вмешиваясь в Проводник, Настройки пользователя или cpl Ассоциаций по умолчанию»

РЕДАКТИРОВАТЬ: я пытаюсь продолжить это расследование с большим количеством вопросов здесь:

Как удалить ProgID из других учетных записей при удалении из Windows?Увы, эта документация все еще актуальна, и все дело в реестре:

Ответы на вопрос(2)

Ваш ответ на вопрос