Tipos de arquivo

Este tópico explica como criar novos tipos de arquivo e como associar seu aplicativo ao tipo de arquivo e a outros tipos de arquivo bem definidos. Arquivos com uma extensão de nome de arquivo comum compartilhado (.doc, .html e assim por diante) são do mesmo tipo. Por exemplo, se você criar um novo editor de texto, poderá usar o tipo de arquivo .txt existente. Em outros casos, talvez seja necessário criar um novo tipo de arquivo.

Este tópico é organizado da seguinte maneira:

Informações adicionais podem ser encontradas nos seguintes tópicos:

Tipos de arquivos públicos e privados

Os tipos de arquivos públicos também são conhecidos como tipos populares ou controversos porque os aplicativos concorrentes podem querer ser associados a esses tipos de arquivo. As características dos tipos de arquivo público incluem:

  • Normalmente, elas são definidas por entidades padrões e/ou são promovidas por suas organizações definidoras como formatos de intercâmbio.
  • Eles geralmente são trocados entre computadores e usuários para fins diversos.
  • Eles precisam ter suporte em várias plataformas diferentes.
  • Aplicativos de vários fornecedores provavelmente lidarão com eles.

Alguns exemplos de tipos de arquivo considerados públicos são os tipos de arquivo de imagem .png, .gif, .jpg e .bmp e os tipos de áudio .wav, .mp3 e .au.

Ao contrário dos tipos de arquivos públicos, os tipos de arquivos privados ou proprietários normalmente têm um formato que é implementado e compreendido por apenas um aplicativo ou fornecedor. Como resultado, os tipos de arquivos privados normalmente não são propensos a conflitos entre aplicativos. Alguns tipos de arquivo podem começar como tipos de arquivo privados, mas posteriormente se tornam tipos de arquivos públicos.

Observação

O Windows não diferencia entre tipos de arquivos públicos e privados. A distinção é relevante apenas na tomada de decisões sobre sua escolha de registro de tipo de arquivo.

 

Registrando um tipo de arquivo

Para associar o tipo de arquivo a um aplicativo existente, localize o progID do aplicativo no registro. Para associar o tipo de arquivo a um novo aplicativo, defina um ProgID para seu aplicativo. Para obter informações sobre como definir um novo ProgID, consulte Identificadores programáticos.

As subchaves de extensão de nome de arquivo têm o seguinte formulário geral: extensão=ProgID. As subchaves de extensão de nome de arquivo são armazenadas na subárvore HKEY_CLASSES_ROOT .

É importante incluir o período à esquerda (.) ao criar subchaves de tipo de arquivo no registro. Por exemplo, se você quiser que um tipo de arquivo com a extensão curta .myp e a extensão longa .myp-file sejam abertos com um aplicativo chamado MyProgram, use a seguinte sintaxe:

HKEY_CLASSES_ROOT
   .myp
      (Default) = ApplicationVendor.MyProgram
   .myp-file
      (Default) = ApplicationVendor.MyProgram
   ApplicationVendor.MyProgram
      (Default) = MyProgram Application

Conforme demonstrado no exemplo anterior, se você também registrar uma extensão de nome de arquivo curto (.myp), também deverá criar uma subchave para a extensão longa (.myp-file). Para obter mais informações, consulte Manipuladores de tipo de arquivo.

Definindo subchaves opcionais e atributos de extensão de tipo de arquivo

As entradas de extensão de tipo de arquivo no registro têm várias subchaves e atributos opcionais.

As entradas de extensão de tipo de arquivo usadas por associações de arquivo são descritas na tabela a seguir. Todos os valores são do tipo REG_SZ .

Entrada de registro Ação
Padrão Defina o valor padrão da subchave de extensão para o ProgID ao qual ela está vinculada.
Tipo de conteúdo Defina o valor Tipo de Conteúdo como o tipo de conteúdo MIME do tipo de arquivo.
OpenWithList Não use. Essa subchave contém uma ou mais subchaves de aplicativo para aplicativos que aparecem na entrada da caixa de diálogo Abrir com para o tipo de arquivo e destina-se apenas a aplicativos .exe em sistemas operacionais antes do Windows XP. Em vez disso, use OpenWithProgIds.
OpenWithProgIds Essa subchave contém uma lista de ProgIDs alternativos para esse tipo de arquivo. Os programas para esses ProgIDs aparecem no menu Abrir com e estão disponíveis como aplicativos padrão da Windows Store para o tipo de arquivo. Sempre que um aplicativo assume esse tipo de arquivo alterando o valor padrão, ele também deve adicionar uma entrada a essa lista.
PerceivedType Defina o valor PerceivedType como o PerceivedType ao qual o arquivo pertence, se houver. Essa cadeia de caracteres não é usada por versões do Windows antes do Windows Vista. Para obter mais informações, consulte Tipos percebidos e registro de aplicativo.

 

