The Microsoft® Interface Definition Language (MIDL) provides the set of features that extend the C programming language to support remote procedure calls. MIDL is not a variation of C; it is a strongly typed formal language through which you can control the data transmitted over the network. MIDL is designed to be similar to C so developers familiar with C can learn it quickly.
This topic discusses three language features: strong typing, directional attributes, and data transmission.
Strong Typing:
MIDL enforces strong typing by mandating the use of keywords that unambiguously define the size and type of data. The most visible effect of strong typing is that MIDL does not allow variables of the type void *.
Directional Attributes:
Directional attributes describe whether the data is transmitted from client to server, server to client, or both.
Data Transmission:
The transmit_as attribute lets you convert one data type to another data type for transmission over the network. The represent_as attribute lets you control the way data is presented to the application.