com4:Extension

Fornisce funzionalità per esporre le registrazioni COM ai client all'esterno del pacchetto dell'app. L'estensione com4 è una nuova versione che è un superset di e la sostituzione per le versioni precedenti dello schema COM. Per altre informazioni, vedere la sezione Osservazioni.

Gerarchia degli elementi

pacchetto

     <applicazioni>

          dell'applicazione

               <extensions>

                    <com4:Extension>

     <extensions>

          <com4:Extension>

Sintassi

<com4:Extension
  Category = 'A string that can have one of the following values: "windows.comServer" or "windows.comInterface".'
  Executable = 'An optional string with a value between 1 and 256 characters in length that must end with ".exe" and cannot contain these characters: <, >, :, ", |, ?, or *.'
  EntryPoint = 'An optional string with a value between 1 and 256 characters in length that cannot start or end with a whitespace character.'
  RuntimeType = 'An optional string with a value between 1 and 255 characters in length that cannot start or end with a period or contain these characters: <, >, :, ", /, \, |, ?, or *.'
  StartPage = 'An optional string with a value between 1 and 256 characters in length that cannot contain these characters: <, >, :, ", |, ?, or *.'
  ResourceGroup = 'An optional alphanumeric string with a value between 1 and 255 characters in length. Must begin with a letter.'
  TrustLevel = 'An optional string the can have one of the following values: "appContainer" or "mediumIL".'
  RuntimeBehavior = 'An optional string the can have one of the following values: "windowsApp", "packagedClassicApp", or "win32App".'
  HostId = 'An optional alphanumeric string with a value between 1 and 255 characters in length. Must begin with a letter.'
  Parameters = 'An optional string with a value between 1 and 32767 characters in length with a non-whitespace character at its beginning and end.'
  uap11:Id = 'An optional string with a value between 1 and 255 characters in length with a non-whitespace character at its beginning and end.'
  uap11:Subsystem = 'An optional string that can have one of the following values: "console" or "windows".'
  uap11:SupportsMultipleInstances = 'An optional boolean value.'
  uap11:ResourceGroup = 'An optional alphanumeric string with a value between 1 and 255 characters in length. Must begin with a letter.'
  uap11:CurrentDirectoryPath = 'An optional string that cannot contain these characters: <, >, |, ?, or *. >'
  uap11:Parameters = 'An optional string with a value between 1 and 32767 characters in length with a non-whitespace character at its beginning and end.'
  desktop7:CompatMode = 'An optional string the can have one of the following values: "classic" or "modern".'
  desktop7:Scope = 'An optional string that can have one of the following values: "machine" or "user".' />

  <!-- Child elements -->
  com4:ComServer
  com4:ComInterface

</com4:Extension>

Attributi ed elementi

Attributi

