Hi, I'm trying to create a Visio instance from within C++/CLI program using the Visio Interop The interop provides me two classes: 'ApplicationClass' and 'Application', ApplicationClass being an actual ref class and Application merely an interface. I wrote the following code and tried to compile it: Visio::Application^ app = gcnew Visio::Application(); The compiler did not throw any error for it, despite the fact that in C ++/CLI interface classes cannot be instantiated. So I'm wondering, how is this possible? Is there something special about Visio::Application then that the compiler allows it to be instantiated? Please, inform me. Thanks. ~ Gurinder PS: I have little knowledge of COM and am no expert either in how .Net interops are created from COM DLLs.