+2  A: 

This is all the same crash reason. Your component threw a C++ exception and it wasn't caught with a catch statement. Use a debugger to find out why it is throwing exceptions.

Hans Passant
+1. You're perhaps right about why it crashes, but not about how to fix it. You see, C++ code can't be restricted from throwing exceptions - every now and then something wrong happens and an exception can be thrown. If he focuses on investigating this case he just wastes time. The real solution is to not allow exceptions propagate through the COM boundary. Specifically every function that can be called through COM should catch **all possible** exceptions that could be thrown inside and translate them into HRESULTs and IErrorInfo.
sharptooth