Freigeben über


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.

Siehe auch