Bonjour,

J'utilise une méthode setAttribute de MSXML qui prend un _bstr_t et un const _variant_t en arguments.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
HRESULT setAttribute (
        _bstr_t name,
        const _variant_t & value );
Par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
pPlayitemButton->setAttribute("x-pos","45%");
ajoute un attribut x-pos dont la valeur est 45% à l'élément pointé par pPlayitemButton1.

je cherche à ne plus mettre directement une chaîne de caractères dans le second argument. J'ai essayé plusieurs choses. Ces deux là compilent mais bug lors de l'exécution :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
CString strx;
strx.Format("45%");
_variant_t vt;
vt.SetString(strx);
pPlayitemButton->setAttribute("x-pos",vt);
 
ou
 
CString strx;
strx.Format("45%");
pPlayitemButton->setAttribute("x-pos",_variant_t(strx));
Mais bien sûr ceci marche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
const char * c = "10%";
pPlayitemButton->setAttribute("x-pos",c);
Que puis-je faire pour utiliser correctement ce _variant_t ou pour convertir un std::string ou un CString en _variant_t ?

Merci,

Sly