Bonjour,
j'ai un soucis avec l'automation sur outlook 2003.

Voici le code qui fonctionne très bien pour outlook 2000 mais qui ne fonctionne pas avec outlook 2003.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
 
///////////////////////////////////////////////////////////////////////////
Procedure TFormExportOutlook.CreeRendezVous(TempSujet, TempMessage, TempDate, TempHeureDebut, TempHeureFin: String;Sender: TObject);
Var
  EspaceDeNom: NameSpace;
  UnContact : ContactItem;
  Filter :Olevariant;
 
  DossierRDV : MAPIFolder;
  AnciensContact : MAPIFolder;
  RDV : AppointmentItem;
  RDV2: Variant;
  I, j : Integer;
  Outlookapplication1: TOutlookapplication;
  TempRDV: String;
Begin
  Outlookapplication1 := TOutlookapplication.Create(NIL);
  Outlookapplication1.Connect;
  EspaceDeNom := Outlookapplication1.GetNamespace('MAPI');
  // Ici on utilise le profil par défaut
  EspaceDeNom.Logon('', '', False, False);
  DossierRDV := EspaceDeNom.GetDefaultFolder(olFolderCalendar);
 
  If RDVRecherches = FALSE Then
  Begin
    For j := 1 To DossierRDV.Items.Count Do
    Begin
      RDVRecherches := TRUE;
      RDV2 := DossierRDV.Items.Item(j);
      TempRDV := String(RDV2.Start) + ' ' + String(RDV2.End)+ ' ' + String(RDV2.Subject);
      HachRDVExist.Values[TempRDV] := 'oui';
    End;
  End;
 
 
  If not VarIsNull(DossierRDV) And Not VarIsEmpty(DossierRDV) Then
  Begin
      //Ajoute un Rendez-vous
    RDV := DossierRDV.Items.Add(olAppointmentItem) as AppointmentItem;
    With RDV Do
     Begin
      Subject := TempSujet;
      Body := TempMessage;
      Location := '';
      Start := StrToDateTime(TempDate + ' ' + TempHeureDebut);
      End_ := StrToDateTime(TempDate + ' ' + TempHeureFin);
      AllDayEvent := FALSE;
 
 
      //Positionne l'alarme
      If CbAlerte.Checked = TRUE Then
        ReminderMinutesBeforeStart := StrToInt(CbValeurAlerte.Items.strings[CbChoixAlerte.ItemIndex])
      Else
        ReminderMinutesBeforeStart := 20;
 
      ReminderSet := CbAlerte.Checked;
 
      Importance := olImportanceNormal;
 
      //Destinataires
      //Recipients.Add('person1@domain.com');
      //Recipients.Add('person2@domain.com');
 
      // Ajoute un ou plusieur contacts
      //Links.Add(UnContact);
      // Links.Add(Contact n);
 
      TempRDV := DateTimeToStr(RDV.Start) + ' ' + DateTimeToStr(RDV.End_)+ ' ' + RDV.Subject;
      If HachRDVExist.Values[TempRDV] <> 'oui' Then
        Save;
      //Display(True);  // Pour afficher le message
     End;
  End;
  FreeAndNil(Outlookapplication1);
End;
///////////////////////////////////////////////////////////////////////////

Quelqu'un pourrait m'éclairer sur le soucis.

Merci d'avance