# IFillLockBytes::FillAt

Writes a new block of data to a specified location in the byte array.

HRESULT FillAt(

ULARGE_INTEGER uIOffset | // Offset from beginning of the byte array
void const *pv | // Data to be written
ULONG cb | // Number of bytes to be written
ULONG *pcbWritten | // Number of bytes that were successfully written
); |

Parameters

uIOffset
  [in] The offset, expressed in number of bytes, from the first element of the byte array.
pv
  [in] Points to the data to be written at the location specified by uIOffset.
cb
  [in] Size of pv in bytes.
pcbWritten
  [out] Number of bytes that were successfully written.

Return Values

This function supports the standard return values E_OUTOFMEMORY, E_UNEXPECTED, E_INVALIDARG, and E_FAIL in addition to the following:

E_NOTIMPL
  The byte array does not support FillAt.

Remarks

The FillAt method is used for nonsequential downloading (for example, http byte range requests). In nonsequential downloading the caller specifies ranges in the byte array where various blocks of data are to be written. Subsequent calls by the compound file implementation to ILockBytes::ReadAt are passed by the byte array wrapper object’s own implementation of ILockBytes to the underlying byte array. This method is not currently implemented and will return E_NOTIMPL.

Note The system-supplied IFillLockBytes implementation does not support FillAt and returns E_NOTIMPL.

See Also

IFillLockBytes::FillAppend, IFillLockBytes - Implementation, ILockBytes::ReadAt