com4:SurrogateServer

Registriert einen SurrogateServer mit einer oder mehreren Klassenregistrierungen.

Elementhierarchie

<Paket>

    <Anwendungen>

         <Anwendung>

              <Erweiterungen>

                   <com4:SurrogateServer>

Syntax

<com4:SurrogateServer
  CustomSurrogateExecutable = 'A string with a value between 1 and 256 characters in length that must end with ".exe" and cannot contain these characters: <, >, :, ", |, ?, or *.'
  DisplayName = 'A string with a value between 1 and 256 characters in length. This string is localizable.'
  LaunchAndActivationPermission = 'An [SDDL string](/windows/win32/secauthz/security-descriptor-string-format) value.'
  AppId = 'A GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.'
  SystemSurrogate = 'A string with the following optional value: "PreviewHost".' >

  <!-- Child elements -->
  Class
  InProcessServerClassReference
  ClassReference

</com4:SurrogateServer>

Attribute und Elemente

Attribute

attribute BESCHREIBUNG Datentyp Erforderlich Standardwert
CustomSurrogateExecutable Ein Pfad zum DllSurrogate im AppId-Schlüssel. Dieser Pfad ist relativ zum Paketstamm und muss auf eine Datei im Paket verweisen. Dies ist mit SystemSurrogate exklusiv. Eine Zeichenfolge mit einem Wert zwischen 1 und 256 Zeichen, die mit enden .exe muss und darf die folgenden Zeichen enthalten: <, >, :, ", |, ?oder *. Yes
DisplayName DisplayName ist eine lokalisierbare Zeichenfolge, die dem AppID-Standardschlüsselwert entspricht. Eine Zeichenfolge mit einem Wert zwischen 1 und 256 Zeichen. Yes
LaunchAndActivationPermission Eine SDDL-Zeichenfolge , die dem LaunchPermission-Wert des AppID-Schlüssels entspricht. Ein SDDL-Zeichenfolgenwert . Yes
AppId Die AppId, die auf den zugeordneten AppId-Schlüssel verweist. Eine GUID im Format xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Yes
SystemSurrogate Ein Wert, der bekannten Werten aus dem DllSurrogate-Wert des AppId-Schlüssels entspricht. Dies ist mit CustomSurrogateExecutable exklusiv. Eine Zeichenfolge mit dem folgenden optionalen Wert: "PreviewHost". Yes

Untergeordnete Elemente

Untergeordnetes Element Beschreibung
Klasse Definiert eine Ersatzserverklassenregistrierung.
InProcessServerClassReference Gibt die Klasse an, der der verwaltete prozessinterne Server zugeordnet ist, und legt Registrierungsdetails fest.
ClassReference Gibt die Klasse an, der der registrierte prozessinterne Server zugeordnet ist, und legt Registrierungsdetails fest.

Übergeordnete Elemente

Übergeordnetes Element BESCHREIBUNG
Erweiterungen Definiert einen oder mehrere Erweiterbarkeitspunkte für die App.

Hinweise

Der CLSID-Schlüssel](/windows/win32/com/clsid-key-hklm) im COM-Registrierungslayout ermöglicht die Registrierung einer CLSID für die inproc-Aktivierung (CLSCTX_INPROC_SERVER) und für die outofproc-Aktivierung in einem Ersatzserver (CLSCTX_LOCAL_SERVER), indem Folgendes angegeben wird:

  • Details zur inproc-Aktivierung in einem InprocServer32-Unterschlüssel .
  • Ein Verweis auf einen AppID-Schlüssel über den AppID-Wert des CLSID-Schlüssels, wobei der AppID-Schlüssel ein Ersatzzeichen über den Wert DllSurrogate angibt. Beachten Sie, dass für die outofproc-Aktivierung auf einem Ersatzserver die Registrierungsdetails des inproc-Servers, z. B. DLL-Pfad und ThreadingModel, auch bei der Outofproc-Aktivierung verwendet werden. Das untergeordnete ClassReference-Element des InProcessServer-Elements ermöglicht es einem Paket, das eine CLSID sowohl für die Inproc- als auch für die Outofproc-Aktivierung registriert, die Details des inproc-Servers einmal als InProcessServer/Class - oder InProcessServer/ClassReference-Element anzugeben und auf dieses Element aus dem SurrogateServer zu verweisen, der die outofproc-Aktivierung der CLSID unterstützt. Diese Struktur für die Inproc/outofproc-Registrierungen spiegelt das COM-Registrierungslayout näher wider, als unabhängig den DLL-Pfad und ThreadingModel in den Elementen InProcessServer/ClassReference und SurrogateServer/ClassReference anzugeben.

Beim Packen einer Anwendung mit einer CLSID, die für die outofproc-Aktivierung in einem Ersatzserver registriert ist, wird im Allgemeinen empfohlen, dass nur der Ersatzserver im Manifest registriert wird. Beispielsweise werden Ersatzregistrierungen häufig verwendet, um COM-basierte Erweiterungspunkte zu unterstützen, die in der Vergangenheit inproc-Serverimplementierungen aktiviert haben, die jetzt jedoch eine Outofproc-Serverregistrierung als bewährte Methode für die Isolation empfehlen. Für verpackte Anwendungen gibt es zusätzliche funktionale Einschränkungen für inproc-Server (ausführliche Informationen finden Sie unter In-ProcessServers ), während jedes Paket mit der eingeschränkten Funktion runFullTrust erfolgreich einen Ersatzserver registrieren kann, und für die meisten Erweiterungspunkte reicht die Registrierung eines Ersatzservers aus, um die Funktionalität der Erweiterung zu aktivieren. Wenn eine gepackte Anwendung jedoch die inproc-Aktivierung ihrer CLSIDs unterstützen muss, um mit anderen Anwendungen kompatibel zu sein, die die inproc-Aktivierung (CLSCTX_INPROC_SERVER) anfordern, und die Anforderungen für die Registrierung eines inproc-Servers erfüllt, kann sie die CLSID für die Inproc-Aktivierung und outofproc-Aktivierung in einem Ersatzzeichen registrieren. In diesem Fall wird empfohlen, die inproc-Serverdetails in einem InProcessServer/Class - oder InProcessServer/ClassReference-Element anzugeben und aus einem SurrogateServer/InProcessServerClassReference-Element darauf zu verweisen.

Anforderungen

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