I just had someone comment on my previous blog post asking how to pass a table using Nav Automation. Great question.
You can pass complex objects using Nav Automation, but only ones that you define (or that have been explicitly written to work with COM). This means that you can't pass a DataTable object, but you can create your own implementation of a DataTable object and pass it.
In your complex object, you have to explicitly define every property and method that you need to call on that complex object and surface those properties and methods through COM.