It supersedes Dynamic Data Exchange (DDE), an older mechanism for applications to control one another.
Development of automation controllers without knowledge of the target application's object model is "difficult to impossible".
For instance, the .NET Framework SDK includes tools that can generate a proxy .NET DLL to access Automation objects using both early binding (with information about interfaces extracted from a type library) and late binding (via IDispatch, mapped to the .NET Reflection API), with the built-in .NET-to-COM bridge called COM Interop.
Another Java based j-Interop[14] library which enables interoperability with COM components without JNI, using DCOM wire protocol (MSRPC) and works on non-Windows platforms also.
Object models are presented to automation controllers as type libraries, with their interfaces described in ODL.