J'implémente une interface COM pour une application existante écrite en C++. L'interface COM est utilisée pour automatiser l'application à partir de VBScript. L'une des méthodes que je veux appeler via l'interface COM a un paramètre qui, en C++, a un type enum
. J'ai défini un type enum
correspondant dans le fichier IDL, et oleview
montre les valeurs sont enregistrées:Utilisation d'une énumération d'une bibliothèque de types dans VBScript
// Copied from type library viewer
typedef enum
{
MyValueA = 0,
MyValueB = 1,
MyValueC = 2
} MyEnum;
Cependant, quand je passe une de ces valeurs dans VBScript, la valeur reçue par la mise en œuvre du RPC est toujours 0. Je suppose que je n'utilise pas la bonne syntaxe VBScript. En passant une valeur entière travaille directement et passer quelque chose au hasard (comme ghfitgr
) conduit également à 0, ce qui est probablement ce qui se passe à MyValueB
, etc.
J'ai trouvé une affirmation selon laquelle enum.member
doit être utilisé, ce qui serait MyEnum.MyValue
, mais cela entraîne une erreur de syntaxe (object required: MyEnum
). Qu'est-ce que je fais mal?
Je vous recommande de lire http://goo.gl/88n6F –