Fourniture de l’automatisation pour VSPackages

Il existe deux façons principales de fournir une automatisation pour vos VSPackages : en implémentant des objets spécifiques à VSPackage et en implémentant des objets Automation standard. En règle générale, elles sont utilisées ensemble pour étendre le modèle d’automatisation de l’environnement.

Objets spécifiques à VSPackage

Certains emplacements dans le modèle d’automatisation nécessitent que vous fournissiez des objets d’automatisation uniques à votre VSPackage. Par exemple, les nouveaux projets nécessitent des objets distincts que votre VSPackage fournit uniquement. Les noms de ces objets sont entrés dans le Registre et obtenus par le biais d’appels à l’objet d’environnement DTE .

Des objets spécifiques à VSPackage peuvent également être obtenus lorsqu’un consommateur Automation utilise l’objet fourni via la propriété Object d’un objet standard. Par exemple, l’objet standard Window a une Object propriété, communément Windows.Object appelée propriété. Lorsque les consommateurs appellent la Window.Object fenêtre sur une fenêtre implémentée dans votre VSPackage, vous transmettez un objet d’automatisation spécifique de votre propre conception.

Projets

Les VSPackages peuvent étendre le modèle d’automatisation pour les nouveaux types de projets via leurs propres objets spécifiques à VSPackage. L’objectif principal de fournir de nouveaux objets d’automatisation pour votre VSPackage consiste à différencier vos objets de projet uniques d’un VCProject ou d’un VSProject2 objet. Cette différenciation est pratique lorsque vous souhaitez fournir un moyen de distinguer ou d’itérer votre type de projet en dehors d’autres types de projets, si elles apparaissent côte à côte dans une solution. Pour plus d’informations, consultez Exposing Project Objects.

Événements

L’architecture des événements de l’environnement offre un autre emplacement pour vous permettre d’ajouter vos propres objets spécifiques à VSPackage. Par exemple, en créant vos propres objets d’événements uniques, 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 Exposing Events.

Objets fenêtres

Windows peut renvoyer un objet Automation spécifique à VSPackage à l’environnement lorsqu’il est appelé. Vous implémentez un objet dérivé de IVsExtensibleObject, IExtensibleObject ou IDispatch qui renvoie des propriétés, en étendant l’objet fenêtre dans lequel il est sitené. Par exemple, vous pouvez utiliser cette approche pour fournir une automatisation pour un contrôle sitené dans un cadre de fenêtre. La sémantique de cet objet et de tous les autres objets qu’il peut étendre sont les vôtres à concevoir. Pour plus d’informations, consultez Guide pratique pour fournir Automation pour Windows.

Pages d’options dans le menu Outils

Vous pouvez créer des pages pour étendre le modèle Outils, Options Automation via l’implémentation de pages et l’ajout d’informations au Registre pour créer vos propres options. Vos pages peuvent ensuite être appelées via le modèle objet d’environnement, comme toutes les autres pages d’options. Si la conception de la fonctionnalité que vous ajoutez à l’environnement via VSPackages nécessite des pages d’options, vous devez également ajouter la prise en charge automation. Pour plus d’informations, consultez La prise en charge d’Automation pour les pages Options.

Objets Automation standard

Pour étendre l’automatisation pour les projets, vous implémentez également des objets d’automatisation standard (dérivés de ) qui se trouvent à côté des IDispatchautres objets de projet et implémentent des méthodes et des propriétés standard. Parmi les exemples d’objets standard, citons les objets projet insérés dans la hiérarchie de solution, tels que Projects, Project, ProjectItemet ProjectItems. Chaque nouveau type de projet doit implémenter ces objets (et éventuellement d’autres en fonction de la sémantique de votre projet).

Dans un sens, ces objets offrent l’avantage opposé des objets de projet spécifiques à VSPackage. Les objets d’automatisation standard permettent à votre projet d’être utilisé de manière généralisée comme tout autre projet prenant en charge les mêmes objets. Par conséquent, un complément écrit sur des objets généraux Project et ProjectItem peut fonctionner sur des projets de n’importe quel type. Pour plus d’informations, consultez Modélisation de projet.