IVsHierarchy Schnittstelle

Definition

Stellt Hierarchienverwaltung für VSPackages bereit, die Projekthierarchien implementieren.

public interface class IVsHierarchy
public interface class IVsHierarchy
__interface IVsHierarchy
[System.Runtime.InteropServices.ComConversionLoss]
[System.Runtime.InteropServices.Guid("59B2D1D0-5DB0-4F9F-9609-13F0168516D6")]
[System.Runtime.InteropServices.InterfaceType(1)]
public interface IVsHierarchy
[<System.Runtime.InteropServices.ComConversionLoss>]
[<System.Runtime.InteropServices.Guid("59B2D1D0-5DB0-4F9F-9609-13F0168516D6")>]
[<System.Runtime.InteropServices.InterfaceType(1)>]
type IVsHierarchy = interface
Public Interface IVsHierarchy
Abgeleitet
Attribute

Hinweise

Die- IVsHierarchy Schnittstelle ist eine generische Schnittstelle zu einer Hierarchie von Knoten. Jedem Knoten, einschließlich des Stamm Knotens, können beliebige Eigenschaften zugeordnet werden. Jeder Knoten im Hierarchy-Objekt wird mithilfe eines Cookies ( VSITEMID ) identifiziert, das einen bestimmten Knoten angibt. Dieses Cookie ist für den Consumer von unsichtbar IVsHierarchy und ist in der Regel ein Zeiger auf einige private Daten, die von der-Implementierung der Hierarchie verwaltet werden.

Ein VSITEMID ist eine, die DWORD einen Knoten innerhalb einer Hierarchie eindeutig identifiziert. Itemids von einem solchen IVsHierarchy können nicht an eine andere Hierarchie übergeben werden. Beachten Sie außerdem, dass itemids eine begrenzte Lebensdauer aufweisen, wie dies durch von der Hierarchie ausgelöste Ereignisse ersichtlich ist. Daher erfordert die Aufbewahrung von itemids für eine lange Dauer entweder das senken dieser Ereignisse oder die Konvertierung der Itemid in eine kanonische, dauerhafte Form.

Bei einem Element in einer Hierarchie kann es sich um einen Blattknoten, einen Container anderer Elemente oder einen Link zu einer anderen Hierarchie mithilfe von handeln GetNestedHierarchy .

Die- IVsHierarchy Schnittstelle wird nicht nur für Projekt Hierarchien verwendet. Beispielsweise implementiert das Server-Explorer Fenster die- IVsHierarchy Schnittstelle, um die zugehörige Hierarchie anzuzeigen, die keine Projekt Hierarchie ist.

Es gibt Zeiten, in denen es sinnvoll ist, eine Hierarchie über verschiedene virtuelle Knoten abzufragen, z. b. die Hierarchie selbst oder die ausgewählten Knoten in der Hierarchie. Wenn solche virtuellen Knoten potenziell von Interesse sind, kann einer der vordefinierten VSITEMID Werte übergeben werden.

In der Umgebung wird ein Projekt als Hierarchie angezeigt, d. h. eine Knoten Struktur, in der es sich bei den Knoten um Projekt Elemente handelt. Jeder Knoten verfügt auch über einen Satz zugeordneter Eigenschaften und bietet Hierarchie Verwaltung für VSPackages, die Projekt Hierarchien implementieren.

Hinweise für Ausführende

Wird von VSPackages implementiert, die eine eigene Projekt Hierarchie erstellen.

Hinweise für Aufrufer

Wird von der Umgebung aufgerufen, um Hierarchie Eigenschaften zu erhalten und festzulegen.

Methoden

AdviseHierarchyEvents(IVsHierarchyEvents, UInt32)

Erstellt Clientbenachrichtigung über Hierarchienereignisse, ohne dass die Hierarchie IConnectionPointContainer implementiert.

Close()

Schließt und bereinigt eine Hierarchie, sobald die Umgebung bestimmt, dass sie nicht mehr verwendet wird.

GetCanonicalName(UInt32, String)

Gibt einen eindeutigen Zeichenfolgennamen für ein Element in der Hierarchie zurück. Wird für die Arbeitsbereichspersistenz verwendet, zum Beispiel das Aufzeichnen der Fensterpositionen.

GetGuidProperty(UInt32, Int32, Guid)

Ruft Eigenschaften ab, deren Werte GUIDs sind.

GetNestedHierarchy(UInt32, Guid, IntPtr, UInt32)

Macht es möglich, dass ein Knoten einer angegebenen Hierarchie eine Verknüpfung zur Mitte einer anderen Hierarchie sein kann.

GetProperty(UInt32, Int32, Object)

Ruft Eigenschaften eines bestimmten Knotens oder der Hierarchie ab.

GetSite(IServiceProvider)

Ruft den Dienstanbieter für den Zugang zu den Diensten ab.

ParseCanonicalName(String, UInt32)

Gibt den Bezeichner des Hierarchienelements anhand des kanonischen Namens zurück.

QueryClose(Int32)

Bestimmt, ob die angegebene Hierarchie geschlossen werden kann.

SetGuidProperty(UInt32, Int32, Guid)

Legt Eigenschaften fest, deren Werte GUIDs sind.

SetProperty(UInt32, Int32, Object)

Legt Eigenschaften eines bestimmten Knotens oder der Hierarchie fest.

SetSite(IServiceProvider)

Legt den Dienstanbieter für den Zugang zu den Diensten fest.

UnadviseHierarchyEvents(UInt32)

Deaktiviert Clientbenachrichtigung von Hierarchieereignissen, ohne dass die Hierarchie IConnectionPointContainer implementiert.

Unused0()

Fügt neue Methoden hinzu, ohne die binäre Kompatibilität neu zu kompilieren oder zu unterbrechen.

Unused1()

Fügt neue Methoden hinzu, ohne die binäre Kompatibilität neu zu kompilieren oder zu unterbrechen.

Unused2()

Fügt neue Methoden hinzu, ohne die binäre Kompatibilität neu zu kompilieren oder zu unterbrechen.

Unused3()

Fügt neue Methoden hinzu, ohne die binäre Kompatibilität neu zu kompilieren oder zu unterbrechen.

Unused4()

Fügt neue Methoden hinzu, ohne die binäre Kompatibilität neu zu kompilieren oder zu unterbrechen.

Erweiterungsmethoden

IsCapabilityMatch(IVsHierarchy, String)

Überprüft, ob ein bestimmtes Projekt mit den in einem AppliesTo-Ausdruck vorgeschriebenen Anforderungen übereinstimmt.

EnumImportingProjects(IVsHierarchy)

Listet alle Projekte auf, die freigegebene Objekte importieren, die sich im Besitz der angegebenen freigegebenen Projekt Hierarchie befinden.

EnumOwningProjectsOfSharedAssets(IVsHierarchy)

Listet alle gemeinsam genutzten Projekte auf, die die freigegebenen Objekte besitzen und verwalten, die vom angegebenen Projekt importiert werden.

GetActiveProjectContext(IVsHierarchy)

Ruft den aktiven Projektkontext ab.

GetSharedItemsImportFullPaths(IVsHierarchy)

Ruft die vollständigen Pfade der freigegebenen ". projitems"-Dateien ab, die vom angegebenen Projekt importiert werden.

IsProjectImportingSharedAssets(IVsHierarchy)

Importiert das angegebene Projekt freigegebene Assets?

IsSharedAssetsProject(IVsHierarchy)

Ist das angegebene Projekt ein gemeinsam genutztes Projekt?

SetActiveProjectContext(IVsHierarchy, IVsHierarchy)

Legt den aktiven Projektkontext fest.

Gilt für