Есть программа, которая установлена для всех пользователей, а есть для текущего пользователя. Я знал, что ветка HKEY_LOCAL_MACHINE - для всех пользователей, а HKEY_CLASSES_ROOT для текущего, но решил проверить, является ли ветка HKEY_CLASSES_ROOT зеркалом HKEY_LOCAL_MACHINE\SOFTWARE\Classes, экспортировав привёл пути к общему имени, нашёл разницу. Выяснил, что HKEY_CLASSES_ROOT использует ветки HKEY_LOCAL_MACHINE\SOFTWARE\Classes и HKEY_CURRENT_USER\Software\Classes, но последняя является приоритетней HKLM, значит проверять нужно по HKEY_CLASSES_ROOT, как расширение так и связанное имя.