Sdílet prostřednictvím


Poskytování automatizace pro balíčky VSPackages

Existují dva hlavní způsoby, jak zajistit automatizaci balíčků VSPackage: implementací objektů specifických pro VSPackage a implementací standardních automatizačních objektů. Obecně se používají společně k rozšíření modelu automatizace prostředí.

Objekty specifické pro VSPackage

Určitá místa v rámci modelu automatizace vyžadují, abyste zajistili objekty automatizace, které jsou jedinečné pro balíček VSPackage. Například nové projekty vyžadují jedinečné objekty, které poskytuje pouze balíček VSPackage. Názvy těchto objektů jsou zadány v registru a získány prostřednictvím volání objektu prostředí DTE .

Objekty specifické pro VSPackage lze získat také v případech, kdy příjemce automatizace používá objekt poskytnutý prostřednictvím vlastnosti Object standardního objektu. Například standardní Window objekt má Object vlastnost, která se běžně označuje jako Windows.Object vlastnost. Když uživatelé volají okno Window.Object implementované v balíčku VSPackage, předáte konkrétní automatizační objekt vlastního návrhu.

Projekty

Balíčky VSPackage můžou rozšířit model automatizace pro nové typy projektů prostřednictvím vlastních objektů specifických pro VSPackage. Primárním účelem poskytování nových automatizačních objektů pro VSPackage je rozlišení jedinečných objektů projektu od objektu VCProject nebo objektu VSProject2 . Toto rozlišení je užitečné, když chcete poskytnout způsob, jak určit nebo iterovat typ projektu kromě jiných typů projektů, pokud se v řešení objeví vedle sebe. Další informace naleznete v tématu Zveřejnění objektů projektu.

Událost

Architektura událostí prostředí nabízí další místo, kde můžete připojit vlastní objekty specifické pro VSPackage. Například vytvořením vlastních jedinečných objektů událostí můžete rozšířit model událostí prostředí pro projekty. Při přidání nové položky do vlastního typu projektu můžete chtít zadat vlastní události. Další informace najdete v tématu Zveřejnění událostí.

Objekty oken

Systém Windows může při zavolání předat objekt automatizace specifický pro VSPackage zpět do prostředí. Implementujete objekt, který je odvozen z IVsExtensibleObject, IExtensibleObject nebo IDispatch který vrací zpět vlastnosti, rozšíření objektu okna, ve kterém je sited. Tento přístup můžete například použít k zajištění automatizace pro ovládací prvek v rámečku okna. Sémantika tohoto objektu a všech dalších objektů, které by mohly rozšířit, jsou vaše návrh. Další informace naleznete v tématu Postupy: Poskytování automatizace pro Windows.

Stránky Možností v nabídce Nástroje

Můžete vytvořit stránky pro rozšíření modelu nástroje, možnosti automatizace prostřednictvím implementace stránek a přidání informací do registru a vytvoření vlastních možností. Stránky se pak dají volat prostřednictvím objektového modelu prostředí, stejně jako jakékoli jiné stránky možností. Pokud návrh funkce, kterou přidáváte do prostředí prostřednictvím balíčků VSPackages, vyžaduje stránky možností, měli byste přidat také podporu automatizace. Další informace najdete v tématu Podpora automatizace pro stránky možností.

Standardní automatizační objekty

Chcete-li rozšířit automatizaci projektů, implementujete také standardní automatizační objekty (odvozené z IDispatch), které stojí vedle ostatních objektů projektu a implementují standardní metody a vlastnosti. Příklady standardních objektů zahrnují objekty projektu, které jsou vloženy do hierarchie řešení, například Projects, Project, ProjectItema ProjectItems. Každý nový typ projektu by měl tyto objekty implementovat (a případně i jiné v závislosti na sémantice projektu).

Tyto objekty poskytují opačnou výhodu objektů projektu specifických pro VSPackage. Standardní automatizační objekty umožňují použití projektu generalizovaným způsobem jako jakýkoli jiný projekt podporující stejné objekty. Doplněk, který je napsán proti obecným Project objektům a ProjectItem objekty tak může fungovat proti projektům libovolného typu. Další informace naleznete v tématu Modelování projektů.