Domanda

Ho creato un'estensione della shell di Windows usando ATL (Visual Studio 2008). Ha i seguenti moduli e ogni modulo è un oggetto semplice ATL separato con il proprio file .rgs per la registrazione: -

  1. IShellFolder / IShellView - > Per un'unità virtuale in Windows Explorer
  2. IContextMenu / IShellExtInit - > Per un menu popup file e cartelle
  3. IShellIconOverlayIdentifier - Per visualizzare le icone di sovrapposizione su file e cartelle
  4. IShellPropSheetExt / IShellExtInit - > Per una pagina delle proprietà personalizzate in File & amp; Proprietà della cartella

Quanto sopra funziona bene in WinXP e sono in grado di eseguire il debug di questa estensione shell in WinXP. Ma non appena passo a Vista, ricevo solo le chiamate di metodo per (2) e (4). L'unità viene creata in Esplora risorse ma i metodi sottostanti non vengono chiamati quando faccio clic su di esso. Anche se quando faccio clic con il tasto destro, mi viene richiesto (2) e quando seleziono " Proprietà " per un file o una cartella ottengo il codice per (4).

C'è qualche interfaccia che mi manca per (1) e (3) su Vista. Non sono riuscito a trovare la documentazione completa e dettagliata sulla scrittura di Shell Extensions per Vista su MSDN. Avevo già esaminato gli articoli di CodeProject sulle estensioni della shell.

È stato utile?

Soluzione

Il problema era dovuto all'utilizzo di un puntatore SMART Xml. Si sono verificati problemi quando è stato chiamato Release ().

Controlla questo link Internet Explorer si arresta in modo anomalo quando MSXML2 :: IXMLDOMDocumentPtr - > Release () si chiama

Altri suggerimenti

Assicurati che le tue estensioni gestiscano correttamente l'inizializzazione, altrimenti verclsid.exe non permetterà che l'estensione venga caricata. verclsid.exe carica prima le estensioni della shell e le verifica rapidamente prima di inviare un "ok" alla shell indicando che è sicuro caricare l'estensione.

Vedi qui per alcuni dettagli su verclsid.exe.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top