devxlogo

Passing Variants to Methods

Passing Variants to Methods

Question:
I’m trying to call a method on my ActiveX control from VBScript. The method has one input argument (a long) and three output arguments (doubles). I Dim variables for each argument and initialize them with values of the appropriate types. At runtime, I get a “Type Mismatch” error on the call to the ActiveX method. Since all variables in VBScript are of type Variant, I expected that VBScript would figure out the argument types from the method signature.What am I doing wrong here?

Answer:
Before you pass them to the method on the control, you should probably use theCLng and CDbl functions to convert the variables manually. While all the variablesare Variants, your control probably is not expecting a variant. The conversion issometimes flaky like this, especially when dealing with controls as in your case.

This answer was received from the sender:VBScript doesn’t appear to support the notion of a variable reference. Without support for references (or something similar),I don’t see how VBScript could support output arguments tomethods.

I worked around the problem by creating a new method witha single input argument, and the method sets properties thatcorrespond to the output arguments.

devx-admin

Share the Post: