Gewusst wie: Update-Eigenschaftswerte im Eigenschaftenfenster
Es gibt zwei Möglichkeiten, das Eigenschaften Fenster konsistent mit Änderungen des Eigenschaftswerts zu erhalten. Das erste ist, die IVsUIShell-Schnittstelle aufrufen, der den Zugriff auf die grundlegenden Funktionen für Fenster, einschließlich der Zugriff auf und die Erstellung des Tools und Dokumentfenster bereitstellt, die von der Umgebung bereitgestellt werden. Die folgenden Schritte beschreiben den Synchronisierungsprozess.
Eigenschaftswerte mit IVsUIShell aktualisieren
So aktualisieren IVsUIShell-Schnittstelle mithilfe der Eigenschaftswerte
IVsUIShell Aufruf von SVsUIShell (Dienst) dieses jederzeit VSPackages Projekte oder Editor Tool oder Dokumentfenster zu erstellen, oder aufzulisten.
Implementieren RefreshPropertyBrowser , um den Eigenschaften Fensters konsistent mit Eigenschaft beibehalten wird (für ein Projekt oder eine andere ausgewähltes Objekt, das vom Eigenschaften Fenster durchsucht wurde) ohne IConnectionPointContainer zu implementieren und OnChanged-Ereignisse auszulösen.
Implementieren Sie die Methoden IVsHierarchyAdviseHierarchyEvents und - UnadviseHierarchyEvents jeweils Client zum Herstellen von Ereignissen über die Aktivierung von Hierarchien und zu deaktivieren, ohne die Hierarchie benötigen, IConnectionPointContainerzu implementieren.
Aktualisieren von Eigenschaftswerten mithilfe IConnection
Die zweite Methode, die Eigenschaften Fenster konsistent mit Eigenschaftswert ändert IConnection ist, bleiben auf dem verbindungsfähigen Objekt zu implementieren, um das Vorhandensein der Ausgangsschnittstellen anzugeben. Wenn Sie den Eigenschaftennamen lokalisieren möchten, leiten Sie das Objekt aus ICustomTypeDescriptor. Die ICustomTypeDescriptor Implementierung kann die Eigenschaftendeskriptoren ändern, die sie den Namen einer Eigenschaft zurückgibt und geändert werden. Um die Beschreibung zu suchen, erstellen Sie ein Attribut aus dem DescriptionAttribute berechnet und überschreiben Sie die Description-Eigenschaft.
Überlegungen, wenn die IConnections-Schnittstelle implementiert wird
IConnection bietet Zugriff auf einen Enumerator unterobjekt mit der IEnumConnectionPoints-Schnittstelle. Es bietet auch Zugriff auf alle Verbindungspunkte unterobjekten, die jeweils die IConnectionPoint-Schnittstelle implementiert.
Jedes Suchobjekt ist zum Implementieren eines IPropertyNotifySink-Ereignisses zuständig. Das Fenster Eigenschaften Protokollen für das Ereignis an, das von IConnectionfestgelegt ist.
Ein Verbindungspunkt steuert, wie viele Verbindungen (mindestens) er in seiner Implementierung von Advisezulässig. Ein Verbindungspunkt, der nur eine Schnittstelle ermöglicht, kann E_NOTIMPL aus der EnumConnections-Methode zurückgeben.
Ein Client kann die IConnection-Schnittstelle aufgerufen, um den Zugriff auf einen Enumerator unterobjekt mit der IEnumConnectionPoints-Schnittstelle. Die IEnumConnectionPoints-Schnittstelle kann dann aufgerufen werden, um Verbindungspunkte für jede Ausgangsschnittstelle ID (Interface Identifier, IID) aufzulisten.
IConnection kann auch aufgerufen werden, um den Zugriff zu erhalten unterobjekten Verbindungspunkt mit der IConnectionPoint-Schnittstelle für jedes ausgehende IID. Durch die IConnectionPoint-Schnittstelle wird ein Client oder beendet eine Beratungs - Schleife mit dem verbindungsfähigen Objekts und dem eigenen Client Synchronization. Der Client kann die IConnectionPoint-Schnittstelle aufrufen, um ein Enumeratorobjekt mit der IEnumConnections-Schnittstelle, um die Verbindungen aufzulisten, die sie ungefähr weiß.
Siehe auch
Aufgaben
Gewusst wie: Kündigen Sie die Auswahl, die der Umgebung nachverfolgt