com4:ComServer
Объявляет точку расширения пакета типа windows.comServer. Расширение comServer может включать регистрации классов, включая сведения об активации для серверов, реализующих эти классы, а также регистрации ProgId и TreatAsClass, которые предоставляют дополнительные идентификаторы, используемые для ссылки на эти классы во время выполнения.
Иерархия элементов
<com4:ComServer>
Синтаксис
<com4:ComServer>
<!-- Child elements -->
Class{0,1}
ExeServer{0,1}
ServiceServer{0,1}
SurrogateServer{0,1}
TreatAsClass{0,1}
ProgId{0,1}
InProcessServer{0,1}
InProcessHandler{0,1}
ManagedInProcessServer{0,1}
com5:InProcessServer{0,1}
com5:InProcessHandler{0,1}
</com4:ComServer>
Ключ
{}
определенный диапазон вхождений
Элементы и атрибуты
Атрибуты
Отсутствует.
Дочерние элементы
Дочерний элемент | Описание |
---|---|
Класс | Определяет регистрацию класса на COM-сервере. |
ExeServer | Регистрирует ExeServer с одной или несколькими регистрациями классов. |
ServiceServer | Регистрирует ServiceServer с одной или несколькими регистрациями классов. |
SurrogateServer | Регистрирует SurrogateServer с одной или несколькими регистрациями классов. |
TreatAsClass | Регистрация, соответствующая регистрации CLSID с подразделом TreatAs. |
Progid | Программный идентификатор (ProgID), который можно связать с CLSID. |
InProcessServer | Регистрирует внутрипроцессный сервер с одной или несколькими регистрациями классов. |
InProcessHandler | Регистрирует внутрипроцессный обработчик с одной или несколькими регистрациями классов. |
ManagedInProcessServer | Регистрирует управляемый внутрипроцессный сервер с одной или несколькими регистрациями классов. |
com5:InProcessServer | Регистрирует внутрипроцессный сервер с одной или несколькими регистрациями классов. Схема com5 вводит некоторые незначительные изменения в синтаксической проверке из схемы com4. |
com5:InProcessHandler | Регистрирует внутрипроцессный обработчик с одной или несколькими регистрациями классов. Схема com5 вводит некоторые незначительные изменения в синтаксической проверке из схемы com4. |
Родительские элементы
Родительский элемент | Описание |
---|---|
com4:Extension | Предоставляет функциональные возможности для предоставления регистрации COM клиентам за пределами пакета приложения. Расширение com4 — это новая версия, которая является надмножеством и заменой предыдущих версий схемы COM. |
Комментарии
В пакетах с несколькими приложениями важно разместить регистрацию COM-сервера в правильном элементе Application/Application manifest, так как процессы COM-сервера будут выполняться с удостоверением элемента -предка Applications/Application.
Com-серверы, зарегистрированные в манифесте, всегда получают поведение "Активировать как пакет" (AAP), что означает, что COM-сервер выполняется с маркером сеанса пользователя по умолчанию с добавленными утверждениями пакета и приложения. Это отличается от поведения активации по умолчанию для классически зарегистрированных COM-серверов, в которых COM-сервер работает с маркером клиента. Для большинства приложений эта разница не будет заметной, так как клиенты обычно выполняются с маркером сеанса пользователя по умолчанию. Другие варианты активации, такие как запуски, не поддерживаются.
В элементе Applications/Application можно использовать несколько расширений comServer , но в большинстве случаев это не требуется и не рекомендуется. Примером пограничного случая, когда требуется несколько расширений comServer , является то, что для некоторых регистраций пакета требуется compatMode="classic", в то время как у других есть CompatMode="modern", единственный способ сделать это — разделить их между расширениями.
Изменения в расширении com4
Синтаксис расширения com4 — это новое надмножество предыдущего синтаксиса расширения com. Эта версия синтаксиса поддерживает ту же структуру, что и предыдущие версии синтаксиса, где регистрации классов представлены элементами ExeServer/Class, SurrogateServer/Class, ServiceServer/Class, InProcessServer/Class, InProcessHandler/Class или ManagedInProcessServer/Class.
Новый синтаксис также поддерживает альтернативные структуры, где:
- Элементы ExeServer/ClassReference, SurrogateServer/ClassReference, ServiceServer/ClassReference, InProcessServer/ClassReference, InProcessHandler/ClassReference или ManagedInProcessServer/ClassReference ссылались на элементы класса верхнего уровня
и (или)
- Элементы SurrogateServer/InProcessServerClassReference ссылались на элементы InProcessServer/Class (или InProcessServer/ClassReference) или ManagedInProcessServer/Class (или ManagedInProcessServer/ClassReference).
Main целью новой структуры синтаксиса является включение сочетаний внутрипроцессных серверов, внутрипроцессных обработчиков и внепроцессных регистраций серверов для одного и того же идентификатора CLSID, как это возможно и поддерживается в классическом макете реестра. Дополнительные сведения о макете реестра COM см. в разделе Ключ CLSID.
Требования
Элемент | Значение |
---|---|
Пространство имен | http://schemas.microsoft.com/appx/manifest/com/windows10/4 |
Minimum OS Version | Windows 10 (сборка 20348) |