Generating type libraries
From Visual Basic Shell Programming, by J.P. Hamilton, published by O'Reilly and Associates.
When you create a component in Visual Basic, the type library is automatically compiled and stored in the component. In other environments, type libraries are usually compiled using the Microsoft IDL (Interface Definition Language) (or MIDL) compiler. Unfortunately, MIDL does not ship with Visual Basic; it ships with Visual C++. There is a utility that ships with VB, however, that can be used to generate type libraries. This utility is called MKTYPLIB. The difference between the two is that MKTYPLIB is an ODL (Object Definition Language) compiler. ODL is a subset of IDL, so its feature set is limited in comparison to MIDL. Generally, you want to use MIDL for everything, but some circumstances are different. If you are going to be redefining system interfaces so that they are VB-friendly, MIDL will complain that several of these interfaces have already been defined and abort the creation of the type library. MKTYPLIB does not care. Therefore, you should use it instead of MIDL in those circumstances.
This was first published in September 2000