Condividi tramite


Metodo ILockBytes::WriteAt (objidl.h)

Il metodo WriteAt scrive il numero specificato di byte a partire da un offset specificato dall'inizio della matrice di byte.

Sintassi

HRESULT WriteAt(
  [in]  ULARGE_INTEGER ulOffset,
  [in]  const void     *pv,
  [in]  ULONG          cb,
  [out] ULONG          *pcbWritten
);

Parametri

[in] ulOffset

Specifica il punto iniziale dall'inizio della matrice di byte per la scrittura dei dati.

[in] pv

Puntatore al buffer contenente i dati da scrivere.

[in] cb

Specifica il numero di byte di dati da tentare di scrivere nella matrice di byte.

[out] pcbWritten

Puntatore a una posizione in cui questo metodo specifica il numero effettivo di byte scritti nella matrice di byte. È possibile impostare questo puntatore su NULL per indicare che non si è interessati a questo valore. In questo caso, questo metodo non fornisce il numero effettivo di byte scritti.

Valore restituito

Questo metodo può restituire uno di questi valori.

Codice restituito Descrizione
S_OK Indica che il numero specificato di byte è stato scritto.
E_FAIL Si è verificato un errore generale durante l'operazione di scrittura.
E_PENDING Solo archiviazione asincrona: parte o tutti i dati da scrivere non sono attualmente disponibili.
STG_E_ACCESSDENIED Il chiamante non dispone di autorizzazioni sufficienti per la scrittura di questa matrice di byte.
STG_E_WRITEFAULT Il numero di byte da scrivere non equivale al numero di byte effettivamente scritti.
STG_E_MEDIUMFULL L'operazione di scrittura non è stata completata perché non è stato lasciato spazio nel dispositivo di archiviazione. Il numero effettivo di byte scritti viene ancora restituito in pcbScritto.

Commenti

ILockBytes::WriteAt scrive i dati specificati nella posizione specificata nella matrice di byte. Il numero di byte effettivamente scritti deve sempre essere restituito in pcbScritto, anche se viene restituito un errore. Se il conteggio dei byte è zero byte, l'operazione di scrittura non ha alcun effetto.

Se ulOffset supera la fine della matrice di byte e cb è maggiore di zero, ILockBytes::WriteAt aumenta le dimensioni della matrice di byte. I byte di riempimento scritti nella matrice di byte non vengono inizializzati in alcun valore specifico.

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

ILockBytes - Implementazione di File-Based

ILockBytes - Implementazione globale della memoria

ILockBytes::ReadAt

ILockBytes::SetSize