Condividi tramite


Metodo IByteBuffer::Write

[Il metodo Write è 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 Write scrive un numero specificato da byte nell'oggetto flusso a partire dal puntatore di ricerca corrente.

Sintassi

HRESULT Write(
  [in]  BYTE *pByte,
  [in]  LONG cb,
  [out] LONG *pcbWritten
);

Parametri

pByte [in]

Indirizzo del buffer contenente i dati da scrivere nel flusso. È necessario specificare un puntatore valido per questo parametro anche quando cb è zero.

cb [in]

Numero di byte di dati da tentare di scrivere nel flusso. Questo parametro può essere zero.

pcbWritten [out]

Indirizzo di una variabile LONG in cui questo metodo scrive il numero effettivo di byte scritti nell'oggetto flusso. Il chiamante può impostare questo puntatore su NULL, nel qual caso questo metodo non fornisce il numero effettivo di byte scritti.

Valore restituito

Il valore restituito è HRESULT. Un valore di S_OK indica che la chiamata ha avuto esito positivo.

Commenti

Il metodo IByteBuffer::Write scrive i dati specificati in un oggetto flusso. Il puntatore di ricerca viene modificato per il numero di byte effettivamente scritti. Il numero di byte effettivamente scritti viene restituito nel parametro pcbWritten . Se il numero di byte è pari a zero byte, l'operazione di scrittura non ha alcun effetto.

Se il puntatore seek è attualmente oltre la fine del flusso e il conteggio dei byte è diverso da zero, questo metodo aumenta le dimensioni del flusso al puntatore seek e scrive i byte specificati a partire dal puntatore di ricerca. I byte di riempimento scritti nel flusso non vengono inizializzati in alcun valore specifico. Si tratta dello stesso comportamento della fine del file nel file system FAT MS-DOS.

Con un numero di byte zero e un puntatore di ricerca oltre la fine del flusso, questo metodo non crea i byte di riempimento per aumentare il flusso al puntatore di ricerca. In questo caso, è necessario chiamare il metodo IByteBuffer::SetSize per aumentare le dimensioni del flusso e scrivere i byte di riempimento.

Il parametro pcbWritten può avere un valore anche se si verifica un errore.

Nell'implementazione fornita da COM gli oggetti flusso non sono di tipo sparse. Eventuali byte di riempimento vengono infine allocati sul disco e assegnati al flusso.

Esempio

Nell'esempio seguente viene illustrata la scrittura di byte nell'oggetto flusso.

LONG     lWrite;
HRESULT  hr;

// Write to the buffer.
// byData is an array of 64 bytes.
hr = pIByteBuff->Write(byData,
                       64,
                       &lWrite);
if (FAILED(hr))
  printf("Failed IByteBuffer::Write\n");

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