A forma geral de uma subchave de extensão de nome de arquivo é a seguinte. Todos os tipos de entrada são do tipo REG_SZ .

HKEY_CLASSES_ROOT
   .ext
      (Default) = ProgID.ext.1
      Content Type = MIME content type
      PerceivedType = PerceivedType
      OpenWithProgids
         ProgID2.ext.1
         ProgID3.ext.1
      ProgID.ext.1
         shellnew

Considerações importantes sobre tipos de arquivo incluem:

  • A subárvore HKEY_CLASSES_ROOT é uma exibição formada pela mesclagem HKEY_CURRENT_USER\classesde software\ eclasses desoftware\HKEY_LOCAL_MACHINE\

  • Em geral, HKEY_CLASSES_ROOT deve ser lida, mas não gravada. Para obter mais informações, consulte o artigo HKEY_CLASSES_ROOT .

  • Para registrar um tipo de arquivo globalmente em um computador específico, crie uma entrada para o tipo de arquivo na subchave HKEY_LOCAL_MACHINE\Classes deSoftware\.

  • Para tornar um registro de tipo de arquivo visível apenas para o usuário atual, crie uma entrada para o tipo de arquivo na subchave HKEY_CURRENT_USER\Classes deSoftware\.

  • Um aplicativo pode fornecer sua própria implementação de um verbo, como abrir ou reproduzir, conforme mostrado no exemplo do Registro a seguir.

    HKEY_CLASSES_ROOT
       Applications
          ApplicationName.exe
             shell
                verb
    

    As subchaves da subchave do verbo incluem a linha de comando e o método drop target: command e DropTarget.

  • Ao criar ou alterar uma associação de arquivos, é importante notificar o sistema de que você fez uma alteração. Faça isso chamando SHChangeNotify e especificando o evento SHCNE_ASSOCCHANGED . Se você não chamar SHChangeNotify, a alteração poderá não ser reconhecida até que o sistema seja reinicializado.

  • Para recuperar informações do Registro sobre uma associação de arquivos, use a interface IQueryAssociations . Para obter um cenário que ilustra esse procedimento, consulte Cenário de exemplo de associação de arquivos.

Observação

As subchaves caminhos do aplicativo e do registro de aplicativos são usadas para registrar e controlar o comportamento do sistema em nome dos aplicativos. Para obter informações mais detalhadas sobre essa funcionalidade, consulte Registro de Aplicativo.

 

Excluindo informações do Registro durante a desinstalação

Ao desinstalar um aplicativo, os ProgIDs e a maioria das outras informações do Registro associadas a esse aplicativo devem ser excluídos como parte da desinstalação. No entanto, os aplicativos que assumiram a propriedade de um tipo de arquivo (definindo o valor Padrão da subchave HKEY_CLASSES_ROOT.extension\ do tipo de arquivo para o ProgID do aplicativo) não devem tentar remover esse valor ao desinstalar. Deixar os dados em vigor para o valor Padrão evita a dificuldade de determinar se outro aplicativo assumiu a propriedade do tipo de arquivo e substituiu o valor Padrão após a instalação do aplicativo original. O Windows respeita o valor Padrão somente se o ProgID descobriu que há um ProgID registrado. Se o ProgID não for registrado, ele será ignorado.

Observe que outras informações de propriedade do tipo arquivo são armazenadas na subárvore HKEY_CURRENT_USER e também são usadas somente quando o aplicativo que ele faz referência é registrado. Portanto, esses dados não precisam ser removidos ao desinstalar um aplicativo.

Por exemplo, o seguinte mostra o estado do registro antes de um aplicativo ser desinstalado:

HKEY_CLASSES_ROOT
   .mp3
      (Default) = YourProgID
   YourProgID
      shell
         open
            command
               (Default) = yourapp.exe %1

A seguir, mostra o estado dessas mesmas entradas do Registro após a desinstalação do aplicativo.

HKEY_CLASSES_ROOT
   .mp3
      (Default) = YourProgID
   YourProgID subkey removed

Tipos de arquivo que dão suporte a metadados abertos

No Windows 7 e posteriores, os seguintes tipos de arquivo dão suporte a metadados abertos.

Tipo de arquivo Extensões de nome de arquivo
Documentos do Office 2007 .docx, .xlsx, .pptx
Documentos do Office 97-2003 .doc, .xls, .ppt
Pesquisa Salva .search-ms
Formatos baseados em mídia do Windows (formato de streaming avançado (ASF) contêiner) .wmv, .wma
MP4 (manipulador de propriedades) .mp4, .m4a, .m4v, .mp4v, .m4p, .m4b, .3gp, .3gpp, .3gp2, .mov

 

Registro de aplicativo

Como funcionam as associações de arquivos

Exibição de conteúdo por tipo de arquivo ou tipo

Verificador de Tipo de Arquivo

Manipuladores de tipo de arquivo

Identificadores programáticos

Tipos percebidos

Matrizes de Associação