Complex marshalling
http://blogs.msdn.com/jaredpar/archive/2005/07/11/437584.aspx
A very helpful explanation of marshalling, as well as “more complex than simple” marshalling.
I had a situation where I had to marshal a struct that contained a dynamic array of other structs. I wasn’t able to find anything on the web about marshalling dynamic arrays, other than this (and even then, this didn’t address that aspect in particular).
FYI, A custom marshaller is the solution, with manual IntPtr manipulation. Fun!