Интеграция с Фотоальбом Windows и Windows Обозреватель

Этот раздел относится к Windows Vista и более поздних версий. Он содержит следующие подразделы:

Введение

Чтобы разрешить Фотоальбом Windows и Windows Обозреватель отображать эскизы, а также искать и обновлять метаданные стандартных изображений, кодек должен иметь реализацию интерфейсов IThumbnailProvider и IPropertyStore, связанных с ним. Интерфейс IThumbnailProvider используется для получения эскизов и заполнения кэша эскизов, а интерфейс IPropertyStore — для поиска и обновления метаданных, связанных с файлом. В Windows Vista все типы файлов имеют эскизы и метаданные, но для разных типов файлов требуются разные реализации этих интерфейсов для получения или создания эскизов и метаданных для них. Система предоставляет реализации этих интерфейсов по умолчанию. Реализация IThumbnailProvider по умолчанию может использоваться для любого формата изображения с поддержкой компонента образов Windows (WIC). Реализацию IPropertyStore по умолчанию можно использовать с любым форматом изображений с поддержкой WIC, основанным на контейнере TIFF или JPEG. Чтобы связать формат образа с реализациями по умолчанию обоих этих интерфейсов, необходимо добавить только несколько записей реестра.

Следующие записи указывают на фотоальбом Windows и Windows Обозреватель, что расширение имени файла (EXT) и связанный с ним тип MIME связаны с форматом изображения.

Следующая запись указывает windows и приложениям, используюющим тип контента (также известный как тип mime), что файл с заданным расширением (EXT) является форматом изображения. Владелец типа файла должен выбрать <image sub type value> , который однозначно идентифицирует формат файла, и это значение типа контента необходимо зарегистрировать в IANA.

HKEY_CLASSES_ROOT
   {.ext}
      ContentType = image/<image sub type>

Следующая запись указывает windows, windows search и приложениям , использующему System.Kind , что расширение имени файла (EXT) должно рассматриваться как изображение. В частности, он указывает, что свойству System.Kind расширения файла должно быть присвоено значение Picture.

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows
            CurrentVersion
               Explorer
                  KindMap
                     {.ext} = Picture

Интеграция с хранилищем свойств Windows

Иногда одни и те же свойства метаданных предоставляются в разных схемах метаданных, часто с разными именами свойств. Если одно из этих свойств обновляется, а другие нет, метаданные в файле могут быть синхронизированы. Обработчик свойств photo предоставляет реализацию IPropertyStore по умолчанию для изображений и используется приложениями, а также Фотоальбом Windows и Обозреватель Windows, чтобы обеспечить синхронизацию всех метаданных в изображении и согласованность свойств, отображаемых приложениями, с теми, которые отображаются в Фотоальбом Windows и Windows Обозреватель. Когда обработчик свойств photo обновляет метаданные, он обеспечивает согласованное обновление этих свойств во всех общих форматах метаданных, присутствующих в файле.

Обработчик свойств photo должен понимать формат контейнера и способы поиска различных свойств в нем. Как правило, обработчик свойств photo не может знать, как различные блоки метаданных размещаются в закрытом формате контейнера. Однако если метаданные в формате контейнера размещены так же, как метаданные в формате контейнера TIFF или JPEG, обработчик свойств photo может воспользоваться преимуществами этих знаний для согласованного обновления метаданных в формате контейнера.

Эту связь можно зарегистрировать, создав следующую запись реестра. Эта запись уведомляет обработчик свойств photo о том, что формат контейнера, определенный этим GUID, понимает те же пути языка запросов метаданных, что и формат контейнера с GUID 163bcc30-e2e9-4f0b-961d-a3e9fdb788a3. (163bcc30-e2e9-4f0b-961d-a3e9fdb788a3 — это GUID для формата контейнера TIFF.)

