Share via


IStream::Seek-Methode (objidl.h)

Die Seek-Methode ändert den Suchzeiger auf einen neuen Speicherort. Der neue Speicherort ist entweder relativ zum Anfang des Datenstroms, zum Ende des Datenstroms oder zum aktuellen Suchzeiger.

Syntax

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

Parameter

[in] dlibMove

Die Verschiebung, die der durch den dwOrigin-Parameter angegebenen Position hinzugefügt werden soll. Wenn dwOriginSTREAM_SEEK_SET ist, wird dies als nicht signierter Wert interpretiert.

[in] dwOrigin

Der Ursprung für die in dlibMove angegebene Verschiebung. Der Ursprung kann der Anfang der Datei (STREAM_SEEK_SET), der aktuelle Suchzeiger (STREAM_SEEK_CUR) oder das Ende der Datei (STREAM_SEEK_END) sein. Weitere Informationen zu Werten finden Sie in der STREAM_SEEK-Enumeration .

[out] plibNewPosition

Ein Zeiger auf die Position, an der diese Methode den Wert des neuen Suchzeigers vom Anfang des Datenstroms schreibt.

Sie können diesen Zeiger auf NULL festlegen. In diesem Fall stellt diese Methode den neuen Suchzeiger nicht bereit.

Rückgabewert

Diese Methode kann einen dieser Werte zurückgeben.

Rückgabecode Beschreibung
S_OK Der Suchzeiger wurde erfolgreich angepasst.
E_PENDING Nur asynchroner Speicher: Ein Teil oder alle Datenstromdaten sind derzeit nicht verfügbar.
STG_E_INVALIDPOINTER Gibt an, dass plibNewPosition auf ungültigen Arbeitsspeicher verweist, da plibNewPosition nicht gelesen wird.
STG_E_INVALIDFUNCTION Der dwOrigin-Parameter enthält einen ungültigen Wert, oder der dlibMove-Parameter enthält einen ungültigen Offsetwert. Das Ergebnis des Suchzeigers ist beispielsweise ein negativer Offsetwert.
STG_E_REVERTED Das Objekt wurde durch einen rückgängig machen Vorgang darüber in der Transaktionsstruktur ungültig gemacht.

Hinweise

IStream::Seek ändert den Suchzeiger, sodass nachfolgende Lese- und Schreibvorgänge an einer anderen Stelle im Streamobjekt ausgeführt werden können. Es handelt sich um einen Fehler, der vor dem Beginn des Streams gesucht werden soll. Es ist jedoch kein Fehler, nach dem Ende des Streams zu suchen. Das Suchen nach dem Ende des Datenstroms ist für nachfolgende Schreibvorgänge nützlich, da der Streambytebereich unmittelbar vor Abschluss des Schreibvorgangs auf die neue Suchposition erweitert wird.

Sie können diese Methode auch verwenden, um den aktuellen Wert des Suchzeigers abzurufen, indem Sie diese Methode aufrufen, wobei der parameter dwOrigin auf STREAM_SEEK_CUR und der dlibMove-Parameter auf 0 festgelegt ist, sodass der Suchzeiger nicht geändert wird. Der aktuelle Suchzeiger wird im plibNewPosition-Parameter zurückgegeben.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile objidl.h
Bibliothek Uuid.lib
DLL Ole32.dll

Weitere Informationen

ISequentialStream::Read

ISequentialStream::Write

IStream – Implementierung von Zusammengesetzten Dateien

STREAM_SEEK