处理outlook 2010 VSTO中的默认事件

时间:2015-04-13 14:48:23

标签: events outlook vsto

我在功能区xml中添加了以下代码来处理“会议已接受”按钮。

<commands>
    <command idMso="AcceptInvitationNoResponse" onAction="HandleMeetingResponse"/>    
    <command idMso="AcceptInvitationEditResponse" onAction="HandleMeetingResponse"/>    
    <command idMso="AcceptInvitationSendResponse" onAction="HandleMeetingResponse"/>    
  </commands>

这是相应的事件处理程序代码。

public void HandleMeetingResponse(Office.IRibbonControl Control, bool Cancel)
        {
            MessageBox.Show("Accepted Clicked");
            Cancel = false;
        }

显示消息框后,接受会议并发送响应的默认事件未执行。

1 个答案:

答案 0 :(得分:0)

维杰,

重新调整的 onAction 回调应如下所示:

C#: void OnAction(IRibbonControl control, ref bool CancelDefault)
VBA: Sub OnAction(control As IRibbonControl, byRef CancelDefault)
C++: HRESULT OnAction([in] IRibbonControl *pControl, [in,out] VARIANT _BOOL *fCancelDefault)
Visual Basic: Sub OnAction(control As IRibbonControl, byRef CancelDefault) 

您似乎忘了为第二个参数声明 ref 关键字。