Thanks, but thats no use. Thats a dynamic array where I need a static fixed array.. the problem is thus:

VB Code:
  1. Structure MyStruct
  2.    Public MyArray() As Integer
  3.    Public MyInt As Integer
  4. End Structure
  5.  
  6. Sub UseStruct()
  7.    Dim Struct As MyStruct
  8.    ReDim Struct.MyArray(9) ' Dimension as 10 elements
  9.    Struct.MyArray(2) = 777 ' Use the array.
  10. End Sub

would in fact produce something like the following behind the sceens:
Pointer MyArray (this uses up 4 bytes of data)
Integer MyInt (this uses up 4 bytes of data)

Somewhere else in memory a block of 10 bytes of memory is allocated and the variable MyArray references it


In contrast
VB Code:
  1. Type MyStruct
  2.    MyArray(9) As Integer
  3.    MyInt As Integer
  4. End Type

would produce something like the following behind the sceens:
Integer *10 MyArray (this uses up 4*10 bytes of data = 40)
Integer MyInt (this uses up 4 bytes of data)

So as you can see there is a big difference in terms of where the data is stored in memory, and the DLL im interfacing with will only accept the data in the format produced by the Type definition.

Thanks for any more help on this