Partager via


Interface IThumbnailCache (thumbcache.h)

Expose des méthodes pour un cache de miniatures système partagé entre les applications.

Héritage

L’interface IThumbnailCache hérite de l’interface IUnknown . IThumbnailCache a également les types de membres suivants :

Méthodes

L’interface IThumbnailCache a ces méthodes.

 
IThumbnailCache::GetThumbnail

Obtient une miniature mise en cache pour un élément Shell donné.
IThumbnailCache::GetThumbnailByID

Obtient une miniature du cache de miniatures, en fonction de son ID.

Remarques

L’API Cache de miniatures est conçue pour fournir aux applications une méthode unifiée pour récupérer et mettre en cache les miniatures. Dans Windows XP, la mise en cache des miniatures est effectuée par dossier, et le cache est conservé dans un fichier Thumbs.db dans chaque dossier. Bien que cette approche fournisse une localité spatiale, elle ne prend pas en charge les préversions et les requêtes entre les dossiers. Le cache de miniatures dans Windows Vista corrige cette lacune en fournissant un cache global.

Pour mettre en cache une miniature, une application doit d’abord obtenir un objet IShellItem qui représente l’élément pour lequel une miniature sera obtenue, puis passer l’objet IShellItem à un appel à IThumbnailCache::GetThumbnail. Si le paramètre flags de IThumbnailCache::GetThumbnail inclut l’indicateur WTS_EXTRACT et que la miniature n’est pas déjà mise en cache, une miniature est extraite et placée dans le cache. Si l’indicateur WTS_FORCEEXTRACTION est défini, le cache est ignoré et une nouvelle miniature est toujours extraite. Consultez la rubrique IThumbnailCache::GetThumbnail pour plus d’informations sur les indicateurs passés à IThumbnailCache::GetThumbnail.

Si une miniature n’est pas déjà dans le cache, elle est automatiquement extraite du fichier source à l’aide de la ou des implémentations existantes de IExtractImage ou IThumbnailProvider inscrites sur le système d’exploitation. Votre application n’a pas besoin de fournir une implémentation de l’extracteur de miniatures.

Lorsque IThumbnailCache::GetThumbnail retourne, son paramètre pThumbnailID reçoit une structure WTS_THUMBNAILID qui contient l’ID unique de la miniature. Si cet ID est enregistré, il peut ensuite être passé à IThumbnailCache::GetThumbnailByID pour récupérer la miniature mise en cache. Vous pouvez également appeler IThumbnailCache::GetThumbnail avec l’indicateur WTS_CACHEONLY défini. Dans ce cas, une miniature est retournée uniquement si elle est déjà mise en cache. L’inconvénient de l’utilisation de IThumbnailCache::GetThumbnailail plutôt que IThumbnailCache::GetThumbnailByID, est qu’un IShellItem doit toujours être fourni.

Plusieurs threads peuvent être utilisés pour accéder au cache de miniatures afin d’améliorer les performances. IThumbnailCache::GetThumbnail peut être appelé sur un thread de priorité plus élevée avec le WTS_INCACHEONLY ou l’indicateur WTS_FASTEXTRACT défini, afin que les miniatures mises en cache soient récupérées immédiatement. Ensuite, si l’image n’est pas dans le cache ou si WTS_LOWQUALITY indique que l’image mise en cache n’était pas de qualité idéale, un thread de priorité inférieure peut être utilisé pour appeler IThumbnailCache::GetThumbnail avec l’indicateur WTS_EXTRACT défini, afin qu’une miniature puisse être extraite.

Configuration requise

   
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête thumbcache.h