J'essaie d'écrire un gestionnaire de miniatures Windows Explorer pour notre type de fichier personnalisé. Cela fonctionne bien pour le volet de prévisualisation, mais j'ai du mal à le faire fonctionner pour les vignettes.Le fournisseur de miniatures ne fonctionne pas
Windows ne semble même pas essayer d'appeler le point d'entrée DllGetClassObject.
Avant de poursuivre, notez que j'utilise Windows 7 et C++ non géré.
Je me suis inscrit les valeurs suivantes dans le Registre:
HKCR\CLSID\<my guid>
HKCR\CLSID\<my guid>\InprocServer32 (default value = path to my DLL)
HKCR\CLSID\<my guid>\InprocServer32\ThreadingModel (value = "Apartment")
HKCR\.<my ext>\shellex\{E357FCCD-A995-4576-B01F-234630154E96} (value = my guid)
J'ai aussi essayé d'utiliser l'échantillon SDK Win, et qui ne fonctionne pas. Et aussi le projet exemple dans cet article (http://www.codemonkeycodes.com/2010/01/11/ithumbnailprovider-re-visited/), et cela ne fonctionne pas.
Je ne connais pas encore la programmation shell, donc je ne suis pas vraiment sûr de la meilleure façon de le déboguer. J'ai essayé d'attacher le débogueur à explorer.exe, mais cela ne semble pas fonctionner (les points d'arrêt sont désactivés, et aucun de mes OutputDebugStrings ne s'affiche dans la fenêtre de sortie). Notez que j'ai essayé de définir le "DesktopProcess" dans le registre comme décrit dans les docs WinSDK pour le débogage du shell, mais je ne vois toujours qu'un explor.exe dans le gestionnaire de tâches - de sorte que "peut" être pourquoi je ne peux pas le déboguer ??
Une aide avec ceci serait grandement appréciée!
Cordialement, Dan.
Salut. J'utilise x64 Windows7. Comme ce n'est pas seulement votre échantillon qui ne fonctionne pas pour moi - ce sont les échantillons MS et mon propre code qui ne fonctionne pas non plus - je suppose qu'il y a quelque chose d'autre. Comme je suis novice dans la programmation de shell Windows (mon expérience concerne le développement d'applications et de jeux), je ne connais pas vraiment la meilleure façon de le déboguer. J'ai essayé d'attacher mon débogueur (MS VS 2005) à explorer.exe, mais je ne vois aucun de mes journaux de trace. – Dan
Une question stupide, et je suis sûr que vous n'avez pas oublié cela, mais avez-vous vous inscrire DLL avec la version 64bit de regsrv32? – Jeremy
Oui, j'ai tapé explicitement dans \ windows \ system32 \ regsvr32.exe. Savez-vous à quel moment Windows devrait appeler ma fonction DllGetClassObject? Il serait utile de voir si cela va arriver. – Dan