Criando propriedades personalizadas
As propriedades usadas no sistema de propriedades do Windows Vista e posterior são declaradas em esquemas de propriedade. Esses esquemas de propriedade são definidos em arquivos XML e descrevem vários aspectos de uma propriedade, incluindo seu tipo (incluindo informações sobre seu tipo primitivo e se ela tem vários valores), como ela pode ser exibida na interface do usuário do Windows, que tipo de rótulos (cadeias de caracteres de edição amigáveis) devem ser usados com ela e como ela é armazenada em cache no repositório de pesquisa para acesso mais rápido. As propriedades são identificadas por seu nome canônico ou sua chave de propriedade (PKEY).
Um nome canônico é o nome amigável do leitor da propriedade e usa uma convenção de namespace semelhante à usada no Microsoft .NET. Para propriedades definidas pelo sistema (aquelas incluídas no Windows), a convenção é System.GroupName.PropertyName
. Observe que o esquema de maiúsculas e minúsculas Pascal, que coloca letras maiúsculas no início de cada palavra, é usado nesses nomes. Os nomes canônicos são usados em vários locais, incluindo listas de propriedades e nomes de coluna no cache de propriedades. Portanto, eles são usados em consultas SQL (Structured Query Language) para recuperar um valor de propriedade.
Um PKEY é um par de valores que consistem em um GUID e um DWORD, conhecidos como formatID e propID, respectivamente. Ele é representado por uma estrutura PROPERTYKEY . A maioria das APIs do sistema de propriedades aceita essas chaves de propriedade. O SDK (Software Development Kit) do Windows inclui o arquivo de cabeçalho Propkey.h que inclui uma definição de macro de cada uma das System
chaves de propriedade com a convenção de PKEY_GroupName_PropertyName
. Por exemplo, PKEY_Photo_DateTaken
é a chave de propriedade da propriedade com nome System.Photo.DateTaken
canônico . Os valores de propriedade são armazenados na forma de uma estrutura PROPVARIANT , que é uma extensão dos tipos OLE VARIANT.
Esta seção contém o seguinte tópico, que é essencial para a criação de propriedades personalizadas:
Observação
Devido a possíveis dificuldades que o indexador pode ter ao consumir o esquema do sistema de propriedades, é fundamental que você defina atributos com cuidado e estratégia para a primeira versão do esquema. Quaisquer alterações nos atributos (tipo, largura da coluna, se indexável) não serão refletidas no banco de dados depois que um esquema for registrado. As únicas maneiras de fazer com que essas alterações sejam reconhecidas depois que o esquema tiver sido registrado uma vez em um sistema seriam recompilar o índice e, em seguida, registrar o novo esquema ou registrar o esquema e criar uma nova propriedade 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.
Tópicos relacionados