com4:ComServer

Dichiara un punto di estensione del pacchetto di tipo windows.comServer. L'estensione comServer può includere registrazioni di classi, inclusi i dettagli di attivazione per i server che implementano queste classi e ProgId e TreatAsClass registrazioni, che forniscono identificatori aggiuntivi usati per fare riferimento a queste classi in fase di esecuzione.

Gerarchia degli elementi

<Pacchetto>

    <Applicazioni>

         <Applicazione>

              <Estensioni>

                   <com4:Extension>

                        <com4:ComServer>

Sintassi

<com4:ComServer>

<!-- Child elements -->
  Class{0,1}
  ExeServer{0,1}
  ServiceServer{0,1}
  SurrogateServer{0,1}
  TreatAsClass{0,1}
  ProgId{0,1}
  InProcessServer{0,1}
  InProcessHandler{0,1}
  ManagedInProcessServer{0,1}
  com5:InProcessServer{0,1}
  com5:InProcessHandler{0,1}

</com4:ComServer>

Chiave

{} intervallo specifico di occorrenze

Attributi ed elementi

Attributi

No.

Elementi figlio

Elemento figlio Descrizione
Classe Definisce una registrazione della classe in un server COM.
ExeServer Registra un exeServer con una o più registrazioni di classe.
ServiceServer Registra un ServiceServer con una o più registrazioni di classe.
SurrogateServer Registra un surrogatoServer con una o più registrazioni di classe.
TreatAsClass Registrazione che corrisponde a una registrazione CLSID con la sottochiave TreatAs.
Progid Identificatore programmatico (ProgID) che può essere associato a un CLSID.
InProcessServer Registra un server in-process con una o più registrazioni di classe.
InProcessHandler Registra un gestore in-process con una o più registrazioni di classe.
ManagedInProcessServer Registra un server in-process gestito con una o più registrazioni di classe.

Elementi padre

Elemento padre Descrizione
com4:Extension Fornisce funzionalità per esporre le registrazioni COM ai client all'esterno del pacchetto dell'app. L'estensione com4 è una nuova versione che rappresenta un superset di e la sostituzione per le versioni precedenti dello schema COM.

Commenti

Nei pacchetti multi-applicazione è importante inserire la registrazione del server COM nell'elemento manifesto application/Applications corretto, perché i processi del server COM verranno eseguiti con l'identità dell'elemento Applications/Application predecessore.

I server COM registrati nel manifesto ottengono sempre il comportamento Attiva come pacchetto (AAP), il che significa che il server COM viene eseguito con il token predefinito della sessione utente con il pacchetto e le attestazioni dell'applicazione aggiunte. Ciò è diverso dal comportamento di attivazione predefinito dei server COM registrati in modo classico, in cui viene eseguito il server COM con il token del client. Per la maggior parte delle applicazioni, questa differenza non sarà evidente perché i client vengono in genere eseguiti con il token predefinito della sessione utente. Altri comportamenti di attivazione, ad esempio RunAs, non sono supportati.

È possibile avere più estensioni comServer nell'elemento Applications/Application, ma nella maggior parte dei casi non è necessario né consigliato. Un esempio di caso perimetrale in cui sono necessarie più estensioni comServer è se un pacchetto necessita di alcune delle registrazioni per avere CompatMode="classic" mentre altri hanno CompatMode="modern", l'unico modo per farlo consiste nel suddividerli tra le estensioni.

Modifiche nell'estensione com4

La sintassi dell'estensione com4 è un nuovo superset della sintassi dell'estensione com precedente. Questa versione della sintassi supporta la stessa struttura delle versioni precedenti della sintassi, in cui le registrazioni della classe sono rappresentate da elementi ExeServer/Class, SurrogateServer/Class, ServiceServer/Class, InProcessServer/Class, InProcessHandler/Class o ManagedInProcessServer/Class.

La nuova sintassi supporta anche strutture alternative, dove:

  • ExeServer/ClassReference, SurrogateServer/ClassReference, ServiceServer/ClassReference, InProcessServer/ClassReference, InProcessHandler/ClassReference o Elementi ManagedInProcessServer/ClassReference fanno riferimento a elementi di classe di primo livello

e/o

  • Gli elementi SurrogateServer/InProcessServerClassReference fanno riferimento a Elementi InProcessServer/Class (in alternativa, InProcessServer/ClassReference) o ManagedInProcessServer/Class (in alternativa, ManagedInProcessServer/ClassReference).

Lo scopo principale della nuova struttura di sintassi è abilitare combinazioni di server in-process, gestore in-process e registrazioni del server di elaborazione per lo stesso CLSID, come possibile e supportato con il layout del Registro di sistema classico. Per altre informazioni sul layout del Registro di sistema COM, vedere Chiave CLSID.

Requisiti

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