Yes, I looked at the wrong function, SetHeartCoherence that needs a long parameter. I had a similar job last year and found no problem with COM interfacing, so I don't know why it crashes, but you can see an example for a COM interface in pictures.h.

Another idea, the virtual functions in your header look as if those functions must be defined before calling the method, maybe the method crashes when its virtual function is not defined.

Or one little thing, in your typedef the interface name and type name are the same (iInterface), in the examples they are different, maybe that's also causing a problem.