Итак, кто-то где-то пытается создать какой-то объект, который, по его мнению, ему необходим для выполнения своей работы. Это может быть или не быть объектом Visual Studio. Поскольку он проявляется в диалоге «Сохранить / Открыть», он вполне может быть объектом оболочки.
Наиболее вероятным объяснением является то, что запись реестра для объекта была каким-то образом повреждена, или dll, которая экспортирует объект, повреждена каким-то образом. Для последнего он может отсутствовать полностью или просто по какой-то причине в плохом состоянии.
Одна вещь, которую вы можете попробовать сделать, это запустить regsvr32 на вероятных библиотеках-кандидатах, но это просто выстрел в темноте.
Другой, более продвинутый вариант - подключить отладчик (например, ntsd или windbg) к самому процессу Visual Studio и установить точку останова на CoCreateInstance () в системной dll (убедитесь, что его точную сигнатуру ищите в заголовочный файл - он может быть # определен для чего-то еще). Затем получите GUID для объекта, который он передает в качестве аргумента CoCreateInstance (). Поиск этого в вашем реестре (или в реестре друзей, у которого нет этой проблемы) должен дать вам хорошее представление о том, с какой DLL вам нужно связываться.