Método IVsUIHierarchy.QueryStatusCommand (UInt32, Guid, UInt32, OLECMD , IntPtr)

 

Consulta o objeto para o status do comando.

Namespace:   Microsoft.VisualStudio.Shell.Interop
Assembly:  Microsoft.VisualStudio.Shell.Interop (em Microsoft.VisualStudio.Shell.Interop.dll)

Sintaxe

int QueryStatusCommand(
    uint itemid,
    [InAttribute] ref Guid pguidCmdGroup,
    uint cCmds,
    OLECMD[] prgCmds,
    IntPtr pCmdText
)
int QueryStatusCommand(
    unsigned int itemid,
    [InAttribute] Guid% pguidCmdGroup,
    unsigned int cCmds,
    array<OLECMD>^ prgCmds,
    IntPtr pCmdText
)
abstract QueryStatusCommand : 
        itemid:uint32 *
        pguidCmdGroup:Guid byref *
        cCmds:uint32 *
        prgCmds:OLECMD[] *
        pCmdText:nativeint -> int
Function QueryStatusCommand (
    itemid As UInteger,
    <InAttribute> ByRef pguidCmdGroup As Guid,
    cCmds As UInteger,
    prgCmds As OLECMD(),
    pCmdText As IntPtr
) As Integer

Parâmetros

  • itemid
    [in] Identificador do item afetado por este comando.Para obter uma lista de itemid valores, consulte VSITEMID.Seleção única, esse é o ID do item real.Para várias seleções, defina itemid igual a VSITEMID_SELECTION.
  • pguidCmdGroup
    [in, exclusivo] Ponteiro para um identificador exclusivo do grupo de comando.O pguidCmdGroup parâmetro pode ser null para especificar o grupo padrão.
  • cCmds
    [in] O número de comandos na prgCmds array.
  • prgCmds
    [in, out, size_is(cCmds)] Uma matriz alocado pelo chamador de OLECMD estruturas que indicam os comandos para os quais o chamador requer informações de status.Esse método preenche o membro cmdf cada estrutura com valores extraídos de OLECMDF enumeração.
  • pCmdText
    [in, out, exclusivo] Ponteiro para uma OLECMDTEXT estrutura na qual você deseja retornar as informações de nome e/ou status de um único comando.Pode ser null para indicar que o chamador não exige que essas informações.

Valor de retorno

Type: System.Int32

Se o método for bem-sucedido, ele retorna S_OK.Se ele falhar, ele retorna um código de erro.

Comentários

COM assinatura

De vsshell.idl:

HRESULT IVsUIHierarchy::QueryStatusCommand(
   [in] VSITEMID itemid,
   [in, unique] const GUID * pguidCmdGroup,
   [in] ULONG cCmds,
   [in, out, size_is(cCmds)] OLECMD prgCmds[],
   [in, out, unique] OLECMDTEXT *pCmdText
);

Este método é semelhante do M:Microsoft.VisualStudio.OLE.Interop.IOleCommandTarget.Exec(System.Guid@,System.UInt32,System.UInt32,System.IntPtr,System.IntPtr) método, que não oferece suporte a hierarquias.O ExecCommand Além disso inclui um método de itemid parâmetro, que identifica o item de hierarquia ao qual o comando se aplica.

O ambiente executa este método quando a janela hierarquia de interface do usuário tem o foco.A janela hierarquia de interface do usuário delega todos os comandos de menu ou barra de ferramentas para o UIHierarchy o objeto que é o pai comum para a seleção.Isso fornece a UIHierarchy a opção para manipular os comandos que se aplicam somente quando a janela hierarquia de interface do usuário tem o foco de objeto.Os exemplos incluem o Excluir e Remover comandos.

Também não tratar esses comandos usando o IOleCommandTarget interface na qual QueryInterface pode ser executado a partir do IVsHierarchy interface.O IOleCommandTarget do projeto ativo é incluído no comando usual roteamento do ambiente, mesmo quando a outra janela (por exemplo, uma janela de documento) tem o foco.

Se a janela hierarquia de interface do usuário não é a janela ativa, mas ainda é a hierarquia ativa, o que significa que é a última hierarquia para foram selecionados, então todos os comandos que envolvem a hierarquia ativa são enviados através do IOleCommandTarget interface em vez da IVsUIHierarchy interface.Por exemplo, se a seleção é alterada do Solution Explorer à lista de tarefas, em seguida, a Solution Explorer a hierarquia ativa, mas a janela ativa é a lista de tarefas.Nesse caso, todos os comandos relacionados a hierarquia de ativa, como, por exemplo, adicionando um item ao projeto, são enviados através do IOleCommandTarget interface.

Comandos como adicionar um item de projeto não devem ser tratados pelo IVsUIHierarchy métodos porque elas não estarão disponíveis de fora da janela de hierarquia.Use somente IVsUIHierarchy para lidar com os comandos que exigem o A hierarquia de interface do usuário janela para ter foco, ou que agir em um item específico dentro da hierarquia.

Consulte também

Interface IVsUIHierarchy
Namespace Microsoft.VisualStudio.Shell.Interop

Retornar ao topo