Compartilhar via


Método IVsSolutionBuildManager2.GetProjectDependencies (IVsHierarchy, UInt32, IVsHierarchy[], UInt32 )

 

Publicado: abril de 2016

Retorna uma lista de projetos que depende de determinada hierarquia.

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

Sintaxe

int GetProjectDependencies(
    IVsHierarchy pHier,
    uint celt,
    IVsHierarchy[] rgpHier,
    uint[] pcActual
)
int GetProjectDependencies(
    IVsHierarchy^ pHier,
    unsigned int celt,
    array<IVsHierarchy^>^ rgpHier,
    array<unsigned int>^ pcActual
)
abstract GetProjectDependencies : 
        pHier:IVsHierarchy *
        celt:uint32 *
        rgpHier:IVsHierarchy[] *
        pcActual:uint32[] -> int
Function GetProjectDependencies (
    pHier As IVsHierarchy,
    celt As UInteger,
    rgpHier As IVsHierarchy(),
    pcActual As UInteger()
) As Integer

Parâmetros

  • pcActual
    Type: System.UInt32[]

    [out, opcional] Ponteiro para o número de projetos.

Valor de retorno

Type: System.Int32

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

Implementações

IVsSolutionBuildManager.GetProjectDependencies(IVsHierarchy, UInt32, IVsHierarchy[], UInt32[])

Comentários

COM assinatura

De vsshell.idl:

HRESULT IVsSolutionBuildManager2::GetProjectDependencies(
   [in] IVsHierarchy *pHier,
   [in] ULONG celt,
   [in, out, size_is(celt)] IVsHierarchy *rgpHier[],
   [out, optional] ULONG *pcActual
);

Retorna uma lista de projetos que depende de determinada hierarquia.

Você deve chamar CalculateProjectDependencies antes de chamar GetProjectDependencies se você não tiver certeza se as dependências são atualizadas no ponto de chamada.CalculateProjectDependencies forçar as dependências do projeto ser recalculadas.

Esse método deve ser chamado duas vezes, a primeira hora com celt = 0 e rgpHier = null, para obter o tamanho em pcActual, em seguida, uma segunda vez depois de alocar a lista para obter os projetos.

O método será implementado da seguinte maneira (erro verificações são omitidas):

ULONG ulActual;

hr = pIVsSolutionBuildManager2->GetProjectDependencies(pHier, 0, NULL, &ulActual)

// allocate memory to hold the hierarchy pointers

IVsHierarchy** rgpIVsHierarchy = (IVsHierarchy**) ::CoTaskMemAlloc(ulActual * sizeof(IVsHierarchy *));

memset(rgpIVsHierarchy, 0, sizeof(IVsHierarchy*)*ulActual);

// now get the hierarchy pointers

ULONG ulActual2;

hr = pIVsSolutionBuildManager2->GetProjectDependencies(pHier, ulActual, rgpIVsHierarchy, &ulActual2);

// use the pointers here

// release the hier pointers

// release the memory

::CoTaskMemFree(rgpIVsHierarchy);

Consulte também

Interface IVsSolutionBuildManager2
Namespace Microsoft.VisualStudio.Shell.Interop

Retornar ao topo