com4:SurrogateServer

Registra un SurrogateServer 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 di DllSurrogate nella chiave AppId. Questo percorso è relativo alla radice del pacchetto e deve fare riferimento a un file nel pacchetto. Questo è mutuamente esclusivo con SystemSurrogate. Stringa con un valore compreso tra 1 e 256 caratteri 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.
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-xxxxxxxxxxxx.
SystemSurrogate Valore che corrisponde a valori noti del valore DllSurrogate della chiave AppId. Questa opzione è mutuamente esclusiva 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.

Osservazioni

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 di 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. L'elemento figlio ClassReference dell'elemento InProcessServer consente a un pacchetto che registra un CLSID per l'attivazione sia inproc che outofproc di specificare i dettagli del server inproc una sola volta, come elemento InProcessServer/Class o InProcessServer/ClassReference e fare riferimento a questo elemento da SurrogateServer che supporta l'attivazione outofproc del CLSID. Questa struttura per le registrazioni inproc/outofproc riflette più attentamente il layout del Registro di sistema COM che specifica in modo indipendente il percorso dll e ThreadingModel in entrambi gli elementi InProcessServer/ClassReference e SurrogateServer/ClassReference.

Quando si crea un pacchetto di un'applicazione con un CLSID registrato per l'attivazione outofproc in un server surrogato, è in genere 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 che storicamente abilitavano le 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 ulteriori limitazioni funzionali 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 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

Valore
Namespace http://schemas.microsoft.com/appx/manifest/com/windows10/4