Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Предоставляет методы для системного кэша эскизов, совместно используемого приложениями.
Наследование
Интерфейс IThumbnailCache наследуется от интерфейса IUnknown . IThumbnailCache также имеет следующие типы элементов:
Методы
Интерфейс IThumbnailCache содержит следующие методы.
|
IThumbnailCache::GetThumbnail Получает кэшированный эскиз для заданного элемента оболочки. |
|
IThumbnailCache::GetThumbnailByID Получает эскиз из кэша эскизов с учетом его идентификатора. |
Комментарии
API кэша эскизов предназначен для предоставления приложениям единого метода получения и кэширования эскизов. В Windows XP кэширование эскизов выполняется для каждой папки, а кэш хранится в файле Thumbs.db в каждой папке. Хотя этот подход обеспечивает пространственное расположение, он не поддерживает предварительные версии и запросы к папкам. Кэш эскизов в Windows Vista устраняет этот недостаток, предоставляя глобальный кэш.
Чтобы кэшировать эскиз, приложение должно сначала получить IShellItem , представляющий элемент, для которого будет получен эскиз, а затем передать IShellItem в вызов IThumbnailCache::GetThumbnail. Если параметр flags для IThumbnailCache::GetThumbnail содержит флаг WTS_EXTRACT, а эскиз еще не кэширован, эскиз будет извлечен и помещен в кэш. Если флаг WTS_FORCEEXTRACTION установлен, кэш игнорируется, а новый эскиз всегда извлекается. Дополнительные сведения о флагах, передаваемых в IThumbnailCache::GetThumbnail , см. в разделе IThumbnailCache::GetThumbnail.
Если эскиз еще не находится в кэше, он будет автоматически извлечен из исходного файла с помощью существующих реализаций IExtractImage или IThumbnailProvider , зарегистрированных в операционной системе. Приложению не нужно предоставлять реализацию средства извлечения эскизов.
При возврате IThumbnailCache::GetThumbnail его параметр pThumbnailID получает WTS_THUMBNAILID структуру, содержащую уникальный идентификатор эскиза. Если этот идентификатор сохранен, его можно передать в IThumbnailCache::GetThumbnailByID , чтобы получить кэшированный эскиз. Кроме того, можно вызвать IThumbnailCache::GetThumbnail с установленным флагом WTS_CACHEONLY. В этом случае эскиз возвращается только в том случае, если он уже кэширован. Недостаток использования IThumbnailCache::GetThumbnail вместо IThumbnailCache::GetThumbnailByID заключается в том, что необходимо по-прежнему предоставлять IShellItem .
Для доступа к кэшу эскизов можно использовать несколько потоков, чтобы повысить производительность. IThumbnailCache::GetThumbnail можно вызвать в потоке с более высоким приоритетом с установленным флагом WTS_INCACHEONLY или WTS_FASTEXTRACT, чтобы кэшированные эскизы извлеклись немедленно. Если изображение отсутствует в кэше или WTS_LOWQUALITY указывает, что кэшированное изображение не было идеального качества, можно использовать поток с более низким приоритетом для вызова IThumbnailCache::GetThumbnail с установленным флагом WTS_EXTRACT, чтобы можно было извлечь эскиз.
Требования
| Минимальная версия клиента | Windows Vista [только классические приложения] |
| Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
| Целевая платформа | Windows |
| Header | thumbcache.h |