IVsExternalFilesManager2.TransferDocument(String, String, IVsWindowFrame) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Передает документ в проект прочих файлов.
public:
int TransferDocument(System::String ^ pszMkDocumentOld, System::String ^ pszMkDocumentNew, Microsoft::VisualStudio::Shell::Interop::IVsWindowFrame ^ punkWindowFrame);
public:
int TransferDocument(Platform::String ^ pszMkDocumentOld, Platform::String ^ pszMkDocumentNew, Microsoft::VisualStudio::Shell::Interop::IVsWindowFrame ^ punkWindowFrame);
int TransferDocument(std::wstring const & pszMkDocumentOld, std::wstring const & pszMkDocumentNew, Microsoft::VisualStudio::Shell::Interop::IVsWindowFrame const & punkWindowFrame);
public int TransferDocument (string pszMkDocumentOld, string pszMkDocumentNew, Microsoft.VisualStudio.Shell.Interop.IVsWindowFrame punkWindowFrame);
abstract member TransferDocument : string * string * Microsoft.VisualStudio.Shell.Interop.IVsWindowFrame -> int
Public Function TransferDocument (pszMkDocumentOld As String, pszMkDocumentNew As String, punkWindowFrame As IVsWindowFrame) As Integer
Параметры
- pszMkDocumentOld
- String
[in] Указывает исходный путь к файлу, который необходимо передать.
- pszMkDocumentNew
- String
[in] Указывает новый путь к файлу.
- punkWindowFrame
- IVsWindowFrame
[in] Определяет указатель на окно открытия для файла.
Возвращаемое значение
Если метод завершается успешно, возвращает значение S_OK. В противном случае функция возвращает код ошибки.
Реализации
Комментарии
Подпись COM
Из всшелл. IDL:
HRESULT IVsExternalFilesManager2::TransferDocument(
[in] LPCOLESTR pszMkDocumentOld,
[in] LPCOLESTR pszMkDocumentNew,
[in] IVsWindowFrame *punkWindowFrame
);
Это реализация команды Открыть внешний файл в меню системный файл . Если ни один проект не может обслуживать этот файл, а проект "Прочие файлы (внешние файлы)" еще не существует, среда создаст проект "Прочие файлы" и повторит попытку.
В среде проект "Прочие файлы" реализуется с помощью диспетчера внешних файлов ( IVsExternalFilesManager ). Этот интерфейс позволяет управлять проектом прочих файлов.
Если у вас есть веб-проект, определение системы проекта тесно связано с тем, что веб-страницы находятся в определенном каталоге, копируя иерархию веб-узла. Если в проекте есть файл, Открытый из Интернета, и пользователь выбирает Сохранение файла на дискету, этот файл больше не может считаться файлом, принадлежащим веб-сайту, так как он не находится в каталоге веб-сайта. Модель среды « Сохранить как » заключается в том, что открытый редактор отслеживает файл в новом расположении. То есть редактор продолжает изменять новый файл в новом расположении, а старый файл остается неизменным в исходном расположении и больше не открывается. Поскольку новый файл больше не является членом проекта веб-сайта, система проектов передает открытый редактор в проект "Прочие файлы".
Чтобы завершить этот перенос, владелец иерархии или itemID проекта (в этом примере — веб-проект) вызывает Query Service SID_SVsExternalFilesManager для получения указателя на IVsExternalFilesManager . Затем проект вызывает TransferDocument передачу в старом документе моникера ( pszMkDocumentString ) для документа, когда он находился в веб-проекте. Это моникер может быть URL-адресом, http://или UNC и является ключом к исходному файлу в таблице выполняемых документов (РДТ). Он также передает новый pszMkDocumentString и новый указатель фрейма окна Open Window. Затем проект "Прочие файлы" передает файл в свой проект, выделяет для него новый идентификатор элемента, а затем обновляет РДТ, вызывая RenameDocument метод. Фреймы окон и различные сущности, которые прослушивают события РДТ, затем узнают, как обновить ссылки на документ.