title: VB6 reference confusion
body: <p>I am a .NET Developer.  I have a good understanding of how references work in .NET i.e. if you want to use AssemblyA.ClassA.MethodA in AssemblyB.classB.MethodB then you add a reference in Assembly A to Assembly B.</p>
  
  <p>I am looking at a VB6 app and I get an error when I open it i.e. Errors during load.  Refer to frmMain.log.  I open frmMain.log and it says: "2142: Class MSComDlg.CommonDialog of control CommonDialog1 was not a loaded control class.".  I have used WinMerge to compare the source code in the faulty project to a previous version of the project (which does not have the problem).  The only difference is that the faulty project contains the following line in the client.vdp file:</p>
  
  <pre><code>Reference=*\G{08DBEFD7-6A19-4DCE-A533-5BDBB93683C8}#1.2#0#..\..\..\..\..\Windows\SysWOW64\Comdlg32.oca#Microsoft Common Dialog Control 6.0 (SP3)
  </code></pre>
  
  <p>Removing this line seems to resolve the problem.  Why does this resolve the problem?</p>
  
  <hr>
  
  <p>I have used Winmerge to compare yesterdays revision of the project (which does not have the problem) to todays revision of the project (which does have the problem). The only difference is the reference in the original post in the VBP file.</p>