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

问题描述 投票:0回答:2

我正在创建一个 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 函数,以便我可以取消例程并阻止发送会议?

outlook outlook-addin
2个回答
2
投票

约会本身永远不会发送 - Outlook 创建一个全新的

MeetingItem
对象并发送它。您需要使用
Application.ItemSend
事件并检查 Item 参数是否指向
MeetingItem
对象。然后您可以使用
MeetingItem.GetAssociatedAppointment
检查它对应的约会。


0
投票

嗯,答案相当简单,解决方案如下:

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

这将取消发送例程并阻止发送会议项目。

© www.soinside.com 2019 - 2024. All rights reserved.