Utilisation de IProvideClassInfo
Un objet connectable peut offrir les interfaces IProvideClassInfo et IProvideClassInfo2 afin que ses clients puissent facilement examiner ses informations de type. Cette fonctionnalité est importante lors du traitement des interfaces sortantes, qui, par définition, sont définies par un objet, mais implémentées par un client sur son propre objet récepteur. Dans certains cas, une interface sortante est connue au moment de la compilation pour l’objet connectable et l’objet récepteur ; tel est le cas avec IPropertyNotifySink.
Dans d’autres cas, toutefois, seul l’objet connectable connaît ses définitions d’interface sortante au moment de la compilation. Dans ce cas, le client doit obtenir les informations de type pour l’interface sortante afin qu’il puisse fournir dynamiquement un récepteur prenant en charge les points d’entrée appropriés, comme suit :
- Le client énumère les points de connexion, puis, pour obtenir les ID d’interfaces sortantes prises en charge par l’objet connectable, appelle IConnectionPoint::GetConnectionInterface pour chaque point de connexion.
- Le client interroge l’objet connectable pour l’une des interfaces IProvideClassInfo .
- Le client appelle des méthodes dans les interfaces IProvideClassInfo pour obtenir les informations de type pour l’interface sortante.
- Le client crée un objet récepteur prenant en charge l’interface sortante.
- Le processus se poursuit et le client appelle IConnectionPoint::Advise pour connecter son récepteur au point de connexion.
Dans les informations de type, la source d’attribut marque une interface ou une dispinterface répertoriée sous une coclasse en tant qu’interface sortante. Ceux répertoriés sans cet attribut sont considérés comme des interfaces entrantes.
Rubriques connexes