/ / Problem z debugowaniem rozszerzenia powłoki w Vista (IShellFolder) - Windows, rozszerzenia powłoki

Problem z debugowaniem rozszerzenia powłoki w Vista (IShellFolder) - okna, rozszerzenia powłoki

Utworzyłem rozszerzenie powłoki systemu Windows za pomocą ATL (Visual Studio 2008). Ma następujące moduły, a każdy moduł jest oddzielnym prostym obiektem ATL z własnym plikiem .rgs do rejestracji: -

  1. IShellFolder / IShellView -> Dla wirtualnego napędu w Eksploratorze Windows
  2. IContextMenu / IShellExtInit -> Dla plików i folderów menu podręcznego
  3. IShellIconOverlayIdentifier - Aby wyświetlić ikony nakładek w plikach i folderach
  4. IShellPropSheetExt / IShellExtInit -> Dla strony właściwości niestandardowej we właściwościach plików i folderów

Powyższe działa dobrze w WinXP i jestem w staniedebuguj to rozszerzenie powłoki w WinXP. Ale gdy tylko przejdę na Vistę, dostaję tylko wywołania metod dla (2) i (4). Dysk zostanie utworzony w Eksploratorze Windows, ale podstawowe metody nie są wywoływane po kliknięciu. Chociaż po kliknięciu prawym przyciskiem myszy pojawia się polecenie (2) i wybranie „Właściwości” dla pliku lub folderu, wchodzę do kodu dla (4).

Czy brakuje mi interfejsu (1)oraz (3) w systemie Vista. Nie mogłem znaleźć pełnej i szczegółowej dokumentacji na temat pisania Rozszerzeń Shell dla Visty w MSDN. Przeglądałem już artykuły CodeProject na temat rozszerzeń powłoki.

Odpowiedzi:

1 dla odpowiedzi № 1

Problem był spowodowany użyciem SMART Pointer Xml. Wystąpiły problemy, gdy wywołano na nim Release ().

Sprawdź ten link Internet Explorer ulega awarii, gdy wywoływany jest MSXML2 :: IXMLDOMDocumentPtr -> Release ()


0 dla odpowiedzi nr 2

Upewnij się, że Twoje rozszerzenia obsługująinicjalizacja poprawnie, w przeciwnym razie verclsid.exe nie pozwoli załadować rozszerzenia. verclsid.exe najpierw ładuje rozszerzenia powłoki i szybko je sprawdza, zanim wyśle ​​do powłoki „ok” wskazując, że ładowanie rozszerzenia jest bezpieczne.

Widzieć tutaj po szczegółowe informacje na temat verclsid.exe.