Обработчики эскизов
Windows Vista использует эскизы файлов в большей степени, чем в более ранних версиях Windows. Windows Vista использует их во всех представлениях, в диалоговых окнах и для любого типа файлов, которые их предоставляют. Другие приложения также могут использовать эскиз. Отображение эскизов также изменилось. Теперь доступен непрерывный спектр размеров, доступных для выбора пользователем, а не дискретных размеров, таких как значки и эскизы, предоставляемые в Windows XP.
Примечание
Вы можете услышать эти эскизы, называемые динамическими значками.
Эскизы с 32-разрядным разрешением и размером до 256 x 256 пикселей часто используются в пользовательском интерфейсе Windows Vista. Владельцы форматов файлов должны быть готовы к отображению эскизов этого размера. Они также должны предоставлять нестатические изображения для своих эскизов, которые отражают содержимое конкретного файла. Например, в эскизе текстового файла должна отображаться миниатюрная версия документа, включая его текст.
Интерфейс IThumbnailProvider появился для упрощения и простоты предоставления эскиза, чем в прошлом, когда вместо него использовался бы IExtractImage . Обратите внимание, что существующий код, использующий IExtractImage , по-прежнему действителен в Windows Vista. Однако IExtractImage не поддерживается в области сведений .
В этом разделе обсуждается следующее.
- Процессы эскизов
- Кэш эскизов и изменение размера
- Наложения эскизов
- Эскизы украшений
- Регистрация обработчика эскизов
- Связанные темы
Процессы эскизов
Обработчики, включая обработчики эскизов, запускаются по умолчанию в отдельном процессе. Вы можете принудительно запустить обработчик внутри процесса, передав значение NULL в качестве контекста привязки в вызове IShellItem::BindToHandler , как показано ниже:
IShellItem::BindToHandler(NULL, BHID_ThumbnailHandler,..)
Вы также можете отказаться от завершения процесса по умолчанию, задав запись DisableProcessIsolation в реестре, как показано в этом примере. Идентификатор класса (CLSID) {E357FCCD-A995-4576-B01F-234630154E96} является CLSID для реализаций IThumbnailProvider .
HKEY_CLASSES_ROOT
CLSID
{E357FCCD-A995-4576-B01F-234630154E96}
DisableProcessIsolation = 1
Кэш эскизов и изменение размера
Когда требуется эскиз, Windows сначала проверяет кэш эскизов для изображения. Средство извлечения эскизов вызывается, если изображение не найдено в кэше. Он также вызывается, когда время последнего изменения образа позже времени копирования в кэше.
Эскизы в этом кэше хранятся в наборе дискретных размеров. Все размеры задаются в пикселях.
- 32 x 32
- 96x96
- 256x256
- 1024 x 1024
Примечание
Эти значения могут быть изменены. В коде не следует предполагать, что любой конкретный размер будет использоваться всегда.
Если изображение не является квадратным, не следует заполнять его самостоятельно. Windows отвечает за соблюдение исходных пропорций и заполнение изображения до квадратного размера.
При запросе изображения определенного размера, если не найдено точное совпадение, Windows Vista всегда извлекает следующее изображение по величине и масштабирует его до запрошенного размера. Размер образа никогда не масштабируется, как это было в предыдущих версиях Windows.
В следующей таблице приведены некоторые примеры связи между запрошенным и доступным размером.
Максимальный размер изображения, который вы предоставляете | Размер, запрошенный методом извлечения | Вы предоставляете |
---|---|---|
156x120 | 256x256 | 156x120 (не заполняйте, поддерживайте пропорции) |
2048x1024 | 256x256 | 256x128 (не заполняйте, поддерживайте пропорции) |
Вы можете объявить точку отсечения как часть записи идентификатора программы связанного приложения в реестре. Эскизы ниже этого размера не используются.
HKEY_CLASSES_ROOT
.{ProgId}
ThumbnailCutoff
Запись ThumbnailCutoff является одним из этих REG_DWORD значений.
Значение | Cutoff | Высокий уровень конфиденциальности |
---|---|---|
0 | 32 x 32 | Да |
1 | 16 x 16 | Да |
2 | 48x48 | Да |
3 | 16 x 16 | Да |
Высокая чувствительность точек на дюйм (точек на дюйм) означает, что размеры в пикселях эскиза автоматически корректируются в соответствии с большим разрешением на дюйм. Например, изображение 32x32 с разрешением 96 точек на дюйм будет изображением 40 x 40 с разрешением 120 точек на дюйм.
Если запись ThumbnailCutoff не указана, вырезание по умолчанию — 20x20 (без dpi).
Наложения эскизов
Наложения эскизов , небольшое изображение, отображаемое в правом нижнем углу эскиза, предоставляет разработчикам возможность применять идентификацию фирменной символики к своим эскизам. Наложения объявляются в реестре как часть записи идентификатора программы связанного приложения, как показано ниже:
HKEY_CLASSES_ROOT
.{ProgId}
TypeOverlay
Запись TypeOverlay содержит значение REG_SZ, интерпретируемое следующим образом:
- Если значение является ссылкой на ресурс ( ICO-файл , внедренный в библиотеку DLL), например
ISVComponent.dll,-155
, это изображение используется в качестве наложения для файлов с таким расширением имени файла. Обратите внимание, что в этом примере 155 является идентификатором ресурса, а если библиотека DLL отсутствует в стандартном пути (например , C:/Windows/System32), то вместо имени библиотеки DLL требуется полный путь. - Если значение является пустой строкой, наложение на изображение не применяется.
- Если значение отсутствует, используется значок связанного приложения по умолчанию.
Наложения для эскизов должны предоставляться только с помощью этого механизма и применяться в Windows. Не применяйте наложения самостоятельно.
Эскизы украшений
Украшения, такие как тени, применяются к эскизам на основе выбранной пользователем темы. Украшения предоставляются Windows; не создавайте их самостоятельно. Windows может изменить внешний вид конкретных украшений в любое время, поэтому, если вы предоставили свой собственный, вы рискуете выйти из синхронизации с системой. Эскизы могут оказаться устаревшими или неуместными.
Потенциальные украшения объявляются в реестре как часть записи идентификатора программы связанного приложения, как показано ниже:
HKEY_CLASSES_ROOT
.{ProgId}
Treatment
Запись Обработка содержит одно из следующих REG_DWORD значений:
Значение | Значение |
---|---|
0 | Без оформления |
1 | Тень |
2 | Граница фотографии |
3 | Звездочки видео |
По умолчанию к изображениям применяется тень.
Регистрация обработчика эскизов
Регистрация обработчика эскизов основана на стандартных сопоставлениях файлов.
Guid для расширения оболочки обработчика эскизов — E357FCCD-A995-4576-B01F-234630154E96
.
Связанные темы