VSTO - C#中的Outlook事件处理程序

Mar*_*cin 3 .net c# outlook vsto

我需要为Outlook预约项显示自定义表单而不是默认检查器表单.我想在C#中这样做.

devx上有一个很好的教程,但它使用VB,我想使用C#.所以我把代码翻译成了C#,我遇到了一个问题,我需要覆盖(被调用的)Open事件处理程序.在上面提到的tute中,他们说要在VB中执行以下操作:AppointmentItemmcAI

Private Sub tyAI_Open(ByRef Cancel As Boolean) Handles tyAI.Open
    Cancel = True
End Sub
Run Code Online (Sandbox Code Playgroud)

我翻译为:

private void mcAI_Open(out bool Cancel)
{
    Cancel = true;
}
Run Code Online (Sandbox Code Playgroud)

(注意我已经尝试了这个有和没有outref参数,并且有/没有对象作为第一个参数)

但是我们需要注册这是一个事件,所以我输入了这段代码:

mcAI.Open += 
    new Microsoft.Office.Interop.Outlook.ItemEvents_10_OpenEventHandler(mcAI_Open);
Run Code Online (Sandbox Code Playgroud)

但是当我收到错误时,我无法编译它:

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

对我应该如何注册我的函数的任何想法Open的事件AppointmentItem?提前致谢.

(顺便说一句,有一个MSDN QA,它表明我的代码应该可以运行,但我仍然卡住了.)

Tom*_*lak 5

从理论上讲,这应该工作:

private void mcAI_Open(ref bool Cancel)
{
    Cancel = true;
}
Run Code Online (Sandbox Code Playgroud)