Objetos de contexto da seleção

O Visual Studio IDE (ambiente de desenvolvimento integrado) usa um objeto de contexto de seleção global para determinar o que deve ser exibido no IDE. Cada janela no IDE pode ter seu próprio objeto de contexto de seleção enviado por push para o contexto de seleção global. O IDE atualiza o contexto de seleção global com valores de uma janela quando essa janela tem o foco. Para obter mais informações, consulte comentários para o usuário.

Cada quadro da janela ou site no IDE tem um serviço chamado STrackSelection . O objeto criado por seu VSPackage que está no quadro da janela deve chamar o QueryService método para obter um ponteiro para a ITrackSelection interface.

Janelas de quadros podem manter partes de suas informações de contexto de seleção serem propagadas para o contexto de seleção global quando elas são iniciadas. Essa capacidade é útil para janelas de ferramentas que podem ter que começar com uma seleção vazia.

Modificar o contexto de seleção global dispara eventos que o VSPackages pode monitorar. O VSPackages pode executar as seguintes tarefas implementando IVsTrackSelectionEx e IVsMonitorSelection interfaces:

  • Atualize o arquivo ativo no momento em uma hierarquia.

  • Monitore alterações em determinados tipos de elementos. Por exemplo, se o seu VSPackage usar uma janela de Propriedades especiais, você poderá monitorar as alterações na janela de Propriedades ativas e reiniciar o seu quando necessário.

    A sequência a seguir mostra o curso típico do controle de seleção.

  1. O IDE recupera o contexto de seleção da janela aberta recentemente e o coloca no contexto de seleção global. Se o contexto de seleção usar HIERARCHY_DONTPROPAGATE ou SELCONTAINER_DONTPROPAGATE, essas informações não serão propagadas para o contexto global. Para obter mais informações, consulte comentários para o usuário.

  2. Os eventos de notificação são transmitidos para qualquer VSPackage que os solicitou.

  3. O VSPackage atua nos eventos que recebe, executando atividades como atualizar uma hierarquia, reativar uma ferramenta ou outras tarefas semelhantes.

Confira também