title: What is this `Object[*]` type I get with COM interop?
body: <p>I do C# excel interop. I call macros from C#, and I expect arrays of objects. I'm able to get 2-dimensional arrays of objects from the macros which returns 2-dimensional arrays.</p>
  
  <p>However, an other (third party) macro is supposed to return a one-dimensional array. I can't get the <code>(object[])xlApp.Run(...)</code> working (it throws an exception), and the type info in the debugger says the result is of type <code>Object[*]</code>. The actual message from the exception is</p>
  
  <pre><code>Unable to cast object of type 'System.Object[*]' to type 'System.Object[]'.
  </code></pre>
  
  <p>What is this <code>Object[*]</code> type and how do I retrieve a one-dimensional array from this ?</p>
  
  <p><strong>EDIT</strong>: It occurred to me that this could mean a SAFEARRAY of VARIANTS. But then, two questions arise: why is everything ok with 2-dimensional arrays ? How do I convert a SAFEARRAY to a C# array ?</p>