Metodo IByteBuffer::Seek
[Il metodo Seek è disponibile per l'uso nei sistemi operativi specificati nella sezione Requisiti. Non è disponibile per l'uso in Windows Server 2003 con Service Pack 1 (SP1) e versioni successive, Windows Vista, Windows Server 2008 e versioni successive del sistema operativo. L'interfaccia IStream offre funzionalità simili.
Il metodo Seek modifica il puntatore di ricerca in una nuova posizione rispetto all'inizio del buffer, alla fine del buffer o al puntatore di ricerca corrente.
Sintassi
HRESULT Seek(
[in] LONG dlibMove,
[in] LONG dwOrigin,
[out] LONG *plibNewPosition
);
Parametri
-
dlibMove [in]
-
Spostamento da aggiungere alla posizione indicata da dwOrigin. Se dwOrigin è STREAM_SEEK_SET, viene interpretato come un valore senza segno anziché firmato.
-
dwOrigin [in]
-
Specifica l'origine dello spostamento specificato in dlibMove. L'origine può essere uno dei valori della tabella seguente.
Valore Significato - STREAM_SEEK_SET
Il nuovo puntatore seek è un offset relativo all'inizio del flusso. In questo caso, il parametro dlibMove è la nuova posizione di ricerca rispetto all'inizio del flusso. - STREAM_SEEK_CUR
Il nuovo puntatore di ricerca è un offset relativo alla posizione del puntatore di ricerca corrente. In questo caso, il parametro dlibMove è lo spostamento con segno dalla posizione di ricerca corrente. - STREAM_SEEK_END
Il nuovo puntatore seek è un offset relativo alla fine del flusso. In questo caso, il parametro dlibMove è la nuova posizione di ricerca rispetto alla fine del flusso. -
plibNewPosition [out]
-
Puntatore alla posizione in cui questo metodo scrive il valore del nuovo puntatore seek dall'inizio del flusso. È possibile impostare questo puntatore su NULL per indicare che non si è interessati a questo valore. In questo caso, questo metodo non fornisce il nuovo puntatore seek.
Valore restituito
Il valore restituito è HRESULT. Un valore di S_OK indica che la chiamata ha avuto esito positivo.
Commenti
Il metodo Seek modifica il puntatore seek 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, perché il flusso in quel momento verrà esteso alla posizione di ricerca immediatamente prima che l'operazione di scrittura venga eseguita.
È 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 zero in modo che il puntatore seek non venga modificato. Il puntatore di ricerca corrente viene restituito nel parametro plibNewPosition .
Esempio
Nell'esempio seguente viene illustrato il posizionamento del puntatore di ricerca in una nuova posizione.
LONG lNewPos;
HRESULT hr;
// Change the seek pointer.
hr = pIByteBuff->Seek(5, STREAM_SEEK_SET, &lNewPos);
if (FAILED(hr))
printf("Failed IByteBuffer::Seek\n");
else
printf("New position is %x\n", lNewPos);
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato |
Windows XP [solo app desktop] |
Server minimo supportato |
Windows Server 2003 [solo app desktop] |
Fine del supporto client |
Windows XP |
Fine del supporto server |
Windows Server 2003 |
Intestazione |
|
Libreria dei tipi |
|
DLL |
|
IID |
IID_IByteBuffer è definito come E126F8FE-A7AF-11D0-B88A-00C04FD424B9 |