Partager via


Méthode IStream ::Seek (objidl.h)

La méthode Seek modifie le pointeur de recherche vers un nouvel emplacement. Le nouvel emplacement est relatif au début du flux, à la fin du flux ou au pointeur de recherche actuel.

Syntaxe

HRESULT Seek(
  [in]  LARGE_INTEGER  dlibMove,
  [in]  DWORD          dwOrigin,
  [out] ULARGE_INTEGER *plibNewPosition
);

Paramètres

[in] dlibMove

Déplacement à ajouter à l’emplacement indiqué par le paramètre dwOrigin . Si dwOrigin est STREAM_SEEK_SET, cela est interprété comme une valeur non signée plutôt qu’une valeur signée.

[in] dwOrigin

Origine du déplacement spécifié dans dlibMove. L’origine peut être le début du fichier (STREAM_SEEK_SET), le pointeur de recherche actuel (STREAM_SEEK_CUR) ou la fin du fichier (STREAM_SEEK_END). Pour plus d’informations sur les valeurs, consultez l’énumération STREAM_SEEK .

[out] plibNewPosition

Pointeur vers l’emplacement où cette méthode écrit la valeur du nouveau pointeur de recherche à partir du début du flux.

Vous pouvez définir ce pointeur sur NULL. Dans ce cas, cette méthode ne fournit pas le nouveau pointeur de recherche.

Valeur retournée

Cette méthode peut retourner l’une de ces valeurs.

Code de retour Description
S_OK Le pointeur de recherche a été correctement ajusté.
E_PENDING Stockage asynchrone uniquement : une partie ou la totalité des données de flux n’est actuellement pas disponible.
STG_E_INVALIDPOINTER Indique que plibNewPosition pointe vers la mémoire non valide, car plibNewPosition n’est pas lu.
STG_E_INVALIDFUNCTION Le paramètre dwOrigin contient une valeur non valide ou le paramètre dlibMove contient une valeur de décalage incorrecte. Par exemple, le résultat du pointeur de recherche est une valeur de décalage négative.
STG_E_REVERTED L’objet a été invalidé par une opération de restauration au-dessus de lui dans l’arborescence des transactions.

Remarques

IStream ::Seek modifie le pointeur de recherche afin que les opérations de lecture et d’écriture suivantes puissent être effectuées à un autre emplacement dans l’objet stream. Il s’agit d’une erreur à rechercher avant le début du flux. Toutefois, il ne s’agit pas d’une erreur de rechercher au-delà de la fin du flux. La recherche au-delà de la fin du flux est utile pour les opérations d’écriture suivantes, car la plage d’octets de flux sera étendue à la nouvelle position de recherche immédiatement avant la fin de l’écriture.

Vous pouvez également utiliser cette méthode pour obtenir la valeur actuelle du pointeur de recherche en appelant cette méthode avec le paramètre dwOrigin défini sur STREAM_SEEK_CUR et le paramètre dlibMove défini sur 0 afin que le pointeur de recherche ne soit pas modifié. Le pointeur de recherche actuel est retourné dans le paramètre plibNewPosition .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête objidl.h
Bibliothèque Uuid.lib
DLL Ole32.dll

Voir aussi

ISequentialStream ::Read

ISequentialStream ::Write

IStream - Implémentation de fichiers composés

STREAM_SEEK