In the context of computer programming, a variant is an OLE Automation type used to make up for the lack of method overloading in COM. It is a data structure that contains a union of these data types: unsigned char, short, long, float, double, VARIANT_BOOL, SCORE, CY, DATE, BSTR, IUnknown *, IDispatch *, SAFEARRAY *, VARIANT *, and void *.