Alright, stay with me here, I have a few things I need to explain.
I'm trying OLE in C# currently for Photoshop CS6, late binding works perfectly by creating an instance of the application:
dynamic app = Activator.CreateInstance(Type.GetTypeFromProgID("Photoshop.Application", true))...