VSTO - обработчик событий Outlook в C # - PullRequest
3 голосов
/ 02 мая 2009

Мне нужно отобразить пользовательскую форму вместо формы инспектора по умолчанию для элемента назначения Outlook. Я хочу сделать это в C #.

На devx есть хороший учебник, но он использует VB, и я хочу использовать C #. Поэтому я перевел код на C #, и у меня возникла проблема, когда мне нужно переопределить обработчик событий Open для AppointmentItem (который называется mcAI). В вышеупомянутой пачке они говорят сделать следующее в VB:

Private Sub tyAI_Open(ByRef Cancel As Boolean) Handles tyAI.Open
    Cancel = True
End Sub

который мне переводится как:

private void mcAI_Open(out bool Cancel)
{
    Cancel = true;
}

(Обратите внимание, что я пробовал это с параметром out и ref и без него, а также с / без объекта в качестве первого параметра)

Однако нам нужно зарегистрировать, что это событие, поэтому я вставил следующий код:

mcAI.Open += 
    new Microsoft.Office.Interop.Outlook.ItemEvents_10_OpenEventHandler(mcAI_Open);

Но я не могу скомпилировать это, так как получаю ошибку:

No overload for 'mcAI_Open' matches delegate 'Microsoft.Office.Interop.Outlook.ItemEvents_10_OpenEventHandler'

Есть идеи, как мне зарегистрировать свою функцию для события Open в AppointmentItem? Заранее спасибо.

(Кстати, есть MSDN QA , который предполагает, что мой код должен работать, но я все еще застрял.)

1 Ответ

5 голосов
/ 02 мая 2009

Теоретически это должно работать:

private void mcAI_Open(ref bool Cancel)
{
    Cancel = true;
}
...