IVsExternalFilesManager.TransferDocument(String, String, IVsWindowFrame) Método

Definição

Transfere um documento para o projeto de arquivos diversos.

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

Parâmetros

pszMkDocumentOld
String

no Especifica o caminho original para o arquivo a ser transferido.

pszMkDocumentNew
String

no Especifica o novo caminho para o arquivo.

punkWindowFrame
IVsWindowFrame

no Especifica o ponteiro para a janela aberta do arquivo.

Retornos

Int32

Se o método for bem-sucedido, retornará S_OK. Se falhar, retornará um código de erro.

Comentários

Assinatura COM

De VSShell. idl:

HRESULT IVsExternalFilesManager::TransferDocument(  
   [in] LPCOLESTR pszMkDocumentOld,  
   [in] LPCOLESTR pszMkDocumentNew,  
   [in] IVsWindowFrame *punkWindowFrame  
);  

Esta é a implementação do comando Abrir arquivo externo no menu arquivo do sistema. Se nenhum projeto puder atender a esse arquivo e o projeto de arquivos diversos (arquivos externos) ainda não estiver presente, o ambiente criará o projeto de arquivos diversos e tentará novamente.

No ambiente, o projeto de arquivos diversos é implementado usando o Gerenciador de arquivos externos ( IVsExternalFilesManager ). Essa interface permite que você manipule o projeto de arquivos diversos.

Se você tiver um projeto World Wide Web, a definição de seu sistema de projeto estará estreitamente ligada ao fato de que as páginas da Web residem em um diretório específico imitando a hierarquia do site da Web. Se o seu projeto tiver um arquivo aberto da Web e o usuário optar por salvar como nesse arquivo para salvá-lo em um disquete, esse arquivo não poderá mais ser considerado um arquivo que pertence ao site, pois ele não reside no diretório do site da Web. O modelo do ambiente de salvar como é que o editor aberto rastreia o arquivo em seu novo local. Ou seja, o editor continua editando o novo arquivo em seu novo local e o arquivo antigo permanece inalterado no local original e não é mais aberto. Como o novo arquivo não é mais um membro do projeto de site, o sistema do projeto passa o editor aberto para o projeto de arquivos diversos.

Para concluir essa transferência, o proprietário de hierarquia/itemID do projeto (neste exemplo, o projeto Web) chama Query Service para SID_SVsExternalFilesManager receber um ponteiro IVsExternalFilesManager . Em seguida, o projeto chama TransferDocument a passagem do moniker do documento antigo ( pszMkDocumentString ) para o documento quando ele estava no projeto Web. Esse moniker pode ser uma URL, um http://ou um caminho UNC e é a chave para o arquivo original na tabela de documentos em execução (RDT). Ele também passa o novo pszMkDocumentString e o novo ponteiro de quadro de janela aberto. O projeto de arquivos diversos, em seguida, transfere o arquivo para seu projeto, aloca uma nova ID de item para ele e, em seguida, atualiza o RDT chamando RenameDocument . Quadros de janela e entidades diferentes que escutam eventos RDT, em seguida, sabem atualizar suas referências ao documento.

Aplica-se a