Condividi tramite


Metodo IStream::Seek (objidl.h)

Il metodo Seek modifica il puntatore di ricerca in una nuova posizione. La nuova posizione è relativa all'inizio del flusso, alla fine del flusso o al puntatore di ricerca corrente.

Sintassi

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

Parametri

[in] dlibMove

Spostamento da aggiungere alla posizione indicata dal parametro dwOrigin . Se dwOrigin è STREAM_SEEK_SET, viene interpretato come un valore senza segno anziché un valore con segno.

[in] dwOrigin

Origine dello spostamento specificato in dlibMove. L'origine può essere l'inizio del file (STREAM_SEEK_SET), il puntatore di ricerca corrente (STREAM_SEEK_CUR) o la fine del file (STREAM_SEEK_END). Per altre informazioni sui valori, vedere l'enumerazione STREAM_SEEK .

[out] plibNewPosition

Puntatore alla posizione in cui questo metodo scrive il valore del nuovo puntatore seek dall'inizio del flusso.

È possibile impostare questo puntatore su NULL. In questo caso, questo metodo non fornisce il nuovo puntatore seek.

Valore restituito

Questo metodo può restituire uno di questi valori.

Codice restituito Descrizione
S_OK Il puntatore di ricerca è stato modificato correttamente.
E_PENDING Solo archiviazione asincrona: parte o tutti i dati del flusso non sono attualmente disponibili.
STG_E_INVALIDPOINTER Indica che plibNewPosition punta a memoria non valida, perché plibNewPosition non è letto.
STG_E_INVALIDFUNCTION Il parametro dwOrigin contiene un valore non valido oppure il parametro dlibMove contiene un valore di offset non valido. Ad esempio, il risultato del puntatore di ricerca è un valore di offset negativo.
STG_E_REVERTED L'oggetto è stato invalidato da un'operazione di ripristino sopra di essa nell'albero delle transazioni.

Commenti

IStream::Seek modifica il puntatore di ricerca in modo che le operazioni di lettura e scrittura successive possano essere eseguite in una posizione diversa nell'oggetto flusso. Si tratta di un errore di ricerca prima dell'inizio del flusso. Non è tuttavia un errore cercare oltre la fine del flusso. La ricerca oltre la fine del flusso è utile per le operazioni di scrittura successive, poiché l'intervallo di byte del flusso verrà esteso alla nuova posizione di ricerca immediatamente prima del completamento della scrittura.

È anche possibile utilizzare questo metodo per ottenere il valore corrente del puntatore seek chiamando questo metodo con il parametro dwOrigin impostato su STREAM_SEEK_CUR e il parametro dlibMove impostato su 0 in modo che il puntatore seek non venga modificato. Il puntatore di ricerca corrente viene restituito nel parametro plibNewPosition .

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [app desktop | App UWP]
Server minimo supportato Windows 2000 Server [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione objidl.h
Libreria Uuid.lib
DLL Ole32.dll

Vedi anche

ISequentialStream::Read

ISequentialStream::Write

IStream - Implementazione di file composti

STREAM_SEEK