Share via


com4:InProcessServerClassReference

Especifica la clase o referencia de clase con la que está asociado el servidor en proceso registrado y establece los detalles de registro.

Jerarquía de elemento

<Paquete>

    <APLICACIONES>

         <Application>

              <Extensiones>

                   <com4:SurrogateServer>

                        <com4:InProcessServerClassReference>

Sintaxis

<com4:InProcessServerClassReference
  EnableOleDefaultHandler = 'A boolean value.'
  Id = 'A GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.' />

Atributos y elementos

Atributos

Atributo Descripción Tipo de datos Obligatorio Valor predeterminado
EnableOleDefaultHandler Debe establecerse en true si el valor predeterminado de la clave InprocHandler32 es Ole32.dll. De lo contrario, se debe omitir. Un valor booleano. False
Id Identificador de la clase a la que se hace referencia. GUID con el formato xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

Elementos secundarios

Ninguno.

Elementos primarios

Elemento primario Descripción
com4:SurrogateServer Registra un suplenteServer con uno o varios registros de clases.

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 fuera deproc en un servidor suplente (CLSCTX_LOCAL_SERVER) especificando:

  • Detalles de activación delproc 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 de registro del servidor inproc, por ejemplo, la ruta de acceso dll y ThreadingModel, también se usan en la activación fuera deproceso. 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 inproc/outofproc refleja mejor 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 suelen usar para admitir puntos de extensión basados en COM que históricamente se habilitan 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, hay 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, registrar 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 delproc (CLSCTX_INPROC_SERVER) y satisface 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 .

Ejemplos

En el ejemplo siguiente se muestra el uso de InProcessServerClassreference para hacer referencia a una clase en un registro de servidor suplente.

<com4:Class Id="d57899b9-1334-4600-904a-719df0512988" DisplayName="CLSID_Baz"/> 
<com4:InProcessServer Path="MyServer.dll"> 
  <com4:ClassReference Id="d57899b9-1334-4600-904a-719df0512988" ThreadingModel="Apartment"/> 
</com4:InProcessServer> 
<com:SurrogateServer DisplayName="My surrogate server"> 
  <com4:InProcessServerClassReference Id="d57899b9-1334-4600-904a-719df0512988"/> 
</com:SurrogateServer> 

Requisitos

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