Try using the following code --
var arr = testCompleteHelper.Foo(0, 0, 0);
Log.Message("foo: " + arr.GetValue(0).OleValue);
When you call your .NET method, TestComplete gets the array object as it is specified in .NET. To reach array items, you have to use this object's methods.
I guess, managed applications actually work with the same objects too. However, the C# compiler adds all the needed helper calls behind the scenes, so you use a simpler notation (e.g. arr) in C# source code.
I am trying to pass a String array to a parameter but it always falis with Type Mismatch error.
Below is the JavaSript code that I am using.
dotNET.<dll>.<class1>.GetInstance.<field> = ["/INI=C:\\Temp\\Text.txt"];
Try the advice by @HKosova from here: https://community.smartbear.com/t5/TestComplete-Functional-Web/Working-with-array-in-dotNET/m-p/8915...
> dotNET.<dll>.<class1>.GetInstance.<field> = ["/INI=C:\\Temp\\Text.txt"];
Also, I am not sure about .GetInstance() call - maybe you first must create an instance of the object by calling its constructor (one of .zctor() methods) and work with the property of the created instance.