Определение подходящего редактор откроет файл в проекте
Когда пользователь открывает файл в проекте среды проходит процесс опроса, наконец открытие соответствующие редактор или конструктор для этого файла. Начальная процедура, используемая средой такая же, как для стандарта, так и для специализированных редакторов. Среда использует различные условия, редактор для использования открыть файл и VSPackage должен координации с средой во время этого процесса.
Например, когда пользователь выбирает IsDocumentInProject команда из Открыть меню, а затем выбирает Файл .rtf (или любой другой файл с расширением .rtf), среда называется filenameреализация для каждого проекта, наконец задействуя во всех экземплярах проекта в решении. Проекты возвращают набор флагов, которые задают утверждения в документе приоритетом. Использование наивысшим приоритетом, среда вызывает соответствующее OpenItem метод. Дополнительные сведения о процесса опроса, Добавление шаблонов проектов и элементов проектов.
Проект прочих файлов требует все файлы, не востребованы другими проектами. Таким образом, специализированные редакторы может открытые документы, прежде чем стандартные редакторы открывает их. Если проект прочих файлов требует файл, среда вызывает OpenStandardEditor метод, чтобы открыть файл с стандартным редактором. Среда проверяет свой внутренний список зарегистрированных редакторов для одного который обрабатывает .rtf файлов. Этот список находится в реестре на следующий ключ:
[HKEY_LOCAL_MACHINE \ software \ microsoft \ VisualStudio \ <версия> редакторы \ {\ <идентификатор guid фабрики редактора>} \ extensions]
Среда также проверяет идентификаторы класса в ключе HKEY_CLASSES_ROOT \ CLSID для всех объектов, имеющих sub-ключ DocObject. Если расширение файла находится там, внедренной версия приложения, такого как Microsoft Word, созданный на месте в Visual Studio. Эти объекты документа должны быть составными файлами, которые реализуют IPersistStorage интерфейс или объект должен реализовать IPersistFileFormat интерфейс.
Если фабрика редактора для файлов .rtf в реестре, среда выглядит в ключе HKEY_CLASSES_ROOT \ .rtf и открывается редактор, определенный в ней. Если расширение файла не найден в HKEY_CLASSES_ROOT, среда использует текстовый редактор ", " основные Visual Studio, чтобы открыть файл, если текстовый файл.
Если текстовый редактор core завершается ошибкой, возникает, если файл отсутствует текстового файла, то среда использует его является редактор для файла.
Если среда находится редактор для расширения .rtf в реестре, то загрузки VSPackage, реализующий эта фабрика редактора. Среда вызывает SetSite метод на новом VSPackage. Вызовы VSPackage RegisterEditor для QueryService использование SID_SVsRegistorEditorметод, чтобы зарегистрировать фабрику редактора со средой.
Среда теперь перепроверяет свой внутренний список зарегистрированных редакторов для поиска вновь зарегистрированное фабрика редактора для файлов .rtf. Среда вызывает реализация CreateEditorInstance метод, передавая в тип имени файла и представления, для которого требуется создать.