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


com4:ComServer

Объявляет точку расширения пакета типа windows.comServer. Расширение comServer может включать регистрации классов, включая сведения об активации для серверов, реализующих эти классы, а также регистрации ProgId и TreatAsClass, которые предоставляют дополнительные идентификаторы, используемые для ссылки на эти классы во время выполнения.

Иерархия элементов

<Пакет>

    <Приложения>

         <Приложение>

              <Расширения>

                   <com4:Extension>

                        <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)