Use these types when passing information to and from COM Objects
The following types are valid in a type library. The Automation column lists types that can be used by an interface that has its Automation or DispInterface check marked
Delphi type | IDL type | Variant type | Automation | Description |
Smallint | short | VT_I2 | Yes | 2-byte signed int |
Integer | long | VT_I4 | Yes | 4-byte signed integer |
Single | single | VT_R4 | Yes | 4-byte real |
Double | double | VT_R8 | Yes | 8-byte real |
Currency | CURRENCY | VT_CY | Yes | currency |
TDateTime | DATE | VT_DATE | Yes | date |
WideString | BSTR | VT_BSTR | Yes | binary string |
IDispatch | IDispatch | VT_DISPATCH | Yes | pointer to IDispatch |
SCODE | SCODE | VT_ERROR | Yes | Ole Error Code |
WordBool | VARIANT BOOL | VT_BOOL | Yes | true=-1 false=0 |
OleVariant | VARIANT | VT_VARIANT | Yes | Ole Variant |
IUnknown | IUnknown | VT_UNKNOWN | Yes | pointer to IUnknown |
ShortInt | byte | VT_I1 | No | 1 byte signed integer |
Byte | unsigned char | VT_UI1 | Yes | 1 byte unsigned integer |
Word | unsigned short | VT_UI2 | No* | 2 byte unsigned integer |
UNIT | unsigned long | VT_UI4 | No* | 4 byte unsigned integer |
Int64 | __int64 | VT_I8 | No | 8 byte signed real |
LargeUInt | uint64 | VT_UI8 | No | 8 byte unsigned real |
SysInt | int | VT_INT | No* | system dependant integer |
SysUInt | unsigned int | VT_UINT | No* | system dependant unsigned integer |
HResult | HResult | VT_HRESULT | No | 32 bit error code |
Pointer | unsigned int | VT_VOID | No | untyped pointer |
SafeArray | SAFEARRAY | VT_SAFEARRAY | No | OLE Safe Array |
PChar | LPSTR | VT_LPSTR | No | a pointer to char |
PWideChar | LPWSTR | VT_LPSTR | No | a pointer to widechar |