Поделиться через


Интеграция с коллекцией фотографий 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 и приложения, использующие System.Kind, что расширение имени файла (.ext) должно рассматриваться как рисунок. В частности, это означает, что для свойства System.Kind расширения файла должно быть задано значение Picture.

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

Интеграция с Магазином свойств Windows

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

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

Эту связь можно зарегистрировать, создав следующую запись реестра. Эта запись уведомляет обработчик свойств фотографии о том, что формат контейнера, определенный этим 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 с файлами с расширением ".ext". Первый GUID является IID интерфейса IPropertyStore, а второй — GUID реализации обработчика свойств фотографий.

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".)

Для поддержки сопоставлений файлов может потребоваться создать другие стандартные записи реестра; однако, так как "y" не относятся к 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}

концептуальные

Encoder-Specific записи реестра

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

Как написать WIC-Enabled CODEC

обзор компонента образов Windows