Udostępnij za pośrednictwem


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

 

Zwraca listę projektów, do których zależy od danej hierarchii.

Przestrzeń nazw:   Microsoft.VisualStudio.Shell.Interop
Zestaw:  Microsoft.VisualStudio.Shell.Interop (w Microsoft.VisualStudio.Shell.Interop.dll)

Składnia

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

Parametry

  • pcActual
    Type: System.UInt32[]

    [out, opcjonalny] Wskaźnik do liczby projektów.

Wartość zwracana

Type: System.Int32

Jeśli metoda zakończy się pomyślnie, zwraca S_OK. Jeśli nie, zwraca kod błędu.

Uwagi

Podpis COM

Z vsshell.idl:

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

Zwraca listę projektów, do których zależy od danej hierarchii.

Należy wywołać CalculateProjectDependencies przed wywołaniem GetProjectDependencies Jeśli nie wiesz, czy zależności są aktualne w momencie wywołania.CalculateProjectDependencies wymusi zależności projektu do ponownego obliczenia.

Ta metoda powinna być wywoływana dwukrotnie pierwszy czasu z celt = 0 i rgpHier = null, aby uzyskać rozmiar pcActual, następnie po raz drugi po przydzieleniu na liście, aby pobrać projektów.

Metoda będzie realizowane w następujący sposób (błąd, który sprawdza, czy w przypadku pominięcia):

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);

Zobacz też

Interfejs IVsSolutionBuildManager
Przestrzeń nazw Microsoft.VisualStudio.Shell.Interop

Powrót do początku