Zapewnianie automatyzacji pakietów VSPackage
Istnieją dwa główne sposoby zapewniania automatyzacji pakietów VSPackage: implementując obiekty specyficzne dla pakietu VSPackage i implementując standardowe obiekty automatyzacji. Ogólnie rzecz biorąc, są one używane razem do rozszerzania modelu automatyzacji środowiska.
Obiekty specyficzne dla pakietu VSPackage
Niektóre miejsca w modelu automatyzacji wymagają udostępnienia obiektów automatyzacji, które są unikatowe dla pakietu VSPackage. Na przykład nowe projekty wymagają odrębnych obiektów, które zapewnia tylko pakiet VSPackage. Nazwy tych obiektów są wprowadzane w rejestrze i uzyskiwane za pośrednictwem wywołań do obiektu środowiskowego DTE
.
Obiekty specyficzne dla pakietu VSPackage można również uzyskać, gdy użytkownik automatyzacji używa obiektu dostarczonego za pomocą właściwości Object obiektu standardowego. Na przykład obiekt standardowy Window
ma właściwość, znaną Object
Windows.Object
często jako właściwość. Gdy konsumenci wywołają Window.Object
element w oknie zaimplementowanym w pakietach VSPackage, należy wrócić do określonego obiektu automatyzacji własnego projektu.
Projekty
Pakiety VSPackage mogą rozszerzać model automatyzacji dla nowych typów projektów za pomocą własnych obiektów specyficznych dla pakietu VSPackage. Podstawowym celem udostępniania nowych obiektów automatyzacji dla pakietu VSPackage jest odróżnienie unikatowych obiektów projektu od VCProject obiektu lub VSProject2 . Ta różnica jest przydatna, gdy chcesz zapewnić sposób wyróżniania lub iterowania typu projektu poza innymi typami projektów, jeśli są one wyświetlane obok siebie w rozwiązaniu. Aby uzyskać więcej informacji, zobacz Udostępnianie obiektów projektu.
Wydarzenia
Architektura zdarzeń środowiska oferuje inne miejsce do dołączania własnych obiektów specyficznych dla pakietu VSPackage. Na przykład tworząc własne unikatowe obiekty zdarzeń, można rozszerzyć model zdarzeń środowiska dla projektów. Możesz podać własne zdarzenia, gdy nowy element zostanie dodany do własnego typu projektu. Aby uzyskać więcej informacji, zobacz Uwidacznianie zdarzeń.
Obiekty okien
System Windows może przywrócić obiekt automatyzacji specyficzny dla pakietu VSPackage z powrotem do środowiska po wywołaniu. Zaimplementujesz obiekt, który pochodzi z IVsExtensibleObjectwłaściwości , IExtensibleObject lub IDispatch
że przekazuje właściwości wstecz, rozszerzając obiekt okna, w którym jest on lokacji. Można na przykład użyć tego podejścia, aby zapewnić automatyzację dla kontrolki lokacji w ramce okna. Semantyka tego obiektu i wszelkich innych obiektów, które mogą zostać rozszerzone, są twoimi elementami do projektowania. Aby uzyskać więcej informacji, zobacz How to: Provide Automation for Windows (Instrukcje: zapewnianie automatyzacji dla systemu Windows).
Strony opcji w menu Narzędzia
Strony można tworzyć w celu rozszerzenia narzędzi, opcji modelu automatyzacji za pomocą implementowania stron i dodawania informacji do rejestru w celu utworzenia własnych opcji. Strony można następnie wywoływać za pomocą modelu obiektów środowiska, tak jak na innych stronach opcji. Jeśli projekt funkcji dodawanej do środowiska za pomocą pakietów VSPackages wymaga stron opcji, należy również dodać obsługę automatyzacji. Aby uzyskać więcej informacji, zobacz Automation Support for Options Pages (Obsługa automatyzacji dla stron opcji).
Standardowe obiekty automatyzacji
Aby rozszerzyć automatyzację dla projektów, należy również zaimplementować standardowe obiekty automatyzacji (pochodzące z IDispatch
klasy ), które stoją obok innych obiektów projektu i implementują standardowe metody i właściwości. Przykłady obiektów standardowych obejmują obiekty projektu, które są wstawione do hierarchii rozwiązań, takie jak Projects
, Project
, ProjectItem
i ProjectItems
. Każdy nowy typ projektu powinien implementować te obiekty (i ewentualnie inne w zależności od semantyki projektu).
W sensie te obiekty zapewniają przeciwną zaletę obiektów projektu specyficznych dla pakietu VSPackage. Standardowe obiekty automatyzacji umożliwiają używanie projektu w sposób uogólniony, jak każdy inny projekt obsługujący te same obiekty. W związku z tym dodatek napisany względem obiektów ogólnych Project
i ProjectItem
może działać względem projektów dowolnego typu. Aby uzyskać więcej informacji, zobacz Modelowanie projektu.