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 |
---|---|
|
Titik awal adalah nol atau awal file. Jika FILE_BEGIN ditentukan, lDistanceToMove ditafsirkan sebagai lokasi yang tidak ditandatangani untuk penunjuk file baru. |
|
Nilai pointer file saat ini adalah titik awal. |
|
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.
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk