从Delphi中查找Outlook中已删除的约会

时间:2013-01-30 00:26:41

标签: delphi outlook appointment

我正在尝试将我们的程序与outlook和我的测试代码集成在一起(类似的工作)但有以下问题。

在测试中我能够添加约会。然后手动将约会移动到另一个日期/时间并重新运行测试程序并将其移回(如预期的那样)。但...

当一个项目被删除时,下面的代码仍然可以找到该项目(不知何故!)。我甚至手动从Outlook中的“已删除邮件”文件夹中删除了该项目。

结果,因为它“找到”约会,然后它会尝试更新它,从而产生AV。我怀疑在使用find函数时出现了问题,但我想要做的是使用userProperties从我们的系统中添加一些内容以添加到outlook中的约会项目中并在需要时更新。但是还需要能够处理用户可能手动从日历中删除项目的情况。

非常感谢任何协助。

folder := ns.GetDefaultFolder(olFolderCalendar);

if not VarIsNull(folder) and not VarIsEmpty(folder) then
begin
try
  appointment := folder.Items.Find('[MyRecProperty2]=' + quotedStr(1001));
  entryFound := true;
except
end;

if (not entryFound) or
  (varType(Appointment)=varNull) or
  (varType(Appointment)=varEmpty) then
begin
  appointment := folder.Items.Add(olAppointmentItem);
  prop := appointment.UserProperties.Add('MyRecProperty2',olText,True);
  prop.Value := '1001';
  NewAppointment(appointment);
end
else
begin
  showmessage('updating appointment!');
  FillAppointment(appointment, false);
end;

showmessage('saving appointment!');
appointment.Save;

//showmessage('display appointment!');
//appointment.Display(true);

0 个答案:

没有答案