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 GUID (identificador global exclusivo). 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 as propriedades com cuidado e estrategicamente para a primeira versão do esquema. Quaisquer alterações nas 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 fazer com que essas alterações sejam reconhecidas depois que o esquema tiver sido registrado uma vez em um sistema seria recompilar 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_PropertyNameV3
e assim por diante). Não recomendamos a criação de novas propriedades dessa maneira, pois várias colunas irrelevantes 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, emails 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 nesse sistema são representados por um conjunto extensível de propriedades implementadas como pares de 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.
Abrir metadados
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 do 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 são um conceito poderoso. Para obter mais informações sobre como dar suporte a metadados abertos para um formato de arquivo baseado em XML, consulte "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; Portanto, se o formato de arquivo contiver propriedades que exijam um manipulador de propriedades personalizadas, 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 dar 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 o 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 na escrita de um manipulador de propriedades é considerar quais propriedades seu tipo de arquivo dá suporte. 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 nesse 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 der 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 pensar inicialmente que um conjunto limitado de propriedades é adequado. Um arquivo de áudio pode dar suporte apenas a propriedades relacionadas ao áudio e terminar aí. No entanto, esse arquivo de áudio pode 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 relacionadas a áudio a esse arquivo, como o número do caso. O provedor do formato de arquivo de áudio não pode determinar todos os cenários em que seu formato será usado. Eles devem, portanto, considerar a habilitação do armazenamento geral de qualquer propriedade arbitrária suportada pelo sistema de propriedades.
Tecnologia legada
A tecnologia de fluxo secundário do Microsoft Windows NT File System (NTFS) foi desenvolvida para dar 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 ao cache do lado do cliente (CSC), envio de arquivos como anexos e cópia de arquivos para um repositório não NTFS.
Os fluxos secundários não fornecem uma solução robusta na qual as propriedades têm a 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 a 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 do NTFS são apropriados, especialmente 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.
Tópicos relacionados