我正在尝试将我们的程序与 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);