Fourniture de l'automation pour les VSPackages
Il existe deux manières principales de fournir l'automation pour votre VSPackages : en implémentant des objets de VSPackage-détail et l'implémentation des objets Automation standard. En général, celles-ci sont utilisés ensemble d'étendre le modèle Automation de l'environnement.
objets de VSPackage-Détail
Certains emplacements dans le modèle Automation exigent que vous pour fournir des objets Automation uniques à votre VSPackage. Par exemple, les nouveaux projets nécessitent des objets séparés que seuls votre VSPackage fournit. Les noms de ces objets sont écrits dans le Registre et obtenus à travers des appels à l'objet d' DTE d'environnement.
les objets de VSPackage-détail peuvent également être obtenu lorsqu'un consommateur d'automation utilise l'objet fourni par le biais de la propriété de l'objet d'un objet standard. Par exemple, l'objet d' Window standard possède une propriété d' Object , connue en général comme propriété d' Windows.Object . Lorsque les consommateurs appellent Window.Object dans une fenêtre implémentée dans votre VSPackage, vous passez d'un objet Automation spécifique de votre propre conception.
Projets
VSPackages peut étendre le modèle Automation pour les nouveaux types de projet via leurs propres objets de VSPackage-détail. L'objectif principal de fournir de nouveaux objets Automation pour votre VSPackage est de différencier vos propres objets de projet d' VCProject ou d'un objet de VSProject2 . Cette différenciation est utile lorsque vous souhaitez permettre de choisir ou itérer votre type de projet en dehors de l'autre projet, tels doit ils s'afficher côte à côte dans une solution. Pour plus d'informations, consultez exposer des objets Project.
Événements
L'architecture de l'environnement offre un autre emplacement pour ajouter vos propres objets de VSPackage-détail. Par exemple, en créant vos propres objets événement, vous pouvez étendre le modèle d'événement de l'environnement pour les projets. Vous pouvez fournir vos propres événements lorsqu'un nouvel élément est ajouté à votre propre type de projet. Pour plus d'informations, consultez exposer des événements dans le kit de développement Visual Studio.
objets window
Les fenêtres peuvent passer d'un objet Automation de VSPackage-détail vers l'environnement une fois appelées. Vous implémentez un objet qui est dérivé d' IVsExtensibleObject, d' IExtensibleObject ou d' IDispatch que les mains stockant des propriétés, en étendant l'objet window dans lequel il appartient. Par exemple, vous pouvez utiliser cette approche pour fournir l'automation pour un contrôle situé dans un frame de fenêtre. La sémantique de cet objet et tous les autres objets qu'il peut étendre sont à la conception. Pour plus d'informations, consultez Comment : Fournissez l'automation pour windows.
Pages options dans le menu Outils
Vous pouvez créer des pages pour étendre les outils, modèle Automation options en implémentant des pages et en ajoutant des informations au Registre pour créer vos propres options. Vos pages peuvent ensuite être appelées à travers le modèle objet d'environnement comme toutes les autres pages options. Si la conception de la fonctionnalité que vous ajoutez à l'environnement via les VSPackages requiert des pages options, vous ajoutez une prise en charge d'automation également. Pour plus d'informations, consultez Prise en charge de l'automation des pages options.
Objets Automation standard
Pour étendre l'automation pour les projets, vous implémentez également les objets Automation standard (dérivés d' IDispatch) que support à côté de les autres objets de projet et implémentez les méthodes standard et des propriétés. Les exemples d'objets standard incluent des objets de projet qui sont insérés dans la hiérarchie de votre solution telle qu' Projects, Project, ProjectItem, et ProjectItems. Chaque nouveau type de projet doit implémenter ces objets (et éventuellement les autres selon la sémantique de votre projet).
dans une certaine mesure, ces objets fournissent l'avantage opposé des objets de projet de VSPackage-détail. Les objets Automation normes permettent votre projet à être utilisé d'une méthode généralisée comme tout autre projet prenant en charge les mêmes objets. Ainsi, une macro qui est écrite en général Project et objets d' ProjectItem peut s'exécuter sur des projets de n'importe quel type. Pour plus d'informations, consultez modélisation de projet.