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 and [insert jump to asynchronous
storage overview, which is to come].
-
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
ILockBytes::WriteAt,
ILockBytes&emdash;File-Based
Implementation,
ILockBytes&emdash;Global
Memory Implementation