I don't think you can solve this without modifying the VB6 code. Try declaring the function as
Public Function GetData(ByRef data As Variant) As Integer
or
Public Function GetData(ByRef data As Object) As Integer
The ReDim
to string array should work fine from Variant. I remember doing it like this all the time because of VB6 not letting a 2D array as a parameter.
When inspecting it from .NET you should see the type. I don't have a VB6 IDE on my machine to verify this.
If one works you should be able to cast over to the String(,)
you expect.