Variant data type used in COM communications (e.g. scripting). Parameters of this type, can hold object in any simple data type (integer, boolean, string etc) or an object (pointer to interface).

Normally VARIANT used for parameters that:

  • INPUT - can be left empty (input) or accept input of object in different types
  • OUTPUT - that can return result values of different types

Actual data type corresponding to VARIANT depends on language in which you consume API:

Language Data Type
C++ VARIANT → CComVariant, _variant_t
JavaScript Any
VisualBasic Script Any