我们在做断点续传的下载程序的时候会用到这个函数去设置在服务器上的下载数据的位置,但是前提是服务器支持随机访问。这个函数就是设置读取Internet文件文件的位置。这是一个同步调用;然而,随后调用读取Internet文件可能会阻止或返回之前,如果没有数据从缓存和服务器不支持随机访问。
函数原型:
DWORD InternetSetFilePointer( _In_ HINTERNET hFile, _In_ LONG lDistanceToMove, _Inout_ PLONG lpDistanceToMoveHigh, _In_ DWORD dwMoveMethod, _In_ DWORD_PTR dwContext );
参数;
第一个参数;
hFile
第二个参数:
lDistanceToMove;
移动到自己定的下载位置
第三个参数;
lpDistanceToMoveHigh;
这个是管理高8位的,一般是非常大的才会用到,小文件可以设置为空
第四个参数;
dwMoveMethod;
文件指针移动的起点。此参数可以是下列值之一
FILE_BEGIN
起点是零或文件的开始。如果file_begin指定,ldistancetomove被解释为新文件指针符号位置。
FILE_CURRENT
文件指针的当前值为出发点。
FILE_END
这个就不用我说了吧;
第五个参数;
dwContext ;
此参数是保留的,必须是0。
说一下返回值;
函数成功,它返回当前的文件位置。
GetLastError来确定是否发生了一个错误
如果函数成功,lpdistancetomovehigh不为空,
则返回值是低阶的DWORD的新文件指针和lpdistancetomovehigh包含新文件指针的高阶DWORD。