Platform SDK: COM

Data Type Conversions

Each programming language defines certain types and containers for data. Most of these data types, especially the primitives, map easily to other programming languages. Some data types, however, have no equivalent in another language and cannot be converted.

For specific information about data types not recognized by your programming language, see the translation topics for C++, Visual Basic, or Java.

The following table lists conversions between programming languages for common data types. The Contains column includes the size and type of each data type.

C++ Visual Basic Java Contains
signed char Not supported byte 1-byte signed integer
(VT_I1, [T])
unsigned char Byte Not supported 1-byte unsigned integer
(VT_UI1, [V][T][P][S])
unsigned char Character char 2-byte Unicode character
(VT_UI2, [T][P])
short Integer short 2-byte signed integer
(VT_I2, [V][T][P][S])
unsigned short Not supported Not supported 2-byte unsigned integer
(VT_UI2, [T][P])
int Long int 4-byte signed integer
(VT_I4, [V][T][P][S])
unsigned int Not supported Not supported 4-byte unsigned integer
(VT_UI4, [T][P])
__int64 Not supported long 8-byte signed integer
(VT_I8, [T][P])
unsigned __int64 Not supported Not supported 8-byte unsigned integer
(VT_UI8, [T][P])
float Single float 4-byte floating point number
(VT_R4, [V][T][P][S])
double Double double 8-byte floating point number
(VT_R8, [V][T][P][S])
BSTR String java.lang.String Automation string
(VT_BSTR, [V][T][P][S])
BOOL Boolean boolean Boolean
(VT_BOOL, [V][T][P][S])
VARIANT Variant com.ms.com.Variant VARIANT FAR*
(VT_VARIANT, [V][T][P][S])
IUnknown object com.ms.com.IUnknown IDispatch interface pointer
(VT_DISPATCH, [V][T][P][S])
DATE Date com.ms.com.Variant Date
(VT_DATE, [V][T][P][S])
CURRENCY Currency com.ms.com.Variant Currency
(VT_CY, [V][T][P][S] or VT_DECIMAL, [V][T][S])

The Contains column also lists each data type's VARTYPE value and allowed usage. VARTYPE is an enumeration that lists the Automation variant types. The characters in square brackets ([]) after each VARTYPE value describe the allowed usage of that VARTYPE, as follows:

For more information about VARTYPE values and how to use them, see the topic IDispatch Data Types and Structures in the Platform SDK documentation.

The data type conversions between scripting languages are simpler than those for programming languages. JScript and JavaScript both support the same data types, and Visual Basic supports only a single data type, Variant. Thus, all JScript and JavaScript data types become Variant types when converted to VBScript. When you convert VBScript to JScript or JavaScript, the Variant types become numbers, strings, Boolean values, and so on.