Поделиться через


Создание пользовательских свойств

Свойства, используемые в системе свойств Windows Vista и более поздних версий, объявляются в схемах свойств. Эти схемы свойств определяются в XML-файлах и описывают различные аспекты свойства, включая его тип (включая сведения о его примитивном типе и многозначном типе), как его можно отобразить в пользовательском интерфейсе Windows, какие метки (пользовательские строки редактирования) должны использоваться вместе с ним, а также как он кэшируется в хранилище поиска для ускорения доступа. Свойства определяются их каноническим именем или ключом свойства (PKEY).

Каноническое имя — это понятное для чтения имя свойства и использует соглашение о пространстве имен, аналогичное тому, которое используется в Microsoft .NET. Для системных свойств (тех, которые включены в Windows), это System.GroupName.PropertyNameсоглашение. Обратите внимание, что схема регистра Pascal, которая прописывает буквы в начале каждого слова, используется в этих именах. Канонические имена используются в различных местах, включая списки свойств и имена столбцов в кэше свойств. Поэтому они используются в запросах язык SQL (SQL) для получения значения свойства.

PKEY — это пара значений, состоящих из GUID и DWORD, которые называются форматом ИДЕНТИФИКАТОРа и propID соответственно. Она представлена структурой PROPERTYKEY . Большинство API системы свойств принимают эти ключи свойств. Пакет SDK для Windows содержит файл заголовка Propkey.h, содержащий определение макроса каждого System ключа свойства с соглашением PKEY_GroupName_PropertyName. Например, PKEY_Photo_DateTaken ключ свойства для свойства с каноническим именем System.Photo.DateTaken. Значения свойств хранятся в виде структуры PROPVARIANT , которая является расширением типов OLE VARIANT.

Этот раздел содержит следующий раздел, который является неотъемлемой частью создания пользовательских свойств:

Примечание.

Из-за потенциальных трудностей, которые индексатор может иметь при использовании схемы системы свойств, важно тщательно определить атрибуты и стратегически для первого выпуска схемы. Любые изменения атрибутов (тип, ширина столбца, индексируемый) не будут отражены в базе данных после регистрации схемы. Единственным способом распознать эти изменения после регистрации схемы один раз в системе будет либо перестроить индекс, а затем зарегистрировать новую схему, либо зарегистрировать схему, а затем создать новое свойство для каждого последующего выпуска; например PKEY_GroupName_PropertyNameV2, и PKEY_GroupName_PropertyNameV3т. д.). Мы не рекомендуем создавать новые свойства таким образом, так как несколько лишних столбцов могут повлиять на производительность системы.

 

Реализация обработчиков свойств

Схема описания свойств