Condividi tramite


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
Scardssp.h
Libreria dei tipi
Scardssp.tlb
DLL
Scardssp.dll
IID
IID_IByteBuffer è definito come E126F8FE-A7AF-11D0-B88A-00C04FD424B9