delphi – 在Outlook中取消删除联系人

前端之家收集整理的这篇文章主要介绍了delphi – 在Outlook中取消删除联系人前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个用Delphi编写的应用程序,用于在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;
//.....

解决方法

删除联系人后,它们将被放入“已删除邮件文件夹中.除了在该文件夹中之外,没有其他“已删除”状态. “Undeleting”就像把它移回去一样简单.

在ContactItem对象上有一个Move方法,您可以使用它将其移回到您可以使用NameSpace.GetDefaultFolder方法获得的默认联系人文件夹.

编辑要确定联系人是否在已删除邮件文件夹中,您可以查看应返回MAPIFolder对象的Parent属性.然后,您可以将其EntryID与GetDefaultFolder(olFolderDeletedItems)返回的EntryID进行比较.

猜你在找的Delphi相关文章