Attributo Descrizione Tipo di dati Obbligatorio Valore predefinito
categoria Tipo di punto di estendibilità dell'app. Stringa che può avere uno dei valori seguenti: windows.comServer o windows.comInterface.
eseguibile Questo attributo viene ereditato dalla sintassi dell'estensione di base e non è applicabile all'estensione com4. Oltre alla convalida sintattica, questo valore viene ignorato. Stringa facoltativa con un valore compreso tra 1 e 256 caratteri che deve terminare con .exe e non può contenere questi caratteri: <, >, :, ", |, ?o *. No
EntryPoint Questo attributo viene ereditato dalla sintassi dell'estensione di base e non è applicabile all'estensione com4. Oltre alla convalida sintattica, questo valore viene ignorato. Stringa facoltativa con un valore compreso tra 1 e 256 caratteri di lunghezza che non può iniziare o terminare con un carattere di spazio vuoto. No
runtimeType Questo attributo viene ereditato dalla sintassi dell'estensione di base e non è applicabile all'estensione com4. Oltre alla convalida sintattica, questo valore viene ignorato. Stringa facoltativa con un valore compreso tra 1 e 255 caratteri che non può iniziare o terminare con un punto o contenere questi caratteri: <, >, :, ", /, \, |, ?o *. No
StartPage Questo attributo viene ereditato dalla sintassi dell'estensione di base e non è applicabile all'estensione com4. Oltre alla convalida sintattica, questo valore viene ignorato. Stringa facoltativa con un valore compreso tra 1 e 256 caratteri che non può contenere questi caratteri: <, >, :, ", |, ?o *. No
ResourceGroup Tag che è possibile usare per raggruppare le attivazioni dell'estensione per scopi di gestione delle risorse, ad esempio CPU e memoria. Il valore che è possibile impostare ResourceGroup è in formato libero e flessibile. Vedere Application@ResourceGroup. Stringa alfanumerica facoltativa con un valore compreso tra 1 e 255 caratteri. Deve iniziare con una lettera. No
uap10:TrustLevel Specifica il livello di attendibilità dell'estensione. Nella versione corrente questo attributo non è supportato per l'estensione com4. Il valore "mediumIL" viene sempre usato. Una stringa facoltativa può avere uno dei valori seguenti: appContainer o medioIL. No
uap10:RuntimeBehavior Specifica il comportamento di runtime dell'estensione. Nella versione corrente questo attributo non è supportato per l'estensione com4. Il valore "packagedClassicApp" viene sempre usato. Una stringa facoltativa che può avere uno dei valori seguenti: windowsApp, packagedClassicAppo win32App. No
uap10:HostId Questo valore specifica l'ID del runtime host per l'estensione. Stringa alfanumerica facoltativa con un valore compreso tra 1 e 255 caratteri. Deve iniziare con una lettera. No
uap10:Parameters Questo attributo viene ereditato dalla sintassi dell'estensione di base e non è applicabile all'estensione com4. Oltre alla convalida sintattica, questo valore viene ignorato. Stringa facoltativa con un valore compreso tra 1 e 32767 caratteri con un carattere non vuoto all'inizio e alla fine. No
uap11:Id Questo attributo viene ereditato dalla sintassi dell'estensione di base e non è applicabile all'estensione com4. Oltre alla convalida sintattica, questo valore viene ignorato. Stringa facoltativa con un valore compreso tra 1 e 255 caratteri con un carattere non vuoto all'inizio e alla fine. No
uap11:Subsystem Questo attributo viene ereditato dalla sintassi dell'estensione di base e non è applicabile all'estensione com4. Oltre alla convalida sintattica, questo valore viene ignorato. Stringa facoltativa che può avere uno dei valori seguenti: console o windows. No
uap11:SupportsMultipleInstances Specifica se le istanze devono essere eseguite in processi diversi. Il valore predefinito è false. Valore booleano facoltativo. No
uap11:ResourceGroup Tag che è possibile usare per raggruppare le attivazioni dell'estensione per scopi di gestione delle risorse, ad esempio CPU e memoria. Il valore che è possibile impostare ResourceGroup è in formato libero e flessibile. Vedere Application@ResourceGroup. Stringa alfanumerica facoltativa con un valore compreso tra 1 e 255 caratteri. Deve iniziare con una lettera. No
uap11:CurrentDirectoryPath Questo attributo viene ereditato dalla sintassi dell'estensione di base e non è applicabile all'estensione com4. Oltre alla convalida sintattica, questo valore viene ignorato. Questo attributo supporta le macro. Per altre informazioni, vedere macro nello schema del manifesto del pacchetto. Stringa facoltativa che non può contenere questi caratteri: <, >, |, ?o *. > No
uap11:Parameters Questo attributo viene ereditato dalla sintassi dell'estensione di base e non è applicabile all'estensione com4. Oltre alla convalida sintattica, questo valore viene ignorato. Questo attributo supporta le macro. Per altre informazioni, vedere macro nello schema del manifesto del pacchetto. Stringa facoltativa con un valore compreso tra 1 e 32767 caratteri con un carattere non vuoto all'inizio e alla fine. No
desktop7:CompatMode Specifica se le informazioni di questa estensione vengono registrate in Windows in modi classici (ad esempio, le app non in pacchetto registrano tipi con COM tramite il Registro di sistema) o in nuovi modi più con ambito. Il valore predefinito è "modern". CompatMode="classic" richiede la funzionalità Microsoft.classicAppCompat_8wekyb3d8bbwe. Una stringa facoltativa può avere uno dei valori seguenti: classico o moderno . No
desktop7:Scope Specifica se le registrazioni sono visibili solo ad altre applicazioni in esecuzione come utente che ha registrato questo pacchetto (utente) o se sono visibili a tutti gli utenti e i servizi nel computer (computer). Il valore predefinito è "user". Scope="machine" richiede la funzionalità di Microsoft.classicAppCompatElevated_8wekyb3d8bbwe. Stringa facoltativa che può avere uno dei valori seguenti: computer o utente. No

