我有一个用Delphi编写的应用程序,用于在Outlook中添加/更新联系人。我遇到的问题是,如果联系人在Outlook中被删除,代码仍会找到联系人并更新它 - 并且联系人仍然会被删除。有没有办法可以确定联系人是否被删除或取消删除联系人?在Outlook中取消删除联系人
大致代码看起来是这样的:
OutlookApp := CreateOleObject('Outlook.Application');
Mapi := OutlookApp.GetNameSpace('MAPI');
//.....
try
if ContactOutlookEntryID.AsString <> '' then
aContact := Mapi.GetItemFromID(ContactOutlookEntryID.AsString);
except
end;
//try to locate the contact if they have been synchro'd before
if VarIsEmpty(aContact) then //if not found
aContact := Contacts.Items.Add(2); //add a new contact to outlook
aContact.LastName := ContactSurname.AsString;
//.....
如果接触是从删除的项目去掉,我仍然有同样的问题,但它让我走了一半 - 我我会看看是否可以确定如何确定联系人是否已删除项目 - 如果他们是我将他们移回到默认联系人文件夹。 – Alister 2010-03-08 00:08:19
如果真的从删除的项目文件夹中删除了联系人,我想不出从Outlook API获取它的任何可能的方法。也许它被以某种方式缓存。 – Josh 2010-03-08 00:09:53
我更新了我的答案,提示确定项目是否在“已删除邮件”文件夹中。 – Josh 2010-03-08 00:12:32