Outlook VSTO:取消预约项目的发送事件

时间:2018-06-11 13:32:05

标签: outlook outlook-addin

我正在创建一个Outlook VSTO,允许用户在新约会表单的其他表单区域中输入信息。 发送预约时,我想抓住发送'发送'事件并对用户提供的数据执行一些检查。当此数据正常时,可以发送约会,否则必须取消发送操作。

我的代码是这样的:

Dim apptItem as Outlook.AppointmentItem

Private Sub Test_FormRegionShowing(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.FormRegionShowing
        apptItem = OutlookItem
        AddHandler apptItem.Send, AddressOf sendAppt
End Sub



    Private Sub sendAppt()
        If some_test = False then

              else
                Cancel=True
        End If
End Sub

如何将事件参数传递给我的SendAppt函数,以便我可以取消例程并阻止会议发送?

2 个答案:

答案 0 :(得分:0)

约会本身永远不会发送 - Outlook会创建一个全新的MeetingItem对象并发送它。您需要使用Application.ItemSend事件并检查Item参数是否指向MeetingItem对象。然后,您可以使用MeetingItem.GetAssociatedAppointment检查它对应的约会。

答案 1 :(得分:0)

嗯,答案很简单,解决方案是这样的:

Private sub SendAppt (ByRef Cancel as Boolean)
    If [some test] = False Then
        Cancel = True
    End If
End Sub

这将取消发送例程并保持会议项目的发送。