Implémentation de l’objet control
S’applique à : Outlook 2013 | Outlook 2016
Les objets de contrôle, ou qui prennent en charge l’interface IMAPIControl : IUnknown , sont implémentés par les fournisseurs pour ajouter des fonctionnalités à un bouton qui apparaît dans une boîte de dialogue MAPI. Les objets de contrôle ne peuvent être implémentés que pour les boutons.
IMAPIControl a trois méthodes : GetLastError, GetState et Activate.
MAPI appelle GetState pour déterminer s’il faut ou non désactiver le bouton. GetState est appelé dans les situations suivantes :
Lorsque la boîte de dialogue dans laquelle le bouton s’affiche pour la première fois s’affiche.
Lorsqu’une notification de table d’affichage est émise pour le bouton.
Définissez le contenu du paramètre lpulState sur MAPI_DISABLED si l’utilisateur ne peut pas interagir avec le bouton et MAPI_ENABLED si l’utilisateur peut interagir.
Lorsque l’utilisateur clique sur le bouton, MAPI appelle Activer. Activer effectue la tâche qui a été associée au bouton. Cette tâche peut être tout ce qui convient à votre fournisseur, comme l’affichage d’une boîte de dialogue ou la mise à jour d’une propriété. Si la tâche échoue parce que l’utilisateur l’a annulée, retournez MAPI_E_USER_CANCEL. Pour les autres causes d’échec, retournez la valeur d’erreur appropriée.
Si la tâche réussit et qu’elle est liée à une modification de propriété qui est reflétée dans un autre contrôle de la boîte de dialogue, appelez ITableData ::HrNotify. HrNotify est appelé pour émettre une notification de table d’affichage avec la propriété PR_CONTROL_ID (PidTagControlId) de la propriété modifiée dans la structure TABLE_NOTIFICATION . Ne placez pas la nouvelle valeur de propriété dans la structure ; au lieu de cela, retournez-la lorsque IMAPIProp ::GetProps est appelé. Bien qu’en règle générale, une notification de table d’affichage ne puisse pas être utilisée pour désactiver ou activer un contrôle, elle peut être utilisée avec un bouton. MAPI actualise le contrôle modifié pour répondre à la notification.
MAPI appelle la méthode GetLastError du contrôle lorsque Activate retourne une erreur autre que MAPI_E_USER_CANCEL. Si GetLastError place des informations d’erreur étendues dans la structure MAPIERROR qu’il retourne dans le contenu de the_lppMAPIError_ paramètre, MAPI les affiche pour l’utilisateur.