Fungsi InternetSetFilePointer (wininet.h)

Mengatur posisi file untuk InternetReadFile. Ini adalah panggilan sinkron; namun, panggilan berikutnya ke InternetReadFile mungkin memblokir atau mengembalikan tertunda jika data tidak tersedia dari cache dan server tidak mendukung akses acak.

Sintaks

DWORD InternetSetFilePointer(
  [in]      HINTERNET hFile,
  [in]      LONG      lDistanceToMove,
  [in, out] PLONG     lpDistanceToMoveHigh,
  [in]      DWORD     dwMoveMethod,
  [in]      DWORD_PTR dwContext
);

Parameter

[in] hFile

Menangani yang dikembalikan dari panggilan sebelumnya ke InternetOpenUrl (pada URL HTTP atau HTTPS) atau HttpOpenRequest (menggunakan kata kerja HTTP GET atau HEAD dan diteruskan ke HttpSendRequest atau HttpSendRequestEx). Handel ini tidak boleh dibuat dengan kumpulan nilai INTERNET_FLAG_DONT_CACHE atau INTERNET_FLAG_NO_CACHE_WRITE .

[in] lDistanceToMove

Urutan rendah 32-bit dari jumlah byte 64-bit yang ditandatangani untuk memindahkan penunjuk file. Internet Explorer 7 dan yang lebih lama: InternetSetFilePointer digunakan untuk memindahkan pointer hanya dalam batas LONG. Saat memanggil versi fungsi yang lebih lama ini, lpDistanceToMoveHigh dicadangkan dan harus diatur ke 0. Nilai positif memindahkan penunjuk ke depan dalam file; nilai negatif memindahkannya ke belakang.

[in, out] lpDistanceToMoveHigh

Penunjuk ke urutan tinggi 32-bit dari jarak 64-bit yang ditandatangani untuk bergerak. Jika Anda tidak memerlukan urutan tinggi 32-bit, pointer ini harus diatur ke NULL. Ketika tidak NULL, parameter ini juga menerima DWORD urutan tinggi dari nilai baru penunjuk file. Nilai positif memindahkan penunjuk ke depan dalam file; nilai negatif memindahkannya ke belakang. Internet Explorer 7 dan yang lebih lama: InternetSetFilePointer digunakan untuk memindahkan pointer hanya dalam batas LONG. Saat memanggil versi fungsi yang lebih lama ini, lpDistanceToMoveHigh dicadangkan dan harus diatur ke 0.

[in] dwMoveMethod

Titik awal untuk pemindahan penunjuk file. Parameter ini bisa menjadi salah satu nilai berikut.

Nilai Makna
FILE_BEGIN
Titik awal adalah nol atau awal file. Jika FILE_BEGIN ditentukan, lDistanceToMove ditafsirkan sebagai lokasi yang tidak ditandatangani untuk penunjuk file baru.
FILE_CURRENT
Nilai pointer file saat ini adalah titik awal.
FILE_END
Posisi akhir file saat ini adalah titik awal. Metode ini gagal jika panjang konten tidak diketahui.

[in] dwContext

Parameter ini dicadangkan dan harus 0.

Mengembalikan nilai

Saya fungsi berhasil, itu mengembalikan posisi file saat ini. Nilai pengembalian INVALID_SET_FILE_POINTER menunjukkan potensi kegagalan dan perlu diikuti dengan menjadi panggilan ke GetLastError.

Karena INVALID_SET_FILE_POINTER adalah nilai yang valid untuk DWORD berurutan rendah dari penunjuk file baru, pemanggil harus memeriksa nilai pengembalian fungsi dan kode kesalahan yang dikembalikan oleh GetLastError untuk menentukan apakah kesalahan telah terjadi atau tidak. Jika terjadi kesalahan, nilai pengembalian InternetSetFilePointer INVALID_SET_FILE_POINTER dan GetLastError mengembalikan nilai selain NO_ERROR.

Jika fungsi berhasil dan lpDistanceToMoveHigh adalah NULL, nilai yang dikembalikan adalah DWORD berurutan rendah dari penunjuk file baru.

Perhatikan bahwa jika fungsi mengembalikan nilai selain INVALID_SET_FILE_POINTER, panggilan ke InternetSetFilePointer telah berhasil dan tidak perlu memanggil GetLastError.

Jika fungsi berhasil dan lpDistanceToMoveHigh bukan NULL, nilai yang dikembalikan adalah DWORD urutan lebih rendah dari pointer file baru dan lpDistanceToMoveHigh berisi DWORD urutan tinggi dari pointer file baru.

Jika penunjuk file baru adalah nilai negatif, fungsi gagal, penunjuk file tidak dipindahkan, dan kode yang dikembalikan oleh GetLastErrorERROR_NEGATIVE_SEEK.

Jika lpDistanceToMoveHigh adalah NULL dan posisi file baru tidak cocok dalam nilai 32-bit, fungsi gagal dan mengembalikan INVALID_SET_FILE_POINTER.

Keterangan

Fungsi ini tidak dapat digunakan setelah akhir file dijangkau oleh InternetReadFile.

Untuk handel HINTERNET yang dibuat oleh HttpOpenRequest dan dikirim oleh HttpSendRequestEx, panggilan ke HttpEndRequest harus dilakukan pada handel sebelum InternetSetFilePointer digunakan.

InternetSetFilePointer tidak dapat digunakan dengan andal jika panjang konten tidak diketahui.

Seperti semua aspek lain dari Api WinINet, fungsi ini tidak dapat dipanggil dengan aman dari dalam DllMain atau konstruktor dan destruktor objek global.

InternetSetFilePointer telah berubah dari waktu ke waktu. Di Internet Explorer 7 dan yang lebih lama, ini digunakan untuk memindahkan penunjuk hanya dalam batas LONG. Saat memanggil versi fungsi yang lebih lama ini, lDistanceToMove berisi seluruh nilai. Nilai positif memindahkan penunjuk ke depan dalam file; nilai negatif memindahkannya ke belakang. lpDistanceToMoveHigh dicadangkan dan diatur ke 0. Dalam versi saat ini, lpDistanceToMoveHigh adalah nilai yang signifikan dan di mana nilai negatif apa pun akan ditunjukkan.

Catatan WinINet tidak mendukung implementasi server. Selain itu, itu tidak boleh digunakan dari layanan. Untuk implementasi atau layanan server, gunakan Microsoft Windows HTTP Services (WinHTTP).
 

Persyaratan

   
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header wininet.h
Pustaka Wininet.lib
DLL Wininet.dll

Lihat juga

Fungsi Umum

Fungsi WinINet