Windows API
InternetSetFilePointer is apparently able to operate with larger files provided both lDistanceToMove and lpDistanceToMoveHigh parameters are used.
The InternetSetFilePointer is expected to work in pair with
InternetReadFile API function. The latter does have the 32-bit limit -- i.e. it cannot read beyond 0x100000000 bytes in one call. But after reading one large chunk of data, the calling process can always use the InternetSetFilePointer to move to the beginning of the subsequent chunk.
I assume that with multi-threading available -- unfortunately not VFP case -- the calling process can start several threads, each reading a portion of a large remote file, eventually assembling them in a single local file.
VFP code sample
Using InternetSetFilePointer when resuming interrupted download from the Internet