Hauptkomponenten eines Projektmodells
Die folgenden Tabellen erweitern das Projektmodell. Die Tabellen enthalten kurze Beschreibungen der im Modell identifizierten Schnittstellen und Dienste sowie die Schnittstellen und Dienste, die bestimmten Objekten zugeordnet sind. Darüber hinaus werden in den Tabellen weitere Schnittstellen beschrieben, die in der Projekterstellung optional sind, und Standard Je nach den Anforderungen Ihres jeweiligen Projekttyps.
Weitere Informationen finden Sie unter Unterstützen von Symbolbrowstools.
Package-Objekt
Schnittstelle | Kommentare |
---|---|
IVsPackage | Initialisiert ein VSPackage in der IDE und stellt seine Dienste der IDE zur Verfügung. |
Project Factory-Objekt
Schnittstelle | Kommentare |
---|---|
IVsProjectFactory | Verwaltet das Erstellen neuer Projekte und das Öffnen vorhandener Projekte. |
Project-Objekte
Schnittstellen | Kommentare |
---|---|
IVsProject3 | Verwaltet das Hinzufügen und Entfernen von Projektelementen, öffnet Editoren und Standard die Zuordnung zwischen jedem Dokumentmoniker und dem VSITEMID . Erbt von IVsProject und IVsProject2 . |
IVsHierarchy | Verwaltet Navigations- und Anzeigeeigenschaften und stellt Ereignisse bereit. |
IVsUIHierarchy | Aktiviert die Befehlsausführung ähnlich wie IOleCommandTarget bei Befehlen wie "Ausschneiden" und "Umbenennen", die nur angewendet werden, wenn sich der Fokus in Projektmappen-Explorer befindet. |
IOleCommandTarget | Dient als primäre Befehlszielschnittstelle für eine Projekthierarchie. Es ist die Standardschnittstelle zum Abfragen von Objekten für den Befehlsstatus oder den Status und das Ausführen von Befehlen. Verfügbar, wenn Sie sich nicht im Projektfenster befinden. |
IPersistFileFormat | Koordiniert die Persistenz des Projektzustands. In der Regel wird der Projektstatus als Projektdatei gespeichert, kann aber an Dateisysteme angepasst werden, die nicht dateibasiert sind. |
IVsPersistHierarchyItem2 | Ermöglicht es dem Projekt, alle Aspekte der Persistenz für seine Projektelemente zu verwalten, entweder als Dateien auf datenträgern oder Objekten in anderen Speichersystemen. Die IVsPersistHierarchyItem2 Schnittstelle wird für Elemente verwendet, die die IVsPersistDocData2 Schnittstelle nicht implementieren. |
IVsSccProject2 | Koordiniert Interaktionen mit der Quellcodeverwaltung. |
IVsProjectFlavorCfgProvider | Ermöglicht Es Projekten, Konfigurationsinformationen zu verwalten. |
IVsCfgProvider2 | Verwaltet Projektkonfigurationsobjekte, z. B. Debug-/Release-Konfigurationen. Build-, Bereitstellungs- und Debugvorgänge werden über Projektkonfigurationsobjekte koordiniert. |
IVsHierarchyDeleteHandler | Implementiert durch Hierarchien zum Steuern der Lösch- (destruktiven) oder Entfernen (nicht destruktiven) Optionen für Hierarchieelemente. Call Query Interface on the IVsHierarchyDeleteHandler interface from the IVsHierarchy interface. |
IVsGetCfgProvider | Stellt die Implementierungsoption bereit, dass das Objekt, das die IVsCfgProvider2 Schnittstelle für eine andere COM-Identität unterstützt, als das Projektobjekt, das die IVsHierarchy Schnittstelle implementiert, unterstützt. |
IVsProjectStartupServices | Optionale Schnittstelle, die implementiert wird, um Ihr Projekt von anderen Entwicklern erweiterbar zu machen. Die IVsProjectStartupServices Schnittstelle ermöglicht es einem Drittanbieter-VSPackage, eine GUID zu registrieren, die Sie in Der Projektdatei speichern, sodass Sie bei jedem Laden des Projekts die Dienst-GUID des Drittanbieters in Die Projektdatei laden und diese GUID aufrufen QueryService . |
IVsUIHierWinClipboardHelperEvents | Implementiert durch Quellhierarchien in einem UIHierarchy Fenster zum Koordinieren von Zwischenablagevorgängen wie Ausschneiden, Kopieren und Einfügen. Verwenden Sie die AdviseClipboardHelperEvents Schnittstelle, um Zwischenablageereignisse zu registrieren. |
IVsHierarchyDropDataSource2 | Stellt Informationen zu einem gezogenen Element relativ zur Datenquelle während eines Drag-and-Drop-Vorgangs in einem Benutzeroberflächenhierarchiefenster bereit. Wird von der IVsHierarchy Schnittstelle aufgerufen. |
IVsHierarchyDropDataTarget | Stellt Informationen zu einem gezogenen Element relativ zum Ablageziel während eines Drag-and-Drop-Vorgangs in einem Benutzeroberflächenhierarchiefenster bereit. Wird von der IVsHierarchy Schnittstelle aufgerufen. |
Konfigurationsobjekt
Schnittstellen | Kommentare |
---|---|
IVsCfg | Stellt Informationen zu einer Konfiguration bereit. |
IVsProjectCfg2 | Ermöglicht Es Projekten, Konfigurationsinformationen zu verwalten. |
IVsDebuggableProjectCfg | Ermöglicht die Ausführung eines Projekts unter der Kontrolle des Debuggers. |
IVsDeployableProjectCfg | Implementiert durch Bereitstellungsprojekte, die Bereitstellungsvorgänge für andere Projekte ausführen. |
Configuration Builder-Objekt
Schnittstellen | Kommentare |
---|---|
IVsBuildableProjectCfg | Verwaltet den Buildvorgang einer Projektkonfiguration. |
Weitere Project-Objekte
Schnittstellen | Kommentare |
---|---|
IDispatch ISpecifyPropertyPages |
Zeigt Elementeigenschaften im Eigenschaftenfenster an. |
IVsOutput2 IVsEnumOutputs |
Zeigt Ausgaben für die Bereitstellung an. |
Die folgende Tabelle enthält kurze Beschreibungen der im Projektmodell identifizierten Dienste.
Dienste
Dienst | Kommentare |
---|---|
SVsRegisterProjectTypes | Wird von VSPackages verwendet, die Projekttypen implementieren, um zu registrieren, dass ihre Projektfactory mit der IDE vorhanden ist. Ihr VSPackage muss diesen Dienst aufrufen QueryService und die Projektfactory registrieren, wenn IVsPackage::SetSite die Methode aufgerufen wird. Wenn die SetSite Methode nicht aufgerufen wird, wird Ihr Projekt nicht instanziiert. |
SVsSolution | Ermöglicht den Zugriff auf das interne, integrierte Konzept der aktuellen Lösung, z. B. die Möglichkeit, Projekte auflisten, neue Projekte zu erstellen, Projektänderungen zu beachten usw. |
SVsSccManager | Aufgerufen von Projekten, die an der Quellcodeverwaltung teilnehmen möchten. |
SVsRunningDocumentTable | Verwaltet eine Tabelle mit geöffneten Dokumenten, um zu bestimmen, ob mindestens ein Projektelemente bereits geöffnet sind. |
SVsUIShellOpenDocument | Enthält die Schnittstellen und Methoden, die aufgerufen werden, um ein Projektelement tatsächlich mithilfe des Standard-Editors oder eines bestimmten Editors zu öffnen. |
SVsTrackProjectDocuments | Muss von allen Projekten aufgerufen werden, wenn sie ihre Elemente hinzufügen, entfernen oder umbenennen. |
SVsFileChangeEx | Verwaltet Änderungen an einer Datei oder einem Verzeichnis und benachrichtigt Clients, wenn ausgewählte Dateien auf dem Datenträger geändert wurden. |
SVsQueryEditQuerySave | Muss von allen Projekten und Editoren aufgerufen werden, bevor sie Elemente modifiziert oder speichern. |
SVsSolutionBuildManager | Verwaltet die Reihenfolge der Build- und Bereitstellungsvorgänge für Projektkonfigurationen. |
SVsShellDebugger | Bietet Zugriff auf Debuggerdienste auf niedriger Ebene, die für die meisten Debugsteuerelemente verwendet werden. |
SVsShellMonitorSelection | Ermöglicht vsPackages Zugriff auf Informationen zu aktuellen Auswahlen und ermöglicht die Kommunikation mit dem Eigenschaftenfenster . |
SVsUIShell | Stellt grundlegende UI-bezogene IDE-Funktionen bereit, z. B. die Möglichkeit zum Erstellen und Aufzählen von Toolfenstern oder Dokumentfenstern oder zum Melden eines Fehlers für den Benutzer. |
SVsStatusbar | Bietet Zugriff auf die Statusleiste der IDE. |
IVsExtensibility3 | Wird verwendet, um das Automatisierungsmodell zu implementieren. Im Projektmodell geben Sie ein Eigenschaftenobjekt zurück, mit dem Sie eine Instanz dieses Objekts erstellen können. |
SVsUIHierWinClipboardHelper | Wird verwendet, um Zwischenablageereignisse für das Projektobjekt in der Hierarchie zu implementieren. SVsUIHierWinClipboardHelper Ermöglicht es Ihnen, Ausschneiden, Kopieren und Einfügen ordnungsgemäß zu verarbeiten. |