title: Difference between AxMSHFlexGrid and MSHFlexGrid
body: <p>I am performing a bit of maintenance on an ancient application written years and years ago in VB6. At some point it was migrated to VB.NET with virtually no changes. I don't know how or why they managed that.</p>
  
  <p>The project in source control contains references to <code>Interop.MSHierarchicalFlexGridLib</code> and <code>AXInterop.MSHierarchicalFlexGridLib</code> with the warnings "<code>&lt;The system cannot find the reference specified&gt;</code>". The project contained over 102 errors (which, if you are new to Visual Studio 2008, is the maximum number of errors displayed in the Error List).</p>
  
  <p>I removed these two broken references and added a reference to the Microsoft Hierarchical Flex Grid 6.0 COM control. This corrected all of the references to <code>MSHierarchicalFlexGridLib.MSHFlexGrid</code>, bringing the number of errors down to 64. The remaining errors are the result of unresolved references to the <code>AxMSHierarchicalFlexGridLib</code> namespace, almost exclusively in Designer code. At first I thought this might just be some <code>Import</code> trickery (renaming the namespace), but the name of the control is also prefixed with "Ax" (<code>AxMSHierarchicalFlexGridLib.AxMSHFlexGrid</code>). I would guess that "Ax" simply stands for "Active X" and refers to the exact same control, but before I go and change 60+ references in largely Designer code, I'd like to learn a bit more. My Google-fu has so far failed me.</p>
  
  <p><strong>Questions:</strong></p>
  
  <ul>
  <li><p>Is <code>AxMSHierarchicalFlexGridLib.AxMSHFlexGrid</code> the same as
  <code>MSHierarchicalFlexGridLib.MSHFlexGrid</code>?</p></li>
  <li><p>If it is the same, why did the Designer change the name, and is it safe to simply find-replace all references to the renamed namespace? (Also, where did the second reference to <code>AXInterop.MSHierarchicalFlexGridLib</code> come from?)</p></li>
  <li><p>If it's not the same, what's the name of the COM control I'm missing?</p></li>
  </ul>
  
  <p><strong>Another bonus question:</strong></p>
  
  <p>The project in source control seems to contain references to the interops only, not to the COM objects. I can believe that someone who didn't know what they were doing managed to stumble their way into something that "worked", but just in case... is there any way that Visual Studio's many automated wizards, tools, etc, may have been involved? I want to ensure that this scenario is not repeated.</p>
  
  <p>Thanks</p>
  
  <p>P.S. I would just rewrite this project from scratch, but the frmMain code file (I daren't say "Class") alone contains nearly 17,000 lines, so the undertaking would require more hours than I'm permitted to spend.</p>