Sdílet prostřednictvím


IVsUIHierarchy.ExecCommand – metoda (UInt32, Guid, UInt32, UInt32, IntPtr, IntPtr)

 

Spustí příkaz na konkrétní položku v okně hierarchii uživatelského rozhraní nebo samotné hierarchii.

Obor názvů:   Microsoft.VisualStudio.Shell.Interop
Sestavení:  Microsoft.VisualStudio.Shell.Interop (v Microsoft.VisualStudio.Shell.Interop.dll)

Syntaxe

int ExecCommand(
    uint itemid,
    [InAttribute] ref Guid pguidCmdGroup,
    uint nCmdID,
    uint nCmdexecopt,
    IntPtr pvaIn,
    IntPtr pvaOut
)
int ExecCommand(
    unsigned int itemid,
    [InAttribute] Guid% pguidCmdGroup,
    unsigned int nCmdID,
    unsigned int nCmdexecopt,
    IntPtr pvaIn,
    IntPtr pvaOut
)
abstract ExecCommand : 
        itemid:uint32 *
        pguidCmdGroup:Guid byref *
        nCmdID:uint32 *
        nCmdexecopt:uint32 *
        pvaIn:nativeint *
        pvaOut:nativeint -> int
Function ExecCommand (
    itemid As UInteger,
    <InAttribute> ByRef pguidCmdGroup As Guid,
    nCmdID As UInteger,
    nCmdexecopt As UInteger,
    pvaIn As IntPtr,
    pvaOut As IntPtr
) As Integer

Parametry

  • itemid
    [v] Předaný identifikátor položky příkazem ovlivněny IVsUIHierarchy.Seznam itemid hodnoty, viz VSITEMID.Pro jeden výběr je tato hodnota ID skutečné položky.Více výběrů nastavit itemid na VSITEMID_SELECTION.
  • pguidCmdGroup
    [v, jedinečný] Jedinečný identifikátor skupiny příkazů; může být null určit standardní skupinu.Všechny příkazy, které jsou předávány nCmdID musí patřit do skupiny určenépguidCmdGroup
  • nCmdID
    [v] Příkaz ke spuštění.Tento příkaz musí patřit do skupiny s pguidCmdGroup.
  • nCmdexecopt
    [v] Hodnoty popisují, jak spustit příkaz objekt.

    Hodnota [1|1] nCmdexecopt

    [1|2] Hodnota

    [1|3] Popis

    [2|1] OLECMDEXECOPT_DODEFAULT

    [2|2] 0

    [2|3] Výzvu pro vstup nebo není, v závislosti na výchozí chování

    [3|1] OLECMDEXECOPT_PROMPTUSER

    [3|2] 1

    [3|3] Provést příkaz po získání vstupu uživatele.

    [4|1] OLECMDEXECOPT_DONTPROMPTUSER

    [4|2] 2

    [4|3] Provést příkaz bez zobrazení výzvy.Klepnutím na tlačítko panelu nástrojů tisk například způsobí dokumentu okamžitě vytisknout bez vstupu uživatele.

    [5|1] OLECMDEXECOPT_SHOWHELP

    [5|2] 3

    [5|3] Zobrazit nápovědu pro odpovídající příkaz, ale neprovede.

  • pvaIn
    [v, jedinečný] Ukazatel VARIANTARG struktura obsahující vstupní argumenty.Může být null.
  • pvaOut
    [v, ven, jedinečný] VARIANTARG struktury přijímat výstupu příkazu.Může být null.

Vrácená hodnota

Type: System.Int32

Pokud metoda uspěje, vrací S_OK.Pokud se nezdaří, vrátí kód chyby.

Poznámky

Podpis COM

Z vsshell.idl:

HRESULT IVsUIHierarchy::ExecCommand(
   [in] VSITEMID itemid,
   [in, unique] const GUID * pguidCmdGroup,
   [in] DWORD nCmdID,
   [in] DWORD nCmdexecopt,
   [in, unique] VARIANT * pvaIn,
   [in, out, unique]VARIANT* pvaOut
);

Tato metoda je podobná Exec metodou, s výjimkou, že Exec metoda nepodporuje hierarchie, že IVsUIHierarchy.ExecCommand metoda zahrnuje parametr ID tématu, který identifikuje položku hierarchie, na které se vztahuje příkaz.

Spustí prostředí IVsUIHierarchy.ExecCommand při hierarchie okna uživatelské rozhraní má fokus.Okno hierarchie UI deleguje všechny příkazy nabídky nebo panelu nástrojů na UIHierarchy objekt, který je společný nadřazené pro výběr.To poskytuje UIHierarchy objektu možnost zpracovávat příkazy, které platí pouze když aktivní okno hierarchie uživatelského rozhraní.Příklady zahrnují Odstranit a Odebrat příkazy.Tyto příkazy nesmí manipulovat prostřednictvím Exec.IOleCommandTarget Aktivního projektu je zahrnuta v obvyklých příkaz směrování životního prostředí, i když má jiného okna (například okno dokumentu).Zpracování Odstranit a Odebrat projektu, použijte IVsHierarchyDeleteHandler.

UI hierarchie není aktivní okno, ale je stále aktivní hierarchie, což je poslední hierarchii byly vybrány, pak všechny příkazy, které zahrnují aktivní hierarchie jsou odesílány prostřednictvím IOleCommandTarget rozhraní místo IVsUIHierarchy rozhraní.Například pokud změní výběr z Aplikaci Solution Explorer do seznamu úkolů a potom Aplikaci Solution Explorer je aktivní hierarchie, ale je aktivní okno seznamu úkolů.V takovém případě jsou odeslány všechny příkazy, které se vztahují k aktivní hierarchie, například přidání položky do projektu, až IOleCommandTarget rozhraní.

Příkazy jako přidání položky projektu má zpracovat není IVsUIHierarchy metody protože nebudou k dispozici z mimo okno hierarchie.Použít pouze IVsUIHierarchy ke zpracování příkazů, které vyžadují Hierarchie uživatelského rozhraní okna mají zaměřit nebo které působí na konkrétní položku v hierarchii.

Skupiny příkazů VSConstants.VsUIHierarchyWindowCmdIds slouží k ovládání přímé manipulace uživatelského rozhraní v okně hierarchii uživatelského rozhraní.

VSHPROPID_EditLabelmusí být podporována v GetProperty a SetProperty pro položku Název úpravy povolit.

Následující standardní příkazy pouze zpracování pomocí IVsUIHierarchy rozhraní:

// {5efc7975-14bc-11cf-9b2b-00aa00573819}

DEFINE_GUID(CLSID_StandardCommandSet97, 0x5efc7975, 0x14bc, 0x11cf, 0x9b, 0x2b, 0x00, 0xaa, 0x00, 0x57, 0x38, 0x19);

#define cmdidCopy 15

#define cmdidCut 16

#define cmdidDelete 17

#define cmdidPaste 26

#define cmdidRemove 168

#define cmdidRename 150

Viz také

IVsUIHierarchy – rozhraní
Microsoft.VisualStudio.Shell.Interop – obor názvů

Zpátky na začátek