HKEY_LOCAL_MACHINE
   SOFTWARE
      Microsoft
         Windows
            CurrentVersion
               PhotoPropertyHandler
                  ContainerAssociations
                     {Container Format GUID} = {163bcc30-e2e9-4f0b-961d-a3e9fdb788a3}

Следующая запись связывает реализацию IPropertyStore обработчика свойства photo по умолчанию с файлами с расширением .ext. Первый идентификатор GUID — это ИДЕНТИФИКАТОР интерфейса IPropertyStore , а второй — GUID реализации обработчика свойства photo.

HKEY_LOCAL_MACHINE
   SOFTWARE
      Microsoft
         Windows
            CurrentVersion
               PhotoPropertyHandler
                  {.ext}
                     (Default) = {a38b883c-1682-497e-97b0-0a3a9e801682}

Кодеки, использующие собственный формат, несовместимый с форматом контейнера TIFF или JPEG, должны писать собственную реализацию IPropertyStore .

Фотоальбом Windows создан на основе WIC и может отображать любой формат изображений с поддержкой WIC, для которого установлен кодек. Чтобы уведомить систему о том, что формат изображения можно открыть в Фотоальбоме Windows, необходимо создать сопоставление файлов, создав следующие записи реестра.

HKEY_CLASSES_ROOT
   {.ext}
      (Default) = {ProgID} for example, jpegfile)
      OpenWithProgids
         {ProgID}
      OpenWithList
         PhotoViewer.dll
      ShellEx
         ContextMenuHandlers
            ShellImagePreview
               (Default) = {FFE2A43C-56B9-4bf5-9A79-CC6D4285608A}
   SystemFileAssociations
      {.ext}
         OpenWithList
            PhotoViewer.dll
         ShellEx
            ContextMenuHandlers
               ShellImagePreview
                  (Default) = {FFE2A43C-56B9-4bf5-9A79-CC6D4285608A}
   {Image Format ProgID}
      (Default) = Name of Image Format
      DefaultIcon
         (Default) = Path to icon for type, icon index
      shell
         open
            MuiVerb = @%PROGRAMFILES%\Windows Photo Gallery\photoviewer.dll,-3043
            command
               (Default) = %SystemRoot%\System32\rundll32.exe "%ProgramFiles%\Windows Photo Gallery\PhotoViewer.dll", ImageView_Fullscreen %1
            DropTarget
               Clsid = {FFE2A43C-56B9-4bf5-9A79-CC6D4285608A}
         printo
            command
               (Default) = %SystemRoot%\System32\rundll32.exe "%SystemRoot%\System32\shimgvw.dll", ImageView_PrintTo /pt "%1" "%2" "%3" "%4"

ProgID обычно представляет собой расширение имени файла, добавляемое словом "file". (Например, если расширение имени файла имеет .txt, progID обычно будет "txtfile".)

Существуют и другие стандартные записи реестра, которые могут потребоваться создать для поддержки сопоставлений файлов; однако, поскольку они не относятся к WIC, они выходят за рамки область этой статьи.

Интеграция с кэшем эскизов Windows

Следующие две записи указывают, что стандартную реализацию поставщика эскизов WIC можно использовать для получения эскизов файлов с этим расширением. Первый GUID — это ИДЕНТИФИКАТОР IID интерфейса IThumbnailProvider , а второй — GUID стандартной системной реализации этого интерфейса. (Все записи в HKCR\.ext\ShellEx\ повторяются в разделе HKCR\SystemFileAssociations\.ext\ShellEx\.)

HKEY_CLASSES_ROOT
   SystemFileAssociations
      {.ext}
         ShellEx
            {e357fccd-a995-4576-b01f-234630154e96}
               (Default) = {C7657C4A-9F68-40fa-A4DF-96BC08EB3551}

Основные понятия

Записи реестра, относящиеся к кодировщику

Установка и регистрация CODEC

Создание кодека WIC-Enabled

Общие сведения о компоненте обработки образов Windows