I'm assuming your CreateInstance has failed. What is the HResult returned from it. I usually create a Crystal instance using HRESULT hr = m_Application.CreateInstance(__uuidof(Application)); What exception is thrown? Have you added an exception handler to get more details of the exception? try { m_pReport = m_pApplication->NewReport(); } catch(_com_error& e) { TRACE("COM Error: %s %s %x\n", e.ErrorMessage(), (LPCTSTR)e.Description(), e.Error()); } Michael CP Blog [^]