Compartilhar via


Noções básicas sobre manipuladores de propriedades

As propriedades são representadas por IDs conhecidas como identificadores de propriedade (PIDs). Cada propriedade DEVE ter um identificador global exclusivo (GUID). Esse identificador consiste em um GUID, representando uma coleção de propriedades chamada conjunto de propriedades mais uma cadeia de caracteres ou um inteiro de 32 bits para identificar a propriedade dentro do conjunto. Se a forma inteira de ID for usada, os valores 0x00000000, 0xFFFFFFFF e 0xFFFFFFFE serão considerados inválidos. Os fornecedores podem garantir que suas propriedades sejam definidas exclusivamente colocando-as em um conjunto de propriedades definido por seus próprios GUIDs.

Importante

É fundamental que você defina propriedades com cuidado e estrategicamente para a primeira versão do esquema. Quaisquer alterações em propriedades personalizadas (como largura da coluna ou tipo de propriedade) não serão refletidas no banco de dados depois que um esquema for registrado. A única maneira de ter essas alterações reconhecidas depois que o esquema foi registrado uma vez em um sistema seria reconstruir o índice e, em seguida, registrar o novo esquema, ou registrar o esquema e, em seguida, criar uma nova propriedade (que consiste em um nome canônico e um PKEY) para cada versão subsequente; por exemplo PKEY_GroupName_PropertyNameV2, , PKEY_GroupName_PropertyNameV3e assim por diante). Não recomendamos a criação de novas propriedades dessa maneira, pois várias colunas estranhas podem afetar o desempenho do sistema.

 

Este tópico é organizado da seguinte maneira:

Metadados

No Windows Vista e posterior, um novo sistema de propriedades baseado em metadados é fundamental para organizar itens como arquivos, email e contatos. Nesse novo sistema de propriedades, os itens podem ser pesquisados com base em seus metadados, e os usuários podem ler ou gravar esses metadados. Os metadados neste sistema são representados por um conjunto extensível de propriedades implementadas como pares nome/valor.

No Windows Vista e posterior, um extenso conjunto de propriedades abrange as especificidades de itens como fotos, músicas, documentos, mensagens, contatos e arquivos. Os ISVs (fornecedores independentes de software) podem introduzir suas próprias propriedades na plataforma se nenhuma propriedade existente atender às suas necessidades.

Metadados abertos

O sistema de propriedades no Windows Vista e posterior é um sistema de metadados aberto. Um formato de arquivo armazena qualquer propriedade atribuída a ele e expõe esse valor quando consultado, independentemente da relevância ou significado. Isso permite que desenvolvedores de terceiros anexem propriedades extras ao arquivo sem exigir uma alteração no manipulador de propriedades associado a ele. Metadados abertos é um conceito poderoso. Para obter mais informações sobre como oferecer suporte a metadados abertos para um formato de arquivo baseado em XML, consulte "Dando suporte a metadados abertos" em Inicializando manipuladores de propriedades.

Observação

Os manipuladores de propriedades estão sempre associados a tipos de arquivo específicos; Assim, se o formato de arquivo contiver propriedades que exijam um manipulador de propriedades personalizado, você sempre deverá registrar uma extensão de nome de arquivo exclusiva para cada formato de arquivo.

 

Sobre manipuladores de propriedades

No Windows Vista e posterior, o Windows tem um sistema de propriedades extensível para armazenar e recuperar metadados nos arquivos e itens de dados que você acessa. O Windows Explorer e o sistema Windows Search, juntamente com outros aplicativos, usam manipuladores de propriedades para ler e modificar esses metadados. Se você for um desenvolvedor que possui um tipo de arquivo específico, deverá registrar um manipulador de propriedades para conceder ao sistema de propriedades acesso aos metadados em seus arquivos. Em alguns casos, você pode usar um manipulador de propriedades existente que possa ler e entender seu formato de arquivo e suas propriedades; Em outros casos, talvez seja necessário desenvolver um novo manipulador de propriedades para o tipo de arquivo.

A primeira etapa para escrever um manipulador de propriedades é considerar quais propriedades seu tipo de arquivo suporta. Os valores de propriedade são armazenados no fluxo de arquivos, principalmente para habilitar a transportabilidade. Quando os valores de propriedade são armazenados no próprio arquivo, como estão neste sistema, um usuário pode copiar um arquivo para outro computador, uma unidade flash USB ou outro sistema de arquivos, ou envia o arquivo como um anexo de email, as propriedades viajam com o arquivo e nunca ficam fora de sincronia ou perdidas. Portanto, se o formato de arquivo oferece suporte ao armazenamento de informações extras, é melhor armazenar as propriedades no próprio arquivo.

A próxima etapa é determinar quais propriedades o arquivo deve fornecer. Você pode inicialmente pensar que um conjunto limitado de propriedades é adequado. Um arquivo de áudio pode suportar apenas propriedades relacionadas a áudio e terminar aí. No entanto, esse arquivo de áudio poderia ser uma gravação de uma sessão de um tribunal, arquivada por um escritório de advocacia. Nesse caso, o escritório de advocacia certamente gostaria de associar outras propriedades não áudio a esse arquivo, como o número do processo. O provedor do formato de arquivo de áudio não pode determinar todos os cenários em que seu formato será usado. Devem, portanto, considerar a possibilidade de permitir o armazenamento geral de qualquer propriedade arbitrária suportada pelo sistema de propriedade.

Tecnologia Legada

A tecnologia de fluxo secundário do Microsoft Windows NT File System (NTFS) foi desenvolvida para oferecer suporte à persistência de informações extras com o arquivo por meio de um fluxo alternativo definido na camada do sistema de arquivos. Pode-se perguntar por que esses fluxos secundários não são usados como o método principal para armazenar propriedades, especialmente com suporte a metadados abertos. A principal razão é a transportabilidade dessas informações extras. Infelizmente, esses fluxos alternativos são removidos em muitos cenários, incluindo suporte a cache do lado do cliente (CSC), envio de arquivos como anexos e cópia de arquivos para um armazenamento não NTFS.

Os fluxos secundários não fornecem uma solução robusta na qual as propriedades têm garantia de viajar com o arquivo e, portanto, o sistema de propriedades do Windows Vista não fornece um mecanismo interno que explore os fluxos NTFS secundários para armazenamento de propriedades. Os ISVs também são altamente desencorajados de criar manipuladores de propriedades que usam fluxos secundários para o armazenamento de propriedades. É claro que há cenários em que os fluxos secundários NTFS são apropriados, particularmente quando os aplicativos podem garantir que o arquivo com o qual estão lidando seja sempre armazenado em um volume NTFS e não viaje como resultado da interação do usuário final.

Usando nomes de tipo

Usando listas de propriedades

Inicializando manipuladores de propriedade

Registrando e distribuindo manipuladores de propriedades

Práticas recomendadas e perguntas frequentes sobre o manipulador de propriedades