FAQ DelphiConsultez toutes les FAQ

Nombre d'auteurs : 123, nombre de questions : 920, dernière mise à jour : 8 novembre 2019  Ajouter une question

 

Cette FAQ a été réalisée à partir des questions fréquemment posées sur les forums Delphi et Delphi et bases de données de www.developpez.com et de l'expérience personnelle des auteurs.

Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose soient correctes. Les auteurs font le maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous souhaitez y apporter des corrections ou la compléter, contactez un responsable (lien au bas de cette page).

Nous espérons que cette FAQ saura répondre à vos attentes. Nous vous en souhaitons une bonne lecture.

L'équipe Delphi de Developpez.com.

Commentez


SommaireMicrosoft OfficeMicrosoft OutlookOutlook - Gestion de l'application (5)
précédent sommaire suivant
 

La méthode GetNameSpace renvoie un objet NameSpace du type spécifié. Un espace de nom est une structure hiérarchique permettant d'organiser des données.

L'objet NameSpace est la racine de tous les dossiers pour l'espace de nom donné.
La propriété Connect n'ouvre pas de session liée à un profil utilisateur.

Code delphi : Sélectionner tout
1
2
3
4
5
var  EspaceDeNom : NameSpace; 
begin 
  Outlook.Connect; 
  EspaceDeNom := Outlook.GetNamespace('MAPI'); 
  ...
Si vous souhaitez utiliser des variants :
Code delphi : Sélectionner tout
1
2
3
4
5
6
7
8
var Outlook : OLEVariant; 
begin 
  try 
    Outlook := GetActiveOleObject('Outlook.Application'); 
  except 
    Outlook := CreateOleObject('Outlook.Application'); 
  end; 
  ...
Vous devez ensuite ouvrir une session pour accéder aux informations de votre profil utilisateur.
À noter qu'il est préférable que la portée de la variable EspaceDeNom soit globale.

Mis à jour le 18 janvier 2014 Laurent Dardenne

La méthode Logon connecte l'utilisateur à MAPI, et ouvre une session MAPI.

Code delphi : Sélectionner tout
1
2
3
4
5
6
7
var  EspaceDeNom: NameSpace; 
begin 
  ... 
  EspaceDeNom := Outlook.GetNamespace('MAPI'); 
   // Ici on utilise le profil par défaut 
  EspaceDeNom.Logon('', '', False, False); 
  ...

Mis à jour le 18 janvier 2014 Laurent Dardenne

À la fermeture d'Outlook on doit au préalable déconnecter tous les objets actifs, fermer la session et enfin appeler la méthode Quit.

Code delphi : Sélectionner tout
1
2
3
4
5
begin 
  // Déconnectez tous les objets encore actif 
  // ListeDesContacts.Disconnect; 
  EspaceDeNom.Logoff; 
  Outlook.Quit;

Mis à jour le 18 janvier 2014 Laurent Dardenne

Outlook ne possède pas de propriété Visible comme Word ou Excel. Par contre l'affichage d'un dossier permet de rendre visible Outlook.
Dans l'exemple suivant on récupère un objet MapiFolder pointant sur le dossier 'Boîte de réception' puis on appelle la méthode Display qui rend visible Outlook.

Code delphi : Sélectionner tout
1
2
3
4
5
6
var DossierReception: MAPIFolder; 
  
begin 
  DossierReception:=EspaceDeNom.GetDefaultFolder(olFolderInbox); 
  DossierReception.Display; 
  ...

Mis à jour le 18 janvier 2014 Laurent Dardenne

Le composant TOutlookApplication implémente l'événement ItemSend, on peut donc être averti, par exemple, lors d'un envoi d'un mail et autoriser ou non son envoi si on le souhaite.

L'argument ASender est l'application Outlook.
L'argument Item peut être une des interfaces suivante :

  • AppointmentItem,
  • MeetingItem,
  • MailItem,
  • TaskItem.

Elles implémentent la méthode Send générant l'événement ItemSend.
L'argument Cancel annule l'envoi si on lui affecte la valeur True.
Il est possible de coder de cette manière :
Code delphi : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.OutlookItemSend(ASender: TObject; const Item: IDispatch; 
  var Cancel: WordBool); 
  
var S : String; 
    UnMessage : MailItem; 
begin 
 UnMessage:=Item as MailItem; 
 S:='Ajout d''un mail '+UnMessage.Subject; 
  
 ShowMessage(S); 
  
 //Cancel:=True; //Annule l'envoi de l'item courant. 
end;
Mais si l'argument Item ne supporte pas l'interface MailItem une exception est levée. Dans le cas où l'on souhaite manipuler plusieurs type d'interface la gestion des exceptions alourdira le code.

Dans ce cas on utilise la fonction Supports qui nous indique si l'interface Item supporte ou non l'interface que l'on souhaite interroger.
Code delphi : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure TForm1.OutlookItemSend(ASender: TObject; const Item: IDispatch; 
  var Cancel: WordBool); 
  
var S : String; 
    UnMessage : MailItem; 
    UneReunion : MeetingItem; 
  
begin 
  // Est-ce l'envoi d'un mail ? 
 If Supports(Item,MailItem,UnMessage) then 
  with UnMessage do 
   S:='Ajout d''un mail '+Subject; 
  
  // Est-ce l'envoi d'une demande de participation à une réunion ? 
 If Supports(Item,MeetingItem,UneReunion) then 
  with UneReunion do 
    S:='Ajout d''un contact '+SubJect+' '+SenderName; 
  
 ShowMessage(S); 
  
 //Cancel:=True; //Annule l'envoi de l'item courant. 
end;

Mis à jour le 18 janvier 2014 Laurent Dardenne

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2019 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.