因爲我在功能區的類中,沒有指向Outlook.Application對象的指針。所以,我不能使用是否有可能在按鈕的onAction函數中捕獲Outlook 2010外接程序中的「發送」事件?
Application.ItemSend += new ApplicationEvents_11_ItemSendEventHandler(MyItemSendEventHandler)
這個事件處理程序。
如何到達功能區類中的Outlook.Application對象,或者有其他方法來捕獲發送事件?
public void SendEnMail(Office.IRibbonControl control) //OnAction Function
{
Outlook.Application oApp = new Outlook.Application();
Outlook._MailItem myMail = (Outlook._MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);
myMail.Display(true);
Outlook.Application application = Globals.ThisAddIn.Application;
application.ItemSend += new Outlook.ApplicationEvents_11_ItemSendEventHandler(Application_ItemSend);
}
void Application_ItemSend(object Item, ref bool Cancel)
{
string a = ((Microsoft.Office.Interop.Outlook.MailItem)Item).Body;
System.Windows.Forms.MessageBox.Show(a);
Cancel = true;
}
我不能捕獲像這樣的ItemSend事件。但如果我將事件處理程序寫入ThisAddIn類
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
Application.ItemSend += new Outlook.ApplicationEvents_11_ItemSendEventHandler(Application_ItemSend);
}
void Application_ItemSend(object Item, ref bool Cancel)
{
string a = ((Microsoft.Office.Interop.Outlook.MailItem)Item).Body;
System.Windows.Forms.MessageBox.Show(a);
Cancel = true;
}
像這樣,它正在工作。
我是新手在C#和加載項開發。所以,我不明白我會在哪裏寫這行。 – goktugbc
我編輯了我的問題btw。 – goktugbc
它沒有再次工作:( 錯誤'Microsoft.Office.Interop.Outlook._MailItem'沒有包含'SendEvent'的定義,也沒有擴展方法'SendEvent'接受類型爲'Microsoft .Office.Interop.Outlook._MailItem「可以找到(你是否缺少使用指令或程序集引用?) – goktugbc