The following line: InDesign.Application app = (InDesign.Application) COMCreateObject("InDesign.Application"); should be: InDesign::Application app = (InDesign::Application) COMCreateObject("InDesign.Application"); (not sure what COMCreateObject returns). In general, whenever you are qualifying something with a namespace, use the scope operator ::. Unlike C#, C++ differentiates between types and instance of types. For type qualification, it's type::identifier or namespace::identifier For instance qualification, it's instance.identifier or instance->identifier (those are only examples of course). C# always uses the dot operator no matter what... gmileka