ILockBytes::WriteAt
Writes the
specified number of bytes starting at a specified offset from the beginning of
the byte array.
HRESULT WriteAt(
ULARGE_INTEGER ulOffset, |
//Specifies
the starting point for writing data |
void const *pv, |
//Points to
the buffer containing the data to be written |
ULONG cb, |
//Specifies
the number of bytes to write |
ULONG *pcbWritten |
//Pointer
to location that contains actual number of bytes written |
); |
|
Parameters
ulOffset
[in]Specifies
the starting point from the beginning of the byte array for the data to be
written.
pv
[in]Points to
the buffer containing the data to be written.
cb
[in]Specifies
the number of bytes of data to attempt to write into the byte array.
pcbRead
[out]Pointer
to a location where this method specifies the actual number of bytes written to
the byte array. You can set this pointer to NULL to indicate that you are not
interested in this value. In this case, this method does not provide the actual
number of bytes written.
Return Values
S_OK
Indicates
that the specified number of bytes were written.
E_FAIL
A general
failure occurred during the write.
E_PENDING
Asynchronous
Storage only: Part or all of the data to be written is currently unavailable.
For more information see IFillLockBytes
STG_E_ACCESSDENIED
The caller
does not have sufficient permissions for writing this byte array.
STG_E_WRITEFAULT
The number of
bytes to be written does not equal the number of bytes that were acutally
written.
STG_E_MEDIUMFULL
The write
operation was not completed because there is no space left on the storage
device. The actual number of bytes written is still returned in pcbWritten.
Remarks
ILockBytes::WriteAt writes the specified data at the specified location
in the byte array. The number of bytes actually written must always be returned
in pcbWritten, even if an error is returned. If the byte count is zero
bytes, the write operation has no effect.
If ulOffset
is past the end of the byte array and cb is greater than zero, ILockBytes::WriteAt
increases the size of the byte array. The fill bytes written to the byte array
are not initialized to any particular value.
See Also