IVsExternalFilesManager.TransferDocument(String, String, IVsWindowFrame) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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.