Domanda

Ho scritto un'estensione Explorer per visualizzare il mio formato di file personalizzato nel riquadro di anteprima. Funziona bene in Windows 7, ma non sembra funzionare a Vista. La stessa DLL gestisce sia le miniature che il riquadro di anteprima. Il lato delle miniature delle cose funziona sia in Vista che in Windows7.

Aggiungendo registri al mio codice, Vistas chiamando solo la mia funzione DllGetClassObject per la classe di miniatura, non la classe di anteprima.

C'è qualcosa di ovvio che Vista fa diversamente a Windows7 quando si chiama le commesse?

Ecco i valori che sto aggiungendo al registro:

HKEY_CLASSES_ROOT\\.<myext>\\(default) = "<myext>.Thumbnail.Handler.1"
HKEY_CLASSES_ROOT\\<myext>.Thumbnail.Handler.1\\ShellEx\\{8895b1c6-b41f-4c1c-a562-0d564250836f}\\(default) = "<myguid>"
HKEY_CLASSES_ROOT\\CLSID\\<myguid>\\(default) = "<myext> Preview Handler"
HKEY_CLASSES_ROOT\\CLSID\\<myguid>\\DisplayName = "@ExplorerPreviewHandler.dll,-101"
HKEY_CLASSES_ROOT\\CLSID\\<myguid>\\Icon = "@ExplorerPreviewHandler.dll,201"
HKEY_CLASSES_ROOT\\CLSID\\<myguid>\\AppID = "{6d2b5079-2f0b-48dd-ab7f-97cec514d30b}"
HKEY_CLASSES_ROOT\\CLSID\\<myguid>\\InProcServer32\\(default) = "<path to my dll>"
HKEY_CLASSES_ROOT\\CLSID\\<myguid>\\InProcServer32\\ThreadingModel = "Apartment"
HKEY_CLASSES_ROOT\\CLSID\\<myguid>\\InProcServer32\\ProgID = "<myext>.Thumbnail.Handler.1"
HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\PreviewHandlers\\<myguid> = "<myext> Preview Handler"},

Dato che il mio dllgetclassObject non viene chiamato, presumo che il problema debba essere a che fare con ciò che sto impostando nel registro? So che le esportazioni DLL vanno bene, poiché funziona per le miniature sia in Vista che Win7 e funziona per il riquadro di anteprima in Windows7.

DLL è X64, così come lo sono sia la mia vista e Win7 OSS. DLL è scritto in C ++ senza ATL.

Grazie per qualsiasi aiuto con questo, Dan.

È stato utile?

Soluzione

Il look reg okayish, solo il ProgID predefinito è manca. Win7 non hanno documentato il comportamento alternativo per la posizione del tasto PreviewHandlers. Purtroppo la documentazione SDK non dicono quello che richiede Vista. Utilizza un tempo Vista articolo della rivista HKLM invece di HKCU. Scommetto che è.

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