ILockBytes::ReadAt method (objidl.h)

The ReadAt method reads a specified number of bytes starting at a specified offset from the beginning of the byte array object.


  void           *pv,
  ULONG          cb,
  ULONG          *pcbRead



Specifies the starting point from the beginning of the byte array for reading data.


Pointer to the buffer into which the byte array is read. The size of this buffer is contained in cb.


Specifies the number of bytes of data to attempt to read from the byte array.


Pointer to a ULONG 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 that were read.

Return value

This method can return one of these values.


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 file allocation table (FAT) file system files.


Minimum supported client Windows 2000 Professional [desktop apps | UWP apps]
Minimum supported server Windows 2000 Server [desktop apps | UWP apps]
Target Platform Windows
Header objidl.h
Library Uuid.lib
DLL Ole32.dll

See also

ILockBytes - File-Based Implementation

ILockBytes - Global Memory Implementation