如何使用VSTO AddIn为Outlook 2007中的联系人文件夹/联系人项目的SendAndReceive
事件附加事件处理程序?我尝试使用:
Application.ActiveExplorer().SyncObjects.ForEach
{
SyncObject.SyncEnd += \\Do something
}
但它没有用。
答案 0 :(得分:2)
我试过
Application.ActiveExplorer().SyncObjects.AppFolders.SyncEnd += \\EventHandler
此挂钩发送/接收所有默认文件夹..
答案 1 :(得分:0)
实际上我的需求有点不同但可能是相同的: 我希望在发送/接收后收到有关文件夹更改(我的情况下的约会)的通知。 我的第一个想法(我认为你在同一轨道上)是检查发送/接收事件,并且可能从它或类似的东西中获得一些项目的集合,但是没有这样的东西可用。 (正如this forum post中所述)
我的第二条路径来自following article:我可以注册到文件夹的Item_Add
和Item_Change
(甚至是Item_Removed
)事件(也是由发送收到的更改):
一些代码:
// Get the folder calendar folder and subscribe to the events.
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar).Items.ItemAdd += new Microsoft.Office.Interop.Outlook.ItemsEvents_ItemAddEventHandler(Items_ItemAdd);
Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar).Items.ItemChange += new Microsoft.Office.Interop.Outlook.ItemsEvents_ItemChangeEventHandler(Items_ItemChange);
}
// Do something with it.
void Items_ItemAdd(object Item)
{
logItem(Item, "Add");
}
void logItem(object Item, string Action)
{
Outlook.AppointmentItem item = Item as Outlook.AppointmentItem;
File.AppendAllText(@"e:\log.txt", string.Format("Item {0}: {1}", Action, Item));
if (item != null)
{
File.AppendAllText(@"e:\log.txt", " - Appointment: " + item.Subject);
}
}
答案 2 :(得分:0)
您可以挂接邮件发送/接收事件,然后检查邮件类型是否为ContactItem。以下是Send事件的示例。
// hook up the event
this.Application.ItemSend += ThisApplication_SentMail;
然后在您的事件处理程序中检查邮件项类型;
internal void ThisApplication_SentMail(object item, ref bool cancel)
{
Outlook.ContactItem contactItem = item as Outlook.ContactItem;
// mail message is not a ContactItem, so exit.
if (contactItem == null) return;
// do whatever you need to here
}
答案 3 :(得分:0)
就我而言,我需要在收到新电子邮件后和电子邮件同步后触发一个事件,以便我收到新电子邮件,否则我将不会收到新电子邮件附件。
下面我的解决方案可能对您有所帮助。
let array = [
{name: 'banana', price: 1},
{name: 'apple', price: 3},
{name: 'orange', price: 4}
]
let result = array.reduce((acc,item) => acc.concat(item.price) , [])
alert (result)