Podstawowe składniki modelu projektu
Poniższe tabele rozszerzają model projektu. W tabelach przedstawiono krótkie opisy interfejsów i usług zidentyfikowanych w modelu oraz interfejsów i usług skojarzonych z określonymi obiektami. Ponadto tabele zawierają szczegółowe informacje o innych interfejsach, które są opcjonalne podczas tworzenia i konserwacji projektu w zależności od wymagań określonego typu projektu.
Aby uzyskać więcej informacji, zobacz Obsługa narzędzi przeglądania symboli.
Obiekt pakietu
Interfejs | Komentarze |
---|---|
IVsPackage | Inicjuje pakiet VSPackage w środowisku IDE i udostępnia swoje usługi środowisku IDE. |
Obiekt fabryki projektu
Interfejs | Komentarze |
---|---|
IVsProjectFactory | Zarządza tworzeniem nowych projektów i otwieraniem istniejących projektów. |
Obiekty projektu
Interfejsy | Komentarze |
---|---|
IVsProject3 | Zarządza dodawaniem i usuwaniem elementów projektu, otwiera edytory i obsługuje mapowanie między poszczególnymi monikerami VSITEMID i . Dziedziczy z IVsProject i IVsProject2 . |
IVsHierarchy | Zarządza właściwościami nawigacji i wyświetlania oraz udostępnia zdarzenia. |
IVsUIHierarchy | Włącza wykonywanie poleceń podobnych do IOleCommandTarget poleceń, takich jak wycinanie i zmienianie nazwy, które mają zastosowanie tylko wtedy, gdy fokus znajduje się w Eksplorator rozwiązań. |
IOleCommandTarget | Służy jako podstawowy interfejs docelowy poleceń dla hierarchii projektu. Jest to standardowy interfejs do wykonywania zapytań o obiekty dla ich stanu polecenia lub stanu i uruchomionych poleceń. Dostępne, gdy nie masz fokusu w oknie Projekt. |
IPersistFileFormat | Koordynuje trwałość stanu projektu. Zazwyczaj stan projektu jest przechowywany jako plik projektu, ale można go dostosować do systemów magazynowania, które nie są oparte na plikach. |
IVsPersistHierarchyItem2 | Umożliwia projektowi zarządzanie wszystkimi aspektami trwałości elementów projektu , jako plikami na dysku lub obiektami w innych systemach magazynowania. Interfejs IVsPersistHierarchyItem2 jest używany w przypadku elementów, które nie implementują interfejsu IVsPersistDocData2 . |
IVsSccProject2 | Koordynuje interakcje z kontrolą kodu źródłowego. |
IVsProjectFlavorCfgProvider | Umożliwia projektom zarządzanie informacjami o konfiguracji. |
IVsCfgProvider2 | Zarządza obiektami konfiguracji projektu, takimi jak konfiguracje debugowania/wydania. Operacje kompilowania, wdrażania i debugowania są koordynowane za pośrednictwem obiektów konfiguracji projektu. |
IVsHierarchyDeleteHandler | Zaimplementowane przez hierarchie w celu kontrolowania opcji usuwania (destruktywnego) lub usuwania (niedestrukcyjnych) dla elementów hierarchii. Wywołaj interfejs zapytania w interfejsie IVsHierarchyDeleteHandler z poziomu interfejsu IVsHierarchy . |
IVsGetCfgProvider | Zapewnia opcję implementacji obiektu, który obsługuje IVsCfgProvider2 interfejs w innej tożsamości COM niż obiekt projektu, który implementuje IVsHierarchy interfejs. |
IVsProjectStartupServices | Opcjonalny interfejs zaimplementowany w celu rozszerzenia projektu przez innych deweloperów. Interfejs IVsProjectStartupServices umożliwia pakietowi VSPackage innej firmy zarejestrowanie identyfikatora GUID utrwalonego w pliku projektu, dzięki czemu za każdym razem, gdy projekt zostanie załadowany, identyfikator GUID usługi innej firmy zostanie załadowany do pliku projektu i wywołanie QueryService tego identyfikatora GUID. |
IVsUIHierWinClipboardHelperEvents | Zaimplementowane przez hierarchie źródłowe w UIHierarchy oknie w celu koordynowania operacji schowka, takich jak wycinanie, kopiowanie i wklejanie. Użyj interfejsu AdviseClipboardHelperEvents , aby zarejestrować zdarzenia schowka. |
IVsHierarchyDropDataSource2 | Zawiera informacje o przeciąganym elemencie względem źródła danych podczas operacji przeciągania i upuszczania w oknie hierarchii interfejsu użytkownika. Wywoływana z interfejsu IVsHierarchy . |
IVsHierarchyDropDataTarget | Zawiera informacje o przeciąganym elemencie względem jego miejsca docelowego podczas operacji przeciągania i upuszczania w oknie hierarchii interfejsu użytkownika. Wywoływana z interfejsu IVsHierarchy . |
Obiekt konfiguracji
Interfejsy | Komentarze |
---|---|
IVsCfg | Zawiera informacje o konfiguracji. |
IVsProjectCfg2 | Umożliwia projektom zarządzanie informacjami o konfiguracji. |
IVsDebuggableProjectCfg | Umożliwia uruchamianie projektu pod kontrolą debugera. |
IVsDeployableProjectCfg | Zaimplementowane przez projekty wdrażania, które wykonują operacje wdrażania dla innych projektów. |
Obiekt konstruktora konfiguracji
Interfejsy | Komentarze |
---|---|
IVsBuildableProjectCfg | Zarządza operacją kompilacji konfiguracji projektu. |
Dodatkowe obiekty projektu
Interfejsy | Komentarze |
---|---|
IDispatch ISpecifyPropertyPages |
Wyświetla właściwości elementu w oknie Właściwości . |
IVsOutput2 IVsEnumOutputs |
Wyświetla dane wyjściowe wdrożenia. |
W poniższej tabeli przedstawiono krótkie opisy usług zidentyfikowanych w modelu projektu.
Usługi
Service | Komentarze |
---|---|
SVsRegisterProjectTypes | Używany przez pakiety VSPackage, które implementują typy projektów, aby zarejestrować, że ich fabryka projektów istnieje w środowisku IDE. Pakiet VSPackage musi wywołać QueryService tę usługę i zarejestrować fabrykę projektu po IVsPackage::SetSite wywołaniu metody. SetSite Jeśli metoda nie zostanie wywołana, projekt nie zostanie utworzone. |
SVsSolution | Zapewnia dostęp do wewnętrznego, wbudowanego pojęcia bieżącego rozwiązania, takiego jak możliwość wyliczania projektów, tworzenia nowych projektów, powiadamiania o zmianach projektu itd. |
SVsSccManager | Wywoływane przez projekty, które chcą uczestniczyć w kontroli źródła. |
SVsRunningDocumentTable | Utrzymuje tabelę otwartych dokumentów, aby określić, czy co najmniej jeden element projektu jest już otwarty. |
SVsUIShellOpenDocument | Zawiera interfejsy i metody wywoływane w celu faktycznego otwarcia elementu projektu przy użyciu edytora standardowego lub określonego edytora. |
SVsTrackProjectDocuments | Wymagane do wywołania przez wszystkie projekty podczas dodawania, usuwania lub zmieniania nazwy elementów. |
SVsFileChangeEx | Zarządza zmianami w pliku lub katalogu i powiadamia klientów o zmianie wybranych plików na dysku. |
SVsQueryEditQuerySave | Wymagane do wywołania przez wszystkie projekty i edytory przed ich zanieczyszczonymi elementami lub zapisanie ich. |
SVsSolutionBuildManager | Zarządza kolejnością operacji kompilacji i wdrażania dla konfiguracji projektu. |
SVsShellDebugger | Zapewnia dostęp do usług debugera niskiego poziomu używanych w przypadku większości kontrolek debugowania. |
SVsShellMonitorSelection | Umożliwia pakietom VSPackage dostęp do informacji o bieżących wyborach i umożliwia komunikację z oknem Właściwości . |
SVsUIShell | Udostępnia podstawowe funkcje środowiska IDE związane z interfejsem użytkownika, takie jak możliwość tworzenia i wyliczania okien narzędzi lub okien dokumentów lub zgłaszania błędu użytkownikowi. |
SVsStatusbar | Zapewnia dostęp do paska stanu środowiska IDE. |
IVsExtensibility3 | Służy do implementowania modelu automatyzacji. W modelu projektu zostanie zwrócony obiekt właściwości, który umożliwia utworzenie wystąpienia tego obiektu. |
SVsUIHierWinClipboardHelper | Służy do implementowania zdarzeń schowka w obiekcie projektu w hierarchii. SVsUIHierWinClipboardHelper umożliwia poprawne obsługę operacji wycinania, kopiowania i wklejania. |