Piloter Lotus Notes avec Lazarus via OLE

Lazarus,le clone multi-plateforme de Delphi, permet de piloter sous Windows certaines applications via OLE, par exemple, les logiciels de la suite Microsoft Office. Pour illustrer ces possibilités, j’ai choisi un exemple d’envoi d’un courriel via Lotus Notes depuis un programme Lazarus.

Avant de voir d’aller plus loin, vous devez savoir que cet exemple a été développé avec Lazarus 0.9.27 SVN 19196 sous Windows 2000 Pro et le client Lotus Notes 7.02.

Le programme

Le programme ci-dessous représente le code généré par Lazarus après l’ajout d’un bouton sur la "Form" générée par défaut à la création d’une nouvelle application sous Lazarus.

unit Unit1;
{$mode objfpc}{$H+}
interface
 
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls;
 
type
 
{ TForm1 }
 
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
 
var
Form1: TForm1;
 
implementation
 
{ TForm1 }
 
uses
ComObj;
 
procedure TForm1.Button1Click(Sender: TObject);
var
NotesSession : Variant; // Objet OLE SessionNotes
NotesDatabase: Variant; // Objet Base Notes
NotesDocument: Variant; // Ojbet Document Notes d'une base Notes
NotesField   : Variant; // Objet Champ d'un document Notes
Serveur      : string;  // Nom du serveur Notes
Fichier      : string;  // Nom du fichier .nsf de la base Notes
AdresseEmail : string;  // Adresse email du destinataire
begin
Serveur := ''; // Serveur Notes = '' signifie serveur Local
Fichier := ''; // Fichier nsf de la base à ouvrir
AdresseEmail := 'destinataire@domaine.tld'; // Courriel du destinataire
NotesSession := CreateOLEObject('Notes.NotesSession'); // On crée une session Notes
NotesDatabase := NotesSession.GETDATABASE(Serveur, Fichier);
if not NotesDatabase.ISOPEN then
NotesDatabase.OPENMAIL; // Ouverture de la base Courrier
NotesDocument := NotesDatabase.CREATEDOCUMENT; // On crée un nouveau document Notes
NotesField := NotesDocument.APPENDITEMVALUE('Form', 'Memo'); // Champ Form du nouveau document indique qu'on ajoute un nouveau "mémo"
NotesField := NotesDocument.APPENDITEMVALUE('Subject', 'Test Automation'); // Sujet
NotesField := NotesDocument.APPENDITEMVALUE('SendTo', AdresseEmail); // Courriel destinataire
NotesField := NotesDocument.CREATERICHTEXTITEM('Body'); // On crée le body
NotesField.ADDNEWLINE(1); // Dans lequel on ajoute une ligne
NotesField.APPENDTEXT('TEST AUTOMATION LAZARUS'); // Avec du texte
NotesField.ADDNEWLINE(1);
NotesDocument.Send(1); // Envoi du message (le 1 signifie qu'on sauvegarde le message dans le courrier envoyé
NotesField := Unassigned; // "Destruction" des objets
NotesDocument := Unassigned;
NotesDatabase := Unassigned;
NotesSession := Unassigned;
end;
 
initialization
{$I unit1.lrs}
 
end.

Si vous le souhaitez, je vous ai préparé une archive à télécharger contenant le projet Lazarus complet. N’hésitez pas à m’indiquer vos remarques concernant ce morceau code.

zip Piloter Lotus Notes avec Lazarus via OLE  Projet.zip (155,2 KiB, 21 hits)

Autres articles qui pourraient vous intéresser :

Envoyer un commentaire

  

  

  


*

Vous pouvez utiliser ces balises HTML

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

CommentLuv badge
zanox Les affiliés recrutent les affiliés