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 !