Объекты контекста выбора
Интегрированная среда разработки Visual Studio использует глобальный объект контекста выбора для определения того, что должно отображаться в интегрированной среде разработки. Каждое окно в интегрированной среде разработки может содержать собственный объект контекста выбора, отправленный в контекст глобального выбора. Интегрированная среда разработки обновляет контекст глобального выбора со значениями из окна, когда в этом окне есть фокус. Дополнительные сведения см. в разделе "Отзывы о пользователе".
Каждый фрейм окна или сайт в интегрированной среде разработки имеет вызываемую STrackSelectionслужбу. Объект, созданный VSPackage, который находится в кадре окна, должен вызвать QueryService
метод, чтобы получить указатель на ITrackSelection интерфейс.
Окна кадров могут сохранять части информации о контексте выбора от распространения в контекст глобального выбора при запуске. Эта возможность полезна для окон инструментов, которые могут начинаться с пустого выделения.
Изменение контекста глобального выбора активирует события, которые могут отслеживать VSPackages. VSPackages может выполнять следующие задачи, реализуя и IVsMonitorSelection интерфейсыIVsTrackSelectionEx
:
Обновите текущий активный файл в иерархии.
Отслеживайте изменения определенных типов элементов. Например, если VSPackage использует специальное окно свойств , вы можете отслеживать изменения в окне активных свойств и перезапускать их при необходимости.
В следующей последовательности показан типичный курс отслеживания выбора.
Интегрированная среда разработки извлекает контекст выбора из только что открытого окна и помещает его в контекст глобального выбора. Если контекст выбора использует HIERARCHY_DONTPROPAGATE или SELCONTAINER_DONTPROPAGATE, эта информация не распространяется в глобальный контекст. Дополнительные сведения см. в разделе "Отзывы о пользователе".
События уведомлений передаются в любой пакет VSPackage, запрашивающий их.
VSPackage действует на события, которые он получает, выполняя такие действия, как обновление иерархии, повторная активация средства или другие аналогичные задачи.