MIDL Predefined and Base Types

MIDL supports the following base and predefined types.

Data type Description Default sign
boolean 8 bits. Not compatible with oleautomation interfaces; use VARIANT_BOOL instead. Unsigned
byte 8 bits. (not applicable)
char 8 bits. Unsigned
double 64-bit floating point number. (not applicable)
error_status_t 32-bit unsigned integer for returning status values for error handling. Unsigned
float 32-bit floating point number. (not applicable)
handle_t Primitive handle type for binding. (not applicable)
hyper 64-bit integer. Signed
int 32-bit integer. On 16-bit platforms, cannot appear in remote functions without a size qualifier such as short, small, long or hyper. Signed
__int8 8-bit integer. Equivalent to small. Signed
__int16 16-bit integer. Equivalent to short. Signed
__int32 32-bit integer. Equivalent to long. Signed
__int3264 An integer that is 32-bit on 32-bit platforms, and is 64-bit on 64-bit platforms. Signed
__int64 64-bit integer. Equivalent to hyper. Signed
long 32-bit integer. Signed
short 16-bt integer. Signed
small 8-bit integer. Signed
void Indicates that the procedure does not return a value. (not applicable)
void * 32-bit pointer for context handles only. (not applicable)
wchar_t 16-bit predefined type for wide characters. Unsigned