com4:SurrogateServer

Registra un suplenteServer con uno o varios registros de clase.

Jerarquía de elemento

<Paquete>

    <APLICACIONES>

         <Application>

              <Extensiones>

                   <com4:SurrogateServer>

Sintaxis

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

Atributos y elementos

Atributos

Atributo Descripción Tipo de datos Obligatorio Valor predeterminado
CustomSurrogateExecutable Ruta de acceso a DllSurrogate en la clave AppId. Esta ruta de acceso es relativa a la raíz del paquete y debe hacer referencia a un archivo en el paquete. Esto es exclusivo con SystemSurrogate. Cadena con un valor entre 1 y 256 caracteres de longitud que debe terminar con .exe y no puede contener estos caracteres: <, >, :, ", |, ?o *.
DisplayName DisplayName es una cadena localizable correspondiente al valor de clave AppID predeterminado. Cadena con un valor entre 1 y 256 caracteres de longitud.
LaunchAndActivationPermission Cadena SDDL que corresponde al valor LaunchPermission de la clave AppID. Valor de cadena SDDL .
AppId AppId que hace referencia a la clave appId asociada. GUID con el formato xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
SystemSurrogate Valor que corresponde a valores conocidos del valor DllSurrogate de la clave AppId. Esto es exclusivo de formamutal con CustomSurrogateExecutable. Cadena con el siguiente valor opcional: "PreviewHost".

Elementos secundarios

Elemento secundario Descripción
Clase Define un registro de clase de servidor suplente.
InProcessServerClassReference Especifica la clase con la que está asociado el servidor en proceso administrado y establece los detalles de registro.
ClassReference Especifica la clase con la que está asociado el servidor en proceso registrado y establece los detalles de registro.

Elementos primarios

Elemento primario Descripción
Extensiones Define uno o varios puntos de extensibilidad para la aplicación.

Comentarios

La clave CLSID](/windows/win32/com/clsid-key-hklm) en el diseño del Registro COM permite registrar un CLSID para la activación inproc (CLSCTX_INPROC_SERVER) y para la activación outofproc en un servidor suplente (CLSCTX_LOCAL_SERVER) especificando:

  • Detalles de activación inproc en una subclave InprocServer32 .
  • Referencia a una clave AppID a través del valor AppID de la clave CLSID, donde la clave AppID especifica un suplente a través del valor DllSurrogate . Tenga en cuenta que para la activación outofproc en un servidor suplente, los detalles del registro del servidor inproc, por ejemplo, la ruta de acceso dll y ThreadingModel, también se usan en la activación fuera deproc. El elemento secundario ClassReference del elemento InProcessServer habilita un paquete que registra un CLSID para la activación inproc y outofproc para especificar los detalles del servidor inproc una vez, como un elemento InProcessServer/Class o InProcessServer/ClassReference , y hacer referencia a este elemento desde el SurrogateServer que admite la activación outofproc del CLSID. Esta estructura para los registros de inproc/outofproc refleja más detenidamente el diseño del registro COM que especificar de forma independiente la ruta de acceso dll y ThreadingModel en los elementos InProcessServer/ClassReference y SurrogateServer/ClassReference.

Al empaquetar una aplicación con un CLSID registrado para la activación outofproc en un servidor suplente, generalmente se recomienda que solo el servidor suplente esté registrado en el manifiesto. Por ejemplo, los registros suplentes se usan a menudo para admitir puntos de extensión basados en COM que se han habilitado históricamente en las implementaciones del servidorproc, pero que ahora recomiendan un registro de servidor outofproc como procedimiento recomendado para el aislamiento. En el caso de las aplicaciones empaquetadas, existen limitaciones funcionales adicionales para los servidores inproc (consulte In-ProcessServers para obtener más información), mientras que cualquier paquete con la funcionalidad restringida runFullTrust puede registrar correctamente un servidor suplente y para la mayoría de los puntos de extensión que registran un servidor suplente es suficiente para habilitar la funcionalidad de la extensión. Sin embargo, si una aplicación empaquetada necesita admitir la activación inproc de sus CLSID para la compatibilidad con otras aplicaciones que solicitan la activación inproc (CLSCTX_INPROC_SERVER) y cumple los requisitos para registrar un servidor inproc, puede registrar el CLSID para la activación inproc y la activación fuera deproc en un suplente. En este caso, se recomienda proporcionar los detalles del servidor inproc en un elemento InProcessServer/Class o InProcessServer/ClassReference y hacer referencia a ellos desde un elemento SurrogateServer/InProcessServerClassReference .

Requisitos

Elemento Value
Espacio de nombres http://schemas.microsoft.com/appx/manifest/com/windows10/4
Minimum OS Version Windows 10 (compilación 20348)