Bonjour, je vous décris brièvement mon problème pour vous demander s'il existe une solution (peut être très simple ?) pour régler ce problème :
Voici la description de l'interface que je dois utiliser
------------------------------------------------------
Syntax
[objSysPos = ]objSysPositions.Item({lngId | lngIndex})
Description
Returns a FRCSysPosition from the collection.
Parts
objSysPos as FRCSysPosition
objSysPositions as FRCSysPositions
lngId as Long
lngIndex as Long
------------------------------------------------------
La documentation est orientée VB, mais en C++, l'accès à cette propriété se fait via une méthode dont le prototype est
HRESULT get_Item (VARIANT Id,VARIANT Index, ISysPosition** Position);
Jusque là pas de souci, en insistant un peu, ce genre de fonction/methode fini toujours par faire ce qu'on lui demande (c à d me renvoyer un FRCSysPosition tout beau tout frais, accessible via le pointeur que je lui passe en paramètre 3), sauf que cette fois, la fonction me renvoie toujours le même HRESULT :
0x8002000E : Nombre de paramètres non valide.
En effet la documentation nous dit qu'on peut demander l'accès à un FRCSysPosition par l'ID ou par l'INDEX, mais certainement pas par les deux, d'où l'erreur qui m'est renvoyée.
D'où ma question :
Comment utiliser un VARIANT qui pourra être vu par l'objet COM comme un "non paramètre", une non information, en quelque sorte lui passer en paramètre 2 un VARIANT qui veut dire qu'on ne passe rien en paramètre 2 ?
Étant novice avec l'utilisation de VARIANT, je ne serais pas étonné que la réponse soit très simple, mais je ne la connais pas pour le moment ^^
Merci d'avance !
Partager