The following low-level functions convert variant data types. Higher-level variant manipulation functions (such as VariantChangeType) use these functions, but they can also be called directly.
Functions to convert to type char
| From type | Function |
|---|---|
| unsigned char | VarI1FromUI1 |
| unsigned short | VarI1FromUI2 |
| unsigned long | VarI1FromUI4 |
| ULONG64 | VarI1FromUI8 |
| short | VarI1FromI2 |
| long | VarI1FromI4 |
| LONG64 | VarI1FromI8 |
| float | VarI1FromR4 |
| double | VarI1FromR8 |
| CURRENCY | VarI1FromCy |
| DECIMAL | VarI1FromDec |
| DATE | VarI1FromDate |
| OLECHAR * | VarI1FromStr |
| IDispatch * | VarI1FromDisp |
| BOOL | VarI1FromBool |
Functions to convert to type unsigned char
| From type | Function |
|---|---|
| unsigned short | VarUI1FromUI2 |
| unsigned long | VarUI1FromUI4 |
| ULONG64 | VarI1FromUI8 |
| char | VarUI1FromI1 |
| short | VarUI1FromI2 |
| long | VarUI1FromI4 |
| LONG64 | VarUI1FromI8 |
| float | VarUI1FromR4 |
| double | VarUI1FromR8 |
| CURRENCY | VarUI1FromCy |
| DECIMAL | VarUI1FromDec |
| DATE | VarUI1FromDate |
| OLECHAR * | VarUI1FromStr |
| IDispatch * | VarUI1FromDisp |
| BOOL | VarUI1FromBool |
Functions to convert to type short
| From type | Function |
|---|---|
| unsigned char | VarI2FromUI1 |
| unsigned short | VarI2FromUI2 |
| unsigned long | VarI2FromUI4 |
| ULONG64 | VarI2FromUI8 |
| char | VarI2FromI1 |
| long | VarI2FromI4 |
| LONG64 | VarI2FromI8 |
| float | VarI2FromR4 |
| double | VarI2FromR8 |
| CURRENCY | VarI2FromCy |
| DECIMAL | VarI2FromDec |
| DATE | VarI2FromDate |
| OLECHAR * | VarI2FromStr |
| IDispatch * | VarI2FromDisp |
| BOOL | VarI2FromBool |
Functions to convert to type unsigned short
| From type | Function |
|---|---|
| char | VarUI2FromI1 |
| short | VarUI2FromI2 |
| long | VarUI2FromI4 |
| LONG64 | VarUI2FromI8 |
| unsigned char | VarUI2FromUI1 |
| unsigned long | VarUI2FromUI4 |
| LONG64 | VarUI2FromUI8 |
| float | VarUI2FromR4 |
| double | VarUI2FromR8 |
| CURRENCY | VarUI2FromCy |
| DECIMAL | VarUI2FromDec |
| DATE | VarUI2FromDate |
| OLECHAR * | VarUI2FromStr |
| IDispatch * | VarUI2FromDisp |
| BOOL | VarUI2FromBool |
Functions to convert to type long
| From type | Function |
|---|---|
| unsigned short | VarI4FromUI2 |
| unsigned long | VarI4FromUI4 |
| ULONG64 | VarI4FromUI8 |
| char | VarI4FromI1 |
| unsigned char | VarI4FromUI1 |
| short | VarI4FromI2 |
| LONG64 | VarI4FromI8 |
| float | VarI4FromR4 |
| double | VarI4FromR8 |
| CURRENCY | VarI4FromCy |
| DECIMAL | VarI4FromDec |
| DATE | VarI4FromDate |
| OLECHAR * | VarI4FromStr |
| IDispatch * | VarI4FromDisp |
| BOOL | VarI4FromBool |
| INT | VarI4FromInt |
Functions to convert to type unsigned long
| From type | Function |
|---|---|
| unsigned short | VarUI4FromUI2 |
| char | VarUI4FromI1 |
| short | VarUI4FromI2 |
| unsigned char | VarUI4FromUI1 |
| ULONG64 | VarUI4FromUI8 |
| long | VarUI4FromI4 |
| LONG64 | VarUI4FromI8 |
| float | VarUI4FromR4 |
| double | VarUI4FromR8 |
| CURRENCY | VarUI4FromCy |
| DECIMAL | VarUI4FromDec |
| DATE | VarUI4FromDate |
| OLECHAR * | VarUI4FromStr |
| IDispatch * | VarUI4FromDisp |
| BOOL | VarUI4FromBool |
Functions to convert to type float
| From type | Function |
|---|---|
| unsigned short | VarR4FromUI2 |
| unsigned long | VarR4FromUI4 |
| ULONG64 | VarR4FromUI8 |
| char | VarR4FromI1 |
| unsigned char | VarR4FromUI1 |
| short | VarR4FromI2 |
| long | VarR4FromI4 |
| LONG64 | VarR4FromI8 |
| double | VarR4FromR8 |
| CURRENCY | VarR4FromCy |
| DECIMAL | VarR4FromDec |
| DATE | VarR4FromDate |
| OLECHAR * | VarR4FromStr |
| IDispatch * | VarR4FromDisp |
| BOOL | VarR4FromBool |
Functions to convert to type double
| From type | Function |
|---|---|
| unsigned short | VarR8FromUI2 |
| unsigned long | VarR8FromUI4 |
| ULONG64 | VarR8FromUI8 |
| char | VarR8FromI1 |
| unsigned char | VarR8FromUI1 |
| short | VarR8FromI2 |
| long | VarR8FromI4 |
| LONG64 | VarR8FromI8 |
| float | VarR8FromR4 |
| CURRENCY | VarR8FromCy |
| DECIMAL | VarR8FromDec |
| DATE | VarR8FromDate |
| OLECHAR * | VarR8FromStr |
| IDispatch * | VarR8FromDisp |
| BOOL | VarR8FromBool |
Functions to convert to type DATE
| From type | Function |
|---|---|
| unsigned short | VarDateFromUI2 |
| unsigned long | VarDateFromUI4 |
| ULONG64 | VarDateFromUI8 |
| char | VarDateFromI1 |
| unsigned char | VarDateFromUI1 |
| short | VarDateFromI2 |
| long | VarDateFromI4 |
| LONG64 | VarDateFromI8 |
| float | VarDateFromR4 |
| double | VarDateFromR8 |
| CURRENCY | VarDateFromCy |
| DECIMAL | VarDateFromDec |
| OLECHAR * | VarDateFromStr |
| IDispatch * | VarDateFromDisp |
| BOOL | VarDateFromBool |
Functions to convert to type CURRENCY
| From type | Function |
|---|---|
| unsigned short | VarCyFromUI2 |
| unsigned long | VarCyFromUI4 |
| ULONG64 | VarCyFromUI8 |
| char | VarCyFromI1 |
| unsigned char | VarCyFromUI1 |
| short | VarCyFromI2 |
| long | VarCyFromI4 |
| LONG64 | VarCyFromI8 |
| float | VarCyFromR4 |
| double | VarCyFromR8 |
| DECIMAL | VarCyFromDec |
| DATE | VarCyFromDate |
| OLECHAR * | VarCyFromStr |
| IDispatch * | VarCyFromDisp |
| BOOL | VarCyFromBool |
Functions to convert to type BSTR
| From type | Function |
|---|---|
| unsigned short | VarBstrFromUI2 |
| unsigned long | VarBstrFromUI4 |
| ULONG64 | VarBstrFromUI8 |
| char | VarBstrFromI1 |
| unsigned char | VarBstrFromUI1 |
| short | VarBstrFromI2 |
| long | VarBstrFromI4 |
| LONG64 | VarBstrFromI8 |
| float | VarBstrFromR4 |
| double | VarBstrFromR8 |
| CURRENCY | VarBstrFromCy |
| DECIMAL | VarBstrFromDec |
| DATE | VarBstrFromDate |
| IDispatch * | VarBstrFromDisp |
| BOOL | VarBstrFromBool |
Functions to convert to type BOOL
| From type | Function |
|---|---|
| unsigned short | VarBoolFromUI2 |
| unsigned long | VarBoolFromUI4 |
| ULONG64 | VarBoolFromUI8 |
| char | VarBoolFromI1 |
| unsigned char | VarBoolFromUI1 |
| short | VarBoolFromI2 |
| long | VarBoolFromI4 |
| LONG64 | VarBoolFromI8 |
| float | VarBoolFromR4 |
| double | VarBoolFromR8 |
| CURRENCY | VarBoolFromCy |
| DECIMAL | VarBoolFromDec |
| DATE | VarBoolFromDate |
| OLECHAR * | VarBoolFromStr |
| IDispatch * | VarBoolFromDisp |
Functions to convert to type DECIMAL
| From type | Function |
|---|---|
| unsigned short | VarDecFromUI2 |
| unsigned long | VarDecFromUI4 |
| ULONG64 | VarDecFromUI8 |
| char | VarDecFromI1 |
| usigned char | VarDecFromUI1 |
| short | VarDecFromI2 |
| long | VarDecFromI4 |
| LONG64 | VarDecFromI8 |
| float | VarDecFromR4 |
| double | VarDecFromR8 |
| CURRENCY | VarDecFromCy |
| DATE | VarDecFromDate |
| OLECHAR * | VarDecFromStr |
| IDispatch * | VarDecFromDisp |
| BOOL | VarDecFromBool |
Note
If these functions are passed NULL pointers, there will be an access violation and the program will crash. It is your responsibility to protect these functions against NULL pointers.
Related topics