base_types

Remarks

All data transmitted on the network during a remote procedure call must resolve to a base type or predefined type.

MIDL supports the following base types: int, boolean, byte, char, double, float, handle_t, hyper, long, short, small, and void *. The keywords signed and unsigned can be used to qualify integer and character types. MIDL also provides the predefined types error_status_t and wchar_t.

Note  The boolean base type is not compatible with the oleautomation attribute. Use VARIANT_BOOL in your Automation-compatible interfaces.

Base types can appear as type specifiers in const declarations, typedef declarations, general declarations, and as parameter type specifiers in function declarators.

The base and predefined types have the following default signs and sizes:

Base type Default sign Description
boolean unsigned 8-bit data item
byte - (not applicable) 8-bit data item
char unsigned 8-bit unsigned data item
double - 64-bit floating-point number
float - 32-bit floating-point number
handle_t - Primitive handle type
hyper signed 64-bit signed integer
int signed 32-bit signed integer
long signed 32-bit signed integer
short signed 16-bit signed integer
small signed 8-bit signed integer
void * - 32-bit context handle pointer type
wchar_t unsigned 16-bit unsigned data item

Any other types in the interface must be derived from these base or predefined types. The following restrictions apply to data types in interfaces:

See Also

byte, char, handle_t, long, /osf, short, small, wchar_t