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

{} bestimmter Vorkommenbereich

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 In-Process-Server mit einer oder mehreren Klassenregistrierungen.
InProcessHandler Registriert einen In-Process-Handler mit einer oder mehreren Klassenregistrierungen.
ManagedInProcessServer Registriert einen verwalteten In-Process-Server mit einer oder mehreren Klassenregistrierungen.

Übergeordnete Elemente

Übergeordnetes Element Beschreibung
com4:Extension Stellt Funktionen bereit, um COM-Registrierungen für Clients außerhalb des App-Pakets verfügbar zu machen. Die Com4-Erweiterung ist eine neue Version, die eine Übermenge von und Ersatz für die vorherigen COM-Schemaversionen ist.

Bemerkungen

In Multi-Application-Paketen ist es wichtig, die COM-Serverregistrierung unter dem richtigen Application/Application-Manifestelement zu platzieren, da COM-Serverprozesse mit der Identität des vorgängern Applications/Application-Elements ausgeführt werden.

COM-Server, die im Manifest registriert sind, erhalten immer das AAP-Verhalten (Activate As Package), was bedeutet, dass der COM-Server mit dem Standardtoken der Benutzersitzung mit Paket- und Anwendungsansprüchen ausgeführt wird. Dies unterscheidet sich vom Standardaktivierungsverhalten klassischer COM-Server, in dem der COM-Server mit dem Clienttoken ausgeführt wird. Bei den meisten Anwendungen ist dieser Unterschied nicht erkennbar, 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 haben, 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 benötigt, um CompatMode="classic" zu haben, während andere CompatMode="modern" haben, die einzige Möglichkeit ist, sie zwischen Erweiterungen aufzuteilen.

Änderungen in der Com4-Erweiterung

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

Die neue Syntax unterstützt auch alternative Strukturen, wobei:

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

und/oder

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

Der Hauptzweck der neuen Syntaxstruktur besteht darin, Kombinationen von In-Process-Server- und Prozessserverregistrierungen für dieselbe CLSID wie möglich und mit dem klassischen Registrierungslayout zu ermöglichen. Weitere Informationen zum COM-Registrierungslayout finden Sie unter CLSID Key.

Anforderungen

Wert
Namespace http://schemas.microsoft.com/appx/manifest/com/windows10/4