Frage

Ich habe eine Explorer -Erweiterung geschrieben, um mein benutzerdefiniertes Dateiformat im Vorschaufel -Bereich anzuzeigen. Dies funktioniert in Windows 7 gut, scheint aber nicht in Vista zu funktionieren. Das gleiche DLL behandelt sowohl Miniaturansichten als auch das Vorschaubersteller. Die Miniaturansichten der Dinge funktionieren sowohl in Vista als auch in Windows7.

Fügen Sie meinen Code Protokolle hinzu und rufen nur meine dllGetClassObject -Funktion für die Miniaturansichtenklasse, nicht die Vorschau -Handler -Klasse auf.

Gibt es etwas Offensichtliches, das Vista bei der Aufruf von COM -DLLs unterschiedlich zu Windows7 macht?

Hier sind die Werte, die ich zur Registrierung hinzufüge:

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"},

Angesichts der Tatsache, dass mein dllgetClassObject nicht angerufen wird, muss das Problem etwas mit dem zu tun, was ich in der Registrierung festlegt? Ich weiß, dass die DLL -Exporte in Ordnung sind, da sie für die Miniaturansichten sowohl in Vista als auch in Win7 funktioniert und für die Vorschau -Reihe in Windows7 funktioniert.

DLL ist X64, ebenso wie meine Vista- und Win7 -OSS. DLL ist in C ++ ohne ATL geschrieben.

Vielen Dank für jede Hilfe, Dan.

War es hilfreich?

Lösung

Die Reg sieht gut aus, nur der Standard -Progid fehlt. Win7 hat ein alternatives Verhalten für den Standort des Vorschiffs -Schlüssels dokumentiert. Leider sagen die SDK -Dokumente nicht, was Vista erfordert. Eine Vista -Zeit Magazin Artikel Verwendet HKLM anstelle von HKCU. Ich wette, das war's.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top