Udostępnij przez


Możliwości rozszerzania — omówienie

Paleta poleceń udostępnia pełny model rozszerzenia, co pozwala deweloperom tworzyć własne doświadczenia dla palety.

Najszybszym sposobem rozpoczęcia pisania rozszerzeń jest sama paleta poleceń. Wystarczy uruchomić polecenie "Utwórz nowe rozszerzenie", wypełnić pola, aby wypełnić projekt szablonu, a wszystko powinno być gotowe do uruchomienia.

Aby uzyskać bardziej szczegółowe instrukcje, możesz śledzić następujące strony:

Szczegóły rozszerzenia

Paleta poleceń definiuje interfejs API WinRT (Microsoft.CommandPalette.Extensions), w jaki sposób rozszerzenia mogą komunikować się z paletą poleceń.

Paleta poleceń użyje katalogu pakietów, aby znaleźć aplikacje, które wymieniają się jako windows.appExtension dla com.microsoft.commandpalette.

Rejestrowanie rozszerzenia

Rozszerzenia mogą zarejestrować się przy użyciu palety poleceń przy użyciu polecenia .appxmanifest. Przykład:

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

W tym manifeście używamy serwera COM działającego poza procesem jako warstwy komunikacji między aplikacją a paletą poleceń. Nie martw się o to! Projekt szablonu zajmie się tworzeniem serwera COM, jego uruchamianiem i przesyłaniem obiektów do Command Palette.

Ważne uwagi

Niektóre istotne elementy dotyczące przykładu manifestu:

  • Aplikacja musi określić element Extensions.uap3Extension.AppExtension z wartością Nazwa ustawioną na com.microsoft.commandpalette. Jest to unikatowy identyfikator używany przez paletę poleceń w celu znalezienia rozszerzeń.
  • Aplikacja musi określić Extensions.comExtension.ComServer jako element, który będzie hostować jej klasę COM. Dzięki temu system operacyjny może zarejestrować ten identyfikator GUID jako klasę COM, którą możemy utworzyć.
    • Upewnij się, że ten identyfikator CLSID jest unikatowy i pasuje do tego w twojej aplikacji. Jeśli go zmienisz, musisz zmienić wszystkie trzy.
  • W elemencie PropertiesAppExtension należy określić element CmdPalProvider. W tym miejscu należy określić identyfikator CLSID klasy COM, którego Paleta Poleceń użyje do utworzenia instancji w celu interakcji z rozszerzeniem.
    • Obecnie obsługiwany jest tylko Commands.