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 |