Método ILockBytes::WriteAt (objidl.h)

El método WriteAt escribe el número especificado de bytes a partir de un desplazamiento especificado desde el principio de la matriz de bytes.

Sintaxis

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

Parámetros

[in] ulOffset

Especifica el punto inicial desde el principio de la matriz de bytes para que se escriban los datos.

[in] pv

Puntero al búfer que contiene los datos que se van a escribir.

[in] cb

Especifica el número de bytes de datos que se van a intentar escribir en la matriz de bytes.

[out] pcbWritten

Puntero a una ubicación donde este método especifica el número real de bytes escritos en la matriz de bytes. Puede establecer este puntero en NULL para indicar que no está interesado en este valor. En este caso, este método no proporciona el número real de bytes escritos.

Valor devuelto

Este método puede devolver uno de estos valores.

Código devuelto Descripción
S_OK Indica que se escribió el número especificado de bytes.
E_FAIL Error general durante la operación de escritura.
E_PENDING Solo almacenamiento asincrónico: la parte o todos los datos que se van a escribir no están disponibles actualmente.
STG_E_ACCESSDENIED El autor de la llamada no tiene permisos suficientes para escribir esta matriz de bytes.
STG_E_WRITEFAULT El número de bytes que se van a escribir no es igual al número de bytes que se escribieron realmente.
STG_E_MEDIUMFULL La operación de escritura no se completó porque no queda espacio en el dispositivo de almacenamiento. El número real de bytes escritos todavía se devuelve en pcbWritten.

Comentarios

ILockBytes::WriteAt escribe los datos especificados en la ubicación especificada de la matriz de bytes. El número de bytes realmente escritos debe devolverse siempre en pcbWritten, incluso si se devuelve un error. Si el recuento de bytes es cero bytes, la operación de escritura no tiene ningún efecto.

Si ulOffset está más allá del final de la matriz de bytes y cb es mayor que cero, ILockBytes::WriteAt aumenta el tamaño de la matriz de bytes. Los bytes de relleno escritos en la matriz de bytes no se inicializan en ningún valor determinado.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado objidl.h
Library Uuid.lib
Archivo DLL Ole32.dll

Consulte también

ILockBytes: implementación de File-Based

ILockBytes: implementación de memoria global

ILockBytes::ReadAt

ILockBytes::SetSize