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

Definição

Retorna uma lista de projetos dos quais a hierarquia específica depende.

int GetProjectDependencies(Microsoft::VisualStudio::Shell::Interop::IVsHierarchy const & pHier, unsigned int celt, std::Array <Microsoft::VisualStudio::Shell::Interop::IVsHierarchy const &> const & rgpHier, std::Array <unsigned int> const & pcActual);
public int GetProjectDependencies (Microsoft.VisualStudio.Shell.Interop.IVsHierarchy pHier, uint celt, Microsoft.VisualStudio.Shell.Interop.IVsHierarchy[] rgpHier, uint[] pcActual);
abstract member GetProjectDependencies : Microsoft.VisualStudio.Shell.Interop.IVsHierarchy * uint32 * Microsoft.VisualStudio.Shell.Interop.IVsHierarchy[] * uint32[] -> int
Public Function GetProjectDependencies (pHier As IVsHierarchy, celt As UInteger, rgpHier As IVsHierarchy(), Optional pcActual As UInteger()) As Integer

Parâmetros

pHier
IVsHierarchy

no Ponteiro para um IVsHierarchy objeto.

celt
UInt32

no Especifica celt .

rgpHier
IVsHierarchy[]

[entrada, saída] Especifica os projetos a serem compilados.

pcActual
UInt32[]

[saída, opcional] Ponteiro para o número de projetos.

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 IVsSolutionBuildManager::GetProjectDependencies(  
   [in] IVsHierarchy *pHier,  
   [in] ULONG celt,  
   [in, out, size_is(celt)] IVsHierarchy *rgpHier[],  
   [out, optional] ULONG *pcActual  
);  

Retorna uma lista de projetos dos quais a hierarquia específica depende.

Você deve chamar CalculateProjectDependencies antes de chamar GetProjectDependencies se não tiver certeza se as dependências estão atualizadas no ponto da chamada. CalculateProjectDependencies forçará a recálculo das dependências do projeto.

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

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

ULONG ulActual;

hr = pIVsSolutionBuildManager->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 = pIVsSolutionBuildManager->GetProjectDependencies(pHier, ulActual, rgpIVsHierarchy, &ulActual2);

// use the pointers here

// release the hier pointers

// release the memory

::CoTaskMemFree(rgpIVsHierarchy);

Aplica-se a