5
我正在寫一個Outlook加載項,並且希望在保存後(約會時)使用約會的數據執行某些操作(與此處不相關)。
(我是Outlook-Addins的新手)
所以我發現有一個AfterWrite事件,我可以註冊一個方法。 還有一個ItemLoad事件應用程序。Outlook預約後的事件已保存
所以我的第一個Efford是這樣的:
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
// ...
this.Application.ItemLoad +=
new Outlook.ApplicationEvents_11_ItemLoadEventHandler(atItemLoad);
}
public void atItemLoad(Object item)
{
Outlook.AppointmentItem aitem = item as Outlook.AppointmentItem;
if (aitem != null)
{
aitem.AfterWrite +=
new Outlook.ItemEvents_10_AfterWriteEventHandler(afterWrite);
}
}
public void afterWrite()
{
// Who was written?
MessageBox.Show("it was written!");
}
的問題是,我不知道怎麼去約會的數據,引發該事件。 Application.ItemLoad註冊一個獲取Object的函數,該函數可以投射到約會。
AfterWrite沒有。我想是這樣的:
public void afterWrite(Outlook.AppointmentItem aitem)
{
// do something with the data from the Appointment
MessageBox.Show(aitem.Subject + " was written!");
}
我擔心,我在完全錯誤的方向正在研究..
*對不起,如果我的英語是一個爛攤子 - 這不是我的母語
編輯:
我甚至試過這樣的結構:
private List<AppointmentEventHolder> holderList = new List<AppointmentEventHolder>();
internal class AppointmentEventHolder
{
private Outlook.AppointmentItem aitem = null;
public AppointmentEventHolder(Outlook.AppointmentItem item)
{
aitem = item;
}
public void onWrite()
{
MessageBox.Show("write: " + aitem.Subject);
}
}
public void atItemLoad(Object item)
{
Outlook.AppointmentItem aitem = item as Outlook.AppointmentItem;
if (aitem != null)
{
AppointmentEventHolder aHolder = new AppointmentEventHolder(aitem);
holderList.Add(aHolder);
aitem.AfterWrite += aHolder.onWrite;
}
}
但事件不會被解僱! 我現在很沮喪
什麼是您的C#代碼引用的「** Constants.FOLDERNAME **」? 不知道這個常量是指什麼,我不能建立你的代碼。 – 2013-09-17 12:04:04
'私人MAPIFolder GetCalendarFolder() {var app = new Microsoft.Office.Interop.Outlook.Application(); NameSpace nameSpace = app.GetNamespace(「MAPI」); return nameSpace.GetDefaultFolder(OlDefaultFolders.olFolderCalendar); }'**使用此方法獲取默認的Outlook.MAPIFolder對象** – 2014-09-01 09:49:05