Entradas do Registro Decoder-Specific

Além das entradas do Registro necessárias para todos os codificadores e decodificadores, as entradas do Registro a seguir são necessárias especificamente para decodificadores.

Essas entradas registram seu decodificador na categoria de decodificadores wic (componente de imagem do Windows). O primeiro GUID nessas entradas é o CATID (identificador de categoria) para WICBitmapDecoders.

HKEY_CLASSES_ROOT
   CLSID
      {7ED96837-96F0-4812-B211-F13C24117ED3}
         Instance
            {Decoder CLSID}
               CLSID = {Decoder CLSID}
               FriendlyName = {Name of Decoder}

Conforme observado na seção Descoberta e Arbitragem de Como funciona o componente de imagem do Windows, o mecanismo que permite que um decodificador apropriado para uma imagem específica seja descoberto em tempo de execução baseia-se na correspondência de um padrão de identificação inserido no arquivo de imagem com um padrão especificado na entrada do registro do decodificador. Para habilitar a descoberta em tempo de execução de decodificadores, você deve registrar o padrão de identificação exclusivo para o formato de imagem da seguinte maneira. Todas essas entradas do Registro são necessárias, exceto a entrada EndOfStream , que é opcional, conforme descrito na tabela a seguir.

HKEY_CLASSES_ROOT
   CLSID
      {Decoder CLSID}
         Patterns
            {0}
               Position = Offset in block
               Length = Length of pattern
               Pattern = Pattern to match
               Mask = FF FF FF FF
               EndOfStream = 0|1
Valor Descrição
Posição O deslocamento para o arquivo em que o padrão pode ser encontrado.
Comprimento O comprimento do padrão.
Padrão Os bits reais que compõem o padrão. Esses são os bits que correspondem ao padrão de identificação em um arquivo de imagem durante a descoberta.
Mask Permite valores curinga em padrões. A máscara é aplicada executando uma operação AND lógica no padrão e na máscara. Qualquer bit no padrão que corresponda a um bit na máscara com um valor de 0 será ignorado.
EndOfStream O deslocamento do padrão de identificação deve ser calculado a partir do final do fluxo, em vez do início. Alguns formatos de imagem colocam o padrão de identificação no final do arquivo ou perto dele. Como o padrão é buscar desde o início, a menos que seu padrão esteja próximo ao final do arquivo, você pode omitir essa entrada.

 

Um codec pode dar suporte a mais de um padrão de identificação. Nesse caso, você repetiria todas as chaves em HKEY_CLASSES_ROOT\CLSID\{Decoder CLSID}\Patternse usaria a chave numérica (0 no exemplo) para distinguir entre os diferentes padrões. Você deve incluir cada um dos quatro valores sob a chave para cada padrão.

Registrando um formato de contêiner com leitores de metadados

Se você criar um novo formato de contêiner para o codec, também deverá criar entradas do Registro para dar suporte à descoberta de leitores de metadados para os blocos de metadados em suas imagens, assim como fez para os gravadores de metadados. As entradas a seguir precisam ser criadas no CLSID (identificador de classe) do leitor de metadados para cada formato de metadados compatível com o formato de contêiner. (Observe que, se o codec usar um contêiner TIFF (Tagged Image File Format), essas informações já estarão no Registro.)

HKEY_CLASSES_ROOT
   CLSID
      {Metadata Reader CLSID}
         Containers
            {Container Format GUID}
               
                  Position = Offset relative to its container
                  Pattern = Pattern used for metadata header
                  Mask = FF FF FF FF
                  DataOffset = Offset from beginning of header

Como as entradas para leitores de metadados também são usadas para descoberta, elas são muito semelhantes às entradas para decodificadores. Essas entradas são usadas pela fábrica de componentes para localizar os leitores de metadados compatíveis com seu contêiner e para selecionar o apropriado, quando sua implementação IWICMetadataBlockReader solicita um leitor de metadados.

Valor Descrição
Posição O deslocamento no contêiner do bloco de metadados em que o cabeçalho de metadados pode ser encontrado. Para blocos de metadados de nível superior, esse é o deslocamento no fluxo de arquivos. Para blocos de metadados aninhados em outros blocos de metadados, é o deslocamento em relação ao bloco de metadados que contém.
Padrão Os bits reais que compõem o padrão. Esses são os bits que correspondem ao padrão de identificação em um arquivo de imagem durante a descoberta.
Mask O cabeçalho de metadados geralmente é definido pelo manipulador de metadados. Você deve usar o cabeçalho de metadados padrão para cada leitor, a menos que, por algum motivo, o padrão precise ter um formato diferente em seu contêiner.
Dataoffset O deslocamento do início do cabeçalho de metadados no qual os dados reais começam. Nos casos em que os metadados não estão localizados em um deslocamento específico do cabeçalho, essa entrada pode ser omitida.

 

Conceitual

Entradas do Registro específicas do codificador

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

Como escrever um CODEC WIC-Enabled

Visão geral do componente de imagem do Windows