Fonction InternetSetFilePointer (wininet.h)
Définit une position de fichier pour InternetReadFile. Il s’agit d’un appel synchrone ; Toutefois, les appels ultérieurs à InternetReadFile peuvent bloquer ou retourner en attente si les données ne sont pas disponibles à partir du cache et que le serveur ne prend pas en charge l’accès aléatoire.
Syntaxe
DWORD InternetSetFilePointer(
[in] HINTERNET hFile,
[in] LONG lDistanceToMove,
[in, out] PLONG lpDistanceToMoveHigh,
[in] DWORD dwMoveMethod,
[in] DWORD_PTR dwContext
);
Paramètres
[in] hFile
Handle retourné à partir d’un appel précédent à InternetOpenUrl (sur une URL HTTP ou HTTPS) ou HttpOpenRequest (à l’aide du verbe HTTP GET ou HEAD et passé à HttpSendRequest ou HttpSendRequestEx). Ce handle ne doit pas avoir été créé avec l’INTERNET_FLAG_DONT_CACHE ou INTERNET_FLAG_NO_CACHE_WRITE valeur définie.
[in] lDistanceToMove
32 bits d’ordre inférieur d’un nombre d’octets 64 bits signé pour déplacer le pointeur de fichier. Internet Explorer 7 et versions antérieures : InternetSetFilePointer utilisé pour déplacer le pointeur uniquement dans les limites d’un long. Lors de l’appel de cette version antérieure de la fonction, lpDistanceToMoveHigh est réservé et doit être défini sur 0. Une valeur positive déplace le pointeur vers l’avant dans le fichier ; une valeur négative la déplace vers l’arrière.
[in, out] lpDistanceToMoveHigh
Pointeur vers les 32 bits d’ordre supérieur de la distance 64 bits signée à déplacer. Si vous n’avez pas besoin des 32 bits d’ordre élevé, ce pointeur doit avoir la valeur NULL. S’il n’est pas NULL, ce paramètre reçoit également l’ordre DWORD élevé de la nouvelle valeur du pointeur de fichier. Une valeur positive déplace le pointeur vers l’avant dans le fichier ; une valeur négative la déplace vers l’arrière. Internet Explorer 7 et versions antérieures : InternetSetFilePointer utilisé pour déplacer le pointeur uniquement dans les limites d’un long. Lors de l’appel de cette version antérieure de la fonction, lpDistanceToMoveHigh est réservé et doit être défini sur 0.
[in] dwMoveMethod
Point de départ du déplacement du pointeur de fichier. Ce paramètre peut prendre les valeurs suivantes.
Valeur | Signification |
---|---|
|
Le point de départ est zéro ou le début du fichier. Si FILE_BEGIN est spécifié, lDistanceToMove est interprété comme un emplacement non signé pour le nouveau pointeur de fichier. |
|
La valeur actuelle du pointeur de fichier est le point de départ. |
|
La position de fin du fichier actuelle est le point de départ. Cette méthode échoue si la longueur du contenu est inconnue. |
[in] dwContext
Ce paramètre est réservé et doit être 0.
Valeur retournée
Si la fonction réussit, elle retourne la position du fichier actuel. Une valeur de retour de INVALID_SET_FILE_POINTER indique un échec potentiel et doit être suivie d’un appel à GetLastError.
Étant donné que INVALID_SET_FILE_POINTER est une valeur valide pour le DWORD de bas ordre du nouveau pointeur de fichier, l’appelant doit case activée à la fois la valeur de retour de la fonction et le code d’erreur retourné par GetLastError pour déterminer si une erreur s’est produite ou non. Si une erreur s’est produite, la valeur de retour d’InternetSetFilePointer est INVALID_SET_FILE_POINTER et GetLastError renvoie une valeur autre que NO_ERROR.
Si la fonction réussit et que lpDistanceToMoveHigh a la valeur NULL, la valeur de retour est la valeur DWORD d’ordre inférieur du nouveau pointeur de fichier.
Notez que si la fonction retourne une valeur autre que INVALID_SET_FILE_POINTER, l’appel à InternetSetFilePointer a réussi et il n’est pas nécessaire d’appeler GetLastError.
Si la fonction réussit et que lpDistanceToMoveHigh n’a pas la valeur NULL, la valeur de retour est la valeur DWORD d’ordre inférieur du nouveau pointeur de fichier et lpDistanceToMoveHigh contient l’ordre supérieur DWORD du nouveau pointeur de fichier.
Si un nouveau pointeur de fichier est une valeur négative, la fonction échoue, le pointeur de fichier n’est pas déplacé et le code retourné par GetLastError est ERROR_NEGATIVE_SEEK.
Si lpDistanceToMoveHigh a la valeur NULL et que la nouvelle position du fichier ne correspond pas à une valeur 32 bits, la fonction échoue et retourne INVALID_SET_FILE_POINTER.
Remarques
Cette fonction ne peut pas être utilisée une fois que la fin du fichier a été atteinte par InternetReadFile.
Pour les handles HINTERNET créés par HttpOpenRequest et envoyés par HttpSendRequestEx, un appel à HttpEndRequest doit être effectué sur le handle avant l’utilisation d’InternetSetFilePointer.
InternetSetFilePointer ne peut pas être utilisé de manière fiable si la longueur du contenu est inconnue.
Comme tous les autres aspects de l’API WinINet, cette fonction ne peut pas être appelée en toute sécurité à partir de DllMain ou des constructeurs et destructeurs d’objets globaux.
InternetSetFilePointer a changé au fil du temps. Dans Internet Explorer 7 et versions antérieures, il était utilisé pour déplacer le pointeur uniquement dans les limites d’un long. Lors de l’appel de cette version antérieure de la fonction, lDistanceToMove contient la valeur entière. Une valeur positive déplace le pointeur vers l’avant dans le fichier ; une valeur négative la déplace vers l’arrière. lpDistanceToMoveHigh est réservé et est défini sur 0. Dans les versions actuelles, lpDistanceToMoveHigh est une valeur significative et où toute valeur négative serait indiquée.
Configuration requise
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | wininet.h |
Bibliothèque | Wininet.lib |
DLL | Wininet.dll |