ILockBytes::ReadAt
Reads a
specified number of bytes starting at a specified offset from the beginning of
the byte array object.
HRESULT ReadAt(
ULARGE_INTEGER ulOffset, |
//Specifies
the starting point for reading data |
void *pv, |
//Points to
the buffer into which the data is read |
ULONG cb, |
//Specifies
the number of bytes to read |
ULONG *pcbRead |
//Pointer
to location that contains actual number of bytes read |
); |
|
Parameters
ulOffset
[in]Specifies
the starting point from the beginning of the byte array for reading data.
pv
[in]Points to
the buffer into which the byte array is read.
cb
[in]Specifies
the number of bytes of data to attempt to read from the byte array.
pcbRead
[out]Pointer
to a location where this method writes the actual number of bytes read from 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 read.
Return Values
S_OK
Indicates
that the specified number of bytes were read, or the maximum number of bytes
were read up to the end of the byte array.
E_FAIL
Data could
not be read from the byte array.
E_PENDING
Asynchronous
Storage only: Part or all of the data to be read is currently unavailable. For
more information see IFillLockBytes
STG_E_ACCESSDENIED
The caller
does not have permission to access the byte array.
STG_E_READFAULT
The number of
bytes to be read does not equal the number of bytes that were acutally read.
Remarks
ILockBytes::ReadAt reads bytes from the byte array object. It reports
the number of bytes that were actually read. This value may be less than the
number of bytes requested if an error occurs or if the end of the byte array is
reached during the read.
It is not an
error to read less than the specified number of bytes if the operation
encounters the end of the byte array. Note that this is the same end-of-file
behavior as found in MS-DOS FAT file system files.
See Also