Compartilhar via


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 seguintes seções:

Introdução

Para permitir que a Galeria de Fotos do Windows e o Windows Explorer exibam miniaturas e pesquisem e atualizem metadados de imagem padrão, um codec deve ter uma implementação do IThumbnailProvider e interfaces 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 wic (componente de imagem do Windows) – formato de imagem habilitado. A implementação padrão do IPropertyStore pode ser usada com qualquer formato de imagem habilitado para WIC baseado em um TIFF (Formato de Arquivo de Imagem Marcada) ou contêiner JPEG. Para associar seu formato de imagem às implementações padrão dessas duas interfaces, você deve adicionar apenas algumas entradas do Registro.

As entradas a seguir indicam à Galeria de Fotos do Windows e ao 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 de arquivo e esse valor de tipo de conteúdo precisa ser registrado com o 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 Windows Property Store

À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 o padrão iPropertyStore implementação 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 em sincronia 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 metadados, ele garante que essas propriedades sejam atualizadas consistentemente 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 em seu 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 poderá aproveitar esse conhecimento para atualizar metadados consistentemente no formato de contêiner também.

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 manipulador de propriedades de fotos de IPropertyStore com 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}

Os codecs que usam um formato proprietário que não seja compatível com o formato de contêiner TIFF ou JPEG devem gravar suas próprias implementação de 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 o 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 será "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 do sistema padrão 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

Encoder-Specific Entradas do Registro

de instalação e registro do CODEC

como escrever uma codec WIC-Enabled

visão geral do componente de imagem do Windows