Résumé de gestion des événements ATL
Gérer en général des événements COM est un processus relativement simple. Il existe trois étapes principales :
Implémentez l'interface d'événements sur votre objet.
Informez la source d'événements que votre objet souhaite recevoir des événements.
Unadvise la source d'événements lorsque votre objet ne doit plus recevoir des événements.
Implémentation de l'interface
Il existe quatre manières principales d'implémenter une interface à l'aide de ATL.
Dériver de |
Approprié pour le type d'interface |
Requiert que vous utilisiez implémenter tout le methods* |
Requiert une bibliothèque de types au moment de l'exécution |
---|---|---|---|
l'interface |
Vtable |
Oui |
Non |
Double |
Oui |
Oui |
|
Dispinterface |
Non |
Oui |
|
Dispinterface |
Non |
Non |
* Lors de l'utilisation de la prise en charge ATL classe, vous n'avez jamais tenus d'implémenter les méthodes d' IUnknown ou d' IDispatch manuellement.
Notifier et Unadvising la source d'événements
Il existe trois méthodes principales de notifier et d'unadvising une source d'événements à l'aide de ATL.
Informez la fonction |
Fonction d'Unadvise |
Le plus approprié pour l'utiliser avec |
Requiert soit nécessaire de maintenir un cookie ? |
Commentaires |
---|---|---|---|---|
Vtable ou une interface double |
Oui |
AtlAdvise est une fonction globale ATL. CComPtrBase::Advise est utilisé par CComPtr et CComQIPtr. |
||
Non |
Moins de paramètres qu' AtlAdvise étant donné que la classe de base exécute un travail. |
|||
Contrôles ActiveX dans des contrôles composites |
Non |
CComCompositeControl::AdviseSinkMap signale toutes le mappage de récepteur d'entrées dans le. Les mêmes s'exécutent des unadvises les entrées. Cette méthode est appelée automatiquement par la classe d' CComCompositeControl . |
||
Contrôles ActiveX dans une boîte de dialogue |
Non |
CAxDialogImpl::AdviseSinkMap avertit et des unadvises tous les contrôles ActiveX dans la ressource de boîte de dialogue. Cela se fait automatiquement pour vous. |