com4:SurrogateServer
Registra un surrogatoServer con una o più registrazioni di classe.
Gerarchia degli elementi
<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 .* |
Sì | |
DisplayName | DisplayName è una stringa localizzabile corrispondente al valore predefinito della chiave AppID. | Stringa con un valore compreso tra 1 e 256 caratteri in lunghezza. | Sì | |
LaunchAndActivationPermission | Stringa SDDL che corrisponde al valore LaunchPermission della chiave AppID. | Valore stringa SDDL . | Sì | |
Appid | AppId che fa riferimento alla chiave AppId associata. | GUID nel formato xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxx. | Sì | |
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". | Sì |
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) |