Určení stavu příkazu pomocí definičních sestavení

VSPackage musí sledovat stav příkazů, které může zpracovat. Prostředí nemůže určit, kdy se má příkaz, který je zpracován v rámci rozhraní VSPackage, aktivovat nebo zakázat. Je zodpovědností vaší sady VSPackage o informování prostředí o stavech příkazů, například o stavu obecných příkazů, jako je například vyjmutí, kopírování a vložení.

Zdroje oznámení o stavu

Prostředí přijímá informace o příkazech prostřednictvím QueryStatus metody VSPackage, která je součástí implementace IOleCommandTarget rozhraní VSPackage. Prostředí volá QueryStatus metodu VSPackage za dvou podmínek:

  • Když uživatel otevře hlavní nabídku nebo kontextovou nabídku (kliknutím pravým tlačítkem myši), prostředí spustí QueryStatus metodu pro všechny příkazy v této nabídce k určení jejich stavu.

  • Když rozhraní VSPackage požaduje, aby prostředí aktualizovalo aktuální uživatelské rozhraní (UI). Tato aktualizace probíhá jako příkazy, které jsou aktuálně viditelné pro uživatele, například pro vyjmutí, kopírování a vložení na standardním panelu nástrojů, v reakci na akce kontextu a uživatele se aktivuje a zakáže.

    Vzhledem k tomu, že prostředí hostuje víc VSPackage, výkon tohoto prostředí by nepřijatelně snížil, pokud by byl potřebný k dotazování jednotlivých VSPackage na zjištění stavu příkazu. Místo toho by měl váš VSPackage aktivně upozorňovat prostředí, když se změní uživatelské rozhraní v době změny. Další informace o oznámení o aktualizacích najdete v tématu aktualizace uživatelského rozhraní.

Selhání oznámení o stavu

Selhání balíčku VSPackage pro oznámení prostředí změny stavu příkazu může umístit uživatelské rozhraní do nekonzistentního stavu. Mějte na paměti, že uživatel může umístit všechny příkazy nabídky nebo kontextové nabídky na panel nástrojů. Proto se aktualizace uživatelského rozhraní aktualizuje jenom v případě, že se otevře nabídka nebo místní nabídka není dostatečná.

Viz také