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 |