Lorsque qu'une interface COM est marqué comme automation, Delphi n'autorise que HRESULT comme type du paramètre de retour. Est-il possible de contourner cela ?
C'est quand même parfois bien plus pratique.
Lorsque qu'une interface COM est marqué comme automation, Delphi n'autorise que HRESULT comme type du paramètre de retour. Est-il possible de contourner cela ?
C'est quand même parfois bien plus pratique.
Bonjour,
Le type de retour "HResult" est lié à la convention d'appel SafeCall.
Les options d'environnement de l'EDI Delphi permettent dans l'onglet "Bibliothèque de type" de choisir à quel type d'interface est associée la convention d'appel "safecall". Dans le cas ou ce mappage est désactivé alors le retour est HResult via "StdCall".
"SafeCall" est utile pour intercepter les exceptions du serveur à partir du client :
http://www.techvanguards.com/com/tut...ng%20correctly
Ce n'est pas réellement un "paramètre de retour" mais plutôt une subtilité/facilité de Delphi pour intercepter les exceptions. Pour un vrai paramêtre de retour COM, il est nécessaire de passer par une interface ou un passage par "var".
Pascal
en clair, si je veux renvoyer un OleVariant avec une interface duale, quelle est la procédure à suivre ?
Partager