com4:SurrogateServer

Inscrit un surrogateServer avec une ou plusieurs inscriptions de classe.

Hiérarchie d’éléments

<Paquet>

    <Applications>

         <Application>

              <Extensions>

                   <com4:SurrogateServer>

Syntaxe

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

Attributs et éléments

Attributs

Attribut Description Type de données Obligatoire Valeur par défaut
CustomSurrogateExecutable Chemin d’accès à dllSurrogate dans la clé AppId. Ce chemin d’accès est relatif à la racine du package et doit référencer un fichier dans le package. Ceci est mutument exclusif avec SystemSurrogate. Chaîne dont la longueur doit être .exe comprise entre 1 et 256 caractères et ne peut pas contenir ces caractères : <, , , :>, ", |, ?ou *. Yes
DisplayName DisplayName est une chaîne localisable correspondant à la valeur de clé AppID par défaut. Chaîne dont la valeur est comprise entre 1 et 256 caractères. Yes
LaunchAndActivationPermission Chaîne SDDL qui correspond à la valeur LaunchPermission de la clé AppID. Valeur de chaîne SDDL . Yes
Appid AppId qui fait référence à la clé AppId associée. GUID sous la forme xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxx. Yes
SystemSurrogate Valeur qui correspond aux valeurs connues de la valeur DllSurrogate de la clé AppId. Ceci est mutument exclusif avec CustomSurrogateExecutable. Chaîne avec la valeur facultative suivante : « PreviewHost ». Yes

Éléments enfants

Élément enfant Description
Classe Définit une inscription de classe de serveur de substitution.
InProcessServerClassReference Spécifie la classe avec laquelle le serveur in-process managé est associé et définit les détails de l’inscription.
ClassReference Spécifie la classe avec laquelle le serveur in-process inscrit est associé et définit les détails de l’inscription.

Éléments parents

Élément parent Description
Extensions Définit un ou plusieurs points d’extensibilité pour l’application.

Remarques

La clé CLSID](/windows/win32/com/clsid-key-hklm) dans la disposition du registre COM permet à un CLSID d’être inscrit pour l’activation inproc (CLSCTX_INPROC_SERVER) et pour l’activation de l’échec dans un serveur de substitution (CLSCTX_LOCAL_SERVER) en spécifiant :

  • Détails de l’activation inproc dans une sous-clé InprocServer32 .
  • Référence à une clé AppID via la valeur AppID de la clé CLSID, où la clé AppID spécifie une substitution via la valeur DllSurrogate . Notez que pour l’activation d’une panne dans un serveur de substitution, les détails de l’inscription du serveur inproc, par exemple, le chemin d’accès dll et ThreadingModel, sont également utilisés dans l’activation outofproc. L’enfant ClassReference de l’élément InProcessServer permet à un package qui inscrit un CLSID à la fois pour l’activation inproc et outofproc de spécifier les détails du serveur inproc une fois, en tant qu’élément InProcessServer/ClassReference ou InProcessServer/ClassReference, et référence cet élément à partir du Serveur de substitution qui prend en charge l’activation outofproc du CLSID. Cette structure pour les inscriptions inproc/outofproc reflète plus étroitement la disposition du Registre COM que la spécification indépendante du chemin d’accès dll et threadingModel dans les éléments InProcessServer/ClassReference et SurrogateServer/ClassReference.

Lors de l’empaquetage d’une application avec un CLSID inscrit pour l’activation outofproc dans un serveur de substitution, il est généralement recommandé que seul le serveur de substitution soit inscrit dans le manifeste. Par exemple, les inscriptions de substitution sont souvent utilisées pour prendre en charge les points d’extension COM qui ont historiquement activé les implémentations de serveur inproc, mais qui recommandent désormais une inscription de serveur outofproc comme meilleure pratique pour l’isolation. Pour les applications empaquetées, il existe des limitations fonctionnelles supplémentaires pour les serveurs inproc (voir In-ProcessServers pour plus d’informations), tandis que tout package avec la fonctionnalité restreinte runFullTrust peut inscrire correctement un serveur de substitution, et pour la plupart des points d’extension qui inscrivent un serveur de substitution est suffisant pour permettre la fonctionnalité de l’extension. Toutefois, si une application empaquetée doit prendre en charge l’activation inproc de ses CLSID pour la compatibilité avec d’autres applications qui demandent l’activation inproc (CLSCTX_INPROC_SERVER) et répond aux exigences d’inscription d’un serveur inproc, elle peut inscrire le CLSID pour l’activation inproc et l’activation outofproc dans un substitut. Dans ce cas, il est recommandé de fournir les détails du serveur inproc dans un élément InProcessServer/Class ou InProcessServer/ClassReference et de les référencer à partir d’un élément SurrogateServer/InProcessServerClassReference .

Configuration requise

Valeur
Espace de noms http://schemas.microsoft.com/appx/manifest/com/windows10/4