代码之家  ›  专栏  ›  技术社区  ›  Alister

在outlook中撤消删除联系人

  •  5
  • Alister  · 技术社区  · 16 年前

    我有一个用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;
    //.....
    
    2 回复  |  直到 16 年前
        1
  •  3
  •   Josh    16 年前

    Move 方法,您可以使用该方法将其移回使用 NameSpace.GetDefaultFolder

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

        2
  •  1
  •   user269730    16 年前

    请记住,这是特定于PST的—当项目移动到不同的文件夹时,PST提供程序不会更改条目id。

    德米特里·斯特雷布琴科(MVP) http://www.dimastr.com/ 和MAPI开发工具