Integração com a Galeria de Fotos do Windows e o Windows Explorer

Este tópico se aplica ao Windows Vista e posterior. Ele contém as seções a seguir:

Introdução

Para habilitar a Galeria de Fotos do Windows e o Windows Explorer exibir miniaturas e pesquisar e atualizar metadados de imagem padrão, um codec deve ter uma implementação das interfaces IThumbnailProvider e IPropertyStore associadas a ele. A interface IThumbnailProvider é usada para recuperar miniaturas e preencher o cache de miniaturas, e a interface IPropertyStore é usada para pesquisar e atualizar metadados associados a um arquivo. A partir do Windows Vista, todos os tipos de arquivo têm miniaturas e metadados, mas diferentes tipos de arquivo exigem diferentes implementações dessas interfaces para recuperar ou gerar as miniaturas e metadados para elas. O sistema fornece implementações padrão dessas interfaces. A implementação padrão de IThumbnailProvider pode ser usada para qualquer formato de imagem habilitado para WIC (Componente de Imagem do Windows). A implementação padrão do IPropertyStore pode ser usada com qualquer formato de imagem habilitado para WIC baseado em um contêiner TIFF (Formato de Arquivo de Imagem Marcada) ou JPEG. Para associar o formato de imagem às implementações padrão dessas duas interfaces, você deve adicionar apenas algumas entradas do Registro.

As entradas a seguir indicam para a Galeria de Fotos do Windows e o Windows Explorer que uma extensão de nome de arquivo (.ext) e seu tipo MIME associado estão associados a um formato de imagem.

A entrada a seguir indica ao Windows e aos aplicativos que usam o tipo de conteúdo (também conhecido como tipo mime) que um arquivo com uma determinada extensão (.ext) é um formato de imagem. O proprietário do tipo de arquivo precisa escolher um <image sub type value> que identifique exclusivamente o formato do arquivo e esse valor de tipo de conteúdo precisa ser registrado no IANA.

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

A entrada a seguir indica ao Windows, à pesquisa do Windows e aos aplicativos que usam System.Kind que uma extensão de nome de arquivo (.ext) deve ser tratada como uma imagem. Especificamente, indica que a propriedade System.Kind da extensão de arquivo deve ser definida como Imagem.

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

Integração com o Repositório de Propriedades do Windows

Às vezes, as mesmas propriedades de metadados são expostas em esquemas de metadados diferentes, muitas vezes com nomes de propriedade diferentes. Quando uma dessas propriedades é atualizada, mas as outras não, os metadados dentro do arquivo podem sair da sincronização. O manipulador de propriedades de fotos fornece a implementação padrão do IPropertyStore para imagens e é usado por aplicativos, bem como pela Galeria de Fotos do Windows e pelo Windows Explorer para garantir que todos os metadados em uma imagem permaneçam sincronizados e que as propriedades exibidas pelos aplicativos sejam consistentes com as exibidas pela Galeria de Fotos do Windows e pelo Windows Explorer. Quando o manipulador de propriedades de fotos atualiza os metadados, ele garante que essas propriedades sejam atualizadas de forma consistente em todos os formatos de metadados comuns presentes no arquivo.

O manipulador de propriedades de foto deve entender o formato do contêiner e como localizar as várias propriedades dentro dele. Em geral, não é possível que o manipulador de propriedades de fotos saiba como os vários blocos de metadados são dispostos em um formato de contêiner proprietário. No entanto, se os metadados no formato de contêiner forem dispostos da mesma maneira que os metadados em um formato de contêiner TIFF ou em um formato de contêiner JPEG, o manipulador de propriedades de foto também poderá aproveitar esse conhecimento para atualizar metadados consistentemente no formato de contêiner.

Você pode registrar essa associação criando a seguinte entrada do Registro. Essa entrada notifica o manipulador de propriedades de foto de que o formato de contêiner identificado por esse GUID entende os mesmos caminhos de linguagem de consulta de metadados que o formato de contêiner com o GUID 163bcc30-e2e9-4f0b-961d-a3e9fdb788a3. (163bcc30-e2e9-4f0b-961d-a3e9fdb788a3 é o GUID para o formato de contêiner TIFF.)

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

A entrada a seguir associa a implementação padrão do IPropertyStore do manipulador de propriedades de fotos a arquivos que têm a extensão ".ext". O primeiro GUID é o IID da interface IPropertyStore e o segundo é o GUID da implementação do manipulador de propriedades de fotos.

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

Codecs que usam um formato proprietário que não é compatível com o formato de contêiner TIFF ou JPEG devem gravar sua própria implementação IPropertyStore .

A Galeria de Fotos do Windows é criada em WIC e pode exibir qualquer formato de imagem habilitado para WIC para o qual o codec está instalado. Para notificar o sistema de que seu formato de imagem pode ser aberto na Galeria de Fotos do Windows, você precisa criar uma associação de arquivos criando as seguintes entradas do Registro.

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"

O ProgID geralmente é a extensão de nome de arquivo acrescentada com a palavra "arquivo". (Por exemplo, se a extensão de nome de arquivo for .txt, o ProgID normalmente seria "txtfile".)

Há outras entradas padrão do Registro que talvez seja necessário criar para dar suporte a associações de arquivos; no entanto, como os 'y não são específicos do WIC, eles estão além do escopo deste tópico.

Integração com o Cache de Miniaturas do Windows

As duas entradas a seguir indicam que a implementação padrão do provedor de miniaturas wic pode ser usada para recuperar miniaturas para arquivos com essa extensão. O primeiro GUID é o IID da interface IThumbnailProvider e o segundo é o GUID da implementação padrão do sistema dessa interface. (Todas as entradas em HKCR\.ext\ShellEx\ são repetidas em HKCR\SystemFileAssociations\.ext\ShellEx\.)

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

Conceitual

Entradas do Registro Específicas do Codificador

Instalação e registro do CODEC

Como escrever uma WIC-Enabled CODEC

Visão geral do componente de imagem do Windows