Utilisation d’IConnectionPoint
Lorsque le client a un pointeur vers un point de connexion, il peut effectuer les opérations suivantes telles qu’exprimées via IConnectionPoint :
- Tout d’abord, IConnectionPoint::GetConnectionInterface récupère l’IID d’interface sortante prise en charge par le point de connexion. Lorsqu’elle est utilisée conjointement avec IEnumConnectionPoints, cette méthode permet au client d’examiner les ID de toutes les interfaces sortantes prises en charge sur l’objet connectable.
- Deuxièmement, un client peut naviguer à partir du point de connexion jusqu’à l’interface IConnectionPointContainer de l’objet connectable via la méthode IConnectionPoint::GetConnectionPointContainer .
- Troisièmement, les méthodes les plus intéressantes pour le client sont IConnectionPoint::Advise et IConnectionPoint::Unadvise. Lorsqu’un client souhaite connecter son propre objet récepteur à l’objet connectable, le client passe le pointeur IUnknown du récepteur (ou tout autre pointeur d’interface sur le même objet) à Conseiller. Le point de connexion interroge le récepteur pour l’interface sortante spécifique attendue. Si cette interface est disponible sur le récepteur, le point de connexion stocke alors le pointeur d’interface. À partir de ce point, jusqu’à ce que l’option Unadvise soit appelée, l’objet connectable effectue des appels au récepteur via cette interface lorsque des événements se produisent. Pour déconnecter le récepteur du point de connexion, le client passe une clé renvoyée par Advise à la méthode Unadvise . Unadvise doit appeler Release sur l’interface récepteur.
- Enfin, un client peut demander à un point de connexion d’énumérer toutes les connexions qui existent via IConnectionPoint::EnumConnections. Cette méthode crée un objet énumérateur (avec un nombre de références distinct) qui renvoie un pointeur IEnumConnections vers celui-ci. Le client doit appeler Release lorsque l’énumérateur n’est plus nécessaire. En outre, l’énumérateur retourne une série de structures CONNECTDATA , une pour chaque connexion. Chaque structure décrit une connexion à l’aide du pointeur IUnknown du récepteur, ainsi que de la clé de connexion retournée à l’origine par Advise. Lorsque vous avez terminé avec ces pointeurs d’interface récepteur, le client doit appeler Release sur chaque pointeur retourné dans une structure CONNECTDATA .
Rubriques connexes