InternetSetFilePointer 함수(wininet.h)
InternetReadFile에 대한 파일 위치를 설정합니다. 동기 호출입니다. 그러나 InternetReadFile 에 대한 후속 호출은 캐시에서 데이터를 사용할 수 없으며 서버가 임의 액세스를 지원하지 않는 경우 보류 중을 차단하거나 반환할 수 있습니다.
구문
DWORD InternetSetFilePointer(
[in] HINTERNET hFile,
[in] LONG lDistanceToMove,
[in, out] PLONG lpDistanceToMoveHigh,
[in] DWORD dwMoveMethod,
[in] DWORD_PTR dwContext
);
매개 변수
[in] hFile
InternetOpenUrl(HTTP 또는 HTTPS URL) 또는 HttpOpenRequest(GET 또는 HEAD HTTP 동사를 사용하고 HttpSendRequest 또는 HttpSendRequestEx에 전달됨)에 대한 이전 호출에서 반환된 핸들입니다. 이 핸들은 INTERNET_FLAG_DONT_CACHE 또는 INTERNET_FLAG_NO_CACHE_WRITE 값 집합으로 만들어지지 않아야 합니다.
[in] lDistanceToMove
파일 포인터를 이동할 부호 있는 64비트 바이트 수의 낮은 순서 32비트입니다. Internet Explorer 7 이하: InternetSetFilePointer는 포인터를 LONG 범위 내에서만 이동하는 데 사용됩니다. 이 이전 버전의 함수를 호출할 때 lpDistanceToMoveHigh 는 예약되어 있으며 0으로 설정해야 합니다. 양수 값은 파일에서 포인터를 앞으로 이동합니다. 음수 값은 뒤로 이동합니다.
[in, out] lpDistanceToMoveHigh
이동할 서명된 64비트 거리의 상위 32비트 포인터입니다. 높은 32비트 순서가 필요하지 않은 경우 이 포인터를 NULL로 설정해야 합니다. NULL이 아닌 경우 이 매개 변수는 파일 포인터의 새 값에 대한 높은 순서의 DWORD도 받습니다. 양수 값은 파일에서 포인터를 앞으로 이동합니다. 음수 값은 뒤로 이동합니다. Internet Explorer 7 이하: InternetSetFilePointer는 포인터를 LONG 범위 내에서만 이동하는 데 사용됩니다. 이 이전 버전의 함수를 호출할 때 lpDistanceToMoveHigh 는 예약되어 있으며 0으로 설정해야 합니다.
[in] dwMoveMethod
파일 포인터 이동의 시작점입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.
값 | 의미 |
---|---|
|
시작점이 0이거나 파일의 시작점입니다. FILE_BEGIN 지정하면 lDistanceToMove 가 새 파일 포인터의 서명되지 않은 위치로 해석됩니다. |
|
파일 포인터의 현재 값이 시작점입니다. |
|
현재 파일 끝 위치가 시작점입니다. 콘텐츠 길이를 알 수 없는 경우 이 메서드가 실패합니다. |
[in] dwContext
이 매개 변수는 예약되어 있으며 0이어야 합니다.
반환 값
함수가 성공하면 현재 파일 위치를 반환합니다. INVALID_SET_FILE_POINTER 반환 값은 잠재적인 실패를 나타내며 GetLastError를 호출해야 합니다.
INVALID_SET_FILE_POINTER 새 파일 포인터의 낮은 순서 DWORD에 유효한 값이므로 호출자는 함수의 반환 값과 GetLastError에서 반환된 오류 코드를 모두 검사 오류가 발생했는지 여부를 확인해야 합니다. 오류가 발생한 경우 InternetSetFilePointer의 반환 값은 INVALID_SET_FILE_POINTERGetLastError 는 NO_ERROR 이외의 값을 반환합니다.
함수가 성공하고 lpDistanceToMoveHigh 가 NULL이면 반환 값은 새 파일 포인터의 낮은 순서 DWORD 입니다.
함수가 INVALID_SET_FILE_POINTER 이외의 값을 반환하는 경우 InternetSetFilePointer 호출이 성공했으며 GetLastError를 호출할 필요가 없습니다.
함수가 성공하고 lpDistanceToMoveHigh 가 NULL이 아닌 경우 반환 값은 새 파일 포인터의 하위 순서 DWORD 이고 lpDistanceToMoveHigh 에는 새 파일 포인터의 상위 DWORD 가 포함됩니다.
새 파일 포인터가 음수 값이면 함수가 실패하고 파일 포인터가 이동되지 않으며 GetLastError 에서 반환된 코드가 ERROR_NEGATIVE_SEEK.
lpDistanceToMoveHigh가 NULL이고 새 파일 위치가 32비트 값에 맞지 않으면 함수가 실패하고 INVALID_SET_FILE_POINTER 반환합니다.
설명
InternetReadFile에서 파일의 끝에 도달한 후에는 이 함수를 사용할 수 없습니다.
HttpOpenRequest에서 만들고 HttpSendRequestEx에서 보낸 HINTERNET 핸들의 경우 InternetSetFilePointer를 사용하려면 먼저 핸들에서 HttpEndRequest를 호출해야 합니다.
콘텐츠 길이를 알 수 없는 경우 InternetSetFilePointer를 안정적으로 사용할 수 없습니다.
WinINet API의 다른 모든 측면과 마찬가지로 이 함수는 DllMain 내에서 또는 전역 개체의 생성자 및 소멸자에서 안전하게 호출할 수 없습니다.
InternetSetFilePointer 는 시간이 지남에 따라 변경되었습니다. 인터넷 Explorer 7 이전 버전에서는 LONG 범위 내에서만 포인터를 이동했습니다. 이 이전 버전의 함수를 호출할 때 lDistanceToMove 에는 전체 값이 포함됩니다. 양수 값은 파일에서 포인터를 앞으로 이동합니다. 음수 값은 뒤로 이동합니다. lpDistanceToMoveHigh 는 예약되어 있으며 0으로 설정됩니다. 현재 버전에서 lpDistanceToMoveHigh 는 중요한 값이며 음수 값이 표시되는 위치입니다.
요구 사항
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | wininet.h |
라이브러리 | Wininet.lib |
DLL | Wininet.dll |