Condividi tramite


com4:SurrogateServer

Registra un surrogatoServer con una o più registrazioni di classe.

Gerarchia degli elementi

<Pacchetto>

    <Applicazioni>

         <Applicazione>

              <Estensioni>

                   <com4:SurrogateServer>

Sintassi

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

Attributi ed elementi

Attributi

Attributo Descrizione Tipo di dati Obbligatoria Valore predefinito
CustomSurrogateExecutable Percorso della dllSurrogate nella chiave AppId. Questo percorso è relativo alla radice del pacchetto e deve fare riferimento a un file nel pacchetto. Questo è mututalmente esclusivo con SystemSurrogate. Stringa con un valore compreso tra 1 e 256 caratteri in lunghezza che deve terminare con .exe e non può contenere questi caratteri: "<:|>?, , o .*
DisplayName DisplayName è una stringa localizzabile corrispondente al valore predefinito della chiave AppID. Stringa con un valore compreso tra 1 e 256 caratteri in lunghezza.
LaunchAndActivationPermission Stringa SDDL che corrisponde al valore LaunchPermission della chiave AppID. Valore stringa SDDL .
Appid AppId che fa riferimento alla chiave AppId associata. GUID nel formato xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxx.
SystemSurrogate Valore che corrisponde a valori noti dal valore DllSurrogate della chiave AppId. Questo è mututalmente esclusivo con CustomSurrogateExecutable. Stringa con il valore facoltativo seguente: "PreviewHost".

Elementi figlio

Elemento figlio Descrizione
Classe Definisce una registrazione della classe server surrogata.
InProcessServerClassReference Specifica la classe con cui è associato il server in-process gestito e imposta i dettagli di registrazione.
ClassReference Specifica la classe con cui è associato il server in-process registrato e imposta i dettagli di registrazione.

Elementi padre

Elemento padre Descrizione
Estensioni Definisce uno o più punti di estendibilità per l'app.

Commenti

La chiave CLSID](/windows/win32/com/clsid-key-hklm) nel layout del Registro di sistema COM consente di registrare un CLSID per l'attivazione inproc (CLSCTX_INPROC_SERVER) e per l'attivazione outofproc in un server surrogato (CLSCTX_LOCAL_SERVER) specificando:

  • Dettagli dell'attivazione inproc in una sottochiave InprocServer32 .
  • Riferimento a una chiave AppID tramite il valore AppID della chiave CLSID, in cui la chiave AppID specifica un surrogato tramite il valore DllSurrogate . Si noti che per l'attivazione outofproc in un server surrogato, i dettagli di registrazione del server inproc, ad esempio il percorso dll e ThreadingModel, vengono usati anche nell'attivazione outofproc. Il figlio ClassReference dell'elemento InProcessServer consente a un pacchetto che registra un CLSID per l'attivazione inproc e outofproc per specificare i dettagli del server inproc una volta, come elemento InProcessServer/ClassReference o InProcessServer/ClassReference e fare riferimento a questo elemento dal SurrogateServer che supporta l'attivazione outofproc del CLSID. Questa struttura per le registrazioni inproc/outofproc riflette più strettamente il layout del Registro di sistema COM rispetto alla specifica indipendente del percorso dll e ThreadingModel in entrambi gli elementi InProcessServer/ClassReference e SurrogateServer/ClassReference.

Quando si crea un'applicazione con un CLSID registrato per l'attivazione outofproc in un server surrogato, è generalmente consigliabile registrare solo il server surrogato nel manifesto. Ad esempio, le registrazioni surrogate vengono spesso usate per supportare i punti di estensione basati su COM abilitati storicamente nelle implementazioni del server inproc, ma che ora consigliano una registrazione del server outofproc come procedura consigliata per l'isolamento. Per le applicazioni in pacchetto, esistono limitazioni funzionali aggiuntive per i server inproc (vedere In-ProcessServers per informazioni dettagliate), mentre qualsiasi pacchetto con la funzionalità con restrizioni runFullTrust può registrare correttamente un server surrogato e per la maggior parte dei punti di estensione che registrano un server surrogato è sufficiente per abilitare la funzionalità dell'estensione. Tuttavia, se un'applicazione in pacchetto deve supportare l'attivazione inproc dei CLSID per la compatibilità con altre applicazioni che richiedono l'attivazione inproc (CLSCTX_INPROC_SERVER) e soddisfa i requisiti per la registrazione di un server inproc, può registrare l'attivazione CLSID per l'attivazione inproc e l'attivazione outofproc in un surrogato. In questo caso, è consigliabile fornire i dettagli del server inproc in un elemento InProcessServer/Class o InProcessServer/ClassReference e farvi riferimento da un elemento SurrogateServer/InProcessServerClassReference.

Requisiti

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