Elementi figlio

Elemento figlio Descrizione
com4:ComServer L'estensione comServer può includere registrazioni di classe, inclusi i dettagli di attivazione per i server che implementano queste classi e le registrazioni ProgId e TreatAsClass, che forniscono identificatori aggiuntivi usati per fare riferimento a queste classi in fase di esecuzione.
com4:ComInterface Dichiara un punto di estensione del pacchetto di tipo windows.comInterface (com4:ComInterface).

Elementi padre

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

Osservazioni

L'estensione com4 è essenzialmente una riscrittura della sintassi dell'estensione windows.comServer/windows.comInterface precedente. Questa estensione è un superset delle funzionalità di estensione com precedenti, con un comportamento identico per la sintassi ereditata. La convalida del manifesto per la nuova sintassi usata nella creazione di pacchetti è più allineata ai requisiti semantici dell'estensione.

  • Nella versione precedente, ogni estensione è stata considerata come un documento separato, consentendo la convalida di chiavi non univoche e riferimenti incerti.
  • Nella versione precedente, la duplicazione degli attributi soggetti a vincoli univoci/chiave è stata intercettata dalla convalida del manifesto solo se gli attributi duplicati vengono visualizzati nella stessa istanza dell'estensione. I pacchetti duplicati di questi attributi non riuscirebbero a essere distribuiti, con informazioni di diagnostica limitate per identificare il problema.
  • Nella versione precedente, un keyref il cui referenziale si trova in un'istanza diversa dell'estensione verrebbe bloccato dalla convalida del manifesto, ovvero una restrizione artificiale rispetto al supporto del comportamento di distribuzione/runtime.

Le applicazioni destinate a Windows 11 che possono usare il nuovo spazio dei nomi com4 per tutte le estensioni windows.comServer/windows.comInterface devono usarlo. Non è consigliabile combinare il nuovo spazio dei nomi con gli spazi dei nomi precedenti, ad esempio:

  • La distribuzione del pacchetto nelle versioni che supportano il nuovo spazio dei nomi gestirà le estensioni da tutti gli spazi dei nomi e tutti gli identificatori univoci duplicati tra le estensioni che usano versioni diverse dello spazio dei nomi genereranno un errore. L'uso degli spazi dei nomi meno recenti impedisce alla convalida del manifesto di rilevare questi errori.
  • A causa delle limitazioni degli schemi dello spazio dei nomi meno recenti, un keyref nella sintassi precedente non può fare riferimento a una chiave nella nuova sintassi perché si trovano in istanze diverse dell'estensione.

L'uso della semantica della sintassi com4 seguente ha requisiti di funzionalità:

  • CompatMode="classic" richiede Microsoft.classicAppCompat_8wekyb3d8bbwe
  • Scope="machine" richiede Microsoft.classicAppCompatElevated_8wekyb3d8bbwe

Nell'esempio seguente viene illustrato come registrare un'implementazione out-of-process e un'implementazione del server in-process per la stessa classe.

Esempi

<com4:Class Id="f4ed7720-9b3a-44a4-xxxx-xxxxxxxxxxxx" DisplayName="CLSID_Foo"/> 
<com:ExeServer Executable="MyServer.exe" DisplayName="My server">  
  <com4:ClassReference Id="f4ed7720-9b3a-44a4-xxxx-xxxxxxxxxxxx"/>  
</com:ExeServer> 
<com4:InProcessServer Path="MyServer.dll">  
  <com4:ClassReference Id="f4ed7720-9b3a-44a4-xxxx-xxxxxxxxxxxx"/>  
</com4:InProcessServer> 

Nuove funzionalità nell'estensione com4

  • Supporto per i server in-process (sia non gestiti che gestiti) e i gestori in-process personalizzati (ovvero, non per il gestore predefinito OLE). Questa funzionalità è attualmente limitata dal livello funzionale e limitata dai criteri:
  • È ora possibile associare un TypeLib a una registrazione di classe.

Fabbisogno

Articolo Valore
spazio dei nomi http://schemas.microsoft.com/appx/manifest/com/windows10/4
versione minima del sistema operativo Windows 10 (Build 20348)