>THe declaration is unaffected by the need to capture a changed value - you use @ in the function call to allow any change to propagate back; declaring it in the DECLARE...DLL has a definite and different effect; LONG passes a 4 byte integer, while long @ passes a pointer to what is presumed to be a 4 byte integer. See CLSHEAP to see examples of where to use each.
I got the following email from support (the author of the DLL):
< snip >
I'm not too familiar with Foxpro, but I think that it's
strings are limited to 255 bytes and that the DLL support in Foxpro is
limited to C-style ASCII-Z strings anyway, which won't work with binary
data. The string type supported by our DLL is the OLE BSTR type used by
Visual Basic.
< /snip>
I'm going to read the transcript from your 'Pointers on Pointers' to see this can be pulled off...
Steve Gibson