Metoda IVsUIHierarchy.ExecCommand — (UInt32, Guid, UInt32, UInt32, IntPtr, IntPtr)
Wykonuje polecenie na określony element w oknie hierarchii interfejsu użytkownika lub na samej hierarchii.
Przestrzeń nazw: Microsoft.VisualStudio.Shell.Interop
Zestaw: Microsoft.VisualStudio.Shell.Interop (w Microsoft.VisualStudio.Shell.Interop.dll)
Składnia
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
[w] Identyfikator elementu dotyczy polecenia przekazywane do IVsUIHierarchy.Aby uzyskać listę itemid wartości, zobacz VSITEMID.Dla pojedynczego wyboru wartość ta jest identyfikator konkretnego towaru.W przypadku zaznaczenia wielu, należy ustawić itemid równą VSITEMID_SELECTION.
- pguidCmdGroup
[w, unikatowe] Unikatowy identyfikator grupy poleceń; może być null do określenia standardowego grupy.Wszystkie polecenia, które są przekazywane w nCmdID , trzeba należeć do grupy określonej przezpguidCmdGroup
- nCmdID
[w] Polecenie do wykonania.To polecenie musi należeć do grupy określonej w pguidCmdGroup.
nCmdexecopt
[w] Wartości opisują, w jaki sposób obiekt powinno być wykonane polecenie.wartość nCmdexecopt [1|1]
[1|2] Wartość
[1|3] Opis
[2|1] OLECMDEXECOPT_DODEFAULT
[2|2] 0
[2|3] Monituj użytkownika o wprowadzenie danych lub nie, w zależności od zachowanie domyślne
[3|1] OLECMDEXECOPT_PROMPTUSER
[3|2] 1
[3|3] Wydaj polecenie po uzyskaniu danych wprowadzanych przez użytkownika.
[4|1] OLECMDEXECOPT_DONTPROMPTUSER
[4|2] 2
[4|3] Wykonać polecenie bez monitowania użytkownika.Na przykład klikając przycisk Drukuj na pasku narzędzi powoduje dokumentu do wydrukowania bezpośrednio bez udziału użytkownika.
[5|1] OLECMDEXECOPT_SHOWHELP
[5|2] 3
[5|3] Wyświetla Pomoc dla odpowiedniego polecenia, ale nie wykonuje.
- pvaIn
[w, unikatowe] Wskaźnik, aby VARIANTARG struktury zawierającej argumenty wejściowe.Can be null.
- pvaOut
[in, out, unikatowe] VARIANTARG strukturę, aby odbierać dane wyjściowe polecenia.Can be null.
Wartość zwracana
Type: System.Int32
Jeśli metoda się powiedzie, zwraca S_OK.Jeśli nie powiedzie się, zwraca kod błędu.
Uwagi
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
);
Ta metoda jest podobna do Exec metodę, z wyjątkiem Exec metoda nie obsługuje hierarchie, należy IVsUIHierarchy.ExecCommand metoda zawiera parametr identyfikator elementu, który identyfikuje element hierarchii, którego dotyczy polecenie.
Środowisko wykonawcze wykonuje IVsUIHierarchy.ExecCommand kiedy okno hierarchia interfejsu użytkownika ma fokus.Okno hierarchia UI deleguje wszystkich poleceń menu lub paska narzędzi, aby UIHierarchy obiekt, który jest elementem nadrzędnym wspólne dla zaznaczenia.Zapewnia to UIHierarchy obiektu opcji poleceń, które dotyczą tylko okno hierarchia interfejsu użytkownika nie ma fokusu.Przykładami usunąć i usunąć polecenia.Polecenia te nie mogą być przekazywane za pośrednictwem Exec.IOleCommandTarget z aktywnego projektu jest wliczana zwykle polecenia routingu środowiska, nawet wtedy, gdy fokus w innym oknie (na przykład okna Dokument).Do obsługi usunąć i usunąć dla projektu, należy użyć IVsHierarchyDeleteHandler.
Jeśli okno hierarchii interfejsu użytkownika nie jest oknem aktywnym, ale nadal jest aktywny hierarchii, co oznacza, że jest ostatnia hierarchia zostało zaznaczone, a następnie wysyłane za pośrednictwem dowolnego polecenia, które obejmują hierarchii active IOleCommandTarget interfejsu zamiast IVsUIHierarchy interfejsu.Na przykład, jeśli zaznaczenie jest zmieniana z Solution Explorer do listy zadań, a następnie Solution Explorer aktywnej hierarchii, ale aktywne okno jest na liście zadań.W tym przypadku wszystkie polecenia, które są powiązane z aktywnej hierarchii, takich jak dodawanie elementu do projektu, są wysyłane za pośrednictwem IOleCommandTarget interfejsu.
Poleceń, takich jak dodanie elementu projektu nie powinny być obsługiwane przez IVsUIHierarchy metod, ponieważ nie będzie dostępne z zewnątrz okno hierarchii.Używać tylko IVsUIHierarchy do obsługi poleceń, które wymagają Hierarchii UI okno ma koncentrować się lub działań na określony element w hierarchii.
Grupa polecenia VSConstants.VsUIHierarchyWindowCmdIds jest używana do obsługi bezpośredniej manipulacji interfejsu użytkownika w oknie hierarchii interfejsu użytkownika.
VSHPROPID_EditLabelmuszą być obsługiwane w GetProperty i SetProperty do edycji Nazwa elementu, aby być włączone.
Następujące standardowe polecenia powinny być obsłużony tylko za pomocą IVsUIHierarchy interfejsu:
// {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
Zobacz też
Interfejs IVsUIHierarchy
Przestrzeń nazw Microsoft.VisualStudio.Shell.Interop
Powrót do początku