com4:Class
Задает свойства ИДЕНТИФИКАТОРа CLSID, зарегистрированного пакетом, которые могут совместно использоваться одной или несколькими конкретными регистрациями CLSID для различных контекстов класса. Например, рассмотрим ExeServer, поддерживающий внепроцессную активацию (CLSCTX_LOCAL_SERVER), и соответствующий внутрипроцессный обработчик (CLSCTX_INPROC_HANDLER). Сам по себе элемент com4:Class не регистрирует CLSID для активации, но на него могут ссылаться такие элементы, как ExeServerClassReference/ или InProcessHandler Class/ClassReference. В этом случае его атрибуты заменяют атрибуты, которые в противном случае могут быть указаны непосредственно в элементе ExeServer/Class или InProcessHandler/Class. Этот синтаксис необязателен для идентификаторов CLSID, зарегистрированных в контексте одного класса, но требуется для регистрации одного и того же идентификатора CLSID для нескольких контекстов классов, так как для проверки манифеста атрибут Id должен быть уникальным среди всех элементов Class, ExeServer/Class, InProcessHandler/Class и т. д.
Иерархия элементов
<com4:Class>
Синтаксис
<com4:Class
ProgId = 'An alphanumeric string separated by a period with a value between 1 and 255 characters in length (for example, Foo.Bar or Foo.Bar.1).'
VersionIndependentProgId = 'An alphanumeric string separated by a period with a value between 1 and 255 characters in length (for example, Foo.Bar or Foo.Bar.1).'
AutoConvertTo = 'A GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.'
InsertableObject = 'A boolean value.'
ShortDisplayName = 'A string with a value between 1 and 40 characters in length.'
Id = 'A GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.'
DisplayName = 'A string with a value between 1 and 256 characters in length. This string is localizable.' >
<!-- Child elements -->
ImplementedCategories
Conversion
DataFormats
MiscStatus
Verbs
DefaultIcon
ToolboxBitmap32
TypeLib
</com4:Class>
Элементы и атрибуты
Атрибуты
Атрибут | Описание | Тип данных | Обязательно | Значение по умолчанию |
---|---|---|---|---|
Progid | Связывает программный идентификатор (ProgID) с ИДЕНТИФИКАТОРом CLSID. | Буквенно-цифровая строка, разделенная точкой со значением от 1 до 255 символов (например, Foo.Bar или Foo.Bar.1). | Нет | |
VersionIndependentProgId | Связывает ProgID с CLSID. Это значение используется для определения последней версии приложения объекта. | Буквенно-цифровая строка, разделенная точкой со значением от 1 до 255 символов (например, Foo.Bar или Foo.Bar.1). | Нет | |
AutoConvertTo | Задает автоматическое преобразование заданного класса объектов в новый класс объектов. | GUID в формате xxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx. | Нет | |
InsertableObject | Указывает, что этот класс можно вставить. | Логическое значение. | Нет | |
ShortDisplayName | Краткая версия отображаемого имени класса. | Строка со значением от 1 до 40 символов. | Нет | |
Id | Атрибут Id соответствует идентификатору CLSID (HKCR\CLSID{MyGuid}). | GUID в формате xxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx. | Да | |
Отображаемое имя | Отображаемое имя класса. | Строка со значением от 1 до 256 символов в длину. Эта строка может быть локализована. | Нет |
Дочерние элементы
Дочерний элемент | Описание |
---|---|
Реализованные категории | Указывает категории, реализованные классом . |
Преобразование | Задает форматы, которые приложение может читать и записывать. |
Dataformats | Задает форматы данных по умолчанию и main, поддерживаемые приложением. |
MiscStatus | Указывает способ создания и отображения объекта. |
Глаголы | Указывает команды, которые будут зарегистрированы для приложения. |
DefaultIcon | Предоставляет сведения о значках по умолчанию для знаковых представлений объектов. |
ToolboxBitmap32 | Определяет имя модуля и идентификатор ресурса для растрового изображения 16 x 16, используемого для лицевой стороны панели инструментов или кнопки панели элементов. |
Typelib | Библиотека типов для класса или интерфейса. |
Родительские элементы
Родительский элемент | Описание |
---|---|
Расширения | Определяет одну или несколько точек расширяемости для приложения. |
Комментарии
Ключ CLSID в макете реестра COM поддерживает две категории сведений о регистрации для CLSID:
- Сведения об активации для определенного контекста класса. Например, подраздел LocalServer32 для активации outofproc (CLSCTX_LOCAL_SERVER), подраздел InprocHandler32 для активации обработчика inproc (CLSCTX_INPROC_HANDLER) или подраздел InprocServer32 для активации inproc (CLSCTX_INPROC_SERVER). Один и тот же ИДЕНТИФИКАТОР CLSID может иметь регистрации для любого сочетания контекстов класса, и сведения об активации для каждого из них указываются независимо в соответствующих подразделах.
- Сведения о идентификаторе CLSID, совместно используемом контекстами классов. Например, свойства OLE-сервера, используемые в сценариях OLE, набор категорий компонентов, реализованных CLSID и т. д., предоставляются через другие подразделы ключа CLSID, а если сведения об активации предоставляются для нескольких контекстов классов, эти свойства семантически связываются с CLSID, а не с контекстом конкретного класса.
Атрибуты элемента com4:Class верхнего уровня соответствуют сведениям в ключе CLSID, совместно используемым контекстами класса. Если пакет поддерживает активацию CLSID для одного контекста класса, использование элемента класса верхнего уровня является необязательным, и эти атрибуты можно также указать непосредственно во вложенном элементе Class (например, ExeServer/Class), который предоставляет сведения об активации. Однако макет реестра COM не позволяет указывать эти свойства независимо для разных контекстов классов, а API-интерфейсы, запрашивающие эти свойства, не позволяют вызывающей стороне указать контекст класса. Чтобы отразить этот аспект модели регистрации com-классов, синтаксис манифеста позволяет указать эти свойства только один раз для CLSID, что требует уникальности атрибута Id для элементов класса верхнего уровня и вложенных элементов Class. Таким образом, чтобы зарегистрировать несколько контекстов классов для CLSID в манифесте пакета, выполните следующие действия.
- Общие свойства должны быть предоставлены в качестве атрибутов элемента Класса верхнего уровня.
- Сведения о контекстной активации для каждого класса должны быть предоставлены во вложенных элементах ClassReference, например ExeServerClassReference/ и InProcessHandlerClassReference/ для ИДЕНТИФИКАТОРа CLSID, поддерживающего активацию outofproc и обработчик inproc. Атрибут Id элемента ClassReference ссылается на элемент класса верхнего уровня, содержащий общие свойства.
Пример
<com4:Extension Category="windows.comServer">
...
<!-- Example of a CLSID that has both aan inproc server and an exe server implementation, using top level Claass and ClassReference -->
<com4:Class Id="10000000-0000-0000-0000-000000000009" DisplayName="CLSID_FOO3"/>
<com4:ExeServer Executable="MyServer.exe" DisplayName="My Server">
<com4:ClassReference Id="10000000-0000-0000-0000-000000000009" />
</com4:ExeServer>
<com4:InProcessServer Path="MyServer.dll">
<com4:ClassReference Id="10000000-0000-0000-0000-000000000009" ThreadingModel="Both"/>
</com4:InProcessServer>
...
</com4:Extension>
Требования
Элемент | Значение |
---|---|
Пространство имен | http://schemas.microsoft.com/appx/manifest/com/windows10/4 |
Minimum OS Version | Windows 10 (сборка 20348) |