Por que é possível criar uma nova instância de uma interface COM?

Como não tenho muita experiência em COM nem coclasses, não entendo muito bem por que posso usar o métodonew operador com uma interface. Do ponto de vista independente de linguagem / estrutura, é confuso por que isso compila e executa corretamente:

using Microsoft.Office.Interop.Excel;

public class ExcelProgram
{
    static void Main(string[] args)
    {
        Application excel = new Application();
    }
}

InspecionandoApplication no Visual Studio 2010 me mostra:

using System.Runtime.InteropServices;

namespace Microsoft.Office.Interop.Excel
{
    // Summary:
    //     Represents the entire Microsoft Excel application.
    [Guid("000208D5-0000-0000-C000-000000000046")]
    [CoClass(typeof(ApplicationClass))]
    public interface Application : _Application, AppEvents_Event
    {
    }
}

O que está acontecendo nos bastidores?

questionAnswers(1)

yourAnswerToTheQuestion