OK, alors commençons par le commencement:
far et pascal sont obsolètes, remplacés par des #defines sur rien du tout.
Ta fonction devient donc:
Structure_Resultat Calcul(BSTR *Chaine_donnees)
Ensuite:
LPSTR est un bète typedef sur char*. Mais le cast d'une BSTR en LPSTR est très suspect pour moi, car une BSTR est supposée (normalement) être une chaîne 16 bits. Néanmoins, on peut aussi y mettre des données arbitraires.
Ensuite, le type BSTR, plus important: Une BSTR est une chaîne de caractère sous le format supporté par VB, et utilisé pour les échanges entre objets COM.
On crée une BSTR avec la fonction SysAllocString() et ses soeurs.
Le type BSTR lui-même est un typedef sur wchar_t *, et il pointe directement sur les données de la chaîne. Généralement, on peut passer une BSTR à une fonction qui demande une chaîne unicode, mais pas l'inverse.
Ici, la BSTR en question semble être utilisée pour stocker de simples caractères non-unicodes, voire des données arbitraires n'ayant rien à voir avec des caractères (malgré leur type char, il est possible que ce soient de simples nombres).
Partager