IVsExternalFilesManager2.TransferDocument 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将文档传输到杂项文件项目。
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
中指定要传输的文件的原始路径。
- pszMkDocumentNew
- String
中指定文件的新路径。
- punkWindowFrame
- IVsWindowFrame
中指定指向文件打开窗口的指针。
返回
如果该方法成功,则它会返回 S_OK。 如果该方法失败,则会返回错误代码。
实现
注解
COM 签名
从 vsshell:
HRESULT IVsExternalFilesManager2::TransferDocument(
[in] LPCOLESTR pszMkDocumentOld,
[in] LPCOLESTR pszMkDocumentNew,
[in] IVsWindowFrame *punkWindowFrame
);
这是 "系统 文件" 菜单上的 "打开外部文件" 命令的实现。 如果没有项目可以为此文件提供服务,并且 (外部文件) 项目的杂项文件尚不存在,则该环境将创建杂项文件项目,然后重试。
在环境中,杂项文件项目是使用外部文件管理器 () 来实现的 IVsExternalFilesManager 。 此接口允许您操作杂项文件项目。
如果你有一个万维网项目,则你的项目系统的定义将紧密绑定到你的网页位于该网站层次结构模拟的特定目录中。 如果你的项目具有从 Web 打开的文件,并且用户选择在该文件上执行 另存为 ,将其保存到软盘,则该文件将不再被视为属于网站的文件,因为该文件不在网站的目录中。 环境的 " 另存为 " 模型是打开的编辑器在其新位置跟踪该文件。 也就是说,编辑器会继续在新位置编辑新文件,旧文件在原始位置保持不变,并且不再打开。 由于新文件不再是网站项目的成员,因此项目系统将打开的编辑器移交给杂项文件项目。
若要完成此传输,该项目的层次结构/itemID 所有者 (在此示例中,Web 项目) 调用以 Query Service 获取 SID_SVsExternalFilesManager 来接收指向的指针 IVsExternalFilesManager 。 然后,在 Web 项目中,项目将调用 TransferDocument 旧的文档名字对象中 (pszMkDocumentString) 文档。 此名字对象可以是 URL、http://或 UNC 路径,也可以是正在运行的文档表中原始文件的密钥, (RDT) 。 它还传递新的 pszMkDocumentString 和新的打开窗口框架指针。 然后,杂项文件项目将文件传输到其项目,为其分配新的项 ID,然后通过调用方法更新 RDT RenameDocument 。 然后,窗口框架和侦听 RDT 事件的不同实体将知道更新其对文档的引用。