Compartilhar via


Método IVsSolution2.GetProjectOfProjref (String, IVsHierarchy, String, VSUPDATEPROJREFREASON )

 

Publicado: abril de 2016

Retorna uma hierarquia para a seqüência de referência do projeto especificado.

Namespace:   Microsoft.VisualStudio.Shell.Interop
Assembly:  Microsoft.VisualStudio.Shell.Interop (em Microsoft.VisualStudio.Shell.Interop.dll)

Sintaxe

int GetProjectOfProjref(
    string pszProjref,
    out IVsHierarchy ppHierarchy,
    out string pbstrUpdatedProjref,
    VSUPDATEPROJREFREASON[] puprUpdateReason
)
int GetProjectOfProjref(
    String^ pszProjref,
    [OutAttribute] IVsHierarchy^% ppHierarchy,
    [OutAttribute] String^% pbstrUpdatedProjref,
    array<VSUPDATEPROJREFREASON>^ puprUpdateReason
)
abstract GetProjectOfProjref : 
        pszProjref:string *
        ppHierarchy:IVsHierarchy byref *
        pbstrUpdatedProjref:string byref *
        puprUpdateReason:VSUPDATEPROJREFREASON[] -> int
Function GetProjectOfProjref (
    pszProjref As String,
    <OutAttribute> ByRef ppHierarchy As IVsHierarchy,
    <OutAttribute> ByRef pbstrUpdatedProjref As String,
    puprUpdateReason As VSUPDATEPROJREFREASON()
) As Integer

Parâmetros

  • pszProjref
    [in] Ponteiro para a existente seqüência de referência de projeto, se aplicável.Can be null.
  • ppHierarchy
    [out] Ponteiro para o IVsHierarchy interface é nomeada de acordo com a referência do projeto.
  • pbstrUpdatedProjref
    [out] Ponteiro para a seqüência de referência de projeto atualizado.
  • puprUpdateReason
    [out] Identificado descrevendo o motivo da alteração na seqüência de referência de projeto.Para obter uma lista de puprUpdateReason valores, consulte VSUPDATEPROJREFREASON.

Valor de retorno

Type: System.Int32

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

Implementações

IVsSolution.GetProjectOfProjref(String, IVsHierarchy, String, VSUPDATEPROJREFREASON[])

Comentários

COM assinatura

De vsshell.idl:

HRESULT IVsSolution2::GetProjectOfProjref(
   [in] LPCOLESTR pszProjref, 
   [out] IVsHierarchy **ppHierarchy, 
   [out] BSTR *pbstrUpdatedProjref, 
   [out] VSUPDATEPROJREFREASON *puprUpdateReason
);

Há dois cenários para este método:

  • A referência de projeto controla quando o projeto é renomeado dentro de uma única solução.Ao tentar vincular uma referência de projeto, o GUID do projeto é tentado em primeiro lugar, chamando GetProjectOfGuid.Se essa chamada tiver êxito e o projeto foi renomeado, a referência de projeto atualizado também é fornecida para o cliente.

  • Projetos são adicionados a uma nova solução e a referência de projeto é ainda é possível ligar.Se o GUID não ligar, é feita uma tentativa para localizar o projeto usando as informações de nome do tipo.Se isso tiver êxito, uma referência ao projeto atualizado que inclui o novo projeto é retornada.

O conteúdo de referência de projeto é opaco para o cliente.No entanto, para oferecer suporte a esses dois cenários para nossa implementação interna, precisamos ter uma seqüência de referência do projeto é composta das seguintes informações:

  • GUID atribuído e mantido pelo arquivo de solução do projeto

  • Tipo (ou nome) do projeto

A seguir está uma descrição de como o GetProjectOfProjref método é usado para dar suporte às operações de arrastar e soltar:

Uso de formatos na área de transferência CF_VSPROJECTITEMS e CF_VSPROJECTS a DROPFILES estrutura da mesma maneira como CF_HDROP ou CF_PRINTERS.Os dados que segue a DROPFILES estrutura é uma lista de terminação dupla-nula de Projref seqüências de caracteres.O consumidor da operação soltar pode usar a API do Windows DragQueryFile para examinar os dados a DROPFILES estrutura.Formato CF_VSPROJECTS é oferecido quando o Projref seqüências identificam projetos como um todo, isto é, *pitemid = = VSITEMID_ROOT.O formato CF_VSPROJECTITEMS é oferecido quando o Projref seqüências identificam um ou mais itens de projeto individual.O CF_VSPROJECTS ou CF_VSPROJECTITEMS deve ser oferecida, mas nunca os dois.

Consulte também

Interface IVsSolution2
Namespace Microsoft.VisualStudio.Shell.Interop

Retornar ao topo