Criando propriedades personalizadas

As propriedades usadas no sistema de propriedades do Windows Vista e posteriores 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 ele é de vários valores), como ele pode ser exibido na interface do usuário do Windows, que tipo de rótulos (cadeias de caracteres de edição amigáveis) devem ser usados com ele e como ele é armazenado em cache no repositório de pesquisa para obter acesso mais rápido. As propriedades são identificadas pelo nome canônico ou pela 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 capitaliza letras no início de cada palavra, é usado nesses nomes. Nomes canônicos são usados em vários locais, incluindo listas de propriedades e nomes de coluna no cache de propriedades. Portanto, elas são usadas em consultas de linguagem SQL (SQL) 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 o nome System.Photo.DateTakencanô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 criar 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 estrategicamente 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 tiver sido registrado. As únicas maneiras de ter essas alterações 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 para cada versão subsequente; por exemplo PKEY_GroupName_PropertyNameV2, , PKEY_GroupName_PropertyNameV3e assim por diante). Não recomendamos criar novas propriedades dessa maneira, pois várias colunas desnecessárias podem afetar o desempenho do sistema.

 

Implementando manipuladores de propriedades

Esquema de descrição da propriedade