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.

See also  Professionalism Starts in Your Inbox: Keys to Presenting Your Best Self in Email
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist