Проблема отладки расширения оболочки в Vista (IShellFolder)
-
05-07-2019 - |
Вопрос
Я создал расширение оболочки Windows с помощью ATL (Visual Studio 2008). Он имеет следующие модули, и каждый модуль представляет собой отдельный простой объект ATL со своим собственным файлом .rgs для регистрации: -
<Ол>Вышеописанное прекрасно работает в WinXP, и я могу отлаживать это расширение оболочки в WinXP. Но как только я переключаюсь на Vista, я получаю только вызовы методов для (2) и (4). Диск создается в проводнике Windows, но основные методы не вызываются, когда я нажимаю на него. Хотя, когда я щелкаю правой кнопкой мыши, меня вызывают (2) и когда я выбираю " Свойства " для файла или папки я получаю код (4).
Есть ли какой-то интерфейс, который мне не хватает для (1) и (3) в Vista. Я не смог найти полную и подробную документацию по написанию Shell Extensions для Vista на MSDN. Я уже просмотрел статьи CodeProject о расширениях оболочки.
Решение
Проблема была из-за использования XML-указателя SMART. У него были проблемы при вызове Release ().
Проверьте эту ссылку Сбой Internet Explorer, когда MSXML2 :: IXMLDOMDocumentPtr - > Release () называется
Другие советы
Убедитесь, что ваши расширения правильно обрабатывают инициализацию, иначе verclsid.exe не позволит вашему расширению загрузиться. verclsid.exe сначала загружает расширения оболочки и быстро проверяет их, а затем отправляет в оболочку сообщение «ok», указывающее на безопасность загрузки расширения.
Смотрите здесь некоторые сведения о verclsid.exe.