IVsSolution.GetProjectOfProjref(String, IVsHierarchy, String, VSUPDATEPROJREFREASON[]) 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.
Retorna uma hierarquia para a cadeia de caracteres de referência de projeto especificada.
public:
int GetProjectOfProjref(System::String ^ pszProjref, [Runtime::InteropServices::Out] Microsoft::VisualStudio::Shell::Interop::IVsHierarchy ^ % ppHierarchy, [Runtime::InteropServices::Out] System::String ^ % pbstrUpdatedProjref, cli::array <Microsoft::VisualStudio::Shell::Interop::VSUPDATEPROJREFREASON> ^ puprUpdateReason);
int GetProjectOfProjref(std::wstring const & pszProjref, [Runtime::InteropServices::Out] Microsoft::VisualStudio::Shell::Interop::IVsHierarchy const & & ppHierarchy, [Runtime::InteropServices::Out] std::wstring const & & pbstrUpdatedProjref, std::Array <Microsoft::VisualStudio::Shell::Interop::VSUPDATEPROJREFREASON> const & puprUpdateReason);
public int GetProjectOfProjref (string pszProjref, out Microsoft.VisualStudio.Shell.Interop.IVsHierarchy ppHierarchy, out string pbstrUpdatedProjref, Microsoft.VisualStudio.Shell.Interop.VSUPDATEPROJREFREASON[] puprUpdateReason);
abstract member GetProjectOfProjref : string * IVsHierarchy * string * Microsoft.VisualStudio.Shell.Interop.VSUPDATEPROJREFREASON[] -> int
Public Function GetProjectOfProjref (pszProjref As String, ByRef ppHierarchy As IVsHierarchy, ByRef pbstrUpdatedProjref As String, puprUpdateReason As VSUPDATEPROJREFREASON()) As Integer
Parâmetros
- pszProjref
- String
no Ponteiro para a cadeia de caracteres de referência de projeto existente, se aplicável. Pode ser null.
- ppHierarchy
- IVsHierarchy
fora Ponteiro para a IVsHierarchy interface referenciada pela referência do projeto.
- pbstrUpdatedProjref
- String
fora Ponteiro para a cadeia de caracteres de referência do projeto atualizado.
- puprUpdateReason
- VSUPDATEPROJREFREASON[]
fora Identificado que descreve o motivo da alteração na cadeia de caracteres de referência do projeto. Para obter uma lista de puprUpdateReason valores, consulte VSUPDATEPROJREFREASON .
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 IVsSolution::GetProjectOfProjref(
[in] LPCOLESTR pszProjref,
[out] IVsHierarchy **ppHierarchy,
[out] BSTR *pbstrUpdatedProjref,
[out] VSUPDATEPROJREFREASON *puprUpdateReason
);
Há dois cenários para esse método:
A referência do projeto acompanha quando o projeto é renomeado dentro de uma solução. Ao tentar associar uma referência de projeto, a GUID do projeto é tentada pela primeira vez chamando GetProjectOfGuid . Se essa chamada for bem sucedido e o projeto tiver sido renomeado, a referência de projeto atualizada também será fornecida para o cliente.
Os projetos são adicionados a uma nova solução e a referência do projeto ainda é capaz de se associar. Se a ligação do GUID falhar, será feita uma tentativa de localizar o projeto usando as informações de tipo/nome. Se isso for executado com sucesso, uma referência de projeto atualizada que inclui o novo projeto será retornada.
O conteúdo da referência do projeto é opaco para o cliente. No entanto, para dar suporte a esses dois cenários para nossa implementação interna, precisamos ter uma cadeia de caracteres de referência de projeto composta pelas seguintes informações:
GUID do projeto atribuído e mantido pelo arquivo de solução
Tipo de projeto (ou nome)
Veja a seguir uma descrição de como o GetProjectOfProjref método é usado para dar suporte a operações de arrastar e soltar:
Os CF_VSPROJECTITEMS formatos e da CF_VSPROJECTS área de transferência usam a DROPFILES estrutura da mesma maneira que o CF_HDROP ou o CF_PRINTERS . Os dados que seguem a DROPFILES estrutura são uma lista de cadeias de caracteres com terminação de nulo duplo Projref . O consumidor da operação de remoção pode usar a API do Windows DragQueryFile para examinar os dados na DROPFILES estrutura. CF_VSPROJECTSo formato é oferecido quando as Projref cadeias de caracteres identificam projetos como um todo, ou seja, * pitemid == VSITEMID_ROOT . O CF_VSPROJECTITEMS formato é oferecido quando as Projref cadeias de caracteres identificam um ou mais itens de projeto individuais. CF_VSPROJECTSOu CF_VSPROJECTITEMS deve ser oferecido, mas nunca ambos.