VSTO - Controlador de eventos de Outlook en C #
Pregunta
Necesito mostrar un formulario personalizado en lugar del formulario de inspector predeterminado para un elemento de cita de Outlook. Quiero hacer esto en C #.
Hay un buen tutorial en devx pero está usando VB, y quiero usar C #. Así que traduje el código a C # y tengo un problema en el que necesito anular el controlador de eventos Open
para el AppointmentItem
(llamado mcAI ). En la guía mencionada anteriormente, dicen hacer lo siguiente en VB:
Private Sub tyAI_Open(ByRef Cancel As Boolean) Handles tyAI.Open
Cancel = True
End Sub
que para mí se traduce como:
private void mcAI_Open(out bool Cancel)
{
Cancel = true;
}
(Tenga en cuenta que he intentado esto con y sin un parámetro out
y ref
, y con / sin un objeto como el primer parámetro también)
Sin embargo, debemos registrar que esto es un evento, por lo que puse este código:
mcAI.Open +=
new Microsoft.Office.Interop.Outlook.ItemEvents_10_OpenEventHandler(mcAI_Open);
Pero no puedo compilar esto porque recibo el error:
No hay sobrecarga para que 'mcAI_Open' coincida con el delegado 'Microsoft.Office.Interop.Outlook.ItemEvents_10_OpenEventHandler'
¿Alguna idea sobre cómo debo registrar mi función para el evento Open
del AppointmentItem
? Gracias de antemano.
(Por cierto, hay un MSDN QA que sugiere que mi código debería funcionar y aún así estoy atascado.)
Solución
Teóricamente, esto debería funcionar:
private void mcAI_Open(ref bool Cancel)
{
Cancel = true;
}