title: What is the different purpose of .H header file and a IDL file?
body: <p>I am studying COM so there're some basic questions puzzling me...</p>
  
  <p>I know that IDL file is used to describe the method definitions (or the so called 'contract' between software modules), and the .H header files contains something like a method prototype, which looks similar to what the IDL is meant for. So,  why are these two things coexist? Isn't one enough?</p>
  
  <p>Many thanks.</p>