title: Decyphering undocumented COM interfaces
body: <p>I have a pointer to a COM object that implements an undocumented interface.  I would really, <em>really</em> like to be able to use said interface.  All I have is the IID though.  Master software analyst Geoff Chappell has documented a host of these undocumented COM interfaces on his site; see <a href="http://www.geoffchappell.com/studies/windows/shell/comctl32/controls/listview/interfaces/ilistview/index.htm" rel="nofollow noreferrer">IListView</a> for example.  Somehow he even managed to get the function names and signatures.  How is something like that even possible?  Are they guesses?</p>
  
  <p>Can someone point me in the right direction as to how I would go about something like this?  I know the risks of using anything undocumented.</p>
  
  <p>To elaborate, the object I'm interested in is ExplorerFrame.dll's notoriously undocumented ItemsView.  By setting an API hook on CoCreateInstance, I can see that the object is created with a certain undocumented IID as its main interface.  I'm assuming this is the interface that through which the control is manipulated, hence my interest in figuring out its members.</p>