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
<com4:ComServer>
<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
{}
bestimmten Vorkommenbereichs
Attribute und Elemente
Attribute
Nichts.
Untergeordnete Elemente
Untergeordnetes Element | Beschreibung |
---|---|
Klasse | Definiert eine Klassenregistrierung auf einem COM-Server. |
ExeServer | Registriert einen ExeServer mit einer oder vielen Klassenregistrierungen. |
ServiceServer- | Registriert einen ServiceServer mit einer oder mehreren Klassenregistrierungen. |
SurrogateServer- | Registriert einen SurrogateServer mit einer oder vielen Klassenregistrierungen. |
TreatAsClass- | Eine Registrierung, die einer CLSID-Registrierung mit dem Unterschlüssel TreatAs entspricht. |
ProgId- | Eine programmgesteuerte ID (ProgID), die einer CLSID zugeordnet werden kann. |
InProcessServer- | Registriert einen In-Process-Server mit einer oder vielen Klassenregistrierungen. |
InProcessHandler- | Registriert einen In-Process-Handler mit einer oder vielen Klassenregistrierungen. |
ManagedInProcessServer- | Registriert einen verwalteten In-Process-Server mit einer oder mehreren Klassenregistrierungen. |
com5:InProcessServer- | Registriert einen In-Process-Server mit einer oder vielen Klassenregistrierungen. Das Com5-Schema führt einige geringfügige Änderungen der syntaktischen Überprüfung aus dem com4-Schema ein. |
com5:InProcessHandler- | Registriert einen In-Process-Handler mit einer oder vielen Klassenregistrierungen. Das Com5-Schema führt einige geringfügige Änderungen der syntaktischen Überprüfung aus dem com4-Schema ein. |
Ü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 Obermenge von und Ersatz für die vorherigen COM-Schemaversionen ist. |
Bemerkungen
In Multi-Application-Paketen ist es wichtig, die COM-Serverregistrierung unter dem richtigen Anwendungs-/Anwendungsmanifestelement 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 der klassisch registrierten COM-Server, bei denen der COM-Server mit dem Clienttoken ausgeführt wird. Für die 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 Element "Applications/Application" 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 über CompatMode="modern" verfügen, die einzige Möglichkeit besteht darin, sie zwischen Erweiterungen aufzuteilen.
Änderungen in der com4-Erweiterung
Die Syntax der Com4-Erweiterung ist eine neue Erweiterungssyntax, die die vorherige Com-Erweiterungssyntax überlagert. Diese Version der Syntax 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 aus In-Process-Server-, In-Process-Handler- und Out-of-Process-Serverregistrierungen für dieselbe CLSID zu ermöglichen, wie möglich und mit dem klassischen Registrierungslayout unterstützt. Weitere Informationen zum COM-Registrierungslayout finden Sie unter CLSID Key.
Anforderungen
Artikel | Wert |
---|---|
Namespace- | http://schemas.microsoft.com/appx/manifest/com/windows10/4 |
Mindestversion des Betriebssystems | Windows 10 (Build 20348) |