Elementy modelu projektu
Interfejsy i implementacje wszystkich projektów w programie Visual Studio mają podstawową strukturę: model projektu dla typu projektu. W modelu projektu, który jest opracowywany pakiet VSPackage, tworzy się obiekty zgodne z decyzjami projektowymi i współpracują z funkcjami globalnymi udostępnianymi przez środowisko IDE. Mimo że kontrolujesz sposób utrwalania elementu projektu, na przykład nie kontrolujesz powiadomienia, że plik musi być utrwalone. Gdy użytkownik umieszcza fokus na otwartym elemencie projektu i wybiera polecenie Zapisz na menu Plik na pasku menu programu Visual Studio, kod typu projektu musi przechwycić polecenie ze środowiska IDE, utrącić plik i wysłać powiadomienie z powrotem do środowiska IDE, że plik nie zostanie już zmieniony.
Pakiet VSPackage współdziała ze środowiskiem IDE za pośrednictwem usług, które zapewniają dostęp do interfejsów IDE. Na przykład za pomocą określonych usług można monitorować polecenia i kierować je oraz dostarczać informacje kontekstowe dotyczące wyborów dokonanych w projekcie. Wszystkie globalne funkcje środowiska IDE potrzebne dla pakietu VSPackage są udostępniane przez usługi. Aby uzyskać więcej informacji na temat usług, zobacz Jak uzyskać usługę.
Inne zagadnienia dotyczące implementacji:
Pojedynczy model projektu może zawierać więcej niż jeden typ projektu.
Typy projektów i fabryki projektów uczestniczących są rejestrowane niezależnie za pomocą identyfikatorów GUID.
Każdy projekt musi mieć plik szablonu lub kreatora, aby zainicjować nowy plik projektu, gdy użytkownik utworzy nowy projekt za pomocą interfejsu użytkownika programu Visual Studio. Na przykład szablony języka Visual C++ inicjują, co ostatecznie stanie się plikami vcproj.
Na poniższej ilustracji przedstawiono podstawowe interfejsy, usługi i obiekty tworzące typową implementację projektu. Za pomocą pomocnika
HierUtil7
aplikacji można utworzyć obiekty bazowe i inne elementy programowania. Aby uzyskać więcej informacji na tematHierUtil7
pomocnika aplikacji, zobacz Używanie klas projektów HierUtil7 do implementowania typu projektu (C++).model projektu
Aby uzyskać więcej informacji na temat interfejsów i usług wymienionych na poprzednim diagramie oraz innych opcjonalnych interfejsów, które nie zostały uwzględnione na diagramie, zobacz Project model core components (Podstawowe składniki modelu projektu).
Projekty mogą obsługiwać polecenia i dlatego muszą implementować IOleCommandTarget interfejs, aby uczestniczyć w routingu poleceń za pośrednictwem identyfikatorów GUID kontekstu polecenia.