Поделиться через


Сохранить документ стандартный

Дескрипторы среды сохранить, сохранить как и сохраняют все команды. Когда пользователь выбирает Сохранить" Сохранить какили Сохранить все от Файл меню или закрывает решение, что приводит к a Сохранить всеследующий процесс.

Сохранить, сохранить как и сохраните всю обработку команд для стандартного редактора

Standard Edition

Этот процесс детализирован в следующих шагах.

  1. После Сохранить и Сохранить как выделены команды среды используют SVsShellMonitorSelection служба, чтобы определить окно активного документа и, таким образом, какие элементы должны быть сохранены. После того как окно активного документа известно, среда находит идентификатор указателей и элемента иерархии (itemID) для документа в таблице текущих документов. Дополнительные сведения см. в разделе таблица запущенных документов.

    После Сохранить все команда выбрана среда использует сведения в таблице текущих документа, чтобы компилировать список всех элементов для сохранения.

  2. Если решение возвращает QueryStatus вызов он проходит по набору выбранных элементов (то есть вариантов выбора нескольких элементов, предоставляемых SVsShellMonitorSelection служба).

  3. Для каждого элемента в выделении решение использует указатель иерархии для вызова IsItemDirty метод позволяет определить, является ли Save команда меню должна быть включена. Если один или несколько элементов, пакостны Save команда включена. Если иерархия использует стандартный редактор, то иерархия делегатов запроса пакостного состояния к редактору путем вызова IsDocDataDirty метод.

  4. На каждом выбранном элементе, пакостн решение использует указатель иерархии для вызова SaveItem метод на соответствующих иерархиях.

    Он применяется для иерархии для использования стандартного редактора изменить документ. В этом случае объект данных документа для редактора должен поддерживать IVsPersistDocData2 интерфейс. В начало SaveDocData вызов метода, проект должен быть отчет, что документ сохраняется с помощью редактора SaveItem метод объекта данных документа. Редактор может разрешить среда обработки Сохранить как диалоговое окно " вызов Query Service для SVsUIShell интерфейс. Возвращает указатель на IVsUIShell интерфейс. Редактор должен затем вызвать метод SaveDocDataToFile метод передачи указатель к редактору IPersistFileFormat реализация посредством pPersistFile параметр. Среда затем выполняет операцию сохранения и предоставляет Сохранить как диалоговое окно редактора. Среда затем выполняет обратный вызов в редактор с IPersistFileFormat.

  5. Если пользователь пытается сохранить документ без заголовка (то есть несохраненные документ ранее), то команда сохранить как, фактически выполняется.

  6. Для команды сохранить как среда отображает диалоговое окно сохранить как пробуждая пользователя для имени файла.

    Если имя файла изменилось, то иерархия отвечает за обновление информации фрейма документа кэшированные путем вызова SetProperty(VSFPROPID_MkDocument).

Если Сохранить как команда перемещает расположение документа и иерархия чувствительна к расположению документа, а иерархия отвечает за обработка с владения открытого окна документа в другой иерархии. Например, это происходит, если проект отслеживает, является ли файл внутренний или внешний файл (произвольный файл) по отношению к проекту. Следующая процедура используется для изменения владельца файла в проект прочих файлов.

Изменить владельца файла

Изменить владельца файла в проект прочих файлов

  1. Служба запросов SVsExternalFilesManager интерфейс.

    Указатель на IVsExternalFilesManager2 возвращает.

  2. Вызовите TransferDocument (pszMkDocumentNew" punkWindowFrame), чтобы передать документ в новой иерархии. Иерархия при выполнении команды " сохранить как " вызывает этот метод.

См. также

Ссылки

IOleCommandTarget

Другие ресурсы

Элементы проекта открытие и сохранение