title: Marshal.GetActiveObject() throws MK_E_UNAVAILABLE exception in C#
body: <p>The following vbscript code works prefectly fine:</p>
  
  <pre><code>Dim App 
  Set App = GetObject("","QuickTest.Application")
  App.Quit
  </code></pre>
  
  <p>But when I translate it into C# code as below:</p>
  
  <pre><code>class Program
  {
      [STAThread]
      static void Main(string[] args)
      {
          object qtApp = Marshal.GetActiveObject("QuickTest.Application");
          (qtApp as QuickTest.Application).Quit();
      }
  }
  </code></pre>
  
  <p>I get the exception:</p>
  
  <p>An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in mscorlib.dll</p>
  
  <p>Additional information:  (Exception from HRESULT: 0x800401E3 (MK_E_UNAVAILABLE))</p>
  
  <p>I don't think the problem is related to ROT, because the vbscript code works. So what is wrong with the C# code?</p>