[Résolu] Problème d'interfaçage de Windev 11 avec un ActiveX

Posté par Murphy le 20/3/2007 21:34:31
Bonjour à tous !
Pour ce premier post, je vous soumets un problème assez ennuyeux, pour lequel je n'ai pas trouvé la solution, malgré de nombreux essais infructueux, même après l'avoir décrit sur le forum de PCSoft :

Je dois utiliser dans une application Windev un lecteur d'empreinte digitale de chez Microsoft (FingerPrint Reader).
Pour cela j'utilise un ActiveX fournit dans un SDK (de chez Griaule) qui gère l'ensemble des opérations d'acquisition / comparaison d'empreintes. Le SDK est fournit avec des exemples en VB, VC++, Delphi et même en VBA sous Excel, que j'ai testés et qui fonctionnent très bien.

Sous Windev, j'ai implémenté l'ActiveX, et l'ensemble des méthodes fonctionnent.
Les fonctions CallBack de détection du doigt (FigerDown / FingerUp) fonctionnent aussi...
La seule chose qui ne fonctionne pas est la fonction CallBack qui retourne l'image de l'empreinte digitale...
En voici la syntaxe :
PROCEDURE Aquisition_Image(Param_ID_Sensor, Param_Largeur, Param_Hauteur, Param_Image)

Quand on pose le doigt sur le lecteur, la fonction est appelée, mais génère le message d'erreur suivant :

"Le passage du paramètre 4 a provoqué une erreur."
"Types incompatibles durant une affectation."
"- Code erreur : 1053"

Ce 4eme parametre est celui de l'image elle-meme, en format brut, c'est à dire une suite d'octets représentant l'image (en fait 355x390 octets, soit 138 450 octets)

Si je supprime ce 4eme paramètre de la procédure, je n'ai plus de message d'erreur et les 3 premiers parametres contiennent les bonnes valeurs... sauf que là il me manque l'image de l'empreinte !!!

Sur un autre forum de discussion, j'ai trouvé quelqu'un qui dit que dans l'appel d'une DLL avec Windev, on ne peut pas passer une zone de plus de 64Ko... voir ICI
Or, il me semblait que les paramètres étaient passés par adresse (pointeur) et pas par valeur...

Pourriez-vous m'éclairer sur ce mystère ???
Je vous remercie d'avance... déjà pour votre patience (d'avoir lu ce post complètement), et puis peut-être pour l'aide et éventuellement la solution que vous pourrez me donner !

A bientot - Murphy

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=18&topic_id=5008&post_id=20660