Freigeben über


Überblick über die Erweiterbarkeit

Die Befehlspalette bietet ein vollständiges Erweiterungsmodell, mit dem Entwickler eigene Erfahrungen für die Palette erstellen können.

Die schnellste Möglichkeit zum Schreiben von Erweiterungen besteht aus der Befehlspalette selbst. Führen Sie einfach den Befehl "Neue Erweiterung erstellen" aus, füllen Sie die Felder aus, um das Vorlagenprojekt aufzufüllen, und Sie sollten bereit zum Starten sein.

Ausführlichere Anweisungen finden Sie auf den folgenden Seiten:

Details zur Erweiterung

Befehlspalette definiert eine WinRT-API (Microsoft.CommandPalette.Extensions), in der Erweiterungen mit Befehlspalette kommunizieren können.

Die Befehlspalette verwendet den Paketkatalog, um Apps zu finden, die sich selbst als windows.appExtension für com.microsoft.commandpalette auflisten.

Registrieren Ihrer Erweiterung

Erweiterungen können sich mithilfe von .appxmanifest selbst bei der Befehlspalette registrieren. Beispiel:

<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>

In diesem Manifest verwenden wir einen out-of-process COM-Server, um als Kommunikationsschicht zwischen Ihrer App und der Befehlspalette zu fungieren. Machen Sie sich keine Sorgen! Das Vorlagenprojekt erstellt für Sie einen COM-Server, startet ihn und überführt Ihre Objekte in die Befehlspalette.

Wichtige Hinweise

Einige wichtige Elemente zum Manifestbeispiel:

  • Die Anwendung muss eine Extensions.uap3Extension.AppExtension mit dem Namen com.microsoft.commandpalette angeben. Dies ist der eindeutige Bezeichner, der von der Befehlspalette verwendet wird, um die Erweiterungen zu finden.
  • Die Anwendung muss ein Extensions.comExtension.ComServer angeben, um ihre COM-Klasse zu hosten. Auf diese Weise kann das Betriebssystem diese GUID als COM-Klasse registrieren, die instanziiert werden kann.
    • Stellen Sie sicher, dass diese CLSID eindeutig ist und mit der Ihrer Anwendung übereinstimmt. Wenn Sie einen ändern, müssen Sie alle drei ändern.
  • In Properties von AppExtension müssen Sie ein CmdPalProvider-Element angeben. Hier geben Sie die CLSID- der COM-Klasse an, die Befehlspalette instanziiert, um mit Ihrer Erweiterung zu interagieren.
    • Derzeit wird nur Commands unterstützt.