Hola, estoy haciendo un programa para control de visitas a clientes y me gustaria que las visitas que programa el comercial le pasaran automaticamente a las citas del outlook. El problema es que estoy haciendo pruebas con un codigo pero me parece que no funciona bien en el Outlook 2003. Solo XP y 2000. Los comerciales tienen un poco de todo, así que me gustaria que el codigo funcionara con todas las versiones.
Ahi va el codigo:
Código Delphi
[-]
uses ComObj;
procedure CreateNewAppointment;
const
olAppointmentItem = $00000001;
olImportanceLow = 0;
olImportanceNormal = 1;
olImportanceHigh = 2;
function GetCalendarFolder(folder: OLEVariant): OLEVariant;
var
i: Integer;
begin
for i := 1 to folder.Count do
begin
if (folder.Item[i].DefaultItemType = olAppointmentItem) then
begin
Result := folder.Item[i];
break
end
else
Result := GetCalendarFolder(folder.Item[i].Folders);
end;
end;
var
outlook, ns, folder, appointment: OLEVariant;
begin
outlook := CreateOLEObject('Outlook.Application');
ns := outlook.GetNamespace('MAPI');
folder := GetCalendarFolder(ns.Folders);
if not VarIsNull(folder) then
begin
appointment := folder.Items.Add(olAppointmentItem);
appointment.Subject := 'new appointment';
appointment.Body := 'call me tomorrow';
appointment.Start := Now();
appointment.End := Now()+10;
appointment.AllDayEvent := 1;
appointment.ReminderMinutesBeforeStart := 20;
appointment.ReminderSet := 1;
appointment.Importance := olImportanceHigh;
appointment.Save;
appointment.Display(True);
appointment.PrintOut;
end;
folder := UnAssigned;
ns := UnAssigned;
outlook := UnAssigned
end;
Muchas Gracias de antemano.