Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
La palette de commandes fournit un modèle d’extension complet, ce qui permet aux développeurs de créer leurs propres expériences pour la palette.
Le moyen le plus rapide de commencer à écrire des extensions provient de la palette de commandes elle-même. Exécutez simplement la commande « Créer une extension », renseignez les champs pour remplir le projet de modèle et vous devez être prêt à démarrer.
Pour obtenir des instructions plus détaillées, vous pouvez suivre ces pages :
- Création d’une extension
- Ajout de commandes
- Mettre à jour une liste de commandes
- Ajouter des commandes de niveau supérieur à votre extension
- Résultats de la commande
- Afficher le contenu markdown
- Collecter les réponses des utilisateurs avec des formulaires
Détails de l’extension
La palette de commandes définit une API WinRT (Microsoft.CommandPalette.Extensions), qui est la façon dont les extensions peuvent communiquer avec la palette de commandes.
La palette de commandes utilise le catalogue de packages pour trouver les applications qui s’affichent en tant que windows.appExtension pour com.microsoft.commandpalette.
Inscription de votre extension
Les extensions peuvent s’enregistrer dans la palette de commandes à l’aide de leur .appxmanifest. Par exemple :
<Extensions>
<com:Extension Category="windows.comServer">
<com:ComServer>
<com:ExeServer Executable="ExtensionName.exe" Arguments="-RegisterProcessAsComServer" DisplayName="Sample Extension">
<com:Class Id="<Extension CLSID Here>" DisplayName="Sample Extension" />
</com:ExeServer>
</com:ComServer>
</com:Extension>
<uap3:Extension Category="windows.appExtension">
<uap3:AppExtension Name="com.microsoft.commandpalette"
Id="YourApplicationUniqueId"
PublicFolder="Public"
DisplayName="Sample Extension"
Description="Sample Extension for Command Palette">
<uap3:Properties>
<CmdPalProvider>
<Activation>
<CreateInstance ClassId="<Extension CLSID Here>" />
</Activation>
<SupportedInterfaces>
<Commands />
</SupportedInterfaces>
</CmdPalProvider>
</uap3:Properties>
</uap3:AppExtension>
</uap3:Extension>
</Extensions>
Dans ce manifeste, nous utilisons un serveur COM hors processus pour agir comme couche de communication entre votre application et la palette de commandes. Ne vous inquiétez pas de ça ! Le projet de modèle s’occupe de la création d’un serveur COM pour vous, de son démarrage et du marshaling de vos objets vers la palette de commandes.
Remarques importantes
Certains éléments notables concernant l'exemple de manifeste :
- L'application doit spécifier un
Extensions.uap3Extension.AppExtensionavec le Nom défini àcom.microsoft.commandpalette. Il s’agit de l’identificateur unique utilisé par la palette de commandes pour rechercher ses extensions. - L’application doit spécifier un
Extensions.comExtension.ComServerpour héberger sa classe COM. Cela permet au système d’exploitation d’inscrire ce GUID en tant que classe COM que nous pouvons instancier.- Assurez-vous que ce CLSID est unique et correspond à celui de votre application. Si vous en modifiez un, vous devez modifier les trois.
- Dans le
Propertiesde votreAppExtension, vous devez spécifier un élémentCmdPalProvider. C’est là que vous spécifiez le CLSID de la classe COM que la palette de commandes instancie pour interagir avec votre extension.- Actuellement, seule
Commandsest prise en charge.
- Actuellement, seule
Contenu connexe
Windows developer