I can think of 2 things u can try:
1.) Recieve the C pointer as a VB Variant. Once the Variant is assigned to the pointer you should be able to treat it like an array.
2.) Modify the C function to return void and recieve the array via a pointer in the argument list, then pass the VB array ByRef for the C function to populate it. If you do this then it will be a Declare Sub, not Function.
I haven't done this before, but I've seen API functions use the 2nd approach so I know it's possible.
Hope that helps.
~Mike
Any man willing to sacrifice liberty for security deserves neither liberty nor security.
-Ben Franklin