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 utiliser votre miniature. L’affichage des miniatures a également changé. Désormais, un éventail 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.

Notes

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

 

Les miniatures d’une résolution 32 bits et d’une taille maximale de 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 rendre la fourniture d’une miniature plus facile et plus simple que par le passé, quand 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 sujets suivants :

Processus de miniatures

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

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

Vous pouvez également refuser l’expiration d’un 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 les implémentations IThumbnailProvider .

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

Cache de miniatures et dimensionnement

Lorsqu’une miniature est nécessaire, Windows vérifie d’abord la présence de l’image dans le cache de miniatures. L’extracteur de miniatures est appelé si l’image est introuvable dans le cache. Elle est également appelée lorsque l’heure de la dernière modification de l’image est posté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 indiquées en pixels.

  • 32x32
  • 96 x 96
  • 256 x 256
  • 1024 x 1024

Notes

Ces valeurs sont susceptibles d’être modifiées. Votre code ne doit pas supposer qu’une taille particulière sera toujours utilisée.

 

Si une image n’est pas carrée, vous ne devez pas la coller vous-même. Windows est chargé de respecter les proportions d’origine et de faire passer 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 l’image la plus grande 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 d’image maximale que vous fournissez Taille demandée par l’extracteur Vous fournissez
156x120 256 x 256 156 x 120 (Ne pas rembourrage, maintenir les proportions)
2048x1024 256 x 256 256 x 128 (Ne pas rembourrage, maintenir les proportions)

 

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 Coupure HighDPI Sensitive
0 32x32 Oui
1 16x16 Oui
2 48 x 48 Oui
3 16x16 Oui

La sensibilité élevée des points par pouce (ppp) signifie que les dimensions de pixels de la miniature s’ajustent automatiquement pour la plus grande ppp. Pour instance, 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 seuil par défaut est de 20 x 20 (non sensible aux ppp).

Superpositions de 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 la 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 d’accès standard (par exemple C:/Windows/System32), le chemin d’accès 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. N’appliquez pas de superpositions vous-même.

Ornements de miniatures

Les ornements tels que les ombres portées 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 de certains ornements à tout moment. Ainsi, si vous avez fourni votre propre, vous risquez de tomber en panne avec le système. Vos miniatures peuvent finir par être obsolètes ou hors de leur place.

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 Aucun ornement
1 Ombre portée
2 Bordure photo
3 Sprockets vidéo

Une ombre portée 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 de miniatures

Instructions relatives aux gestionnaires de miniatures