///////////////////////////////////////////////////////////////////////////
// Démo HDAPI Delphi
///////////////////////////////////////////////////////////////////////////
// 08/11/2002
//
// Copyright (c) 2002, E. Ravon (Bat)
//
// Auteur : manu_bat_manu@yahoo.fr
//
// Démonstration minimale de l'utilisation d'HDAPI en Delphi
//
// Ce code est un exemple d'accès en Delphi aux données du logiciel HelloDOC
// Il utilise la bibliothèque HDAPI.
//
// Ce code a été développé pour HelloDOC Etendu 4.56.791
// Ainsi que pour la version d'HDAPI.DLL associée.
//
// Il a été testé avec HD 4.56 étendu
// Son fonctionnement n'est pas guaranti avec des versions plus récentes
d'HD
//
//
// HelloDOC est développé par Imagine Editions.
// Windows est une marque de Microsoft Corporation ////////////////////////////////////////////////////////////////////////////
Fichiers : HD_Delphi.zip (source +
exécutable)
Version exécutable (Project1.exe)

Project1.exe - Fenêtre principale
- Cet exemple permet d'exporter le contenu de l'Agenda du jour,
de façon identique à l'exemple en C.
- Il ne gère pas :
- La mémorisation en Base De Registre des paramètres
du cabinet.
Sources
La partie détaillée ici est l'import des fonctions
d'HDAPI. Hormis HDAPI.DLL et la documentation (hdapi.pdf) associée,
rien d'autre n'est indispensable. Le fichier hdapi.h peut être
utilisé comme référence, mais ne sert pas directement.
Toutes les fonctions exportées par HDAPI peuvent être
incluse dans un projet Delphi. Il est nécessaire de :
- donner le prototype de la fonction dans la partie interface
- donner son implémentation dans la partie implémentation.
Le code associé étant dans HDAPI.DLL, l'implémentation
se résumera à indiquer la DLL associée.
Ceci pour chaque fonction d'HDAPI. Cette tâche est réalisée
en language C par l'intérmédiaire d'HDAPI.H, en Delphi
se travail doit être refait (soit automatiquement à partir
d'hdapi.h, soit manuellement).
Plusieurs cas peuvent se présenter selon les fonctions d'HDAPI.
- Pour des fonctions simples ne retournant pas de valeur [en C :
void fonction(param); ] on utilisera une procédure
-
interface : procedure HDCloseSession();
stdcall; // stdcall
correspond à la méthode utilisée pour passer
les paramètres à la fonction/procédure
implementation : procedure HDCloseSession;
external 'HDAPI.dll';
- Pour des fonctions retournant une valeur [en C :
type fonction(param); ]
on utilisera une fonction
interface : function HDOpenSession(network
: boolean):boolean; stdcall;
implementation : function HDOpenSession;
external 'HDAPI.dll';
- Certaines fonctions nécessitent des types de données
particuliers définis dans HDAPI.DLL. Ces types se retrouvent
dans HDAPI.H, et doivent être redéfini, de façon
équivalente en Delphi.
HDNumberOfKey nécessite un argument
indiquant le fichier considéré. Cet argument est
un entier qui prend une valeur issue d'une énumération.
En C, cette énumération est définie par
enum {TYPE1,TYPE2,etc};
- En Delphi, cette énumération sera définie
par type HdFileType = ( TYPE1,etc)
- Les structures du C (
struct ), seront traduites
en packet record . Il est nécessaire d'utiliser
'packed', car l'alignement ne sera pas correct dans les autres
cas (en C celà se traduit par #pragma pack(1) )
|