Type Libraries
Type libraries are specified in Interface Definition Language (IDL) and created using the MIDL compiler. This is a deep subject that most of us don’t need to know very much about.
The MIDL compiler is invoked on the command line. Behind the scenes, it calls CreateTypeLib and does most of its work through subsequent calls on ICreateTypeLib and ICreateTypeInfo.
A client can inspect an existing type library by calling LoadTypeLib and making calls on ITypeLib and ITypeInfo, and navigating the deeply nested return values.