Working with COM is often like hacking away at a black box, throwing something in and hoping you get something else than an invalid HRESULT exception back. I’ve long been looking for tools to help out with this and only last week I found one real diamond of a helper. It’s the OLE/COM Object Viewer:
It’s placed under something called Windows Kits which seems to be shipped together with Visual Studio 2012:
C:\Program Files (x86)\Windows Kits\8.0\bin\x86
It’s a superb tool to help you view your actual type and what they get marshaled as.
Update 01/08/2016: Several times I’ve had issues opening registered libs getting errors of IViewers.dll not being in place. I found an answer on Stack overflow where the recommendation is to open the oleview as an administrator the first time.