Bonjour,

J'utilise l'interface IActiveScriptParse et sa méthode ParseScriptText pour exécuter des scripts javascript dans mon application (C++) windows et je rencontre un problème pour récupérer la valeur de retour.

Exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Évalue du javascript
// @param pJsExpression Du code javascript qui retourne une valeur
// exemple :
// (function () {
//    return [1, 2, 3];
// }());
HRESULT MaClass::EvalJS(const string & pJsExpression) {
	CString script(pJsExpression.c_str());
	VARIANT result
	EXCEPINFO ei;
	BSTR bstrScript = script.AllocSysString();
	
	VariantInit(&result);
	HRESULT hr = mParser->ParseScriptText(bstrScript, NULL, NULL, NULL, 0, 0, SCRIPTTEXT_ISEXPRESSION , &result, &ei);
	SysFreeString(bstrScript);
	
	// traitement du résultat 'result'
	// ...
	
	return hr;
}
Avant je ne récupérais que des valeurs de type simple (string, int, ...) et je m'en sortais bien mais maintenant le parse me retourne un tableau et c'est là que je n'y arrive plus.

Je pensais obtenir un variant de type VT_ARRAY mais à la place, j'obtiens un VT_DISPATCH et je ne sais absolument pas quoi en faire (récupérer les valeurs).

Quelqu'un aurait un idée pour éclairer ma lanterne?