What is meant by IDL? I have googled it, and found out it stands for Interface Definition Language, which is used for interface definition for components. But, in practice,
IDL is vital in 2 cases. 1. To create proxy/stub dlls for exe servers. 2. To create Type library for automation servers.
There is very good article for basics of IDL at link
To study IDL, it is better to read compilers's own idl header files which are given include subdirectory of VC++ package.