VSTO - Gestionnaire d'événements Outlook en C #
Question
J'ai besoin d'afficher un formulaire personnalisé au lieu du formulaire d'inspecteur par défaut pour un élément de rendez-vous Outlook. Je veux faire cela en C #.
Il existe un bon didacticiel sur devx , mais il utilise VB, et moi vouloir utiliser C #. J'ai donc traduit le code en C # et j'ai un problème où je dois remplacer le gestionnaire d'événements Open
pour AppointmentItem
(appelé mcAI
). Dans la tute mentionnée ci-dessus, ils disent de faire ce qui suit en VB:
Private Sub tyAI_Open(ByRef Cancel As Boolean) Handles tyAI.Open
Cancel = True
End Sub
qui me traduit par:
private void mcAI_Open(out bool Cancel)
{
Cancel = true;
}
(Remarque: j'ai essayé ceci avec et sans les paramètres out
et ref
, et avec / sans objet comme premier paramètre également
Cependant, nous devons enregistrer qu'il s'agit d'un événement avec l'événement. J'ai donc mis ce code:
mcAI.Open +=
new Microsoft.Office.Interop.Outlook.ItemEvents_10_OpenEventHandler(mcAI_Open);
Mais je ne peux pas compiler ceci car j'obtiens l'erreur:
Aucune surcharge pour 'mcAI_Open' ne correspond au délégué 'Microsoft.Office.Interop.Outlook.ItemEvents_10_OpenEventHandler'
Des idées sur la manière dont je suis censé enregistrer ma fonction pour l'événement Open
de AppointmentItem
? Merci d'avance.
(BTW il y a un MSDN QA qui suggère que mon code devrait fonctionner et que je suis toujours bloqué.)
La solution
Théoriquement, cela devrait fonctionner:
private void mcAI_Open(ref bool Cancel)
{
Cancel = true;
}