Проблема отладки расширения оболочки в Vista (IShellFolder) - PullRequest
0 голосов
/ 08 марта 2009

Я создал расширение Windows Shell, используя ATL (Visual Studio 2008). Он имеет следующие модули, и каждый модуль представляет собой отдельный простой объект ATL со своим собственным файлом .rgs для регистрации: -

  1. IShellFolder / IShellView -> Для виртуального диска в проводнике Windows
  2. IContextMenu / IShellExtInit -> Для всплывающих меню файлов и папок
  3. IShellIconOverlayIdentifier - Отображение значков наложения для файлов и папок
  4. IShellPropSheetExt / IShellExtInit -> Для пользовательской страницы свойств в свойствах файла и папки

Вышеописанное прекрасно работает в WinXP, и я могу отлаживать это расширение оболочки в WinXP. Но как только я переключаюсь на Vista, я получаю только вызовы методов для (2) и (4). Диск создается в проводнике Windows, но основные методы не вызываются, когда я нажимаю на него. Хотя, когда я щелкаю правой кнопкой мыши, меня вызывают (2), и когда я выбираю «Свойства» для файла или папки, я получаю код для (4).

Есть ли какой-нибудь интерфейс, который мне не хватает для (1) и (3) в Vista. Я не смог найти полную и подробную документацию по написанию Shell Extensions для Vista на MSDN. Я уже просмотрел статьи CodeProject о расширениях оболочки.

Ответы [ 2 ]

1 голос
/ 19 марта 2009

Проблема была из-за использования XML-указателя SMART. У него были проблемы при вызове Release ().

Проверьте эту ссылку Сбой Internet Explorer при вызове MSXML2 :: IXMLDOMDocumentPtr -> Release ()

0 голосов
/ 08 марта 2009

Убедитесь, что ваши расширения правильно обрабатывают инициализацию, в противном случае verclsid.exe не позволит загружать ваше расширение. verclsid.exe сначала загружает расширения оболочки и быстро проверяет их, а затем отправляет в оболочку сообщение «ok», указывающее на безопасность загрузки расширения.

См. здесь для получения подробной информации о verclsid.exe.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...