Отображение файлов с помощью команды "Открыть файл"

Ниже описано, как интегрированная среда разработки обрабатывает команду "Открыть файл", которая доступна в меню "Файл" в Visual Studio. В шагах также описывается, как проекты должны реагировать на вызовы, исходящие из этой команды.

Когда пользователь щелкает команду "Открыть файл" в меню "Файл" и выбирает файл в диалоговом окне "Открыть файл", происходит следующий процесс:

  1. Используя запущенную таблицу документов, интегрированная среда разработки определяет, открыт ли файл в проекте.

    • Если файл открыт, интегрированная среда разработки возвращает окно.

    • Если файл не открыт, интегрированная среда разработки вызывает IsDocumentInProject запрос к каждому проекту, чтобы определить, какой проект может открыть файл.

      Примечание.

      В реализации проекта укажите значение приоритета IsDocumentInProject, указывающее уровень, на котором открывается файл. Значения приоритета предоставляются в VSDOCUMENTPRIORITY перечислении.

  2. Каждый проект отвечает на уровень приоритета, указывающий на важность, которую он указывает на то, что проект будет открывать файл.

  3. Интегрированная среда разработки использует следующие критерии, чтобы определить, какой проект открывает файл:

    • Проект, который отвечает с наивысшим приоритетом (DP_Intrinsic) открывает файл. Если несколько проектов отвечают с этим приоритетом, первый проект для ответа открывает файл.

    • Если ни один проект не отвечает с наивысшим приоритетом (DP_Intrinsic), но все проекты отвечают с одинаковым, низким приоритетом, активный проект открывает файл. Если проект не активен, первый проект для ответа открывает файл.

    • Если проект не утверждает владение файлом (DP_Unsupported), проект "Прочие файлы" открывает файл.

      Если создается экземпляр проекта "Прочие файлы", проект всегда отвечает со значением DP_CanAddAsExternal. Это значение указывает, что проект может открыть файл. Этот проект используется для размещения открытых файлов, которые не находятся в другом проекте. Список элементов в этом проекте не сохраняется; этот проект отображается в Обозреватель решений только в том случае, если он используется для открытия файла.

      Если проект "Другие файлы" не указывает, что он может открыть файл, экземпляр проекта не был создан. В этом случае интегрированная среда разработки создает экземпляр проекта "Прочие файлы" и сообщает проекту открыть файл.

  4. Как только интегрированная среда разработки определяет, какой проект открывает файл, он вызывает OpenItem метод в этом проекте.

  5. Затем проект может открыть файл с помощью редактора для конкретного проекта или стандартного редактора. Дополнительные сведения см. в статье "Практическое руководство. Открытие редакторов для конкретных проектов и практическое руководство. Открытие стандартных редакторов соответственно".