Eigenschaften und Methoden, die von Projektuntertypen erweitert werden
Ein Projektuntertyp hat eine Menge Leistungsfähigkeit, um das Verhalten des Projekts zu beeinflussen, da es als Aggregator eines Basisprojekts erstellt wird. In diesem Abschnitt werden einige der Features zusammengefasst, die von Projektuntertypen verbessert oder geändert werden können.
Von Aggregation gewonnene Features
In der folgenden Tabelle sind viele der Methoden zusammengefasst, mit denen die Aggregation Projektuntertypen in Basisprojekten außer Kraft setzen kann.
Methoden, die durch Aggregation überschrieben werden | Projektuntertyp |
---|---|
Von IVsHierarchy: GetProperty SetProperty GetGuidProperty SetGuidProperty |
Aktiviert einen Projektuntertyp für – Ändern Untertitel und Symbol des Projektknotens. - Projektobjekt vollständig außer Kraft setzen Browse .– Steuern, ob das Projekt umbenannt werden kann. - Sortierreihenfolge steuern. – Steuern des Benutzerkontexts für dynamische Hilfe. |
Von IVsProject: GetItemContext |
Ermöglicht einem Projektuntertyp zu steuern, welche Kontextdienste Designern und Editoren zur Verfügung gestellt werden. |
Von IOleCommandTarget: QueryStatus Exec QueryStatusCommand ExecCommand |
Aktiviert einen Projektuntertyp für – Teilnehmen am Befehlsrouting für Projektbefehle. – Hinzufügen, Entfernen oder Deaktivieren von Projektumgebungsbefehlen und Projektmappen-Explorer aktiven Befehlen. |
IVsFilterAddProjectItemDlg2 | Aktiviert den Projektuntertyp, um zu filtern, was der Benutzer im Dialogfeld "Neues Element hinzufügen" sieht. |
IVsSingleFileGeneratorFactory | Aktiviert einen Projektuntertyp für - Bestimmen Sie den Standardgenerator anhand einer Dateierweiterung. - Zuordnen eines menschlichen lesbaren Generatornamens zu einem COM-Objekt. |
Von Project-Untertypen verwendete Eigenschaften
Die Umgebung und das Basisprojektsystem können die Eigenschaften __VSSPROPID und __VSSPROPID2 Enumerationen verwenden, die in der folgenden Tabelle beschrieben sind, um einem Projektuntertyp die Steuerung verschiedener Features des Projektsystems zu ermöglichen.
VSHPROPID-Eigenschaft | Projektuntertyp |
---|---|
AddItemTemplatesGuid |
Ermöglicht einem Projektuntertyp das Steuern des Inhalts des Dialogfelds "Element hinzufügen". Der Projektuntertyp kann eine neue Spezifikation von Vorlagenverzeichnissen bereitstellen, neue Arten von Elementen hinzufügen, vorhandene Elemente entfernen und eine Teilmenge der Elemente im Dialogfeld "Element hinzufügen" des Basisprojekts neu organisieren. |
PropertyPagesCLSIDList |
Ermöglicht einem Projektuntertyp, konfigurationsunabhängige Eigenschaftenseiten hinzuzufügen oder zu entfernen. |
CfgPropertyPagesCLSIDList |
Ermöglicht einem Projektuntertyp, konfigurationsabhängige Eigenschaftenseiten hinzuzufügen oder zu entfernen. |
ExtObjectCATID |
Ermöglicht einem Projektuntertyp, einen Automatisierungs extender für das Projekt oder Projektelementobjekte bereitzustellen, indem er die Extender CATID kennt. Ein Projektuntertyp kann z. B. ein benutzerdefiniertes Project.Extender("<subtype>") Objekt bereitstellen. |
BrowseObjectCATID |
Ermöglicht einem Projektuntertyp, einen Automatisierungs extender für das Browse Objekt bereitzustellen, indem er die Extender CATID kennt. Beispielsweise kann ein Projektuntertyp der Auflistung zusätzliche Eigenschaften Properties hinzufügen. |
CfgBrowseObjectCATID |
Ermöglicht einem Projektuntertyp die Bereitstellung eines Automatisierungs extenders für das Projektkonfigurations-Browseobjekt. Beispielsweise kann ein Projektuntertyp der Auflistung zusätzliche Eigenschaften Properties hinzufügen. |
CfgExtObjectCATID |
Ermöglicht einem Projektuntertyp, einen Automatisierungs extender für das Konfigurationsobjekt bereitzustellen. |
DefaultPlatformName |
Ermöglicht einem Projektuntertyp, den Plattformnamen für die Konfigurationsobjekte des Projekts zu bestimmen. |
Das Basisprojekt stellt eine Standardimplementierung der oben genannten Eigenschaften bereit. Das Basisprojekt ruft diese durch Aufrufen QueryInterface
IVsHierarchy des äußersten Projektuntertyps ab, sodass der Projektuntertyp die Implementierung der Eigenschaften außer Kraft setzen kann.