The first two "structures" in your code aren't structures, they're classes. This may not make a lot of difference in C++, but in VB it does. They have to be structures for this kind of interop to work correctly.