I'd like to include some final information to make this thread history. I had to use different classes (structs) for managed and native sides since they were not the same for the C++/CLI compiler. But I used a simple trick to define ingredients of these structs. This way I was able to sync the information between the managed and native world. Of course I had to use some wrapper code since the managed and native structs were living on different worlds.