Comment : valeurs de propriété de mise à jour dans la fenêtre Propriétés
Il existe deux façons de conserver la fenêtre de Propriétés conserve la constante les modifications de valeur de propriété. La première consiste à appeler l'interface d' IVsUIShell , à laquelle permet d'accéder aux fonctionnalités de base de fenêtrage, y compris l'accès et la conception de l'outil et les fenêtres de document fournis par l'environnement. les étapes suivantes décrivent ce processus de synchronisation.
Mettre à jour les valeurs de propriété à l'aide IVsUIShell
Pour mettre à jour les valeurs de propriété à l'aide de l'interface d'IVsUIShell
Appelez IVsUIShell (via le service d' SVsUIShell ) à tout moment les VSPackages, projets, ou besoin d'éditeurs de créer ou l'énumération l'outil ou les fenêtres de document.
Implémentez RefreshPropertyBrowser pour conserver la fenêtre de Propriétés synchronisé avec le des modifications de propriété d'un projet (ou tout autre objet sélectionné parcouru par la fenêtre de Propriétés ) sans implémenter IConnectionPointContainer et déclencher des événements d' OnChanged .
Implémentez l' AdviseHierarchyEvents et UnadviseHierarchyEvents de méthodes d' IVsHierarchy pour générer et désactiver, respectivement, la notification client des événements de hiérarchie sans nécessiter la hiérarchie pour implémenter IConnectionPointContainer.
Mettre à jour les valeurs de propriété à l'aide IConnection
La deuxième moyen de conserver la fenêtre de Propriétés conserve la constante les modifications de valeur de propriété est d'implémenter IConnection sur l'objet connectable pour indiquer l'existence des interfaces sortantes. si vous souhaitez localiser le nom de la propriété, dérivez votre objet d' ICustomTypeDescriptor. L'implémentation d' ICustomTypeDescriptor peut modifier les descripteurs de propriété qu'elle retourne et modifie le nom d'une propriété. pour localiser la description, créez un attribut qui dérive d' DescriptionAttribute et substituez la propriété de description.
considérations en implémentant l'interface d'IConnection
IConnection permet d'accéder à un sous-objet d'énumérateur avec l'interface d' IEnumConnectionPoints . Il fournit également l'accès à tous les sous-objets de point de connexion, qui implémente l'interface d' IConnectionPoint .
En parcourent l'objet sont chargées d'implémenter un événement d' IPropertyNotifySink . La fenêtre de Propriétés recommandera pour le jeu d'événements via IConnection.
Un point de connexion contrôle le nombre de connexions (un ou plusieurs) il permet de son implémentation d' Advise. Un point de connexion qui autorise uniquement une interface peut retourner E_NOTIMPL de la méthode d' EnumConnections .
Un client peut appeler l'interface d' IConnection pour obtenir l'accès à un sous-objet d'énumérateur avec l'interface d' IEnumConnectionPoints . L'interface d' IEnumConnectionPoints peut alors être appelée pour énumérer des points de connexion pour chaque ID d'interface sortante (IID).
IConnection peut également être appelé pour obtenir l'accès à des sous-objets de point de connexion avec l'interface d' IConnectionPoint pour chaque IID sortant. Via l'interface d' IConnectionPoint , un client démarre ou termine une boucle consultative avec synchronisation d'objet connectable et du client la propre. Le client peut également appeler l'interface d' IConnectionPoint pour obtenir un objet énumérateur avec l'interface d' IEnumConnections pour énumérer les connexions qu'il connaît.
Voir aussi
Tâches
Comment : annoncez la sélection suivant à l'environnement