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.

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:

    On 16-bit platforms, the type int cannot appear in remote functions without a size qualifier such as short, small, long or hyper.

    The type void * cannot appear in remote functions except when it is used to define a context handle.

    DCE IDL compilers do not recognize the keyword signed. Therefore, this feature is not available when you use the MIDL compiler /osf switch.

 

See Also

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