2011-01-11 47 views

回答

2

您是否正在製作Outlook加載項?有一個事件名爲Application.ItemSend,在項目發送之前引發。我剛剛啓動了VS2010,創建了一個類型爲Outlook 2007加載項的新項目,其中包含下面的代碼,並且當我單擊從Outlook發送時,按預期激活了我的Application_ItemSend

Public Class ThisAddIn 

    Private Sub ThisAddIn_Startup() Handles Me.Startup 

    End Sub 

    Private Sub ThisAddIn_Shutdown() Handles Me.Shutdown 

    End Sub 

    Private Sub Application_ItemSend(ByVal Item As Object, ByRef Cancel As Boolean) Handles Application.ItemSend 
     System.Windows.Forms.MessageBox.Show("Hi") 
    End Sub 
End Class 

編輯

如果你讓你用同樣的方法WinForms應用程序,但你「看到」不同了一點。可能有點令人困惑的是,該事件是在應用程序級而不是從郵件項目本身提出的。

Public Class Form1 
    ''//Holds a reference to our mail application 
    Private WithEvents OA As Microsoft.Office.Interop.Outlook.Application 

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
     ''//Either launches Outlook or snaps to the current running one 
     OA = New Microsoft.Office.Interop.Outlook.Application() 
    End Sub 

    Private Sub OA_ItemSend(ByVal Item As Object, ByRef Cancel As Boolean) Handles OA.ItemSend 
     MessageBox.Show("Hello") 
    End Sub 
End Class 
+0

不,我沒有創建Outlook加載項,也許我應該?我有一個Windows Forms項目,我需要在創建(通過MAPI)電子郵件發送後更新數據庫。 – Zolomon 2011-01-11 14:35:33

0

VBA和VB.NET都使用「Outlook對象模型」。發送事件被省略是很奇怪的。但是,您仍然有這個event

我不是很多VB人,但是由於MAPI面向C++,在VB.net中使用它聽起來不是很流暢,但MailItem大致對應於LPMESSAGE。各種outlook插件框架都有相當好的通知系統。如果您需要單獨使用MAPI,請檢查MAPI events,但這並不容易。

相關問題