Bonjour,
ça fait une éternité que je n'ai plus touché aux joyeusetés de microsoft (MFC, ATL, etc...), et je n'y comprend plus rien
Nous avons récupéré un activeX, et nous devons y ajouter une gestion des erreurs. Pour ce faire nous aimerions que nos méthodes renvoient un code d'erreur (long). Mais on ne sait pas comment faire.
Donc voilà, nouc avons des fonctions "wrappées" dans le fichier idl, qui ressemble à ceci:
Ces fonctions sont implémentées dans un fichier cpp à côté.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 [id(IECISA_ACTIVE_X_ID_DELCERTSERIAL), helpstring( "method delCertBySerial")] void delCertBySerial([in]BSTR SerialNumber); [id(IECISA_ACTIVE_X_ID_DELCERTUSAGE), helpstring( "method delCertByUsage")] void delCertByUsage([in]BSTR strKeyUsage); [id(IECISA_ACTIVE_X_ID_GETTOKENSERIAL), helpstring( "method GetTokenSerialNumber")] void GetTokenSerialNumber([out]BSTR SerialNumber); // etc...
Jusqu'ici, tout va bien. Ca fonctionne et tout.
Maintenant, nous voudrions que ces fonctions nous retournent un long.
Prenons l'exemple de la fonction GetTokenSerialNumber. Nous avons essayé ceci:et de modifier le code cpp de cette fonction pour qu'elle retourne un long. Mais aprés ces modifications, le code compile, mais:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 [id(IECISA_ACTIVE_X_ID_GETTOKENSERIAL), helpstring( "method GetTokenSerialNumber")] long GetTokenSerialNumber([out]BSTR SerialNumber);
1/ les points d'arrêts dans notre fonction ne fonctionnent plus (le débuggeur ne s'y arête pas).
2/ notre fonction ne retourne rien.
Savez-vous ce qu'il se passe? Auriez-vous des conseils pour m'aider à m'en sortir.
ps: j'ai bien relu en détail le tuto de farscape pour créer un activeX avec la MFC, mais le problème de retour de valeur n'y est pas abordé.
Partager