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] Определяет указатель на окно открытия для файла.

Возвращаемое значение

Int32

Если метод завершается успешно, возвращает значение 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 метод. Фреймы окон и различные сущности, которые прослушивают события РДТ, затем узнают, как обновить ссылки на документ.

Применяется к