Как правильно выгрузить DLL расширения оболочки C++

У меня есть DLL расширения оболочки , написанная на C++ и COM DLL регистрируется и загружается в память. Моя программа установки обновления сделает следующее:

  • Отмените регистрацию dll расширения оболочки, уничтожьте explorer.exe
  • Скопируйте более позднюю версию dll расширения оболочки (Шаг 2)
  • Запустите explorer.exe

Это работает нормально. Но проблема в том:

Если пользователь открыл какие-либо другие приложения (Internet Explorer, иногда диспетчер задач Windows, блокнот и т. д. ), шаг Шаг 2 не выполняется.

Есть ли способ закрыть все хуки dll расширения оболочки при обновлении dll.

В dll я использую GetOverlayInfo, контекстное меню, подключение к базе данных и т. д.

7
задан Xearinox 12 March 2013 в 18:48
поделиться