com4 :Extension
Fournit des fonctionnalités permettant d’exposer des inscriptions COM aux clients en dehors du package d’application. L’extension com4 est une nouvelle version qui est un super-ensemble de versions de schéma COM et de remplacement pour les versions de schéma COM précédentes. Pour plus d’informations, consultez la section Remarques.
Hiérarchie d’éléments
<com4 :Extension>
<com4 :Extension>
Syntaxe
<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>
Attributs et éléments
Attributs
Attribut | Description | Type de données | Obligatoire | Valeur par défaut |
---|---|---|---|---|
catégorie | Type de point d’extensibilité de l’application. | Chaîne qui peut avoir l’une des valeurs suivantes : windows.comServer ou windows.comInterface. | Oui | |
exécutable | Cet attribut est hérité de la syntaxe de l’extension de base et n’est pas applicable à l’extension com4. Autre que la validation syntaxique, cette valeur est ignorée. | Chaîne facultative avec une valeur comprise entre 1 et 256 caractères de longueur qui doit se terminer par .exe et ne peut pas contenir ces caractères : < , > , : , " , | , ? ou * . |
Non | |
EntryPoint | Cet attribut est hérité de la syntaxe de l’extension de base et n’est pas applicable à l’extension com4. Autre que la validation syntaxique, cette valeur est ignorée. | Chaîne facultative avec une valeur comprise entre 1 et 256 caractères qui ne peut pas commencer ou se terminer par un espace blanc. | Non | |
runtimeType | Cet attribut est hérité de la syntaxe de l’extension de base et n’est pas applicable à l’extension com4. Autre que la validation syntaxique, cette valeur est ignorée. | Chaîne facultative avec une valeur comprise entre 1 et 255 caractères qui ne peut pas commencer ou se terminer par un point ou contenir ces caractères : < , > , : , " , / , \ , | , ? ou * . |
Non | |
StartPage | Cet attribut est hérité de la syntaxe de l’extension de base et n’est pas applicable à l’extension com4. Autre que la validation syntaxique, cette valeur est ignorée. | Chaîne facultative avec une valeur comprise entre 1 et 256 caractères qui ne peut pas contenir ces caractères : < , > , : , " , | , ? ou * . |
Non | |
ResourceGroup | Balise que vous pouvez utiliser pour regrouper les activations d’extension à des fins de gestion des ressources (par exemple, processeur et mémoire). La valeur que vous pouvez définir ResourceGroup est libre et flexible. Voir Application@ResourceGroup. | Chaîne alphanumérique facultative avec une valeur comprise entre 1 et 255 caractères. Doit commencer par une lettre. | Non | |
uap10 :TrustLevel | Spécifie le niveau d’approbation de l’extension. Dans la version actuelle, cet attribut n’est pas pris en charge pour l’extension com4. La valeur « mediumIL » est toujours utilisée. | Une chaîne facultative peut avoir l’une des valeurs suivantes : appContainer ou mediumIL . | Non | |
uap10 :RuntimeBehavior | Spécifie le comportement d’exécution de l’extension. Dans la version actuelle, cet attribut n’est pas pris en charge pour l’extension com4. La valeur « packageClassicApp » est toujours utilisée. | Chaîne facultative pouvant avoir l’une des valeurs suivantes : windowsApp, empaquetéClassicAppou win32App. | Non | |
uap10 :HostId | Cette valeur spécifie l’ID du runtime hôte pour l’extension. | Chaîne alphanumérique facultative avec une valeur comprise entre 1 et 255 caractères. Doit commencer par une lettre. | Non | |
uap10 :Parameters | Cet attribut est hérité de la syntaxe de l’extension de base et n’est pas applicable à l’extension com4. Autre que la validation syntaxique, cette valeur est ignorée. | Chaîne facultative avec une valeur comprise entre 1 et 32767 caractères de longueur avec un caractère non blanc à son début et à sa fin. | Non | |
uap11 :Id | Cet attribut est hérité de la syntaxe de l’extension de base et n’est pas applicable à l’extension com4. Autre que la validation syntaxique, cette valeur est ignorée. | Chaîne facultative avec une valeur comprise entre 1 et 255 caractères de longueur avec un caractère d’espace non blanc au début et à la fin. | Non | |
uap11 :Sous-système | Cet attribut est hérité de la syntaxe de l’extension de base et n’est pas applicable à l’extension com4. Autre que la validation syntaxique, cette valeur est ignorée. | Chaîne facultative qui peut avoir l’une des valeurs suivantes : console ou windows. | Non | |
uap11 :SupportsMultipleInstances | Spécifie si les instances doivent s’exécuter dans différents processus. La valeur par défaut est false. | Valeur booléenne facultative. | Non | |
uap11 :ResourceGroup | Balise que vous pouvez utiliser pour regrouper les activations d’extension à des fins de gestion des ressources (par exemple, processeur et mémoire). La valeur que vous pouvez définir ResourceGroup est libre et flexible. Voir Application@ResourceGroup. | Chaîne alphanumérique facultative avec une valeur comprise entre 1 et 255 caractères. Doit commencer par une lettre. | Non | |
uap11 :CurrentDirectoryPath | Cet attribut est hérité de la syntaxe de l’extension de base et n’est pas applicable à l’extension com4. Autre que la validation syntaxique, cette valeur est ignorée. Cet attribut prend en charge les macros. Pour plus d’informations, consultez Macros dans le schéma de manifeste de package. | Chaîne facultative qui ne peut pas contenir ces caractères : < , > , | , ? ou * . > |
Non | |
uap11 :Parameters | Cet attribut est hérité de la syntaxe de l’extension de base et n’est pas applicable à l’extension com4. Autre que la validation syntaxique, cette valeur est ignorée. Cet attribut prend en charge les macros. Pour plus d’informations, consultez Macros dans le schéma de manifeste de package. | Chaîne facultative avec une valeur comprise entre 1 et 32767 caractères de longueur avec un caractère non blanc à son début et à sa fin. | Non | |
desktop7 :CompatMode | Spécifie si les informations de cette extension sont inscrites auprès de Windows de manière classique (par exemple, les applications non empaquetées inscrivent des types auprès de COM via le Registre) ou de nouvelles façons plus étendues. La valeur par défaut est « moderne ». CompatMode="classic » nécessite la fonctionnalité de Microsoft.classicAppCompat_8wekyb3d8bbwe. | Une chaîne facultative peut avoir l’une des valeurs suivantes : classique ou moderne . | Non | |
desktop7 :Scope | Spécifie si les inscriptions ne sont visibles que par d’autres applications s’exécutant en tant qu’utilisateur disposant de ce package inscrit (utilisateur), ou s’ils sont visibles par tous les utilisateurs et services sur l’ordinateur (machine). La valeur par défaut est « user ». Scope="machine » nécessite la fonctionnalité de Microsoft.classicAppCompatElevated_8wekyb3d8bbwe. | Chaîne facultative qui peut avoir l’une des valeurs suivantes : machine ou utilisateur. | Non |
Éléments enfants
Élément enfant | Description |
---|---|
com4 :ComServer | L’extension comServer peut inclure des inscriptions de classes, y compris les détails d’activation pour les serveurs qui implémentent ces classes, et les inscriptions ProgId et TreatAsClass, qui fournissent des identificateurs supplémentaires utilisés pour référencer ces classes au moment de l’exécution. |
com4 :ComInterface | Déclare un point d’extension de package de type windows.comInterface (com4 :ComInterface). |
Éléments parents
Élément enfant | Description |
---|---|
extensions | Définit un ou plusieurs points d’extensibilité pour l’application. |
Remarques
L’extension com4 est essentiellement une réécriture de l’ancienne syntaxe d’extension windows.comServer/windows.comInterface. Cette extension est un super-ensemble de la fonctionnalité d’extension com précédente, avec un comportement identique pour la syntaxe héritée. La validation du manifeste pour la nouvelle syntaxe utilisée dans l’empaquetage est mieux alignée sur les exigences sémantiques de l’extension.
- Dans la version précédente, chaque extension a été traitée en tant que document distinct, ce qui permet de valider les clés non uniques et les références déanglantes.
- Dans la version précédente, la duplication des attributs soumis à des contraintes uniques/clés n’a été interceptée que par la validation du manifeste si les attributs dupliqués apparaissent dans la même instance de l’extension. Les packages qui ont dupliqué ces attributs ne peuvent pas être déployés, avec des informations de diagnostic limitées pour identifier le problème.
- Dans la version précédente, une cléref dont le référentiel se trouve dans une autre instance de l’extension serait bloquée par la validation du manifeste, qui est une restriction artificielle par rapport à ce que la prise en charge du comportement de déploiement/runtime.
Les applications ciblant Windows 11 qui peuvent utiliser le nouvel espace de noms com4 pour toutes leurs extensions windows.comServer/windows.comInterface doivent l’utiliser. Le mélange du nouvel espace de noms avec les espaces de noms plus anciens n’est pas recommandé, pour des raisons telles que :
- Le déploiement du package sur les versions qui prennent en charge le nouvel espace de noms gère les extensions de tous les espaces de noms, et tous les identificateurs uniques dupliqués entre les extensions utilisant différentes versions d’espace de noms entraînent un échec. L’utilisation des espaces de noms plus anciens empêche la validation du manifeste de détecter ces erreurs.
- En raison des limitations des schémas d’espace de noms plus anciens, une cléref dans l’ancienne syntaxe ne peut pas faire référence à une clé dans la nouvelle syntaxe, car elles se trouvent dans différentes instances de l’extension.
L’utilisation de la sémantique de syntaxe com4 suivante présente des exigences de capacité :
- CompatMode="classic » nécessite Microsoft.classicAppCompat_8wekyb3d8bbwe
- Scope="machine » nécessite Microsoft.classicAppCompatElevated_8wekyb3d8bbwe
L’exemple suivant montre comment inscrire une implémentation de serveur hors processus et in-process pour la même classe.
Exemples
<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>
Nouvelles fonctionnalités de l’extension com4
- Prise en charge des serveurs in-process (non gérés et gérés) et des gestionnaires in-process personnalisés (autrement dit, pas le gestionnaire OLE par défaut). Cette fonctionnalité est actuellement limitée et limitée par la stratégie :
- Cela est actuellement destiné à être utilisé uniquement par des packages avec un emplacement externe ; il ne fonctionne pas pour la plupart des packages normaux en raison d’ACL sur l’emplacement d’installation qui empêchent le chargement des dll du package en dehors du package. Pour plus d’informations sur les packages avec un emplacement externe, consultez Accorder une identité de package en empaquetant avec un emplacement externe.
- Il est désormais possible d’associer un TypeLib à une inscription de classe.
Exigences
Article | Valeur |
---|---|
espace de noms | http://schemas.microsoft.com/appx/manifest/com/windows10/4 |
version minimale du système d’exploitation | Windows 10 (build 20348) |