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

파일 포인터 이동의 시작점입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
FILE_BEGIN
시작점이 0이거나 파일의 시작점입니다. FILE_BEGIN 지정하면 lDistanceToMove 가 새 파일 포인터의 서명되지 않은 위치로 해석됩니다.
FILE_CURRENT
파일 포인터의 현재 값이 시작점입니다.
FILE_END
현재 파일 끝 위치가 시작점입니다. 콘텐츠 길이를 알 수 없는 경우 이 메서드가 실패합니다.

[in] dwContext

이 매개 변수는 예약되어 있으며 0이어야 합니다.

반환 값

함수가 성공하면 현재 파일 위치를 반환합니다. INVALID_SET_FILE_POINTER 반환 값은 잠재적인 실패를 나타내며 GetLastError를 호출해야 합니다.

INVALID_SET_FILE_POINTER 새 파일 포인터의 낮은 순서 DWORD에 유효한 값이므로 호출자는 함수의 반환 값과 GetLastError에서 반환된 오류 코드를 모두 검사 오류가 발생했는지 여부를 확인해야 합니다. 오류가 발생한 경우 InternetSetFilePointer의 반환 값은 INVALID_SET_FILE_POINTERGetLastErrorNO_ERROR 이외의 값을 반환합니다.

함수가 성공하고 lpDistanceToMoveHighNULL이면 반환 값은 새 파일 포인터의 낮은 순서 DWORD 입니다.

함수가 INVALID_SET_FILE_POINTER 이외의 값을 반환하는 경우 InternetSetFilePointer 호출이 성공했으며 GetLastError를 호출할 필요가 없습니다.

함수가 성공하고 lpDistanceToMoveHighNULL이 아닌 경우 반환 값은 새 파일 포인터의 하위 순서 DWORD 이고 lpDistanceToMoveHigh 에는 새 파일 포인터의 상위 DWORD 가 포함됩니다.

새 파일 포인터가 음수 값이면 함수가 실패하고 파일 포인터가 이동되지 않으며 GetLastError 에서 반환된 코드가 ERROR_NEGATIVE_SEEK.

lpDistanceToMoveHighNULL이고 새 파일 위치가 32비트 값에 맞지 않으면 함수가 실패하고 INVALID_SET_FILE_POINTER 반환합니다.

설명

InternetReadFile에서 파일의 끝에 도달한 후에는 이 함수를 사용할 수 없습니다.

HttpOpenRequest에서 만들고 HttpSendRequestEx에서 보낸 HINTERNET 핸들의 경우 InternetSetFilePointer를 사용하려면 먼저 핸들에서 HttpEndRequest를 호출해야 합니다.

콘텐츠 길이를 알 수 없는 경우 InternetSetFilePointer를 안정적으로 사용할 수 없습니다.

WinINet API의 다른 모든 측면과 마찬가지로 이 함수는 DllMain 내에서 또는 전역 개체의 생성자 및 소멸자에서 안전하게 호출할 수 없습니다.

InternetSetFilePointer 는 시간이 지남에 따라 변경되었습니다. 인터넷 Explorer 7 이전 버전에서는 LONG 범위 내에서만 포인터를 이동했습니다. 이 이전 버전의 함수를 호출할 때 lDistanceToMove 에는 전체 값이 포함됩니다. 양수 값은 파일에서 포인터를 앞으로 이동합니다. 음수 값은 뒤로 이동합니다. lpDistanceToMoveHigh 는 예약되어 있으며 0으로 설정됩니다. 현재 버전에서 lpDistanceToMoveHigh 는 중요한 값이며 음수 값이 표시되는 위치입니다.

참고 WinINet은 서버 구현을 지원하지 않습니다. 또한 서비스에서 사용하면 안 됩니다. 서버 구현 또는 서비스의 경우 WinHTTP(Microsoft Windows HTTP 서비스)를 사용합니다.
 

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 wininet.h
라이브러리 Wininet.lib
DLL Wininet.dll

추가 정보

공통 함수

WinINet 함수