Partager via


Gestionnaires de miniatures

Windows Vista utilise davantage les images miniatures spécifiques aux fichiers que les versions antérieures de Windows. Windows Vista les utilise dans tous les affichages, dans les boîtes de dialogue et pour tout type de fichier qui les fournit. D’autres applications peuvent également consommer votre miniature. L’affichage des miniatures a également changé. À présent, un spectre continu de tailles sélectionnables par l’utilisateur est disponible plutôt que les tailles discrètes telles que les icônes et les miniatures fournies dans Windows XP.

Note

Vous pouvez entendre ces miniatures appelées Icônes actives.

 

Les miniatures de résolution 32 bits et aussi grandes que 256 x 256 pixels sont souvent utilisées dans l’interface utilisateur de Windows Vista. Les propriétaires de format de fichier doivent être prêts à afficher leurs miniatures à cette taille. Ils doivent également fournir des images non statiques pour leurs miniatures qui reflètent le contenu du fichier particulier. Par exemple, la miniature d’un fichier texte doit afficher une version miniature du document, y compris son texte.

L’interface IThumbnailProvider a été introduite pour faciliter l’utilisation d’une miniature et plus simple que dans le passé, lorsque IExtractImage aurait été utilisé à la place. Notez que le code existant qui utilise IExtractImage est toujours valide sous Windows Vista. Toutefois, IExtractImage n’est pas pris en charge dans le volet Détails.

Cette rubrique traite des éléments suivants :

Processus miniatures

Les gestionnaires, y compris les gestionnaires de miniatures, s’exécutent par défaut dans un processus distinct. Vous pouvez forcer le gestionnaire à exécuter in-process en passant une valeur NULL comme contexte de liaison dans un appel à IShellItem ::BindToHandler comme indiqué ici :

IShellItem::BindToHandler(NULL, BHID_ThumbnailHandler,..)

Vous pouvez également refuser l’expiration du processus par défaut en définissant l’entrée DisableProcessIsolation dans le Registre, comme illustré dans cet exemple. L’identificateur de classe (CLSID) {E357FCCD-A995-4576-B01F-234630154E96} est le CLSID pour implémentations iThumbnailProvider.

HKEY_CLASSES_ROOT
   CLSID
      {E357FCCD-A995-4576-B01F-234630154E96}
         DisableProcessIsolation = 1

Cache miniature et dimensionnement

Lorsqu’une miniature est nécessaire, Windows vérifie d’abord le cache miniature de l’image. L’extracteur de miniatures est appelé si l’image est introuvable dans le cache. Elle est également appelée lorsque la dernière heure de modification de l’image est ultérieure à celle de la copie dans le cache.

Les images miniatures de ce cache sont stockées dans un ensemble de tailles discrètes. Toutes les tailles sont données en pixels.

  • 32 x 32
  • 96x96
  • 256 x 256
  • 1024x1024

Note

Ces valeurs sont susceptibles de changer. Vous ne devez pas supposer qu’une taille particulière sera toujours utilisée.

 

Si une image n’est pas carrée, vous ne devez pas la remplir vous-même. Windows est responsable du respect des proportions d’origine et du remplissage de l’image à une taille carrée.

Lorsqu’une image d’une taille particulière est demandée, sauf si une correspondance exacte est trouvée, Windows Vista récupère toujours la plus grande image suivante et la met à l’échelle jusqu’à la taille demandée. Une image n’est jamais mise à l’échelle, comme c’était le cas dans les versions précédentes de Windows.

Le tableau suivant fournit quelques exemples de la relation entre la taille demandée et la taille disponible.

Taille maximale de l’image que vous fournissez Taille demandée par l’extracteur Vous fournissez
156x120 256 x 256 156x120 (Ne pas remplir, maintenir le rapport d’aspect)
2048x1024 256 x 256 256x128 (Ne pas remplir, maintenir le rapport d’aspect)

 

Vous pouvez déclarer un point de coupure dans le cadre de l’entrée d’ID de programme de l’application associée dans le Registre. En dessous de cette taille, les miniatures ne sont pas utilisées.

HKEY_CLASSES_ROOT
   .{ProgId}
      ThumbnailCutoff

L’entrée ThumbnailCutoff est l’une de ces valeurs REG_DWORD.

Valeur Raccourci HighDPI Sensitive
0 32 x 32 Oui
1 16x16 Oui
2 48 x 48 Oui
3 16x16 Oui

La sensibilité des points élevés par pouce (ppp) signifie que les dimensions de pixels de la miniature s’ajustent automatiquement pour le plus grand ppp. Par exemple, une image 32 x 32 à 96 ppp serait une image de 40 x 40 à 120 ppp.

Si l’entrée ThumbnailCutoff n’est pas spécifiée, le découpage par défaut est 20x20 (pas sensible aux ppp).

Superpositions miniatures

Les superpositions de miniatures, une petite image affichée dans le coin inférieur droit de la miniature, permettent aux développeurs d’appliquer l’identification de marque à leurs miniatures. Les superpositions sont déclarées dans le Registre dans le cadre de l’entrée d’ID de programme de l’application associée, comme indiqué ici :

HKEY_CLASSES_ROOT
   .{ProgId}
      TypeOverlay

L’entrée TypeOverlay contient une valeur REG_SZ interprétée comme suit :

  • Si la valeur est une référence de ressource (un fichier .ico incorporé dans la DLL) telle que ISVComponent.dll,-155, cette image est utilisée comme superposition pour les fichiers avec cette extension de nom de fichier. Notez que dans cet exemple, 155 est l’ID de ressource et si la DLL n’est pas présente dans un chemin standard (par exemple, C :/Windows/System32), le chemin complet est requis au lieu du nom de la DLL uniquement.
  • Si la valeur est une chaîne vide, aucune superposition n’est appliquée à l’image.
  • Si la valeur n’est pas présente, l’icône par défaut de l’application associée est utilisée.

Les superpositions de vos miniatures ne doivent être fournies que par le biais de ce mécanisme et appliquées par Windows. Ne pas appliquer de superpositions vous-même.

Ornements miniatures

Les ornements tels que les ombres déroulantes sont appliqués aux miniatures en fonction du thème actuellement sélectionné par l’utilisateur. Les ornements sont fournis par Windows ; ne les créez pas vous-même. Windows peut modifier l’apparence d’ornements particuliers à tout moment. Par conséquent, si vous avez fourni vous-même, vous risquez de tomber en panne de synchronisation avec le système. Vos miniatures peuvent se retrouver à la recherche d’une date ou d’une sortie.

Les ornements potentiels sont déclarés dans le Registre dans le cadre de l’entrée d’ID de programme de l’application associée, comme indiqué ici :

HKEY_CLASSES_ROOT
   .{ProgId}
      Treatment

L’entrée Traitement contient l’une des valeurs REG_DWORD suivantes :

Valeur Signification
0 Pas d’ornement
1 Ombre portée
2 Bordure photo
3 Sprockets vidéo

Une ombre déroulante est appliquée aux images par défaut.

Inscription de votre gestionnaire de miniatures

L’inscription d’un gestionnaire de miniatures est basée sur des associations de fichiers standard.

Le GUID de l’extension Shell du gestionnaire de miniatures est E357FCCD-A995-4576-B01F-234630154E96.

IThumbnailProvider

génération de gestionnaires miniatures

instructions relatives aux gestionnaires miniatures