Simple Types

All simple types are represented by a single format character indicating the type by its name. This includes all the numerical types and some other special IDL types. The list is as follows:

FC_BYTE,                    // 0x01
FC_CHAR,                    // 0x02
FC_SMALL,                   // 0x03
FC_USMALL,                  // 0x04
FC_WCHAR,                   // 0x05
FC_SHORT,                   // 0x06
FC_USHORT,                  // 0x07
FC_LONG,                    // 0x08
FC_ULONG,                   // 0x09
FC_FLOAT,                   // 0x0a
FC_HYPER,                   // 0x0b
FC_DOUBLE,                  // 0x0c
FC_ENUM16,                  // 0x0d
FC_ENUM32,                  // 0x0e
FC_ERROR_STATUS_T,          // 0x10
FC_INT3264,                 // 0xb8
FC_UINT3264,                // 0xb9

The SMALL, WCHAR, HYPER, ERROR_STATUS_T, __INT3264 types are MIDL intrinsics with special RPC interpretations. The INT and __INT32 types map to FC_LONG, unsigned INT and unsigned __INT32 map to FC_ULONG, __INT64 and unsigned __INT64 map to FC_HYPER.

The __INT128, FLOAT128, and FLOAT80 types are not supported.