com4:ComServer

Deklariert einen Paketerweiterungspunkt vom Typ windows.comServer. Die comServer-Erweiterung kann Klassenregistrierungen enthalten, einschließlich Aktivierungsdetails für die Server, die diese Klassen implementieren, sowie ProgId- und TreatAsClass-Registrierungen, die zusätzliche Bezeichner bereitstellen, die zum Verweisen auf diese Klassen zur Laufzeit verwendet werden.

Elementhierarchie

<Paket>

    <Anwendungen>

         <Anwendung>

              <Erweiterungen>

                   <com4:Extension>

                        <com4:ComServer>

Syntax

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

Schlüssel

{} spezifischer Vorkommensbereich

Attribute und Elemente

Attribute

Keine

Untergeordnete Elemente

Untergeordnetes Element Beschreibung
Klasse Definiert eine Klassenregistrierung auf einem COM-Server.
ExeServer Registriert einen ExeServer mit einer oder mehreren Klassenregistrierungen.
ServiceServer Registriert einen ServiceServer mit einer oder mehreren Klassenregistrierungen.
SurrogateServer Registriert einen SurrogateServer mit einer oder mehreren Klassenregistrierungen.
TreatAsClass Eine Registrierung, die einer CLSID-Registrierung mit dem Unterschlüssel TreatAs entspricht.
ProgId Ein programmgesteuerter Bezeichner (ProgID), der einer CLSID zugeordnet werden kann.
InProcessServer Registriert einen prozessinternen Server mit einer oder mehreren Klassenregistrierungen.
InProcessHandler Registriert einen Prozesshandler mit einer oder mehreren Klassenregistrierungen.
ManagedInProcessServer Registriert einen verwalteten prozessinternen Server mit einer oder mehreren Klassenregistrierungen.
com5:InProcessServer Registriert einen prozessinternen Server mit einer oder mehreren Klassenregistrierungen. Das com5-Schema führt einige geringfügige Änderungen an der syntaktischen Validierung vom com4-Schema ein.
com5:InProcessHandler Registriert einen Prozesshandler mit einer oder mehreren Klassenregistrierungen. Das com5-Schema führt einige geringfügige Änderungen an der syntaktischen Validierung vom com4-Schema ein.

Übergeordnete Elemente

Übergeordnetes Element BESCHREIBUNG
com4:Extension Stellt Funktionen zum Verfügbarmachen von COM-Registrierungen für Clients außerhalb des App-Pakets bereit. Die com4-Erweiterung ist eine neue Version, die eine Obermenge von und ersatz für die vorherigen COM-Schemaversionen darstellt.

Hinweise

Bei Paketen mit mehreren Anwendungen ist es wichtig, die COM-Serverregistrierung unter dem richtigen Anwendungs-/Anwendungsmanifestelement zu platzieren, da COM-Serverprozesse mit der Identität des Vorgängerelements Applications/Application ausgeführt werden.

COM-Server, die im Manifest registriert sind, erhalten immer AAP-Verhalten (Activate As Package), d. h. der COM-Server wird mit dem Standardtoken für die Benutzersitzung mit hinzugefügten Paket- und Anwendungsansprüchen ausgeführt. Dies unterscheidet sich vom Standardaktivierungsverhalten von klassisch registrierten COM-Servern, bei denen der COM-Server mit dem Token des Clients ausgeführt wird. Bei den meisten Anwendungen ist dieser Unterschied nicht spürbar, da Clients in der Regel mit dem Standardtoken der Benutzersitzung ausgeführt werden. Andere Aktivierungsverhalten, z. B. RunAs, werden nicht unterstützt.

Es ist möglich, mehrere comServer-Erweiterungen unter dem Applications/Application-Element zu verwenden, aber in den meisten Fällen ist dies weder erforderlich noch empfohlen. Ein Beispiel für einen Edgefall, bei dem mehrere comServer-Erweiterungen erforderlich sind, ist, wenn ein Paket einige der Registrierungen compatMode="classic" aufweisen muss, während andere CompatMode="modern" haben, die einzige Möglichkeit, dies zu tun, besteht darin, sie zwischen Erweiterungen aufzuteilen.

Änderungen in der com4-Erweiterung

Die Syntax der com4-Erweiterung ist eine neue Obermenge der vorherigen Com-Erweiterungssyntax. Diese Version der Syntax unterstützt dieselbe Struktur wie ältere Versionen der Syntax, wobei Klassenregistrierungen durch Die Elemente ExeServer/Class, SurrogateServer/Class, ServiceServer/Class, InProcessServer/Class, InProcessHandler/Class oder ManagedInProcessServer/Class dargestellt werden.

Die neue Syntax unterstützt auch alternative Strukturen, in denen:

  • Die Elemente ExeServer/ClassReference, SurrogateServer/ClassReference, ServiceServer/ClassReference, InProcessServer/ClassReference, InProcessHandler/ClassReference oder ManagedInProcessServer/ClassReference verweisen auf Class-Elemente der obersten Ebene

und/oder

  • SurrogateServer/InProcessServerClassReference-Elemente verweisen auf Elemente inProcessServer/Class (alternativ InProcessServer/ClassReference) oder ManagedInProcessServer/Class (alternativ ManagedInProcessServer/ClassReference).

Der Standard Zweck der neuen Syntaxstruktur besteht darin, Kombinationen von Prozessserver-, Prozesshandler- und Out-of-Process-Serverregistrierungen für dieselbe CLSID zu ermöglichen, wie dies mit dem klassischen Registrierungslayout möglich und unterstützt wird. Weitere Informationen zum COM-Registrierungslayout finden Sie unter CLSID-Schlüssel.

Anforderungen

Element Wert
Namespace http://schemas.microsoft.com/appx/manifest/com/windows10/4
Minimum OS Version Windows 10 (Build 20348)