Projekteigenschaften-Benutzeroberfläche
Ein Projekt kann untertyp die Elemente im Projekt Eigenschaftenseiten Dialogfeld verwenden, während sie durch das niedrige machen oder ausblenden Projekt angegeben werden, schreibgeschützte Steuerelemente und Seiten ganze je nach Festlegung beachtet oder Untertyp bestimmte Seiten dem Projekt hinzufügen Eigenschaftenseiten Dialogfeld.
Das Erweitern Projekteigenschaften-Dialogfeld
Ein Projekt untertyp suchobjekte Projektkonfiguration und extender Automatisierung implementiert. Diese Extender implementieren die IFilterProperties-Schnittstelle, um die spezifischen ausgeblendeten oder schreibgeschützten Eigenschaften zu machen. Das Dialogfeld Eigenschaftenseiten unzureichenden Projekts implementiert, durch das niedrige Projekt, berücksichtigt die Filterung, die von den Automatisierungsextender ausgeführt wird.
Beim Erweitern eines Projekteigenschaft Dialogfelds wird im Folgenden erläutert:
Das niedrige Projekt ruft die Extender aus dem Projekt untertyp ab, indem die IInternalExtenderProvider-Schnittstelle implementiert. Alle suchen, die sich auf die Projektautomatisierung von der Projektkonfiguration und suchobjekte unzureichenden Projekts implementieren diese Schnittstelle.
Die Implementierung von IInternalExtenderProvider für das Projekt für suchobjekt und den Delegaten an die IInternalExtenderProvider Implementierung des Projekts untertyp aggregators (das heißt, sie QueryInterface für IInternalExtenderProvider auf dem IVsHierarchy Projektobjekt).
Das niedrige Projektkonfiguration suchobjekt implementiert auch IInternalExtenderProvider für den Automatisierungsextender im Projekt untertyp-Konfigurations Objekt direkt zu verknüpfen. Seine Implementierung Delegaten zur IInternalExtenderProvider-Schnittstelle implementiert untertyp aus dem Projekt aggregator.
GetProjectItemdas suchobjekt Projektkonfiguration implementiert, durch das das IVsHierarchy-Objekt zurück.
GetCfg, implementiert ebenfalls vom suchobjekt Projektkonfiguration IVsCfg , gibt das Objekt zurück.
Ein Projekt untertyp kann das entsprechende CATID für die verschiedenen Objekte ausdehnbaren unzureichenden Projekts zur Laufzeit bestimmen, indem Sie die folgenden __VSHPROPID2-Werte abruft:
Um die CATID für den Projektumfang zu bestimmen, ruft der Projekt untertyp die oben genannten Eigenschaften für VSITEMID_ROOT von VSITEMIDtypedefab. Ein Projekt untertyp sollte auch steuern, den Eigenschaftenseiten Dialogfeld Seiten für das Projekt angezeigt werden, konfigurationsabhängig und Konfiguration unabhängiger. Einige Projekt untertypen müssen möglicherweise integrierte Seiten entfernen und Seiten untertyp-Besondere Projekt hinzufügen. Dazu ruft das verwaltete Clientprojekt die GetProperty-Methode für die folgenden Merkmale auf:
VSHPROPID_PropertyPagesCLSIDList— eine durch Semikolons getrennte Liste der CLSID für die CONFIGURATION-unabhängigen Eigenschaftenseiten.
VSHPROPID_CfgPropertyPagesCLSIDList —eine durch Semikolons getrennte Liste der CLSID für die anlagenabhängigen Eigenschaftenseiten.
Da der Projekt untertyp das IVsHierarchy-Objekt zusammengesetzt, kann er die Definition dieser Eigenschaften überschreiben, um zu steuern, die Eigenschaftenseiten Dialogfelder angezeigt werden. Der Projekt untertyp kann diese Eigenschaften aus dem inneren niedrigen Projekts abrufen und dann CLSID nach Bedarf hinzufügen oder entfernen.
Die neuen Eigenschaftenseiten, die von einem Projekt untertyp hinzugefügt werden, werden suchobjekt von der Projektkonfiguration ein Projektdurchführung übergeben. Dies suchobjekt Projektkonfiguration Automatisierungsextender unterstützt. Weitere Informationen über AutomatisierungExtender finden Sie unter Implementieren und Verwenden von Automatisierungsextendern. Die Eigenschaftenseiten, die vom Projekt untertyp implementiert werden, rufen Extender auf, um ein eigenes Projekt untertyp-Konfigurations suchobjekt abzurufen, das die suchobjekt unzureichenden Projekts erweitert.