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 使用一个或多个类注册注册代理服务器。
TreatAsClass 与 TreatAs 子项的 CLSID 注册相对应的注册。
ProgId 编程标识符 (可以与 CLSID 关联的 ProgID) 。
InProcessServer 使用一个或多个类注册注册进程内服务器。
InProcessHandler 使用一个或多个类注册注册进程内处理程序。
ManagedInProcessServer 使用一个或多个类注册注册托管进程内服务器。
com5:InProcessServer 使用一个或多个类注册注册进程内服务器。 com5 架构对 com4 架构的语法验证进行了一些细微更改。
com5:InProcessHandler 使用一个或多个类注册注册进程内处理程序。 com5 架构对 com4 架构的语法验证进行了一些细微更改。

父元素

父元素 描述
com4:Extension 提供向应用包外部的客户端公开 COM 注册的功能。 com4 扩展是新版本,它是以前的 COM 架构版本的超集和替代。

注解

在多应用程序包中,请务必将 COM 服务器注册放在正确的应用程序/应用程序清单元素下,因为 COM 服务器进程将使用上级 Applications/Application 元素的标识运行。

在清单中注册的 COM 服务器始终获取激活为包 (AAP) 行为,这意味着 COM 服务器使用用户会话默认令牌运行,并添加了包和应用程序声明。 这不同于经典注册的 COM 服务器的默认激活行为,其中 COM 服务器使用客户端的令牌运行。 对于大多数应用程序,这种差异将不明显,因为客户端通常使用用户会话默认令牌运行。 不支持其他激活行为,例如 运行方式

应用程序/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 密钥

要求

Namespace http://schemas.microsoft.com/appx/manifest/com/windows10/4
Minimum OS Version Windows 10 (内部版本 20348)