Home

MIDL

Microsoft Interface Definition Language (MIDL) is a description language for defining interfaces, data types, and marshalling rules that enable communication between software components, especially across process or network boundaries. It is widely used with Windows technologies such as COM and DCE/RPC to generate language- and platform-neutral stubs and type libraries from a single specification.

Developers write MIDL in .idl files, and the MIDL compiler (midl.exe) processes them to produce C/C++ header

Syntax and features include definitions of interfaces and their methods, a range of data types (structures,

Output artifacts include the generated header files used by the client and server, the proxy/stub code for

See also: Interface Definition Language, DCE/RPC, COM, Type Library.

and
source
files,
as
well
as
proxy/stub
code
and,
for
COM
interfaces,
type
libraries
(.tlb).
The
generated
code
enables
marshalling
of
complex
types,
parameter
direction
(in,
out,
in/out),
and
versioned
interfaces.
enums,
unions,
arrays,
pointers),
and
attributes
to
control
memory
layout
and
marshalling
(such
as
size_is,
length_is,
in,
out).
Interfaces
are
often
annotated
with
GUIDs
(IIDs)
for
COM
or
RPC
interfaces,
and
types
may
be
declared
to
participate
in
type
libraries.
RPC,
and
type
libraries
used
by
COM
clients.
The
MIDL
compiler
is
part
of
the
Windows
SDK
and
is
primarily
targeted
at
Windows
development,
though
the
underlying
concepts
mirror
interface
definition
languages
used
in
other
RPC
ecosystems.