加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 04:11:55 所属栏目:大数据 来源:网络整理
导读:我有一个用Delphi编写的应用程序,用于在outlook中添加/更新联系人.我遇到的问题是,如果在Outlook中删除了联系人,代码仍会找到联系人并对其进行更新 – 并且联系人仍然会被删除.有没有办法可以确定联系人是否被删除或取消删除联系人? 大致代码看起来像: Out
我有一个用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进行比较.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读