I'm trying to call a LabVIEW VI from C# using LabVIEW's ActiveX interface. I've successfully imported LabVIEW.tlb and can do a few simple things like load a VI into memory and run it.
But things get more complicated when I need to use a cluster output from one VI as the input to another. The return value of GetControlValue is, unfortunately, a System.Object refnum. This is useless for passing into LabVIEW: it's just a pointer. How to I get C# to pass the System.Object refnum in as a Variant containing the actual cluster data instead of a Variant containing a 32-bit pointer? I'd even settle for flattening the C# object to some kind of string, but the ToString() method is useless: it returns "System.Object[]" instead of an actual representation of the data.
